80,443 - Metodologia de Pentesting Web
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Informações Básicas
O serviço web é o serviço mais comum e abrangente e existem muitos tipos diferentes de vulnerabilidades.
Porta padrão: 80 (HTTP), 443 (HTTPS)
PORT STATE SERVICE
80/tcp open http
443/tcp open ssl/https
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0
Orientações para Web API
Resumo da metodologia
Nesta metodologia vamos supor que você vai atacar um domínio (ou subdomínio) e apenas esse. Portanto, você deve aplicar esta metodologia a cada domínio, subdomínio ou IP descoberto com servidor web indeterminado dentro do escopo.
- Comece por identificar as tecnologias usadas pelo servidor web. Procure por truques para ter em mente durante o restante do teste se você conseguir identificar a tecnologia com sucesso.
- Alguma vulnerabilidade conhecida da versão da tecnologia?
- Está usando alguma tecnologia bem conhecida? Algum truque útil para extrair mais informação?
- Algum specialised scanner para executar (like wpscan)?
- Lance general purposes scanners. Você nunca sabe se vão encontrar algo ou alguma informação interessante.
- Comece com as verificações iniciais: robots, sitemap, erro 404 e SSL/TLS scan (se HTTPS).
- Comece a spidering a página web: é hora de encontrar todos os possíveis files, folders e parameters being used. Também verifique por special findings.
- Observe que sempre que um novo diretório for descoberto durante brute-forcing ou spidering, ele deve ser spidered.
- Directory Brute-Forcing: Tente brute force todas as pastas descobertas procurando por novos files e directories.
- Observe que sempre que um novo diretório for descoberto durante brute-forcing ou spidering, ele deve ser Brute-Forced.
- Backups checking: Teste se você consegue encontrar backups de discovered files adicionando extensões de backup comuns.
- Brute-Force parameters: Tente encontrar parâmetros ocultos.
- Uma vez que você tenha identificado todos os possíveis endpoints que aceitam user input, verifique todos os tipos de vulnerabilidades relacionadas a eles.
- Follow this checklist
Versão do servidor (Vulnerável?)
Identificar
Verifique se existem vulnerabilidades conhecidas para a versão do servidor que está em execução.
Os HTTP headers and cookies of the response podem ser muito úteis para identificar as tecnologias e/ou versão em uso. Nmap scan pode identificar a versão do servidor, mas também podem ser úteis as ferramentas whatweb, webtech ou https://builtwith.com/:
whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2
Pesquisar por vulnerabilities of the web application version
Verificar se existe algum WAF
- https://github.com/EnableSecurity/wafw00f
- https://github.com/Ekultek/WhatWaf.git
- https://nmap.org/nsedoc/scripts/http-waf-detect.html
Web tech tricks
Alguns truques para encontrar vulnerabilidades em diferentes tecnologias bem conhecidas que estão sendo usadas:
- AEM - Adobe Experience Cloud
- Apache
- Artifactory
- Buckets
- CGI
- Custom UDP RPC Protocols
- Dotnet SOAP WSDL client exploitation
- Drupal
- Flask
- Fortinet FortiWeb
- Git
- Golang
- GraphQL
- H2 - Java SQL database
- ISPConfig
- IIS tricks
- Microsoft SharePoint
- JBOSS
- Jenkins
- Jira
- Joomla
- JSP
- Laravel
- Moodle
- Nginx
- PHP (php has a lot of interesting tricks that could be exploited)
- Python
- Roundcube
- Spring Actuators
- Symphony
- Tomcat
- VMWare
- Web API Pentesting
- WebDav
- Werkzeug
- Wordpress
- Electron Desktop (XSS to RCE)
- Sitecore
- Zabbix
Tenha em conta que o mesmo domínio pode estar usando diferentes tecnologias em diferentes ports, folders e subdomains.
Se a aplicação web estiver usando qualquer tech/platform bem conhecida listada antes ou qualquer outra, não se esqueça de buscar na Internet por novos truques (e me avise!).
Source Code Review
Se o source code da aplicação estiver disponível no github, além de realizar por sua própria um teste White box da aplicação, há algumas informações que podem ser úteis para o atual teste Black-Box:
- Existe um Change-log or Readme or Version file ou qualquer coisa com informações de versão acessível via web?
- Como e onde as credentials são salvas? Existe algum arquivo (acessível?) com credentials (usernames ou passwords)?
- As passwords estão em plain text, encrypted ou qual algoritmo de hashing é usado?
- Está usando alguma master key para encriptar algo? Qual algoritmo é usado?
- Você consegue acessar algum desses arquivos explorando alguma vulnerabilidade?
- Há alguma informação interessante no github (issues resolvidas ou não)? Ou no commit history (talvez alguma password introduzida em um commit antigo)?
Source code Review / SAST Tools
Scanners automáticos
Scanners automáticos de propósito geral
nikto -h <URL>
whatweb -a 4 <URL>
wapiti -u <URL>
W3af
zaproxy #You can use an API
nuclei -ut && nuclei -target <URL>
# https://github.com/ignis-sec/puff (client side vulns fuzzer)
node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi2rVUN/?query=FUZZ"
Scanners de CMS
Se um CMS estiver em uso, não se esqueça de executar um scanner, talvez algo interessante seja encontrado:
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScan: WordPress, Drupal, Joomla, vBulletin sites para questões de segurança. (GUI)
VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap: (W)ordpress, (J)oomla, (D)rupal ou (M)oodle
droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress
cmsmap [-f W] -F -d <URL>
wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs
Neste ponto você já deve ter alguma informação sobre o web server usado pelo cliente (se algum dado foi fornecido) e alguns truques para ter em mente durante o teste. Se tiver sorte, você até encontrou um CMS e executou algum scanner.
Step-by-step Web Application Discovery
A partir deste ponto vamos começar a interagir com a aplicação web.
Initial checks
Default pages with interesting info:
- /robots.txt
- /sitemap.xml
- /crossdomain.xml
- /clientaccesspolicy.xml
- /.well-known/
- Verifique também comentários nas páginas principais e secundárias.
Forcing errors
Web servers podem comportar-se de forma inesperada quando dados estranhos são enviados a eles. Isso pode abrir vulnerabilidades ou vazar informações sensíveis.
- Acesse páginas fake como /whatever_fake.php (.aspx,.html,.etc)
- Adicione “[]”, “]]”, e “[[” em valores de cookie e valores de parâmetro para criar erros
- Gere erro fornecendo input como
/~randomthing/%sno final da URL - Tente verbos HTTP diferentes como PATCH, DEBUG ou incorretos como FAKE
Check if you can upload files (PUT verb, WebDav)
Se descobrir que o WebDav está habilitado mas você não tem permissões suficientes para fazer upload de arquivos na pasta raiz, tente:
- Brute Force credentials
- Upload de arquivos via WebDav nas demais pastas encontradas dentro da página web. Você pode ter permissões para subir arquivos em outras pastas.
Vulnerabilidades SSL/TLS
- Se a aplicação não força o uso de HTTPS em nenhuma parte, então ela é vulnerável a MitM
- Se a aplicação envia dados sensíveis (senhas) via HTTP, então é uma vulnerabilidade grave.
Use testssl.sh para checar vulnerabilidades (em programas de Bug Bounty provavelmente esse tipo de vulnerabilidade não será aceito) e use a2sv para revalidar as vulnerabilidades:
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
# You can also use other tools, by testssl.sh at this momment is the best one (I think)
sslscan <host:port>
sslyze --regular <ip:port>
Informações sobre vulnerabilidades SSL/TLS:
- https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/
- https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/
Spidering
Inicie algum tipo de spider no web. O objetivo do spider é encontrar o máximo de caminhos possível da aplicação testada. Portanto, web crawling e fontes externas devem ser usados para encontrar o maior número possível de caminhos válidos.
- gospider (go): HTML spider, LinkFinder em arquivos JS e fontes externas (Archive.org, CommonCrawl.org, VirusTotal.com).
- hakrawler (go): HML spider, com LinkFider para arquivos JS e Archive.org como fonte externa.
- dirhunt (python): HTML spider, também indica “juicy files”.
- evine (go): CLI interativo HTML spider. Também pesquisa no Archive.org
- meg (go): Esta ferramenta não é um spider mas pode ser útil. Você pode indicar um arquivo com hosts e um arquivo com paths e o meg irá buscar cada path em cada host e salvar a resposta.
- urlgrab (go): HTML spider com capacidades de renderização JS. No entanto, parece não ser mantido, a versão pré-compilada é antiga e o código atual não compila
- gau (go): HTML spider que usa provedores externos (wayback, otx, commoncrawl)
- ParamSpider: Este script encontrará URLs com parâmetros e irá listá-los.
- galer (go): HTML spider com capacidades de renderização JS.
- LinkFinder (python): HTML spider, com capacidades de JS beautify capaz de buscar novos caminhos em arquivos JS. Pode valer a pena também olhar o JSScanner, que é um wrapper do LinkFinder.
- goLinkFinder (go): Para extrair endpoints tanto do source HTML quanto de arquivos javascript embutidos. Útil para bug hunters, red teamers, infosec ninjas.
- JSParser (python2.7): Um script python 2.7 que usa Tornado e JSBeautifier para parsear URLs relativas de arquivos JavaScript. Útil para descobrir facilmente requisições AJAX. Parece não ser mantido.
- relative-url-extractor (ruby): Dado um arquivo (HTML) ele extrairá URLs dele usando expressões regulares para encontrar e extrair URLs relativas de arquivos minificados.
- JSFScan (bash, várias ferramentas): Coleta informação interessante de arquivos JS usando várias ferramentas.
- subjs (go): Encontra arquivos JS.
- page-fetch (go): Carrega uma página em um browser headless e imprime todas as urls carregadas para montar a página.
- Feroxbuster (rust): Ferramenta de content discovery misturando várias opções das ferramentas anteriores
- Javascript Parsing: Uma extensão do Burp para encontrar paths e params em arquivos JS.
- BurpJSLinkFinder Enhanced: Extensão Burp (Jython) que analisa passivamente respostas JavaScript (por MIME type e caminhos
/js) para extrair endpoints/links e opcionalmente sinalizar segredos embutidos com severidade. - Sourcemapper: Uma ferramenta que dado o .js.map URL irá obter o código JS beatificado
- xnLinkFinder: Ferramenta usada para descobrir endpoints para um target dado.
- waymore: Descobre links da wayback machine (também baixando as respostas na wayback e procurando mais links)
- HTTPLoot (go): Crawl (até preenchendo forms) e também encontra info sensível usando regexes específicas.
- SpiderSuite: Spider Suite é um crawler/spider GUI avançado multi-funcional projetado para profissionais de cibersegurança.
- jsluice (go): É um pacote Go e ferramenta de linha de comando para extrair URLs, paths, segredos e outros dados interessantes de código fonte JavaScript.
- ParaForge: ParaForge é uma simples Burp Suite extension para extrair os parâmetros e endpoints da request para criar wordlists customizadas para fuzzing e enumeração.
- katana (go): Excelente ferramenta para isso.
- Crawley (go): Imprime todo link que conseguir encontrar.
Brute Force diretórios e arquivos
Comece o brute-forcing a partir da pasta root e certifique-se de brute-force todos os diretórios encontrados usando este método e todos os diretórios descobertos pelo Spidering (você pode fazer esse brute-forcing recursivamente e anexar no início do wordlist usado os nomes dos diretórios encontrados).
Ferramentas:
- Dirb / Dirbuster - Incluído no Kali, antigo (e lento) mas funcional. Permite auto-signed certificates e busca recursiva. Muito lento comparado com as outras opções.
- Dirsearch (python): Não permite auto-signed certificates mas permite busca recursiva.
- Gobuster (go): Permite auto-signed certificates, não tem busca recursiva.
- Feroxbuster - Rápido, suporta busca recursiva.
- wfuzz
wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ - ffuf - Rápido:
ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ - uro (python): Não é um spider mas uma ferramenta que, dada a lista de URLs encontradas, deleta URLs “duplicadas”.
- Scavenger: Burp Extension para criar uma lista de diretórios a partir do histórico do burp de diferentes páginas
- TrashCompactor: Remove URLs com funcionalidades duplicadas (baseado em imports js)
- Chamaleon: Usa wapalyzer para detectar tecnologias usadas e selecionar os wordlists a serem usados.
Dicionários recomendados:
- https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/bf_directories.txt
- Dirsearch included dictionary
- http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10
- Assetnote wordlists
- https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content
- raft-large-directories-lowercase.txt
- directory-list-2.3-medium.txt
- RobotsDisallowed/top10000.txt
- https://github.com/random-robbie/bruteforce-lists
- https://github.com/google/fuzzing/tree/master/dictionaries
- https://github.com/six2dez/OneListForAll
- https://github.com/random-robbie/bruteforce-lists
- https://github.com/ayoubfathi/leaky-paths
- /usr/share/wordlists/dirb/common.txt
- /usr/share/wordlists/dirb/big.txt
- /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Nota que sempre que um novo diretório for descoberto durante brute-forcing ou spidering, ele deve ser Brute-Forced.
O que verificar em cada arquivo encontrado
- Broken link checker: Encontrar links quebrados dentro de HTMLs que podem ser suscetíveis a takeovers
- File Backups: Uma vez que você encontrou todos os arquivos, procure por backups de todos os arquivos executáveis (“.php”, “.aspx”…). Variações comuns para nomear um backup são: file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp e file.old. Você também pode usar a ferramenta bfac ou backup-gen.
- Discover new parameters: Você pode usar ferramentas como Arjun, parameth, x8 e Param Miner para descobrir parâmetros escondidos. Se possível, tente buscar parâmetros escondidos em cada arquivo web executável.
- Arjun all default wordlists: https://github.com/s0md3v/Arjun/tree/master/arjun/db
- Param-miner “params” : https://github.com/PortSwigger/param-miner/blob/master/resources/params
- Assetnote “parameters_top_1m”: https://wordlists.assetnote.io/
- nullenc0de “params.txt”: https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
- Comments: Verifique os comentários de todos os arquivos, você pode encontrar credentials ou funcionalidade escondida.
- Se você está jogando CTF, um truque “comum” é esconder informação dentro de comentários à direita da página (usando centenas de espaços para que você não veja os dados se abrir o source com o navegador). Outra possibilidade é usar várias quebras de linha e esconder informação em um comentário no final da página web.
- API keys: Se você encontrar qualquer API key existe um guia que indica como usar API keys de diferentes plataformas: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
- Google API keys: Se você encontrar qualquer API key que pareça com AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik você pode usar o projeto gmapapiscanner para checar quais apis a key pode acessar.
- S3 Buckets: Enquanto estiver spidering verifique se algum subdomain ou algum link está relacionado com algum S3 bucket. Nesse caso, verifique as permissões do bucket.
Descobertas especiais
Enquanto executar o spidering e o brute-forcing você pode encontrar coisas interessantes que você deve observar.
Arquivos interessantes
- Procure por links para outros arquivos dentro dos arquivos CSS.
- Se você encontrar um .git algumas informações podem ser extraídas
- Se encontrar um .env informações como api keys, senhas de dbs e outras informações podem ser encontradas.
- Se encontrar API endpoints você deveria também testá-los. Estes não são arquivos, mas provavelmente “parecerão” com eles.
- JS files: Na seção de spidering várias ferramentas que podem extrair paths de arquivos JS foram mencionadas. Também seria interessante monitorar cada arquivo JS encontrado, pois em algumas ocasiões, uma mudança pode indicar que uma potencial vulnerabilidade foi introduzida no código. Você poderia usar por exemplo JSMon.
- Você também deveria checar arquivos JS descobertos com RetireJS ou JSHole para ver se estão vulneráveis.
- Javascript Deobfuscator and Unpacker: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
- Javascript Beautifier: http://jsbeautifier.org/, http://jsnice.org/
- JsFuck deobfuscation (javascript com chars:“[]!+” https://enkhee-osiris.github.io/Decoder-JSFuck/)
- TrainFuck:
+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23. - Em diversas ocasiões, você precisará entender as expressões regulares usadas. Isso será útil: https://regex101.com/ ou https://pythonium.net/regex
- Você também pode monitorar os arquivos onde forms foram detectados, pois uma mudança no parâmetro ou o aparecimento de um novo form pode indicar uma nova funcionalidade possivelmente vulnerável.
403 Forbidden/Basic Authentication/401 Unauthorized (bypass)
502 Proxy Error
Se qualquer página responder com esse código, provavelmente é um proxy mal configurado. Se você enviar uma requisição HTTP como: GET https://google.com HTTP/1.1 (com o header host e outros headers comuns), o proxy tentará acessar google.com e você terá encontrado um SSRF.
NTLM Authentication - Info disclosure
Se o servidor que pedir autenticação for Windows ou você encontrar um login pedindo suas credentials (e pedindo o nome do domínio), você pode provocar uma divulgação de informação.
Envie o header: “Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=” e devido a como a NTLM authentication funciona, o servidor irá responder com informações internas (versão do IIS, versão do Windows…) dentro do header “WWW-Authenticate”.
Você pode automatizar isso usando o nmap plugin “http-ntlm-info.nse”.
HTTP Redirect (CTF)
É possível inserir conteúdo dentro de uma Redirection. Esse conteúdo não será mostrado ao usuário (já que o navegador executará o redirecionamento) mas algo pode ser escondido ali.
Web Vulnerabilities Checking
Agora que uma enumeração abrangente da aplicação web foi realizada, é hora de checar uma série de possíveis vulnerabilidades. Você pode encontrar a checklist aqui:
Web Vulnerabilities Methodology
Encontre mais info sobre web vulns em:
- https://six2dez.gitbook.io/pentest-book/others/web-checklist
- https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web_application_security_testing/configuration_and_deployment_management_testing.html
- https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection
Monitor Pages for changes
Você pode usar ferramentas como https://github.com/dgtlmoon/changedetection.io para monitorar páginas por modificações que possam inserir vulnerabilidades.
HackTricks Automatic Commands
Comandos Automáticos do HackTricks
```yaml Protocol_Name: Web #Protocol Abbreviation if there is one. Port_Number: 80,443 #Comma separated if there is more than one. Protocol_Description: Web #Protocol Abbreviation Spelled outEntry_1: Name: Notes Description: Notes for Web Note: | https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/index.html
Entry_2: Name: Quick Web Scan Description: Nikto and GoBuster Command: nikto -host {Web_Proto}://{IP}:{Web_Port} &&&& gobuster dir -w {Small_Dirlist} -u {Web_Proto}://{IP}:{Web_Port} && gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
Entry_3: Name: Nikto Description: Basic Site Info via Nikto Command: nikto -host {Web_Proto}://{IP}:{Web_Port}
Entry_4: Name: WhatWeb Description: General purpose auto scanner Command: whatweb -a 4 {IP}
Entry_5: Name: Directory Brute Force Non-Recursive Description: Non-Recursive Directory Brute Force Command: gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
Entry_6: Name: Directory Brute Force Recursive Description: Recursive Directory Brute Force Command: python3 {Tool_Dir}dirsearch/dirsearch.py -w {Small_Dirlist} -e php,exe,sh,py,html,pl -f -t 20 -u {Web_Proto}://{IP}:{Web_Port} -r 10
Entry_7: Name: Directory Brute Force CGI Description: Common Gateway Interface Brute Force Command: gobuster dir -u {Web_Proto}://{IP}:{Web_Port}/ -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -s 200
Entry_8:
Name: Nmap Web Vuln Scan
Description: Tailored Nmap Scan for web Vulnerabilities
Command: nmap -vv –reason -Pn -sV -p {Web_Port} –script=banner,(http* or ssl*) and not (brute or broadcast or dos or external or http-slowloris* or fuzzer) {IP}
Entry_9: Name: Drupal Description: Drupal Enumeration Notes Note: | git clone https://github.com/immunIT/drupwn.git for low hanging fruit and git clone https://github.com/droope/droopescan.git for deeper enumeration
Entry_10: Name: WordPress Description: WordPress Enumeration with WPScan Command: | ?What is the location of the wp-login.php? Example: /Yeet/cannon/wp-login.php wpscan –url {Web_Proto}://{IP}{1} –enumerate ap,at,cb,dbe && wpscan –url {Web_Proto}://{IP}{1} –enumerate u,tt,t,vp –passwords {Big_Passwordlist} -e
Entry_11: Name: WordPress Hydra Brute Force Description: Need User (admin is default) Command: hydra -l admin -P {Big_Passwordlist} {IP} -V http-form-post ‘/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location’
Entry_12: Name: Ffuf Vhost Description: Simple Scan with Ffuf for discovering additional vhosts Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H “Host:FUZZ.{Domain_Name}” -c -mc all {Ffuf_Filters}
</details>
## Referências
- [https://github.com/panchocosil/burp-js-linkfinder-enhanced](https://github.com/panchocosil/burp-js-linkfinder-enhanced)
> [!TIP]
> Aprenda e pratique Hacking AWS:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Aprenda e pratique Hacking GCP: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Aprenda e pratique Hacking Azure: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Supporte o HackTricks</summary>
>
> - Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
> - **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
>
> </details>


