Spr lab1


Bezpieczeństwo systemów informacyjnych

Numer i temat ćwiczenia:

1. Łamanie słabych haseł

Skład grupy:

1. Łukasz Szałas

2. Kamil Bogacz

3. Piotr Kasprzyk

4. Natalia Nieścior

5. Ewelina Skoczylas

6. Tomasz Truty

Data i godzina

wykonania ćwiczenia:

29.03.2011 17:00

  1. Celem ćwiczeń wykonanych w ramach laboratorium jest pokazanie zagrożeń jakie wynikają ze stosowania słabych haseł przez użytkowników systemów informatycznych oraz poznanie sposobów łamania haseł, których znajomość ma istotny wpływ na umiejętność zabezpieczenia się przed włamaniami. Wykorzystywanym programem jest John the Ripper - jeden z najlepszych i najbardziej znany program służący do łamania haseł.

  1. Łamanie haseł w trybie SINGLE CRACK

Tryb single crack pozwala na sprawdzenie czy użytkownik ma ustawione bardzo proste hasło. Hasła, które będziemy próbowali złamać są zapisane w pliku hasła.txt w następującym formacie:

Login : Password : t1 : t2 : t3 : t4 : t5 : t6 :

gdzie t1-t6 są datami związanymi ze zmianą I wygaśnięciem hasła. Password jest hasłem w postaci zaszyfrowanej. Wyniki działania programu uruchomionego za pomocą komendy ./john -single hasla.txt jest następujący:

Login

Hasło

kamil

michal

wojtek

lukasz

marcin

mariusz

Kamil

michal

99999

LUKASZ

marcin1

1mariusz

Jak widać są to bardzo proste i bardzo słabe hasła, łatwe do odgadnięcia. Reguły łamania hasła w tym trybie są zdefiniowane w pliku john.conf. Operują one głównie na loginie użytkownika, który jest poddawany rozmaitym operacjom takim jak np. zmiana liter na wielkie bądź na małe, dodanie cyfry, kropki lub jakiegoś znaku specjalnego na końcu bądź na początku loginu itp. Sprawdzane są również formaty odpowiadające datom, do loginu dodawane są ciągi cyfr. Pozwala to na odgadnięcie większości prostych haseł, którym autor nie poświęcił zbyt wiele uwagi. Hasła złamane przez program nie są bezpieczne, ponieważ powstały w wyniku przeprowadzenia mało skomplikowanego przekształcenia loginu.

Każde złamane hasło jest zapisywane w pliku john.pot. Ma to na celu uniknięcie sytuacji, w której następowałaby próba odgadnięcia uprzednio złamanego hasła. Po wykasowaniu odpowiednich linijek z pliku john.pot program ponownie próbuje złamać hasło, ponieważ nie posiada go w swojej bazie.

  1. Łamanie haseł w trybie WORDLIST

Tryb wordlist pozwala na łamanie haseł słownikowych - czyli takich, które są wyrazami pochodzącymi ze słownika. Za pomocą specjalnych reguł wyrazy te również mogą być modyfikowane. Kluczowa jest więc znajomość zainteresowań użytkownika, którego hasło próbujemy złamać.

Próba złamania haseł z pliku t_hasla.txt za pomocą słowników asteroid.txt, shakespe.txt oraz tolkien.txt dała następujące rezultaty:

Login

Hasło

t1

t2

t3

t4

t5

t6

demetrius

pippin

hobbiton

Kallisto

uruk-hai

1mariusz

Na podstawie otrzymanych wyników można stwierdzić, że użytkownik t1 jest fanem Szekspira, użytkownik t4 interesuje się astronomią i asteroidami, a użytkownicy t2, t3, t5 i t6 zaczytują się w powieściach Tolkiena. Ustawianie jako hasła nazwisk ulubionych twórców literackich, sportowców czy nazw własnych jest częstą praktyką i niestety nie jest to zbyt bezpieczne. Każda osoba znająca zainteresowania ofiary może przy pomocy słownika odgadnąć hasło.

Oczywiście hasło może bazować na wyrazie pochodzącym ze słownika, lecz może być poddane pewnej modyfikacji. W programie John the Ripper istnieje specjalna opcja -rules, pozwalająca na odgadnięcie haseł zmodyfikowanych wg pewnych popularnych reguł. Próba złamania haseł z pliku r_hasla.txt wykorzystując tę właśnie opcję spowodowała odgadnięcie następujących haseł:

Login

Hasło

r1

r2

r3

r4

r5

r6

r7

Romeo!

RomeoRomeo

?romeo

oemoR

ROMEO

romeing

romeO

