Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Korporacyjne drukarki HP z możliwością wykonania dowolnego kodu

22 listopada 2017, 23:59 | Aktualności | komentarze 2
Tagi: , ,

Zaczęło się od przygotowania przez marketing HP dramatycznego filmu,  pokazującego w sugestywnym, pełnym mroku scenariuszu, jak to używanie niebezpiecznej drukarki może skończyć się tragicznie… i puentując całość informacją o produktach HP: ” the world’s most secure printers and PCs”.

Zaintrygowało to załogę z FoxGlove Security – to ci sami od słynnego badania dotyczącego deserializacji w Javie. A owo zaintrygowanie poskutkowało serią podatności w korporacyjnych drukarkach HP (HP LaserJet Enterprise printers, HP PageWide Enterprise printers, HP LaserJet Managed printers, HP OfficeJet Enterprise printers).

Zaczęło się niewinnie od prostego (i ograniczonego) path traversala z wykorzystaniem narzędzia PRET. Ale nie dawał on za wiele – nie dało się czytać większości plików. Ale akurat dało się czytać pliki (czy dokładniej – joby), które zostały wysłane do wydrukowania – również te, które były zabezpieczone PIN-em (uch):

Kolejną ciekawostką jest pewna nieudokumentowana możliwość przywrócenia na drukarce ustawień fabrycznych – podstawiając odpowiedni serwer DHCP:

Every time the printer boots up, when it gets an IP address from the DHCP server, it will also look for some special configuration options in the DHCP response.

However, there are some options in the DHCP configuration that allow you to clear a setting that has been manually configured, including the following:

  • security-reset – Reset security settings on the print server to factory default values.
  • cold-reset – Reset to TCP/IP factory default settings after a cold reset

A ustawienia domyślne… tak – są średnio bezpieczne (choćby brak haseł, lub hasła przewidywalne).

Ale jak wykonać dowolny kod na urządzeniu? Badana drukarka posiadała zaszyfrowany dysk, więc nie można było odczytać z niego danych systemu operacyjnego (podłączając go do innego komputera). Ale wystarczyło… wymienić dysk na „zwykły” i proszę, udało się zainstalować drukarkowy system operacyjny na dysku nieszyfrowanym, a później (z pewnymi trudami) pobrać z niego pliki:

podmiana dysku w drukarce

Systemem okazał się Windows CE, którego dalsza analiza zaowocowała znalezieniem błędu z możliwością umieszczenia na drukarce dowolnego pliku BDL (to pewnego rodzaju plugin rozszerzający możliwości drukarki). Tutaj HP zadbało o bezpieczeństwo, bo instalowane pluginy muszą być przez nich podpisane cyfrowo, ale… weryfikację podpisu udało się ominąć.

Przykładowe fragmenty kodu (w tym generator plików BDL, które wykonują dowolny kod) – można znaleźć tutaj.

HP kilka dni temu wypuściło poprawki – z określeniem krytyczności na 8.1 (skala CVSSv3). Co ciekawe mamy tutaj:

Privileges Required: None
Attack Vector: Network

ale

Attack Complexity: High.

W sumie po ostatniej aktualizacji od FoxGlove (+ udostępjnieniu źródeł), nie jest to aż tak skomplikowane…

–ms

 

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Piotr

    Uwielbiam was.

    Odpowiedz
  2. john doe

    Błąd w publikacji (udostępjnieniu źródeł)

    Odpowiedz

Odpowiedz