Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Дата: 05.02.2021. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

В этой статье пойдет речь о развертывании лаборатории для тестирования на проникновение толстого клиента DVTA. Она отлично подходит для того, чтобы проверить уровень безопасности программы.

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

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

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

Архитектура

В принципе, существует два типа архитектуры: двухуровневая и трехуровневая.

Двухуровневая архитектура

В двухуровневой архитектуре клиент и база данных взаимодействуют друг с другом и реализуют связь клиент-сервер.

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

Трехуровневая архитектура

Альтернативный вариант – это хорошо структурированная трехуровневая архитектура. В ней клиент взаимодействует с сервером приложений. Здесь клиент-сервер имеет три определенных компонента, с помощью которых он обращается к базе данных таким же образом, как и в случае с обычным веб-приложением. Наиболее распространенной формой коммуникации является HTTP/HTTPS.

Трехуровневая архитектура имеет преимущество в плане уровня безопасности, поскольку она не позволяет конечному пользователю напрямую взаимодействовать с сервером базы данных.

Необходимые компоненты

  • Рабочая станция VMware или Virtualbox
  • Windows 10 как база данных (сервер SQL)
  • Windows 10 как клиент (DVTA)
  • SQL Server Express 2008
  • Среда SQL Server Management Studio
  • FTP-сервер FileZilla
  • Уязвимое толстое клиентское приложение (DVTA) с измененной версией

Установка и настройка SQL Server Express 2008

Пользователь открывает его виртуальную машину и создает новую Windows 10. Первое, что он собирается загрузить, — это SQL Server Express 2008.

Читатели могут скачать SQL Server, перейдя по ссылке.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Итак, теперь пользователь загрузил SQL Server Express 2008. Нужно открыть файл и запустить программу.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

После запуска файла появится приглашение для установки SQL Server. Пользователь выбирает автономную установку SQL Server. Программа выполнит некоторые проверки, чтобы убедиться, что все готово для установки. Когда она завершит процесс проверки, пользователь нажмет на кнопку «OK» и увидит следующее окно (как показано ниже на картинке).

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

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

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Это окно означает, что все в порядке. Теперь пользователь перейдет к следующему шагу и выберет компонент Database Engine Service, а затем он нажмет на кнопку «Далее» (англ. «Next»).

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Теперь человек создает экземпляр с именем «SQL Express», как показано ниже на картинке.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Выбрав именованный (англ. «named») экземпляр, пользователь будет нажимать на кнопку «Далее», пока не дойдет до конфигурации сервера.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Здесь он собирается использовать NT Authority\System, выбрать тип запуска как автоматический и после – нажать на кнопку «Далее».

В следующем окне пользователь выбирает «Смешанный режим» (англ. «Mixed Mode»), так что у него будет как аутентификация через SQL Server, так и аутентификация через Windows.

Человек вводит новый пароль. В данном случае он будет использовать комбинацию «[email protected]» в качестве пароля. Нужно также добавить текущего пользователя, который станет администратором SQL Server. Затем вновь нажимается кнопка «Далее» (как показано ниже на картинке).

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Пользователь жмет на кнопку «Далее», пока не попадает на страницу «Готово к установке» (англ. «Ready to install»). Затем он установит сервер, нажав на кнопку «Установить». Это займет какое-то время. Конечно, все эти процессы настройки довольно скучны, но чтобы получить практический опыт и изучить векторы атаки или возможные методы, нужно сначала создать лабораторию.

Когда установка завершится, программа покажет следующее окно:

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Как видно на картинке, пользователь успешно установил SQL Server 2008.

Установка и настройка среды SQL Server Management Studio

Читатели могут скачать SQL Server Management Studio, перейдя непосредственно по этой ссылке.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Пользователь выбирает подходящий пакет в соответствии с его средой и скачивает Management Studio.

Когда загрузка будет завершена, он открывает установочный файл и запускает программу установки.

Пользователь видит окно запроса как и в предыдущем случае с SQL Server 2008. Он выбирает новую установку.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Человек принимает лицензионное соглашение, выбирает все возможные функции программы и переходит к следующему шагу.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Пользователь нажимает на кнопку «Далее», после чего он выполнит проверку системы на ошибки. После этого человек перейдет к следующему шагу без каких-либо изменений настроек и установит Management Studio. Как только программа установится, следует перезагрузить систему.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Человек закончил с установкой SQL Server и SQL Server Management Studio, но есть еще несколько вещей, которые нужно сделать, прежде чем перейти к настройке программного обеспечения.

