Całkiem niedawno dwóch specjalistów z bezpieczeństwa sieci opublikowało raport o luce w zabezpieczeniach usługi wydruku w systemach Windows. Chodzi o podatność w usłudze Windows Print Spooler, o której słabościach pisaliśmy już w innym naszym artykule. Nowa podatność dotyczy wszystkich wersji systemów Windows, nawet tych z 1996 roku! Otrzymała dumną nazwę PrintDemon i została oznaczona kodem CVE-2020-1048. Szczegółowy, techniczny opis podatności można znaleźć tutaj.

Luka znaleziona w komponencie PrintSpooler pozwala na kompromitacje usługi poprzez modyfikacje jej pamięci i wykorzystanie używanych przez nią poświadczeń, czyli SYSTEM, do wykonania dowolnego kodu. Błędu nie można w żaden sposób wykorzystać do zdalnego dostępu do urządzenia, czy kompromitacji sieciowej na większą skale, ale problem i tak jest duży. Microsoft też oznaczył podatność jako Local Privilege Escalation (LPE).

Usługa PrintSpooler dostępna jest bez żadnych restrykcji z każdej aplikacji uruchomionej w systemie. Pozwala to osobie atakującej na utworzenie zadania drukowania, które może wydrukować jakiś tekst (na przykład polecenie PowerShell) do pliku. Atakujący inicjuje taką operacje drukowania, następnie zawiesza usługę PrintSpooler i pozwala zadaniu na restart. Jednak, tym razem zadanie wydruku wznawia się na najwyższych uprawnieniach SYSTEM, co pozwala na nadpisanie każdego pliku w systemie operacyjnym. Co przeprowadzenia exploitu na nowych systemach Windows wystarczy jedna linia kodu PowerShell.

Dobre wieści są takie, że Microsoft wydał już łatkę, która znajduje się w najnowszym majowym Patch Tuesday. Sam producent przyznaje, że to jedna z ciekawszych podatności jaką mieli okazję załatać, ponieważ jest bardzo prosta w użyciu, a istniała niezauważona od lat we wszystkich wersjach systemów Windows.

Szybkie zaktualizowanie naszych systemów jest teraz bardzo ważne, ponieważ raz wykorzystana podatność przed łatką, pozostaje później ukryta w systemie i może być używana pomimo wgranego patch’a. Oprócz tego warto przeskanować swoje systemy pod kątem obecności portów wydruku zwierających ścieżki plików. Niebezpieczne szczególnie są te o rozszerzeniach .DLL oraz .EXE. Można to sprawdzić za pomocą komendy PS: Get-PrinterPorts.