На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Другой взгляд на сеть by Mix
(история из цикла «Байки из Сети»)

Дело было так... Жил-был Лирик, и со скуки возьми он и дай мне один пад в сите, и при этом сказал он: «На! Дарю, только все рав­но там ты только к локальной сетке приконектишся, да и то хрен зна­ет, что это за сетка, я пробовал и ничего не вышло — там firewalb, — сказал
Ну я со скуки взял и
По привычке, моя ICQ, как только почув­ствовала, что пошли пакеты по TCP-IP, возьми и давай со своим серваком конектиться. Не ус­пел я и глазом моргнуть, как сконектилась :-(). «Не понял» — воскликнул я :) Но, загрузив netscape navigator 3.0 gold и написав : www. cnn. comAM, я окончательно и безповоротно убедил­ся — я в
Хмм — странно?! Лирик стареет :) или они открыли гейт после того, как он этот пад пробовал? Нет — не может быть, подумал я, скорее всего второе. Ну ладно, не будем об этом. Ну, давай я, значит, этот аккаунт юзать, а тут и Лирик подвалил в ICQ contact list и мне мессагу сразу:
«Ты гад, ты, что мне не сказал, что тот пад работает!!!»
Ну я давай ему объяснять, что я сам только понял это.
Ну вроде, как мне показалось, он меня понял. Ну, значит, Лирик, время даром не теряя, стал сканить тамошние IP на имена. И через 5 минут мы были в сервере. Попутешествовав там еще немно­го, мы поняли, что имеем доступ в сеть GlobalOne. Как потом выясни­лось — эта сеть принадлежит компании PEPSI. Доступа на сервера этой сетки из инета, конечно, не было. Мы сразу поняли, что эти сер­вера не для всех (я имею ввиду, только для сотрудников компании).
Нам с легкостью удалось пробраться на имеющиеся у сети серве­ры FTP. Мы были поражены, когда увидели, что Anonymous можно
войти почти на любой их FTP. Я был просто счастлив, когда увидел, что для Anonymous там полный доступ. Я имею ввиду, что можно и за­писывать, и стирать, и т. д. Теперь наши последние сомнения пропа­ли — мы забрались туда, где нас не ждали.
Поняв это, Лирик подключил свою голову на все 100% и тут на­чалось! Первое, что он нашел, был файл hosts - файл, в котором все IP
адреса их роутеров! Потом, этак невзначай, он наткнулся на 100 кило-
байтный файл с данными кредитных карточек American Express!
Я что это какая-то точка компании Pepsi записала все
дневные Transactions в этот файл и закинула на ftp. Потом оказалось,
что там не было exp. dates, но сам факт оставался фактом!
Конечно, это было бы очень просто!
Я нашел рекламный видеоклип, который мне понравился. Кста­ти! это был только проект компании, получается, что я увидел его пер­вым.
После этого мы нашли файл, где лежат зашифрованные пароли их роутеров. Пароли было легко узнать, имея под рукой расшифров­щик паролей для cisco.
И... вот он! этот переломный момент! - я на головном xxx. ххх. 1.1 роутере сети globalone! Wow! Круто!!! Вот это хак! - подумали мы.
У нас появился план: нужно дать роутеру наш IP в сети и он бу­дет роитить их народ не на secute server, а к нам в
Наступило темное время суток... На следующий день, хорошень­ко выспавшись, я набрал ситу, ввел номер — и с ужасом обнару­жил, что нашу лазейку прикрыли :-()!
- Н-не-е-е-ет, - воскликнул я. - Не может быть.
Но как я ни пробовал - пад был закрыт...
Заключение
Возможно, у вас появится законный вопрос: Зачем травить эти
байки про Пепси, когда все уже прикрыли?
На этом примере мы сумели показать, что
1) даже intranet'bi интересны для исследования
2) сети на предмет адресов стоит
3) правильная защита локальной сети состоит не только в
том, чтобы купить супернавороченный firewall комплекс, но и предпринять меры ограничения доступа в самой сети
За) каждому представителю локального подразделения надо вьделять аккаунт на центральном ftp-сервере (наftp. somers. Intl. pepel.com вся информация
закачивалась под anonymous и размещалась в /Incomlng/rueela, /Incoming/hong)
4) все вышеописанное можно вполне удобно изучать из
Windowz 95!
5) полезно посмотреть, как устроен в больших
Intranet (если повезет, в следующий раз будет об зор по Microsoft Intranet)...
На Пепси он устроен вот так...
и...
6) вообще-то админы ленивы и дают себя ломать.
Немного о Fingerprinting
Я BASIC бы выучил только за то, что им программировал Левин!
Fingerprinting — последние год-полтора этот термин все чаще можно встретить в обильном потоке информации по сетевой безопас­ности.
Однако далеко не все ясно представляют, что же, собственно, под ним понимается. За этим словом скрывается достаточно большое ко­личество существенно разнородных технологий. Данная глава ставит своей целью их более или менее подробный обзор. Изложенные в ней методы не претендуют на полноту, но, несмотря на то, что большая их часть достаточно известна, надеюсь, читатель обнаружит что-нибудь новое для себя.
Вообще-то, дословно fingerprinting — это сбор информации об
удаленной системе.
Используя ряд инструментов и алгоритмов, мы можем опреде­лить операционную систему, серверные приложения (и их версии), тип аппаратного обеспечения и другую, зачастую гораздо более важ­ную, информацию. Традиционно системы сбора информации делятся
на активные (active fingerprinting) и пассивные (passive fingerprinting).
Первые используют различия откликов разных типов систем на определенные ключевые воздействия. Располагая информацией об этих различиях, исследователь может по типу отклика идентифициро­вать тип системы.
Вторые используют информацию, так сказать, «добровольно»
рассылаемую исследоваемой системой, хотя и, вполне возможно, предназначенную не исследующей системе.
Active fingerprinting
Как уже было сказано, данный тип сбора информации основан на непосредственном воздействии на исследуемую систему и анализе
ее отклика. Алгоритмы этого типа характеризуются высокой ско­ростью, достаточной точностью и слабой скрытностью. Т.е. попытка сбора информации может быть довольно легко обнаружена и пресече­на исследуемой системой (в том числе автоматически, с использова­нием, например, соответствующим образом настроенной системы об­наружения вторжений).
Одной из старейших техник этого рода является «коллекциони­рование баннеров». Она заключается в анализе приветствий, выдавае­мых стандартными сервисами (ftp, рорЗ, finger, smtp, telnet). Сюда же относится информация из строк параметров, возвращаемых в ответ на любой http запрос. Такие баннеры зачастую содержат в себе информа­цию об используемом вплоть до номера версии.
Поскольку далеко не все домены являются абсолютно портируе-то это, вдобавок, дает нам возможность делать об используемой операционной системе. Есть две опасности, подсте­регающие нас на этом пути. Во-первых, многие домены позволяют ад­министратору произвольным образом редактировать свои приветст­вия, то есть существует вероятность (хотя и довольно малая), что де­мон совсем не тот, за которого он себя выдает. Во-вторых, есть что вообще вся операционная система работает под какой-нибудь сре­дой эмуляции (например, VMWare). Это может спутать нам карты, на-когда мы собираемся использовать реализации TCP стека, основываясь на сделанных предположениях.
Особенности указанных сервисов также
позволяют получить некоторую дополнительную информацию, ис­пользуя возможности протоколов. Типичным примером может слу­жить команда SYST протокола ftp.
Рассмотрим поподробнее указанные сервисы.
FTP
Порт командного соединения - 21. Рассмотрим типичный баннер:
220 meailiah.demos.su FTP server (Version wu-2.4(37) Mon Feb 15
16:48:38 MSK 1999) ready.
Он представляет информацию о ПО FTP-сервера вплоть до вер­сии.
Теперь в предположении, что сервис представляет услуги ано­нимному пользователю, произведем авторизацию и воспользуемся ко-
202

