Skip to content
Snippets Groups Projects
zz2-f5-websec.md 13.76 KiB

Title: ZZ2 F5 - Securité logicielle - sécurité des applications web Date: 2022-09-13 10:55 Category: Étudiants Tags: cours

Contexte

Pentesting

Mécanisme

Vulnérabilités communes

Se protéger

FYI

  • Tous les slides sont fait avec reveal.js
    • ils sont exportables en pdf en ajoutant ?print-pdf# à l'url (à coller juste après le .html) et en passant par l'impression dans un fichier du navigateur chrome ou (mieux) chromium
  • n'hésitez à me signaler des liens morts et / ou à en proposer de nouveaux via une issue ou directement via un PR/MR

Recréer l'environnement de cours dans VirtualBox

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.18.vbox-extpack

sous windows vous devrez peut être utiliser le path entier de vboxmanage

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"

Créer un réseau NAT

vboxmanage  natnetwork add --netname natwebsec --network "172.16.76.0/24" --enable --dhcp off

Télécharger les images OVA

voir https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/

wget https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/files/?p=/debian.ova&dl=1
wget https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/files/?p=/proxy.ova&dl=1
wget https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/files/?p=/kali.ova&dl=1
wget https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/files/?p=/thenetwork.ova&dl=1
wget https://drive.mesocentre.uca.fr/d/69e5535b0b88425396d7/files/?p=/ubuntu-server-18.04.ova&dl=1

FYI

il y a environ 7 Go d'images, n'hésitez pas à vous les faire passer via des clés USB

Importer les images OVA

vboxmanage import debian.ova
vboxmanage import proxy.ova
vboxmanage import kali.ova
vboxmanage import thenetwork.ova
vboxmanage ubuntu-server-18.04.ova

Configurer le réseau pour chaque vm

vboxmanage modifyvm debian --nic1 natnetwork --nat-network1 natwebsec
vboxmanage modifyvm proxy --nic1 natnetwork --nat-network1 natwebsec
vboxmanage modifyvm kali --nic1 natnetwork --nat-network1 natwebsec
vboxmanage modifyvm thenetwork --nic1 natnetwork --nat-network1 natwebsec
vboxmanage modifyvm ubuntu-server-18.04 --nic1 natnetwork --nat-network1 natwebsec

réseau vm

(optionnel) Mettre en place le port-forwarding sur debian

vboxmanage natnetwork modify --netname natwebsec --port-forward-4 "ssh:tcp:[127.0.0.1]:1722:[172.16.76.142]:22"
vboxmanage natnetwork modify --netname natwebsec --port-forward-4 "ssh:tcp:[127.0.0.1]:1723:[172.16.76.143]:22"
vboxmanage natnetwork modify --netname natwebsec --port-forward-4 "ssh:tcp:[127.0.0.1]:1724:[172.16.76.144]:22"
vboxmanage natnetwork modify --netname natwebsec --port-forward-4 "ssh:tcp:[127.0.0.1]:1725:[172.16.76.145]:22"
vboxmanage natnetwork modify --netname natwebsec --port-forward-4 "ssh:tcp:[127.0.0.1]:1726:[172.16.76.146]:22"

(optionnel) Se connecter en ssh

ssh -p 1722 mazenovi@127.0.0.1 #thenetwork
ssh -p 1723 mazenovi@127.0.0.1 #proxy
ssh -p 1724 mazenovi@127.0.0.1 #debian
ssh -p 1725 mazenovi@127.0.0.1 #kali
ssh -p 1726 mazenovi@127.0.0.1 #ubuntu server 18.04

(fix) En cas de réseau injoignable sur proxy et thenetwork

si

ping 172.16.76.145 # ping sur kali

renvoie

connect: Network is unreachable

vérifier le numéro de votre interface réseau

student@proxy:~$ ifconfig -a

eth2      Link encap:Ethernet  HWaddr 08:00:27:ae:b5:20
          inet adr:172.16.76.143  Bcast:172.16.76.255  Masque:255.255.255.0
          adr inet6: fe80::a00:27ff:feae:b520/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Packets reçus:24 erreurs:0 :0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          Octets reçus:4789 (4.7 KB) Octets transmis:4679 (4.6 KB)

