Применение операционной системы kali linux для тестирования WEB-ресурсов на несанкционированный доступ - Студенческий научный форум

XV Международная студенческая научная конференция Студенческий научный форум - 2023

Применение операционной системы kali linux для тестирования WEB-ресурсов на несанкционированный доступ

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Применение команд операционной системы kali linux для тестирования WEB-ресурсов на несанкционированный доступ

В настоящее время наблюдается активный рост применения информационных технологий и увеличивается количество информации, которая хранится и обрабатывается в цифровом виде. В сети Интернет хранится множество информации с разным уровнем доступа, это означает, что некоторая информация может быть доступна свободно, а некоторая требует определённого уровня доступа. Для той информации, которая не распространяется свободно всегда найдутся лица, у которых есть цель завладеть ей незаконным путём. Обычно получение конфиденциальной информацией происходит либо посредством получения данных из таблиц базы данных, либо более простым способом – входом в систему посредством подбора имени пользователя и пароля для авторизации в информационной системе.

Учитывая тот фактор, что у злоумышленников могут появиться намерения получить незаконный доступ к информации многие коммерческие компании прибегают к так называемому «тестированию на проникновение». Данный процесс предполагает поиск уязвимостей, которые могут привести к незаконному извлечению данных из БД и последующие их устранение. Если говорить о WEB-приложениях, то один из наиболее применяемых способов получения данных – подбор пароля методом полного перебора (Brute Force). Метод полного перебора позволяет подобрать логин и пароль пользователя при помощи специальной программы на основе словаря паролей. Особенностью данной программы является то, что она может посылать множество запросов и анализировать ответ сервера касательно правильности введённых данных. В данной статье рассмотрен способ несанкционированного доступа, также рассмотрены возможные способы защиты от этих действий.

Для тестирования вышеуказанных способов на несанкционированный доступ существует дистрибутив Kali Linux. Kali Linux – дистрибутив операционной системы linux на основе операционной системы debian, предназначенный в первую очередь для тестов на безопасность ресурсов. Особенностью Kali Linux является наличие большого числа различных программ для тестирования на безопасность.

Если говорить о возможности подбора пароля для WEB-приложения, то в Kali используется такая программа как Hydra. Один из методов, который использует программа Hydra – метод полного перебора (Brute Force). Полный перебор – метод решения математических задач, основанный на поиске решения задачи на основе исчерпывания всех возможных вариантов. Сложность данного метода зависит от количества возможных решений. Стоит отметить, что данные метод редко применяется в решении практических прикладных задач ввиду высокой сложности.

Для упрощения работы по подбору пароля данным методом можно сократить границу поиска паролей. Примером оптимизации может стать попытка «отрезать» варианты паролей, которые заведомо не могут быть использованы на сайте. Например, на практике можно столкнуться с тем, что некоторые сайты при регистрации требуют наличие в пароле не менее 8 символов. Если представить, что при попытке атаковать сайт атакующая машина располагает очень большим словарём из паролей от 1 символа, то можно отсечь все варианты паролей, которые меньше 8 символов. Практика применения полного перебора показывает, что при таком отсечении можно уменьшить размер словаря до 400 МБ. Это сильно сокращает время подбора пароля. Также, на практике работы с WEB-ресурсами можно столкнуться с такими требованиями к паролю как наличие латинских символов. Зная такие требования, можно убрать из словаря варианты комбинаций от 8 символов, которые не содержат такие символы. Таким образом, появляется ещё возможность для уменьшения времени поиска пароля к ресурсу.

Рассмотрим работу с программой Hydra, которая поставляется со стандартной сборкой Kali Linux. Данная программа предоставляет как графический интерфейс для настройки атаки на ресурс, так и позволяет запускать команды из терминала Linux. Пример для команды терминала, который запускает атаку на ресурс:

hydra 127.0.0.1 -l admin -P /root/passes.txt http-post-form "/pintest/auth.php:login=^USER^&password=^PASS^:F=«Invalid login, please try again»".

Рассмотрим представленную команду подробнее. Данная команда пишется в терминале Linux одной строкой и представляет из себя несколько параметров. Слово Hydra означает, что вызывается скрипт работы данной программы. Далее пишется название корневого каталога сервера (в данном случае атакуется локальная машина 127.0.0.1). После обозначение корневого каталога программе необходимо сообщить логин, для которого подбирается пароль. Для такого сообщения есть два режима. Режим –l говорит о том, что подбирается доступ к одному, заведомо известному логину пользователя (в случае представленной команды это логин admin), также можно предоставить программе словарь логинов, для чего необходимо указать режим поиска –L и передать строкой наименование файла-словаря с логинами. В результате при успешном завершении работы программа выведет в терминал нужные пароли в соответствии с представленными логинами. Такой же принцип работает и с паролями, но чаще всего используется режим поиска из файла (-P), иначе программа теряет смысл своего применения, т.к. один известный пароль проще проверить непосредственно через форму авторизации.

