Итак, у меня есть настройка прокси с использованием squid на порту 3128.
У меня также есть настройка ettercap.
Моя основная цель - изменять данные по мере их прохождения через мой прокси.
Обычно вы открываете www.something.com, используя мой прокси, он отображает «lala», и я хочу заменить «lala» с помощью ettercap, например, на «lala2».
Какие-либо советы командной строки для этого? Насколько я могу судить, это не процедура MITM ARP.
Если у вас уже есть рабочий прокси, через который проходят данные, вам не нужен arpspoof. Вы должны написать фильтр для ettercap. Простой текстовый файл replace.filter
содержащий (порт 80 для http):
if (ip.proto == TCP && tcp.dst == 80) { // suspress gzipped content
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding", "Accept-DontLoad");
msg("zapped Accept-Encoding!\n");
}
}
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "searchstring")) {
replace("searchstring", "replacestring");
}
}
Вы можете использовать несколько фильтров в одном файле для разных портов. Вам также необходимо "скомпилировать" свой фильтр, чтобы он работал
etterfilter replace.filter -o replace.ef
Запустите ettercap, используя этот фильтр, выполнив
ettercap -T -q -F replace.ef -M ARP /<GATEWAY_IP>/ /<TARGET_IP>/
В squid.conf используйте redirect_program
переменная конфигурации, указывающая на программу / сценарий. В этом скрипте вы можете изменять передаваемые данные, как хотите. Для забавного примера см. Вверх ногами-вниз-тернет.
Что вам действительно нужно, так это прокси, который будет выполнять фильтрацию на уровне приложения. Есть модули для Squid, которые предлагают это, хотя быстрый поиск не показывает ни одного, не требующего перекомпиляции Squid. В качестве альтернативы вы можете связать свой прокси-сервер Squid через прокси-сервер, который предлагает нужные вам функции. Это может быть простой сценарий Perl с использованием HTTP :: Proxy или другой язык и библиотека по вашему выбору.
Ettercap на самом деле не подходит для этого, хотя, вероятно, его можно заставить работать. Вам, вероятно, придется возиться с таблицами маршрутизации ядра, чтобы заставить его работать. Попробуйте прослушать ваш трафик в текущей конфигурации: вы можете обнаружить, что Ettercap повторно передает измененные кадры, не отбрасывая исходные. Также убедитесь, что у вас установлена последняя версия Ettercap. Недавно он был переиздан с большим количеством исправлений ошибок, и я знаю, что по крайней мере некоторые из них были связаны с фильтрацией пакетов. Последняя версия - 0.7.4.