Я пытаюсь перенаправить HTTP-трафик с 80 на 8080 для использования Burp Suite.
Используя iptables, моя команда была:
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080
Таким образом, трафик был перенаправлен на порт 8080 и отображен в Burp. Однако запрос GET продолжает загружаться, и если я отключу перехват, запросы заполняют историю Burp, пока она не заполнится.
Я выполнил полную очистку и сброс iptables безрезультатно.
РЕДАКТИРОВАТЬ: после дальнейшего исследования я подозреваю, что тот же запрос продолжает возвращаться в Burp Suite после пересылки. Вместо этого это может быть проблемой с Burp. Помогите?
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: я делаю это на виртуальной машине ubuntu 13 и тестирую это в браузере эмулятора Android (работающего на виртуальной машине) без прокси.
Поправьте меня, если я ошибаюсь, но Burp Suite - это прокси-сервер, поэтому для каждого подключения будет другое подключение обратно. Ваше первое соединение правильно перенаправляется на Burp, а затем перенаправляются и собственные исходящие соединения Burp. Вы можете исключить Burp, изменив правило iptables следующим образом:
iptables -t nat -A OUTPUT -p tcp --dport 80 ! --uid-owner <UID OF BURP PROCESS> -j DNAT --to 127.0.0.1:8080
Конечно, для вас было бы важно запустить Burp от имени другого пользователя, чем ваш браузер. Скорее всего, я мог бы дать вам лучший ответ, если бы у меня было больше подробностей или пример сценария, описывающий то, что вы пытаетесь достичь?
Удачи.
РЕДАКТИРОВАТЬ: правильная команда, которая сработала, была
iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner 0 -j DNAT --to 127.0.0.1:8080
после запуска Burp Suite от имени root.
Мое решение заключалось в том, чтобы просто указать источник HTTP-запроса и ограничить всю маршрутизацию только теми, которые идут с этого IP-адреса.
sudo iptables -t nat -A OUTPUT -p tcp -s 127.0.0.1 --dport 80 -j DNAT --to 127.0.0.1:8080
после того, как запрос пройдет через отрыжку, он больше не будет маршрутизирован.
Однако это работает только для браузеров (я использую firefox).
Когда я попробовал это с эмулятором Android и изменил правило iptable на разные источники, такие как 10.0.2.1 (адрес шлюза эмулятора), 10.0.2.2, 10.0.2.15, запросы не маршрутизируются.