мандой SYST (некоторые домены позволяют использовать команду SYST, не проходя авторизацию).
В зависимости от домена, нам будет представлена более или ме­нее подробная информация об операционной системе. Например:
user ftp 331 Guest login ok,  send your complete e-mail address as password.
pass aaa@usa.net 230 Guest login ok, access restric­tions apply: syst 215 UNIX Type: L8 Version: BSD-199506
\
Дополнительный интерес может представлять, такая, скажем, специфическая информация, как дата создания каталога bin или etc.
Обычно она совпадает с датой установки ftp сервиса. Получить ее можно, используя команду ls-la.
230 Guest login ok,   access restrictions apply. ftp> quote syst
215 UNIX Type: L8 Version: BSD-199506 ftp>  dir .
200  PORT command successful.
150 Opening ASCII mode data connection for /bin/Is. total 732 • • •
d—x--x--x 2 root root 512 Jan 18 17:30 bin d—x—x—x 2 root root 512 Jan 18  17:31 etc
Стандарт ftp содержит еще одну потенциальную уязвимость (ей подвержены старые реализации ftp-серверов). Это ftp-bouncing. Данная техника позволяет использовать уязвимый сервер в качестве прокси.
Само по себе к сбору информации это отношения не имеет, но позволяет, например, исследовать внутренние хосты, непосредствен­ного доступа к которым нет.
Telnet
Порт по умолчанию — 23. Несколько типичных примеров:

