Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #73, ЯНВАРЬ 2005 г.

Банка с медом

Никита Кислицин

Хакер, номер #073, стр. 073-064-5


create winxp

set winxp personality "Microsoft Windows XP Professional SP1"

set winxp uptime 319671

add winxp tcp port 80 "perl scripts/iis5.net/main.pl"

set winxp default tcp action reset

create cisco

set router personality "Cisco 1601R router running IOS 12.1(5)"

add cisco tcp port 23 "perl scripts/router-telnet.pl"

set cisco default tcp action reset

set cisco uid 32767 gid 32767

set cisco uptime 1327650

Здесь мы создали два новых шаблона: winxp и cisco. Первый эмулирует работу сервера под Windows XP, при этом мы открываем только 80 порт и указываем скрипт scripts/iis5.net/main.pl, чтобы он обслуживал все подключения, эмулируя работу IIS пятой версии. Свойство personality указывает систему, которую мы будем эмулировать на стэковом уровне, причем набор свойств той или иной системы берется из таблиц nmap.

Для каждого UDP- или TCP-порта можно задать некоторую модель поведения, которой будет руководствоваться honeyd. Эта модель может быть как локальной для конкретного порта, так и глобальной для всех остальных. К примеру, описывая шаблон winxp, я указал, что делать по умолчанию: set router default tcp action reset. Это значит, что соединения с портами, для которых явно не задано никаких правил, должны прерываться путем посылки флага RST. Здесь можно было указать также open (в ответ на попытку соединения будет отослан ACK) и block – в этом случае ни на один TCP- или UDP-запрос ответ отослан не будет.

Отдельная ситуация с 80-м портом в шаблоне winxp – для него мы указали обработчика в виде скрипта scripts/iis5.net/main.pl.

После того как ты описал несколько шаблонов, которые тебе интересно использовать, настало время определиться, какие IP-адреса к какому шаблону ты будешь привязывать. Это реализуется при помощи команды bind:

bind 192.168.0.50 cisco

Теперь, если кому-то придет в голову соединиться с 192.168.0.50, этот негодяй будет общаться с honeyd, который будет строить из себя бажный маршрутизатор cisco. Да, чуть не забыл! Шаблон с именем default является ключевым для конфигурационных файлов honeyd. Этот шаблон обрабатывает все подключения к адресам, для которых не был указан явно используемый шаблон. Так, в приведенном примере можно было создать еще один темплейт с этим именем и определить в нем, что остальные адреса не отвечают ни на какие запросы.

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

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

Обнаружение

Как ты думаешь, возможно ли обнаружить honeypot, отличив его от настоящего сервера? Ну конечно, возможно! Все мы люди, и все мы допускаем ошибки. Прекрасно понятно, что honeyd, поставляемый исходными кодами, доступен абсолютно всем желающим. А имея на руках исходный код системы, вполне можно найти несколько уникальных черт, которые отличают ее от остальных. То есть подобно тому, как составляются finger-отпечатки операционных систем и сетевых демонов, можно сделать такой же слепок и для любой honeypot-системы, это лишь вопрос усердия и времени. Однако есть способы этому довольно эффективно противостоять. Ну например, изменив дефолтную конфигурацию и подправив код системы, ты добьешься того, чтобы разработанные методы по обнаружению honeypot перестанут работать: ведь они создаются для тех версий программы, которые доступны через интернет. Любая нестандартность - и все эти методы идут лесом.

Назад на стр. 073-064-4  Содержание  Вперед на стр. 073-064-6