Мой приятель, работающий в области информационной безопасности, сообщил мне кое-что, во что я должен попытаться вникнуть. Тестирование на проникновение, CTF — вся девятка.

Я имею в виду, что, если честно, я мало знаю много о проведении тестов на проникновение или любых других вещах с красной командой. Основываясь на своих школьных знаниях и моих сертификатах, я могу отбарабанить кучу атак, как скидди, но выполнять их? Понимание их? Ищете полезное во время разведки, понимаете, к каким портам можно подключаться, подключаетесь через бэкдоры? Я не уверен, как сделать все это точно. Я определенно могу погуглить некоторые потоки Stack Overflow, собрать их воедино и таким образом получить понимание, но это не то, чего хочет компания или организация. Они хотят, чтобы вы сидели за своим столом, понимали свою работу и выполняли ее эффективно.

Так что это будет мой небольшой набег на это.

Мой приятель сообщил мне о HackTheBox, если вы читаете это, я уверен, что вы знаете, что это такое. Если нет, то это веб-сайт, который позволяет вам подключаться через VPN к кондиционированной сети и дает вам полную свободу действий, чтобы использовать множество хакерских методов против систем, чтобы требовать флаги для ваших CTF (которые показывают, что вы выполнили цель).

Конечно, я перехожу на веб-сайт, чтобы войти, и вижу, что вам нужен код приглашения. Я прошу своего приятеля посмотреть, может ли он прислать мне один — может быть, это что-то вроде Элло или что-то секретное? — он смеется надо мной и говорит, что мне нужно сгенерировать его самому? Хм? Хорошо? (Смеется над тем фактом, что я полностью пропустил маленький текст с надписью «не стесняйтесь взломать себя») Я ищу по всему веб-сайту ссылку, которую я могу использовать, возможно, она скрыта что-то вроде белого фона) — я зависаю над всем, чем могу. Единственное, что он говорит мне, это открыть инспектор и идти оттуда.

Ах я вижу. Меня уже бросают в бассейн, а? Я не знал, что должен был думать, что вход в систему будет трудным! Я предполагаю. Раньше я был внештатным веб-разработчиком, поэтому я знаю, как справляться с такими вещами; Я не абсолютная обезьяна, когда дело доходит до компьютеров.

ВНИМАНИЕ: НЕ ПРОДОЛЖАЙТЕ ЧИТАТЬ, ЕСЛИ У ВАС НЕТ КОДА.

Используя Firefox, первое, что я сделал, это открыл Инспектор, чтобы посмотреть, что происходит. Первое, что бросилось в глаза, это импортируемый файл inviteapi.min.js. Хорошо. Звучит достаточно разумно? Посмотрим, как выглядит содержимое кода. Я уже могу сказать, что уменьшенная версия этого файла будет выглядеть как тарабарщина.

Хорошо, мы куда-то движемся. Я думаю, что для них имеет смысл перечислять имена своих функций открытым текстом. Не хочу ломать какой-то мозг n00bs (мой пока цел). Хорошо. Давайте посмотрим, что произойдет, если мы просто случайным образом введем некоторые из этих функций в консоль Firefox?

Хороший! На самом деле мы получаем код успеха 200 для его запуска. Если он не возвращает true без параметров, я думаю, чтобы продолжить с легкостью входа? Давайте откроем объект и посмотрим, что внутри.

Ух ты. Используете ROT13 для этого теста шифрования? Интересный выбор… Я бы использовал что-то вроде base64 или даже просто шестнадцатеричное кодирование, чтобы оно выглядело как какой-то искаженный текст. Я хочу использовать что-то вроде scytale и заставить людей делать стержень САМИ! (это шутка)

Хорошо. Давайте пропустим это через декодер.

Ой. Прохладный! Я думаю, мы почти закончили? Есть много способов, которыми мы можем делать POST-запросы, некоторые инструменты командной строки (например, curl) могут сделать это за вас, и я полагаю, что есть также инструмент burpsuite, который также может делать некоторые модифицированные POST-запросы для вас? К счастью, Firefox версии 67.0.4 тоже может это делать! Итак, давайте перейдем к: https://hackthebox.eu/api/invite/generate.

Откройте Инспектор, перейдите на вкладку «Сеть». Вы увидите список методов POST и GET, выполненных во время подключения. Выберите любой метод GET, неважно какой. Мы повторно отправим GET для html-документа — веб-страницы — так как я уверен, что для этого не будет никаких ошибок. Справа на всплывающей панели вы увидите вкладку «Заголовки». И под этим вы увидите некоторую информацию о заголовках и коде состояния, которые были отправлены. Вы также увидите кнопку «Изменить и отправить повторно». Нажмите на это и просто измените «GET» на «POST» и нажмите «Отправить». Потрясающий! Теперь у нас есть 200 успешных POST-запросов, успешно отправленных на сервер! Выберите его, перейдите на вкладку «Ответ», и теперь мы увидим объект JSON с некоторой информацией в нем.

Интересный. Параметр «код» отображается как какой-то зашифрованный текст с полем «формат» после того, как он помечен как «закодированный». Хорошо. Я не уверен на 100%, что это можно закодировать, просто взглянув на это, но давайте посмотрим.

После использования «GSuite Toolbox Encode/Decode» и выбора всех параметров «декодирования» кажется, что код был в Base64!

Это было довольно круто. Я знаю, что на самом деле это не «взлом», но то, что я могу сделать что-то подобное без (большой) удаленной помощи — помимо того, что мой приятель говорит мне копнуть глубже, — думаю, делает мне честь. Ну что ж. Теперь, чтобы узнать, как на самом деле что-то делать!