11100101101101101011001101101010001110110101000000101100010111011011001011001011000110111111110100100111100110000100010110001101110010101111100001110101011101001001011100011010101101111001110011111101
11101101111001101100010101100010001011000001001001101100011110010000000110110000100111011010110110011100001101011100111010011000100001010011010011000010111111101110100100010111010010010101110101011001
01101100100011010011010110111000110110100110001100110001001000010011111111011001101110010110001001101101011000110001100100000110110101000000000111100001101011110010011001010011001001110101100010010000
11011101010100010000110000011001101000001111110100000100111101100001011111010011110100001010110100100110001000100000000100010011100010110000101000011100001101100101100000011000100001001110001110111010
10010001110110110011110101011101010101110111000110110111011101001011101001101101110010011011110101010111111010000001010100011111010010100000000110000000011011011010101101000001001111111001001000110011
01110111010111000001010001110000010111011011100010000100000100111001111100110111010111101110110001101010011100010111111011101001101101111111010100110101001001111000000011100111010100100100010000111110
10000100101110100110001000101110111001101110000101100101110000001111010110010100000010011010101101100010011000101001100001000000001011101101100110001111100101110001101010000101000010011011011010110011
10101110110110010010110011101001011110101101110101001010010011001111011000110110100001101010001001101101110111001010000010011000110111101110111011001001000001000000111011100111101100110011001100000100
01110001100000100111111111100011011011011111100111110101110100110111111011101001000000100010101110101100011010011000110001011000111101010001010011110001001010010001111000110111001000001111010011000100
00010010011111100001000001000110010110101011111000011011010100100000001111010011111010010010110010100111011100100011100111001010011010011110001011000111100111100011101111100011001111101101010101000001
00011101110101111100101011001101010111011110111000101010111011101111101111100101010100100000010101100111111101101110011001001100100110001011110000110100011001101001111001001110011101100111101010000011
00111100000100100110011100110000110110110010101001101100100000010000011001110011001110011110000100110001111101100010010000001101110001101001011111011011010010110101000010001111100101010011001011001111
11000100011110101110011000010011110000111001001001000111000010111110010110011001101011101110000111000001001000110111000101000101110101000101000011111100000100111100110011101111001111010110111110101100
01100001011100000100001000110000001100101111110000010110110011001011101000010101111101111101011100000011001011100010010011101111000111001100001110110100101111111011110111011100000011010101010001010111
11101100010100000101101011000111100001111100000111001010011011101101010000111100010111100101001011011010011110101001001001000011011111011101000000100101010011010111110100100000100010000011100000010010
00010001111010010010111110010011111110010110100100100010001001000011110000111101000110110111000010100000010000011010011000000111101111001100001010111111110101110000111011110100111000110011001111111110
11100110001010101111001000100010110111101111010110111100001100011001000001111100110111110111100001100111111110101110100011011000110011000010011110011001111001001100011100101011100110001100100110101011
01110001101110011111111101011110000010000111010111110010000011010010001011011011011011011100010110110100110110111000111111111010100111100011001110011110001001010010011011001001101111000110010000011100
01000010001100000001111010101101010001000110011100011110001000001001110111000000101001101100100101001110010001001011100110110101000010011110100011101000110010010100110011000111100001000000000110011010
10110010110101011001101011110110110101101101100100110101010010100110110100000001111000011011000110100110011011011100011001011110101000011101011010101111011000001010110100101001011101010110110101001001
11010010000101110000011110011010000110100111001100101001111001001101011100011100110111000001011011110000000000101101101110000101010100000000101011100111110011001001001010011110101001011001101111100111
01101000011011110011011110001101000011000001110001110100100010101110010111010010100010101100111001011111100100011011000011100111100110000111100001011111101111111001100111100001100011100110010111000001
10011101011000001101100011010011101001001110001011100000101001110110011101101110001101000101100010100101110010101101010110110110111110000011000101000100000110111010011001110101100110100011001010101001
01011111100110000000000111010000111110001100010000100001011000010010100101100000100010011101010001000100001100100111010011000111010110010001001110100010110101011011010101110111110110000010000111101100
10110010110010000111110001100010110010010010001011110101111100000100000101100100011010010001010101110100110000110100000101110001011111111010010001000000111110111001010100010001110110100010011010101000
00101111101100110001000011011011011111011111001000101001110100011011100010010111101110000101011010000000001011110000010011010001100101011101000011010000101111001011110111110110100010101001010011011101
11101101011011010001000001111110011010110111100101100101010100011001011001000101000110001001101111000101001101101001110111111101011001100110111001101100100110011000000000101010111110000011001000101011
00010011100011011111100010100110100110110110100100000000101000011000111001110100011111100101101000010101110111000011101000110000010010100011010001101010000011011011101011001000101110001111101010110011
11100011011010000101000001101101011101101110111010011000010010101011011011111000111010011000110011111110010011011110101010001001111100111110110010011011100111100101010001110001000000110000100000110001
10011110110000001110111100100110001000011011001010101110101101111111101011011101001111100001100100000001001100010001101001110111110111111001011110100000101011011111010101111111011100110000010100100000
10101111110100010101011000111110011001110000111001010011100001010101101111010011100010001000101100100111001110110110000100100011001110110110100100000110010010110001011111110101000010011111110011001110
10001000000011010000000011110110001000000101001001100100101100100000010100111010000110010111100000000110110011110001110011111100110100010100101000110000111100110111100100111011011111111011011010000001
11111110100010010000001011111011110001111011100111100001101000110000100010110001101111001111110001001001000100100100101100000110101101101011110110110010010011011110011111101001100110010110100001110100
00101001111110101011101011010101110000000101001110100011011111000100101001001000111000111001000001101011101011011010101000110010100101111111001010001010110100101110100000001011011000110011011001111010
11000110010011101100001100100111000111111011010001101000011111010101111000011110100010010110111110011010111011011011011111101000010001111000011110110000000100000010111011000111101000000010101001110100
01001000000001000101011101101100100000111000101011000010010110000111101101110010010001000001100001101011000111011111111010100010001100111100001001110100001000000010110000000010101001011110100100100100
11001011100100000010110101111101101111001110001101110111010100111100001010110000100100111110110010010110100101101001111000110101010010010001001001011100001101111010100111100101100110000011100100111101
11101100011011011010011110010110010110000011111000111010001001000110100011011001111101010000010001100001111010111010101011010100011110010110111001010111001010011101011000010110110001000000111101001110
01001100000110010010011010110101000011011111010111011001100110000010111000000000110100100101101111111011111110100010010011100000010101100101001111101000000100101100001001101000111100001001111010111000
01110101001000000000101111001110000100000111001010100100111010010000000010100011011011011011010010000011101010111101011111010000101001101000010100100100110100010100001010101110001101100010001000000010
01010000111100010010111101000110010011011000010000000100001110110001010011101011001000111110111111101111110010111110111000000111110111000111001010001101000110001000100111101101111110000110001111110110
11001111110110101010000000100101110010110100110011110000101000100011000101110100011110010011001100010100110100010011011001001011110111010010011011010010010000011101001001110011001101000001011000111110
                        

