JSMon - BugBounty向けJavaScript変更監視ツール
このスクリプトを使用すると、監視したいWebサイト上のJavaScriptファイルを複数設定できます。スクリプトを実行するたびに、これらのファイルを取得し、以前のバージョンと比較します。変更があった場合、Telegram経由で通知され、スクリプトへのリンク、変更されたファイルサイズ、変更を簡単に確認できる差分ファイルを含むメッセージが送信されます。


JSMonのインストール:
git clone https://github.com/robre/jsmon.git
cd jsmon
python setup.py install
環境変数にSlackまたはTelegramのトークンを設定する必要があります。例として、.envファイルを作成します:
touch .env
以下の内容を記述:
JSMON_NOTIFY_TELEGRAM=True
JSMON_TELEGRAM_TOKEN=YOUR TELEGRAM TOKEN
JSMON_TELEGRAM_CHAT_ID=YOUR TELEGRAM CHAT ID
#JSMON_NOTIFY_SLACK=True
#JSMON_SLACK_TOKEN=sometoken
#JSMON_SLACK_CHANNEL_ID=somechannel
Slackを有効にするには、env内のSlack行のコメントを解除し、トークンを追加してください。
JSMonを定期的に実行するcronスクリプトを作成するには:
crontab -e
以下のようなエントリを追加します:
@daily /path/to/jsmon.sh
.shファイルを実行する必要があることに注意してください。そうしないと環境が乱れます。
これにより、JSMonが1日1回、深夜に実行されます。
@dailyは、ご自身のスケジュールに合わせて変更できます。
Telegram通知を設定するには、jsmon.pyの先頭にTelegram APIキーとchat_idを追加する必要があります。これらの値の取得方法については、こちらをご覧ください。
注意: Slackサポートの場合は、Slackアプリを正しく設定し、Slack OAuthトークンを使用する必要があります。 アプリにはファイルアップロード権限が必要であり、アプリを配置したいチャンネルに参加している必要があります。 最後に、監視したいターゲットをいくつか設定します。例を作成してみましょう:
echo "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js" >> targets/cdnjs-example
以上です!これで python jsmon.py を実行して、初めて指定されたファイルをダウンロードできます!
targets/ディレクトリ内のファイルにエンドポイントを指定(1行に1エンドポイント)
各エンドポイントはダウンロードされ、そのハッシュ(MD5ハッシュの最初の10文字)をファイル名としてdownloads/に保存
jsmon.jsonは、どのエンドポイントがどのファイルハッシュに関連付けられているかを追跡
jsmonはWebサイト上のJavaScriptファイルを追跡するように設計されていますが、任意のファイルタイプのエンドポイントを追加するためにも使用できます
@r0bre - コア開発
@Yassineaboukir - Slack通知