GitHub pour les chasseurs de bug bounty

Apr 28 2023
Pour les chasseurs de primes de bogues, les référentiels GitHub peuvent révéler une variété d'informations potentiellement utiles. Il peut y avoir des problèmes avec des cibles qui ne sont pas toujours open source.

Pour les chasseurs de primes de bogues, les référentiels GitHub peuvent révéler une variété d'informations potentiellement utiles. Il peut y avoir des problèmes avec des cibles qui ne sont pas toujours open source. Parfois, des informations qui pourraient être utilisées contre l'entreprise cible sont révélées par erreur par les membres de l'organisation et leurs initiatives open source. Je vais vous donner un aperçu rapide dans cet article qui devrait vous permettre de commencer à analyser les référentiels GitHub à la recherche de vulnérabilités et à effectuer une reconnaissance générale.

1-Clonage de masse

Vous pouvez simplement effectuer vos recherches sur github.com, mais pour permettre les tests locaux, je vous conseille de cloner chaque référentiel cible. Le GitHubCloner de @mazen160 est un produit fantastique. Tout ce que vous avez à faire est d'exécuter le script pour être prêt à partir.

$ python githubcloner.py --org organization -o /tmp/output

      
                

Il est crucial de bien comprendre le projet que vous visez avant de commencer une analyse statique. Utilisez les fonctionnalités principales lors de l'exécution du projet. La raison pour laquelle j'appelle cela «l'étape Jobert» est parce que j'ai entendu dire qu'avant de commencer chaque chasse, Jobert utilise le projet et obtient une bonne compréhension de la cible avant de rechercher les faiblesses.

3- Analyse manuelle

Le dicton "apprendre à le faire, puis le casser" s'applique dans cette situation. Si vous pouvez apprendre un langage de programmation, vous devriez être capable de comprendre les tenants et les aboutissants des précautions de sécurité à prendre et à éviter.

Vous pouvez commencer à gripper une fois que vous êtes familiarisé avec la cible et son architecture. Recherchez des mots-clés qui vous intéressent, que vous connaissez ou dont vous savez que les développeurs se trompent fréquemment.

Voici une liste de base de certains des termes de recherche que j'utiliserai lors d'une première évaluation générale :

  • API et clé. (Obtenez d'autres points de terminaison et trouvez des clés d'API.)
  • jeton
  • secret
  • FAIRE
  • mot de passe
  • vulnérable
  • http:// & https://
  • CSRF
  • aléatoire
  • hacher
  • MD5, SHA-1, SHA-2, etc.
  • HMAC

Une autre étape critique consiste à examiner l'historique des commits. Vous serez surpris de la quantité d'informations que vous pouvez glaner à partir des commits. J'ai vu des contributeurs croire à tort qu'ils avaient supprimé les informations d'identification alors qu'elles restaient dans l'historique des commits. En raison de l'historique de git, j'ai découvert d'anciens points de terminaison qui fonctionnent toujours. Outre les préoccupations actuelles, vous pouvez rencontrer des problèmes historiques qui peuvent être évités grâce à d'anciens commits.

4- Outils

Parfois, l'automatisation des tâches ennuyeuses peut vous donner un aperçu de base de ce qu'il faut rechercher. Il est essentiel de se rappeler que vous ne devez jamais copier et coller des résultats d'analyse dans des rapports. Vous obtiendrez beaucoup de faux positifs, vous devez donc toujours enquêter attentivement sur les problèmes potentiels pour vous assurer qu'ils peuvent être exploités.

L'outil principal que j'utilise lors de la poursuite de projets Python est Bandit .

Bandit identifiera les problèmes courants mais renverra fréquemment des faux positifs ou des fruits à portée de main. Utilisez-le donc avec prudence. Sans aucun doute, il ne faut pas s'y fier.

$ bandit -r path/to/your/code -ll

Snyk.io est un outil formidable pour vérifier les dépendances. La plate-forme prend en charge une grande variété de langues.

Pour la reconnaissance, de nombreux chercheurs suggèrent d'utiliser Gitrob . Cet outil recherchera des informations sensibles dans les référentiels GitHub publics.

$ gitrob analyze acme,johndoe,janedoe

$ truffleHog https://github.com/dxa4481/truffleHog.git

Pour les applications Ruby on Rails, je recommande Brakeman . Brakeman est un scanner de sécurité d'analyse statique qui peut trouver une tonne de divers problèmes de sécurité dans le code.

Utilisez LinkFinder par Gerben Javado pour trouver des points de terminaison dans les fichiers JS du référentiel.

$ python linkfinder.py -i 'path/to/your/code/*.js' -r ^/api/ -o cli

OK, sérieusement, ne faites pas d'ingénierie sociale aux propriétaires du projet.

Rapporter vos découvertes

Comme toujours lorsqu'il s'agit de chasser les primes aux bogues, lisez attentivement la politique du programme. Il est très rare qu'un programme accepte les rapports via GitHub. Contactez l'équipe de sécurité ou si possible utilisez une plateforme de bug bounty telle que HackerOne ou Bugcrowd

D'un autre côté, une chose intéressante à propos des tests en boîte blanche est que, puisque vous avez accès au code, il peut être plus facile de suggérer un correctif ou de soumettre un correctif.

MERCI D'AVOIR LU CECI !