Adobe całkowicie zakończy wsparcie dla Flash dopiero w 2020 r., a do tego czasu z przestarzałej i nie dość bezpiecznej technologii powoli będą rezygnować m.in. dostawcy przeglądarek. Dziś, w dobie HTML5, Flash pozostaje technologią użyteczną chyba tylko dla hakerów, bowiem podatności w nim są stale odkrywane, exploitowane, łatane i tak w kółko. Ostatnio wykryto kolejną lukę, a atak w nią wymierzony jest za pośrednictwem dokumentów Excela.
Odnotowano niedawno użycie złośliwego oprogramowania o nazwie CHAINSHOT, wykorzystującego podatność typu zero-day w Adobe Flash (CVE-2018-5002). Malware jest przenoszone przez plik Excela, zawierający niewielki obiekt Flash ActiveX i właściwość o nazwie "Movie", zawierającą URL do pobrania aplikacji flashowej. Badaczom zabezpieczeń udało się zcrackować 512-bitowy klucz RSA i odszyfrować payload. Co więcej, odkryli oni, że aplikacja Flash była zamaskowanym downloaderem, który tworzył losowy, 512-bitowy klucz RSA w pamięci procesu. Klucz prywatny pozostawał następnie w pamięci, a klucz publiczny był wysyłany do atakującego serwera, by zaszyfrować klucz AES (używany do szyfrowania payloadu). Zaszyfrowany payload był w końcu wysyłany do downloadera i istniejącego klucza prywatnego, aby odszyfrować 128-bitowy klucz i payload.
Szyfr udało się złamać badaczom z Palo Alto Networks Unit 42. Podzielili się oni swoimi odkryciami:
Podczas gdy klucz prywatny pozostaje tylko w pamięci, modulus n kluczy publicznych jest wysyłany do serwera atakującego. Po stronie serwera modulus jest używany wspólnie z silnie zakodowanym exponentem e 0x10001, by zaszyfrować 128-bitowy klucz AES, który był używany wcześniej do zaszyfrowania exploita i shellcode'u payloadu.
Po zdobyciu uprawnień następowało załadowanie osadzonego DLL o nazwie FirstStageDropper.dll, nazywanego też CHAINSHOT. Wstrzykiwał on SecondStageDropper.dll do następnego procesu. Co istotne, pierwszy z nich zawierał kod do obejścia zabezpieczeń Kaspersky'ego i Bitdefendera. Nie wiadomo, jak badaczom udało się złamać 512-bitowy klucz. Ostatecznie payload odpowiedzialny był za fingerprinting systemu, wysyłanie szczegółów o użytkowniku i uruchomionych procesach.