snort sprawozdanie
TRANSCRIPT
5/12/2018 Snort sprawozdanie - slidepdf.com
http://slidepdf.com/reader/full/snort-sprawozdanie 1/10
WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI IINFORMATYKI
INSTYTUT AUTOMATYKI I INFORMATYKIKIERUNEK INFORMATYKA
STUDIA STACJONARNE I STOPNIA
PRZEDMIOT : LABORATORIUM OCHRONY DANYCH W SIECIACH ISYSTEMACH KOMPUTEROWYCH
ZADANIE nr 5
TEMAT: Windows'owy, sieciowy system wykrywania włamań SNORTzintegrowany z systemem baz danych i narzędziem do analizy informacji
NAZWISKO: Dzięgielewski IMIĘ: Lech
TERMIN WYKONANIA: 08-01-2011 TERMIN ODDANIA: :10-01-2011
5/12/2018 Snort sprawozdanie - slidepdf.com
http://slidepdf.com/reader/full/snort-sprawozdanie 2/10
Prowadzący:Dr inż. Grzegorz Bialic
2
5/12/2018 Snort sprawozdanie - slidepdf.com
http://slidepdf.com/reader/full/snort-sprawozdanie 3/10
1. Teoria
1.1 Snort
Snort – sieciowy system wykrywania włamań, dostępny na wolnej licencji.
Snort posiada szeroki zakres mechanizmów detekcji ataków orazumożliwia, w czasie rzeczywistym, dokonywanie analizy ruchu irejestrowanie pakietów przechodzących przez sieci oparte na protokołachIP/TCP/UDP/ICMP. Potrafi przeprowadzać analizę strumieni pakietów,wyszukiwać i dopasowywać podejrzane treści, a także wykrywać wieleataków i anomalii, takich jak przepełnienia bufora, skanowanie portówtypu stealth, ataki na usługi WWW, SMB, próby wykrywania systemuoperacyjnego i wiele innych. SNORT może działać, jako niezależny sniffer,rejestrator pakietów lub system IDS. Żaden z tych trybów nie ma przewagi
nad pozostałymi. Wyjątkiem może być tylko rejestrator pakietów, którypotrafi zapisywać pakiety na dysku w zorganizowanej strukturzekatalogów. Jeżeli odpowiednio skonfigurujemy plik snort.conf, spowodujeto, że system będzie rejestrował tylko pakiety dopasowane do regułokreślonych w tym właśnie pliku.
1.2 SQL Injection
SQL Injection (z ang., dosłownie zastrzyk SQL) – luka w zabezpieczeniachaplikacji internetowych polegająca na nieodpowiednim filtrowaniu lubniedostatecznym typowaniu i późniejszym wykonaniu danychprzesyłanych w postaci zapytań SQL do bazy danych. Podatne są na niegosystemy złożone z warstwy programistycznej (przykładowo skrypt w PHP,ASP, JSP itp.) dynamicznie generującej zapytania do bazy danych (MySQL,PostgreSQL itp.). Wynika on zwykle z braku doświadczenia lub wyobraźniprogramisty.
3
5/12/2018 Snort sprawozdanie - slidepdf.com
http://slidepdf.com/reader/full/snort-sprawozdanie 4/10
2. Wykonanie zadania
Do wykonania ćwiczenia użyłem programu VMWare Workstation. Pokonfiguracji maszyny i instalacji systemu Windows XP Professionalprzechodzę do instalacji wymaganych programów.
2.1 Snort
Rys. 1 – Interfejsy sieciowe w Snort.
Rys. 2 – Wynik pingowania w Snort.
4
5/12/2018 Snort sprawozdanie - slidepdf.com
http://slidepdf.com/reader/full/snort-sprawozdanie 5/10
2.2 PHP, MySql, Apache, Pear
Do instalacji powyższych programów wykorzystałem jedną znajpopularniejszych dystrybucji – XAMPP.
Rys. 3 – Instalacja dystrybucjii XAMPP.
Rys. 4 – Panel kontrolny XAMPP.
5
5/12/2018 Snort sprawozdanie - slidepdf.com
http://slidepdf.com/reader/full/snort-sprawozdanie 6/10
Rys. 5 – Strona przedstawiająca stan usług w XAMPP.
2.3 Tworzenie i konfiguracja baz SQL
Następnie stworzyłem i skonfigurowałem bazęMySQL dla BASE.
Rys. 6 – Tworzenie bazy w MySql.
6
5/12/2018 Snort sprawozdanie - slidepdf.com
http://slidepdf.com/reader/full/snort-sprawozdanie 7/10
Rys. 7 – Nadawanie przywilejów bazie.
2.4 Aktualizacja i instalacja dodatkowych paczek PEAR
Do zainstalowania paczek ImageColor i ImageGraph wymagana byłanowsza wersja PEAR niż ta, domyślnie instalowana przez XAMPP.
Poleceniem ‘pear upgrade pear’ przeprowadziłem aktualizację. Następnie
dograłem dodatkowe paczki.
Rys. 8 – Aktualizacja i dogrywanie dodatkowych paczek.
7
5/12/2018 Snort sprawozdanie - slidepdf.com
http://slidepdf.com/reader/full/snort-sprawozdanie 8/10
2.5 SQL Injection
Utowrzyłem bazę testdb i użytkownika testdbuser. Wypełniłem bazęwykorzystując skrypt baza.sql.
C:\Snort\php>mysql -u root -pEnter password: ***Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 12Server version: 5.5.8 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database testdb;Query OK, 1 row affected (0.00 sec)
mysql> GRANT CREATE,DELETE,DROP,SELECT,INSERT,UPDATE on testdb.* totestdbuser@localhost identified by 'testdbuser';Query OK, 0 rows affected (0.00 sec)
mysql> connect testdbConnection id: 13Current database: testdb
mysql> source c:/baza.sqlQuery OK, 0 rows affected (0.19 sec)
Query OK, 4 rows affected (0.14 sec)Records: 4 Duplicates: 0 Warnings: 0
Uruchomienie programu exploit.exe wymagało instalacji środowiska java.
C:\>exploit.exe localhost magda magok!
Odpowiedč serwera:null
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/st rict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /><title>skrypt podatny na sql injection</title></head><body>
Has│o zosta│o zmienione u┐ytkownikowi o imieniu Magda </body></html>
2.6 Uzyskanie numeru ID użytkownika Magda
8
5/12/2018 Snort sprawozdanie - slidepdf.com
http://slidepdf.com/reader/full/snort-sprawozdanie 9/10
Alby uzyskać numer id użytkownika magda wystarczyło w polu usernamewpisać następującą linijkę:
magda' union select (SELECT id FROM users WHERE username='magda') #
A w pozostałe pola cokolwiek, ponieważ przy pustym którymkolwiek poluskrypt nie wykona się.
Spowodowało to, że zapytanie skierowane do bazy danych zamiastwyglądać tak:
UPDATE users SET password=PASSWORD('".$newpassword."') WHERE username='".$username."' AND password=PASSWORD('".$password."')";
Wyglądało tak:
UPDATE users SET password=PASSWORD('".a."') WHERE username='magda' union select(SELECT id FROM users WHERE username='magda') # ."' AND password=PASSWORD('".$password."')";
Część zapytania po # nie wykonałą się, ponieważ oznacza on konieczapytania. W efekcie otrzymałem następujący wynik:
Rys. 9 – Wynik zapytania. 3 na końcu to id użytkownika magda.
2.7 Dodanie zasady identyfikującej ataki przez programexploit.exe
Z analizy pakietów w programie wireshark wywnioskować można, żeexploit łączy się z naszym komputerem poprzez protokół TCP a dopieropóźniej przez protokół HTTP (port 80) wysyła odpowiednio spreparowanezapytanie. Exploit łączy się z plikiem sqlincjection.php.
alert tcp $EXTERNAL_NET any -> $HOME_NET 80 (msg: "sqlinjection.php -> exploit.jar";content:"/sqlinjection.php"; sid:1000000; classtype:web-application-attack;
Powyższą regułę zapisałem, jako exploit.rules i umieściłem w folderze…/snort/rules
9
5/12/2018 Snort sprawozdanie - slidepdf.com
http://slidepdf.com/reader/full/snort-sprawozdanie 10/10
Do pliku …/snort/etc/snort.conf dopisać musiałem następującą linijkę, abypoinformować snorta o nowej regule:
include $RULE_PATH/exploit.rules
W bazie danych pojawił się wpis (oglądany za pomocą skryptu base):
Rys. 10 – Wpis w BASE.
10