Следует открыть SQL Server Management Studio, найдя программу в меню Пуск.

Это может занять некоторое время, потому что пользователь открывает программу в первый раз. После этого появится следующее окно (см. фото). На вкладке «Аутентификация» есть два варианта: пользователь может использовать аутентификацию Windows или аутентификацию SQL Server. В данном случае он выбирает аутентификацию Windows, потому что тогда не нужно будет вводить никакие учетные данные, программа будет аутентифицироваться на основе сеанса Windows.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Пользователь нажмет на кнопку «Подключиться», чтобы получить доступ к базе данных, которая была установлена ранее. Отлично, он успешно подключился к ней. Как читатели могут увидеть, есть несколько баз данных, среди которых нет пользовательских. Итак, стоит щелкнуть правой кнопкой мыши по базам данных, чтобы создать новую.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Пользователь выбирает подходящее имя для базы данных. В данном случае это DVTA. Он нажимает на кнопку «ОК».

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Когда пользователь разворачивает раздел базы данных, он может заметить, что существует созданная база данных с именем DVTA. Есть также системная таблица, в которой пока нет никаких пользовательских записей.

Теперь нужно будет создать несколько пользовательских таблиц и вставить в них данные, необходимые для работы приложения DVTA. Для этого человек нажмет на DVTA и выберет «Создать новый запрос» (англ. «New Query»).

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Пользователь создаст несколько таблиц. Первая из них будет называться «Users». Чтобы добавить новую таблицу, нужно создать запрос, как показано ниже:

CREATE TABLE "users" (
    "id" INT IDENTITY(0,1) NOT NULL,
    "username" VARCHAR(100) NOT NULL,
    "password" VARCHAR(100) NOT NULL,
    "email" VARCHAR(100) NULL DEFAULT NULL,
    "isadmin" INT NULL DEFAULT '0',
    PRIMARY KEY ("id")
)

После создания запроса его следует выполнить.

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Теперь, когда пользователь вновь развернет раздел таблиц в DVTA, он увидит, что создается таблица под названием «dbo.users».

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Следует выбрать первые 1000 строк из таблицы «dbo.users».

Руководство по развертыванию лаборатории для пентестинга толстого клиента (DVTA)

Там пользователь может увидеть первую пятерку столбцов с названиями:

  • Id
  • Username («Имя пользователя»)
  • Password («Пароль»)
  • Email («Электронная почта»)
  • Isadmin
blank

Но колонки все еще пусты. Итак, теперь стоит добавить данные в эту таблицу. Пользователь вновь создает новый запрос.

blank

Чтобы заполнить данные в таблице «dbo.user», нужно создать еще один запрос, где пользователь определит все нужные значения.

ЗНАЧЕНИЯ

('admin','admin123','[email protected]',1),
('vijay','vijay','[email protected]',0),
('raj','raj','[email protected]',0);

После создания запроса его следует выполнить.

blank

Пользователь выбирает таблицу «dbo.users» и просматривает верхние 1000 строк.

blank

Теперь есть три записи:

  •     Admin
  •     Vijay
  •     Raj

У каждого есть свои привилегии. Администратор (исходя из его имени) имеет права администратора, а остальные два пользователя являются стандартными аккаунтами.

blank

Пользователь создает еще одну таблицу под названием «Расходы» (англ. «Expenses»). Он выберет базу данных DVTA и создаст новый запрос.

blank

Человек использует следующий запрос для создания таблицы с расходами:


CREATE TABLE "expenses" (
    "id" INT IDENTITY(0,1) NOT NULL,
    "email" VARCHAR(100) NOT NULL,
    "item" VARCHAR(100) NOT NULL,
    "price" VARCHAR(100) NOT NULL,
    "date" VARCHAR(100) NOT NULL,
    "time" VARCHAR(100) NULL DEFAULT NULL,
    PRIMARY KEY ("id")
)
1
2
3
4
5
6
7
8
9
	
CREATE TABLE "expenses" (
    "id" INT IDENTITY(0,1) NOT NULL,
    "email" VARCHAR(100) NOT NULL,
    "item" VARCHAR(100) NOT NULL,
    "price" VARCHAR(100) NOT NULL,
    "date" VARCHAR(100) NOT NULL,
    "time" VARCHAR(100) NULL DEFAULT NULL,
    PRIMARY KEY ("id")
)

После создания запроса его следует выполнить.

blank

Пользователь успешно создал две разные таблицы для работы приложения DVTA.

blank

