лабораторная работа №5 (информационные сети и телекоммуникации ЛР5)

Посмотреть архив целиком

Федеральное агентство по образованию

Московский государственный

технический университет

«МАМИ»



Кафедра «Автоматика и процессы управления»


Кобзев П.А.



Методические указания


по выполнению лабораторных работ по дисциплине «Информационные сети и телекоммуникации»


Лабораторная работа №5

Использование соксификатора «FreeCap»












Москва – 2009


Содержание


Теоретическая часть 3

Протоколы передачи данных. Определение. 3

Протокол SOCKS. Определение. 3

SOCKS-клиенты[1] 3

Все ли программы поддаются соксификации? 4

Примеры программ-соксификаторов. 4

SocksCap 4

FreeCap 5

Ход работы. 5

Настройка прокси[2] 5

Добавление нового приложения[2] 6

Приложение 8

Установка FreeCap 3.18 8

Список литературы 10



Лабораторная работа №5. Использование соксификатора «FreeCap».

Цель: Ознакомление с использованием соксификатора FreeCap

Теоретическая часть

Протоколы передачи данных. Определение.

Протоколы передачи данных — это набор соглашений, который определяет обмен данными между различными программами. Протоколы задают способы передачи сообщений и обработки ошибок в сети, а также позволяют разрабатывать стандарты, не привязанные к конкретной аппаратной платформе.

Протокол SOCKS. Определение.

SOCKS — сетевой протокол, который позволяет клиент-серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволами). SOCKS — это сокращение от «SOCKetS» (сокеты, гнёзда).

SOCKS-клиенты[1]

Некоторые настольные приложения обладают встроенной поддержкой SOCKS. В их число входят web-браузеры, построенные на коде Mozilla и ряд клиентов сетей мгновенного обмена сообщениями (Miranda IM, Mirabilis ICQ). Для включения поддержки SOCKS в этих программах достаточно указать необходимые параметры в файле или диалоге настроек. Но что делать в случае, если приложение не умеет работать с SOCKS?

Существует несколько вариантов решения данной проблемы. Если исходные тексты приложения доступны, можно собрать их заново, используя готовые клиентские библиотеки, например, входящие в состав Dante или Antinat. Однако, наличие “исходников” не является обязательным требованием. Откомпилированное приложение можно заставить работать с SOCKS «обманным путем» при помощи программ-соксификаторов, подменяющих стандартные функции для работы с сокетами их аналогами, поддерживающими SOCKS. Так, модифицированная функция connect(), устанавливающая соединение с заданным узлом на самом деле отсылает команду «CONNECT» на адрес указанного пользователем SOCKS-сервера, а «соксифицированная» функция sendto() выполняет инкапсуляцию UDP-датаграммы и отправляет ее, используя заранее установленную UDP-ассоциацию. Процедура подмены функций существенно зависит от типа операционной системы.

В Windows для этих целей применяются «вирусные» методики. Например, соксификатор может запускать указанный пользователем процесс в режиме «Suspend», после чего внедрять в его память код, загружающий специальную DLL-библиотеку, перехватывающую обращения к API-вызовам LoadLibrary/GetProcAddress, ответственным за подключение сторонних DLL и поиск в них экспортируемых функций. После этого соксификатор отслеживает момент загрузки wsock32.dll и подменяет запрашиваемые адреса функций Winsock указателями на их SOCKS-аналоги.


В Unix-подобных ОС все обстоит значительно проще. Динамический компоновщик ld.so использует специальную переменную окружения, LD_PRELOAD, а также файл /etc/ld.so.preload, чтобы определить список разделяемых библиотек, подлежащих предварительной загрузке до непосредственно запрашиваемых исполняемым файлом. Поскольку большая часть современных приложений использует динамическую компоновку, соксифицированные аналоги сетевых функций, оформленные в виде разделяемой библиотеки, перечисленной в LD_PRELOAD, будут найдены и использованы вместо стандартных вызовов, определенных в glibc. Этот метод, очевидно, не будет работать для приложений, использующих статическое связывание с glibc. Встречаться с таковыми (кроме низкоуровневых системных утилит) автору не приходилось. Кроме того, значение переменной LD_PRELOAD обрабатывается особым образом для исполняемых файлов, имеющих бит SUID. Среди клиентских (настольных) приложений они, как правило, не встречаются.

Все ли программы поддаются соксификации?

Любая ли программа поддается соксификации описанными выше методами? К сожалению, нет. Процедура внедрения кода Windows-соксификатора в чужой процесс может не сработать, если исполняемый файл имеет особую структуру, например, он сжат оригинальным образом или зашифрован. Кроме этого, пользовательские SOCKS-аналоги должны максимально точно повторять поведение (в том числе, эмулировать недокументированные возможности) родных функций операционной системы, что не всегда легко достижимо. В этом случае можно попробовать использовать различные программы для соксификации - возможно с помощью какой-либо из них и удастся заставить программу работать через прокси.

