Комната начинается с того, что дает нам список имен пользователей, еще один из паролей и веб-страницу со страницей входа в систему, так что давайте проанализируем и взломаем ее! Ссылка: https://tryhackme.com/room/capture
Сначала я открыл Burp Suite и перехватил запрос, используя тестовые учетные данные:
Если мы перенаправим запрос и проверим браузер, мы увидим, что на сайте используется неправильная политика отображения сообщения об ошибке, которое показывает, существует ли пользователь в базе данных (Ошибка: пользователь «тест» не существуют), поэтому давайте начнем перечисление имен пользователей.
Снова сделайте запрос и в Burp Suite нажмите CTRL + I, чтобы отправить его злоумышленнику, очистите уже определенные маркеры полезной нагрузки, оставайтесь со снайперской атакой (только 1 цель) и добавьте маркер к значению имени пользователя.
После этого заходим в пейлоады и в настройках пэйлоада [Простой список] загружаем скачанный вами список юзернеймов потом заходим в Настройки и в Grep — Сопоставить и добавляем пункт «не существует», это покажет когда эта строка появится в ответе и если это не появляется, это означает, что пользователь существует.
После нескольких попыток наши результаты изменятся, потому что сайт обнаружил атаку и начал использовать капчу, чтобы остановить нас, капча проста, поэтому я решил создать свой собственный скрипт на питоне, чтобы выполнить брутфорс, и загрузил его на свой гитхаб: https://github.com/alfredoneves/main/blob/main/python/hacking_tools/login_brute.py
Я рекомендую вам изучить python или другой скриптовый язык, здесь нецелесообразно объяснять, что делает каждая команда скрипта, но я сделаю пошагово:
- Я определил на сайте, что после запуска капчи она появится только в первый раз после обновления страницы после того, как я нажму кнопку «Войти», поэтому первый запрос не будет выполнен, потому что он будет отправлен без капчи (проверьте в отрыжке, что во втором запросе появится новый параметр «капча»);
- Чтобы сделать запрос POST, нам понадобятся некоторые заголовки и данные, которые мы можем найти в истории Burp Suite, а библиотека python нуждается в них в формате словаря;
- Я прочитал файл с именами пользователей и сохранил его в очереди (можно было бы использовать список, но я уже привык к очереди);
- Попробовав учетные данные и проверив исходный код страницы, вы увидите, что строка, содержащая математическую операцию для капчи, является единственной, имеющей символ «?», поэтому я использовал ее как способ получить числа для совершить операцию (для этого будет использована функция поиска);
5. Теперь делаем логику для извлечения чисел и знака математической операции, обновляем значение капчи на каждой итерации и проверяем, есть ли в ответе строка «не существует» (если нет, то из-за первая попытка или имя пользователя найдено)
PS: я люблю печатать много информации, поэтому не стесняйтесь изменять ее, если хотите, чтобы было легче увидеть, когда имя пользователя найдено, или вы можете перенаправить вывод скрипта в файл и проанализировать его отдельно ( ./login_brute .py [url] ›› файл)
6. Я не использовал потоки, чтобы упростить программу, наберитесь терпения, получите имя пользователя, а теперь немного практики:
Теперь, когда мы нашли имя пользователя, оно будет константой в сценарии, а пароль будет меняться, поэтому измените сценарий, чтобы он читал файл паролей, переменную data0, которая будет отправлена в POST, условие для вашего предупреждающего сообщения ( проверьте burp с правильным именем пользователя и будьте осторожны со специальными символами, потому что они могут быть представлены по-другому), запустите скрипт еще раз, и когда используется правильный пароль, ответом на запрос будет флаг ПОЗДРАВЛЯЕМ!
Это моя первая запись в TryHackMe, я написал ее, потому что увидел, что никто этого не сделал, и я хочу вернуть всю помощь, которую я нахожу в Интернете. Я надеюсь, что вам понравилась эта комната и вы узнали что-то ценное, не стесняйтесь писать мне, если у вас есть какие-либо сомнения https://www.linkedin.com/in/alfredo-neves-56398a218/ и продолжайте учиться!