Wszystkie złamane hasła opierają się na słowie pochodzącym ze słownika shakespe.txt (romeo), lecz są w pewien sposób zmodyfikowane. Może to być dodanie wykrzyknika, znaku zapytania, zamiana pierwszej lub ostatniej litery na wielką, napisanie wyrazu od tyłu, zapisanie całego słowa wielkimi literami lub wpisanie słowa dwukrotnie. Program John the Ripper zawiera bardzo dużą ilość mniej lub bardziej popularnych reguł pozwalających na złamanie hasła. Dodatowo użytkownicy programu mogą tworzyć swoje własne reguły.

Wiedząc, że użytkownicy często stosują następujące metody zapisu haseł:

- zamiast litery `a' zapisują znak `@';

- zamiast litery `o' zapisują cyfrę `0';

- zamiast litery `c' zapisują znak `(`;

- dodają na końcu hasła liczbę `2007' lub `07';

- dodają przed hasłem kropkę;

możemy stworzyć własne reguły i spróbować złamać hasła z pliku s_hasla.txt. Reguły dodane w pliku john.conf wyglądają następująco:

sa@ - zamiana każdego `a' na `@'

so0 - zamiana każdego `o' na `0'

sc( - zamiana każdego `c' na `(`

$2M$0M$0M$7 - dodanie `2007' na końcu wyrazu

$0M$7 - dodanie `07' na końcu wyrazu

^. - dodanie kropki przed wyrazem

Hasła, które udało się odczytać wyglądają następująco:

Login

Hasło

s1

s2

s3

capulet2007

l@dym@cbeth

.montague

Złamane hasła zostały stworzone na podstawie wyżej wymienionych reguł. Do słowa słownikowego „capulet” dodano `2007', w „ladymacbeth” każda litera `a' została zastąpiona przez `@', natomiast przed słowem „montague” postawiono kropkę.

Jeżeli wiadomo, że użytkownik s4 zastosował jednocześnie wszystkie reguły opisane wyżej, można spróbować odgadnąć jego hasło. Stworzone reguły wyglądają następująco:

sa@Mso0Msc(M$2M$0M$0M$7 - wszystko z dodaniem `2007'

sa@Mso0Msc(M$0M$7 - wszystko z dodaniem `07'

Odgadnięte hasło użytkownika s4 to r0sen(r@ntz07 bazujące na słowie rosencrantz.

Jeżeli wiadomo, że użytkownik s5 zastępuje literę `s' swojego hasła pewnym znakiem specjalnym, można spróbować domyślić się jaki to znak i na tej podstawie odgadnąć hasło. Znakiem, który najbardziej przypomina literę `s' jest `$'. Tworzymy wiec odpowiednią regułę:

ss$ - zamienia każdą literę `s' na znak `$'

Odkryte hasło to guilden$tern.

  1. Łamanie haseł w trybie INCREMENTAL

Tryb incremental łamie hasła na zasadzie ataku brutalnego czyli sprawdza wszystkie dostępne kombinacje. Czas złamania hasła tym sposobem zależy od wielu czynników, jednak podstawowym z nich jest jego długość oraz ilość dostępnych znaków.

Hasła w pliku n_hasla.txt składają się z samych cyfr (0-9) natomiast w pliku p_hasla.txt z samych liter (a-z). Numer użytkownika odpowiada liczbie znaków w haśle. W zależności od długości hasła, próby ich złamania przedstawiają się następująco:

Login

Hasło

Czas złamania

n1

n2

n3

n4

n5

n6

n7

5

28

735

2914

27148

154297

8452825

0,232 s

0,209 s

0,250 s

0,959 s

5,062 s

1 m 41,035 s

13 m 50,469 s

Próba złamania haseł dłuższych niż 7 cyfr jest bardzo czasochłonne i przewidywania wskazują, że zajęłoby to około godziny czasu. Można przyjąć, że hasła mające 9 i więcej cyfr są bezpieczne.

Login

Hasło

Czas złamania

p1

p2

p3

p4

p5

g

le

raw

ftba

acdge

0,24 s

0,286 s

1,237 s

18,932 s

4 m 0,238 s

Złamanie hasła składającego się z określonej ilości liter jest dłuższe niż hasła złożonego z takiej samej ilości cyfr ze względu na fakt, że istnieje o wiele więcej kombinacji (cyfr jest 10 liter 26). Złamanie hasła składającego się z 6 liter trwało bardzo długo. Zgodnie z szacunkami powinno potrwać około godziny. Można więc założyć, że hasła składające się z 7 i więcej cyfr są bezpieczne.

Każdą próbę złamania hasła charakteryzuje parametr c/s. Jest to ilość prób złamania hasła na sekundę. Znając wartość tego parametru oraz czas złamania każdego hasła można stwierdzić, które hasła zostały złamane przed sprawdzeniem 50% możliwości.

Ilość cyfr

Ilość możliwości

c/s

Ilość sprawdzonych możliwości

1

2

3

4

5

6

7

10

100

1000

10000

100000

1000000

10000000

10

341

70

5221

6697

6919

6829

23%

71%

1%

50%

33%

69%

56%

Wykres przedstawiający czas łamania hasła w zależności od ilości cyfr jest przedstawiony poniżej:

0x01 graphic

Na niebiesko zaznaczono czas łąmania hasła podczas ćwiczenia, na czerwono czas sprawdzenia 50% mozliwości.

Ponieważ początkowe wartości różnią się nieznacznie i ich odczytanie z powyższego wykresu jest utrudnione poniżej przedstawiony jest wykres dla pierwszych 5 wartości:

0x01 graphic

Takie same statystyki dla haseł składających się z liter:

Ilość liter

Ilość możliwości

c/s

Ilość sprawdzonych możliwości

1

2

3

4

5

26

676

17576

456976

11881376

90

1175

4808

6330

6514

83%

49%

33%

26%

13%

Poniżej wykres przedstawiający czas łamania hasła w zależności od ilości liter w haśle:

0x01 graphic

Na niebiesko zaznaczono czas łąmania hasła podczas ćwiczenia, na czerwono czas sprawdzenia 50% mozliwości.

Poniżej wykres dla pierwszych 4 wartości:

0x01 graphic

  1. Tworzenie własnych użytkowników i haseł.

W systemie Linux utworzone zostały 4 konta użytkowników z następującymi loginami i hasłami:

Login

Hasło

adam

maciej

lukasz

pawel

!adam!

.@d@m333?

Jsc!@#123

H0bbit!

Przeprowadzone próby złamania haseł w trybie single i wordlist wykazały, że 3 z tych 4 haseł można było szybko złamać. Jedynym hasłem, którego programowi John the Ripper nie udało się złamać było hasło użytkownika lukasz.

  1. Łamanie haseł w systemie Windows

W celu przetestowania programu w systemie Windows utworzono w nim 4 konta użytkowników z następującymi loginami i hasłami:

Login

Hasło

Kasia009

agata

magdalena

agnieszkaa

900aisak

Zh0ng0l0vivh!?

123456

alrlijwtd^

W tym przypadku dostęp do skrótów haseł uzyskany został za pomocą programu SAMInside. Program John the Ripper nie poradził sobie tylko z hasłem użytkownika agnieszkaa.

  1. Wnioski

Przeprowadzone ćwiczenia miały na celu pokazanie jak szybko można złamać słabe hasła, nie wykorzystując do tego celu ani specjalnych narzędzi ani specjalnych umiejętności. Przez pojęcie „słabe hasło” rozumiane jest hasło, które w bardzo łatwy sposób można odgadnąć, jak np. imię, nazwisko, pseudonim czy data urodzenia. Nawet lekka modyfikacja hasła nie daje gwarancji bezpieczeństwa, ponieważ programy takie jak John the Ripper potrafią sprawdzić kilka tysięcy kombinacji na sekundę, więc z dużym prawdopodobieństwem odgadną hasła lekko zmodyfikowane. Aby zapewnić sobie bezpieczeństwo nie należy także stosować haseł będących wyrazami ze słownika. Największe bezpieczeństwo dają hasła, które są przypadkowymi kombinacjami liter, cyfr i znaków specjalnych.



Wyszukiwarka

Podobne podstrony:
spr lab1
Spr Lab1 JAVA Kamil Roman
Spr 1, AGH IMIR Mechanika i budowa maszyn, III ROK, Elementy automatyki przemysłowej, EAP lab1
Lab1 Spr 1
lab1 spr
Dawid Klupś spr-cw3, ETI, III Sem, Ocis, Lab1
lab1-spr, studia, stare, New Folder (3), sem3, Eie, sem4
Hydraulika, spr hydraulika lab1, Paweł Panek
Spr 1, AGH IMIR Mechanika i budowa maszyn, III ROK, Elementy automatyki przemysłowej, EAP lab1
Tbwcz lab1 spr
Spr[1] adm i uznanie adm
08 03 KPGO Spr z realizacji
17 Rozp Min Zdr w spr szk czyn Nieznany
lab1 12 id 258878 Nieznany
lab1 VHDL
bioinformatyczneBD lab1
Ćw lab1 Gleb wilg gleby OŚ
Architekrura Systemów Lab1

więcej podobnych podstron