lo        Link encap:Boucle locale
          inet adr:127.0.0.1  Masque:255.0.0.0
          adr inet6: ::1/128 Scope:Hôte
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          Packets reçus:54 erreurs:0 :0 overruns:0 frame:0
          TX packets:54 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:0
          Octets reçus:4076 (4.0 KB) Octets transmis:4076 (4.0 KB)

par exemple ce numéro peut être eth2 (comme ci dessus) au lieu de eth0

il faut alors modifier le fichier /etc/network/interfaces en fonction

student@proxy:~$ sudo vi /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth2
iface eth2 inet static
        address 172.16.76.143
        netmask 255.255.255.0
        gateway 172.16.76.1

puis activer l'interface réseau

student@proxy:~$ sudo ifup eth2

réessayer

ping 172.16.76.145 # ping sur kali

Ce bug est dû à la numérotation fantaisiste d'Ubuntu des interfaces réseau ...

liste des vms / noms de domaine

# SecLab
172.16.76.143 proxy secured heart.bleed fo.ol #proxied version of dum.my

172.16.76.144 good.one go.od targ.et
172.16.76.144 mutillid.ae
172.16.76.144 dvwa.com dv.wa
172.16.76.144 d.oc
172.16.76.144 dum.my
172.16.76.144 drup.al hackable-drupal.com drupal
172.16.76.144 wordpre.ss bl.og wp wordpress
172.16.76.144 spip sp.ip
172.16.76.145 bad.guy hack.er 1337.net

172.16.76.142 thenetwork

172.16.76.1   us.er

Evaluation

Examen écrit en fin de session (coeff 0.5)

  • Durée: 1h00
  • Support: interdit

Une présentation d'une des 7 failles suivantes par trinôme (coeff 0.5)

  • [mardi 27/09/2022] Authentification inefficiente ou ressource mal protégée

    • un objet qui devrait être protégée est accessible sans authentification
    • on peut obtenir une session
  • [mardi 04/10/2022] Command execution

    • il s'agit d'injecter des commandes systèmes (on empiète pas sur le SQLi)
  • [mardi 11/10/2022] Upload

    • comment exécuter du code arbitraire à partir d'un formulaire d'upload de fichier
  • [mardi 18/10/2022] LFI / RFI

    • injection de paramètre http permettant d'inclure un fichier localement / distant
  • [mardi 25/10/2022] XSS

    • faire exécuter du code javascript arbitraire stocké (stored) ou passé en paramètres dan la requête (reflected)
  • [lundi 08/11/2022] CSRF

    • exécution d'un commande avec privilège à l'insu de l'utilisateur
  • [lundi 15/11/2022] SQLi

    • injection de commandes SQL (les blind sont à traiter)
  • Vous pouvez vous organiser avec ce fichier Excel

  • Chaque présentation durera 15 minutes et devra présenter

    • la vulnérabilité
    • l'exploitation de la vulnérabilité
    • un ensemble de solutions permettant de se protéger
  • Vous éviterez au maximum de vous aider du support de cours et des exemples qui s'y trouvent (notamment DVWA). Si je raconte la même chose que les étudiants qui présentent c'est pas marrant ...

Un cadeau bonus

Une faille est cachée sur le Système d'information de l'ISIMA. Le premier qui me l'envoie par mail à vincent.mazenod@isima.fr verra sa note de présentation ET sa note d'examen finale augmentée de 3 points.

Vous avez droit à autant de proposition que vous le souhaitez, car il y a fort à parier qu'il y a plus d'une faille dans le SI de l'ISIMA. Chaque faille valide pourra vous rapporter des points en pus également.

Soignez votre éthique

Si le défi est de trouver des vulnérabilités, l'idée n'est pas de vous encourager à les exploiter ... N'oubliez pas que vous êtes soumis à différentes obligations légales

Retrouvez un indice supplémentaire chaque semaine

  1. La faille est accessible depuis l'extérieur, pas besoin du VPN

Evaluation du cours

Vous avez aimé ou vous avez détesté ce cours ... donnez moi votre avis et aidez moi à l'améliorer (en tout anonymat)

See also