Главная страница


ru.nethack

 
 - RU.NETHACK -------------------------------------------------------------------
 From : Eugene Korovin                       2:5080/196.72  01 Apr 2002  15:39:22
 To : All
 Subject : Мелкософт опять в своем духе
 -------------------------------------------------------------------------------- 
 
 
    Поразительно...
     О уязвимости локальной подсистемы безопасности MS Windows NT 4.0 and
                                Windows 2000.
 
                    Перевод пресс-релиза посланного в MS:
 
    Исследователь Radim "[1]EliCZ" Picha ([2]Bugs@EliCZ.cjb.net) обнаружил
    серьезную уязвимость в безопасности Windows NT и Windows 2000. Им была
    написана программа (exploit), демонстрирующая очевидную слабость
    локальной подсистемы безопасности NT/2000 и полностью компрометирующая
    всю систему безопасности этих операционных систем.
 
    Программа, названая DebPloit (от английских слов Debug и Exploit),
    использует "дыру" в подсистеме отладки (debugging subsystem) и
    позволяет ЛЮБОМУ пользователю с ЛЮБЫМИ привилегиями (даже
    пользователям входящим в группы Guests и Restricted Users), выполнять
    программный код с правами администратора и/или локальной системы.
    Другими словами, любой человек имеющий доступ к локальному компьютеру
    может стать администратором и делать на этом компьютере все, что
    угодно.
 
    Принцип работы DebPloit: программа "просит" отладочную подсистему
    (smss.exe) вернуть описатель (handle) процесса, запущенного с правами
    администратора или локальной системы (в системе всегда находится
    большое кол-во процессов, работающих с правами локальной системы):
     1. Становимся dbgss-клиентом (функция DbgUiConnectToDbg).
     2. Подключаемся к LCP-порту DbgSsApiPort (ф-ция ZwConnectPort). Любой
        пользователь имеет доступ к этому порту!
     3. Посылаем запрос на отладку процесса к dbgss, точно так же как это
        делает CreateProcess (ф-ция ZwRequestPort).
     4. Ожидаем овета (CREATE_PROCESS_DEBUG_EVENT) от dbgss (ф-ция
        WaitForDebugEvent). Ответ будет содержать описатель (handle)
        процесса.
     5. Переключам свой текущий контекст безопасности на контекст
        безопасности описателя, полученнго на шаге 4.
     6. Исполняем код (например запускаем внешнюю программу) с правами
        выбранного для отладки процесса.
 
    Загрузить DebPloit можно с сайта EliCZ`а -
    [3]http://www.anticracking.sk/EliCZ/bugs/DebPloit.zip (исходный код
    прилагается).
    Что бы проверить свою систему на эту уязвимость, надо:
     1. Загрузить DebPloit.zip и распаковать его на диск.
     2. Выйти из системы и вновь зайти с минимальными правами (например
        используя учетную запись Guest).
     3. Запустить программу ERunAsX.exe из командной строки и указать ей в
        качестве параметра любую внешнюю программу (например "ERunAsX.exe
        cmd").
     4. Теперь программа, указанная на шаге 3, выполняется с правами
        локальной системы.
 
    HOTFIX
    Что бы закрыть эту "дыру" в безопасности NT/2000, я написал
    специальный драйвер DebPloitFix, который устанавливает новые права для
    LPC-порта DbgSsApiPort. После запуска DebPloitFix, доступ к
    DbgSsApiPort будет иметь только локальная система.
 
    Загрузить DebPloitFix и исходный код к нему можно с
    [4]www.smartline.ru/software/DebPloitFix.zip
                Текст взят с сайта [5]3D News; [6]Кузин Андрей
      [7]DebPloit - do everything in MS Windows NT 4.0 and Windows 2000.
    DebPloit allows Everyone to get handle to Any process or thread.
    Handles have enough access to promote everyone to system/admin (inthe
    case Target is running under LocalSystem, Administrator account).
    Works on: Any MS Windows NT 4.0, Windows 2000 (SPs before
    Mar-12-2002).
    Former NTs weren't tested.
    Discovered: Mar-09-2002.
    Author: Radim "EliCZ" Picha. Bugs@EliCZ.cjb.net.
    [8]http://www.anticracking.sk/EliCZ .
    Details: Exploit\DebPloit.h.
    Principle: Ask debugging subsystem (lives in smss.exe) to create
    (duplicate) handle(s) to Target for you:
    1. Become dbgss client (DbgUiConnectToDbg).
    2. Connect to DbgSsApiPort LPC port (ZwConnectPort). Everyone has
    access to this port.
    3. Ask dbgss to handle CreateProcess SsApi with client id (or pid or
    tid only) of Target (ZwRequestPort).
    4. Wait for dbgss to reply with CREATE_PROCESS_DEBUG_EVENT
    (WaitForDebugEvent). Message contains duplicated handle(s).
    5. When debugger's thread terminates (e.g. on logoff), Target process
    or thread is terminated too (like it was regularly debugged).
    How MS will solve this problem:
 
    *) Impersonate requesting thread (or client of port); try to open
    Target pid or tid; revert to self. If open failed, refuse
    request/debugging/ duplication (csrss does it this way).
    *) Put restrictions on DbgSsApiPort port : don't use WORLD SID, ..
    *) move dbgss to kernel like in Windows XP ;)]
 
    I will tell you which solution MS used after the next hotfix or SP
    will be out.
    How administrators can solve this problem:
 
    *) Modify smss.exe file (one-byte change). See HotFix directory.
    *) Hook NtConnectPort and refuse non-system/admin connections to
    DbgSsApiPort.
    *) Modify security descriptor of the port object in kernel memory, ...
    Notes: It's interesting for how long (~6 years) was this "possibility"
    available. The "beauty" of this "exploit" is that it is supported by
    OS. No overflows, no buggy drivers, no invalid pointers, no syscalls,
    no patching.
 
                              EliCZ, Mar-11-2002
 
 Ссылки
 
    1. http://www.anticracking.sk/EliCZ/
    2. mailto:Bugs@EliCZ.cjb.net
    3. http://www.anticracking.sk/EliCZ/bugs/DebPloit.zip
    4. http://www.smartline.ru/software/DebPloitFix.zip
    5. http://www.3dnews.ru/
    6. mailto:akuzin@corbina.net
    7. http://www.anticracking.sk/EliCZ/bugs/DebPloit.zip
    8. http://www.anticracking.sk/EliCZ
 /evk
 --- tin/1.5.12-20020311 ("Toxicity") (UNIX) (Linux/2.4.18 (i686))
  * Origin: Registered Linux user #194650 (2:5080/196.72)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Мелкософт опять в своем духе   Eugene Korovin   01 Apr 2002 15:39:22 
 Re: Мелкософт опять в своем духе   Shurick   02 Apr 2002 17:14:38 
 Мелкософт опять в своем духе   Dmitry Tcvetcov   02 Apr 2002 23:52:47 
 Re: Мелкософт опять в своем духе   Shurick   03 Apr 2002 10:01:59 
 Мелкософт опять в своем духе   Dmitry Tcvetcov   03 Apr 2002 16:42:07 
 Мелкософт опять в своем духе   Fedor Kudryashev   03 Apr 2002 17:51:56 
 Мелкософт опять в своем дyхе   Dmitry Tcvetcov   03 Apr 2002 22:02:13 
 Re: Мелкософт опять в своем дyхе   Vasily Salchenko   04 Apr 2002 01:14:57 
 Мелкософт опять в своем дyхе   Dmitry Tcvetcov   04 Apr 2002 09:21:31 
 Re: Мелкософт опять в своем дyхе   Vasily Salchenko   05 Apr 2002 01:04:44 
 Мелкософт опять в своем дyхе   Dmitry Tcvetcov   05 Apr 2002 15:07:56 
 Мелкософт опять в своем дyхе   Pavel Larkin   05 Apr 2002 17:13:51 
 Мелкософт опять в своем дyхе   Nikolay Davidov   06 Apr 2002 14:04:02 
 Мелкософт опять в своем дyхе   Fedor Kudryashev   12 Apr 2002 01:10:42 
 Мелкософт опять в своем дyхе   Fedor Kudryashev   04 Apr 2002 05:52:36 
 Re: Мелкософт опять в своем духе   Vasily Salchenko   03 Apr 2002 01:03:23 
 Мелкософт опять в своем духе   Eugene Sobolev   04 Apr 2002 23:54:12 
 Мелкософт опять в своем дyхе   Dmitry Kalinin   05 Apr 2002 07:00:18 
 Мелкософт опять в своем дyхе   Dmitry Radishev   07 Apr 2002 08:37:47 
 Мелкософт опять в своем дyхе   Fedor Kudryashev   07 Apr 2002 23:27:50 
 Re: Мелкософт опять в своем духе   Shurick   09 Apr 2002 16:46:40 
 Мелкософт опять в своем дyхе   Ruslan Tebuev   05 Apr 2002 17:52:02 
Архивное /ru.nethack/4004ef7e02f0.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional