mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-17 14:38:27 +00:00
Translated ['mobile-pentesting/android-app-pentesting/README.md', 'mobil
This commit is contained in:
parent
0825159e12
commit
6d8edb9085
5 changed files with 230 additions and 96 deletions
|
@ -287,12 +287,11 @@
|
|||
* [ADB Commands](mobile-pentesting/android-app-pentesting/adb-commands.md)
|
||||
* [APK decompilers](mobile-pentesting/android-app-pentesting/apk-decompilers.md)
|
||||
* [AVD - Android Virtual Device](mobile-pentesting/android-app-pentesting/avd-android-virtual-device.md)
|
||||
* [Burp Suite Configuration for Android](mobile-pentesting/android-app-pentesting/android-burp-suite-settings.md)
|
||||
* [Bypass Biometric Authentication (Android)](mobile-pentesting/android-app-pentesting/bypass-biometric-authentication-android.md)
|
||||
* [content:// protocol](mobile-pentesting/android-app-pentesting/content-protocol.md)
|
||||
* [Drozer Tutorial](mobile-pentesting/android-app-pentesting/drozer-tutorial/README.md)
|
||||
* [Exploiting Content Providers](mobile-pentesting/android-app-pentesting/drozer-tutorial/exploiting-content-providers.md)
|
||||
* [Exploiting a debuggeable applciation](mobile-pentesting/android-app-pentesting/exploiting-a-debuggeable-applciation.md)
|
||||
* [Exploiting a debuggeable application](mobile-pentesting/android-app-pentesting/exploiting-a-debuggeable-applciation.md)
|
||||
* [Frida Tutorial](mobile-pentesting/android-app-pentesting/frida-tutorial/README.md)
|
||||
* [Frida Tutorial 1](mobile-pentesting/android-app-pentesting/frida-tutorial/frida-tutorial-1.md)
|
||||
* [Frida Tutorial 2](mobile-pentesting/android-app-pentesting/frida-tutorial/frida-tutorial-2.md)
|
||||
|
@ -300,6 +299,7 @@
|
|||
* [Objection Tutorial](mobile-pentesting/android-app-pentesting/frida-tutorial/objection-tutorial.md)
|
||||
* [Google CTF 2018 - Shall We Play a Game?](mobile-pentesting/android-app-pentesting/google-ctf-2018-shall-we-play-a-game.md)
|
||||
* [Inspeckage Tutorial](mobile-pentesting/android-app-pentesting/inspeckage-tutorial.md)
|
||||
* [Install Burp Certificate](mobile-pentesting/android-app-pentesting/install-burp-certificate.md)
|
||||
* [Intent Injection](mobile-pentesting/android-app-pentesting/intent-injection.md)
|
||||
* [Make APK Accept CA Certificate](mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md)
|
||||
* [Manual DeObfuscation](mobile-pentesting/android-app-pentesting/manual-deobfuscation.md)
|
||||
|
|
|
@ -145,7 +145,7 @@ A partir do Android 4.4 (**API 17**), o cartão SD possui uma estrutura de diret
|
|||
**Dados sensíveis armazenados em texto claro**
|
||||
|
||||
* **Preferências compartilhadas**: O Android permite que cada aplicativo salve facilmente arquivos XML no caminho `/data/data/<nomedopacote>/shared_prefs/` e às vezes é possível encontrar informações sensíveis em texto claro nessa pasta.
|
||||
* **Bancos de dados**: O Android permite que cada aplicativo salve facilmente bancos de dados SQLite no caminho `/data/data
|
||||
* **Bancos de dados**: O Android permite que cada aplicativo salve facilmente bancos de dados SQLite no caminho `/data/data/<
|
||||
### TLS Quebrado
|
||||
|
||||
**Aceitar Todos os Certificados**
|
||||
|
@ -173,7 +173,7 @@ Os desenvolvedores não devem usar algoritmos obsoletos para realizar verificaç
|
|||
* Se o aplicativo for sensível (como aplicativos bancários), ele deve realizar suas próprias verificações para ver se o dispositivo móvel está rooteado e agir em consequência.
|
||||
* Se o aplicativo for sensível (como aplicativos bancários), ele deve verificar se um emulador está sendo usado.
|
||||
* Se o aplicativo for sensível (como aplicativos bancários), ele deve verificar sua própria integridade antes de executá-lo para verificar se foi modificado.
|
||||
* Use [**APKiD**](https://github.com/rednaga/APKiD) para verificar qual compilador/packer/ofuscador foi usado para construir o APK.
|
||||
* Use o [**APKiD**](https://github.com/rednaga/APKiD) para verificar qual compilador/packer/ofuscador foi usado para construir o APK.
|
||||
|
||||
### Aplicativo React Native
|
||||
|
||||
|
@ -253,7 +253,7 @@ Ganhe pontos de reputação com cada bug verificado e conquiste o topo do leader
|
|||
|
||||
Você pode criar uma **conta gratuita** em: [https://appetize.io/](https://appetize.io). Essa plataforma permite que você **faça upload** e **execute** APKs, sendo útil para ver como um APK está se comportando.
|
||||
|
||||
Você pode até **ver os logs do seu aplicativo** na web e conectar-se por meio do **adb**.
|
||||
Você pode até **ver os logs do seu aplicativo** na web e se conectar por meio do **adb**.
|
||||
|
||||
![](<../../.gitbook/assets/image (60).png>)
|
||||
|
||||
|
@ -322,10 +322,10 @@ A maioria dos aplicativos usa outros serviços em seu aplicativo, como o Google
|
|||
|
||||
### Bancos de dados SQLite
|
||||
|
||||
A maioria dos aplicativos usará **bancos de dados SQLite internos** para salvar informações. Durante o teste de penetração, dê uma **olhada** nos **bancos de dados** criados, nos nomes das **tabelas** e **colunas** e em todos os **dados** salvos, pois você pode encontrar **informações sensíveis** (o que seria uma vulnerabilidade).\
|
||||
A maioria dos aplicativos usará **bancos de dados SQLite internos** para salvar informações. Durante o pentest, dê uma **olhada** nos **bancos de dados** criados, nos nomes das **tabelas** e **colunas** e em todos os **dados** salvos, pois você pode encontrar **informações sensíveis** (o que seria uma vulnerabilidade).\
|
||||
Os bancos de dados devem estar localizados em `/data/data/o.nome.do.pacote/databases`, como `/data/data/com.mwr.example.sieve/databases`
|
||||
|
||||
Se o banco de dados estiver salvando informações confidenciais e estiver **criptografado**, mas você conseguir **encontrar** a **senha** dentro do aplicativo, ainda é uma **vulnerabilidade**.
|
||||
Se o banco de dados estiver salvando informações confidenciais e estiver **criptografado**, mas você pode **encontrar** a **senha** dentro do aplicativo, ainda é uma **vulnerabilidade**.
|
||||
|
||||
Enumere as tabelas usando `.tables` e enumere as colunas das tabelas usando `.schema <nome_da_tabela>`
|
||||
|
||||
|
@ -411,17 +411,17 @@ _Observação: você pode **omitir o nome do pacote** e o celular automaticament
|
|||
|
||||
**Código executado**
|
||||
|
||||
Para encontrar o **código que será executado no aplicativo**, vá para a atividade chamada pelo deep link e procure a função **`onNewIntent`**.
|
||||
Para encontrar o **código que será executado no aplicativo**, vá para a atividade chamada pelo deeplink e procure a função **`onNewIntent`**.
|
||||
|
||||
![](<../../.gitbook/assets/image (436) (1) (1) (1).png>)
|
||||
|
||||
**Informações sensíveis**
|
||||
|
||||
Sempre que encontrar um deep link, verifique se ele não está recebendo dados sensíveis (como senhas) por meio de parâmetros de URL, pois qualquer outro aplicativo pode **se passar pelo deep link e roubar esses dados!**
|
||||
Sempre que encontrar um deeplink, verifique se ele não está recebendo dados sensíveis (como senhas) por meio de parâmetros de URL, pois qualquer outro aplicativo pode **se passar pelo deeplink e roubar esses dados!**
|
||||
|
||||
**Parâmetros no caminho**
|
||||
|
||||
Você também **deve verificar se algum deep link está usando um parâmetro dentro do caminho** da URL, como: `https://api.example.com/v1/users/{username}`, nesse caso você pode forçar uma travessia de caminho acessando algo como: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\
|
||||
Você também **deve verificar se algum deeplink está usando um parâmetro dentro do caminho** do URL, como: `https://api.example.com/v1/users/{username}`, nesse caso você pode forçar uma travessia de caminho acessando algo como: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\
|
||||
Observe que se você encontrar os endpoints corretos dentro do aplicativo, poderá causar um **Redirecionamento Aberto** (se parte do caminho for usado como nome de domínio), **assumir a conta** (se você puder modificar os detalhes dos usuários sem token CSRF e o endpoint vulnerável usar o método correto) e qualquer outra vulnerabilidade. Mais [informações sobre isso aqui](http://dphoeniixx.com/2020/12/13-2/).
|
||||
|
||||
**Mais exemplos**
|
||||
|
@ -431,8 +431,8 @@ Um [relatório interessante de recompensa por bugs](https://hackerone.com/report
|
|||
### Proteção Insuficiente da Camada de Transporte
|
||||
|
||||
* **Falta de Inspeção de Certificado:** O aplicativo Android não verifica a identidade do certificado apresentado a ele. A maioria dos aplicativos ignora os avisos e aceita qualquer certificado autoassinado apresentado. Alguns aplicativos, em vez disso, passam o tráfego por uma conexão HTTP.
|
||||
* **Negociação de Handshake Fraca:** O aplicativo e o servidor realizam um handshake SSL/TLS, mas usam uma suíte de cifras insegura que é vulnerável a ataques MITM. Assim, qualquer atacante pode facilmente descriptografar essa conexão.
|
||||
* **Vazamento de Informações de Privacidade:** Na maioria das vezes, acontece que os aplicativos fazem autenticação por meio de um canal seguro, mas todas as outras conexões são feitas por meio de um canal não seguro. Isso não adiciona segurança ao aplicativo, pois dados sensíveis restantes, como cookie de sessão ou dados do usuário, podem ser interceptados por um usuário mal-intencionado.
|
||||
* **Negociação de Handshake Fraca:** O aplicativo e o servidor realizam um handshake SSL/TLS, mas usam uma suíte de criptografia insegura que é vulnerável a ataques MITM. Assim, qualquer atacante pode facilmente descriptografar essa conexão.
|
||||
* **Vazamento de Informações de Privacidade:** Na maioria das vezes, acontece que os aplicativos fazem autenticação por meio de um canal seguro, mas todas as outras conexões são feitas por meio de um canal não seguro. Isso não adiciona segurança ao aplicativo, pois dados sensíveis, como cookies de sessão ou dados do usuário, podem ser interceptados por um usuário mal-intencionado.
|
||||
|
||||
Dos 3 cenários apresentados, vamos discutir **como verificar a identidade do certificado**. Os outros 2 cenários dependem da **configuração do TLS** do servidor e se o **aplicativo envia dados não criptografados**. O pentester deve verificar por conta própria a configuração do TLS do servidor ([aqui](../../network-services-pentesting/pentesting-web/#ssl-tls-vulnerabilites)) e detectar se alguma **informação confidencial é enviada por um canal não criptografado/vulnerável**.\
|
||||
Mais informações sobre como descobrir e corrigir esse tipo de vulnerabilidade [**aqui**](https://manifestsecurity.com/android-application-security-part-10/).
|
||||
|
@ -446,7 +446,7 @@ No SSL Pinning, um aplicativo Android contém o certificado do servidor e só tr
|
|||
### Inspeção do tráfego HTTP
|
||||
|
||||
Antes de tudo, você deve (deve) **instalar o certificado** da ferramenta de **proxy** que você vai usar, provavelmente o Burp. Se você não instalar o certificado CA da ferramenta de proxy, provavelmente não verá o tráfego criptografado no proxy.\
|
||||
**Por favor,** [**leia este guia para aprender como instalar um certificado CA personalizado**](android-burp-suite-settings.md)**.**
|
||||
**Por favor,** [**leia este guia para aprender como instalar um certificado CA personalizado**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine)**.**
|
||||
|
||||
Para aplicativos direcionados ao **API Level 24+ não é suficiente instalar o certificado CA** do Burp no dispositivo. Para contornar essa nova proteção, você precisa modificar o arquivo de Configuração de Segurança de Rede. Portanto, você pode modificar esse arquivo para autorizar seu certificado CA ou pode [**ler esta página para um tutorial sobre como forçar o aplicativo a aceitar novamente todos os certificados instalados no dispositivo**](make-apk-accept-ca-certificate.md).
|
||||
|
||||
|
@ -619,7 +619,7 @@ Depois de selecionar o módulo auxiliar que deseja usar, você precisa pressiona
|
|||
|
||||
**Shell**
|
||||
|
||||
O MobSF também oferece um shell com alguns comandos **adb**, comandos do **MobSF** e comandos comuns do **shell** na parte inferior da página de análise dinâmica. Alguns comandos interessantes:
|
||||
O MobSF também oferece um shell com alguns comandos **adb**, comandos do MobSF e comandos **shell** comuns na parte inferior da página de análise dinâmica. Alguns comandos interessantes:
|
||||
```bash
|
||||
help
|
||||
shell ls
|
||||
|
@ -704,7 +704,7 @@ super-analyzer {apk_file}
|
|||
|
||||
![](<../../.gitbook/assets/image (62).png>)
|
||||
|
||||
StaCoAn é uma ferramenta **multiplataforma** que auxilia desenvolvedores, caçadores de recompensas por bugs e hackers éticos a realizar [análise estática de código](https://en.wikipedia.org/wiki/Static\_program\_analysis) em aplicativos móveis\*.
|
||||
StaCoAn é uma ferramenta **multiplataforma** que auxilia desenvolvedores, caçadores de recompensas por bugs e hackers éticos a realizar [análise de código estático](https://en.wikipedia.org/wiki/Static\_program\_analysis) em aplicativos móveis\*.
|
||||
|
||||
O conceito é que você arraste e solte o arquivo do seu aplicativo móvel (um arquivo .apk ou .ipa) na aplicação StaCoAn e ela irá gerar um relatório visual e portátil para você. Você pode ajustar as configurações e listas de palavras para obter uma experiência personalizada.
|
||||
|
||||
|
@ -775,7 +775,7 @@ Encontre um guia passo a passo para desofuscar o apk em [https://blog.lexfo.fr/d
|
|||
|
||||
### [DeGuard](http://apk-deguard.com)
|
||||
|
||||
**DeGuard reverte o processo de ofuscação realizado por ferramentas de ofuscação do Android. Isso permite várias análises de segurança, incluindo inspeção de código e previsão de bibliotecas.**
|
||||
**DeGuard reverte o processo de ofuscação realizado por ferramentas de ofuscação do Android. Isso permite inúmeras análises de segurança, incluindo inspeção de código e previsão de bibliotecas.**
|
||||
|
||||
Você pode fazer upload de um APK ofuscado para a plataforma deles.
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platform
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Depois de ter baixado a imagem do Android que você deseja usar, você pode **listar todas as imagens do Android baixadas** com:
|
||||
Depois de baixar a imagem do Android que você deseja usar, você pode **listar todas as imagens do Android baixadas** com:
|
||||
```
|
||||
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list target
|
||||
----------
|
||||
|
@ -212,67 +212,21 @@ Se você baixou um dispositivo com a Play Store, não será possível obter aces
|
|||
$ adb root
|
||||
adbd cannot run as root in production builds
|
||||
```
|
||||
Usando [rootAVD](https://github.com/newbit1/rootAVD) com [Magisk](https://github.com/topjohnwu/Magisk), consegui fazer o root (siga, por exemplo, [**este vídeo**](https://www.youtube.com/watch?v=Wk0ixxmkzAI) **ou** [**este**](https://www.youtube.com/watch?v=qQicUW0svB8)).
|
||||
Usando o [rootAVD](https://github.com/newbit1/rootAVD) com o [Magisk](https://github.com/topjohnwu/Magisk), consegui fazer o root (siga, por exemplo, [**este vídeo**](https://www.youtube.com/watch?v=Wk0ixxmkzAI) **ou** [**este**](https://www.youtube.com/watch?v=qQicUW0svB8)).
|
||||
|
||||
## Instalar o certificado Burp em uma Máquina Virtual
|
||||
## Instalar Certificado Burp
|
||||
|
||||
Primeiro, você precisa baixar o certificado Der do Burp. Você pode fazer isso em _**Proxy**_ --> _**Opções**_ --> _**Importar/Exportar certificado CA**_
|
||||
Verifique a seguinte página para aprender como instalar um certificado CA personalizado:
|
||||
|
||||
![](<../../.gitbook/assets/image (367).png>)
|
||||
|
||||
**Exporte o certificado no formato Der** e vamos **transformá-lo** em um formato que o **Android** será capaz de **entender**. Note que **para configurar o certificado burp na máquina Android no AVD**, você precisa **executar** esta máquina **com a opção** **`-writable-system`**.\
|
||||
Por exemplo, você pode executá-lo assim:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Em seguida, para **configurar o certificado do Burp**, faça o seguinte:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
openssl x509 -inform DER -in burp_cacert.der -out burp_cacert.pem
|
||||
CERTHASHNAME="`openssl x509 -inform PEM -subject_hash_old -in burp_cacert.pem | head -1`.0"
|
||||
mv burp_cacert.pem $CERTHASHNAME #Correct name
|
||||
adb root && sleep 2 && adb remount #Allow to write on /syste
|
||||
adb push $CERTHASHNAME /sdcard/ #Upload certificate
|
||||
adb shell mv /sdcard/$CERTHASHNAME /system/etc/security/cacerts/ #Move to correct location
|
||||
adb shell chmod 644 /system/etc/security/cacerts/$CERTHASHNAME #Assign privileges
|
||||
adb reboot #Now, reboot the machine
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Uma vez que a **máquina terminar de reiniciar**, o certificado do Burp estará em uso por ela!
|
||||
|
||||
## Instalar o Certificado do Burp com Magisc
|
||||
|
||||
Se você **fez root no seu dispositivo com Magisc** (talvez um emulador) e **não consegue seguir** as etapas anteriores para instalar o certificado do Burp porque o **sistema de arquivos é somente leitura** e você não pode remontá-lo como gravável, há outra maneira.
|
||||
|
||||
Explicado neste [**vídeo**](https://www.youtube.com/watch?v=qQicUW0svB8), você precisa:
|
||||
|
||||
1. **Instalar um certificado CA**: Basta **arrastar e soltar** o certificado DER do Burp **alterando a extensão** para `.crt` no celular para que ele seja armazenado na pasta Downloads e vá para `Instalar um certificado` -> `Certificado CA`
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" width="164"><figcaption></figcaption></figure>
|
||||
|
||||
* Verifique se o certificado foi armazenado corretamente indo para `Credenciais confiáveis` -> `USUÁRIO`
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" width="334"><figcaption></figcaption></figure>
|
||||
|
||||
2. **Torná-lo confiável pelo sistema**: Baixe o módulo Magisc [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (um arquivo .zip), **arraste e solte-o** no telefone, vá para o aplicativo **Magics** no telefone para a seção **`Módulos`**, clique em **`Instalar a partir do armazenamento`**, selecione o módulo `.zip` e uma vez instalado, **reinicie** o telefone:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1).png" alt="" width="345"><figcaption></figcaption></figure>
|
||||
|
||||
* Após reiniciar, vá para `Credenciais confiáveis` -> `SISTEMA` e verifique se o certificado do Postswigger está lá
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1).png" alt="" width="314"><figcaption></figcaption></figure>
|
||||
{% content-ref url="install-burp-certificate.md" %}
|
||||
[install-burp-certificate.md](install-burp-certificate.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Ótimas Opções AVD
|
||||
|
||||
### Tirar um Snapshot
|
||||
|
||||
Você pode **usar a interface gráfica** para tirar um snapshot da VM a qualquer momento:
|
||||
Você pode **usar a GUI** para tirar um snapshot da VM a qualquer momento:
|
||||
|
||||
![](<../../.gitbook/assets/image (336).png>)
|
||||
|
||||
|
@ -281,7 +235,7 @@ Você pode **usar a interface gráfica** para tirar um snapshot da VM a qualquer
|
|||
<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 segurança cibernética**? 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)
|
||||
* 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 seus truques 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).
|
||||
|
|
|
@ -0,0 +1,178 @@
|
|||
# Instalar Certificado Burp
|
||||
|
||||
<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 segurança cibernética**? 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 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 seus truques 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>
|
||||
|
||||
## Em uma Máquina Virtual
|
||||
|
||||
Primeiro, você precisa baixar o certificado Der do Burp. Você pode fazer isso em _**Proxy**_ --> _**Options**_ --> _**Import / Export CA certificate**_
|
||||
|
||||
![](<../../.gitbook/assets/image (367).png>)
|
||||
|
||||
**Exporte o certificado no formato Der** e vamos **transformá-lo** em uma forma que o **Android** será capaz de **entender**. Note que **para configurar o certificado burp na máquina Android em AVD** você precisa **executar** esta máquina **com** a opção **`-writable-system`**.\
|
||||
Por exemplo, você pode executá-lo assim:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
|
||||
```
|
||||
Em seguida, para **configurar o certificado do Burp**, faça o seguinte:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
openssl x509 -inform DER -in burp_cacert.der -out burp_cacert.pem
|
||||
CERTHASHNAME="`openssl x509 -inform PEM -subject_hash_old -in burp_cacert.pem | head -1`.0"
|
||||
mv burp_cacert.pem $CERTHASHNAME #Correct name
|
||||
adb root && sleep 2 && adb remount #Allow to write on /syste
|
||||
adb push $CERTHASHNAME /sdcard/ #Upload certificate
|
||||
adb shell mv /sdcard/$CERTHASHNAME /system/etc/security/cacerts/ #Move to correct location
|
||||
adb shell chmod 644 /system/etc/security/cacerts/$CERTHASHNAME #Assign privileges
|
||||
adb reboot #Now, reboot the machine
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Uma vez que a **máquina terminar de reiniciar**, o certificado do Burp estará em uso por ela!
|
||||
|
||||
## Usando Magisc
|
||||
|
||||
Se você **fez root no seu dispositivo com Magisc** (talvez um emulador) e não consegue seguir os **passos** anteriores para instalar o certificado do Burp porque o **sistema de arquivos é somente leitura** e você não pode remontá-lo como gravável, há outra maneira.
|
||||
|
||||
Explicado neste [**vídeo**](https://www.youtube.com/watch?v=qQicUW0svB8), você precisa:
|
||||
|
||||
1. **Instalar um certificado CA**: Basta **arrastar e soltar** o certificado DER do Burp **alterando a extensão** para `.crt` no celular para que ele seja armazenado na pasta Downloads e vá para `Instalar um certificado` -> `Certificado CA`
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" width="164"><figcaption></figcaption></figure>
|
||||
|
||||
* Verifique se o certificado foi armazenado corretamente indo para `Credenciais confiáveis` -> `USUÁRIO`
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" width="334"><figcaption></figcaption></figure>
|
||||
|
||||
2. **Torná-lo confiável pelo sistema**: Baixe o módulo Magisc [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (um arquivo .zip), **arraste e solte** no telefone, vá para o aplicativo **Magics** no telefone na seção **`Módulos`**, clique em **`Instalar a partir do armazenamento`**, selecione o módulo `.zip` e uma vez instalado, **reinicie** o telefone:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1).png" alt="" width="345"><figcaption></figcaption></figure>
|
||||
|
||||
* Após reiniciar, vá para `Credenciais confiáveis` -> `SISTEMA` e verifique se o certificado do Postswigger está lá
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1).png" alt="" width="314"><figcaption></figcaption></figure>
|
||||
|
||||
## Pós Android 14
|
||||
|
||||
Mudanças:
|
||||
|
||||
* Até agora, os certificados CA confiáveis pelo sistema ficavam em **`/system/etc/security/cacerts/`**. Em um emulador AOSP padrão, eles poderiam ser **modificados diretamente com acesso root** com uma configuração mínima, tendo **efeito imediato em todos os lugares**.
|
||||
* No Android 14, os certificados CA confiáveis pelo sistema geralmente ficarão em **`/apex/com.android.conscrypt/cacerts`**, e todo o **`/apex` é imutável**.
|
||||
* Esse caminho de certificados do APEX não pode ser remontado como gravável - as remontagens simplesmente falham. Na verdade, mesmo que você desmonte todo o caminho de um shell root, os aplicativos ainda podem ler seus certificados normalmente.
|
||||
* A técnica alternativa de **montar um diretório tmpfs por cima também não funciona** - mesmo que isso signifique que `ls /apex/com.android.conscrypt/cacerts` possa retornar nada (ou qualquer outra coisa que você queira), os aplicativos ainda verão os mesmos dados originais.
|
||||
* Porque a montagem `/apex` é [explicitamente montada](https://cs.android.com/android/platform/superproject/main/+/main:system/core/init/mount\_namespace.cpp;l=97;drc=566c65239f1cf3fcb0d8745715e5ef1083d4bd3a) **com propagação PRIVADA**, para que todas as alterações nas montagens dentro do caminho `/apex` nunca sejam compartilhadas entre processos.
|
||||
|
||||
Isso é feito pelo processo `init`, que inicia o sistema operacional, que então inicia o [processo Zygote](https://en.wikipedia.org/wiki/Booting\_process\_of\_Android\_devices#Zygote) (com um novo namespace de montagem copiado do pai, incluindo sua própria montagem privada `/apex`), que por sua vez inicia cada processo de aplicativo sempre que um aplicativo é iniciado no dispositivo (que por sua vez copia a mesma montagem privada `/apex`).
|
||||
|
||||
### Remontando recursivamente os pontos de montagem
|
||||
|
||||
* Você pode remontar `/apex` manualmente, removendo a propagação PRIVADA e tornando-o gravável (ironicamente, parece que remover completamente a propagação privada _propaga_ em todos os lugares)
|
||||
* Você copia todo o conteúdo de `/apex/com.android.conscrypt` para outro lugar
|
||||
* Em seguida, desmonta completamente `/apex/com.android.conscrypt` - removendo a montagem somente leitura que fornece imutavelmente este módulo
|
||||
* Em seguida, copie o conteúdo de volta, para que ele fique dentro da montagem `/apex` diretamente, onde pode ser modificado (você precisa fazer isso rapidamente, pois [aparentemente](https://infosec.exchange/@g1a55er/111069489513139531) você pode ver falhas caso contrário)
|
||||
* Isso deve ter efeito imediato, mas eles recomendam matar o `system_server` (reiniciar todos os aplicativos) para que tudo volte a um estado consistente
|
||||
```bash
|
||||
# Create a separate temp directory, to hold the current certificates
|
||||
# Otherwise, when we add the mount we can't read the current certs anymore.
|
||||
mkdir -p -m 700 /data/local/tmp/tmp-ca-copy
|
||||
|
||||
# Copy out the existing certificates
|
||||
cp /apex/com.android.conscrypt/cacerts/* /data/local/tmp/tmp-ca-copy/
|
||||
|
||||
# Create the in-memory mount on top of the system certs folder
|
||||
mount -t tmpfs tmpfs /system/etc/security/cacerts
|
||||
|
||||
# Copy the existing certs back into the tmpfs, so we keep trusting them
|
||||
mv /data/local/tmp/tmp-ca-copy/* /system/etc/security/cacerts/
|
||||
|
||||
# Copy our new cert in, so we trust that too
|
||||
mv $CERTIFICATE_PATH /system/etc/security/cacerts/
|
||||
|
||||
# Update the perms & selinux context labels
|
||||
chown root:root /system/etc/security/cacerts/*
|
||||
chmod 644 /system/etc/security/cacerts/*
|
||||
chcon u:object_r:system_file:s0 /system/etc/security/cacerts/*
|
||||
|
||||
# Deal with the APEX overrides, which need injecting into each namespace:
|
||||
|
||||
# First we get the Zygote process(es), which launch each app
|
||||
ZYGOTE_PID=$(pidof zygote || true)
|
||||
ZYGOTE64_PID=$(pidof zygote64 || true)
|
||||
# N.b. some devices appear to have both!
|
||||
|
||||
# Apps inherit the Zygote's mounts at startup, so we inject here to ensure
|
||||
# all newly started apps will see these certs straight away:
|
||||
for Z_PID in "$ZYGOTE_PID" "$ZYGOTE64_PID"; do
|
||||
if [ -n "$Z_PID" ]; then
|
||||
nsenter --mount=/proc/$Z_PID/ns/mnt -- \
|
||||
/bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
|
||||
fi
|
||||
done
|
||||
|
||||
# Then we inject the mount into all already running apps, so they
|
||||
# too see these CA certs immediately:
|
||||
|
||||
# Get the PID of every process whose parent is one of the Zygotes:
|
||||
APP_PIDS=$(
|
||||
echo "$ZYGOTE_PID $ZYGOTE64_PID" | \
|
||||
xargs -n1 ps -o 'PID' -P | \
|
||||
grep -v PID
|
||||
)
|
||||
|
||||
# Inject into the mount namespace of each of those apps:
|
||||
for PID in $APP_PIDS; do
|
||||
nsenter --mount=/proc/$PID/ns/mnt -- \
|
||||
/bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts &
|
||||
done
|
||||
wait # Launched in parallel - wait for completion here
|
||||
|
||||
echo "System certificate injected"
|
||||
```
|
||||
### Bind-mounting através do NSEnter
|
||||
|
||||
* Primeiro, precisamos configurar um diretório gravável em algum lugar. Para facilitar a compatibilidade com a abordagem existente, estou fazendo isso com uma montagem `tmpfs` sobre o diretório de certificados do sistema não-APEX (ainda presente):
|
||||
|
||||
```bash
|
||||
mount -t tmpfs tmpfs /system/etc/security/cacerts
|
||||
```
|
||||
* Em seguida, coloque os certificados CA de interesse neste diretório (por exemplo, você pode querer copiar todos os padrões do diretório de certificados CA `/apex/com.android.conscrypt/cacerts/` existente) e defina as permissões e rótulos SELinux apropriadamente.
|
||||
* Em seguida, use `nsenter` para entrar no namespace de montagem do Zygote e faça um bind mount deste diretório sobre o diretório APEX:
|
||||
|
||||
```bash
|
||||
nsenter --mount=/proc/$ZYGOTE_PID/ns/mnt -- \
|
||||
/bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
|
||||
```
|
||||
|
||||
O processo Zygote inicia cada aplicativo, copiando seu namespace de montagem para fazer isso, então isso garante que todos os aplicativos recém-iniciados (tudo iniciado a partir de agora) usarão isso.
|
||||
* Em seguida, use `nsenter` para entrar no namespace de cada aplicativo já em execução e faça o mesmo:
|
||||
|
||||
```bash
|
||||
nsenter --mount=/proc/$APP_PID/ns/mnt -- \
|
||||
/bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
|
||||
```
|
||||
|
||||
Alternativamente, se você não se importar com a experiência do usuário desajeitada, você deve ser capaz de fazer o bind mount no `init` em si (PID 1) e depois executar `stop && start` para reiniciar suavemente o sistema operacional, recriando todos os namespaces e propagando suas alterações em todos os lugares (mas pessoalmente eu me importo com a reinicialização desajeitada, então estou ignorando completamente essa rota).
|
||||
|
||||
<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 seus truques 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>
|
|
@ -1,14 +1,14 @@
|
|||
# Bypassando autenticação de dois fatores (2FA/OTP)
|
||||
# Bypass de 2FA/OTP
|
||||
|
||||
<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 segurança cibernética**? 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)!
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? 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 para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **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 seus truques 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>
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
|||
|
||||
### **Bypass direto**
|
||||
|
||||
Para burlar o 2FA, basta **tentar acessar diretamente o próximo endpoint** (você precisa saber o caminho do próximo endpoint). Se isso não funcionar, tente alterar o **cabeçalho Referrer** como se você viesse da página de 2FA.
|
||||
Para contornar o 2FA, basta **tentar acessar diretamente o próximo endpoint** (você precisa saber o caminho do próximo endpoint). Se isso não funcionar, tente alterar o **cabeçalho Referrer** como se você viesse da página 2FA.
|
||||
|
||||
### **Reutilização de token**
|
||||
|
||||
|
@ -24,11 +24,11 @@ Talvez você possa reutilizar um token previamente usado dentro da conta para au
|
|||
|
||||
### Compartilhamento de tokens não utilizados
|
||||
|
||||
Verifique se você pode obter o token da sua conta e tente usá-lo para burlar o 2FA em uma conta diferente.
|
||||
Verifique se você pode obter o token da sua conta e tente usá-lo para contornar o 2FA em uma conta diferente.
|
||||
|
||||
### Token vazado
|
||||
|
||||
O token vazou em uma resposta da aplicação web?
|
||||
O token vazou em uma resposta do aplicativo da web?
|
||||
|
||||
### Link de verificação de e-mail
|
||||
|
||||
|
@ -36,13 +36,15 @@ Tente usar o **link de verificação de e-mail recebido quando a conta foi criad
|
|||
|
||||
### Permissão de sessão
|
||||
|
||||
Usando a mesma sessão, inicie o fluxo usando sua conta e a conta da vítima. Ao atingir o ponto de 2FA em ambas as contas, conclua o 2FA com sua conta, mas não acesse a próxima parte. Em vez disso, tente acessar a próxima etapa com o fluxo da conta da vítima. Se o back-end apenas definir um booleano dentro de suas sessões dizendo que você passou com sucesso pelo 2FA, você poderá burlar o 2FA da vítima.
|
||||
Usando a mesma sessão, inicie o fluxo usando sua conta e a conta da vítima. Ao atingir o ponto 2FA em ambas as contas, conclua o 2FA com sua conta, mas não acesse a próxima parte. Em vez disso, tente acessar a próxima etapa com o fluxo da conta da vítima. Se o back-end apenas definir um booleano dentro de suas sessões dizendo que você passou com sucesso pelo 2FA, você poderá contornar o 2FA da vítima.
|
||||
|
||||
### Função de redefinição de senha
|
||||
### **Função de redefinição de senha**
|
||||
|
||||
Em quase todas as aplicações web, a **função de redefinição de senha faz login automaticamente** no aplicativo após o procedimento de redefinição ser concluído.\
|
||||
Em quase todas as aplicações da web, a **função de redefinição de senha faz login automaticamente no aplicativo** após o procedimento de redefinição ser concluído.\
|
||||
Verifique se um **e-mail** é enviado com um **link** para **redefinir a senha** e se você pode **reutilizar** esse **link** para redefinir a senha **quantas vezes quiser** (mesmo que a vítima altere seu endereço de e-mail).
|
||||
|
||||
Outra opção para contornar o 2FA com a funcionalidade de redefinição de senha é **redefinir a senha com acesso ao e-mail** e usar a **nova senha para fazer login**, é possível que após a alteração da senha o 2FA não seja usado.
|
||||
|
||||
### OAuth
|
||||
|
||||
Se você puder comprometer a conta do usuário em uma plataforma de **OAuth** confiável (Google, Facebook...)
|
||||
|
@ -53,13 +55,13 @@ Se você puder comprometer a conta do usuário em uma plataforma de **OAuth** co
|
|||
|
||||
Existe algum limite no número de códigos que você pode tentar, para que você possa simplesmente fazer uma força bruta? Tenha cuidado com um possível limite de taxa "silencioso", sempre tente vários códigos e depois o real para confirmar a vulnerabilidade.
|
||||
|
||||
#### Limite de taxa de fluxo, mas sem limite de taxa
|
||||
#### Limite de fluxo, mas sem limite de taxa
|
||||
|
||||
Nesse caso, há um limite de taxa de fluxo (você precisa fazer a força bruta muito devagar: 1 thread e algum tempo de espera antes de 2 tentativas), mas sem limite de taxa. Portanto, com tempo suficiente, você pode encontrar o código válido.
|
||||
Nesse caso, há um limite de fluxo (você precisa fazer uma força bruta muito devagar: 1 thread e algum tempo de espera antes de 2 tentativas), mas sem limite de taxa. Portanto, com tempo suficiente, você pode encontrar o código válido.
|
||||
|
||||
#### Reenviar código e redefinir o limite
|
||||
|
||||
Existe um limite de taxa, mas quando você "reenvia o código", o mesmo código é enviado e o limite de taxa é redefinido. Em seguida, você pode fazer a força bruta do código enquanto o reenvia, para que o limite de taxa nunca seja atingido.
|
||||
Existe um limite de taxa, mas quando você "reenvia o código", o mesmo código é enviado e o limite de taxa é redefinido. Em seguida, você pode fazer uma força bruta no código enquanto o reenvia, para que o limite de taxa nunca seja atingido.
|
||||
|
||||
#### Bypass de limite de taxa no lado do cliente
|
||||
|
||||
|
@ -73,25 +75,25 @@ Existe um limite de taxa, mas quando você "reenvia o código", o mesmo código
|
|||
|
||||
#### Falta de limite de taxa ao reenviar o código via SMS
|
||||
|
||||
Você não poderá burlar o 2FA, mas poderá gastar o dinheiro da empresa.
|
||||
Você não poderá contornar o 2FA, mas poderá gastar o dinheiro da empresa.
|
||||
|
||||
#### Regeneração infinita de OTP
|
||||
|
||||
Se você puder **gerar um novo OTP infinitas vezes**, o OTP for **suficientemente simples** (4 números) e você puder tentar até 4 ou 5 tokens por OTP gerado, basta tentar os mesmos 4 ou 5 tokens todas as vezes e gerar OTPs até que corresponda aos que você está usando.
|
||||
Se você puder **gerar um novo OTP infinitas vezes**, o OTP for **suficientemente simples** (4 números) e você puder tentar até 4 ou 5 tokens por OTP gerado, você pode simplesmente tentar os mesmos 4 ou 5 tokens todas as vezes e gerar OTPs até que corresponda aos que você está usando.
|
||||
|
||||
### Condição de corrida
|
||||
|
||||
Verifique a seção sobre o bypass de 2FA na seguinte página:
|
||||
Verifique a seção sobre contorno de 2FA na seguinte página:
|
||||
|
||||
{% content-ref url="race-condition.md" %}
|
||||
[race-condition.md](race-condition.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
### CSRF/Clickjacking
|
||||
|
||||
Verifique se há uma vulnerabilidade de Cross Site Request Forgery (CSRF) ou Clickjacking para desativar o 2FA.
|
||||
Verifique se há uma vulnerabilidade de Cross Site Request Forgery (CSRF) ou Clickjacking para desabilitar o 2FA.
|
||||
|
||||
### Funcionalidade "Lembrar-me"
|
||||
|
||||
### Funcionalidade de "lembrar-me"
|
||||
#### Cookie previsível
|
||||
|
||||
Se a funcionalidade "lembrar-me" usa um novo cookie com um código previsível, tente adivinhá-lo.
|
||||
|
@ -100,7 +102,7 @@ Se a funcionalidade "lembrar-me" usa um novo cookie com um código previsível,
|
|||
|
||||
Se a funcionalidade "lembrar-me" está vinculada ao seu endereço IP, você pode tentar descobrir o endereço IP da vítima e se passar por ela usando o cabeçalho **X-Forwarded-For**.
|
||||
|
||||
### Versões mais antigas
|
||||
### Versões antigas
|
||||
|
||||
#### Subdomínios
|
||||
|
||||
|
@ -108,7 +110,7 @@ Se você encontrar alguns subdomínios de "teste" com a funcionalidade de login,
|
|||
|
||||
#### APIs
|
||||
|
||||
Se você descobrir que o 2FA está usando uma API localizada em um diretório /v\* (como "/v3/"), isso provavelmente significa que existem endpoints de API mais antigos que podem ser vulneráveis a algum tipo de bypass de 2FA.
|
||||
Se você descobrir que o 2FA está usando uma API localizada em um diretório /v\* (como "/v3/"), isso provavelmente significa que existem endpoints de API mais antigos que podem ser vulneráveis a algum tipo de bypass do 2FA.
|
||||
|
||||
### Sessões anteriores
|
||||
|
||||
|
@ -116,13 +118,13 @@ Quando o 2FA está ativado, as sessões anteriores criadas devem ser encerradas.
|
|||
|
||||
### Controle de acesso inadequado a códigos de backup
|
||||
|
||||
Os códigos de backup são gerados imediatamente após a ativação do 2FA e estão disponíveis em uma única solicitação. Após cada chamada subsequente à solicitação, os códigos podem ser regenerados ou permanecer inalterados (códigos estáticos). Se houver configurações incorretas de CORS/vulnerabilidades de XSS e outros bugs que permitam "puxar" os códigos de backup da solicitação de resposta do endpoint de código de backup, o atacante poderá roubar os códigos e ignorar o 2FA se o nome de usuário e a senha forem conhecidos.
|
||||
Os códigos de backup são gerados imediatamente após a ativação do 2FA e estão disponíveis em uma única solicitação. Após cada chamada subsequente à solicitação, os códigos podem ser regenerados ou permanecer inalterados (códigos estáticos). Se houver configurações incorretas de CORS/vulnerabilidades de XSS e outros bugs que permitam "puxar" os códigos de backup da resposta da solicitação do endpoint de código de backup, o atacante pode roubar os códigos e ignorar o 2FA se o nome de usuário e a senha forem conhecidos.
|
||||
|
||||
### Divulgação de informações
|
||||
|
||||
Se você notar algumas informações confidenciais aparecendo na página de 2FA que você não conhecia anteriormente (como o número de telefone), isso pode ser considerado uma vulnerabilidade de divulgação de informações.
|
||||
Se você notar algumas informações confidenciais aparecendo na página do 2FA que você não conhecia anteriormente (como o número de telefone), isso pode ser considerado uma vulnerabilidade de divulgação de informações.
|
||||
|
||||
### **Redefinição de senha == desativar 2FA**
|
||||
### **Redefinição de senha == desabilitar 2FA**
|
||||
|
||||
1. Crie uma conta e ative o 2FA.
|
||||
2. Faça logout dessa conta.
|
||||
|
@ -141,7 +143,7 @@ Se você notar algumas informações confidenciais aparecendo na página de 2FA
|
|||
|
||||
<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)!
|
||||
* 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 [**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)**.**
|
||||
|
|
Loading…
Add table
Reference in a new issue