Теперь остался последний шаг, после чего пользователь сможет перейти к установке сервера FileZilla. Человек открывает «Диспетчер конфигурации SQL Server», выполнив его поиск в меню Пуск. Там он находит раздел «Конфигурация сети SQL Server» и нажимает на кнопку «Протоколы для SQLEXPRESS», чтобы активировать протокол TCP/IP.

blank

Теперь нужно перезагрузить компьютер. Чтобы перезапустить эту службу, пользователь выбирает службу SQL Server и щелкает правой кнопкой мыши на SQL SERVER EXPRESS.

blank

Отлично, человек уже закончил с настройкой SQL Server. Теперь он скачивает и устанавливает сервер FileZilla. Читатели могут напрямую загрузить сервер FileZilla, перейдя по ссылке.

blank

Как только файл будет загружен, пользователь дважды щелкнет левой кнопкой мыши на скачанный пакет и установит сервер FileZilla. Человек принимает условия лицензионного соглашения, нажимает на кнопку «Далее», не внося каких-либо изменений.

Как только это будет сделано, сервер FileZilla будет автоматически запущен. Теперь нужно осуществить его небольшую настройку.

Пользователь вводит filezilla в качестве пароля и нажимает на кнопку «Подключиться».

blank

Далее человек нажмет на кнопку «Изменить» и выберет параметр «Пользователи». Здесь следует создать новую учетную запись пользователя FTP, нажав на кнопку «Добавить». Имя пользователя будет DTVA.

blank

Теперь необходимо установить пароль. Это будет тот же пароль, который был ранее использован для SQL Server («[email protected]»). Следует создать такую же учетную запись для сервера FileZillа.

blank

Теперь остается еще один шаг для завершения настройки сервера. Пользователь перейдет к общим папкам, нажмет на кнопку «Добавить» и выберет каталог, который будет использоваться сервером FileZilla для размещения загруженных файлов. Далее, он предоставит ему разрешения на чтение и запись файлов и, наконец, нажмет на кнопку «ОК».

blank

Как видно на картинке, пользователь успешно завершил настройку сервера FileZilla.

blank

Ссылки для скачивания и учетные данные

  • Приложение DTVA можно скачать по данной ссылке.
  • Приложение DnSpy можно загрузить здесь.
  • Пользователи базы данных и пароли:
vijay:vijay
raj:raj
admin:admin123

Загрузка и установка приложения DATA

Читатели могут непосредственно загрузить приложение DVTA, используя эту ссылку:

https://mega.nz/file/rPJQ0LTL#CuhQ9HBeEIKHa67jbITFQbt49FZalugWlRe5A33O6y4

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

Есть папка «Release», которая была создана для тестирования. Пользователь видит, что внутри нее есть пара файлов, а основное приложение здесь – это то, которое имеет красный значок и имя «DVTA.exe».

blank

Следует дважды щелкнуть по ярлыку «DVTA.exe» и запустить программу.

blank

Как только это будет сделано, пользователь увидит примерно такое окно. Здесь он также может настроить сервер.

blank

Однако оригинальное приложение DVTA не имеет такой функции, и ее IP-адрес жестко закодирован. Проблема в том, что нужен сервер с точно таким же IP-адресом, который жестко закодирован в самом приложении. Для этого все, что необходимо сделать, это скомпилировать исходный код, чтобы изменить приложение таким образом, чтобы оно указывало или перенаправляло на сервер пользователя.

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

Это потребует большого объема знаний от пользователя, но будет довольно весело. Пора приступать!

Реверсирование и изменение оригинального приложения DVTA

Теперь, нужно понять, как пользователь способен активировать кнопку «Настроить сервер».

Прежде чем включить эту кнопку, стоит немного подумать. В каких ситуациях пользователь сталкивался с такими отключенными кнопками в клиентских приложениях, когда осуществлял тестирование на проникновение. Бывают случаи, когда человек входит в систему и некоторые меню для него отключены. К примеру, он является создателем, и у него не может быть меню проверки, поэтому некоторые разработчики отключают его в клиентах, предполагая, что пользователь не сможет их включить. Однако эти отключенные меню можно легко активировать в приложениях, написанных на C sharp.net.

Стоит понять, как пользователь может это сделать. Прежде всего, нужно сделать копию извлеченной папки DVTA на случай, если что-то пойдет не так. Таким образом, он сможет начать с нуля, не скачивая все еще раз. Чтобы активировать кнопку «Настроить сервер», пользователь будет использовать инструмент под названием dnSpy. Читатели могут скачать его непосредственно по этой ссылке.

Пользователь скачивает последнюю версию программы.

blank

Когда загрузка будет завершена, пользователь извлекает файлы в новую папку.

