S P U T N I K Воскресенье, 22.12.2024, 09:10
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [7]

Наш опрос
Оцените мой сайт
Всего ответов: 275

Главная » Статьи » Мои статьи

Осторожно сетевые сканеры!
Но админ додумался просканировать данную машину с других хостов и определить, что открыт порт, который ранее не использовался на данной машине. Удостоверившись в отношении того, что данный порт не должен быть здесь открыт, - он проводит анализ системы и обнаруживает ваш руткит, патчит систему и все больше у вас этого шела нет.

Теперь рассмотрим, как нам можно обмануть сканер, чтобы нас нельзя было обнаружить. Как известно установка соединения происходит в 3 этапа - это так называемое "three-way hand shake" (rfc793).

Для начала рассмотрим стандартную установку соединения. На первом этапе мы получаем запрос на соединения в форме - SYN. Далее мы отправляем свой запрос на соединение и подтверждаем прием последовательности - SYN, ACK. И, наконец, мы получаем подтверждение приема нашей последовательности. Таким образом, соединение успешно установлено.

Теперь посмотрим, что происходит в случае отказа сервера от соединения (т.е. если, например, у нас порт не открыт). Мы получили запрос на соединение - SYN. Т.к. порт не слушается, то ядро отвечает ответом - RST, ACK. Т.е. соединение не установлено - в общем случае это означает, что порт не слушается, либо там установлен и грамотно настроен межсетевой экран.

По спецификации TCP не оговаривается передача данных именно после установления соединения,
т.е. при желании можно подкрутить клиент и сервер, чтоб первый отправлял данные в 1-ом SYN пакете, а второй считал данные из этого SYN пакета. Т.е. таким образом, мы можем произвести идентификацию (проверка доступности пользователю данного ресурса) клиента. В случае если клиент не прошел идентификацию - не верная строка или вообще данные отсутствуют, то сервер должен послать ему RST. При таком раскладе, простой порт сканер не сможет определить реально открытый порт, а специально подкрученный сканер уязвимостей не сможет пройти идентификацию - что позволит нам сохранить невидимость. Идентификация по адресу и порту не рассматривается, в связи с возможностью компрометации - хотя бы тем же самым spoofing'ом.

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

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

Категория: Мои статьи | Добавил: sputnik95 (07.12.2007)
Просмотров: 861 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2024 Конструктор сайтов - uCoz