>telnet  *.*.*.33
FreeBSD/i3 86    (*.*.ru) (ttypO) login:
>telnet   *.*.*.65
; User Access Verification : Password:
>telnet
Welcome to SuSE Linux 6.4 (i386) - Kernel 2.4.2 (0) login:
>telnet
Red Hat Linux release 6.0 Kernel 2.2.5-15 on an 1686 login:
>telnet
Welocome to NOOS  IP  Server .
Processing mail only -- disconnect please
Как видно из примеров, приглашения к авторизации существен­но различаются и посему могут быть использованы для идентифика­ции операционной системы.
SMTP/POP3
Порты — 25/11С Примеры:
>telnet *.*.*. 2 25
220 *,*.*.ru ESMTP Sendmail 8.11.2/8.11.2; Thu, 21 Jun 2001   18:34:19 +0400
>telnet 25
220 *.*.*.ru ESMTP Sendmail Thu, 21 Jun
2001   18:44:38 +0400
Помимо обычной процедуры анализа баннеров, протокол SMTP содержит команды, позволяющие определить наличие на машине учетной записи пользователя с заданным позывным. Это команды VRFY, EXPN. Заметим, что при настройке безопасности почтового сервера их часто отключают.
По спецификации команда VRFY предназначена для проверки существования пользователя. Команда EXPN предназначена для по­лучения расширенной информации о пользователе (в том числе его
реальных фамилии и имени) и почтовых группах. Наконец, команда MAIL TO служит для указания адресата при отправлении почты и, до­вольно часто, сама осуществляет проверку существования пользовате­ля (в случае локального адресата).
Рассмотрим типичный сценарий:
vrfy alex
550  alex,..   User unknown vrfy root 250 root expn alex
550 alex...  User unknown
expn root 250 root
rcpt to.-alex
503   5.0.0   Need  MAIL  before RCPT mail   from:dull@turn.ru 250  2.1.0  dull@turn.ru...   Sender ok rcpt to: alex.
550 5.1.1 User unknown
rcpt  to:root
250 2.1.5 root... Recipient ok
В более безопасных системах подобные проверки существова­ния заменяются на проверки синтаксической корректности или вооб­ще отключаются.
Еще более интересной является техника mail-bouncing-a.
Она слабо распространена из-за достаточно большой сложности и малой скорости работы. Смысл техники заключается в анализе заго-
ловков электронных писем, специально составленных и посланных в исследуемую сеть. Так, интерес представляют письма для несуществу­ющих пользователей, поскольку они возвращают уведомления о не­возможности доставки (не всегда). В этих уведомлениях содержится некоторая информация о почтовых серверах, участвующих в процессе доставки письма. На основе нескольких таких можно узнать некоторое число хостов внутренней сети (не имея к ней не­посредственного доступа) и топологию почтовых пересылок. Кроме почтовый протокол позволяет отправлять письма с явным указа­нием нескольких промежуточных пунктов пересылки. Это дает воз­можность создать письмо, которое, проделав заданный маршрут внут­ри исследуемой сети, вернется к отправителю (все это, конечно, суще­ственно от настроек почтовых серверов).
РОРЗ позвоволяет определить тип демона (по баннеру), и, сле­довательно, зачастую и операционную систему. Он также может ис­пользоваться для подбора паролей пользователей. Кроме того, некото­рые реализации страдают тем, что, в случае неверного имени пользо­вателя, они выдают сообщение об ошибке сразу после ввода пароля, тогда как в случае, если пользователь существует, но пароль неверен,
система делает ощутимую паузу перед выдачей сообщения об ошибке
(это сделано для замедления подбора паролей). В этом случае также появляется возможность определения существующих в системе поль­зователей.
FINGER
Порт по умолчанию — 79.
Это крайне простой сервис, который, тем не менее, очень часто
используется для анализа удаленной системы. Он предназначен для получения информации по конкретному пользователю системы. Су­ществует ряд существенно различных реализаций этой службы. Так,
finger-сервис на различных роутерах показывает список активных тер­миналов с указанием подключенных пользователей. Пример:
>telnet   *.*.*.253 79 18:58
Line User Host(s)   Idle Location
2 tty 2   SHAYAKH Async   interface   00:00:00 ROTARY
3 tty 3  Ruslan_GalAsync interface 00:00:00 ROTARY
4 tty  4   zgk Async   interface  00:00:58 ROTARY
5 tty 5 dinnre Async interface 00:07:01 ROTARY
6 tty 6 UPAP_4 Async interface 00:01:00 ROTARY
7 tty 7 murguverciAsync interface 00:01:34 ROTARY ■
9 tty 9 shinov99 Async interface 00:00:30 ROTARY
10 tty 10 novosel9 Async interface 00:00:00 ROTARY
12 tty 12 test_k Async interface 00:00:02 ROTARY instead int 8
13 tty 13 Async interface 00:00:02 TO MOTOROLA 6520 instead int 11
*  18 vty 0 idle 00:00:00
Connection to host lost.
На обычных системах типа эта служба ждет ввода иденти­фикатора пользователя и, в случае его существования, выдает о нем подробную информацию. Пример:
-
■ >telnet 79 root
Login:  root Name:  Petr D. Belkin
Directory:  /root Shell: /bin/bash
Last login Sat Nov 25 22:42 2000   (SAMT) on ttyl
New mail received Sun Jun 10 16:20 2001 (SAMST)
Unread since Wed Feb 7  12:28 2001 (SAMT)
No Plan.
Connection to host lost
Как видно из рассмотренного примера, представляется инфор-мания о реальных имени, фамилии, дате последнего подключения, да­те последнего чтения почты и так далее. Кроме того, различные реали­зации поддерживают разные типы wildcard-ou. Т.е. иногда возможно получить информацию на пользователя, не зная точно его идентифи­катора, и/или получить список пользователей системы.
HTTP
Стандартный порт — 80.
Данный сервис обеспечивает функционирование World-Wide Web, отвечая за пересылку документов по запросу. Около двух третей всех Веб-серверов сегодня функционируют на программном обеспече­нии от Apache (причем Unix-версия распространена значительно сильнее).
Практически все остальные Веб-серверы работают на IIS 4 или IIS 5 (под WinNT и Win2K). Протокол HTTP версии 1.1, описанный в RFC 2068, предусматривает метод OPTIONS, по которому Веб-сервер возвращает развернутую информацию о себе. Например:
OPTIONS   * НТТР\1.1 HTTP/1.1 200 OK
Date Wed 20 2001 17:41:42 GMT
Server:      Apache/1. 3.19      (Unix)      PHP/4.0.5     raod_ j k
rus/PL30.4
0
Allow: GET, HEAD, OPTIONS, TRACE Conection: close
Используя знания о стандартных конфигурациях различных Веб-серверов под различные платформы, исследователь может попы­таться использовать стандартные Веб-скрипты для получения допол­нительной информации.
SMB (NetBIOS)
Само по себе наличие данного сервиса говорит о многом, так как в подавляющем большинстве случаев оно свидетельствует о том, что операционная система принадлежит семейству Windows (исключение составляют Unix-системы с установленным сервисом SAMBA). Ис­пользуя уязвимость настроек по умолчанию, исследователь удаленной системы может получить список разделяемых ресурсов, а в случае WinNT/2K и список пользователей с подробной информацией о каж­дом и, зачастую, удаленный доступ к реестру. В описание пользовате­ля в том числе входят его login name, полное имя, принадлежность к группам, дата последней смены пароля. Так же может быть получена другая информация, касающаяся настроек домена. Сегодня существу­ет уже много утилит, позволяющих получить такую информацию. Наиболее древняя из них — ntis by David Litchfield нашла свое разви­тие в программе cis, а самой, на мой взгляд, популярной на сегодняш­ний день является система winimgerprint (http://\v\v\v.teclmotronic. com/winfingerprint/).
Рассмотрим, однако, что можно сделать, обходясь лишь стан­дартным инструментарием WinNT/2K.
E:\>net  time \\*.*.*.197
System error   5   has occurred. Access   is denied.
E:\>net use   \\*.*.*.197\IPC$ «» /U:»» The  command  completed successfully. E:\>net   time   \\*.*.*.197
Current  time  at   \\* .* . * . 197   is   6/21/2001   7:00 PM
The command completed
E:\>at \\*.*.*.197 Access  is denied. E:\>net view  \\197
Shared resources at
Share name Type Used as Comment
Drive С Disk Windows Drive D Disk FreeBSD Drive E Disk
The command completed successfully. E:\>net use \\* . * . *.197\IPC$ /del
\\*.*.*.197\IPC$ was deleted successfully.
Аналогичные операции можно осуществить и из системы Unix, используя утилиту inbclien Кроме того, утилита nbtstat (или nmblookup под Unix) позволяет получить список зарегистрированных на машине NetBIOS имен (с типами). Среди них содержатся: имя до­мена, имя машины в домене, имя текущего активного пользователя. Более того, анализ этихимен позволяетопределить роль машины вдо-мене (PDC, BDC, Master Browser). Ниже приведена небольшая вы­держка из таблицы типов NetBIOS имен.
0x00   base   computernames   and workgroups,    also   in «*»
queries
0x01  master browser,    in magic      MSBROWSE_cookie
0x03 messaging/alerter service;   name of logged-in user
0x20 resource-sharing «server service» name domain master-browser name '       domain controller name
OxlE domain/workgroup master browser election announcement [?]
Другой техникой является исследование особенностей сетевого интерфейса. Начнем с того, что, если мы используем стеле техники сканирования портов, у нас обычно нет никакой возможности «кол­лекционировать башк'ры». Тем не менее уже список открытых портов может сказать довольно многое.
Рассмотрим типичные паттерны: открытые порты 23, 79, воз­можно 80, при остальных закрытых, достаточно точно характеризуют машину как роутер. Открытый порт 1 1 дает практически стопроцент­ную гарантию, что исследуемая система является
Также это весьма вероятно в случае наличия открытых портов в промежутке 150-520 набор портов 21, 25, 110, и, может быть, 23, 80 -это типичный Linux или BSD (хотя, конечно, и не только он). Откры­тый порт Postgree-ca (5432) позволяет предположить UNIX подобную операционную систему. Тогда как в случае MS SQL (1433) — одно­значно Windows (причем NT/2K). Наличие открытого порта 139 пред­полагает альтернативу: либо это UNIX с установленной SAMBA, тог­да его обычно можно определить по открытому порту SWAT (исполь­зуемому для удаленной настройки SAMBA), либо это Windows. В этом случае, если больше открытых портов нет — то это, скорее всего, W9x. Если же есть открытые порты из 21,25,110 — то это, видимо,
NT/2K.
Более точное определение операционной системы можно про­вести с использованием параметров TCP/IP пакетов. Самой лучшей
на сегодняшний день утилитой подобного плана является nmap by Feodor (www.insecure.org). Там же можно подробнее почитать об ис­пользуемых алгоритмах. Мы же остановимся на параметре TTL, поскольку он доступен без дополнительных инструментов (через ути­литу ping). TTL (TimeToLive) — это время жизни пакета.
При отправке оно устанавливается в некоторое стандартное зна­чение (разное для различных операционных систем), а затем, при про­хождении каждого промежуточного пункта уменьшается на 1. Если оно достигает нуля, пакет отбрасывается, как слишком старый. ты, дошедшие до нас, содержат TTL, равный начальному минус рас­стояние до исследоваемого хоста в hop-ax (промежуточных хостах). При необходимости это расстояние можно узнать, используя стан­дартную утилиту traceroute (tracert под Windows). Однако оно обыч­но не превышает что позволяет однозначно распознать
исходное значение. Если исходный то это, скорее всего,
Windows. Если TTL-256, то это или UN*X, или WinNT. Если 64 или 32, то это или какой-нибудь роутер, бридж, хаб, или редкий UN*X.
Полученная информация, вкупе с информацией об открытых портах, дает представление об используемой операционной системе.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика