Menu dostępności

Luka RCE w OpenOffice!

Jeśli używasz na swoim komputerze pakietu OpenOffice powinieneś go jak najszybciej zaktualizować do najnowszej wersji, ponieważ to o czym poniżej napiszemy i pokażemy, zjeży włosy na głowie niejednej osobie zajmującej się bezpieczeństwem.

Chodzi oczywiście o nowoodkrytą lukę w zabezpieczeniach oprogramowania, która otrzymała numer CVE-2020-13958 i umożliwia niezauważalne dla użytkownika wykonanie kodu w momencie otwierania dokumentu o rozszerzeniu „.odt” w OpenOffice. Dla atakującego oznacza to tyle, że może on uzyskać pełną kontrolę nad komputerem.
Problem dotyczy Apache OpenOffice 4 (do ostatniej wersji 4.1.7).

Uwaga! Wykonanie kodu (uruchomienie w tle programu) nie jest sygnalizowane żadnym powiadomieniem, ani paskiem z przyciskiem („Enable content”), jak dzieje się to w przypadku otwierania dokumentów z wbudowanym, złośliwym makro z pakietu MS Office.


Oprogramowanie OpenOffice

Dla tych, którzy nie mieli okazji korzystać z oprogramowania OpenOffice (pełna nazwa Apache OpenOffice) wyjaśnimy krótko, że jest to darmowa alternatywa dla pakietu Microsoft Office dostępna na komputery z systemem operacyjnym Linux, Solaris, MacOS oraz Windows. Pakiet OpenOffice zawiera edytor tekstu (Writer), arkusz kalkulacyjny (Calc), aplikację do prezentacji (Impress), aplikację do rysowania (Draw), edytor formuł (Math) i aplikację do zarządzania bazą danych (Base). Firma Sun udostępniła pakiet OpenOffice w lipcu 2000 r. jako konkurencję dla pakietu Microsoft Office. Następnie w 2011 roku Oracle, ówczesny właściciel Sun, ogłosił, że nie będzie już oferować komercyjnej wersji pakietu i przekazał projekt Fundacji Apache. Apache zmienił nazwę oprogramowania na Apache OpenOffice i tak pozostało do dziś. Inne aktywne projekty to LibreOffice i NeoOffice (komercyjny i dostępny tylko dla macOS).


Popularność OpenOffice na Świecie i w Polsce

Pokusiliśmy się o sprawdzenie i analizę z jaką skalą zagrożenia mamy do czynienia. Ze strony Apache OpenOffice pobraliśmy raport przedstawiający liczbę pobrań pakietu rozłożoną w latach oraz z podziałem na kraje. Raport uwzględnia dane od roku 2012, do dziś.

Na powyższym wykresie widać, że do 2020r. liczba tych pobrań przekroczyła 300 milionów! Widać też duży pik w pobraniach (ponad 100 tyś.) w marcu i czerwcu 2020r. Pewnie jest on związany z pandemią COVID-19 i koniecznością pracy z domu oraz zdalnej nauki uczniów szkół. Patrząc na ogół pobrań, nie jest to mała liczba, więc istnieje realne i spore zagrożenie przeprowadzenia udanego ataku w sieci z wykorzystaniem tego wektora (złośliwego dokumentu ODT). Jak spojrzymy na statystyki per kraj zobaczymy na nim też Polskę, która plasuje się na 9 miejscu z liczbą 11,3 mln pobrań! Więc całkiem sporo.


O co dokładnie chodzi w luce OpenOffice?

Problem polega na tym, że Apache OpenOfice nie obsługuje modułów obsługi skryptów (script:event-listener), czyli nasłuchiwania zdarzeń wykonywanych w makrach (tak jak robi to LibreOffice). Używając konstrukcji takiej, jak poniżej:

można wywołać otwieranie adresów URL bez żadnych okien dialogowych z prośba o potwierdzenie przez użytkownika w OpenOffice, w tym specjalnych programów obsługi linków „.uno” lub „.service”, które zostały zaprojektowane tylko do użytku wewnętrznego.

W scenariuszu poniżej pokażemy, jak za pomocą specjalnie przygotowanego dokumentu, będziemy mogli uruchomić kalkulator w systemie Windows. Podatność działa także dla linków UNC, a wyzwolenie akcji „.uno” lub „.service” działa również w systemie Linux .

Problem został zgłoszony firmie Apache pod koniec kwietnia 2020r. i na początku został zignorowany przez Producenta. Dopiero po interwencji portalu securityweek.com na początku października firma Apache wypuściła fix w wersji 4.1.8 w dniu 10 listopada 2020r.


Scenariusz utworzenia i uruchomienia kodu w pliku OpenOffice

W celu przetestowania podatności zainstalowaliśmy na naszym najnowszym Windows 10 (wydanie 20H2) Open Office w wersji 4.1.7 oraz utworzyliśmy w nim złośliwy plik w aplikacji Writer (odpowiednik Microsoft Word). Złośliwy plik o nazwie „CV_KapitanHack.odt”, jaki utworzymy będzie zawierał w środku jedno słowo z linkiem do uruchomienia kalkulatora (calc.exe) na Windows. Otworzenie pliku spowoduje automatyczne uruchomienie kalkulatora, bez jakiekolwiek interakcji z użytkownikiem.


Krok 1 – Utworzenie dokumentu ODT z linkiem do pliku wykonywalnego kalkulatora

Zaczynamy od utworzenia dokumentu z linkiem w środku. Link będzie powiązany z plikiem na dysku – w naszym przypadku plikiem wykonywalnym kalkulatora, który jest wbudowany w każdą wersję Windows.