Что такое CTF? И как искать уязвимости в web структуре?

  Всем привет! В этой статье я вас кратко ознакомлю с CTF и приведу 2 простых примера с решением тасков на поиск уязвимости в web структуре и 1 пример захвата флага. На кушетке мы будем оперировать задания с ИИ, Брутфорс аутентификации в web приложении и pwn (оно же own) флага из сервера жертвы.

  CTF (Capture The Flag) - соревнование по этичному хакингу. Основная цель соревнований: найти уязвимость и забрать флаг. Обучение и участие в CTF проходит на ИСКЛЮЧИТЕЛЬНО учебных машинах в ИСКЛЮЧИТЕЛЬНО научных целях. Направления CTF разнообразные и каждый может найти свое. Небольшой пример направлений в CTF: Reverse Engeneering, Криптография, Стеганография, Форензика (aka Кибер Криминалистика), Web и многие другие. Подобные соревнования дают несоизмеримый и бесценный опыт, как в сфере ИБ, так и ИТ.

  И так, не буду долго томить и сразу перейдем к делу!

1. Атака на ИИ.

  Первый, самый простой, пример рассмотрим на площадке Portswigger, они же создатели BurpSuite. Заголовок нашего задания «Exploiting LLM APIs with excessive agency». Вкратце, Large Language Models (LLM) это всем знакомый ассистент, которого вы могли встретить на многих сайтах. Обычно они помогают искать информации об интересующем вас продукте, иногда даже можно запросить сбросить пароль, отправкой письма на почту. Но это подвергает их веб-атакам LLM, которые используют доступ к модели данных, API (Application Programming Interface) или пользовательской информации, к которой злоумышленник не может получить прямой доступ.

  Ознакомимся с нашей задачей перед атакой:

  Ссылка на задание: https://portswigger.net/web-security/llm-attacks/lab-exploiting-llm-apis-with-excessive-agency

  Задача проста - удалить пользователя carlos с помощью LLM атаки! Нажимаем на «Access The Lab» и переходим на сайт-жертву.

  Покопавшись на сайте, можем понять, что это интернет-магазин, позволяющий зайти как пользователь и, что самое главное, есть раздел «Live chat» с ИИ ассистентом. Соответсвенно переходим именно туда и зададим ему несколько вопросов.

  Работает ассистент безотказно. Еще и поддерживает русский язык, поэтому просьбу на удаление пользователя напишем на родном нам языке.

  Успех! Однако ИИ не всегда может идти по заранее заданному мною пути, поэтому можете представиться, как администратор и попросить удалить пользователя carlos. И не смотря на то, что мы тут не захватываем флаг, быть полезным и интересным заданию ничего не мешает.

  Ссылка на видео с решением: https://www.youtube.com/watch?v=d0iyfAt46kM

