MSSQL для пентестеров: Nmap
Чтобы получить основную информацию, такую как имена баз данных, имена пользователей, имена таблиц и т. д., с серверов SQL в операционной системе Windows, мы проведем тестирование на проникновение с использованием сценариев Nmap. MSSQL - это Microsoft SQL Server для управления базами данных в сети. По умолчанию он работает на порту 1433. В нашей предыдущей статье мы настроили Microsoft SQL Server в Windows 10.
Требования:
Хакер: Kali Linux (NMAP)
Цель: Windows 10 (MS SQL Server)
Nmap - это набор сценариев NSE на основе Lua, которые проводят проверку подлинности и неаутентифицированное тестирование на проникновение на порт 1433 MS-SQL. Сценарий NSE для MS-SQL можно определить, используя приведенные ниже инструкции.
locate *.nse | grep ms-sql
Получение версии
Этот сценарий попытается определить информацию о конфигурации и версии для экземпляров Microsoft SQL Server.
nmap -p 1433 --script ms-sql-info 192.168.1.146
Брутфорс учеток
Выполнить аудит паролей методом перебора для серверов Ms-SQL и тайм-аут соединения (по умолчанию: "5 с") можно так. Все, что нам нужно, это словари для имен пользователей и паролей, которые будут передаваться в качестве аргументов.
nmap -p1433 --script ms-sql-brute --script-args userdb=users.txt,passdb=pass.txt 192.168.1.146
На картинке вы можете увидеть, что мы успешно получили учетные данные для трех пользователей:
Username: pavan and password:Password@123
Username: aarti and password:Password@123
Username: sa and password: Password@1
Выполнение SQL-запроса
После получения учетных данных для входа используйте эти учетные данные в сценарии NMAP для выполнения запроса MS–SQL. Приведенная ниже команда будет пытаться выполнить определенный запрос "sp_database" к Microsoft SQL Server.
Указанный запрос "sp_databases" является частью записи хранимых процедур и выводит список имен баз данных из экземпляра SQL Server.
nmap -p1433 --script ms-sql-query --script-args mssql.username=sa,mssql.password=Password@1,ms-sql-query.query="sp_databases" 192.168.1.146
Получение NetBIOS
Приведенный ниже сценарий NMAP будет перечислять информацию от удаленных служб Microsoft SQL с включенной аутентификацией NTLM.
Отправка запроса проверки подлинности NTLM MS-TDS с недопустимым доменом и нулевыми учетными данными приведет к тому, что удаленная служба ответит сообщением NTLMSSP, раскрывающим информацию, включающую NetBIOS, DNS и версию сборки ОС.
nmap -p1433 --script ms-sql-ntlm-info 192.168.1.146
Дамп хэша пароля MS-SQL
Следующая команда дампит хэши паролей с сервера MS-SQL в формате, подходящем для взлома такими инструментами, как John-the-ripper. Для этого пользователь должен иметь соответствующие привилегии БД.
nmap -p1433 --script ms-sql-dump-hashes --script-args mssql.username=sa,mssql.password=Password@1 192.168.1.146
Из данной картинки вы можете увидеть, что он сдампил хеш-значение паролей пользователя: "sa", которые мы получили выше.
Выполнение команд
Xp_cmdshell - это функция Microsoft SQL Server, которая позволяет системным администраторам выполнять команды операционной системы. По умолчанию опция xp_cmdshell отключена. Сценарий NMAP попытается запустить команду, используя командную оболочку Microsoft SQL Server, если обнаружено, что xp_cmdshell включен на целевом сервере.
nmap -p1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=Password@1,ms-sql-xp-cmdshell.cmd="net user" 192.168.1.146
Из изображения вы можете увидеть вывод команды "net user".
Проверить вход с пустым паролем
Если администратор Microsoft-SQL Server оставил пароль пустым для входа в систему, злоумышленник может напрямую войти на сервер базы данных; как показано на изображении ниже, мы исследуем свойство учетной записи пользователя "sa".
Следующий сценарий NMAP попытается аутентифицироваться на серверах Microsoft SQL Server, используя пустой пароль для учетной записи sysadmin (sa).
nmap -p1433 --script ms-sql-empty-password 192.168.1.146
Мы успешно вошли в систему с пользователем: sa и пустым паролем, как вы можете видеть на скриншоте ниже.
1
Получение таблицы базы данных
Следующая команда попытается получить список таблиц изнутри сервера Microsoft SQL, минуя учетные данные для входа в качестве аргумента через сценарий Nmap.
nmap -p1433 --script ms-sql-tables --script-args mssql.username=sa,mssql.password=Password@1 192.168.1.146
Чтобы получить основную информацию, такую как имена баз данных, имена пользователей, имена таблиц и т. д., с серверов SQL в операционной системе Windows, мы проведем тестирование на проникновение с использованием сценариев Nmap. MSSQL - это Microsoft SQL Server для управления базами данных в сети. По умолчанию он работает на порту 1433. В нашей предыдущей статье мы настроили Microsoft SQL Server в Windows 10.
Требования:
Хакер: Kali Linux (NMAP)
Цель: Windows 10 (MS SQL Server)
Nmap - это набор сценариев NSE на основе Lua, которые проводят проверку подлинности и неаутентифицированное тестирование на проникновение на порт 1433 MS-SQL. Сценарий NSE для MS-SQL можно определить, используя приведенные ниже инструкции.
locate *.nse | grep ms-sql
Получение версии
Этот сценарий попытается определить информацию о конфигурации и версии для экземпляров Microsoft SQL Server.
nmap -p 1433 --script ms-sql-info 192.168.1.146
Брутфорс учеток
Выполнить аудит паролей методом перебора для серверов Ms-SQL и тайм-аут соединения (по умолчанию: "5 с") можно так. Все, что нам нужно, это словари для имен пользователей и паролей, которые будут передаваться в качестве аргументов.
nmap -p1433 --script ms-sql-brute --script-args userdb=users.txt,passdb=pass.txt 192.168.1.146
На картинке вы можете увидеть, что мы успешно получили учетные данные для трех пользователей:
Username: pavan and password:Password@123
Username: aarti and password:Password@123
Username: sa and password: Password@1
Выполнение SQL-запроса
После получения учетных данных для входа используйте эти учетные данные в сценарии NMAP для выполнения запроса MS–SQL. Приведенная ниже команда будет пытаться выполнить определенный запрос "sp_database" к Microsoft SQL Server.
Указанный запрос "sp_databases" является частью записи хранимых процедур и выводит список имен баз данных из экземпляра SQL Server.
nmap -p1433 --script ms-sql-query --script-args mssql.username=sa,mssql.password=Password@1,ms-sql-query.query="sp_databases" 192.168.1.146
Получение NetBIOS
Приведенный ниже сценарий NMAP будет перечислять информацию от удаленных служб Microsoft SQL с включенной аутентификацией NTLM.
Отправка запроса проверки подлинности NTLM MS-TDS с недопустимым доменом и нулевыми учетными данными приведет к тому, что удаленная служба ответит сообщением NTLMSSP, раскрывающим информацию, включающую NetBIOS, DNS и версию сборки ОС.
nmap -p1433 --script ms-sql-ntlm-info 192.168.1.146
Дамп хэша пароля MS-SQL
Следующая команда дампит хэши паролей с сервера MS-SQL в формате, подходящем для взлома такими инструментами, как John-the-ripper. Для этого пользователь должен иметь соответствующие привилегии БД.
nmap -p1433 --script ms-sql-dump-hashes --script-args mssql.username=sa,mssql.password=Password@1 192.168.1.146
Из данной картинки вы можете увидеть, что он сдампил хеш-значение паролей пользователя: "sa", которые мы получили выше.
Выполнение команд
Xp_cmdshell - это функция Microsoft SQL Server, которая позволяет системным администраторам выполнять команды операционной системы. По умолчанию опция xp_cmdshell отключена. Сценарий NMAP попытается запустить команду, используя командную оболочку Microsoft SQL Server, если обнаружено, что xp_cmdshell включен на целевом сервере.
nmap -p1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=Password@1,ms-sql-xp-cmdshell.cmd="net user" 192.168.1.146
Из изображения вы можете увидеть вывод команды "net user".
Проверить вход с пустым паролем
Если администратор Microsoft-SQL Server оставил пароль пустым для входа в систему, злоумышленник может напрямую войти на сервер базы данных; как показано на изображении ниже, мы исследуем свойство учетной записи пользователя "sa".
Следующий сценарий NMAP попытается аутентифицироваться на серверах Microsoft SQL Server, используя пустой пароль для учетной записи sysadmin (sa).
nmap -p1433 --script ms-sql-empty-password 192.168.1.146
Мы успешно вошли в систему с пользователем: sa и пустым паролем, как вы можете видеть на скриншоте ниже.
Получение таблицы базы данных
Следующая команда попытается получить список таблиц изнутри сервера Microsoft SQL, минуя учетные данные для входа в качестве аргумента через сценарий Nmap.
nmap -p1433 --script ms-sql-tables --script-args mssql.username=sa,mssql.password=Password@1 192.168.1.146