
Плагин Burp для расшифровки трафика, зашифрованного AES, на лету
Плагин для Burpsuite для дешифровки AES-зашифрованного трафика на лету
ПРИМЕЧАНИЕ: В настоящее время поддерживается шифрование/дешифрование AES/CBC/PKCS5Padding и AES/ECB/PKCS5Padding.
$ git clone https://github.com/Ebryx/AES-Killer/
$ cd AES-Killer
$ ./gradlew clean build
AES_Killer-Parameters.java: Допустим, если приложение применяет шифрование для некоторых параметров в запросе, и эти параметры будут меняться каждый раз в зависимости от конечной точки/запроса, то всё, что вам нужно сделать, это следующее:
- Добавьте конечные точки, добавив this.endpoints.add("abc"); в функцию registerExtenderCallbacks
- Добавьте параметры, которые будут зашифрованы, в `String[][] parameters`
- Добавьте остальные параметры в grant_type или оставьте пустую запись
и позвольте коду сделать всё волшебство за вас.
AES_Killer_v3.0.java: Этот вариант является универсальным и может работать с любым типом формата запроса, т.е. GET, POST (Form, JSON) с чередующимися параметрами на разных конечных точках.
- Склонируйте проект и замените BurpExtender.java кодом из AES_Killer_v3.0.java - Измените конечные точки и параметры каждого типа запроса в порядке, как показано ниже - Обновите параметры SecretKey и IV, а также другие необходимые методы - Соберите проект, и всё готово
AES_Killer_v4.0.java: Этот вариант предназначен для многоуровневого шифрования, когда приложение шифрует несколько параметров запроса одним ключом, а затем шифрует всё тело запроса другим ключом.
- Склонируйте проект и замените BurpExtender.java кодом из AES_Killer_v4.0.java - Измените конечные точки и параметры, как показано ниже - Обновите секретные ключи и другие необходимые методы - Соберите проект и добавьте jar-файл в ваш расширитель
ПРИМЕЧАНИЕ: Эти варианты не будут работать напрямую из-за особенностей вашего запроса, поэтому может потребоваться небольшая доработка.
Скачайте jar-файл из релиза и добавьте в burpsuite
Secret KeyInitialize VectorStart AES Killer
Как только мы запустим AES Killer, он берёт под контроль Burp IHttpListener.processHttpMessage, который отвечает за обработку всего исходящего и входящего трафика, и AES Killer делает следующее:
ProcessHttpMessage шифрует запросProcessHttpMessage сначала расшифровывает ответ, прежде чем показать его намТаким образом, мы будем получать только ответ в виде обычного текста и можем работать с запросом в виде обычного текста.
Мы также можем вручную шифровать и дешифровать строки с помощью AES Killer. Возьмём зашифрованную строку из запроса TYROd49FWJjYBfv02oiUzwRQgxWMWiw4W3oCqvNf8h3bnb7X0bobypFzMt797CYU и дешифруем её с помощью AES Killer. Аналогично можно выполнить и шифрование.
Скачайте демонстрационное приложение здесь