Хакер №024. Спецвыпуск

       

Хакер №024. Спецвыпуск


ПРИКЛАДНОЕ ТУННЕЛИРОВАНИЕ



httpTunnel для win32

Спецвыпуск Xakep, номер #024, стр. 024-070-2

hts -F irc.haxorz.com:7000 80

Начнем разборку нестандартно - с конца :). Последним параметром всегда идет номер порта, используемого для соединения клиента и сервера. Так как мы маскируемся под НТТР, пусть порт будет 80 - стандартный для этого протокола. В параметре -F указываются сервер и порт для редиректа, это, думаю, понятно без разъяснений. Другие возможные варианты перенаправления: "-d название_устройства", когда трафик кидается на другой сетевой интерфейс, или "-s" - когда для перенаправления используются стандартные stdin-stdout (правда, для этого сервер нужно будет запускать не демоном, а обычным процессом).

КЛИЕНТ

Теперь займемся клиентом. Если ты еще помнишь, он должен обволакивать мирковый траф и отправлять его серверу. Для этого на своем компе тебе придется запустить такой процесс:

htc -F 6666 shell.server.com:80

Здесь все с точностью до наоборот: в параметре "-F" указывается порт, трафик с которого пойдет к серверу, а последний параметр отвечает за адрес и порт этого злосчастного сервака. Разумеется, замена на "-d" и "-s" тоже остается в силе.

Другое дело, если корпоративный файрволл не просто просматривает трафик, а заодно отрабатывает программу проксика. В этом случае количество промежуточных соединений возрастает (прога -> клиент httpTunnel -> прокси -> сервер httpTunnel -> ирковый сервер). Для того чтобы наш туннель без проблем пролезал через прокси, командную строку клиента нужно проапгрейдить до следующего вида:

htc -P proxy.company.ru:80 -F 6666 shell.server.com:80

И все! Админы натянуты, траф ползет без препятствий.

ФИЧИ

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

для клиента:

-A USER:PASSWORD

пользователь и пароль для не анонимных проксиков (при условии, что прокси уже указан в -Р);

-z FILE

та же фигня, только для авторизации используется файл;

-B BYTES

размер буфера прокси в байтах (понимает цифры типа 56К и 1М);

-c BYTES

выставляет content-length для запросов;

-M SECONDS

максимальное время соединения;

-T SECONDS

выставляет тайм-аут для соединения;

-U STRING

задает строку user-agent (если админ решит пропускать только ИЕ);

для обоих:

-k SECONDS

посылает keepalive-запросы раз в SECONDS (по дефолту 5);

-s

прописывать content-length во все пакеты;

-w

не уходить в бэкграунд после запуска.

ФИНИТА

Туннель помогает пройти сквозь корпоративный, но не сквозь персональный файрволл. Однако при тестировании выяснилось, что персональники видят соединения клиента, но не предпринимают никаких действий к их завершению (игнорируют, проще говоря). Так что у сказочки может быть не просто счастливый, а гиперсчастливый КОНЕЦ!

Назад на стр. 024-070-1  Содержание


 

Содержание раздела