Musimy link skonfigurować w każdej opcji zarówno w „Internet”, „Mail&News” oraz „Document”.

Link nazywamy jako KapitanHack i zapisujemy plik pod nazwą „CV_KapitanHack.odt”.


Krok 2 – Wypakowanie dokumentu ODT

Natywnym formatem OpenOffice jest .ODF (Open Document Format). Nas będzie interesował plik .ODT czyli plik zapisany w OpenOffice Writer. W rzeczywistości jest to archiwum, więc spróbujmy je rozpakować w aplikacji 7-zip (wbudowany kompresor zip w Windows ma problemy z pakowaniem, które skutkuje uszkodzeniem pliku podczas otwarcia w OpenOffice). Dla uproszczenia wykonamy tę czynność z linii komend:

Pierwsza akcja, to wypakowanie całej zawartość naszego pliku „CV_KapitaHack.odt” do katalogu o nazwie „Wypakowany”. Całość procesu wykonamy z linii wiersza mopecen (cmd.exe):

7z.exe x -oWypakowany CV_KapitanHack.odt

W katalogu „Wypakowany” znajduje się cała struktura pliku ODT zgodna ze standardem formatu OASIS

W następnym kroku to co nas interesuje to zawartość pliku „content.xml”, w którym umieścimy nasz złośliwy skrypt:


Krok 3 – Wklejenie skryptu do pliku „content.xml”

Nasz skrypt o treści:

wklejamy w zamiast sekcji „office:scripts”, która w naszym przypadku jest pusta.

Ten atrybut podmienimy powyższą składnią.


Krok 4 – Utworzenie złośliwego pliku ODT ze skryptem

Po udanej modyfikacji pliku „content.xml” musimy nasze rozpakowane archiwum z powrotem zamienić w plik ODT. W tym celu wykonamy następujące polecenie w aplikacji 7-zip:

>cd Wypakowany >7z.exe” a -r ..\CV_KapitanHack_script.zip *.*

W ostatnim kroku musimy jeszcze zmienić rozszerzenie pliku z „.zip” na „.odt”:

>move CV_KapitanHack_script.zip CV_KapitanHack_script.odt


Krok 5 – uruchomienie kodu z pliku ODT

Otwieramy nasz plik:

Natychmiast po jego otwarciu powinien uruchomić się nasz oczekiwany kalkulator.

Uwaga! Jeśli kalkulator nie uruchamia się, to najprawdopodobniej w pliku „settings.xml” mieliśmy skonfigurowaną zbyt dużą wartość w atrybucie . Jeśli po tym atrybucie znajduje duża liczba proponujemy zmienić ją na mniejszą i ponownie wykonać polecenia od kroku 4.


Podsumowanie

Opisana powyżej podatność należy do jednej z ciekawszych w świecie cybersecurity, ponieważ aplikacje OpenOffice są powszechnie używane przez użytkowników (może również firmy). Strach pomyśleć jak taki plik pojawiłby się w atakach phishingowych. Dlatego zawsze powinniśmy pozostawać czujni i świadomi tego co klikamy i jakie dokumenty otwieramy. Statystyki pobrań OpenOffice mówią, że na Świecie pobrano ponad 300mln wersji pakietów Oracle, w samej Polsce 11,3 mln. Czy pakiet OpenOffice jest używany w firmach? Na pewno, dlatego jedynym rozwiązaniem (oprócz dobrych narzędzi do bezpieczeństwa :)) jest tutaj aktualizacja do wersji 4.1.8 i ostrzeżenie użytkowników przed tego typu atakiem.

Popularne

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

W tym artykule pokażemy, jak możemy zmienić hasło administratora na komputerze posiadając do niego fizyczny dostęp. Artykuł ten można potraktować także jako przestrogę dla firm, które nie zaimplementowały jeszcze odpo...
Uwaga, administratorzy oraz zespoły bezpieczeństwa Splunk! Sześć krytycznych luk w Splunk Enterprise – analiza i rekomendacje

Uwaga, administratorzy oraz zespoły bezpieczeństwa Splunk! Sześć krytycznych luk w Splunk Enterprise – analiza i rekomendacje

Splunk opublikował ważne informacje, dotyczące szeregu nowych podatności w swoich produktach Splunk Enterprise i Splunk Cloud Platform. Luki mogą umożliwić atakującym wykonanie nieautoryzowanego kodu Ja...
Jak awaria Azure Front Door rzuciła cień na globalne usługi chmurowe

Jak awaria Azure Front Door rzuciła cień na globalne usługi chmurowe

W środę 9 października użytkownicy platformy Microsoft Azure na całym świecie doświadczyli poważnych zakłóceń. Wiele usług stało się niedostępnych, a administratorzy nie mogli nawet zalogować się do portalu...
Jak poznać hasło administratora lub użytkowników logujących się do Twojego komputera?

Jak poznać hasło administratora lub użytkowników logujących się do Twojego komputera?

Jeśli masz odrobinę szczęścia lub „odpowiednie umiejętności” i potrafisz zdobyć lokalne uprawnienia administracyjne na Twoim komputerze w firmie lub zaliczasz się do grona tych szczęściarzy, którzy pracuj...
Czego nie mówi Broadcom? Luka w VMware jest banalna do wykorzystania i korzysta z niej co najmniej jedna grupa hakerska!

Czego nie mówi Broadcom? Luka w VMware jest banalna do wykorzystania i korzysta z niej co najmniej jedna grupa hakerska!

Niedawno załatana wysoce poważna luka w zabezpieczeniach VMware jest wykorzystywana jako zero-day od października 2024 roku do wykonywania kodu z podwyższonymi uprawnieniami. Taką informacją podzieliło się w...