2. Брутфорс.

  Второй пример имеет уязвимость для грубой атаки (aka Bruteforce). Брутфорс может использоваться в различных задачах: начиная от перебора логина и пароля жертвы по заранее заданомму списку, заканчивая перебором возможных путей и поддоменов в URL строке сайта с таким же подходящим для данной задачи списком. Однако Брут - дело тонкое, просто запустить сам перебор и ждать положительного ответа не стоит. Как минимум, на это можно потратить десятки безуспешных часов при неаккуратном использовании. Данный заголовок задания гласит «Username enumeration via subtly different responses». Вдобавок нам дают 2 списка с предполагаемыми значениями логина и пароля жертвы. Звучит заманчиво, перейдем же к делу!

  Ссылка на задание: https://portswigger.net/web-security/authentication/password-based/lab-username-enumeration-via-subtly-different-responses

  Задача такова: с помощью уязвимости к брутфорсу нужно зайти на аккаунт жертвы. Помимо этого, нам даются списки с логином и паролем для перебора. Для данного задания, нам будет необходим инструмент BurpSuite, о котором я упоминал раньше. К счастью, нам не потребуются платные услуги данного инструмента, поэтому воспользуемся обычной версией BurpSuite Community Edition. После установки переходим в раздел «Proxy» и открываем браузер по кнопке «Open browser» и заходим на наш сайт с уязвимостью. Так же можно использовать данные услуги на любом удобном вам браузере с помощью расширения для браузера FoxyProxy, но это оставлю для следующих статей.

  Ссылка на скачивание BurpSuite Community Edition: https://portswigger.net/burp/communitydownload

  Включаем функцию Intercept (Перехват), нажав на кнопку «Intercept is off», чтобы просматривать каждый наш запрос на сервер сайта и его ответ. В нашей задаче будут встречаться только 2 запроса POST и GET. POST - отправление наших данных на сервер. GET - запрос на получение от сервера определенного контента. Чтобы отправлять соответствующие запросы, нажимаем на кнопку «Forward». Значение ping означает, вашу отправку запроса на сервер. Значение pong означает ответ от сервера.

  Продолжим! Отправляем намеренно неправильный логин и пароль. Перенаправляем данный запрос на Repeater, нажатием на ПКМ и выбором соответствующего пункта (так же можно использовать горячие клавиши Ctrl+R/Cmd+R) и отправляем дальше запрос кнопкой «Forward», пока не увидим ответ от сервера с принятыми значениями для аутентификации.

  Как и ожидалось, ответ от сервера отрицательный, но это однозначно может помочь. Во-первых, копируем фразу «Invalid username or password.». Во-вторых, в разделе Repeater отправляем несколько раз запрос кнопкой «Send», дабы проверить наличие ограничений на количество попыток входа в систему и проверить, как отвечает сервер на запросы; Ограничений нет, и ответы таковы: Status code (Код состояния) - 200, Content-Length (Длина контента обозначает количество символов в ответе) - имеет разные значения от 3200. Отправляем запрос в раздел Intruder (ПКМ Intruder/Ctrl+I/Cmd+I) и переходим туда. Добавляем знак § в значении username, выделив наш логин и нажав на кнопку «Add §». Это позволит перечислять значения для username из списка, чтобы сразу найти правильный логин, а после уже перебирать для него пароль (сократит это время для атаки в разы). Переходим во вкладку«Payloads» и вставляем список Username. После переходим на вкладку «Settings», добавляем в список «Grep - Match» значение «Invalid username or password.». Наконец-то, начинаем атаку кнопкой «Start attack»!

  Используя фильтр по добавленному значению «Invalid username or password.» находим отличие в запросе по логину application, а значит будем подбирать пароль именно для этого пользователя.

  Но сперва стоит объяснить «Как это все работает?». Обратившись к заголовку задания, работа будет связана с правильным перечислением логина. Самая главная задача при переборе пароля или логина - искать различие в ответах сервера. В основном различаться ответ может в коде состояния, во времени ответа от сервера, в длине котента. Однако код состояния и время ответа сервера ничем не примечательны, а в длине контент вечно меняется. То есть, все запросы разнятся, чтобы просто так не вытянуть нужный нам логин. Для этого и добавляем в список сообщение об ошибке, на случай, если для правильного логина ошибка иная.

  Далее очищаем наши знаки § кнопкой «Clear §». Пишем верный логин и добавляем § для значения в password. Меняем список в Payloads и продолжаем атаку!

  Есть! Применив фильтр для кода состояния, видим статус 302. Введем наши значения предполагаемого пароля и логина в форму аутентификации и очередной успех!!!

  Ссылка на видео с решением: https://www.youtube.com/watch?v=ESIc2z9r5o0&t=6s

