
Comprueba a todos los mantenedores de todos los paquetes NPM y Pypi en busca de paquetes secuestrables mediante el re-registro de dominios.
Esta herramienta comprueba a todos los mantenedores de todos los paquetes en los registros de NPM y Python Pypi en busca de dominios no registrados o registros MX no registrados en esos dominios. Si un dominio no está registrado, puedes registrar el dominio e iniciar un restablecimiento de contraseña en la cuenta si no tiene la autenticación de dos factores habilitada. Esto te permite secuestrar un paquete y hacer lo que quieras con él.
Por favor, no lo uses con fines ilegales; úsalo solo para comprobar paquetes y enviarlos a programas de recompensas por errores (bug bounty).
Me puse en contacto con el equipo de seguridad de NPM sobre esto, pero no están interesados en este tipo de vulnerabilidad.
Ten en cuenta también que los mantenedores devueltos por la API no siempre reflejan a los mantenedores reales, pero a menudo puedes tener suerte.
¡Descarga primero el índice de paquetes! Esto puede llevar mucho tiempo ya que el servidor es extremadamente lento (tarda más de 30 minutos):
wget https://skimdb.npmjs.com/registry/_all_docs
Después, simplemente ejecuta la herramienta con ./hijagger npm. Para ver todas las opciones, usa el modificador --help. La salida también se guarda automáticamente en output.txt. Esta herramienta probablemente tardará varios días en ejecutarse debido al gran número de paquetes.
Para encontrar fácilmente los aciertos en la salida, usa grep para buscar HIT. El coloreado se basa en el número de descargas del paquete durante el último año.
La herramienta realiza muchas solicitudes DNS y whois, por lo que sugiero ejecutarla desde un servidor dedicado para no arriesgarte a que tu IP privada sea bloqueada.
Este modo funciona exactamente igual que el modo NPM, pero la API de Pypi no devuelve el número de descargas de un paquete. Estos datos solo están disponibles a través de Google BigQuery, pero esto complica mucho las cosas, por lo que los contadores de descargas y los colores basados en descargas no están implementados en los paquetes de Pypi.
./hijagger pypi