Stos(hack)owanie pendrive`ów
Transkrypt
Stos(hack)owanie pendrive`ów
Stos(hack)owanie pendrive’ów X Podlaski Festiwal Nauki i Sztuki Białystok 2012 Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x0. Kim jestem? 0x1. Preludium 0x2. Mechanizm Autorun/Autoplay 0x3. Charakterystyka U3 0x4. Dwulicowość U3 0x5. „Pogromcy Mitów” 0x6. Antykoncepcja dla Windowsa Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x0. Kim jestem? Piotr Katharsis Tynecki to: Student (obecnie raczkujący dyplomant), Programista, „Prezes” IKN UwB, Cofounder Polish Python Coders Group. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x1. Preludium Pamięć masowa (odtwarzacze MP3, pamięć USB, płyty CD/DVD, aparaty cyfrowe, telefony komórkowe etc.) jako nośnik danych malware. Inżynieria społeczna w parze z U3 – gwarancja udanego ataku. Fakty?! Conficker Stuxnet Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x1. Preludium Conficker październik 2008, atakuje systemy operacyjne z rodziny Windows, Internet, USB (spreparowany autorun.inf), ponad 12 mln zakażeń na całym świecie, w IV kwartale 2011 zanotowano 1.7 mln ataków, po zainfekowaniu wyłącza szereg usług systemowych, podczepia się pod niektóre procesy i gromadzi dane osobowe. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x1. Preludium Conficker Po „oczyszczeniu” pliku autorun.inf, z ~60kb losowego (binarnego) ciągu znaków, można dostrzec charakterystyczne dla niego słowa kluczowe: [Autorun] Action=Open folder to view files Icon=%systemroot%\system32\shell32.dll,4 Shellexecute=.\RECYCLER\S-5-3-42-2819952290-8240758988879315005-3665\jwgkvsq.vmx,ahaezedrn Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x1. Preludium Conficker Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x1. Preludium Stuxnet czerwiec 2009, atakuje przemysłowe systemy SCADA działające pod kontrolą Windows (aż 5 exploitów!), Internet, klipsy USB, 100 000 komputerów przemysłowych ze 155 krajów (z czego aż 60% w samym Iranie), szpiegowanie i przeprogramowywanie instalacji przemysłowych, w celu fizycznego uszkodzenia. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x1. Preludium Stuxnet Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x2. Mechanizm Autorun/Autoplay AutoRun Funkcja wprowadzona w Windows 95 do Windows Explorer’a (w rzeczywistości określenie pochodzi działań z systemu shell32.dll), w momencie umożliwiająca zamontowania napędu. Mechanizm ten przede wszystkim jest wykorzystywany przez płyty CD/DVD do samoczynnego instalowania np. sterowników w systemie klienta, uruchamiania filmów czy dokumentów. Cały ten proces bazuje na poleceniach zawartych w pliku autorun.inf, znajdującym się w głównym katalogu nośnika. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x2. Mechanizm Autorun/Autoplay AutoPlay Funkcja wprowadzona w Windows XP, która zaraz po włożeniu nośnika lub innego urządzenia uruchamia okno dialogowe z listą opcji do wyboru (tzw. akcji). Jej zawartość zależna jest od przechowywanych typów plików (obrazy, muzyka, wideo) na dysku. Proszę zauważyć, że Windows Explorer jest zawsze zawarty na liście! Jeżeli użytkownik wybierze, którąś z dialogowym (autoodtwarzania), to akcji, w zostanie oknie uruchomiony odpowiedni program. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x2. Mechanizm Autorun/Autoplay autorun.inf Plik tekstowy ASCII wykorzystywany przez funkcje AutoRun i AutoPlay. Został wprowadzony już w Windows 95. Charakteryzuje się bliźniaczą strukturą względem plików *.ini. Musi znajdować się w katalogu głównym woluminu. Zalecana nazwa to: autorun.inf (z małych liter) Plik daje możliwość sprecyzowania kroków, które może wykonać system, po tym jak do napędu CD/DVD-ROM lub portu USB zostanie włożony nośnik. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x2. Mechanizm Autorun/Autoplay autorun.inf Plik autorun.inf określa: Nazwę i lokalizację programu, który ma zostać uruchomiony gdy płyta/pendrive trafi do napędu/portu, Nazwę pliku ikony (możliwość dziedziczenia ikony z uruchamianego programu bądź aplikacji systemu operacyjnego), Polecenia menu kontekstowego, pojawiające się gdy użytkownik kliknie prawym przyciskiem myszy na ikonę napędu, Domyślnie uruchamiane polecenie, na wskutek dwukrotnego kliknięcia myszą przez użytkownika na ikonę napędu, Ustawienia, które zmieniają procedury wykrywania i autoodtwarzania funkcji AutoPlay. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x2. Mechanizm Autorun/Autoplay autorun.inf autorun.inf a systemy operacyjne: Windows XP (SP2, SP3) - pełna funkcjonalność AutoRun i AutoPlay, możliwość automatycznego i cichego uruchamiania programów, Windows Vista - AutoRun nie uruchamia już automatycznie programów. Całą funkcjonalność wyświetli okno przejęła dialogowe dla funkcja AutoPlay, użytkownika z która domyślnie możliwością wyboru naszego programu, Windows 7 - dla wszystkich napędów (z wyjątkiem CD/DVD-ROM), dostępne są tylko sekcje label i icon, pozostałe będą ignorowane. Napędom AutoRun, typu CD/DVDROM wpływając w m.in. dalszym na ciągu zachowanie można określić nośnika po funkcję dwukrotnym kliknięciu czy kliknięciu prawym przyciskiem myszy na ikonę napędu. Możliwość edycji okna dialogowego AutoPlay. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x2. Mechanizm Autorun/Autoplay Budowę pliku autorun.inf rozpoczynamy od nagłówka: [Autorun] Określamy opis akcji w okienku AutoPlay: Action=Otwórz folder, aby wyświetlić pliki Ustalamy ikonę naszej aplikacji: Icon=%systemroot%\System32\shell32.dll,4 Jeżeli chcemy dziedziczyć ikonę z naszego programu: Icon=program0.exe,1 Bezpośrednia ścieżka do pliku .ICO: Icon=nazwaikony.ico Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x2. Mechanizm Autorun/Autoplay Etykieta pod jaką będzie widoczny napęd: Label=Moja Etykieta Ścieżka do automatycznie uruchamiającego się programu zaraz po włożeniu napędu: Open=program0.exe Uruchamianie innych plików niż wykonywalne (poprzedzając poleceniami start, notepad): Open=start jakisdokument.doc Uruchamianie dowolnych plików z poziomu domyślnych programów użytkowych: ShellExecute=jakisutwor.mp3 Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x2. Mechanizm Autorun/Autoplay Nadpisanie Otwórz w menu kontekstowego nowym oknie) z (Otwórz, Wyszukaj uwzględnieniem i skrótów klawiszowych “O”, „y” i „n”: Shell\open\command=program1.exe Shell\open=&Otwórz Shell\search\command=program2.exe Shell\search=W&yszukaj... Shell\explore\command=program3.exe Shell\explore=Otwórz w &nowym oknie Wyróżnienie (pogrubienie) jednej z opcji: Shell=search Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x2. Mechanizm Autorun/Autoplay Istotne uwagi dotyczące autorun.inf: Wymaganym systemem partycji plików pendrive’a jest FAT32. Nazwy plików (.exe, .bat, .com, .scr czy .ico) powinny być dostępne na nośniku w postaci ciągu małych liter. Ścieżki do tych plików muszą być bezpośrednie: Workspace\mojeprogramy\windows\program5.exe Dokumentacja autorun.inf: http://bit.ly/biFSo7 Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x3. Charakterystyka U3 U3 to opatentowana technologia firmy SanDisk oraz M-Systems. Umożliwia bezpośrednie uruchamianie aplikacji z poziomu specjalnie sformatowanej pamięci USB. Zapewnia dostęp do naszych ulubionych programów, bez konieczności ich instalacji w systemie, niezależnie od komputera i typu konta, do którego pendrive zostaje podłączony. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x3. Charakterystyka U3 Mój komputer: Standardowy dysk wymienny, Wirtualny napęd CD-ROM o nazwie U3 System (lub U3), z zamontowaną „płytką”. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x3. Charakterystyka U3 W tle działania systemu zostaje uruchomiony program Launchpad. Zasobnik systemowy (tray) automatycznie dodaje ikonę twórców oprogramowania, która umożliwia pracę ze środowiskiem U3. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x3. Charakterystyka U3 Swoboda korzystania z „naszego” oprogramowania w domu, pracy, na uczelni czy kawiarence internetowej, bez konieczności instalowania go w systemie. Organizacja pracy, obsługa multimediów, rozrywka, diagnostyka, zarządzanie prywatnymi zbiorami fotografii. Wniosek: funkcjonalność komputera w miniaturowym, przenośnym urządzeniu. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x3. Charakterystyka U3 Podstawowym jest wymogiem dostępność użytkowania portu USB 2.0 technologii do U3 szybkiego transferu danych. LaunchPad 1.6.3.9 obsługuje systemy: Windows 2000 (z Service Pack 4) (U3, pamięć) Windows XP (U3, pamięć) Windows Server 2003 (U3, pamięć) Windows Vista (U3, pamięć) Windows 7 (U3, pamięć) Mac OS oraz Linux (tylko pamięć!) User Guide: http://bit.ly/ksdLLB Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x3. Charakterystyka U3 U3 LaunchPad od wersji 1.4 (i wyżej) wspiera Windows Vista. Problemy z tym systemem mają posiadacze pendrive’ów z firmware w wersjach: 2.16, 2.17, 2.18, 2.19 i 2.20. Zaleca się wtedy wykonanie doinstalowanie aktualizacji specjalnej poprawki oprogramowania KB940199 U3 lub wydanej przez 2.20 chcący Microsoft. Użytkownicy wykonać z aktualizację wspierającej 2.17, firmware Windows 2.18, oprogramowania 7, zmuszeni są 2.19 do i wersji wykorzystać 1.6.3.9 do tego system Windows XP. Więcej informacji: http://bit.ly/iWQViy Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x3. Charakterystyka U3 Oficjalne oprogramowanie: LPInstaller LPRemoval Instalacja krok po kroku: http://bit.ly/jw36f2 Usunięcie oprogramowania możliwe jest również z poziomu samego LaunchPada. Obie aplikacje można pobrać ze strony producenta: http://u3.sandisk.com/ Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x4. Dwulicowość U3 Cel: Osadzić naszą (automatycznie uruchamiającą się w przypadku Windowsa preparowanym plikiem XP) aplikację autorun.inf na wraz z napędzie wirtualnym pendrive’a z dostępną technologią U3. Potrzebujemy: - dostępu do Internetu, - img2033.jpg.scr (nasz program), - autorun.inf (spreparowany plik konfiguracyjny), - LPRemoval.exe (usuwa oprogramowanie U3), - mkisofs.exe (tworzy obraz .iso). Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x4. Dwulicowość U3 Krok 1. Zalogować się do konta administratora. Krok 2. Przejść do katalogu: C:\Documents and Settings\<nazwaUzytkownika>\Dane aplikacji (Windows XP) C:\Users\<nazwaUzytkownika>\AppData\Roaming (Windows Vista/7) Gdzie <nazwaUzytkownika> to nazwa konta, na którym obecnie pracujemy. Uwaga! - Jeżeli w Dane aplikacji/Roaming dostępny jest katalog U3, należy usunąć go z całą zawartością. - Jeżeli pendrive posiada osadzone oprogramowanie U3, należy sformatować go z poziomu LPRemoval.exe. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x4. Dwulicowość U3 Krok 3. Uruchomić jako administrator Internet Explorer (32bit) i wpisać adres strony: http://u3.sandisk.com/download/lp_installer.asp?custom=1.6.1.2&brand=PelicanBFG Uwaga! Jeżeli nie posiadamy dostępnego frameworka ActiveX, przeglądarka zwróci stosowny komunikat – należy wtedy doinstalować go w celu zrealizowania dalszych etapów. Kliknąć w hiperłącze „Install Launchpad”. Pojawi się wtedy interfejs instalatora U3 Launchpad Installer. Przeprowadzić proces instalacyjny do samego końca. Finalnie, pendrive będzie wyposażony w oryginalne oprogramowanie producenta. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x4. Dwulicowość U3 Krok 4. Należy ponownie uruchomić jako administrator Internet Explorer (32bit) i podać adres strony: http://u3.sandisk.com/download/lp_installer.asp?custom=1.6.3.9&brand=PelicanBFG Wejść na link „Install Launchpad”, jednakże tym razem wstrzymując się od klikania guzika „Next”! Chwilę odczekać, gdyż trwa pobieranie obrazu ze strony producenta (zależne od prędkości łącza). W katalogu z Kroku 1., pojawił się folder z alfanumeryczną nazwą (np. U3\temp\4dc8a220dl). Dostępna jest w nim najnowsza wersja oprogramowania U3 w postaci obrazu .iso o nazwie PelicanBFG-autorun.iso lub cruzer-autorun.iso. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x4. Dwulicowość U3 Krok 5. Obraz producenta PelicanBFG-autorun.iso/cruzer-autorun.iso zostanie za chwilę nadpisany, w wyniku czego osadzimy naszą aplikację na nośniku wirtualnym. Chcąc tego dokonać, należy w pierwszym rzędzie stworzyć własny obraz .iso z poziomu np. mkisofs.exe (wiersz poleceń CMD). mkisofs.exe –U –V –l –o PelicanBFG-autorun.iso autorun Gdzie autorun to katalog zawierający pliki: autorun.inf img2033.jpg.scr Stworzony obraz .iso nadpisujemy z oryginałem, a następnie kontynuujemy i kończymy instalację analogicznie do Kroku 3.. To wszystko! Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x4. Dwulicowość U3 Istotne uwagi dotyczące tworzonego obrazu .iso: rozmiar pliku nie może przekroczyć 7 204 864 bajtów, w przypadku błędnego osadzenia zawartości obrazu na napędzie wirtualnym należy: - przepiąć pendrive do innego portu USB, - ponownie przeprowadzić procedurę instalacyjną. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x5. „Pogromcy Mitów” MIT: U3 supportuje wyłącznie aplikacje w standardzie U3 Prawdą jest to, że producent oprogramowania U3 ogranicza wykorzystywanie tej technologii wyłącznie do programów zgodnych ze standardem U3 (odpowiednio opakowanych). Aplikacje tego typu znane są z tego, że występują z rozszerzeniem *.u3p. Jeżeli nasz ulubiony program nie jest dostępny w powyższym formacie a zależy nam na jego dostępności w środowisku LaunchPad, można dokonać konwersji we własnym zakresie. W tym celu należy posłużyć się darmowym narzędziem PackageFactory, przeznaczonym do niekomercyjnych zastosowań. Więcej informacji: http://www.eure.ca/ Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x5. „Pogromcy Mitów” MIT: U3 wymaga uprawnień administratora Proces instalacyjny LanuchPad’a na naszym pendrive’ie oczywiście wymaga konta administratora, ze względu na wykorzystanie rejestru, plików systemowych i katalogów do których dostęp ma wyłącznie root. Jednakże, samo uruchomienie oprogramowania U3 (w tym naszego programu z poziomu spreparowanego napędu wirtualnego) na koncie z ograniczeniami czy słynnym „Gościu” jest jak najbardziej możliwe i niesie za sobą wysokiej rangi zagrożenie. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x5. „Pogromcy Mitów” MIT: KB971029 to gwarancja bezpieczeństwa W lutym roku 2011, firma Microsoft udostępniła poprawkę (KB971029) do Windows Update, która dezaktywuje autoodtwarzanie okna dialogowego dla dysków USB w systemach Windows XP, Vista, Server 2003 i 2008. Wydanie jednak KB971029 dysków jest jak optycznych najbardziej (CD/DVD), uzasadnione. które potrafią Nie uwzględnia parsować plik autorun.inf. Wniosek jest prosty: automatyczne uruchamianie dowolnych (w tym złośliwych) programów z pamięci USB (U3) jest więc wciąż możliwe! Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x5. „Pogromcy Mitów” MIT: KB971029 to gwarancja bezpieczeństwa Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x5. „Pogromcy Mitów” MIT: U3 mnie nie dotyczy, bo mam Windows 7 W Windows 7 zaszły bardzo istotne zmiany w działaniu AutoRun/AutoPlay: AutoPlay nie wspiera funkcji AutoRun dla nie-optycznych dysków podłączonych do komputera. Działa wyłącznie dla płyt CD/DVD ale już nie dla pamięci USB, Okienko AutoPlay pokazuje się, ale nie zawiera możliwości automatycznego uruchomienia programu, jedynie umożliwia otwarcie folderów, zdjęć czy filmu, Kolejną zmianą jest dokładne zaznaczenie w okienku AutoPlay informacji, że program uruchamiany jest z dysku zewnętrznego „Install or run program”. Z powyższych zmian można jednak wywnioskować, że nieostrożny użytkownik wciąż jest narażony na spreparowane pole wyboru okna AutoPlay oraz menu kontekstowe. Bowiem, nic nie stoi na przeszkodzie, aby nasz program został dodany jako pierwsza opcja wyboru (AutoPlay), z oryginalną (Windows 7) ikoną folderu oraz z zbliżonym opisem co Windows Explorer. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x6. Antykoncepcja dla Windowsa Krok 1 – wyłączyć mechanizmy AutoRun i AutoPlay Uruchom edytor rejestru regedit.exe. Przejdź do gałęzi: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer Kliknij PPM na wartość NoDriveTypeAutoRun, a następnie wybierz „Modyfikuj”. Po prawej stronie wybierz system „Dziesiętny” , wpisz wartość 255. Kliknij „OK”. Kliknij PPM na pole z wartościami i utwórz nową typu DWORD o nazwie NoDriveAutoRun i wartości dziesiętnej 67108863. W ten sposób wyłączone zostało autoodtwarzania na wszystkich nośnikach. Uwaga! Wartości domyślne NoDriveTypeAutoRun i NoDriveAutoRun różnią się w zależności od używanego systemu operacyjnego Windows. Dlatego też zachęcam do współpracy z dokumentacją: http://bit.ly/FNARK Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x6. Antykoncepcja dla Windowsa Krok 1 – wyłączyć mechanizmy AutoRun i AutoPlay Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x6. Antykoncepcja dla Windowsa Krok 2 – wyłączyć parsowanie autorun.inf Kolejnym etapem jest zmuszenie systemu do tego, by pliku autorun.inf w ogóle nie parsował. Można to zrobić wykorzystując mechanizm IniFileMapping. W tym celu należy stworzyć np. na pulpicie plik o nazwie NOAUTORUN.REG, a w jego wnętrzu umieść następujący kod: REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\IniFileMapping\Autorun.inf] @="@SYS:DoesNotExist" Następnie, wystarczy kliknąć na niego dwukrotnie LPM, dodając ten klucz do rejestru systemu. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x6. Antykoncepcja dla Windowsa Krok 3 – „szczepić” każdego pendrive’a Warto również zabezpieczyć samego pendrive’a przed kontaktem z wirusami, które to tworzą lub nadpisują autorun.inf. W tym celu katalogów należy stworzyć autorun.inf/aux i w przestrzeni nadać im wymiany atrybuty pamięci systemowy USB i drzewo tylko do odczytu. Istnieje zostanie rodzina wirusów zneutralizowana. (m.in. Conficker), Infekcja która zostanie już na udaremniona, tym etapie ponieważ „robactwo” nie może utworzyć pliku o tej nazwie. Dodatkowo, katalog aux traktowany jest przez Windows „specjalnie” ze względu na prehistoryczną kompatybilność. Piotr Tynecki Informatyczne Koło Naukowe UwB Stos(hack)owanie pendrive’ów 0x6. Antykoncepcja dla Windowsa Krok 4 – praca na koncie restricted usera Zaledwie 10% codziennych czynności (przeciętnego) użytkownika w systemie Windows stanowią sytuacje, w których uprawnienia administratora stają się niezbędne. Dlatego też, bardzo opłacalne staje się korzystanie z konta „Gościa” lub konta z ograniczeniami. Ciągła praca z uprawnieniami administratora tylko się prosi o ich nadużycie, penetrację systemu bądź potencjalny atak ze strony malware czy jego twórców. Piotr Tynecki Informatyczne Koło Naukowe UwB Dzięk(hack)uję Pytania? ptynecki [email protected] Piotr Tynecki Informatyczne Koło Naukowe UwB