Przejęcie serwera Exchange przez deserializację (łatajcie!)

26 lutego 2020, 10:21 | W biegu | 1 komentarz
: oglądaj sekurakowe live-streamy o bezpieczeństwie IT.

Kolejna ciekawostka w ramach serii #vulnz. Tym razem mamy do czynienia z błędem umożliwiającym zdalne wykonywanie poleceń systemowych na serwerze Exchange. Dokładniej – RCE mamy w Exchange Control Panel, wymagane jest dowolne konto usera. Mało zabawne jest to, że atakujący po wykonaniu ataku otrzymuje od razu uprawnienia SYSTEM na serwerze. Microsoft w opublikowanej informacji o podatności wspomina, że eksploitowanie podatności prawdopodobnie zacznie się niebawem, warto więc pospieszyć się z łatką.

W czym tkwi istota problemu? W zasadzie w dwóch rzeczach:

  1. Exchange deserializuje pewne dane, które może przesłać użytkownik w żądaniu HTTP. Jak wiemy np. z tej podatności w SharePoincie – prowadzi to do możliwości wykonania kodu w OS. Jeśli ktoś chce zrozumieć temat od a-z (w kontekście .NET) to polecam do naszej książki (rozdział: Niebezpieczeństwa deserializacji w .NET)
  2. Microsoft jednak broni się przed możliwością podesłania do Exchange dowolnych zserializowanych danych (brawo!) – poprzez odpowiednie zaszyfrowanie zserializowanych danych. Co z tym szyfrowaniem? A więc uwaga:

    Instead of having randomly-generated keys on a per-installation basis, all installations of Microsoft Exchange Server have the same validationKey and decryptionKey values in web.config.

Czyli dzięki zahardkodowanym kluczom, mogę obejść zabezpieczenie i przesłać dowolne dane do deserializacji.


–ms

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



Komentarze

  1. Malo uzyteczny atak, typu jak bede miec dostep do klucza prywatnego to bedzie w stanie przyeczytac traffic

    Odpowiedz

Odpowiedz