Сервер Microsoft SQL довольно часто обнаруживается при тестировании на проникновение, поскольку многие компании используют среды Windows. Серверы SQL обычно работают на порту 1433, но его можно найти и на других портах. Поскольку это очень популярная база данных, мы должны знать все шаги и методы, чтобы эффективно провести оценку базы данных. В этой статье мы рассмотрим шаг за шагом тестирование на проникновение SQL-серверов.
Разведка
Как мы уже упоминали, SQL-серверы по умолчанию работают на порту 1433. Однако в некоторых случаях их можно найти на другом порту. Итак, как мы можем определить наличие SQL-сервера в системе? Ответ — через SQL-сервер. служба браузера, которая работает на порту UDP 1434. Эта служба может предоставить нам имя экземпляра, номер версии и точный порт, на котором работает база данных. Для обнаружения этой информации необходимо выполнить сканирование UDP Nmap. со следующего изображения:
Обнаружение SQL Server — Nmap
Другим инструментом, который может помочь нам обнаружить SQL-серверы на удаленных хостах, является модуль metasploit mssql_ping. Информация, которую мы можем получить из этого модуля, на самом деле такая же, как сканирование Nmap UDP, которое мы выполняли ранее, но оно также возвращает и имя канала.
Metasploit — пинг mssql
Из версии мы также можем понять, что база данных SQL 2000. Если бы это была 9-я версия, то база данных была бы 2005 года и т. д.
Реквизиты для входа
Это самая важная часть, так как если нам удастся каким-то образом получить действительные учетные данные, мы сможем подключиться напрямую через базу данных и начать извлекать данные. Вот некоторые распространенные места, где мы можем обнаружить учетные данные базы данных:
-
-
-
- XML-файлы (поиск строк подключения)
- Внедрение SQL (требуется приложение, уязвимое для внедрения SQL, которое работает с высокими привилегиями)
- Общие ресурсы Windows
- Рабочие станции разработчиков (на случай, если мы их скомпрометируем)
-
-
Если мы еще не обнаружили учетную запись в некоторых из вышеуказанных мест, мы можем попробовать атаку методом перебора. Metasploit Freemwork содержит модуль, специально предназначенный для этой задачи, который может нам помочь.
auxiliary/scanner/mssql/mssql_login
Перебор паролей MS SQL с помощью Metasploit
Как видно из приведенных выше результатов, мы обнаружили, что SQL Server не содержит пароля для учетной записи sa. Администраторы баз данных также очень часто используют в качестве пароля имя пользователя или любые другие простые пароли, такие как название компании и т. д.
После эксплуатации
Теперь, когда у нас есть учетные данные, мы можем использовать множество других модулей metasploit, которые позволят нам получить больше информации о базе данных. Первый модуль — это mssql_enum, который будет выполнять несколько проверок безопасности для SQL Server. Эти проверки могут нам помочь. для проведения дальнейших действий по эксплуатации базы данных. Следующие три изображения показывают, какую информацию мы можем собрать из этого модуля:
Перечисление MS-SQL
MS-SQL перечисление 2
MS-SQL перечисление 3
Из приведенного выше вывода мы можем заметить следующее:
-
-
-
- xp_cmdshell включен
- учетная запись sa не содержит пароля
- Вход в систему и Windows
- Привилегия, что сервер базы данных работает
- Базы данных, которые существуют
-
-
Тот факт, что xp_cmdshell включен, означает, что мы можем выполнять команды в удаленной системе через SQL Server. Конечно, первое, что приходит нам в голову, это добавить еще одну учетную запись и поместить ее в локальную группу администраторов, чтобы иметь постоянный доступ к ящику. У платформы Metasploit есть соответствующий модуль для этой работы. Ниже приведен пример использования этого модуля.
xp_cmdshell – Metasploit
В случае, если мы хотим подключиться к базе данных напрямую и выполнить команды SQL, мы можем использовать либо клиент, такой как osql, либо другой модуль metasploit, mssql_sql.
Выполнение команд базы данных
С помощью этого модуля мы можем извлечь больше информации о таблицах и записях базы данных.
Вывод
Цель этой статьи — предоставить специалисту по тестированию на проникновение обзор общих инструментов и методов, когда ему нужно оценить серверы Microsoft SQL. Также очень важно знать структуру сервера SQL и то, что мы должны искать в качестве тестер проникновения, поэтому рекомендуется создать собственную базу данных SQL в нашей лаборатории, чтобы лучше понять, как она работает и что именно эти модули делают при взаимодействии с базой данных.