
una herramienta de monitoreo de cambios en JavaScript para bugbounties
JSMon - Monitor de Cambios JavaScript para BugBounty
Usando este script, puedes configurar una cantidad de archivos JavaScript en sitios web que deseas monitorear. Cada vez que ejecutes este script, estos archivos se obtendrán y se compararán con la versión obtenida anteriormente. Si han cambiado, recibirás una notificación a través de Telegram con un mensaje que contiene un enlace al script, los tamaños de archivo modificados y un archivo diff para inspeccionar los cambios fácilmente.


Para instalar JSMon:
git clone https://github.com/robre/jsmon.git
cd jsmon
python setup.py install
Debes configurar tu token de Slack o Telegram en el Entorno, por ejemplo creando un archivo .env:
touch .env
Con el contenido:
JSMON_NOTIFY_TELEGRAM=True
JSMON_TELEGRAM_TOKEN=TU TOKEN DE TELEGRAM
JSMON_TELEGRAM_CHAT_ID=TU ID DE CHAT DE TELEGRAM
#JSMON_NOTIFY_SLACK=True
#JSMON_SLACK_TOKEN=alguntoken
#JSMON_SLACK_CHANNEL_ID=algúncanal
Para habilitar Slack, descomenta las líneas de Slack en el archivo .env y agrega tu token.
Para crear un script cron que ejecute JSMon regularmente:
crontab -e
Crea una entrada como esta:
@daily /path/to/jsmon.sh
Ten en cuenta que debes ejecutar el archivo .sh, de lo contrario el entorno se desordenará.
Esto ejecutará JSMon una vez al día, a medianoche.
Puedes cambiar @daily por el horario que más te convenga.
Para configurar las notificaciones de Telegram, debes agregar tu clave API de Telegram y chat_id al código, al inicio de jsmon.py. Puedes leer cómo obtener estos valores aquí.
Nota: para el soporte de Slack, debes configurar tu aplicación de Slack correctamente y usar el token OAuth de Slack. La aplicación necesita tener permisos de carga de archivos y debe estar en el canal donde deseas que esté. Por último, debes comenzar con algunos objetivos que deseas monitorear. Vamos a crear un ejemplo:
echo "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js" >> targets/cdnjs-example
¡Todo listo! Ahora puedes ejecutar python jsmon.py para descargar los archivos especificados por primera vez.
Proporciona endpoints mediante archivos en el directorio targets/ (endpoints separados por líneas)
Cada endpoint se descarga y se almacena en downloads/ con su hash como nombre de archivo (primeros 10 caracteres del hash md5)
jsmon.json mantiene un registro de qué endpoints están asociados con qué hashes de archivo
jsmon está diseñado para seguir el rastro de archivos javascript en sitios web, pero se puede usar para cualquier tipo de archivo para agregar endpoints
@r0bre - Principal
@Yassineaboukir - Notificaciones de Slack