Атака на Jupyter: Крестовый Поход против DataScientist’ов.



🔴 Здравствуй, ангел данных и беспощадная машина с интеллектом! Пришло время раскрыть засекреченные файлы об игрушках для мозга, что называются Notebook'ами. Без них как без зубов — скучно и бесполезно, особенно когда в игру вступают тонны данных и нейронки, затаившись на дне алгоритмов.



Алё, в ритме стремительного вихря прокрутим еще раз, что творят эти штуки: куски кода, словно нити ДНК нашей цивилизации, светопредставления в виде графиков, почти космические, и команда, что сочится маслом сотрудничества (можно даже шерить Notebook для совместной работы) — всё это под одной крышей Notebook'a.



Но там, в тени клавиш, под одеялом битов, крадется чудище под названием «Угроза ААА». О, да, не думайте, что это только os.system(command) поджидает вас в темноте, — океан угроз шире, чем вы можете себе представить.



Давайте прогуляемся по кладбищу этих угроз с факелом в руках, выкапывая истины там, где думали, что лежат только секреты. Некоторые заклинатели данных, а-ля фараоны цифрового века, наивно ставят пароли на свои Notebook'и. Пароли, говоришь? Будто это остановит настойчивых злоумышленников от того, чтобы заглянуть за завесу jupyter server'а, что оживает каждый четверг, словно кладбище в полночь?



🤔 Где же хранится пароль?



Ответ на самом деле гениален – он хранится тут /Users/you/.jupyter/jupyter_notebook_config.json, в формате sha256, sha1 или может быть даже в argon2. Очевидно, захватив пароль, мы можем первое что сделать – поробовать пробрутить его (john, hashcat). Брутить мы можем и этим метасплоит модулем.



А если речь идёт об IPython, то тут ~/.ipython/profile_default/security/notebook_secret – хранится ответ на философский вопрос "Это точно ты, мятежная душа, запускаешь notebook?. Проверим по файлу, определим кто-ты из этого файла и можешь ли ты иметь доступ к нему…”.. можно заюзать этот файл для обхода некоторых ограничений...