После того, как машине передана информация о способе подбора данных авторизации, необходимо передать информацию о методах передачи данных. В случае с указанной командой передаётся режим поиска http-post-form. Данная часть команды сообщает машине о том, что атакуемый ресурс обрабатывается протоколом http, данные на сервер отправляются через HTML-форму методом передачи данных POST. Стоит отметить, что также команда поддерживает метод GET, но на практике использование метода GET является опасным подходом, так как передача данных таким методом отражает передаваемые данные в строке URL-адреса. После того, как указаны способ передачи данных и используемый протокол машине необходимо сообщить, в каком каталоге находится скрипт, обрабатывающий данные для авторизации и посылающий пользователю ответ сервера. В случае представленной команды такой скрипт находится в папке pintest корневого каталога 127.0.0.1, а данные авторизации обрабатывает файл auth.php. В продолжении данной строки указываются ещё некоторые параметры. В символах ^^ передаются строки, подбираемые из файла, а в случае с ^USER^ указывается только строка admin. Также в данной строке присутствуют параметры login и password. Дело в том, что любой элемент (в случае с атакой полным перебором речь о полях ввода) на странице HTML имеет своё уникальное имя, по которому скрипт получает доступ к данным, которые введены в это поле. Т.к. разметка HTML на любом сайте доступна в публичном виде из режима разработчика браузера, не составляет труда узнать наименование этих параметров. В описании HTML формы поля представлены тегом input, для которого используется атрибут name, который должен носить уникальное значение. На рисунке 1 представлено HTML-описание формы со случайного сайта в сети Интернет. Это говорит о том, что имена данных параметров узнать не составляет труда.

Рисунок 1 – HTML-разметка формы авторизации.

На рисунке 1 видно, что поля авторизации носят такие имена как как username и password. Описание формы можно увидеть на любом сайте, нажав клавишу F12.

Таким образом, атакующей машине передаётся вся необходимая информация, однако есть ещё один очень важный параметр, правильная передача которого влияет на результат атаки. В связи с тем, что программа устроена так, что она посылает на сервер множество запросов и анализирует ответы на эти запросы, то программа должна различать критерии успешной или неудачной атаки на сайт. Таким критерием может послужить наличие в сгенерированной при ответе сервера HTML-странице определённой строки. В данном случае необходимо использовать строку, характерную для неуспешного ответа сервера. На рисунке 2 представлена HTML-страница, которая сгенерирована в результате ввода неверного пароля к учётной записи. Характерно, что в данной странице присутствует такая строка, как «Invalid login, please try again». Данная строка становится явным триггером того, что пароль предложенный WEB-ресурсу является неверным, значит попытка входа с такими учётными данными не может быть успешной.

Рисунок 2 – HTML-страница неудачной авторизации

Составив полную команду для атаки на сайт при помощи программы Hydra, можно отправить данный запрос в терминал и ожидать ответа. Практика показывает, что программа, используя словарь порядка 10 миллионов записей обрабатывает сайт примерно 4-5 часов, но это также может зависеть от мощностей, используемых машиной.

Стоит отметить, что от рассмотренного вида атаки есть некоторые способы защиты. Ведь именно для неуспешных результатов таких атак на сайтах часто требуется вводить пароль не менее определённой длины. Также некоторые WEB-ресурсы требуют наличие латинских символов. Так как латинские символы не являются гарантом защиты от Brute Force атаки, некоторые сайты также предлагают генерировать очень сложные пароли с применением специальных символов, таких как решётка, знаки препинания, знак процента и так далее.

Таким образом, в данной статье рассмотрен один из способов тестирования WEB-ресурса на проникновение – Brute Force атака. Конечно, данный способ не единственный для незаконного овладения данными (или тестирования на такую возможность), и для различных способов в Kali Linux есть множество различных инструментов, выполняющих задачи тестирования на проникновение. В данной статье рассмотрены базовые способы защиты от Brute Force атаки, такие как использование пароля не менее определённой длины, использование латинских символов или спецсимволов в составе пароля. Стоит отметить, что именно для программы Hydra возможным способом защиты от верного подбора пароля может стать внедрение скрытой строки с критерием неудачного входа в систему. Например, если внедрить в HTML-страницу успешной авторизации скрытую от пользователя строку «Invalid login, please try again», то это строка может «запутать программу» и повысит вероятность неверного подбора данных. При этом, она никак не помешает пользователю так как будет не видна на странице. Но также необходимо понимать, что ни один из способов не может дать гарантии защиты и необходимо использовать различные способы защиты, такие как двухфакторная аутентификация, когда настоящему пользователю сайта предлагаются различные способы верификации, такие как уведомление на электронную почту, SMS-сообщение на телефон или PUSH-уведомление, если речь идёт об экосистеме, которая имеет мобильное приложение.

Списоклитературы

    1. Что такое брутфорс: какие у него цели и кому это нужно–[Электронныйресурс]–https://selectel.ru/blog/what-is-brute-force/ (дата обращения 01.03.2023)

    2. Brute-force атаки с использованием Kali Linux – [Электронный ресурс] https://habr.com/ru/companies/pentestit/articles/434216/(датаобращения 05.03.2023).

    3. Брутфорс – [Электронный ресурс] https://encyclopedia.kaspersky.ru/glossary/brute-force/ (дата обращения 10.03.2023).

Просмотров работы: 8