3. PWN.

  Данное задание будет решаться на macOS и Kali Linux, а главным нашим инструментом будет терминал. На случай, если у вас нет встроенного дистрибутива Kali Linux, пользователям macOS и Windows советую скачать виртуальную машину с образом Kali Linux (ссылки ниже).

  Ссылка на скачивание VMWare для Windows: https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html   Ссылка на скачивание VMWare для macOS: https://www.vmware.com/products/fusion/fusion-evaluation.html   Ссылка на скачивание образа Kali Linux: https://www.kali.org/get-kali/#kali-installer-images

  Задание имеет интересное название «Meow». По тегам можно +- понять «что нас ждет?», но лучше упомяну об этой теме позже. При стандартной работе в Hack The Box (HTB) сначала нужно установить VPN (Virtual Private Network) соединение TCP (Transmission Control Protocol) или UDP (User Datagram Protocol) протокола с сервером. Вы можете использовать какой угодно, но я больше предпочитаю TCP. Прежде чем устанавливать соединение, нужно скачать один из предпочитаемых вами вариантов. Подключиться можно с помощью приложения OpenVPN Connect или терминала командой «openvpn». После подключения нажимаем на кнопку «Spawn Machine» и видим IP (Internet Protocol) адрес.

  Ссылка на задание: https://app.hackthebox.com/starting-point   Ссылка на скачивайте OpenVPN Connect: https://openvpn.net/client/

  Чтобы проверить VPN соединение с нашей машиной жертвы, воспользуемся инструментом «ping» для отправки пакетов на IP адрес.

 
                                    

     ping <IP-жертвы>

 

     Соединение есть, отправка пакетов прошла успешно! Далее используем инструмент «nmap», дабы увидеть какие порты открыты в системе и их сервисы. Помимо этого, добавляем опцию -sV, чтобы расследовать открытые порты для определения информации о сервисе или версии; с помощью -p ставим ограничение на количество сканируемых портов (1-го до 50-го), тк я уже решал это задание, нужный порт я уже знаю, поэтому этими действиями сокращу время на сканирование.

 
                                    

     nmap -sV -p 1-50 <IP_жертвы>

 

  Получаем мы следующее - сервис telnet использует 23 TCP на откртом порту и версией Linux telnetd. Вкратце, telnet - старый сервис, использующийся для удаленного управления другими хостами в сети и имеет много уязвимостей, поэтому на замену ему пришел ssh (Secure Shell). Немного покопавшись в Гугле можно взять на заметку следующее: поскольку цель запускает эту службу, она может получать запросы на соединение telnet от других хостов в сети (например, от нас самих). Обычно подключение запросов через telnet настраиваются с использованием комбинаций имени пользователя и пароля для повышения безопасности. Но при неправильной настройке аутентификации или позволения заходить анонимным пользователям, могут остаться такие наборы логина и пароля:

     -admin:admin;

     -administrator:administrator;

     -anon:anon;

     -anonymous:anonymous;

     -root:root.

  Это всего лишь малая часть таких примеров набора, иногда даже бывает, что и пароль не обязателен при вводе правильного логина администратора.

  И так, проверим же, есть ли подобная уязвимость у сервиса нашей жертвы.

 
                                    

     telnet <IP_жертвы>

 
 
                                    

     <Your_Password>

 
 
                                    

     root

 

  Если у вас не найдена команда «telnet», введите следующую команду: для macOS «brew install telnet»; для Kali Linux «sudo apt install telnet», так же перед установкой будет запрос на введение вашего пароля, тк перед командой действует запрос от имени супер-пользователя «sudo» (при вводе пароля вы его видеть не будете и если допустили ошибку, отправьте запрос и попробуйте снова ввести пароль), без этого права вы не сможете заставить работать установщик «apt».

  И так, при запуске команды «telnet» вам нужно ввести пароль от пользователя ОС (Операционной Системы), видеть вы его не будете и исправить его не можете, если допустили ошибку, отправьте запрос и попробуйте ввести пароль снова. Опробовав мой небольшой список набора логинов и паролей, получаем успешный результат на отрезке с логином root. Причем пароль в таком случае не требуется!

 
                                    

     ls

 
 
                                    

     cat flag.txt

 

  Далее мы используем команду «ls», чтобы увидеть, содержимое домашнего каталога. Видим файл «flag.txt» и читаем его с помощью команды «cat». И все! Флаг наш! Переходим обратно в HTB, отвечаем на ключевые вопросы, ответы на которые есть в самом решении задания и вставляем наш флаг!

  На этом все! Надеюсь, вам понравилось решать эти задания вместе со мной, ведь дальше вас будет ждать больше подобных статей. Следующая будет про OSINT и криптовалюту, в виде тасков из реальных, прошедших CTF! Уровень будет там куда сложнее, но тем и интереснее! Но прежде, чем мы попрощаемся, можете ознакомиться с моим сайтом и подписаться на нашу группу (если вы уже это не сделали)!

  Ссылка на видео с решением на Kali Linux: https://www.youtube.com/watch?v=xOx7xNpEAHw&t=6s   Ссылка на видео с решением на macOS: https://www.youtube.com/watch?v=iqPIBD2m8Qg   Наша группа: https://vk.com/urs3c

  Удачи! И до новых встреч!