проксировать пользовательскую программу с помощью proxychains

Вопрос или проблема

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

Моя цель: перенаправить HTTPS-трафик из моей пользовательской программы в BurpSuite для анализа ответа сервера и отладки моей программы.

  • У меня Debian 4.4.3
  • У меня два сетевых интерфейса: eth0 и tap0, я работаю на tap0.
  • У меня есть программа на PHP, которая просто отправляет HTTPS-запрос на локальный сервер (tap0). Мой PHP-код использует CURL для отправки запроса (curl_init(), curl_setopt() и т. д.)

В целях отладки я подумал отправить мои потоки через BurpSuite, чтобы увидеть HTTPS-запросы. Итак:

  • Я запускаю Burp, который слушает все интерфейсы на порту 8080
  • Я настраиваю /etc/proxychains.conf, и в моем ProxyList есть:

    socks4 127.0.0.1 8080
    socks5 127.0.0.1 8080
    socks4 XX.XX.XX.217 8080
    socks5 XX.XX.XX.217 8080
    

А когда я использую proxychains:

proxychains php myProgramme.php

Моя программа выполняется, но proxychains не «проксифицирует» поток, и поэтому Burp ничего не видит…

Я думаю, это потому, что я в своей локальной сети?

Какое, по вашему мнению, лучшее решение для перехвата и просмотра HTTPS-потоков в моей программе на PHP?

Вот как вы должны это настроить. Это для Kali Linux, и BurpSuite предустановлен.

После того как вы настроили BurpSuite, вы можете использовать значения по умолчанию, но единственное, что нужно сделать — это отключить перехват в BurpSuite. Если вы кликнете на прокси, вы увидите 4 вкладки, и перехват должен быть выключен.

Первое, что мы хотим — чтобы Mozilla подключалась к интернету через BurpSuite. Итак, перейдите в настройки Mozilla > Основные, прокрутите вниз до «Сетевой прокси». Нажмите на настройки и выберите «Ручная настройка прокси». Вы увидите 4 поля, в каждом из которых есть поле для порта. Введите «127.0.0.1» во все поля и для всех полей портов введите «8080». По умолчанию под этими полями должно быть отмечено SOCKSv5, если нет — отметьте его.

Это был первый шаг, и теперь мы можем подключаться только к HTTP-сайтам. Для HTTPS-сайтов вы должны увидеть сообщение «соединение не защищено» (что-то подобное). Нам нужно установить сертификат CA BurpSuite. Перейдите на http://burpsuite/ и на правой стороне нажмите на сертификат CA и скачайте его.

Для последнего шага нам нужно импортировать этот сертификат в Mozilla. Таким образом, Mozilla будет распознавать BurpSuite как доверенный прокси-источник. Убедитесь, что ваш BurpSuite работает. Перейдите в настройки Mozilla, слева нажмите на «Конфиденциальность и безопасность», затем прокрутите вниз до «Сертификаты». Нажмите на «Обзор», и вы будете перенаправлены для выбора загруженного файла сертификата CA. Импортируйте его, нажмите, вы увидите всплывающее окно, выберите оба варианта и нажмите ОК. Вы в порядке.

Ответ или решение

Для успешной настройki прокси-сервера с использованием Proxychains и BurpSuite в вашей среде разработки, необходимо учесть несколько ключевых шагов, особенно учитывая ваши технологии и операционную систему Debian 4.4.3. Ниже приведены детальные инструкции по настройке и решению возникшей проблемы с перехватом HTTPS-трафика вашего PHP-приложения.

Шаг 1: Настройка BurpSuite

  1. Запуск BurpSuite: Убедитесь, что BurpSuite запущен и настроен на прослушивание всех интерфейсов на порту 8080. Вы можете проверить это в разделе Proxy > Options.

  2. Отключение перехвата: Важно убедиться, что режим перехвата (Intercept) отключён, иначе сообщение о перехвате может мешать вашему анализу. Перейдите в раздел Proxy > Intercept и убедитесь, что он выключен.

Шаг 2: Настройка Proxychains

  1. Редактирование файла конфигурации: Убедитесь, что ваше proxychains.conf правильно настроен. Если вы хотите, чтобы PHP-программа использовала конфигурацию Proxychains, убедитесь, что следующие строки правильные:
    socks4 127.0.0.1 8080
    socks5 127.0.0.1 8080

    Убедитесь, что вы убрали любые конфигурации, которые указывают на внешние IP-адреса (XX.XX.XX.217), если они не требуются.

Шаг 3: Настройка PHP и cURL

Необходимо добавить дополнительную настройку для использования прокси с cURL. Измените ваше PHP-код, чтобы использовать прокси сервер:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://localhost:порт"); // Укажите правильный порт
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1:8080"); // Устанавливаем локальный прокси
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); // Здесь можно указать тип прокси

$response = curl_exec($ch);
curl_close($ch);

Шаг 4: Запуск программы через Proxychains

Теперь вы можете запустить вашу программу с помощью Proxychains. Используйте следующую команду в терминале:

proxychains php myProgramme.php

Шаг 5: Установка сертификата Burp CA в браузере

Чтобы анализировать HTTPS-трафик, вам потребуется установить сертификат CA от BurpSuite, чтобы ваш браузер или приложение доверяли этому соединению.

  1. Загрузка сертификата: Перейдите на http://burpsuite/ в вашем браузере и загрузите сертификат CA.

  2. Импорт в браузер: В настройках вашего браузера (например, Mozilla Firefox) перейдите в раздел управления сертификатами и импортируйте скачанный файл. Убедитесь, что выбраны опции, позволяющие этому сертификату стать доверенным.

Заключение

После выполнения всех указанных шагов, ваш PHP-программный код должен успешно перехватывать HTTPS-трафик, и BurpSuite будет отображать запросы в своем интерфейсе. Если у вас остались вопросы или возникли проблемы на каком-либо из этапов, не стесняйтесь обращаться за помощью.

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

Капча загружается...