Zwalczanie Laboratorium 4. Zbieranie podstawowych śladów działalności.. Ślady pozostawione na komputerze można podzielić na dwie kategorie: ulotne i nieulotne. Nieulotne to te, które pozostają na komputerze po jego wyłączeniu, czyli zapisane na nośnikach. Ulotne yo te, które zmieniają się w trakcie pracy lub znikają po wyłączeniu komputera, a więc zawartość pamięci operacyjnej, pliku wymiany, informacje systemowe (np. o uruchomionych procesach i aktywnych połączeniach oraz niektóre informacje o systemie plików. Ślady ulotne powinny zostać zabezpieczone tak szybko jaki to jest możliwe i w taki sposób by sposób zabezpieczania nie powodował zmiany ich zawartości. Ślady nieulotne powinny być zabezpieczane w sposób off-lineowy, bez ingerencji w ich zawartość czy też w związane z nimi dane systemowe. (np. w dane o czasie dostępu do zbiorów). W celu zabezpieczenia używa się narzędzi, które pozwalają na utworzenie kopii danych ulotnych lub nieulotnych (np. partycji dyskowych czy poszczególnych zbiorów) a analizę zabezpieczonego materiału przeprowadza się na kopiach, nigdy na oryginale. Część A. Zabezpieczenie śladów ulotnych komputera. Wykorzystany zostanie program netcat.exe. Program w oryginale stworzony został dla Linuxa, skorzystamy z jego wersji windowsowej. Netcat jest programem typu szwajcarscy scyzoryk - to rodzaj wielofunkcyjnego narzędzia, którego zakres zastosowania ograniczony jest jedynie przez inwencje użytkownika. Na oficjalnej stronie projektu znajduje się skromny opis zastosowania tego programu - "netcat to narzędzie służące do wysyłania danych protokołem tekstowym". Program może działać w dwóch trybach - nadawania lub nasłuchiwania na deklarowanym porcie, może używać do komunikacji zarówno TCP jak i UDP. Program uruchamia się z linii komend, np. polecenie nc -l -p 80 uruchomi program netcat w trybie nasłuchiwania na porcie 80 (http). Odbierany tekst będzie wyświetlany w okienku command. Po uruchomieniu przeglądarki i odwołaniu do http://localhost/ w oknie konsoli zostanie wyprowadzony tekst np. taki (dokładna zawartość zależy od przeglądarki)
GET / HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; pl) Opera 8.5 Host: localhost:8080 Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: pl,en;q=0.9 Accept-Charset: iso-8859-2, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 Connection: Keep-Alive, TE TE: deflate, gzip, chunked, identity, trailers W równie łatwy sposób można śledzić komunikacje innych protokołów. Zakończenie pracy programu można uzyskać ustawiając time-out kluczem w lub poprzez kombinacje klawiszy CTRL+C w okienku cmd programu. Programu można użyć do transmisji plików. W tym celu na komputerze, który będzie pełnił role nadawcy wydaje się polecenie: nc -l -p 7777 < /home/unknown/plik.txt ( klucze: -l tryb nasłuchiwania, - p 7777 program będzie nasłuchiwał na porcie 7777, < oznacza to the net ). Ktokolwiek nawiaze teraz połaczenie na port 7777 do tego zostanie wysłany zbiór plik.txt czy chce czy nie chce. Następnie na komputerze odbierającym wysyłającym dane wydaje się polecenie: nc 123.123.123.123 7777 > plik.txt (klucze: 123.123.123.123 7777 adres ip i nr portu drugiego komputera, > oznacza from the net ) Zadanie do wykonania. Należy dane, jakie będą podlegać analizie zrzucic za pomocą komend systemowych do zbioru na drugim komputerze. Na dysku optycznym znajduje się program nc.exe. Na komputerze, na który będzie wykonywany zrzut należy utworzyć kartotekę, następnie utworzyć w notatniku skrypt o następującej treści: @echo off :start x:nc -l -p 1234 -w 3 >>dane_nc.txt echo =========================== >>dane_nc.txt goto start
i skrypt ten zapisać do utworzonej kartoteki jako mojskrypt.bat. (nazwa oczywiście może być inna ale rozszerzenie nie.) wstawiając zamiast x: odpowiedni identyfikator, pod którym na komputerze widziany jest dysk optyczny. >> oznacza, że każde dane otrzymane na wymieniony port będą dopisywane do zbioru dane_nc.txt. Zidentyfikować adres IP, jaki posiada komputer, na który będą transmitowane dane Otworzyć okienko cmd i uruchomić przygotowany skrypt wpisując komendę mojskrypt. Uruchomić okienko cmd na komputerze podlegającym analizie. identyfikacja daty i czasu. Należy użyć komendy.: echo %date% %time% a jej wynik skierować do programu netcat. Komenda będzie miała postać echo %date% %time% x:nc xxx.xxx.xxx.xxx 1234 gdzie x jest identyfikatorem dysku z programem netcat a xxx.xxx..xxx.xxx adresem IP komputera odbierającego dane. W kolejnych wierszach zrucać należy kolejne informacje: o O uruchomionych zadaniach tasklist x:nc xxx.xxx.xxx.xxx 1234 tasklist /m x:nc xxx.xxx.xxx.xxx 1234 tasklist /svc x:nc xxx.xxx.xxx.xxx 1234 o O stanie połączeń sieciowych netstat nao x:nc xxx.xxx.xxx.xxx 1234 o Zawartości tablicy ARP Arp a x:nc xxx.xxx.xxx.xxx 1234 o Sprawdzenie, do jakich komputerów odwoływano się używając ich nazw domenowych ipconfig /displaydns x:nc xxx.xxx.xxx.xxx 1234 o Analiza zawartości tablicy routingu pozwala na sprawdzenie, czy dane wysyłane do sieci są przesyłane na adres na jaki powinny a sprawdzenie w tablicy Arp, czy adresowi IP bramy odpowiada właściwy adres MAC na sprawdzenie, czy jakiś komputer w sieci lokalnej nie podszywa się pod bramę. route print x:nc xxx.xxx.xxx.xxx 1234 o Sprawdzenie danych o użytkowniku pozwala na uzyskanie m. in. informacji, kiedy logował się po raz ostatni.
net user %username% x:nc xxx.xxx.xxx.xxx 1234 o Danych z rejestru ze wskazaniem odpowiedniej gałęzi Reg query HKU /s x:nc xxx.xxx.xxx.xxx 1234 o Informacje o działaniu systemu systeminfo x:nc xxx.xxx.xxx.xxx 1234 Powiedzmy, że to wystarczy. Należy przerwać działanie skryptu na komputerze gromadzącym dane (klawisz CTRL+C). Zasadą jest by pozyskiwać z komputera uruchomionego te dane, których uzyskanie inna drogą jest utrudnione lub niemożliwe. Zawsze należy używać takich narzędzi, które w jak najmniejszym stopniu wpływają na dane, jakie znajdują się na komputerze. Zgromadzony materiał powinien być zabezpieczony suma kontrolną by mieć pewność, że nie został zmieniony po jego zapisaniu. Na dysku optycznym znajduje się program md5summer. Należy go użyć. o Należy wybrać kartotekę, w której znajduje się zbiór, dla którego generować będziemy sumę kontrolną
o Następnie należy wybrać zbiór i użyć przycisku Add. Zostanie wygenerowana suma MD5, którą należy zapisać do zbioru. Przejrzeć zapisane dane. Postarać się powiązać widoczne połączenia sieciowe z zadaniami na badanym komputerze (powiązanie poprzez identyfikator procesu PID) Sprawozdanie należy wykonać w postaci protokołu z czynności, czyli zawierać informacje kiedy, gdzie, kto wykonywal i w czyjej obecności, dane identyfikujące komputer, okoliczności,użyte narzędzia, spis wykonanych czynności (po kolei i dokładnie) i dane identyfikujące materiał dowodowy (nośnik, wartości sum kontrolnych) Część B. Zabezpieczenie śladów nieulotnych. wkrótce.