Conseils, services, ingénierie en informatique. Mise en place de solutions technologiques, et support, pour les entreprises.

Note utilisateur: 5 / 5

Etoiles activesEtoiles activesEtoiles activesEtoiles activesEtoiles actives
 

 

 

Dans le cadre du test du nouveau site de CTF Tryhackme.com, notre vénérable chef du biohackaton nous a demandé à Ninjarchiviste et moi-même de tester une épreuve.

 

Voici quelques rooms intéressantes:

https://tryhackme.com/

https://tryhackme.com/room/learnburp

https://tryhackme.com/room/xss

https://tryhackme.com/room/toolsrus

https://tryhackme.com/room/rpnmap

 

Comme cela fait maintenant plusieurs années que nous réalisons des CTFs web lors de pentestings avec l'équipe de CTF Red Team LGHM, le gang des hackers de Montreuil , nous avons été séduit par la room webappsec101, en effet, on parlde de "rooms" ici.

 

2 sont gratuites pour tester le CTF:

https://tryhackme.com/room/webappsec101

https://tryhackme.com/room/ultratech1

 

Nous allons tester la

https://tryhackme.com/room/webappsec101

Il faut créer un compte:

https://tryhackme.com/login

 

Accepter les TOS:

https://tryhackme.com/terms

https://tryhackme.com/room/webappsec101

 

Clic sur "Deploy!" pour deployer la machine

 

Suivre le tutorial pour installer le VPN: https://tryhackme.com/tutorial

Nous suivons le tuto OpenVPN Connection Setup(Linux) https://youtu.be/GGHh2bBQRR8

 

 

 

acceder aux machines déployées sur le réseau

Aller dans l'onglet access:

https://tryhackme.com/access

telecharger la configuration: "download my configuration file" = pseudo.ovpn dans Downloads

pseudo.ovpn

 

Se mettre dans Downloads et lancer la commande:

sudo apt install openvpn && sudo openvpn loworbitioncanon.ovpn &

2 etapes:

1)

sudo apt install openvpn

Une fois openvpn installé, le lancé avec le fichier de config:

2)

sudo openvpn loworbitioncanon.ovpn

 

retour console:

loworbitioncanon@consultingitfr:~/Downloads$ sudo openvpn loworbitioncanon.ovpn

Thu May 23 10:00:11 2019 OpenVPN 2.4.7 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Feb 20 2019

Thu May 23 10:00:11 2019 library versions: OpenSSL 1.1.1a 20 Nov 2018, LZO 2.10

Thu May 23 10:00:11 2019 Outgoing Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication

Thu May 23 10:00:11 2019 Incoming Control Channel Authentication: Using 512 bit message hash 'SHA512' for HMAC authentication

Thu May 23 10:00:11 2019 TCP/UDP: Preserving recently used remote address: [AF_INET]18.202.129.195:1194

Thu May 23 10:00:11 2019 Socket Buffers: R=[212992->212992] S=[212992->212992]

Thu May 23 10:00:11 2019 UDP link local: (not bound)

Thu May 23 10:00:11 2019 UDP link remote: [AF_INET]18.202.129.195:1194

Thu May 23 10:00:11 2019 TLS: Initial packet from [AF_INET]18.202.129.195:1194, sid=7e80e9d4 ef3adad3

Thu May 23 10:00:11 2019 VERIFY OK: depth=1, CN=ChangeMe

Thu May 23 10:00:11 2019 VERIFY KU OK

Thu May 23 10:00:11 2019 Validating certificate extended key usage

Thu May 23 10:00:11 2019 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication

Thu May 23 10:00:11 2019 VERIFY EKU OK

Thu May 23 10:00:11 2019 VERIFY OK: depth=0, CN=server

Thu May 23 10:00:11 2019 Control Channel: TLSv1.2, cipher TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 2048 bit RSA

Thu May 23 10:00:11 2019 [server] Peer Connection Initiated with [AF_INET]18.202.129.195:1194

Thu May 23 10:00:12 2019 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)

