![]() |
|
Модераторы: feodorv |
![]()
|
|
| Predator_2004 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
Приветствую всех! Такая задача по сетевой безопасности: есть клиент и сервер- оба консоли. Они обмениваются между собой строками. Необходимо реализовать перехват сообщения с сервера, зная порт и адрес. Спасибо за любую помощь!
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
есть два вида атак : пассивный и активный.
в первом вы "нюхаете" трафик (sniffer), второй - вклиниваетесь между сервером и клиентом и изображаете из себя сервер и клиент соответсвенно...как вариант использование паяльника нетрадиционным методом... Как хочется вам?) Первое проще, второе - более вариантное... Если программы используют протоколы аутентификации типа керберос то вам будет сильно обломно заниматься перехватом... гугл по словам: sniffer, ARP spuffing.... Читайте книжки, в них очень много написано (тот же Олифер "Компьютерные сети")..... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Predator_2004 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
Программы не используют никаких наворотов. Просто сокеты на низком уровне. Видимо мне требуется второе... Будем искать...
|
|||
|
||||
| Predator_2004 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
Нашел то, что хотел в сдк. Спасибо за помощь!
|
|||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: нет Всего: 1 |
полюбопытствую, какое решение? -------------------- undefined |
|||
|
||||
| Predator_2004 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
Суть вся в процедурке ioctlsocket. Она позвояет контролировать режим ввода/вывода сокета и может быть пременена к сокету в любом состоянии. Также она позволяет применять или получать параметры данного сокета.
|
|||
|
||||
| Олег2005 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
ioctlsocket() никак не решает вашу задачу Вот практически полный список методов фильтрации: 1. Промежуточный драйвер NDIS Способ заключается в создании виртуального адаптера и его установки таким образом, что при каждом вызове реального адаптера сначала шло обращение к виртуальному, т.е виртуальный адаптер «накладывается» на реальный. 2. Перехват драйвера NDIS (NDIS Hooking Filter Driver) 3. TDI-фильтр 4. Фильтр сокетов в режиме ядра (“Kernel-mode sockets filter”) 5. Перехват драйвера фильтра IP (“Windows Filter-Hook Driver”) 6. API фильтрации пакетов 7. Winsock Layered Service Provider (LSP) 8. Замена системных динамических библиотек (DLL), предоставляющих приложениям различные сетевые интерфейсы 9. В версии ОС Windows Vista корпорация Microsoft предприняла попытку объединить, стандартизировать и упростить способы фильтрации сетевого трафика с помощью нового API - WFP. Это API открывает разработчикам ПО доступ к процессу обработки входящего и исходящего TCP/IP трафика, позволяя проверять содержимое и принимать решение по его дальнейшей обработке. |
|||
|
||||
| Predator_2004 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
To Олег2005
Нашел в сети пример, как говорят перехвата данных в аське. Аськи нет-> не пробовал. Вот код:
+ не могли бы вы разъяснить предыдущее сообщение(рассказать поподробнее о перечисленных способах, если можно) |
||||
|
|||||
| Олег2005 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
Не знаю причины, но ни в первом, ни во втором варианте кода отсутствует порт в структуре адреса:
sa.sin_port=htons(0); Несмотря на то, что равсокеты не работают с портами - поле порта в структуре адреса должно быть обнулено - иначе там мусор. Больше пока идей особых нет, пожалуй здесь некорректно: WSAStartup(0x0101, &wsadata); Подключаете (lib,"Ws2_32.lib"), а запрашиваете 1.1 Надо бы WSAStartup(MAKEWORD(2, 0), &wsadata);
Это довольно долго - на пальцах не объяснить - попробуйте в сети поискать по пунктам |
|||
|
||||
| Predator_2004 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
to Олег2005
Порт был объявлен кажется в другом модуле. Переделал, но bind все равно не выполняется. Нельзя делать bind для третьего? Тогда как сделать связь с портом, если он занят? Не понимаю... |
|||
|
||||
| Олег2005 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
Подозрение вызывает еще одна строка
gethostname(name, sizeof(name)); Зачем она? Какое у вас имя хоста? Это имя Netbios или доменное имя??? Зачем оно вам нужно?
|
|||
|
||||
| Predator_2004 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
Это остатки вставки из примера. Ничего они не делают и не используются- забыл удалить. Извините за неточность.
|
|||
|
||||
| ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
Найди 2 отличия. -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
| Олег2005 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
Predator_2004,
Ну ка как новые результаты - есть какие??? |
|||
|
||||
| Predator_2004 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 26.4.2007 Репутация: нет Всего: нет |
to ptr
Первый пример создан не мной! Я адаптировал его под свою задачу. to Олег2005 Пока не выходит. Этот несчастный bind не выполняется. Как вы думаете, что если заблокировать клиента и перехватить данные? |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |