
Vérifie tous les mainteneurs de tous les paquets NPM et Pypi pour détecter les paquets détournables via le ré-enregistrement de domaine.
Cet outil vérifie chaque mainteneur de chaque paquet des registres NPM et Python Pypi pour détecter des domaines non enregistrés ou des enregistrements MX non enregistrés sur ces domaines. Si un domaine n'est pas enregistré, vous pouvez récupérer le domaine et initier une réinitialisation de mot de passe sur le compte s'il n'a pas d'authentification à deux facteurs activée. Cela vous permet de détourner un paquet et d'en faire ce que vous voulez.
Veuillez ne pas l'utiliser à des fins illégales, utilisez-le uniquement pour vérifier des paquets et les soumettre à des programmes de bug bounty.
J'ai contacté l'équipe de sécurité de NPM à ce sujet, mais ils ne sont pas intéressés par ce type de vulnérabilité.
Veuillez également noter que les mainteneurs retournés par l'API ne reflètent pas toujours les vrais mainteneurs, mais souvent vous pouvez avoir de la chance.
Téléchargez d'abord l'index des paquets ! Cela peut prendre beaucoup de temps car le serveur est extrêmement lent (plus de 30 minutes) :
wget https://skimdb.npmjs.com/registry/_all_docs
Ensuite, lancez simplement l'outil avec ./hijagger npm. Pour voir toutes les options, utilisez le commutateur --help. La sortie est automatiquement sauvegardée dans output.txt également. Cet outil fonctionnera très probablement plusieurs jours en raison du nombre élevé de paquets.
Pour trouver facilement les résultats dans la sortie, utilisez grep avec HIT. La coloration est basée sur le nombre de téléchargements du paquet au cours de la dernière année.
L'outil effectue beaucoup de requêtes DNS et whois, donc je suggère de l'exécuter depuis un serveur dédié pour ne pas risquer de voir votre adresse IP privée bloquée.
Ce mode fonctionne exactement comme le mode NPM, mais l'API pypi ne retourne pas le nombre de téléchargements pour un paquet. Ces données ne sont disponibles que via Google BigQuery, mais cela complique beaucoup les choses, donc les compteurs de téléchargements et les couleurs basées sur les téléchargements ne sont pas implémentés pour les paquets Pypi.
./hijagger pypi