Как только извлечение будет завершено, пользователь увидит две версии dnSpy — 32-битную и 64-битную. В данном практическом примере человек будет использовать 32-битную версию, потому что целевое приложение является также 32-битным.

На изображении ниже видно, что «dnSpy-x86», — это 32-битная версия, а другой файл, — 64-битная версия.

blank

Итак, не теряя времени, пользователь быстро открывает файл «dnSpy-x86», дважды щелкнув по нему левой кнопкой мыши.

blank

Когда приложение dnSpy уже запустилось, нужно в нем открыть программу DVTA, перейдя по пути: «Файл > Открыть».

blank

В нужной папке пользователь выбирает файл DVTA.exe. Итак, это именно то приложение, которое человек собирается изменить.

blank

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

В левом боковом меню пользователь нажимает на DVTA и разворачивает DVTA.exe. Как только файл откроется, он выбирает DVTA. Теперь, пользователь находит файлы C Sharp в исходном коде. Если читатели заметили ранее, когда человек открывает приложение DVTA, оно показывает ему страницу входа в систему. На этой странице в нижней части есть кнопка «Настроить сервер». Именно она и интересует пользователя.

Теперь, не теряя времени, человек выбирает «Login». Программа начнет автоматически декомпилировать исходный код.

blank

Все это кажется очень интересным. Пользователю теперь довольно легко понять весь исходный код приложения. Когда он прокручивает вниз, то обнаруживает, что есть условие, которое отвечает за поиск метода под названием «Настроен ли сервер». Пользователь нажмет на него и увидит, где находится нужное ему значение.

Оно будет показывать конкретное сообщение «MessageBox.Show» («Это приложение можно использовать только после настройки сервера»). Это означает, что этот блок никогда не будет выполняться, потому что он всегда возвращается со значением «False». Так что это означает, что «this.configserver.Enabled = False;», — это та часть, которая будет выполняться всегда.

blank

Читатели уже заметили, что весь исходный код написан на C sharp.

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

Как уже было отмечено ранее, «config server» — это кнопка, которая легко вычисляется пользователем. Она идет после этой («class [system.windows.Forms]System.Windows.Forms.Button») конкретной строки. Есть также вызов «System.Windows.Forms.Control». Метод «Set_Enabled» принимает логическое значение, которое может быть истинным (TRUE) или ложным (FALSE). Если пользователь видит, что есть значение ldc.i4.0, а затем, он наведет курсор мыши на «Set_Enabled(bool)», это поместит целочисленное значение 0 в стек оценки как int 32. Вероятно, именно по этой причине кнопка отключена – значение помещается под стек в качестве аргумента, а «Set_Enabled» всегда имеет значение «False».

blank

Пользователь щелкнет правой кнопкой мыши на значение ldc.i4.0 и отредактирует инструкции IL, как показано ниже на картинке:

blank

Он откроет еще одно приглашение и правой кнопкой мыши щелкнет на значение ldc.14.0, а затем выберет ldc.i4.1 и нажмет на кнопку «ОК».

blank

Теперь пользователю нужно сохранить конфигурацию, перейдя по пути: «Файл > Сохранить модуль».

blank

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

blank

Можно закрыть приложение dnSpy и открыть измененную программу DVTA.exe, перейдя в нужный каталог.

Настройка и вход в измененное приложение DVTA

Ура! Как можно заметить, кнопка «Настроить сервер» активна.

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

Пользователь вводит «127.0.0.1» в качестве его сервера и нажимает на кнопку «Настроить сервер».

blank

Сервер был успешно настроен.

blank

Теперь нужно убедиться, что все в порядке. Пользователь вернется в каталог DVTA и дважды нажмет на DVTA.exe (конфигурационный файл XML, который находится чуть ниже самого приложения DVTA).

blank

Дважды нажав на него, пользователь просмотрит файл конфигурации.

Когда он увидит настройки приложения, то заметит, что сервер базы данных – это 127.0.0.1/SQLExpress, а FTP-сервер – также настроен на 127.0.0.1.

Потрясающе! Все теперь настроено верно.

blank

Теперь человек открывает измененное приложение DVTA и входит в систему как пользователь vijay, профиль которого был создан ранее в программе установки SQL Server.

blank

Отлично, как видно на картинке, человек успешно вошел в приложение.

blank

Стоит также проверить данные другого пользователя и посмотреть, какие права имеет администратор.

blank

Все работает нормально, пользователь успешно вошел в систему как администратор.

blank

Автор переведенной статьи: Vijay.

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *