Старый 29.07.2011, 15:49   #1
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию Изменение tcp пакета на лету

Ищу ответа на вопрос чем и как именно можно собственно изменить пакет на лету.
Я уже делал подобное через etterfilter- в одном случае надо было проснифать пароли от ms sql сервера, но там так построено что идет согласование клиента с сервером на счет шифрования и пришлось подменять запрос клиента, для того чтобы шифрование отсутствовало.. все это происходило на freebsd.
В общем меня интересует чем еще можно и главное как подменять пакеты на лету, гугл говорит что scapy может такое, но я не могу поянть как именно..
Кто имел опыт поделитесь пожалуйста.
Софт нужен именно под *nix
tex вне форума   Ответить с цитированием
Старый 05.11.2011, 11:33   #2
Norton710
 
Регистрация: 05.12.2010
Сообщений: 15
Репутация: 0
По умолчанию

Попробуй WireShark. Она ловит все пакеты всех TCP протоколов
Norton710 вне форума   Ответить с цитированием
Старый 05.11.2011, 22:03   #3
Qwazar
 
Регистрация: 09.07.2010
Сообщений: 376
Репутация: 154
По умолчанию

Почитай тут: http://www.irongeek.com/i.php?page=s...ettercapfilter . Хотя не думаю, что это самый просто путь.
__________________
Мой блог: http://qwazar.ru/.
Qwazar вне форума   Ответить с цитированием
Старый 06.11.2011, 00:10   #4
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию

Цитата:
Сообщение от Norton710 Посмотреть сообщение
Попробуй WireShark. Она ловит все пакеты всех TCP протоколов
Цитата:
Ищу ответа на вопрос чем и как именно можно собственно изменить пакет на лету.
wireshark умеет изменять пакеты на лету?

Qwazar-
Цитата:
Я уже делал подобное через etterfilter...
В общем меня интересует чем еще можно...
tex вне форума   Ответить с цитированием
Старый 06.11.2011, 10:00   #5
ont
 
Аватар для ont
 
Регистрация: 16.12.2010
Сообщений: 57
Репутация: 92
По умолчанию

Есть несколько мыслей, которые могут помочь.
Пакет можно изменять в user-land и kernel-land.

Для kernel-land нужно написать модуль. Это немного извратно, но, кажется, возможно.
Отправной точкой могут послужить слайды BOFH meets SystemTap: rootkits made trivial

В user-land все проще, но туда нужно "поднять" пакет. Некоторые из связок для "on the fly" изменений:
  • proxy + proxifier
  • proxy + iptables (transparent proxy)
  • iptables QUEUE
  • divert sockets

proxy + proxifier
Если найти программируемый SOCKS proxy (http proxy в данном случае не подходит), то половина
дела сделана. В случае, когда программа не поддерживает прокси, понадобится обертка, заворачивающая
весь трафик программы на прокси.

С проксями чего-то плохой выбор (или я плохо искал). Нашел такой вариант: https://github.com/winterfrost/socks5py
Это довольно сыро и только SOCKS v5, но это python!

С всякими proxifier получше: redsocks transocks

proxy + iptables (transparent proxy)
Вариант с программируемым transparent SOCKS ищется плохо, но должен быть возможным, так как, например,
squid такое умеет. Это должно быть правило -j REDIRECT, которое выполняет функцию proxifier по
завороту трафика.

iptables QUEUE
Здесь появляется идея покопать iptables дальше. И можно наткнуться на возможность правки пакетов в
user-land через -j QUEUE. Для изменений пакетов нужно написать программу с использованием
libnetfilter_queue. Вроде есть биндинги для python: https://www.wzdftpd.net/redmine/projects/nfqueue-bindings
В результате должен получится абсолютно прозрачный фильтр.

divert sockets
Нашлось что-то и такое бородато-лохматое и из BSD ) Divert-Sockets-mini-HOWTO

Из прочих утилит, которые можно допилить/посмотреть:
ont вне форума   Ответить с цитированием
Старый 25.06.2012, 02:09   #6
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию

