18 Сентября, 2013

Windows shadow hack

Dmitriy Evteev
Потихоньку проходят времена, когда можно было беспрепятственно шнырять fgdump'ом по всей сети. Сейчас же на каждой корпоративной рабочей станции установлен грозный антивирус, который палит всякие полезные программки, называя их как-то созвучно со словом "hack". В довесок, наблюдается грустная тенденция по инсталляции аверов для защиты серверов все чаще и чаще :(( ...

Убить всяких касперов по-простому, к сожалению, не всегда удается. Поэтому тру-парни пользуют либо собственные сборки fgdump'ов, перекриптованные собственными пакерами, либо ищут альтернативные пути доступа к хешикам пользователей скомпрометированных систем. Про альтернативные методы дерганья нужных данных как раз и пойдет речь в данной публикации.
name='more'>
Первое, что приходит в голову - это воспользоваться встроенными механизмами резервного копирования операционной системы вындовс. Для серверов и рабочих станций справедлива следующая команда:

ntbackup backup systemstate /F "C:backup.bkf"

и

wbadmin start systemstatebackup -backupTarget:D: -quiet 
(для более старших осей)

В данном случае мы получаем system state, который после переброса на компьютер атакующего, необходимо развернуть в тестовой среде. Затем, для получения доступа к свежей копии продуктивной вражеской системы, можно воспользоваться, например, ElcomSoft System Recovery .

Я люблю данный способ, потому как он позволяет в спокойной обстановке изучить систему с использованием привычных интерфейсов без страха неожиданно потерять к ним доступ. Это особенно выгодно, когда речь заходит про копию контроллера домена. Однако у данного подхода существует и серьезное ограничение, связанное с размером файла резервной копии. Для небольшого домена размер файла резервной копии может достигать нескольких гигабайт. Поэтому в ситуевине, когда атакующий ограничен шириной канала, такой вариант, увы, не подходит.

Другой альтернативой достижения аналогичных целей является функция "скрытого копирования" (shadow copy), которая впервые появилась в Windows 2003. Для контроллера домена типовая атака состоит из следующих шагов (см. ссылку ):

1. Получаем слепок целевой системы

vssadmin create shadow /for=C:

2. Копируем необходимые файлы

copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy1Windows System32configSYSTEM system.file

copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy1Windows NTDS
TDS.dit ntdsdit.file
Прим. Файл "system" хранит в себе syskey, который требуется для доступа к чувствительным данным, содержащимся в файле "ntds.dit". Файл "ntds.dit" - это реплика каталога домена.
3. После перемещения этих двух файлов в собственную среду, можно поколдовать над ними с использованием NTDSXtract framework  (см. также ссылку ). 

4. Грепаем хешики и запускаем перебор паролей
Прим. Стоит помнить, что на случай не брутабельных паролей, атакующего может выручить атака pass-the-hash. Это справедливо и в случае, когда на контроллере домена задействована настройка не хранить lm-хеш после смены пароля пользователем.
С контроллером домена все норм, а вот на рабочих станциях волшебство из командной строки заканчивается. Дело в том, что парни из MS делают все возможное, чтобы максимально разнообразить жизнь суровым сисадминам и тем, кто ими становится после эксплуатации соответствующих уязвимостей на операционных системах, предназначенных для офисного планктона. Ограничивают доступ к системе по RDP в одну сессию, не ставят по умолчанию telnet в последних сборках винды, подсовывают урезанную версию vssadmin, которая не умеет делать новые копии состояния файловой системы. Но выход есть! Все аналогичные действия можно провернуть через WMI.

...
Set objWMIService = GetObject("winmgmts:.rootcimv2")
Set objShadowStorage = objWMIService.Get("Win32_ShadowCopy")
errResult = objShadowStorage.Create("C:", "ClientAccessible", strShadowID)
...

Так был написан наколенный вариант vbs-скрипта для скрытого резервного копирования нужных файлов:


Пример выполнения:



На этом сегодня все. Не попадайтесь!