MITM атака с подменой трафика.

Очень распространенная задача, которая возникает при анализе работы какого-то протокола или при проведении атак, — это подменить в передаваемом трафике данные. Есть, например,  клиентская программа, которая коннектится к серверу, и у них происходит обмен данными. Ну а нам надо что-то в них поменять. Решений, конечно, масса. Например, Ettercap и его фильтры (о которых я писал года три назад) или классический TCP-прокси.


Хотя самым быстрым решением будет тулза netsed (автор которой Михал Залевский). Плюс ее (кроме того, что она входит в поставку с BackTrack) в том, что она проста. По сути, это мини-портфорвардер с функцией подстановки строк.

Все, что требуется, — указать в консоли: протокол, локальный порт, IP удаленного хоста, удаленный порт, а далее — набор правил (одно или несколько). Например:

netsed tcp 8080 192.168.0.1 80 's/victim/hacked/2'

Здесь мы указываем, чтобы программка слушала 8080-й порт и переправляла данные на сервер на 80-й порт, заменяя в первых двух пакетах строку victim на hacked.

Как уже говорилось, правил может быть много, применяются они последовательно и, что самое приятное, можно менять и бинарщину. Для этого надо указать подменяемые данные в  урленкоженном виде (%+HEX). Например:

netsed tcp 8080 192.168.0.1 80 's/%00/%ff' 's/%01%02%03/%00%00%00'

 Очень удобно и прикольно получается. Единственная приличная проблема в том, что если подменяемая строка меньше/больше исходной, то может разойтись размерность пакетов и они будут некорректно обработаны (но это зависит от протокола).
Еще одним решением, чем-то похожим, будет тулза HexInject. Но по использованию она заметно отличается. В ней разделены функции сниффера и функции инжектора. То есть для того, чтобы выполнить первую задачу замены строки, надо будет сделать примерно следующее:

hexinject -s -i eth0 -c 2 | replace ' 76 69 63 74 69 6d''68 61 63 6b 65 72' | hexinject -p -i eth0

 Здесь первый hexinject соснифает первые два пакета трафика на интерфейсе eth0 и далее передаст данные стандартной команде replace. Она заменит строку и запустит hexinject, но уже на инжект данных. Вообще, в данном случае возможностей у нас существенно больше, так как есть все
возможности внешних команд и тулз, а они в nix’ах очень широки. Вероятно, поэтому она попала в новую версию BackTrack — в Kali Linux.

Вынимаем из трафика все заголовки Host
Вынимаем из трафика
все заголовки Host

Кроме того, приличный плюс еще есть в том, что мы можем, используя параметр -f, указывать классические pcap-фильтры для перехватываемых данных. Например, «host 192.168.0.100 and port 80» позволит нам видеть только HTTP-трафик с определенным хостом.

Итог последовательно- сти "echo '01 02 03 04'|hexinject -p -i eth0"
Итог последовательно-
сти «echo ’01 02 03 04’|hexinject -p -i eth0»

Кроме того, HexInject имеет возможность работать с чистым Wi-Fi-трафиком, а также с USB. Подход к ним аналогичен. И мне кажется, что это шикарно.

Другие материалы по MITM атака вы можете прочитать здесь

Click to rate this post!
[Total: 2 Average: 3.5]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

5 comments On MITM атака с подменой трафика.

Leave a reply:

Your email address will not be published.