Побег через брандмаузер


Рисунок 1 map.gif распределение интенсивности атак на различные порты по регионам


Но забросить shell-код на вражескую территорию это только половина дела. Как минимум еще требуется протащить через все межсетевые заслоны основное тело червя (то есть хвост), а как максимум – установить терминальный backdoor shell, предоставляющий атакующему возможность удаленного управления захваченной системой.

Может ли брандмаузер этому противостоять? Если он находится на одном узле с атакуемым сервером и shell-код исполняется с наивысшими привилегиями, то атакующий может делать с брандмауэров все, что ему только заблагорассудится, в том числе и изменять его конфигурацию на более демократическую. Это случай настолько прост, что его даже неинтересно рассматривать. Давайте лучше исходить из того, что брандмаузер и атакуемый сервис расположены на различных узлах, причем сам брандмаузер правильно сконфигурирован и лишен каких бы то ни было уязвимостей.

Самое простое (и самое естественное) – поручить shell-коду открыть на атакованном узле новый, заведомо никем не использованный порт (например, порт 666), и терпеливо ждать подключений с удаленного узла, осуществляющего засылку основного вирусного кода. Правда, если администратор системы не полный лох, все входящие соединения на все непубличные порты будут безжалостно отсекаться брандмауэром. Однако, атакующий может схитрить и перенести серверную часть червя на удаленный узел, ожидающий подключений со стороны shell-кода. Исходящие соединения блокируются далеко не на всех брандмауэрах, хотя в принципе такая возможность у администратора есть. Но грамотно спроектированный червь не может позволить себе закладываться на разгильдяйство и попустительство администраторов. Вместо установки нового TCP/IP-соединения он должен уметь пользоваться уже существующим – тем, через которое и была осуществлена засылка головы червя. В этом случае брандмаузер будет бессилен что-либо сделать, т. к. с его точки зрения все будет выглядеть вполне нормально. Откуда же ему, бедолаге, знать, что вполне безобидное с виду и легальным образом установленное TCP/IP соединение обрабатывает не отнюдь сервер, а непосредственно сам shell-код, поселившийся в адресном пространстве последнего.




- Начало -  - Назад -  - Вперед -