Thu May 23 10:00:12 2019 PUSH: Received control message: 'PUSH_REPLY,route 10.0.0.0 255.255.0.0,route-metric 1000,route-gateway 10.8.0.1,topology subnet,ping 10,ping-restart 120,ifconfig 10.8.3.97 255.255.0.0,peer-id 11,cipher AES-256-GCM'

Thu May 23 10:00:12 2019 OPTIONS IMPORT: timers and/or timeouts modified

Thu May 23 10:00:12 2019 OPTIONS IMPORT: --ifconfig/up options modified

Thu May 23 10:00:12 2019 OPTIONS IMPORT: route options modified

Thu May 23 10:00:12 2019 OPTIONS IMPORT: route-related options modified

Thu May 23 10:00:12 2019 OPTIONS IMPORT: peer-id set

Thu May 23 10:00:12 2019 OPTIONS IMPORT: adjusting link_mtu to 1625

Thu May 23 10:00:12 2019 OPTIONS IMPORT: data channel crypto options modified

Thu May 23 10:00:12 2019 Data Channel: using negotiated cipher 'AES-256-GCM'

Thu May 23 10:00:12 2019 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key

Thu May 23 10:00:12 2019 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key

Thu May 23 10:00:12 2019 ROUTE_GATEWAY 192.168.10.1/255.255.255.0 IFACE=wlan0 HWADDR=c0:cb:38:8b:72:97

Thu May 23 10:00:12 2019 TUN/TAP device tun0 opened

Thu May 23 10:00:12 2019 TUN/TAP TX queue length set to 100

Thu May 23 10:00:12 2019 /sbin/ip link set dev tun0 up mtu 1500

Thu May 23 10:00:12 2019 /sbin/ip addr add dev tun0 10.8.3.97/16 broadcast 10.8.255.255

Thu May 23 10:00:12 2019 /sbin/ip route add 10.0.0.0/16 metric 1000 via 10.8.0.1

Thu May 23 10:00:12 2019 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this

Thu May 23 10:00:12 2019 Initialization Sequence Completed

On est connecté au VPN

 

 

vérifier sur la page accès que l'on est bien connecté:

https://tryhackme.com/access

se connecter à la room sur le navigateur avec son url, exemple:

https://tryhackme.com/room/webappsec101

Title

WackoPico Web App

 

Tache1: DEPLOY

A cette étape, on clique sur le bouton vers DEPLOY pourmettre en route la machine virtuelle à pentester

IP Address

10.0.0.11

Expires

23/05/2019, 09:43:27

copier-coller l'IP dans un autre onglet du navigateur:

10.0.0.11

 


Cette salle est une petite application Web vulnérable. Dans la boutique de jus OWASP, nous avons examiné le fonctionnement de certaines vulnérabilités de base. Dans cette salle, nous allons passer en revue la méthodologie et l’approche de test d’une application Web. En tant que pirate informatique, vous devez tester l'application Web du point de vue d'un attaquant. Nous utiliserons cet état d'esprit pour établir une stratégie de recherche de faiblesses dans l'application Web.

 

 

Merci à https://adamdoupe.com/ d’avoir créé cette épreuve, avec son équipe de CTF https://pwndevils.com/

Une fois connecté en VPN, on obtient la page avecle user/login du site web à pentester:

Tache 1 ok!

Tache 2 :

Pour pentester, suivons la méthodologie pentest consultingit:

https://www.consultingit.fr/fr/pentest

(il faut avoir créé son compte et se connecter)

 

Pour découvrir les vulnérabilités de toute application, nous devons comprendre le fonctionnement de l'application.

Pourquoi ne cliquez-vous pas sur les liens de l'application pour identifier les fonctionnalités? Le meilleur moyen d'identifier des liens ou des fonctionnalités particulières consiste à exécuter un robot d'exploration / spider Web. Une araignée Web suivra chaque lien sur chaque page du site Web (y compris la saisie de données dans certains formulaires). Cela peut être utile car cela vous aidera à générer une liste de toutes les pages de l'application (vous saurez ainsi quoi tester et à ne rien manquer), mais cela peut aussi être mauvais car il peut parfois manquer des fonctionnalités ou des entrées mal formées / données incorrectes pouvant endommager l'application. L'outil Burp est fourni avec une araignée que vous pouvez utiliser pour parcourir le site Web.

Certaines vulnérabilités sont spécifiques à certaines fonctionnalités, par exemple:

Lorsque vous voyez une page de connexion, pouvez-vous forcer brutalement ou deviner les informations d'identification?

 

 

S'il y a une connexion utilisateur, peut-il y avoir une connexion administrateur?

Pouvez-vous télécharger du contenu restreint en utilisant la fonctionnalité de téléchargement?

Si l'entrée est générée à partir d'une zone de texte, pouvez-vous exécuter XSS?

Au cours de cette phase, il est également important d'examiner les technologies utilisées, ainsi que leurs numéros de version. Par exemple, des versions particulières de serveurs ont-elles des exploits publics disponibles?

1) Quelle est la version d’apache utilisée? 2.4.7

2) En quel langage est créé le site web? PHP

3) Quelle est la version utilisée de ce langage? 5.5.9

Fin tache 2.

 

 

 

Tache 3 : etablir une methode

 

 

Maintenant que nous avons parcouru l'application et que nous connaissons les fonctionnalités et les technologies, comment pouvons-nous réellement la tester? Il existe 2 manières de tester une application Web pour détecter les vulnérabilités de sécurité.

La première consiste à parcourir chaque page et à tester toutes les fonctionnalités avec la méthodologie pentest consultingit:

https://www.consultingit.fr/fr/pentest. Cela impliquerait de parcourir chaque page de l'application et, en fonction de la fonctionnalité, de tester tous les bugs / vulnérabilités qui s'appliquent à la page. Dans ce cas, si nous commençons par la page d'accueil, nous essaierons de voir quelle fonctionnalité nous pouvons exploiter sur la page d'accueil, puis nous passons à chaque page.

La deuxième façon consiste à décomposer les tests en différentes étapes (y compris, mais sans s'y limiter):

 

Autorisation

Authentification

Injection

Contrôles côté client

Logique d'application

 

Pour pentester, suivrons la méthodologie pentest consultingit:

https://www.consultingit.fr/fr/pentest

(il faut avoir créé son compte et se connecter)

 

 

 

Tache 4: authentification

L'authentification implique des mécanismes de test et une logique permettant aux utilisateurs de se connecter à une application (en tant qu'utilisateur standard ou disposant de privilèges élevés). Le processus d'authentification implique généralement la vérification d'un utilisateur. Cette opération est effectuée lorsque l'utilisateur fournit les informations d'identification correctes (dans la plupart des cas, noms d'utilisateur et mots de passe).

 

 

L'authentification peut être testée des manières suivantes:

Brute force/ Informations d'identification faibles: Dans la plupart des cas, les utilisateurs choisissent généralement des mots de passe courants, faciles à deviner. Cela pourrait être n'importe quoi, du nom d'utilisateur aux noms des animaux. Les attaquants peuvent utiliser des mots de passe faibles à leur avantage en utilisant une liste pour deviner les mots de passe des utilisateurs possibles.

Gestion de session: Les sessions sont le mécanisme par lequel le serveur conserve l'état de l'application. Cela est nécessaire dans les applications qui doivent mémoriser les utilisateurs pour les transactions. Dans certains cas, les sessions (stockées dans des cookies) stockent des informations sur les utilisateurs, telles que leur niveau de privilège. Cet état peut être manipulé et renvoyé au serveur.

 

 

Astuce: on peut utiliser la méthodologie

https://consultingit.fr/pentestweb10

Fuzz du mot de passe admin avec rockyou de /usr/share/wordlists

 

mot de passe admin trouvé ! Done!

 Quel est le nom du cookie que l'on peut utiliser? session