В этой статье пойдет речь о развертывании лаборатории для тестирования на проникновение толстого клиента 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, перейдя по ссылке .
Итак, теперь пользователь загрузил SQL Server Express 2008. Нужно открыть файл и запустить программу.
После запуска файла появится приглашение для установки SQL Server. Пользователь выбирает автономную установку SQL Server . Программа выполнит некоторые проверки, чтобы убедиться, что все готово для установки. Когда она завершит процесс проверки, пользователь нажмет на кнопку «OK» и увидит следующее окно (как показано ниже на картинке).
Человек принимает лицензионное соглашение и переходит к следующему шагу, чтобы установить необходимые для корректной работы программы файлы.
Это окно означает, что все в порядке. Теперь пользователь перейдет к следующему шагу и выберет компонент Database Engine Service , а затем он нажмет на кнопку «Далее» (англ. «Next»).
Теперь человек создает экземпляр с именем «SQL Express», как показано ниже на картинке.
Выбрав именованный (англ. «named ») экземпляр, пользователь будет нажимать на кнопку «Далее», пока не дойдет до конфигурации сервера .
Здесь он собирается использовать NT Authority\System , выбрать тип запуска как автоматический и после – нажать на кнопку «Далее».
В следующем окне пользователь выбирает «Смешанный режим » (англ. «Mixed Mode»), так что у него будет как аутентификация через SQL Server, так и аутентификация через Windows.
Человек вводит новый пароль. В данном случае он будет использовать комбинацию «p@ssw0rd » в качестве пароля. Нужно также добавить текущего пользователя, который станет администратором SQL Server. Затем вновь нажимается кнопка «Далее» (как показано ниже на картинке).
Пользователь жмет на кнопку «Далее», пока не попадает на страницу «Готово к установке» (англ. «Ready to install »). Затем он установит сервер, нажав на кнопку «Установить ». Это займет какое-то время. Конечно, все эти процессы настройки довольно скучны, но чтобы получить практический опыт и изучить векторы атаки или возможные методы, нужно сначала создать лабораторию.
Когда установка завершится, программа покажет следующее окно:
Как видно на картинке, пользователь успешно установил SQL Server 2008.
Установка и настройка среды SQL Server Management Studio
Читатели могут скачать SQL Server Management Studio , перейдя непосредственно по этой ссылке .
Пользователь выбирает подходящий пакет в соответствии с его средой и скачивает Management Studio .
Когда загрузка будет завершена, он открывает установочный файл и запускает программу установки.
Пользователь видит окно запроса как и в предыдущем случае с SQL Server 2008. Он выбирает новую установку.
Человек принимает лицензионное соглашение, выбирает все возможные функции программы и переходит к следующему шагу.
Пользователь нажимает на кнопку «Далее», после чего он выполнит проверку системы на ошибки. После этого человек перейдет к следующему шагу без каких-либо изменений настроек и установит Management Studio. Как только программа установится, следует перезагрузить систему.
Человек закончил с установкой SQL Server и SQL Server Management Studio, но есть еще несколько вещей, которые нужно сделать, прежде чем перейти к настройке программного обеспечения.
Следует открыть SQL Server Management Studio, найдя программу в меню Пуск.
Это может занять некоторое время, потому что пользователь открывает программу в первый раз. После этого появится следующее окно (см. фото). На вкладке «Аутентификация » есть два варианта: пользователь может использовать аутентификацию Windows или аутентификацию SQL Server. В данном случае он выбирает аутентификацию Windows, потому что тогда не нужно будет вводить никакие учетные данные, программа будет аутентифицироваться на основе сеанса Windows.
Пользователь нажмет на кнопку «Подключиться », чтобы получить доступ к базе данных, которая была установлена ранее. Отлично, он успешно подключился к ней. Как читатели могут увидеть, есть несколько баз данных, среди которых нет пользовательских. Итак, стоит щелкнуть правой кнопкой мыши по базам данных, чтобы создать новую.
Пользователь выбирает подходящее имя для базы данных. В данном случае это DVTA . Он нажимает на кнопку «ОК».
Когда пользователь разворачивает раздел базы данных, он может заметить, что существует созданная база данных с именем DVTA. Есть также системная таблица, в которой пока нет никаких пользовательских записей.
Теперь нужно будет создать несколько пользовательских таблиц и вставить в них данные, необходимые для работы приложения DVTA. Для этого человек нажмет на DVTA и выберет «Создать новый запрос» (англ. «New Query »).
Пользователь создаст несколько таблиц. Первая из них будет называться «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, он увидит, что создается таблица под названием «dbo.users ».
Следует выбрать первые 1000 строк из таблицы «dbo.users».
Там пользователь может увидеть первую пятерку столбцов с названиями:
- Id
- Username («Имя пользователя»)
- Password («Пароль»)
- Email («Электронная почта»)
- Isadmin
Но колонки все еще пусты. Итак, теперь стоит добавить данные в эту таблицу. Пользователь вновь создает новый запрос.
Чтобы заполнить данные в таблице «dbo.user», нужно создать еще один запрос, где пользователь определит все нужные значения.
ЗНАЧЕНИЯ
('admin','admin123','info@ignitetechnologies.in',1),
('vijay','vijay','vijay991133@gmail.com',0),
('raj','raj','info@ignitetechnologies.in',0);
После создания запроса его следует выполнить.
Пользователь выбирает таблицу «dbo.users» и просматривает верхние 1000 строк.
Теперь есть три записи:
- Admin
- Vijay
- Raj
У каждого есть свои привилегии. Администратор (исходя из его имени) имеет права администратора, а остальные два пользователя являются стандартными аккаунтами.
Пользователь создает еще одну таблицу под названием «Расходы» (англ. «E xpenses»). Он выберет базу данных DVTA и создаст новый запрос.
Человек использует следующий запрос для создания таблицы с расходами:
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")
)
После создания запроса его следует выполнить.
Пользователь успешно создал две разные таблицы для работы приложения DVTA.
Теперь остался последний шаг, после чего пользователь сможет перейти к установке сервера FileZilla. Человек открывает «Диспетчер конфигурации SQL Server », выполнив его поиск в меню Пуск. Там он находит раздел «Конфигурация сети SQL Server» и нажимает на кнопку «Протоколы для SQLEXPRESS», чтобы активировать протокол TCP/IP.
Теперь нужно перезагрузить компьютер. Чтобы перезапустить эту службу, пользователь выбирает службу SQL Server и щелкает правой кнопкой мыши на SQL SERVER EXPRESS.
Отлично, человек уже закончил с настройкой SQL Server. Теперь он скачивает и устанавливает сервер FileZilla . Читатели могут напрямую загрузить сервер FileZilla, перейдя по ссылке .
Как только файл будет загружен, пользователь дважды щелкнет левой кнопкой мыши на скачанный пакет и установит сервер FileZilla. Человек принимает условия лицензионного соглашения, нажимает на кнопку «Далее», не внося каких-либо изменений.
Как только это будет сделано, сервер FileZilla будет автоматически запущен. Теперь нужно осуществить его небольшую настройку.
Пользователь вводит filezilla в качестве пароля и нажимает на кнопку «Подключиться».
Далее человек нажмет на кнопку «Изменить» и выберет параметр «Пользователи». Здесь следует создать новую учетную запись пользователя FTP, нажав на кнопку «Добавить ». Имя пользователя будет DTVA.
Теперь необходимо установить пароль. Это будет тот же пароль, который был ранее использован для SQL Server («p@ssw0rd »). Следует создать такую же учетную запись для сервера FileZillа.
Теперь остается еще один шаг для завершения настройки сервера. Пользователь перейдет к общим папкам, нажмет на кнопку «Добавить» и выберет каталог, который будет использоваться сервером FileZilla для размещения загруженных файлов. Далее, он предоставит ему разрешения на чтение и запись файлов и, наконец, нажмет на кнопку «ОК».
Как видно на картинке, пользователь успешно завершил настройку сервера FileZilla.
Ссылки для скачивания и учетные данные
- Пользователи базы данных и пароли:
vijay:vijay
raj:raj
admin:admin123
Загрузка и установка приложения DATA
Читатели могут непосредственно загрузить приложение DVTA, используя эту ссылку:
https://mega.nz/file/rPJQ0LTL#CuhQ9HBeEIKHa67jbITFQbt49FZalugWlRe5A33O6y4
Когда загрузка завершится, следует извлечь файлы в новую папку, которая выглядит аналогично тому, как показано на рисунке ниже.
Есть папка «Release », которая была создана для тестирования. Пользователь видит, что внутри нее есть пара файлов, а основное приложение здесь – это то, которое имеет красный значок и имя «DVTA.exe ».
Следует дважды щелкнуть по ярлыку «DVTA.exe» и запустить программу.
Как только это будет сделано, пользователь увидит примерно такое окно. Здесь он также может настроить сервер.
Однако оригинальное приложение DVTA не имеет такой функции, и ее IP-адрес жестко закодирован. Проблема в том, что нужен сервер с точно таким же IP-адресом, который жестко закодирован в самом приложении. Для этого все, что необходимо сделать, это скомпилировать исходный код , чтобы изменить приложение таким образом, чтобы оно указывало или перенаправляло на сервер пользователя.
Теперь главная задача состоит в том, чтобы настроить связь с сервером человека.
Это потребует большого объема знаний от пользователя, но будет довольно весело. Пора приступать!
Реверсирование и изменение оригинального приложения DVTA
Теперь, нужно понять, как пользователь способен активировать кнопку «Настроить сервер ».
Прежде чем включить эту кнопку, стоит немного подумать. В каких ситуациях пользователь сталкивался с такими отключенными кнопками в клиентских приложениях, когда осуществлял тестирование на проникновение. Бывают случаи, когда человек входит в систему и некоторые меню для него отключены. К примеру, он является создателем, и у него не может быть меню проверки, поэтому некоторые разработчики отключают его в клиентах, предполагая, что пользователь не сможет их включить. Однако эти отключенные меню можно легко активировать в приложениях, написанных на C sharp.net.
Стоит понять, как пользователь может это сделать. Прежде всего, нужно сделать копию извлеченной папки DVTA на случай, если что-то пойдет не так. Таким образом, он сможет начать с нуля, не скачивая все еще раз. Чтобы активировать кнопку «Настроить сервер », пользователь будет использовать инструмент под названием dnSpy . Читатели могут скачать его непосредственно по этой ссылке .
Пользователь скачивает последнюю версию программы.
Когда загрузка будет завершена, пользователь извлекает файлы в новую папку.
Как только извлечение будет завершено, пользователь увидит две версии dnSpy – 32-битную и 64-битную. В данном практическом примере человек будет использовать 32-битную версию , потому что целевое приложение является также 32-битным.
На изображении ниже видно, что «dnSpy-x86», – это 32-битная версия, а другой файл, – 64-битная версия.
Итак, не теряя времени, пользователь быстро открывает файл «dnSpy-x86», дважды щелкнув по нему левой кнопкой мыши.
Когда приложение dnSpy уже запустилось, нужно в нем открыть программу DVTA, перейдя по пути: «Файл > Открыть».
В нужной папке пользователь выбирает файл DVTA.exe. Итак, это именно то приложение, которое человек собирается изменить.
Теперь главная задача – это выяснить точное местоположение отключенной кнопки, а затем исправить двоичный файл таким образом, чтобы она была активной.
В левом боковом меню пользователь нажимает на DVTA и разворачивает DVTA.exe. Как только файл откроется, он выбирает DVTA. Теперь, пользователь находит файлы C Sharp в исходном коде. Если читатели заметили ранее, когда человек открывает приложение DVTA, оно показывает ему страницу входа в систему. На этой странице в нижней части есть кнопка «Настроить сервер». Именно она и интересует пользователя.
Теперь, не теряя времени, человек выбирает «Login ». Программа начнет автоматически декомпилировать исходный код.
Все это кажется очень интересным. Пользователю теперь довольно легко понять весь исходный код приложения. Когда он прокручивает вниз, то обнаруживает, что есть условие, которое отвечает за поиск метода под названием «Настроен ли сервер». Пользователь нажмет на него и увидит, где находится нужное ему значение.
Оно будет показывать конкретное сообщение «MessageBox.Show » («Это приложение можно использовать только после настройки сервера»). Это означает, что этот блок никогда не будет выполняться, потому что он всегда возвращается со значением «False». Так что это означает, что «this.configserver.Enabled = False ;», – это та часть, которая будет выполняться всегда.
Читатели уже заметили, что весь исходный код написан на 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 ».
Пользователь щелкнет правой кнопкой мыши на значение ldc.i4.0 и отредактирует инструкции IL, как показано ниже на картинке:
Он откроет еще одно приглашение и правой кнопкой мыши щелкнет на значение ldc.14.0, а затем выберет ldc.i4.1 и нажмет на кнопку «ОК».
Теперь пользователю нужно сохранить конфигурацию, перейдя по пути: «Файл > Сохранить модуль».
Человек сохранит этот файл в том же месте, где располагается оригинальная версия DVTA, чтобы он смог заменить нужный файл .exe.
Можно закрыть приложение dnSpy и открыть измененную программу DVTA.exe, перейдя в нужный каталог.
Настройка и вход в измененное приложение DVTA
Ура! Как можно заметить, кнопка «Настроить сервер» активна.
Итак, стоит перейти к настройке сервера. Как было уже сказано, будет использоваться тот же сервер, что и база данных.
Пользователь вводит «127.0.0.1» в качестве его сервера и нажимает на кнопку «Настроить сервер».
Сервер был успешно настроен.
Теперь нужно убедиться, что все в порядке. Пользователь вернется в каталог DVTA и дважды нажмет на DVTA.exe (конфигурационный файл XML, который находится чуть ниже самого приложения DVTA).
Дважды нажав на него, пользователь просмотрит файл конфигурации.
Когда он увидит настройки приложения, то заметит, что сервер базы данных – это 127.0.0.1/SQLExpress, а FTP-сервер – также настроен на 127.0.0.1.
Потрясающе! Все теперь настроено верно.
Теперь человек открывает измененное приложение DVTA и входит в систему как пользователь vijay , профиль которого был создан ранее в программе установки SQL Server.
Отлично, как видно на картинке, человек успешно вошел в приложение.
Стоит также проверить данные другого пользователя и посмотреть, какие права имеет администратор.
Все работает нормально, пользователь успешно вошел в систему как администратор.
Автор переведенной статьи : Vijay.
Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.
ЧИТАТЬ ВСЕ СТАТЬИ НА САЙТЕ | ПОДПИСЫВАЙТЕСЬ НА НАШ TELEGRAM КАНАЛ