Соксифицировать можно весь TCP/IP протокол и UDP. Из этого следует, что соксифицировать невозможно:

  • ping, tracert – так как данные утилиты используют протокол ICMP, а не TCP/IP, то через прокси их в принципе нельзя пустить.

  • активный FTP (active FTP) протокол. Существует passive FTP и active FTP. Пассивный FTP предполагает одно соединение по TCP/IP клиента с сервером. Активный - два соединения (для передачи данных и для передачи команд). Поэтому соксифицировать (и "проксировать") можно только пассивный FTP (поддерживается всеми браузерами).

Примеры программ-соксификаторов.

В среде Windows можно использовать SocksCap (http://www.socks.permeo.com/) от фирмы Permeo или открытый (распространяющийся по GPL) продукт FreeCap (http://www.freecap.ru), написанный Максимом Артемьевым. В Unix можно воспользоваться сценарием оболочки socksify, входящим в состав Dante.

SocksCap

SocksCap 2.38 - Реализация socks5 клиента - позволяет практически любой программе работать через socks5 прокси.

Настройка программы SocksCap не составит никакого труда, т.к. в ней поддерживается метод drag&drop - для добавления приложений, которым нужно разрешить выход в Интернет, достаточно просто перетащить их иконки в окно SocksCap. Настолько же просто выполнено и управление запуском программ, выходящим в Интернет через socks5 прокси: для этого достаточно всего лишь нажать правой кнопкой мыши на иконке SocksCap, находящейся в системном лотке, и выбрать необходимую программу.

SocksCap является бесплатной программой при некоммерческом использовании.

FreeCap

FreeCap -- это программа для прозрачной переадресации подключений через SOCKS сервер. Известно, что некоторые программы не умеют работать через SOCKS-прокси напрямую (например Internet Explorer), в этом случае FreeCap окажет неоценимую помощь, прозрачно перенапрявляя все запросы на соединение на SOCKS сервер.

Из достоинств программы можно выделить:

    • Поддержка SOCKS протоколов v4 и v5 (RFC 1928)

    • Поддержка авторизации для SOCKS v5(RFC 1929)

    • Поддержка цепочек SOCKS-серверов. (так называемый SOCKS Chain)

    • Поддержка туннелирования через HTTP прокси (via CONNECT method)(RFC 2817). Можно использовать в каскаде SOCKS-серверов

    • Запуск вместе с системой

    • Работоспособность на Windows 95/98/ME/NT/2000/XP

Поддержка большинства популярных приложений таких как: MS Internet Explorer, Netscape, Mozilla, Trillian, Opera, MS Outlook Express

Особый случай - программы, обеспечивающие соксификацию всей системы целиком. В Windows этого можно достичь, подменив на диске файл wsock32.dll или более корректным образом, используя спецификацию Winsock Service Provider . В Unix достаточно добавить команду, устанавливающую значение переменной LD_PRELOAD в один из стартовых сценариев (например, rc.local) или внести изменения в файл /etc/ld.so.preload. Примером такого “общесистемного соксификатора” могут служить WideCap Максима Артемьева (пребывающий пока в состоянии бета-версии) или Permeo Security Driver.

Ход работы.

Установить FreeCap (Приложение)

Ознакомится с документацией

Процедура настройки программы FreeCap состоит из двух этапов – добавления приложения подлежащего соксификации и настройки прокси

Настройка прокси[2]

Настройка прокси, через который будет ходить выбранная программа. Для этого Вам необходимо узнать следующие параметра: адрес прокси, его порт, тип, логин и пароль:

адрес прокси: IP или доменное имя прокси

порт: порт на котором прокси работает

тип: SOCKSv4, SOCKSv5 или HTTP(S) прокси

логин/пароль: Если прокси необходим авторизованный доступ

Открываем меню Файл->Настройки и попадаем на первую вкладку "SOCKS"


Чтобы добавить новый прокси в список необходимо:

1. Вписать адрес прокси и его порт в соотвествующие поля.

2. Выбрать тип прокси, щелкнув мышкой в соотвествующей группе

3. Если прокси необходима авторизация -- поставить флажок "Требуется авторизация" и вписать логин и пароль в соотвествующие поля

4. Нажать кнопку "Применить"

Добавление нового приложения[2]

Самый простой способ добавить новое приложение — просто перетащить иконку нужной Вам программы с Рабочего стола или из Проводника.

Более сложный способ — создание профиля вручную.

Нажмите кнопку "Новое приложение" на панели инструментов, или меню "Файл->Новое приложение".


Здесь Вы можете или прописать путь к приложению вручную, или сделать это в автоматическом режиме – нажав кнопку "Обзор". Выбираете приложение, которое необходимо соксифицировать и нажимаете "Открыть".

Приложение

Установка FreeCap 3.18



Случайные файлы

Файл
19022.rtf
4826.rtf
104256.rtf
72281.doc
122790.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.