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

Title: ZZ2 F5 - Securité logicielle - sécurité des applications web Date: 2019-11-20 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

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

  • Une présentation d'une des 7 failles suivantes par trinôme

    • [lundi 22/09/2020] 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
    • [lundi 29/09/2020] Command execution
      • il s'agit d'injecter des commandes systèmes (on empiète pas sur le SQLi)
    • [lundi 6/10/2020] Upload
      • comment exécuter du code arbitraire à partir d'un formulaire d'upload de fichier
    • [lundi 13/10/2020] LFI / RFI
      • injection de paramètre http permettant d'inclure un fichier localement / distant
    • [lundi 20/10/2020] XSS
      • faire exécuter du code javascript arbitraire stocké (stored) ou passé en paramètres dan la requête (reflected)
    • [lundi 03/11/2020] CSRF
      • exécution d'un commande avec privilège à l'insu de l'utilisateur
    • [lundi 17/11/2020] SQLi
      • injection de commandes SQL (les blind sont à traiter)
  • Vous pouvez vous organiser avec ce framacalc

  • 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 ...

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