Потихоньку проходят времена, когда можно было беспрепятственно шнырять fgdump'ом по всей сети. Сейчас же на каждой корпоративной рабочей станции установлен грозный антивирус, который палит всякие полезные программки, называя их как-то созвучно со словом "hack". В довесок, наблюдается грустная тенденция по инсталляции аверов для защиты серверов все чаще и чаще :(( ...
Убить всяких касперов по-простому, к сожалению, не всегда удается. Поэтому тру-парни пользуют либо собственные сборки fgdump'ов, перекриптованные собственными пакерами, либо ищут альтернативные пути доступа к хешикам пользователей скомпрометированных систем. Про альтернативные методы дерганья нужных данных как раз и пойдет речь в данной публикации.
Убить всяких касперов по-простому, к сожалению, не всегда удается. Поэтому тру-парни пользуют либо собственные сборки fgdump'ов, перекриптованные собственными пакерами, либо ищут альтернативные пути доступа к хешикам пользователей скомпрометированных систем. Про альтернативные методы дерганья нужных данных как раз и пойдет речь в данной публикации.
Первое, что приходит в голову - это воспользоваться встроенными механизмами резервного копирования операционной системы вындовс. Для серверов и рабочих станций справедлива следующая команда:
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 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\ System32\config\SYSTEM system.file
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\ NTDS\NTDS.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:\\.\root\cimv2")
Set objShadowStorage = objWMIService.Get("Win32_ShadowCopy")
errResult = objShadowStorage.Create("C:\", "ClientAccessible", strShadowID)
...
Так был написан наколенный вариант vbs-скрипта для скрытого резервного копирования нужных файлов:
Пример выполнения:
...
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set objShadowStorage = objWMIService.Get("Win32_ShadowCopy")
errResult = objShadowStorage.Create("C:\", "ClientAccessible", strShadowID)
...
Так был написан наколенный вариант vbs-скрипта для скрытого резервного копирования нужных файлов:
Пример выполнения:
На этом сегодня все. Не попадайтесь!
Дмитрий, замените пожалуйста ссылку в этой статье на http://www.room362.com/blog/2013/06/11/volume-shadow-copy-ntdsdit-domain-hashes-remotely-part-2/
ОтветитьУдалитьмда, они там все замодревратили... спасибо, поправил
ОтветитьУдалить