Burp Suite для пентестинга: Fuzzing с помощью Intruder (Часть 2)

Burp Suite для пентестинга: Fuzzing с помощью Intruder (Часть 2)

@Leakinfo

Часть 1

Фаззинг для SQL-инъекций

Burp Suite имеет отдельный список полезной нагрузки, специально разработанный для обнаружения уязвимостей SQL. Поэтому пользователь попробует использовать именно его.

Он перехватит запрос и поделится им с Intruder.

Пользователь также выберет точки впрыска («1» и «1»), а затем нажмет на кнопку «Add», чтобы установить их как полезную нагрузку 1 и полезную нагрузку 2 соответственно. Нужно также не забыть выбрать тип атаки как «Cluster Bomb».

Далее пользователь выбирает параметр «Fuzzing – SQL Injection» для полезной нагрузки 1 из предлагаемых вариантов.

А затем он делает это же для полезной нагрузки номер 2.

Прежде чем нажать на кнопку атаки, пользователь определяет параметры Grep Match.

В данном случае пользователь намеренно использовал фразу: «Invalid credentials!», так как это ошибка, возникающая при вводе неправильных учетных данных. Поэтому вместо «Invalid credentials!» стоит ввести тот текст, который отображается как часть сообщения об ошибке, когда пользователю не удается войти в систему.

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

Пользователь выберет один из предложенных вариантов и проверит его в браузере.

Отлично! Все прошло успешно.

Fuzzing с настраиваемыми списками

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

Однако разработчики Burp suite решили эту проблему, поэтому они разработали кнопку «ADD» с полем ввода, где пользователи могут ввести их полезную нагрузку вместе с предопределенными списками.

Итак, настала пора опять захватить HTTP-запрос и поделиться им с Intruder.

Нужно нажать на кнопку «Add $», чтобы определить точку впрыска.

Сначала пользователь выбирает среди уже готовых списков. В данном примере он использует наиболее подходящий список, то есть «Fuzzing – XSS».

Он добавляет свою собственную индивидуальную полезную нагрузку:

<script>alert(“Ignite Technologies”)</script>

Пришло время найти ее в списке. Стоит также проверить ее работу в браузере.

Все работает! Появляется надпись: «Ignite Technologies».

Инъекция индивидуальных списков полезной нагрузки

Читатели, скорее всего, видели множество списков полезной нагрузки по всему Интернету, поэтому нужно создать отдельную полезную нагрузку и нажать кнопку «Add», чтобы получить ее.

Burp suite дает возможность сделать это.

В левой части экрана над кнопкой «Add» есть еще одна кнопка, которая подписана как «Load». Эта функция в Burp suite помогает пользователям загружать любой список полезной нагрузки для атаки Fuzzing.

Пользователь нажмет на кнопку «Load» и выберет список полезной нагрузки, который он хочет фаззировать.

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

Пора начинать: пользователь нажмет на кнопку атаки и проанализирует результат, который будет получен.

Отлично! На приведенном ниже скриншоте видно, что полезная нагрузка работает.

Fuzzing: виды атак

Пользователь может использовать разные виды атак, доступные в Burp Suite.

Итак, настало время познакомиться с одной из самых распространенных видов атак – «Cluster Bomb». В данном случае пользователь попытается фаззировать имя пользователя и пароль, введя два разных списка полезной нагрузки соответственно в разные точки инъекции.

Cluster Bomb

Пользователь сперва (как обычно) захватит текущий HTTP-запрос и поделится им с Intruder.

Теперь нужно выбрать расположение полезной нагрузки, определив входные значения таких полей, как логин и пароль, с помощью кнопки «Add$». Далее пользователь выбирает тип атаки как «Cluster Bomb».

Пора заполнить пустое поле списком, включающим все возможные имена пользователей.

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

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

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

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

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

Battering ram

Тип атаки «Battering ram» популярен среди багхантеров, так как для него требуется все один набор списков полезной нагрузки, чтобы поразить уязвимости в нескольких позициях внутри запроса.

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

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

Теперь стоит добавить некоторые полезные нагрузки, указав их в поле ввода. А затем начать атаку, нажав на уже известную читателям кнопку «Attack».

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

Pitchfork

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

Нужно попробовать провести эту атаку для вышеупомянутого захваченного запроса, который уже был использован. Следует изменить тип атаки на «Pitchfork» и выбрать расположение полезной нагрузки, после нажав на кнопку «Add».

Пользователь выполняет такие же действия, как и при атаке «Cluster Bomb». Он выбирает набор полезной нагрузки и вводит нужные списки.

Аналогичным образом он установит соответствующую полезную нагрузку в наборе полезной нагрузки 2 для полезных нагрузок из списка 1:

bee : 12345
ignite : ignite
raj : 123
mummy : hacking
user : raj

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

Fuzzing: тип полезной нагрузки

Пользователь уже знает тот факт, что тип полезной нагрузки на вкладке Intruder Burpsuite предназначен для управления и создания полезных нагрузок в соответствии с требованиями человека. Хотя ранее пользователь использовал только простой вариант списка, есть и ряд других списков, которые все еще скрыты от его глаз. Стоит взглянуть на них.

Brute forcer

Иногда люди путают два термина: «fuzzing» и «brute-forcing», однако они отличаются. Burpsuite имеет встроенный тип полезной нагрузки как brute forcer, который принимает входную строку и генерирует полезные нагрузки заданной длины, содержащие все перестановки заданного входного набора символов.

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

Следует открыть burpsuite и захватить HTTP-запрос, отправленный порталом Mutillidae, и тем самым поделиться им с Intruder.