Пришла мне как-то раз, на мой взгляд, не плохая идея. Стоит однако заметить что все новое хорошо забытое старое и что-то подобное уже было реализовано за некоторыми моментами.
О чем я вообще?
- А попытаюсь я расказать о не плохом, опять же на мой взгляд, способе компрометации сетевых служб, через внедрение в tcp сессию.
Естественно хост с которого производится атака должен находится в одном сегменте сети либо с сервером либо с клиентом создавшим соединение.
Если кратко, то можно назвать всё это tcp hijacking, примерно как на этом видео http://www.youtube.com/watch?v=s_XD8heYNrc
за исключением того что атаковать не обязательно plain-text протоколы ака telnet/ftp/http а абсолютно любые- не использующие шифрования, кроме как при авторизации.
Объясню подробнее что мне пришло в голову и что уже в какой-то степени реализовал, на примере протокола mysql:

Сидим мы значит на одном хосте- 192.168.1.45 ( A ), рядом находится веб сервер ( B ), с php движком и использует базу данных mysql, ip этого сервера например 192.168.1.55. А база которую он использует находится на 192.168.1.65 ( C ). Нам очень бы хотелось познакомится с ней поближе, но увы- забыли пароль и на сервер с сайтом тоже.
Что можно сделать в такой ситуации:
Первое- заставим весь трафик между этими хостами проходить через нас с помощью arp-спуфинга.
Второе- так как в ручную общаться протоколом mysql мы не умеем то будем использовать его же клиента. Как примерно происходит общение:
клиент посылает SYN на установку соединения, сервер отвечает SYN , ACK, клиент говорит ACK, а дальше уже mysql отправляет приветствие и соль для шифрования пароля. Пароля мы не знаем, но чтобы плавно влиться в tcp сессию, мы просто обманем своего клиента, записат ответ сервера из сессии между B с C. Тоесть еще раз:

B соединяется с C, получет приветствие, отсылает пароль, получает подтверждение.
Мы находясь на хосте A записываем ответы сервера C, и после прохождения авторизации отключаем B чтобы не мешал ,пакетом FIN или RST, или еще можно эмулировать ошибку протокола.
Запускаем локально клиента, и кормим ему ответы сервера C, давая понять что все в порядке, пройдя точку авторизации, входим в режим tcp-прокси - изменяя параметры пакетов (Sequence, Acknowledgment ...) для согласования и перенаправляя их между сервером и нашим клиентом, таким образом мы оказались подключенными к серверу C заместо B. Конец (=
Успел протестировать протоколы mysql и postgresql, все работает на ура
tex вне форума   Ответить с цитированием
Старый 10.07.2012, 12:42   #7
mandy
 
Регистрация: 10.07.2012
Сообщений: 2
Репутация: 0
По умолчанию

какие пакеты? если HTTP трафик, то BeeF или, как уже написали, выше фильтр для ettercap
mandy вне форума   Ответить с цитированием
Старый 10.07.2012, 22:47   #8
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию

ont хорошо написал, больше не надо спасибо.
tex вне форума   Ответить с цитированием
Старый 15.07.2012, 20:35   #9
DrakonHaSh
 
Регистрация: 05.07.2010
Сообщений: 244
Репутация: 106
По умолчанию

оказывается есть древняя утилита Hunt под эти нужны
http://twit88.com/blog/2009/10/27/open-source-tcp-session-hijacking-tool/
http://packetstormsecurity.org/sniffers/hunt/
DrakonHaSh вне форума   Ответить с цитированием
Старый 28.07.2012, 01:00   #10
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию

Утилита Hunt насколько я ее изучил- громоздкая, но способов применения маловато )
И я реализовал наконец-то, что хотел (= , воспользовался скриптом про который написано "MITM на python" и подправил под свои цели, вот что вышло: http://www.youtube.com/watch?v=mDVLOA8QCSk
tex вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot