Lors de ses projets de création de l'application (applications web ou applications mobile smartphones Android iphone IOS) Consultingit intègre maintenant une phase de pentesting (bug bounty comme certains l'appellent). Consultingit fait appel à la célèbre équipe CTF LGHM, (aussi connue sous le nom de l'association loi 1901 à but non lucratif Le Gang des Hackers de Montreuil), cette "RED TEAM" de hackers éthiques (chapeaux blancs) consultants en cybersécurité: pour sécuriser les applications, trouver les failles et les vulnérabilités du programme, avant que le programme passe en production. Cela évite qu'ensuite des hackers mal intentionnés (les black hats, ou chapeaux noirs) trouvent des failles et les exploitent. Mais concrètement...
Le pen tester, que fait-il ?
Que font les pentesteurs Red Team LGHM ?
Des audit courts externes, avec un scope client, domaines, ranges IP, ou une applications...
Des audits courts internes, dans l’entreprises
Audits sites webs, applications mobiles, apk…
Simulation de campagnes de fishing emailing serveur messagerie sur un gros panel de clients en entreprise, exemple 5000 utilisateurs sur toute la France, puis statistiques (un peu comme un Google Analytics manuel) de quel utilisateur sur quoi il a cliqué, combien ont cliqué, qui a ouvert la piece jointe, qui a été infecté car n'a pas son antivirus à jour…
Les contrats Red Team d'étalent plutot de 6 mois à 1 an
A part le red team les missions sont courtes, sur quelques jours. Le périmètre est signé avec le client
Date début
Date de fin
Une question? Posez-la ici
Le bug hunter, que fait-il ?
Il decide du temps qu'il a à consacrer au bug bounty
On n’a pas une autorisation de test, on doit etre invité sur la plate forme de bug bounty
Il y a une date de debut, et une date de fin, mais la date de fin c'est le bug hunter qui se l'impose
On a peut-être un bounty (récompense), si on remonte un bug
Pas de fishing.
Une question? Posez-la ici
Le Bug Bounty, comment faire?
LIRE! Lire lire lire lire la doc, tout ce qu'il y a à l'écran, et bien relire
Qui est le client? Le Gérant? Que fait-il ? Dans quel contexte?
Quoi? Perimetre? Une URL? Une application? Un domaine en wildcard?
RTFM
Qu’est-ce qui est accepté comme vulnérabilités?
Qu’est-ce qqui ne faut pas reporter?
Les XSS, c'est la base, on va très facilement en trouver, elles ne seront pas très rémunérées
Des contraintes?
Un user agent spécifique? Y a til des comptes à demander, Envoyer un mail...
Y a-t-il des outils à ne pas utiliser? Comme Nessus…
Regarder la grille de rémunération: combien paye le programme de bug bounty?
Y a-t-il de la doc sur l’API? On comprend le contexte, que sont les methodes appelées…
La chasse commence!
On fait du mapping, on doit connaitre notre cible
On récupère les informations sur les sous-domaines… Recherches Google, google dorks (site:example.com … Sublister (cherche dans virustotal…) qui va recuperer les sous domaines, massdns, certsh…
The harvester
Est-ce qu’il y a deja eu des fuites de codse pour en savoir plus?
Sur pastebin…
site:pastebin.com
Est-ce qu’il y a eu d’autres rapports de bug bountys, est-ce qu’ils utilisent tel ou tel moteur de template. Qu’y a-t-il eu comme bugs auparavant?
La cible, son evolution dans le temps?
Avec Netcraft, le mois dernier, on voit ce qu’il s’est passé sur la cible
Port scanning:
on cherche des services qui sont maqués, des applications un peu exotiques.
Découvrir les services oubliés
Fingerprinter les cibles très vote
Recherche de ressources:
Gobuster, dirbuster, wfuzz
Chercher des composants: Wappalyzer, whatweb
Quelle librairie JS est utilisée, quel est le serveur Web
Authentification.Session
On a une page login:
faire test / test
captcha?
Mot de passe oublié? Y a til une information si le user existe ou pas: on peut enumerer les users
Un token UNIQUE est-il envoyé? Comprendre comment le token est géré, il expire? On peut en générer 100…
Sur la session, une fois connecté, on un token, cookie… S’il est custom, on va essayer de voir s’il est unique, si l’enthropie est forte pour ne pas retomber une autre fois.
Avec Burp sequencer
Peut on rejouer le token, en changeant l’ID… regarder bricoler
Pentesting ou Bug bounty? La partie XSS
Les 2 types les plus connus: reflected? Stored?
On injecte ça où ? Cans tout ce qu’on voit, sur un malentendu ca peut parcher
<script>alert("xss");</script>
Plus rare: les blind XSS. On injecte le user agent, et quand l’admin consulte ses logs, ca va executer le code sur une interface invisible.
XSS hunter installé sur un VPS c’est pas mal: on a une notification d’email quand qqn execute le code qu’on a injecté.
On recupere le user agent, les cookies, le code html de la page…
Pentesting ou Bug bounty? Le CSRF
Idée: faire executer du code à un user sous sa session.
Lui faire faire ajouter des utilisateurs?
Supprimer des utilisateurs?
Ajouter des favoris?
Ajouter des objets au panier d’achat?
Changer le mot de passe de l’utilisateur?
Pentesting ou Bug bounty? L'injection SQL
Tout le monde connait….
On Fuzz, on envoie des wordlists, des scans, est…
Nuance entre SQLMAP et Burp
Une fois que l’on en a detecté une, on l’exploite
SQL Injection en pre-auth
Curl X GET https://foo.bar/index/token/
Pentesting ou Bug bounty? Idor
Insecure direct object reference
Acceder à des données/documents qui ne sont pas les notres
exemple, identifiant 1234 ca fonctionne, 1236 ca fonctionne et on récupere des infos qui ne sont pas à nous.
Partout ou on voit quelquechose unique, incrémenté? On va essayer d’acceder à d’autres informations.
Outils: tout ce qu’on veut pour incrémenter, multiplier les requetes… Navigateur…
IDOR en test d’intrusion:
Peut-on lire les messages des autres utilisateurs par exemple?
curl -X GET https://foo.bar/messages/
Accès aux documents privés via CSRF+XSS dans un tchat.
On met du code dans la boite du chat et ca va l’executer.
Pentesting ou Bug bounty? SSRF
On utilise la cible pour acceder à d’autres ressources. Internes
exemple.com prend en parametre un url et affiche autre chose
Peuton traffiquer l’url pour aller acceder à autre chose?
Peut-on mettre l’IP en hexa…?
Wordlist avec payloads: on envoie tous les payloads sur tous les ports et on voit ce qui se passe
Pentesting ou Bug bounty? Full path disclosure via un paramètre GET
Curl X GET http://foo.bar/account/create/id
Conclusion:
Plus on passe de temps sur le bug bounty, plus on a de chance d’arriver à trouver quelquechose; Le plus dur c’est de trouver du temps.
Cet article reflète exclusivement l'opinion de ses auteurs et n’engage en aucune façon Consultingit
Voilà, j'espère que ça vous a plu.
Besoin de pentesting ou bugbounty, contactez-nous
Conclusion:
Plus on passe de temps sur le bug bounty, plus on a de chance d’arriver à trouver quelquechose; Le plus dur c’est de trouver du temps.