Ostatnio ujawniono informacje o podatności (CVE-2018-16858) który dotyczyło pakietów biurowych LibreOffice i Apache OpenOffice w którym jest używany, że ePozwalają one na wykonanie kodu w systemie podczas otwierania dokumentu specjalnie wydanego w formacie ODT.
Odkrycie S.Został przeprowadzony w systemie Windows, chociaż ta eksploatacja dotyczy również Linuksa, osoba, która zgłosiła tę lukę, zauważyła, że te pakiety są kompatybilne ze skryptami, a Basic, BeanShell, Java, JavaScript i Python są zgodne.
Na czym polega ta luka?
Warto wspomnieć, że choć jest to problem wykrywany od zeszłego roku, to rozwiązanie zostało wdrożone w zaledwie dwa tygodnie.
Ze względów proceduralnych osobie, która to wykryła (możesz sprawdzić jego publikację tutaj) otrzymała polecenie sporządzenia raportu do niedawna.
Problem wynika z braku niezbędnych sprawdzeń w kodzie przetwarzania makr osadzonym w dokumencie, które mogą być wyzwalane przez różne zdarzenia, takie jak wskazanie myszą na element.
Używając znaków „../” w ścieżce do kontrolera, atakujący może wyjść poza katalogi podstawowe za pomocą skryptów (/ share / Scripts / python and / user / Scripts / python) i wykonaj dowolną funkcję z istniejącego skryptu Python, gdy wystąpi zdarzenie.
Atakujący wykorzystuje to i do wykonania kodu wykorzystuje funkcję skryptu pydoc.py obecny w większości dystrybucji (również zawarte w pakiecie LibreOffice dla Windows - python-core-3.5.5 \ lib \ pydoc.py).
To definiuje funkcję tempfilepager()
który dba o wykonanie dowolnego pliku wykonywalnego z dowolnymi argumentami przez wywołanie funkcji os.system()
.
Na przykład, aby uruchomić kalkulator podczas przewijania łącza do określonego obszaru w dokumencie, wystarczy podłączyć skrypt vnd.sun.star.script:../../lib/python3.5/pydoc.py$
do programu obsługi zdarzeń „dom: mouseover” po prostu podłącz skrypt do „vnd.sun.star.script:../../lib/python3.5/pydoc.py$tempfilepager(1, gnome-calculator )?language=Python&location=share
".
Możemy to zobaczyć na poniższym filmie:
Luka została wykryta i zgłoszona w zeszłym roku i została usunięta w LibreOffice w wersjach 6.0.7 i 6.1.3.
Podczas w aktualnej wersji Apache OpenOffice 4.1.6 problema pozostaje Nieskorygowane.
Jest już rozwiązanie
Jako rozwiązanie do blokowania luk w OpenOffice, zaleca się usunięcie pliku pythonscript.py katalogu aplikacji, który można znaleźć w następującej ścieżce "/opt/openoffice4/program/pythonscript.py
".
Oprócz tego problem nie został jeszcze rozwiązany w systemach Debian Jessie, Ubuntu 16.04, SUSE i openSUSE.
Z drugiej strony ten problem nie dotyczy RHEL, CentOS, Ubuntu 18.04 i Ubuntu 18.10.
W OpenOffice i LibreOffice do wersji 6.0 włącznie wykorzystanie luki jest ograniczone do wykonywania lokalnych skryptów Pythona istnieje z powodu braku obsługi przekazywania argumentów do funkcji wywoływanych z makr.
Aby zaatakować OpenOffice i wcześniejsze wersje LibreOffice, osoba atakująca musi zabezpieczyć lokalizację Twojego skryptu w języku Python, na przykład dystrybuując go w pliku ZIP wraz z dokumentem ODT.
Kiedy LibreOffice 6.1.x atakuje, możesz użyć skryptu systemowego pydoc.py, aby wykonać dowolne pliki z dowolnym parametrem.
Ponadto, o możliwym wektorze ataku jest mowa w pakiecie ImageMagick, których LibreOffice używa do konwersji określonych typów plików.
Ten atak jest przeprowadzany za pomocą programów obsługi obrazów oparty na ImageMagick jest niebezpieczny, ponieważ dokument z luką w zabezpieczeniach można wysłać jako plik JPEG lub PNG z plikiem ODT zamiast obrazu (taki plik zostanie przetworzony, ponieważ typ MIME jest rozpoznawany po zawartości, a nie zaufany)
Teoretycznie problem może również dotyczyć automatycznych kreatorów miniatur dla komputerów stacjonarnych i indeksatorów plików, jeśli używają LibreOffice do analizy dokumentów.
W takim przypadku do ataku wystarczy po prostu załadować dokument z exploitem lub przejść do katalogu z nim w Nautilusie.
Ważne jest również, aby zobaczyć, że wciąż znajdują sposób na znalezienie luk w zabezpieczeniach poprzez różne zastosowania ImageMagick.