mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-24 03:53:29 +00:00
417 lines
23 KiB
Markdown
417 lines
23 KiB
Markdown
# Tutorial do Drozer
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
<img src="../../../.gitbook/assets/i3.png" alt="" data-size="original">
|
|
|
|
**Dica de bug bounty**: **inscreva-se** no **Intigriti**, uma plataforma premium de **bug bounty criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje mesmo e comece a ganhar recompensas de até **$100.000**!
|
|
|
|
{% embed url="https://go.intigriti.com/hacktricks" %}
|
|
|
|
## APKs para testar
|
|
|
|
* [Sieve](https://github.com/mwrlabs/drozer/releases/download/2.3.4/sieve.apk) (do mrwlabs)
|
|
* [DIVA](https://payatu.com/wp-content/uploads/2016/01/diva-beta.tar.gz)
|
|
|
|
## Instalação
|
|
|
|
Instale o Cliente Drozer em seu host. Faça o download da [última versão](https://github.com/mwrlabs/drozer/releases).
|
|
```bash
|
|
pip install drozer-2.4.4-py2-none-any.whl
|
|
pip install twisted
|
|
pip install service_identity
|
|
```
|
|
Baixe e instale o APK do drozer nas [últimas versões](https://github.com/mwrlabs/drozer/releases). No momento, é [este](https://github.com/mwrlabs/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk).
|
|
```
|
|
adb install drozer.apk
|
|
```
|
|
### Iniciando o Servidor
|
|
|
|
O agente está sendo executado na porta 31415, precisamos fazer um [redirecionamento de porta](https://en.wikipedia.org/wiki/Port\_forwarding) para estabelecer a comunicação entre o Cliente Drozer e o Agente. Aqui está o comando para fazer isso:
|
|
```
|
|
adb forward tcp:31415 tcp:31415
|
|
```
|
|
Finalmente, **inicie** o **aplicativo** e pressione o botão "**ON**"
|
|
|
|
![](<../../../.gitbook/assets/image (63).png>)
|
|
|
|
E conecte-se a ele:
|
|
```
|
|
drozer console connect
|
|
```
|
|
## Comandos Interessantes
|
|
|
|
| **Comandos** | **Descrição** |
|
|
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
| **Help MODULE** | Mostra a ajuda do módulo selecionado |
|
|
| **list** | Mostra uma lista de todos os módulos do drozer que podem ser executados na sessão atual. Isso oculta os módulos para os quais você não tem permissões adequadas para executar. |
|
|
| **shell** | Inicia um shell Linux interativo no dispositivo, no contexto do Agente. |
|
|
| **clean** | Remove arquivos temporários armazenados pelo drozer no dispositivo Android. |
|
|
| **load** | Carrega um arquivo contendo comandos do drozer e os executa em sequência. |
|
|
| **module** | Encontra e instala módulos adicionais do drozer da Internet. |
|
|
| **unset** | Remove uma variável nomeada que o drozer passa para qualquer shell Linux que ele inicia. |
|
|
| **set** | Armazena um valor em uma variável que será passada como uma variável de ambiente para qualquer shell Linux iniciado pelo drozer. |
|
|
| **shell** | Inicia um shell Linux interativo no dispositivo, no contexto do Agente |
|
|
| **run MODULE** | Executa um módulo do drozer |
|
|
| **exploit** | O drozer pode criar exploits para executar no dispositivo. `drozer exploit list` |
|
|
| **payload** | Os exploits precisam de um payload. `drozer payload list` |
|
|
|
|
### Pacote
|
|
|
|
Encontre o **nome** do pacote filtrando por parte do nome:
|
|
```
|
|
dz> run app.package.list -f sieve
|
|
com.mwr.example.sieve
|
|
```
|
|
**Informações básicas** do pacote:
|
|
```
|
|
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:
|
|
- android.permission.READ_EXTERNAL_STORAGE
|
|
- android.permission.WRITE_EXTERNAL_STORAGE
|
|
- android.permission.INTERNET
|
|
Defines Permissions:
|
|
- com.mwr.example.sieve.READ_KEYS
|
|
- com.mwr.example.sieve.WRITE_KEYS
|
|
```
|
|
Leia **Manifesto**:
|
|
```
|
|
run app.package.manifest jakhar.aseem.diva
|
|
```
|
|
**Superfície de ataque** do pacote:
|
|
```
|
|
dz> run app.package.attacksurface com.mwr.example.sieve
|
|
Attack Surface:
|
|
3 activities exported
|
|
0 broadcast receivers exported
|
|
2 content providers exported
|
|
2 services exported
|
|
is debuggable
|
|
```
|
|
* **Atividades**: Talvez você possa iniciar uma atividade e contornar algum tipo de autorização que deveria impedir você de lançá-la.
|
|
* **Provedores de conteúdo**: Talvez você possa acessar dados privados ou explorar alguma vulnerabilidade (Injeção de SQL ou Traversão de Caminho).
|
|
* **Serviços**:
|
|
* **is debuggable**: [Saiba mais](./#is-debuggeable)
|
|
|
|
### Atividades
|
|
|
|
O valor "android:exported" de um componente de atividade exportado é definido como **"true"** no arquivo AndroidManifest.xml:
|
|
```markup
|
|
<activity android:name="com.my.app.Initial" android:exported="true">
|
|
</activity>
|
|
```
|
|
**Listar atividades exportadas**:
|
|
|
|
To list the exported activities of an Android application, you can use the `drozer` tool. This tool allows you to perform various security assessments on Android apps.
|
|
|
|
To list the exported activities, follow these steps:
|
|
|
|
1. Install `drozer` on your machine.
|
|
2. Connect your Android device to your machine using a USB cable.
|
|
3. Enable USB debugging on your Android device.
|
|
4. Open a terminal or command prompt and navigate to the `drozer` installation directory.
|
|
5. Run the following command to start the `drozer` console:
|
|
|
|
```
|
|
drozer console connect
|
|
```
|
|
|
|
6. Once the `drozer` console is open, run the following command to start the application you want to assess:
|
|
|
|
```
|
|
run app.package.list -f <package_name>
|
|
```
|
|
|
|
Replace `<package_name>` with the package name of the application you want to assess.
|
|
|
|
7. After the application is started, run the following command to list the exported activities:
|
|
|
|
```
|
|
run app.activity.info -a <package_name>
|
|
```
|
|
|
|
Replace `<package_name>` with the package name of the application you want to assess.
|
|
|
|
8. The `drozer` tool 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 and assess the overall security posture of the app.
|
|
```bash
|
|
dz> run app.activity.info -a com.mwr.example.sieve
|
|
Package: com.mwr.example.sieve
|
|
com.mwr.example.sieve.FileSelectActivity
|
|
com.mwr.example.sieve.MainLoginActivity
|
|
com.mwr.example.sieve.PWList
|
|
```
|
|
**Iniciar atividade**:
|
|
|
|
Talvez você possa iniciar uma atividade e contornar algum tipo de autorização que deveria impedir você de lançá-la.
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
dz> run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList
|
|
```
|
|
{% endcode %}
|
|
|
|
Você também pode iniciar uma atividade exportada pelo **adb**:
|
|
|
|
* O nome do pacote é com.example.demo
|
|
* O nome da atividade exportada é com.example.test.MainActivity
|
|
```bash
|
|
adb shell am start -n com.example.demo/com.example.test.MainActivity
|
|
```
|
|
### Provedores de Conteúdo
|
|
|
|
Este post era muito grande para estar aqui, então **você pode** [**acessá-lo em sua própria página aqui**](exploiting-content-providers.md).
|
|
|
|
### Serviços
|
|
|
|
Um serviço exportado é declarado dentro do Manifest.xml:
|
|
|
|
{% code overflow="wrap" %}
|
|
```markup
|
|
<service android:name=".AuthService" android:exported="true" android:process=":remote"/>
|
|
```
|
|
{% endcode %}
|
|
|
|
Dentro do código, **verifique** a função \*\*`handleMessage`\*\* que irá **receber** a **mensagem**:
|
|
|
|
![](<../../../.gitbook/assets/image (194).png>)
|
|
|
|
#### Listar serviço
|
|
```bash
|
|
dz> run app.service.info -a com.mwr.example.sieve
|
|
Package: com.mwr.example.sieve
|
|
com.mwr.example.sieve.AuthService
|
|
Permission: null
|
|
com.mwr.example.sieve.CryptoService
|
|
Permission: null
|
|
```
|
|
#### **Interagir** com um serviço
|
|
|
|
To interact with a service, you can use the `run` command in drozer. This command allows you to execute various actions on the target application.
|
|
|
|
Para interagir com um serviço, você pode usar o comando `run` no drozer. Esse comando permite que você execute várias ações no aplicativo alvo.
|
|
|
|
The basic syntax for the `run` command is as follows:
|
|
|
|
A sintaxe básica para o comando `run` é a seguinte:
|
|
|
|
```
|
|
run <module> <action> [options]
|
|
```
|
|
|
|
Where:
|
|
- `<module>` is the name of the module you want to run.
|
|
- `<action>` is the action you want to perform on the module.
|
|
- `[options]` are additional options or parameters required by the module.
|
|
|
|
Onde:
|
|
- `<module>` é o nome do módulo que você deseja executar.
|
|
- `<action>` é a ação que você deseja realizar no módulo.
|
|
- `[options]` são opções ou parâmetros adicionais necessários pelo módulo.
|
|
|
|
For example, to list all the activities in the target application, you can use the following command:
|
|
|
|
Por exemplo, para listar todas as atividades no aplicativo alvo, você pode usar o seguinte comando:
|
|
|
|
```
|
|
run app.activity.info
|
|
```
|
|
|
|
This will display a list of activities along with their corresponding package names.
|
|
|
|
Isso exibirá uma lista de atividades juntamente com seus respectivos nomes de pacote.
|
|
|
|
You can also specify additional options or parameters depending on the module and action you are using. For example, to launch a specific activity, you can use the following command:
|
|
|
|
Você também pode especificar opções ou parâmetros adicionais dependendo do módulo e ação que você está usando. Por exemplo, para iniciar uma atividade específica, você pode usar o seguinte comando:
|
|
|
|
```
|
|
run app.activity.start --component <package_name> <activity_name>
|
|
```
|
|
|
|
Replace `<package_name>` with the package name of the target application and `<activity_name>` with the name of the activity you want to launch.
|
|
|
|
Substitua `<package_name>` pelo nome do pacote do aplicativo alvo e `<activity_name>` pelo nome da atividade que você deseja iniciar.
|
|
|
|
By using the `run` command, you can interact with various services and components of the target application, allowing you to perform actions such as starting activities, sending intents, accessing content providers, and more.
|
|
|
|
Ao usar o comando `run`, você pode interagir com vários serviços e componentes do aplicativo alvo, permitindo que você execute ações como iniciar atividades, enviar intents, acessar provedores de conteúdo e muito mais.
|
|
```
|
|
app.service.send Send a Message to a service, and display the reply
|
|
app.service.start Start Service
|
|
app.service.stop Stop Service
|
|
```
|
|
#### Exemplo
|
|
|
|
Dê uma olhada na ajuda do **drozer** para `app.service.send`:
|
|
|
|
![](<../../../.gitbook/assets/image (196) (1).png>)
|
|
|
|
Observe que você estará enviando primeiro os dados dentro de "_msg.what_", depois "_msg.arg1_" e "_msg.arg2_", você deve verificar dentro do código **quais informações estão sendo usadas** e onde.\
|
|
Usando a opção `--extra`, você pode enviar algo interpretado por "_msg.replyTo"_, e usando `--bundle-as-obj`, você cria um objeto com os detalhes fornecidos.
|
|
|
|
No exemplo a seguir:
|
|
|
|
* `what == 2354`
|
|
* `arg1 == 9234`
|
|
* `arg2 == 1`
|
|
* `replyTo == object(string com.mwr.example.sieve.PIN 1337)`
|
|
```
|
|
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>)
|
|
|
|
### Receptores de Transmissão
|
|
|
|
Os aplicativos Android podem enviar ou receber mensagens de transmissão do sistema Android e de outros aplicativos Android, semelhante ao padrão de design [publicar-assinar](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern). Essas transmissões são enviadas quando ocorre um evento de interesse. Por exemplo, o sistema Android envia transmissões quando vários eventos do sistema ocorrem, como quando o sistema é inicializado ou o dispositivo começa a carregar. Os aplicativos também podem enviar transmissões personalizadas, por exemplo, para notificar outros aplicativos sobre algo que possa ser do seu interesse (por exemplo, algum novo dado foi baixado).
|
|
|
|
Os aplicativos podem se registrar para receber transmissões específicas. Quando uma transmissão é enviada, o sistema automaticamente encaminha as transmissões para os aplicativos que se inscreveram para receber aquele tipo específico de transmissão.
|
|
|
|
Isso pode aparecer dentro do arquivo Manifest.xml:
|
|
```markup
|
|
<receiver android:name=".MyBroadcastReceiver" android:exported="true">
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
|
<action android:name="android.intent.action.INPUT_METHOD_CHANGED" />
|
|
</intent-filter>
|
|
</receiver>
|
|
```
|
|
De: [https://developer.android.com/guide/components/broadcasts](https://developer.android.com/guide/components/broadcasts)
|
|
|
|
Após descobrir esses Receptores de Transmissão, você deve **verificar o código** deles. Preste atenção especial na função **`onReceive`**, pois ela será responsável por lidar com as mensagens recebidas.
|
|
|
|
#### **Detectar todos** os receptores de transmissão
|
|
```bash
|
|
run app.broadcast.info #Detects all
|
|
```
|
|
#### Verificar receptores de transmissão de um aplicativo
|
|
|
|
To check the broadcast receivers of an app, you can use the `drozer` tool. Broadcast receivers are components in an Android app that listen for system-wide events or custom events sent by other apps. They can be potential entry points for attackers to exploit vulnerabilities.
|
|
|
|
To list the broadcast receivers of an app, follow these steps:
|
|
|
|
1. Install and set up `drozer` on your machine.
|
|
2. Connect your Android device to your machine using a USB cable.
|
|
3. Open a terminal and run the following command to start a `drozer` session:
|
|
|
|
```
|
|
drozer console connect
|
|
```
|
|
|
|
4. Once the session is started, run the following command to list the broadcast receivers of the target app:
|
|
|
|
```
|
|
run app.broadcast.info -a <package_name>
|
|
```
|
|
|
|
Replace `<package_name>` with the package name of the app you want to test.
|
|
|
|
5. `drozer` will display a list of broadcast receivers along with their corresponding permissions and exported status. Analyze the output to identify any potential security risks.
|
|
|
|
By checking the broadcast receivers of an app, you can identify any insecure or misconfigured receivers that may pose a risk to the app's security.
|
|
```bash
|
|
#Check one negative
|
|
run app.broadcast.info -a jakhar.aseem.diva
|
|
Package: jakhar.aseem.diva
|
|
No matching receivers.
|
|
|
|
# Check one positive
|
|
run app.broadcast.info -a com.google.android.youtube
|
|
Package: com.google.android.youtube
|
|
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
|
|
```
|
|
#### Interações de Broadcast
|
|
|
|
Broadcasts são uma forma de comunicação entre componentes de um aplicativo Android. Eles permitem que um componente envie uma mensagem para todos os outros componentes registrados para receber esse tipo específico de mensagem. Essas mensagens podem ser usadas para iniciar ações em outros componentes, como iniciar uma atividade, exibir uma notificação ou executar um serviço em segundo plano.
|
|
|
|
No contexto da segurança, os broadcasts podem ser explorados por hackers para realizar ataques em aplicativos Android. Os hackers podem interceptar e manipular broadcasts para obter acesso não autorizado a informações confidenciais ou para executar ações maliciosas no dispositivo.
|
|
|
|
Neste tutorial, vamos explorar técnicas de pentesting para identificar e explorar vulnerabilidades relacionadas a interações de broadcast em aplicativos Android. Vamos usar a ferramenta Drozer, uma poderosa ferramenta de teste de segurança para aplicativos Android, para realizar essas atividades.
|
|
|
|
Vamos começar examinando os diferentes tipos de interações de broadcast e como eles podem ser usados em ataques de segurança. Em seguida, aprenderemos como usar o Drozer para identificar e explorar vulnerabilidades relacionadas a interações de broadcast em aplicativos Android.
|
|
```
|
|
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
|
|
```
|
|
#### Enviar uma mensagem
|
|
|
|
Neste exemplo, abusando do [apk FourGoats](https://github.com/linkedin/qark/blob/master/tests/goatdroid.apk) do Content Provider, você pode **enviar um SMS arbitrário** para qualquer destino não premium **sem pedir** permissão ao usuário.
|
|
|
|
![](<../../../.gitbook/assets/image (199).png>)
|
|
|
|
![](<../../../.gitbook/assets/image (197) (1).png>)
|
|
|
|
Se você ler o código, os parâmetros "_phoneNumber_" e "_message_" devem ser enviados para o Content Provider.
|
|
```
|
|
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!"
|
|
```
|
|
### Está depurável
|
|
|
|
Um APK de produção nunca deve estar depurável. Isso significa que você pode **anexar um depurador Java** à aplicação em execução, inspecioná-la em tempo de execução, definir pontos de interrupção, avançar passo a passo, coletar valores de variáveis e até mesmo alterá-los. [O InfoSec Institute tem um excelente artigo](../exploiting-a-debuggeable-application.md) sobre como investigar mais a fundo quando sua aplicação está depurável e injetar código em tempo de execução.
|
|
|
|
Quando uma aplicação está depurável, ela aparecerá no Manifesto:
|
|
```html
|
|
<application theme="@2131296387" debuggable="true"
|
|
```
|
|
Você pode encontrar todos os aplicativos depuráveis com o **Drozer**:
|
|
```bash
|
|
run app.package.debuggable
|
|
```
|
|
## Tutoriais
|
|
|
|
* [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)
|
|
|
|
## Mais informações
|
|
|
|
* [https://blog.dixitaditya.com/android-pentesting-cheatsheet/](https://blog.dixitaditya.com/android-pentesting-cheatsheet/)
|
|
|
|
<img src="../../../.gitbook/assets/i3.png" alt="" data-size="original">
|
|
|
|
**Dica de recompensa por bugs**: **inscreva-se** no **Intigriti**, uma plataforma premium de **recompensa por bugs criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje mesmo e comece a ganhar recompensas de até **$100.000**!
|
|
|
|
{% embed url="https://go.intigriti.com/hacktricks" %}
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|