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

Masowy wyciek danych PayPal – 15,8 miliona haseł w rękach cyberprzestępców

Masowy wyciek danych PayPal – 15,8 miliona haseł w rękach cyberprzestępców

16 sierpnia br. na forum cyberprzestępczym pojawiła się oferta sprzedaży ogromnej bazy danych, zawierającej ponad 15,8 miliona par adresów e-mail i haseł w formacie jawnego tekstu powiązanych z konta...
Groźna dziura w Microsoft IIS. Deserializacja usług może prowadzić do zdalnego wykonania kodu

Groźna dziura w Microsoft IIS. Deserializacja usług może prowadzić do zdalnego wykonania kodu

W połowie sierpnia 2025 roku ujawniono poważną lukę bezpieczeństwa w narzędziu Microsoft Web Deploy 4.0, używanym do publikacji aplikacji webowych na serwerach IIS. Luka – oznaczona jako CVE-2025-53772 – pozwal...
Nieznany exploit RCE dla Windows 10/11 i Server 2022 na sprzedaż. Czy konto SYSTEM jest już na wyciągnięcie ręki?

Nieznany exploit RCE dla Windows 10/11 i Server 2022 na sprzedaż. Czy konto SYSTEM jest już na wyciągnięcie ręki?

W świecie cyberbezpieczeństwa nic nie budzi większego niepokoju niż niezałatana luka typu zero-day, dająca możliwość wykonania zdalnego kodu bez żadnej interakcji ze strony użytkownika. Na czarnym ry...
Wyciek kodu źródłowego trojana bankowego ERMAC V3.0

Wyciek kodu źródłowego trojana bankowego ERMAC V3.0

Świat cyberbezpieczeństwa odnotował kolejne znaczące wydarzenie – ujawniono pełny kod źródłowy zaawansowanego trojana bankowego ERMAC V3.0, stworzonego z myślą o urządzeniach z systemem Android i działające...
Miliony laptopów Dell narażone na kompromitację

Miliony laptopów Dell narażone na kompromitację

Niedawno pisaliśmy o kłopotach Lenovo, dzisiaj czas na Dell. Okazuje się, że pięć luk w oprogramowaniu ControlVault3 i powiązanych interfejsach API systemu Windows naraża miliony laptopów na trwałe w...