Gray Hat C#

#7 Gray Hat C#. Руководство для хакера по созданию и автоматизации инструментов безопасности. Фаззинг и использование XSS и SQL-инъекций. Настройка лабораторного стенда.

Здравствуйте, дорогие друзья.

В этом разделе Вы узнаете, как написать короткий и понятный сценарий межсайтового скриптинга (XSS), и фаззер SQL-инъекций для URL-адресов, которые принимают параметры HTTP в запросах GET и POST. Фаззер — это программное обеспечение, которое пытается найти ошибки в другом программном обеспечении, например, на серверах, путем отправки неверных или искаженных данных. Двумя основными типами фаззеров являются мутационные и порождающие. Мутационный фаззер пытается испортить заведомо хорошие входные данные плохими данными, не принимая во внимание протокол или структуру данных. Порождающий фаззер, напротив, учитывает нюансы протокола связи сервера и использует эти нюансы для генерации технически достоверных данных, которые отправляются на сервер. Цель обоих типов фаззеров — заставить сервер вернуть фаззеру ошибку.


Мы напишем мутационный фаззер, который Вы сможете использовать, если у Вас есть заведомо исправные входные данные в виде URL-адреса или HTTP-запроса. Как только Вы сможете использовать фаззер для поиска уязвимостей внедрения XSS и SQL, Вы узнаете, как использовать уязвимости внедрения SQL для получения имен пользователей и хэшей паролей из база данных.
Чтобы найти и эксплуатировать уязвимости внедрения XSS и SQL, мы будем использовать основные библиотеки HTTP для программного создания HTTP-запросов на C#. Сначала мы напишем простой фаззер, который анализирует URL-адрес и начинает фаззить параметры HTTP с помощью запросов GET и POST. Далее мы разработаем полные эксплойты для уязвимостей SQL-инъекций, которые используют тщательно созданные HTTP-запросы для извлечения информации о пользователе из базы данных.


