7.3.2.4 Lab - Attacking a mySQL Database
.docx
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
Кафедра защищенных систем связи
ОТЧЁТ
по лабораторной работе № 7.3.2.4 на тему: Lab - Attacking a mySQL Database
по дисциплине «Безопасность компьютерных систем»
Выполнили: студенты группы ИКТК-96
Беляев Д.М.
Пухов Д. А. Орлов М.А.
Принял: доцент
Кушнир Д.В.
Лабораторная работа. Атака на базу данных mySQL
Задачи
В этой лабораторной работе мы рассмотрим файл PCAP из предыдущей атаки на базу данных SQL.
Общие сведения и сценарий
Атаки с внедрением SQL-кода позволяют хакерам вводить инструкции SQL в веб-сайт и получать ответы из базы данных. Это позволяет злоумышленникам манипулировать текущими данными в базе данных, подменять удостоверения и совершать прочие вредоносные действия.
Файл PCAP была создан для просмотра предыдущей атаки на базу данных SQL. В этой лабораторной работе вы рассмотрите атаки на базу данных SQL и ответите на вопросы.
Необходимые ресурсы
Виртуальная машина рабочей станции CyberOps
Доступ к Интернету
Откройте файл PCAP и следуйте за злоумышленником, атаковавшим базу данных SQL.
Вы воспользуетесь программой Wireshark, распространенным сетевым анализатором пакетов, чтобы выполнить анализ сетевого трафика. После запуска Wireshark вы откроете ранее сохраненные данные из сети и шаг за шагом проследите атаку с внедрением SQL-кода против базы данных SQL.
Откройте Wireshark и загрузите файл PCAP.
Приложение Wireshark можно открыть с помощью различных методов на рабочей станции Linux.
Запустите виртуальную машину рабочей станции CyberOps.
Нажмите Applications > CyberOPS > Wireshark (Приложения > CyberOPS > Wireshark) на рабочем столе и найдите приложение Wireshark.
В программе Wireshark щелкните Open (Открыть) в середине приложения в разделе Files (Файлы).
Просмотрите каталог /home/analyst/ и найдите lab.support.files. В каталоге lab.support.files откройте файл SQL_Lab.pcap.
Файл PCAP открывается в программе Wireshark и показывает собранный сетевой трафик. Этот файл сбора данных распространяется на период протяженностью 8 минут (441 секунду) ― длительность этой атаки с внедрением SQL-кода.
Назовите два IP-адреса, задействованные в этой атаке с внедрением SQL-кода, на основе показанной информации.
____________________________________________________________________________________
Просмотр атаки с внедрением SQL-кода.
На этом этапе вы увидите начало атаки.
В данных, собранных программой Wireshark, щелкните правой кнопкой мыши по строке 13 и выберите Follow HTTP Stream (Отслеживать поток HTTP). Строка 13 выбрана потому, что это HTTP-запрос GET. Его очень удобно использовать в следующем потоке данных, так как уровни приложения видят его, что приводит к проверке запроса на внедрение SQL-кода.
Трафик источника показан красным цветом. Источник отправил запрос GET на хост 10.0.2.15. Синим показано, как устройство назначения отвечает источнику.
Щелкните Find (Поиск) и введите 1 = 1. Выполните поиск данной записи. Когда текст найден, нажмите кнопку Cancel (Отмена) в поле поиска текста. Строка 1 = 1
На целевой машине 10.0.2.15 злоумышленник ввел запрос (1 = 1) в поле поиска идентификатора пользователя, чтобы выяснить, уязвимо ли приложение к внедрению SQL-кода. Вместо того чтобы ответить сообщением об ошибке входа в систему, приложение выдало запись из базы данных. Злоумышленник убедился, что может вводить команды SQL и получать ответы базы данных. Строка поиска 1=1 создает инструкцию SQL, которая всегда имеет значение true. В этом примере не имеет значения, что вводится в поле; значение всегда будет true.
Закройте окно Follow HTTP Stream (Отслеживать поток HTTP).
Нажмите кнопку Clear (Очистить), чтобы показать весь сеанс связи Wireshark.
Атака с внедрением SQL-кода продолжается...
На этом этапе вы увидите продолжение атаки.
В данных, собранных программой Wireshark, щелкните правой кнопкой мыши по строке 19 и выберите Follow HTTP Streamо (Отслеживать поток HTTP).
Щелкните Find (Поиск) и введите 1=1. Выполните поиск данной записи. Когда текст найден, нажмите кнопку Cancel (Отмена) в поле поиска текста.
Злоумышленник ввел запрос (1' или 1 = 1 union select database(), user()#) в поле поиска идентификатора пользователя на целевом объекте 10.0.2.15. Вместо того чтобы ответить сообщением об ошибке входа в систему, приложение выдало следующую информацию.
Имя базы данных — dvwa, пользователь базы данных — dvwa@localhost. Также показано несколько учетных записей пользователей.
Закройте окно Follow HTTP Stream (Отслеживать поток HTTP).
Нажмите кнопку Clear (Очистить), чтобы показать весь сеанс связи Wireshark.
Атака с внедрением SQL-кода предоставляет информацию о системе.
Злоумышленник продолжает и начинает искать более конкретную информацию.
В данных, собранных программой Wireshark, щелкните правой кнопкой мыши по строке 22 и выберите Follow HTTP Stream (Отслеживать поток HTTP). Красным цветом показан источник трафика. Он отправляет запрос GET на хост 10.0.2.15. Синим показано, как устройство назначения отвечает источнику.
Щелкните Find (Поиск) и введите 1=1. Выполните поиск данной записи. Когда текст найден, нажмите кнопку Cancel (Отмена) в поле поиска текста.
Злоумышленник ввел запрос (1' или 1 = 1 union select null, version ()#) в поле поиска идентификатора пользователя на целевом объекте 10.0.2.15, чтобы обнаружить идентификатор версии. Обратите внимание, что идентификатор версии находится в конце выходных данных непосредственно перед </pre>.</div> закрывающим HTML-кодом.
Назовите версию.
MySQL 5.7.12-0
Закройте окно Follow HTTP Stream (Отслеживать поток HTTP).
Нажмите кнопку Clear (Очистить), чтобы показать весь сеанс связи Wireshark.
Атака с внедрением SQL-кода и табличная информация.
Злоумышленник знает, что имеется большое количество таблиц SQL, в которых содержится много информации. Злоумышленник пытается найти их.
В данных, собранных программой Wireshark, щелкните правой кнопкой мыши по строке 25 и выберите Follow HTTP Stream (Отслеживать поток HTTP). Источник показан красным цветом. Он отправил запрос GET на хост 10.0.2.15. Синим показано, как устройство назначения отвечает источнику.
Щелкните Find (Поиск) и введите users. Выполните поиск записи, показанной ниже. Когда текст найден, нажмите кнопку Cancel (Отмена) в поле поиска текста.
Злоумышленник ввел запрос (1' или 1=1 union select null, table_name from information_schema.tables#) в поле поиска идентификатора пользователя на целевом объекте 10.0.2.15 для просмотра всех таблиц в базе данных. В результате выдается огромное количество таблиц, так как злоумышленник указал null без каких-либо дополнительных уточнений.
Чем измененная команда (1' OR 1=1 UNION SELECT null, column_name FROM INFORMATION_SCHEMA.columns WHERE table_name='users') поможет злоумышленнику?
Поиск по фильтру users
Закройте окно Follow HTTP Stream (Отслеживать поток HTTP).
Нажмите кнопку Clear (Очистить), чтобы показать весь сеанс связи Wireshark.
Атака с внедрением SQL-кода завершается.
Атака приносит самую ценную добычу: хеши паролей.
В данных, собранных программой Wireshark, щелкните правой кнопкой мыши по строке 28 и выберите Follow HTTP Stream (Отслеживать поток HTTP). Источник показан красным цветом. Он отправил запрос GET на хост 10.0.2.15. Синим показано, как устройство назначения отвечает источнику.
Щелкните Find (Поиск) и введите 1=1. Выполните поиск данной записи. Когда текст найден, нажмите кнопку Cancel (Отмена) в поле поиска текста.
Хакер ввел запрос (1’ или 1=1 union select user, password from users#) в поле поиска идентификатора пользователя на целевом объекте 10.0.2.15, чтобы получить хеши имен пользователей и паролей!
Какой пользователь имеет хеш пароля 8d3533d75ae2c3966d7e0d4fcc69216b?
1337
С помощью веб-сайта, например https://crackstation.net/, скопируйте хеш пароля во взломщик хеша пароля и запустите взлом.
Назовите незашифрованный пароль (в формате простого текста).
charley
Закройте окно Follow HTTP Stream (Отслеживать поток HTTP). Закройте все открытые окна.
Вопросы для повторения
В чем риск использования языка SQL на платформе?
Подвержен sql атакам
Войдите в Интернет и выполните поиск фразы prevent SQL injection attacks (предотвращение атак с внедрением SQL-кода). Какие 2 метода или действия можно предпринять для предотвращения атак с внедрением SQL-кода?
Фильтровать пользовательский ввод,
Отключить ненужные функции/возможности базы данных