hacktricks/mobile-pentesting/android-app-pentesting/drozer-tutorial/README.md

406 lines
20 KiB
Markdown
Raw Normal View History

2022-10-22 15:26:54 +00:00
# Drozer Tutorial
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2024-01-03 10:43:38 +00:00
2024-02-10 15:36:32 +00:00
* 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 PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>
2022-10-27 23:22:18 +00:00
<img src="../../../.gitbook/assets/i3.png" alt="" data-size="original">
2024-02-10 15:36:32 +00:00
**Bug-Bounty-Tipp**: **Registrieren Sie sich** für **Intigriti**, eine Premium-**Bug-Bounty-Plattform, die von Hackern für Hacker erstellt wurde**! Treten Sie uns noch heute unter [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) bei und verdienen Sie Prämien von bis zu **100.000 $**!
2022-10-27 23:22:18 +00:00
{% embed url="https://go.intigriti.com/hacktricks" %}
2024-02-10 15:36:32 +00:00
## APKs zum Testen
2024-02-10 15:36:32 +00:00
* [Sieve](https://github.com/mwrlabs/drozer/releases/download/2.3.4/sieve.apk) (von mrwlabs)
* [DIVA](https://payatu.com/wp-content/uploads/2016/01/diva-beta.tar.gz)
2024-02-08 03:08:28 +00:00
2024-02-10 15:36:32 +00:00
**Teile dieses Tutorials wurden aus dem [Drozer-Dokumentations-PDF](https://labs.withsecure.com/content/dam/labs/docs/mwri-drozer-user-guide-2015-03-23.pdf) extrahiert.**
2024-02-08 03:08:28 +00:00
2022-10-22 15:26:54 +00:00
## Installation
2024-02-10 15:36:32 +00:00
Installieren Sie den Drozer-Client in Ihrem Host. Laden Sie ihn von den [neuesten Versionen](https://github.com/mwrlabs/drozer/releases) herunter.
```bash
pip install drozer-2.4.4-py2-none-any.whl
pip install twisted
pip install service_identity
```
2024-02-10 15:36:32 +00:00
Lade die drozer APK von den [neuesten Versionen](https://github.com/mwrlabs/drozer/releases) herunter und installiere sie. Im Moment ist es [diese](https://github.com/mwrlabs/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk).
2024-02-08 03:08:28 +00:00
```bash
adb install drozer.apk
```
2024-02-10 15:36:32 +00:00
### Starten des Servers
2024-02-10 15:36:32 +00:00
Der Agent läuft auf Port 31415. Um die Kommunikation zwischen dem Drozer-Client und dem Agenten herzustellen, müssen wir eine [Portweiterleitung](https://de.wikipedia.org/wiki/Portweiterleitung) einrichten. Hier ist der Befehl dafür:
2024-02-08 03:08:28 +00:00
```bash
adb forward tcp:31415 tcp:31415
```
2024-02-10 15:36:32 +00:00
Schließlich starten Sie die Anwendung und drücken Sie die Schaltfläche "**ON**".
![](<../../../.gitbook/assets/image (63).png>)
2024-02-10 15:36:32 +00:00
Und verbinden Sie sich damit:
2024-02-08 03:08:28 +00:00
```bash
drozer console connect
```
2024-02-10 15:36:32 +00:00
## Interessante Befehle
2024-02-10 15:36:32 +00:00
| **Befehle** | **Beschreibung** |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
2024-02-10 15:36:32 +00:00
| **Hilfe MODULE** | Zeigt die Hilfe des ausgewählten Moduls an. |
| **Liste** | Zeigt eine Liste aller drozer-Module an, die in der aktuellen Sitzung ausgeführt werden können. Diese versteckt Module, für die Sie nicht die entsprechenden Berechtigungen zum Ausführen haben. |
| **Shell** | Startet eine interaktive Linux-Shell auf dem Gerät im Kontext des Agents. |
| **Clean** | Entfernt temporäre Dateien, die von drozer auf dem Android-Gerät gespeichert wurden. |
| **Laden** | Lädt eine Datei mit drozer-Befehlen und führt sie in der angegebenen Reihenfolge aus. |
| **Modul** | Sucht und installiert zusätzliche drozer-Module aus dem Internet. |
| **Unset** | Entfernt eine benannte Variable, die drozer an alle Linux-Shells übergibt, die es startet. |
| **Set** | Speichert einen Wert in einer Variablen, der als Umgebungsvariable an alle von drozer gestarteten Linux-Shells übergeben wird. |
| **Shell** | Startet eine interaktive Linux-Shell auf dem Gerät im Kontext des Agents. |
| **Ausführen MODULE** | Führt ein drozer-Modul aus. |
| **Ausnutzen** | Drozer kann Exploits erstellen, die auf dem Gerät ausgeführt werden sollen. `drozer exploit list` |
| **Payload** | Die Exploits benötigen ein Payload. `drozer payload list` |
### Paket
Suchen Sie den **Namen** des Pakets, indem Sie nach einem Teil des Namens filtern:
2024-02-08 03:08:28 +00:00
```bash
2024-02-10 15:36:32 +00:00
dz> run app.package.list -f sieve
com.mwr.example.sieve
```
2024-02-10 15:36:32 +00:00
**Grundlegende Informationen** zum Paket:
- **Package Name**: drozer
- **Version**: 2.4.4
- **Description**: Drozer is a comprehensive security assessment framework for Android applications. It allows you to find security vulnerabilities in Android apps and perform various security tests.
- **License**: Apache-2.0
- **Author**: MWR InfoSecurity
- **Homepage**: [https://github.com/FSecureLABS/drozer](https://github.com/FSecureLABS/drozer)
- **Documentation**: [https://github.com/FSecureLABS/drozer/wiki](https://github.com/FSecureLABS/drozer/wiki)
**Installation**:
2024-02-10 15:36:32 +00:00
1. Install the drozer package using the following command:
```
pip install drozer
```
2. Verify the installation by running the following command:
```
drozer
```
**Usage**:
- To start drozer, use the following command:
```
drozer console connect
```
2024-02-10 15:36:32 +00:00
- To list all available modules, use the following command:
```
run app.package.list -f <package_name>
```
- To run a specific module, use the following command:
```
run <module_name> -f <package_name>
```
**Additional Resources**:
- [Drozer GitHub Repository](https://github.com/FSecureLABS/drozer)
- [Drozer Wiki](https://github.com/FSecureLABS/drozer/wiki)
2024-02-08 03:08:28 +00:00
```bash
dz> run app.package.info -a com.mwr.example.sieve
Package: com.mwr.example.sieve
Process Name: com.mwr.example.sieve
Version: 1.0
Data Directory: /data/data/com.mwr.example.sieve
APK Path: /data/app/com.mwr.example.sieve-2.apk
UID: 10056
GID: [1028, 1015, 3003]
Shared Libraries: null
Shared User ID: null
Uses Permissions:
2024-02-10 15:36:32 +00:00
- android.permission.READ_EXTERNAL_STORAGE
- android.permission.WRITE_EXTERNAL_STORAGE
- android.permission.INTERNET
Defines Permissions:
2024-02-10 15:36:32 +00:00
- com.mwr.example.sieve.READ_KEYS
- com.mwr.example.sieve.WRITE_KEYS
```
2024-02-10 15:36:32 +00:00
Lese **Manifest**:
2024-02-08 03:08:28 +00:00
```bash
run app.package.manifest jakhar.aseem.diva
```
2024-02-10 15:36:32 +00:00
**Angriffsfläche** des Pakets:
2024-02-08 03:08:28 +00:00
```bash
dz> run app.package.attacksurface com.mwr.example.sieve
Attack Surface:
2024-02-10 15:36:32 +00:00
3 activities exported
0 broadcast receivers exported
2 content providers exported
2 services exported
is debuggable
```
2024-02-10 15:36:32 +00:00
* **Aktivitäten**: Möglicherweise können Sie eine Aktivität starten und eine Art Autorisierung umgehen, die Sie daran hindern sollte, sie zu starten.
* **Inhaltsanbieter**: Möglicherweise können Sie auf private Daten zugreifen oder eine Schwachstelle ausnutzen (SQL-Injection oder Pfadtraversierung).
* **Dienste**:
* **is debuggable**: [Weitere Informationen](./#is-debuggeable)
2024-02-10 15:36:32 +00:00
### Aktivitäten
2024-02-10 15:36:32 +00:00
Der Wert "android:exported" einer exportierten Aktivitätskomponente ist in der Datei AndroidManifest.xml auf **"true"** gesetzt:
```markup
<activity android:name="com.my.app.Initial" android:exported="true">
</activity>
```
2024-02-10 15:36:32 +00:00
**Liste exportierter Aktivitäten**:
To list the exported activities of an Android application, you can use the `drozer` tool. Drozer is a comprehensive security assessment framework for Android applications.
To get the list of exported activities, follow these steps:
1. Install `drozer` on your machine. You can find the installation instructions in the [official drozer documentation](https://github.com/FSecureLABS/drozer#installation).
2. Connect your Android device to your machine using a USB cable.
3. Open a terminal and run the following command to start the drozer server:
```
drozer console connect
```
4. Once the drozer server is running, you can use the following command to list the exported activities of an application:
2024-02-10 15:36:32 +00:00
```
run app.activity.info -a <package_name>
```
2024-02-10 15:36:32 +00:00
Replace `<package_name>` with the package name of the target application.
5. Drozer will display a list of exported activities along with their corresponding details, such as the activity name, package name, and intent filters.
By listing the exported activities of an Android application, you can identify potential security vulnerabilities that could be exploited by attackers. It is important to ensure that only necessary activities are exported and that sensitive functionalities are properly protected.
```bash
dz> run app.activity.info -a com.mwr.example.sieve
Package: com.mwr.example.sieve
2024-02-10 15:36:32 +00:00
com.mwr.example.sieve.FileSelectActivity
com.mwr.example.sieve.MainLoginActivity
com.mwr.example.sieve.PWList
```
2024-02-10 15:36:32 +00:00
**Aktivität starten**:
2024-02-10 15:36:32 +00:00
Möglicherweise können Sie eine Aktivität starten und eine Art Autorisierung umgehen, die Sie daran hindern sollte, sie zu starten.
{% code overflow="wrap" %}
```bash
dz> run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList
```
2024-02-10 15:36:32 +00:00
{% code %}
2024-02-10 15:36:32 +00:00
Sie können auch eine exportierte Aktivität von **adb** aus starten:
2024-02-10 15:36:32 +00:00
* PackageName ist com.example.demo
* Exportierter ActivityName ist com.example.test.MainActivity
```bash
adb shell am start -n com.example.demo/com.example.test.MainActivity
```
2024-02-10 15:36:32 +00:00
### Content Provider
2024-02-10 15:36:32 +00:00
Dieser Beitrag war zu groß, um hier zu sein, daher können Sie [hier auf eine eigene Seite zugreifen](exploiting-content-providers.md).
2022-10-22 15:26:54 +00:00
### Services
2024-02-10 15:36:32 +00:00
Ein exportierter Service wird in der Manifest.xml deklariert:
{% code overflow="wrap" %}
```markup
<service android:name=".AuthService" android:exported="true" android:process=":remote"/>
```
{% endcode %}
2024-02-10 15:36:32 +00:00
Im Code nach der Funktion **check** suchen, die die \*\*`handleMessage`\*\* Funktion enthält, die die **Nachricht** empfängt:
![](<../../../.gitbook/assets/image (194).png>)
2024-02-10 15:36:32 +00:00
#### Dienstliste
```bash
2024-02-10 15:36:32 +00:00
dz> run app.service.info -a com.mwr.example.sieve
Package: com.mwr.example.sieve
2024-02-10 15:36:32 +00:00
com.mwr.example.sieve.AuthService
Permission: null
com.mwr.example.sieve.CryptoService
Permission: null
```
#### **Mit einem Dienst interagieren**
To interact with a service, you can use the `run` command in drozer. This command allows you to execute various actions on the target service.
To use the `run` command, you need to specify the package name of the target application and the action you want to perform. You can also provide additional parameters depending on the action.
Here is the syntax for the `run` command:
```
run app.package.name action [parameters]
```
For example, to launch the target application, you can use the following command:
```
run com.example.app launch
```
2024-02-10 15:36:32 +00:00
This will launch the target application on the device.
To see a list of available actions for a specific package, you can use the `run app.package.name` command without specifying an action. Drozer will display a list of available actions along with their descriptions.
Once you have identified the action you want to perform, you can use the `run` command with the appropriate parameters to interact with the service.
Note that some actions may require additional permissions. If you encounter permission errors, you may need to grant the necessary permissions to the drozer agent on the target device.
2024-02-10 15:36:32 +00:00
By using the `run` command in drozer, you can interact with a service and perform various actions on the target application. This can be useful for testing the behavior of the application and identifying potential vulnerabilities.
2024-02-08 03:08:28 +00:00
```bash
2024-02-10 15:36:32 +00:00
app.service.send Send a Message to a service, and display the reply
app.service.start Start Service
app.service.stop Stop Service
```
2024-02-10 15:36:32 +00:00
#### Beispiel
2024-02-10 15:36:32 +00:00
Werfen Sie einen Blick auf die **drozer** Hilfe für `app.service.send`:
2022-10-22 15:26:54 +00:00
![](<../../../.gitbook/assets/image (196) (1).png>)
2024-02-10 15:36:32 +00:00
Beachten Sie, dass Sie zuerst die Daten in "_msg.what_", dann "_msg.arg1_" und "_msg.arg2_" senden werden. Sie sollten im Code überprüfen, **welche Informationen verwendet werden** und wo.\
Mit der Option `--extra` können Sie etwas senden, das von "_msg.replyTo"_ interpretiert wird, und mit `--bundle-as-obj` können Sie ein Objekt mit den angegebenen Details erstellen.
2024-02-10 15:36:32 +00:00
Im folgenden Beispiel:
* `what == 2354`
* `arg1 == 9234`
* `arg2 == 1`
* `replyTo == object(string com.mwr.example.sieve.PIN 1337)`
2024-02-08 03:08:28 +00:00
```bash
run app.service.send com.mwr.example.sieve com.mwr.example.sieve.AuthService --msg 2354 9234 1 --extra string com.mwr.example.sieve.PIN 1337 --bundle-as-obj
```
![](<../../../.gitbook/assets/image (195).png>)
2024-02-10 15:36:32 +00:00
### Broadcast-Empfänger
2024-02-10 15:36:32 +00:00
**Im Abschnitt "Grundlegende Informationen zu Android" können Sie sehen, was ein Broadcast-Empfänger ist**.
2024-02-10 15:36:32 +00:00
Nachdem Sie diese Broadcast-Empfänger entdeckt haben, sollten Sie **den Code** von ihnen überprüfen. Beachten Sie insbesondere die Funktion **`onReceive`**, da sie die empfangenen Nachrichten verarbeitet.
2024-02-10 15:36:32 +00:00
#### **Erkennen Sie alle** Broadcast-Empfänger
```bash
run app.broadcast.info #Detects all
```
2024-02-10 15:36:32 +00:00
#### Überprüfen Sie die Broadcast-Empfänger einer App
Um die Broadcast-Empfänger einer Android-App zu überprüfen, können Sie das Tool "drozer" verwenden. Drozer ist ein leistungsstarkes Framework für Android-App-Pentests, das Ihnen dabei hilft, Schwachstellen in einer App zu identifizieren.
Um die Broadcast-Empfänger einer App mit drozer zu überprüfen, führen Sie den folgenden Befehl aus:
```
drozer console connect
run app.broadcast.info -a <Paketname>
```
2024-02-10 15:36:32 +00:00
Ersetzen Sie `<Paketname>` durch den tatsächlichen Paketnamen der App, deren Broadcast-Empfänger Sie überprüfen möchten.
2024-02-10 15:36:32 +00:00
Dieser Befehl gibt Ihnen eine Liste der Broadcast-Empfänger zurück, die von der App registriert sind. Sie können Informationen wie den Empfänger-Namen, die Berechtigungen, die erfordert werden, und die Intents, auf die er reagiert, sehen.
Die Überprüfung der Broadcast-Empfänger einer App ist wichtig, um potenzielle Sicherheitslücken zu identifizieren, da schlecht konfigurierte oder unsichere Empfänger dazu führen können, dass sensible Informationen an unbefugte Dritte weitergegeben werden.
```bash
#Check one negative
run app.broadcast.info -a jakhar.aseem.diva
Package: jakhar.aseem.diva
2024-02-10 15:36:32 +00:00
No matching receivers.
# Check one positive
run app.broadcast.info -a com.google.android.youtube
Package: com.google.android.youtube
2024-02-10 15:36:32 +00:00
com.google.android.libraries.youtube.player.PlayerUiModule$LegacyMediaButtonIntentReceiver
Permission: null
com.google.android.apps.youtube.app.common.notification.GcmBroadcastReceiver
Permission: com.google.android.c2dm.permission.SEND
com.google.android.apps.youtube.app.PackageReplacedReceiver
Permission: null
com.google.android.libraries.youtube.account.AccountsChangedReceiver
Permission: null
com.google.android.apps.youtube.app.application.system.LocaleUpdatedReceiver
Permission: null
```
2024-02-10 15:36:32 +00:00
#### Broadcast **Interaktionen**
2024-02-08 03:08:28 +00:00
```bash
2024-02-10 15:36:32 +00:00
app.broadcast.info Get information about broadcast receivers
app.broadcast.send Send broadcast using an intent
app.broadcast.sniff Register a broadcast receiver that can sniff particular intents
```
2024-02-10 15:36:32 +00:00
#### Nachricht senden
2024-02-10 15:36:32 +00:00
In diesem Beispiel missbrauchen wir den [FourGoats apk](https://github.com/linkedin/qark/blob/master/tests/goatdroid.apk) Content Provider, um eine beliebige SMS an ein nicht-premium Ziel zu senden, **ohne den Benutzer um Erlaubnis zu bitten**.
![](<../../../.gitbook/assets/image (199).png>)
2022-10-22 15:26:54 +00:00
![](<../../../.gitbook/assets/image (197) (1).png>)
2024-02-10 15:36:32 +00:00
Wenn Sie den Code lesen, müssen die Parameter "_phoneNumber_" und "_message_" an den Content Provider gesendet werden.
2024-02-08 03:08:28 +00:00
```bash
run app.broadcast.send --action org.owasp.goatdroid.fourgoats.SOCIAL_SMS --component org.owasp.goatdroid.fourgoats.broadcastreceivers SendSMSNowReceiver --extra string phoneNumber 123456789 --extra string message "Hello mate!"
```
2024-02-10 15:36:32 +00:00
### Ist debugfähig
2024-02-10 15:36:32 +00:00
Eine Produktions-APK sollte niemals debugfähig sein.\
Das bedeutet, dass du einen **Java-Debugger an die laufende Anwendung anhängen**, sie zur Laufzeit inspizieren, Breakpoints setzen, schrittweise durchgehen, Variablenwerte sammeln und sie sogar ändern kannst. [InfoSec Institute hat einen ausgezeichneten Artikel](../exploiting-a-debuggeable-application.md) über das tiefergehende Eindringen in eine debugfähige Anwendung und das Einschleusen von Laufzeitcode.
2024-02-10 15:36:32 +00:00
Wenn eine Anwendung debugfähig ist, wird dies im Manifest angezeigt:
2024-02-08 03:08:28 +00:00
```xml
<application theme="@2131296387" debuggable="true"
```
2024-02-10 15:36:32 +00:00
Sie können alle debuggbaren Anwendungen mit **Drozer** finden:
```bash
run app.package.debuggable
```
2022-10-22 15:26:54 +00:00
## Tutorials
* [https://resources.infosecinstitute.com/android-penetration-tools-walkthrough-series-drozer/#gref](https://resources.infosecinstitute.com/android-penetration-tools-walkthrough-series-drozer/#gref)
* [https://github.com/mgcfish/mobiletools/blob/master/_posts/2016-08-01-Using-Drozer-for-application-security-assessments.md](https://github.com/mgcfish/mobiletools/blob/master/_posts/2016-08-01-Using-Drozer-for-application-security-assessments.md)
* [https://www.hackingarticles.in/android-penetration-testing-drozer/](https://www.hackingarticles.in/android-penetration-testing-drozer/)
* [https://medium.com/@ashrafrizvi3006/how-to-test-android-application-security-using-drozer-edc002c5dcac](https://medium.com/@ashrafrizvi3006/how-to-test-android-application-security-using-drozer-edc002c5dcac)
2024-02-10 15:36:32 +00:00
## Weitere Informationen
* [https://blog.dixitaditya.com/android-pentesting-cheatsheet/](https://blog.dixitaditya.com/android-pentesting-cheatsheet/)
2022-04-28 16:01:33 +00:00
2022-10-27 23:22:18 +00:00
<img src="../../../.gitbook/assets/i3.png" alt="" data-size="original">
2024-02-10 15:36:32 +00:00
**Bug-Bounty-Tipp**: **Registrieren** Sie sich für **Intigriti**, eine 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 verdienen Sie Prämien von bis zu **100.000 $**!
2022-10-27 23:22:18 +00:00
{% embed url="https://go.intigriti.com/hacktricks" %}
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2024-01-03 10:43:38 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben 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 senden.
2022-04-28 16:01:33 +00:00
</details>