Всем привет!
Судя по реакции на прошлую статью — лайки, комменты, спасибо — она вам зашла. Это, честно говоря, сильно смотивировало меня написать ещё одну.
Понимаю, что эта тема, скорее всего, покажется вам менее полезной, чем SQL инъекция — всё-таки, если судить по форуму, каждая третья тема в разделе “Уязвимости web-приложений” связано со скулей) Обидно конечно.
Но, по моему мнению, эта статья будет реально полезна тем, кто занимается веб пентестом. Особенно тем, кто хочет вытянуть максимум из клиентской части и не пропустить ничего важного.
Если вам нужно подробное пособие по рекону и анализу JS файлов — дайте знать, с радостью напишу как я это делаю.
Ладно, хватит прелюдий, давайте к делу.
Что же такое Jsmon?
Если заглянуть на GitHub, то:
Проще говоря, Jsmon — это инструмент, который мониторит JS файлы на вашем таргете. Он раз в определенное время шлёт запросы, сравнивает содержимое и, если находит изменения — стучит вам в Telegram. Причём не просто «что-то поменялось», а с удобной HTML отчёткой, где всё разложено по полочкам: что именно изменилось, где и как.
Вы можете спросить: а наху это надо?
А я отвечу: чтобы быть первым, кто протестирует новый функционал сайта. И чтобы не пропустить вкусные вещи, которые разработчики случайно (или не очень) оставили — будь то API ключи, пароли, слитые пути и прочее добро.
Дело в том, что разработчики довольно часто оставляют в JS файлах всякие ключи — особенно в комментариях. Просто забывают убрать.
Что касается функционала: если вы вдруг заметили, что в JS файле внезапно появилось несколько сотен (а то и тысячу) строк кода — скорее всего, на сайте появился новый функционал. А как мы знаем, именно в свежем коде чаще всего и прячутся баги.
На этом с теорией всё, и так получилось объемно. Переходим к практике.
Скачиваем Jsmon:
И через любой текстовый редактор добавляем свои данные от тг бота в файле jsmon.py
Кстати, в Jsmon можно добавить и оповещения в Slack, но, если честно, я им никогда не пользовался. Телеги мне с головой хватает.
Теперь настроим автоматический запуск через cron, чтобы jsmon сам запускался регулярно:
И в самом конце добавим строку:
Это будет запускать Jsmon каждый день, ровно в полночь.
Можете указать своё значение вместо @daily, если хотите запускать чаще или в другое время. Но, по моему опыту, прогон раз в сутки — самое адекватное решение: не грузит лишний раз и при этом держит вас в курсе.
Если что-то пошло не так и разобраться самому не вышло — вот годный гайд по установке: гайд
Теперь добавим JS файлы, которые будем мониторить.
В папке /targets нужно создать текстовый файл (например, microsoft.txt) и вставить в него ссылки на все JS-файлы, которые вы собрали для анализа.
У нас есть вот такой одностраничный сайт.
На первый взгляд — ничего особенного, обычная болванка без каких-либо фич. Но давайте всё же посмотрим че по JS.
Да, есть 1 js файл. Я его проанализировал, и, честно говоря, ничего интересного не нашёл.
Ну ладно, давайте всё таки кинем его в jsmon.
Мало ли — сегодня ничего нет, а завтра появится что-то интересное. Кто знает, может разработчик решит по-быстрому выкатить новую фичу и забудет прибрать за собой.
Я создал файл localhost в папке /targets и закинул туда ссылку на JS-файл с этого сайта.
Теперь давайте запустим jsmon.sh, чтобы изменения вступили в силу:
Всё, теперь остаётся только ждать.
Проснувшись утром, я увидел вот это:
Открыв файл — мягко говоря, удивился.
Конечно, в реальной жизни такие секреты скорее удаляют, а не добавляют. Но суть в том, что с jsmon вы всё равно это заметите. Даже если это временно, случайно или "на день".
Не судите строго этот пример — он учебный, но вполне отражает, как работает инструмент и зачем он нужен.
Если статья была полезной — не поленитесь нажать лайк, оставить коммент или просто написать «спасибо» в теме.
Если будет интерес к теме — сделаю статью по JS-рекону и парсингу. Там тоже много интересного.
Всем мир, багов и денег!