В этом разделе мы протестируем наши инструменты на небольшом дистрибутиве Linux под названием BadStore (доступен на веб-сайте VulnHub, https://www.vulnhub.com/). BadStore разработан с учетом таких уязвимостей, как SQL-инъекции и XSS-атаки (среди многих других). После загрузки ISO-образа BadStore с VulnHub мы воспользуемся бесплатным программным обеспечением виртуализации VirtualBox, чтобы создать виртуальную машину для загрузки ISO-образа BadStore, чтобы мы могли атаковать без риска поставить под угрозу нашу собственную хост-систему.


Настройка виртуальной машины

Чтобы установить VirtualBox в Linux, Windows или OS X, загрузите программное обеспечение VirtualBox с https://www.virtualbox.org/. (Установка должна быть простой; просто следуйте последним инструкциям на сайте при загрузке программного обеспечения.) Виртуальные машины (ВМ) позволяют нам эмулировать компьютерную систему, с помощью физического компьютера. Мы можем использовать виртуальные машины для простого создания уязвимых программных систем и управления ими.


Добавление виртуальной сети только для хоста

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

  1. Нажмите File4Preferences, чтобы открыть диалоговое окно VirtualBox – Настройки. В OS X выберите VirtualBox4Preferences.
  2. Щелкните раздел Сеть слева. Вы должны увидеть две вкладки: Сети NAT и Сети только для хоста. В OS X перейдите на вкладку «Сеть» в верхней части диалогового окна «Настройки».
  3. Перейдите на вкладку «Сети только для хоста», а затем нажмите кнопку «Добавить сеть только для хоста» (Ins) справа. Эта кнопка представляет собой значок сетевой карты со знаком плюса. Это должно создать сеть с именем vboxnet0.
  4. Нажмите кнопку «Редактировать сеть только для хоста» (Пробел) справа. Эта кнопка представляет собой значок отвертки.
  5. В открывшемся диалоговом окне перейдите на вкладку DHCP-сервер. Установите флажок Включить сервер. В поле «Адрес сервера» введите IP-адрес 192.168.56.2. В поле «Маска сервера» введите 255.255.255.0. В поле «Нижняя граница адреса» введите 192.168.56.100. В поле «Верхняя граница адреса» введите 192.168.56.199.
  6. Нажмите OK, чтобы сохранить изменения в сети только для хоста.
  7. Нажмите «ОК» еще раз, чтобы закрыть диалоговое окно «Настройки».

Создание виртуальной машины


После установки VirtualBox и настройки сети только для хоста, выполните следующие действия:

  1. Щелкните значок «Новый» в верхнем левом углу, как показано на рисунке ниже.
  2. При появлении диалогового окна выбора имени операционной системы
    Тема и тип, выберите раскрывающийся список «Другой Linux (32-разрядная версия)».
  3. Нажмите «Продолжить», после чего появится экран с предложением выделить виртуальной машине немного оперативной памяти. Установите объем оперативной памяти на 512 МБ и нажмите «Продолжить». (Фаззинг и эксплойты могут привести к тому, что веб-сервер будет использовать много оперативной памяти виртуальной машины.)
  4. При появлении запроса на создание нового виртуального жесткого диска выберите «Не добавлять виртуальный жесткий диск» и нажмите «Создать». (Мы запустим BadStore из образа ISO.) Теперь Вы должны увидеть виртуальную машину на левой панели окна VirtualBox Manager, как показано на рисунке ниже.
VirtualBox with a BadStore VM

Загрузка виртуальной машины из ISO-образа BadStore


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

  1. Щелкните правой кнопкой мыши на виртуальную машину, на левой панели VirtualBox Manager и выберите «Настройки». Должно появиться диалоговое окно, показывающее текущие настройки сетевой карты, компакт-диска и других элементов конфигурации.
  2. Выберите вкладку «Сеть», в диалоговом окне «Настройки». Вы должны увидеть более семи настроек сетевой карты, включая NAT (преобразование сетевых адресов), «только для хоста» и «мост». Выберите сеть только для хоста, чтобы выделить IP-адрес, доступный только с хост-компьютера, но не из остального Интернета.
  3. Вам необходимо установить тип сетевой карты в раскрывающемся списке «Дополнительно» на более старый набор микросхем, поскольку BadStore основан на старом ядре Linux, а некоторые новые наборы микросхем не поддерживаются. Выберите PCnet-FAST III. Теперь настройте CD-ROM на загрузку с ISO на жестком диске, выполнив следующие действия:

Выполнив следующие шаги:

  1. Выберите вкладку «Хранилище» в диалоговом окне «Настройки». Щелкните значок компакт-диска, чтобы отобразить меню с опцией «Выбрать файл виртуального диска CD/DVD».
  2. Нажмите кнопку «Выбрать файл виртуального CD/DVD-диска», чтобы найти ISO-образ BadStore, сохраненный в Вашей файловой системе, и установить его в качестве загрузочного носителя. Теперь виртуальная машина должна быть готова к загрузке.
  3. Сохраните настройки, нажав ОК в правом нижнем углу вкладки «Настройки». Затем нажмите кнопку «Пуск» в верхнем левом углу VirtualBox Manager, рядом с кнопкой «Настройки» в виде шестеренки, чтобы загрузить виртуальную машину.
  4. После загрузки компьютера Вы должны увидеть сообщение: «Пожалуйста, нажмите Enter, чтобы активировать эту консоль». Нажмите Enter и введите ifconfig, чтобы просмотреть конфигурацию IP, которая должна была быть получена.
  5. Получив IP-адрес вашей виртуальной машины, введите его в веб-браузере, и Вы должны увидеть экран, подобный показанному на рисунке ниже.
The main page of the BadStore web application

На этом все. Всем хорошего дня!

Цикл статей по Gray Hat C#. Руководство для хакера по созданию и автоматизации инструментов безопасности.