Данная программа - некое подобие прокси. Она делится на 2 части: клиент и сервер,
к клиенту прилагается небольшой конфигуратор (конфигурация на этапе
компиляции, т.к. часть настроек нужна для компиляции, часть - для
работы программы [файл client.conf]).

Он (клиент) открывает заданный порт и ждёт подключения других клиентов 🙂 [пока поддерживается
http/1.0 🙁 ]. Далее клиент обрабатывает запрос и шлёт его серверу.
Тот, установив соединение, высылает подтверждение клиенту и начинается
пересылка данных. Данные шлются небольшими пакетами по 1056 байт (в
*nix - 1052. странно даже...) Есть идея обрабатывать запрос на
подключения сразу сервером, чтобы исключить необходимость "вшивания"
поддержки новых протоколов в клиента. 

На кой чёрт я разделил прокси на клиент\сервер, спросите вы? Отвечу -)

1) используются свой протокол (не plain-text), который легко дорабатывается и имеет возможность включения всяких там шифрований и проч.

2) для связи клиент-сервер не используется TCP вообще 🙂 все пакеты отсылаются по протоколу ICMP с кодом 0 (echo_reply) 😉 

Зачем всё это нужно? А вдруг найдётся такой провайдер, который
предоставляет guest-доступ на свой сервер и который не запретил
возможность пинга любого ip? 🙂 Если таковой не найдётся - можно
вполне использовать данную идею для попытки скрытия факта установки
соединения с удалённым компьютером 🙂 

Есть идея "обернуть" это всё не в icmp, а в DNS. 

souces.zip:

client-beta4 - исходники клиента и конфигуратора 
icmpd-0.2 - исходники сервера 
exe - бинарники 

Да, чуть не забыл - программа консольная, т.к. по-моему в гуи
просто нету смысла.

Check Also

История кодового замка. Как я разработал задание на схемотехнику для стенда «Хакера» на ZeroNights

12 и 13 ноября в Санкт-Петербурге проходила ежегодная международная конференция по практич…

Оставить мнение