Судя по реакции на прошлую статью — лайки, комменты, спасибо — она вам зашла. Это, честно говоря, сильно смотивировало меня написать ещё одну.
Понимаю, что эта тема, скорее всего, покажется вам менее полезной, чем SQL инъекция — всё-таки, если судить по форуму, каждая третья тема в разделе “Уязвимости web-приложений” связано со скулей) Обидно конечно.
Но, по моему мнению, эта статья будет реально полезна тем, кто занимается веб пентестом. Особенно тем, кто хочет вытянуть максимум из клиентской части и не пропустить ничего важного.
Если вам нужно подробное пособие по рекону и анализу JS файлов — дайте знать, с радостью напишу как я это делаю.
Ладно, хватит прелюдий, давайте к делу.
Что же такое Jsmon?
Если заглянуть на GitHub, то:
Используя этот скрипт, вы можете настроить ряд файлов JavaScript на веб-сайтах, которые вы хотите отслеживать. Каждый раз, когда вы запускаете этот скрипт, эти файлы будут извлечены и сравнены с ранее извлеченной версией. Если они изменились, вы получите уведомление через Telegram с сообщением, содержащим ссылку на скрипт, измененные размеры файлов и файл diff для легкой проверки изменений
Проще говоря, Jsmon — это инструмент, который мониторит JS файлы на вашем таргете. Он раз в определенное время шлёт запросы, сравнивает содержимое и, если находит изменения — стучит вам в Telegram. Причём не просто «что-то поменялось», а с удобной HTML отчёткой, где всё разложено по полочкам: что именно изменилось, где и как.
Вы можете спросить: а наху это надо?
А я отвечу: чтобы быть первым, кто протестирует новый функционал сайта. И чтобы не пропустить вкусные вещи, которые разработчики случайно (или не очень) оставили — будь то API ключи, пароли, слитые пути и прочее добро.
Дело в том, что разработчики довольно часто оставляют в JS файлах всякие ключи — особенно в комментариях. Просто забывают убрать.
Что касается функционала: если вы вдруг заметили, что в JS файле внезапно появилось несколько сотен (а то и тысячу) строк кода — скорее всего, на сайте появился новый функционал. А как мы знаем, именно в свежем коде чаще всего и прячутся баги.
На этом с теорией всё, и так получилось объемно. Переходим к практике.
Скачиваем Jsmon:
Код:
git clone https://github.com/robre/jsmon.git
cd jsmon
python3 setup.py install
И через любой текстовый редактор добавляем свои данные от тг бота в файле jsmon.py
Кстати, в Jsmon можно добавить и оповещения в Slack, но, если честно, я им никогда не пользовался. Телеги мне с головой хватает.
Теперь настроим автоматический запуск через cron, чтобы jsmon сам запускался регулярно:
Код:
crontab -e
И в самом конце добавим строку:
Код:
@daily /<путь до jsmon>/jsmon.sh
Это будет запускать Jsmon каждый день, ровно в полночь.
Можете указать своё значение вместо @daily, если хотите запускать чаще или в другое время. Но, по моему опыту, прогон раз в сутки — самое адекватное решение: не грузит лишний раз и при этом держит вас в курсе.
Если что-то пошло не так и разобраться самому не вышло — вот годный гайд по установке: гайд
Теперь добавим JS файлы, которые будем мониторить.
В папке /targets нужно создать текстовый файл (например, microsoft.txt) и вставить в него ссылки на все JS-файлы, которые вы собрали для анализа.
У нас есть вот такой одностраничный сайт.
На первый взгляд — ничего особенного, обычная болванка без каких-либо фич. Но давайте всё же посмотрим че по JS.
Да, есть 1 js файл. Я его проанализировал, и, честно говоря, ничего интересного не нашёл.
Ну ладно, давайте всё таки кинем его в jsmon.
Мало ли — сегодня ничего нет, а завтра появится что-то интересное. Кто знает, может разработчик решит по-быстрому выкатить новую фичу и забудет прибрать за собой.
Я создал файл localhost в папке /targets и закинул туда ссылку на JS-файл с этого сайта.
Теперь давайте запустим jsmon.sh, чтобы изменения вступили в силу:
Всё, теперь остаётся только ждать.
(Предсатвим, что прошло 5 дней)
Проснувшись утром, я увидел вот это:
Открыв файл — мягко говоря, удивился.
Конечно, в реальной жизни такие секреты скорее удаляют, а не добавляют. Но суть в том, что с jsmon вы всё равно это заметите. Даже если это временно, случайно или "на день".
Не судите строго этот пример — он учебный, но вполне отражает, как работает инструмент и зачем он нужен.
Если статья была полезной — не поленитесь нажать лайк, оставить коммент или просто написать «спасибо» в теме.
Если будет интерес к теме — сделаю статью по JS-рекону и парсингу. Там тоже много интересного.
Всем мир, багов и денег!


(Предсатвим, что прошло 5 дней)