Теперь пользователь будет фаззировать поле пароля, как он делал это и ранее, выбрав «123» в качестве точки инъекции и установив тип атаки как «Sniper».

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

  • Character Set – это набор символов, которые должны использоваться в полезных нагрузках.
  • Min Length – длина самой короткой полезной нагрузки.
  • Max Length – длина самой длинной полезной нагрузки.

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

И, наконец, пользователь нажмет на кнопку атаки. Нужно сесть поудобнее и расслабиться, потому что теперь burp suite выполняет свою работу. Он создаст и сопоставит полезную нагрузку с именем пользователя, предоставленным для ввода пароля.

Отлично! На приведенном ниже изображении можно увидеть, что пользователь получил полезную нагрузку как «Аа1» с перенаправлением 302 . Все прошло успешно!

Теперь пользователь перейдет в верхнюю часть вкладки Intruder и выберет там опцию «Attack». Он нажмет на кнопку «Pause», чтобы приостановить fuzzer.

Character Frobber

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

Однако если пользователь попытается манипулировать символами строки вручную, это может занять несколько недель, а то и месяцев, чтобы он смог откопать подлинный запрос. Таким образом, чтобы облегчить работу, burpsuite имеет удивительный тип полезной нагрузки под названием: «Character Forbber», который изменяет значение каждой позиции символа в существующей базовой строке, увеличивая код конкретного символа ASCII на единицу.

Теперь пользователь откроет приложение Mutillidae и в левой части панели мониторинга перейдет по следующему пути: OWASP 2017 > Broken Authentication & Session Management > Privilege Escalation > Via CBC — Bit Flipping. Таким образом, он захватит запрос.

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

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

Нужно выбрать расположение полезной нагрузки для этого запроса.

Время настройки: пользователь выбирает тип полезной нагрузки как «Character frobber», в меню «Operate on» ему подходит вариант «Base value of payload position».

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

Поэтому на вкладке «Options» пользователь прокрутит вниз до поля «Grep – Extract», установит флажок возле пункта: «Extract the following items from responses» и нажмет на кнопку «Add».

Пользователь будет перенаправлен в новое окно, нажмет на кнопку «Fetch response» и найдет там «Application ID». Далее он получит выходные данные и нажмет на «OK». В данном случае это «A1B2».

Вот оно! Пользователь нажмет на кнопку атаки и запустит фаззер (вместо идентификатора приложения он может выбрать идентификатор пользователя или идентификатор группы).

Круто! На приведенном ниже изображении видно, что пользователь успешно захватил все строки, соответствующие определенному идентификатору приложения.

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

Numbers

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

Хотя способ применения этой полезной нагрузки не меняется, независимо от того, использует ли пользователь ее для OTP Bypass или входа в систему с помощью брутфорс.

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

Как только пользователь поделится им с Intruder, ему, таким образом, нужно будет выбрать расположение полезной нагрузки. Здесь следует отметить поле пароля и установить тип атаки как «Sniper».

Пользователь выбирает «Numbers» из предоставленных типов полезной нагрузки и дополнительно настраивает следующие параметры в соответствии с его требованиями.

From – фаззинг начнется с этой полезной нагрузки.

To – и закончится этой полезной нагрузкой.

Steps – указывает на итерацию, в данном случае пользователь установил ее на «1», то есть следующая полезная нагрузка после 100 будет 101, 102, 103 и так далее. Если пользователь установит ее на «2», то следующая полезная нагрузка после 100 будет 102, 104, 106 с шагом 2.

Как только пользователь настроил все эти параметры, он нажмет на кнопку атаки и будет ждать результат. Через несколько минут он получит перенаправление 302 на 123.

Case Modification

Иногда бывает трудно определить, в какой сase пользователь добавил свой пароль. Таким образом, чтобы решить эту дилемму, burp suite имеет встроенный в себя тип полезной нагрузки, который регулирует cases (нижние и верхние) базового значения и создает полезные нагрузки внутри них.

Однако это касается не только паролей, бывают случаи, когда разработчик блокирует некоторые конкретные случаи (cases) для полей ввода.

Настала пора захватить запрос и проверить все на практике.

Читатели уже знают, что следует делать дальше: пользователь выбирает позицию полезной нагрузки и «Sniper» в качестве типа атаки для нее.

Пользователь также выбирает «Case modification» из имеющегося списка.

Он заполняет пустое поле скриптом XSS и нажмет на кнопку атаки.

Круто! Полезная нагрузка сработала в нужном месте. Следует сделать щелчок правой кнопкой мыши и выбрать пункт: «Show Response in Browser», чтобы проверить то же самое при работающем Javascript.

Теперь пользователь видит всплывающее окно с надписью «1».

Username generator

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

Поэтому burpsuite имеет еще один тип полезной нагрузки, который сам сгенерирует все возможные имена пользователей и проверит их в соответствии с введенным паролем.

Интересно, как это провернуть?

Сперва нужно захватить запрос со случайным именем пользователя и верным паролем и поделиться всем этим с Intruder.

Теперь пришло время выбрать расположение полезной нагрузки, установить параметр «random» и нажать на кнопку «Add». Далее пользователь выбирает тип атаки как «Sniper».

Пользователь выбирает тип полезной нагрузки как «Username generator» и вводит имя, которое он хочет, для имен пользователей. В данном случае пользователь ввел «Ignite Technologies».

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

Как только пользователь нажмет на кнопку атаки, fuzzer запустится. Он получит огромное количество имен пользователей, которые упорядочены в список. И нужное имя пользователя, с которым совпадет пароль – «Ignite».

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





Report Page