23 juillet 2019

Try smarter not harder – Certification OSCP

Introduction

Au fil des années, la certification OSCP d’Offensive Security est devenue une véritable référence au sein des formations/certifications orientées sécurité offensive. En effet, à l’inverse de nombreuses autres certifications, celle-ci se résume à un examen technique et pratique dans lequel il est nécessaire de compromettre plusieurs machines au sein d’un réseau mis à disposition.

À la suite de la réussite (sans leak) de la certification OSCP, Kévin, consultant chez BSSI, nous fait un retour sur cette certification et sur sa préparation :

Retour sur la certification OSCP

Ces derniers mois passés m’ont transformé de plusieurs façons. Je me souviendrai toujours des jours et des nuits passés à essayer de « rooter » les machines du lab.

L’OSCP c’est aussi expérimenter un véritable « Rock’n’Roller » émotionnel : l’excitation, la frustration, la joie et la satisfaction se sont révélées très gratifiantes pour l’amélioration de mes compétences en Cybersécurité.

Au cours des 5 dernières années, j’ai travaillé dans plusieurs SOC/CERT en France en tant qu’analyste de sécurité. Voici un récapitulatif de mes connaissances avant de passer l’OSCP :

  • Compétences de base en CLI Linux et Windows
  • Scripting : Power-Shell, Python, C, PHP, C #, SQL
  • SIEM : IBM QRadar, RSA Netwitness, Splunk, Graylog, Elasticsearch, Kibana
  • Solutions de réponse aux incidents : RSA Archer SECOPS, Redmine, OTRS
  • Analyse de malwares : Wireshark, IDA, X64dbg, Microsoft, Sysinternals, Cuckoo
  • Analyse de vulnérabilités : Nmap, Qualys, Nessus, Shodan

Je possède également plusieurs certifications liées à la sécurité telles que SANS GCIH (504), SANS GREM (610) ou encore ISO / IEC 27002 ISO.

Mon expérience OSCP

Chronologie des événements

  • 1er mars : Commande passée avec deux mois d’accès au Labs.
  • 24 mars : Accès aux Labs et au matériel de cours. J’ai commencé à faire les exercices en lisant le PDF et en regardant les vidéos.
  • 7 avril : Début de l’exploitation du Lab.
  • 5 mai : Prolongation d’un mois, car je n’avais pas encore terminé d’attaquer toutes les machines à disposition
  • 6 juin : J’arrête les Labs après avoir compromis la quasi-totalité des machines , y compris les 4 machines les plus dures (Gh0st, Humble, Pain, Sufferance).
  • 11 juin : Réservation de l’examen.
  • 14 juin 23h : Examen.
  • 16 juin 22h : Rapports d’examen et de laboratoire soumis.
  • 19 juin 16h25 : obtention les résultats de la part d’Offensive Security : Réussi !

Les Labs:

  • Ne pas boycotter les forums. Allez-y si vous êtes vraiment, vraiment coincés. Vous allez en être de moins en moins dépendants au fur et à mesure que vous gagnerez en expérience grâce aux Labs.
  • Faites les exercices du Labs. Cela vous aidera vraiment à comprendre la méthodologie de tests d’intrusion « Offsec ».
  • Réinitialiser toujours la machine avant de l’attaquer.
  • Construisez votre check-list personnalisée pour les tests d’intrusion. Vous devriez avoir un premier prototype une fois que vous avez compromis vos 5 à 10 premières machines.
  • Metasploit / Meterpreter: Je l’ai utilisé à quelques reprises dans les Labs lorsque j’ai démarré puis complètement arrêté de l’utiliser. Vous n’avez pas vraiment besoin de Metasploit dans les machines du Lab. Le Meterpreter est bien plus rapide pour divulguer les mots de passe et élever les privilèges, mais cela peut vous faire empêcher de gagner beaucoup de compétences intéressantes.
  • Lorsque vous recherchez des exploits, regardez si l’exploit apparaît plus qu’une fois dans vos recherches. Si tel est le cas, vous devez prioriser cet exploit.
  • Les exploits qui s’exécutent localement sur une machine victime exploitent généralement un processus ou un service avec des privilèges plus élevés.
  • Essayez toujours d’exploiter manuellement les services avant d’utiliser les exploits kernel, qui devraient être votre dernier recours.
  • Vous aurez souvent besoin de modifier le code d’exploitation. Il est rare que vous trouviez sur exploit-db un code d’exploitation prêt à l’emploi.
  • Énumérez les correctifs installés sous Windows (KB) avant d’essayer les exploits Kernel.
  • Post exploitation / Shell avec privilèges utilisateur (non admin) : vous devriez être en mesure de confirmer toutes les données / informations énumérées à distance, car vous avez maintenant un accès local à la machine (si elles ne correspondent pas, demandez-vous pourquoi!).
  • Recherchez les utilisateurs dans /etc/passwd et essayez de vous connecter via SSH en les utilisant.
  • Certains services doivent être redirigés (port-forwarding) sur votre machine pour pouvoir être attaqués.
  • Quelques scripts automatisés peuvent être utilisés pour vous aider. Ils produiront beaucoup de « données » que vous devrez convertir en informations « utiles ».
  • Mettez toujours votre shell à niveau autant que vous le pouvez.
  • Pivoter peut être difficile .. N’hésitez pas à utiliser « sshuttle« .
  • Effectuez votre routine post-exploitation et recueillez toutes les informations utiles: mots de passe, hashs, noms d’utilisateur et autres artefacts intéressants.
  • Faites des snapshots de votre machine Kali de temps en temps.
  • J’ai construit une liste avec tous les utilisateurs connus. Cela vous aidera lors des brute-forces.
  • J’ai mis en place un index avec les combinaisons utilisateur/mots de passe pillées:


Reporting

  • J’ai d’abord essayé CherryTree et KeepNote mais j’ai finalement préféré utiliser OneNote dû au fait de bosser sur plusieurs PC (maison, travail, etc..). Les données sont conservées dans le cloud. Le nouveau thème « Dark » en a fait une expérience beaucoup plus satisfaisante.
  • SHIFT + Win + S pour prendre des captures d’écran dans Windows 10.
  • J’ai utilisé des outils tels que Reconnoitre et Faraday pour la collecte d’informations et l’énumération de services, mais je n’ai pas tardé à lâcher rapidement l’affaire et retourner à faire du copier/coller directement dans OneNote. Voici à quoi ressemblait mon OneNote:

Préparation à l’examen

  • J’ai réalisé un exercice « pré-examen » de 24 heures avec des machines que j’ai téléchargées de Vulnhub le week-end avant la date de l’examen. Vous pouvez télécharger les machines virtuelles à partir d’ici.
  • Voici une excellente ressource pour l’exploitation des Buffer Overflow
  • J’ai lu énormément d’articles de blog sur la préparation de l’OSCP.
  • J’ai également créé un index identifiant la méthode de compromission utilisée sur chaque machine. Cela peut être utile pendant l’examen ou sur d’autres machines du Labs dans le cas où vous rencontrez des vulnérabilités similaires. Voici un exemple de mon index:
  • J’ai compromis plusieurs machines dans Hack The Box. La plupart des machines de difficulté moyenne HTB sont un peu plus dures que les machines Offsec Lab. Voici quelques machines HTB qui ressemblent aux machines de l’Offsec:

Examen

  • J’ai réussi mon examen dès la première tentative ! Je me suis parvenu à compromettre 3 machines sur 5 + 1 shell à privilèges utilisateur sur la quatrième machine.
  • L’examen est constitué de 5 machines à rooter : 1 Buffer Overflow (25 pts), 1 (20 pts), 1 (20 pts), 1 (10 pts), 1 (25 pts) + une machine de debug pour l’exploitation du Buffer Overflow.
  • Ma machine virtuelle Kali était plutôt stable pendant toute la période des Labs durant environ 3 mois. Cependant, pendant l’examen et après 12 heures de travail et de nombreux onglets de Terminator ouverts, ma VM a décidé de planter. Je vous recommande alors de prendre plusieurs snapshots de votre machine virtuelle en effectuant l’examen pour ne pas tout perdre.
  • Utilisez OBS Studio pour enregistrer votre écran. Cela m’a aidé à plusieurs reprises lorsque je rédigeais mon rapport d’examen
  • Pas de stress. Prenez votre temps, énumérez tous les services, notez les versions des logiciels / services énumérés et toutes les informations que vous découvrez. Enregistrez tout dans OneNote.
  • Lorsque vous êtes bloqués, prenez du recul et vérifiez vos notes sur OneNote. Énumérez encore plus.
  • La machine de Buffer Overflow devrait prendre 1h. Cela m’a pris 2h30, car j’avais raté quelque chose. Assurez-vous de créer une check-list solide avant l’examen.
  • J’ai utilisé le script nmapAutomator pour lancer l’énumération. Cela a très bien fonctionné pour moi.
  • Ne passez jamais plus de 2-3 heures sur une seule machine. Si vous êtes bloqué, passez à la machine suivante.
  • Buvez beaucoup d’eau et mangez des aliments faibles en sucre et riches en graisses et protéines (noix, poisson, pain complet, etc..).

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *