r04 t naprawde fajne to o p, Poradniki i tutoriale hackingu
[ Pobierz całość w formacie PDF ]
Rozdział 4
Porty standardowe oraz związane
z nimi usługi
Podejrzewam, że po przeczytaniu Rozdziału 1. oraz Rozdziału 3. zaczynasz myśleć, mówić, a może nawet
zachowywać się jak haker. Najwyższy więc czas, by zastosować zdobytą wiedzę dla poprawienia
bezpieczeństwa własnej sieci. W części tej przyjrzymy się dokładniej mechanizmom powodującym, że porty
standardowe oraz odpowiadające im usługi są tak wrażliwe na różnego rodzaju ataki. Następnie, w rozdziale 5.,
poznasz oprogramowanie, technikę, oraz wiedzę używaną przez hakerów i im podobnych.
Przegląd portów
Porty wejścia-wyjścia są kanałami, przez które przepływają dane pomiędzy różnorodnymi urządzeniami i
procesorem. Hakerzy poszukują otwartych, lub „nasłuchujących”, a tym samym podatnych na atak portów, aby
następnie wykorzystać je do swoich celów. Narzędzia, takie jak np. skanery portów (opisane dokładniej w
rozdziale 5.) pozwalają w krótkim czasie przeszukać wszystkie z ponad 65 000 portów komputera.
Poszukiwania te skupiają się jednak głównie na pierwszych 1024 portach nazywanych również
portami
standardowymi
. Porty te zarezerwowane są dla usług systemowych, z tego też powodu połączenia wychodzące
realizowane są poprzez porty o numeracji wyższej niż 1023. Oznacza to również, że wszystkie pakiety
przychodzące poprzez porty ponad 1023. są odpowiedzią na wewnętrzne żądania.
Skanowanie portów
polega na zebraniu informacji o otwartych, półotwartych oraz zamkniętych portach
komputera. Program tego typu wysyła do każdego przeszukiwanego portu zapytanie o jego status. Komputer,
nie mając żadnych dodatkowych informacji, automatycznie wysyła żądaną odpowiedź. Ofiara skanowania
portów, bez żadnych dodatkowych kroków, prawdopodobnie nigdy się o tym nie dowie. W paru kolejnych
punktach skupię się na opisaniu najbardziej znanych portów standardowych wraz z odpowiadającymi im
usługami i lukami przez nie powodowanymi. Przybliżę też podstawowe techniki wykorzystujące zdobytą
wiedzę.
Wiele portów uważanych jest za wystarczająco bezpieczne, by pominąć je w niniejszym opracowaniu.
Zajmiemy się więc jedynie tymi, które mogą stanowić prawdziwe zagrożenie dla bezpieczeństwa systemu.
Porty TCP oraz UDP
Aby połączenie pomiędzy dwoma komputerami mogło dojść do skutku, strona pragnąca nawiązać połączenie
musi znać numer portu gospodarza do którego powinna się połączyć. Z tego powodu powstała specjalna lista
(opracowana przez IANA
a dostępna w RFC1700 oraz pod adresem
ftp://ftp.isi.edu/inotes/iana/assignments
)
wiążąca porty standardowe i odpowiadające im usługi lub protokoły internetowe. Z każdym portem można się
komunikować na wiele różnych sposobów nazywanych
protokołami
. Istnieją dwa szczególnie powszechne
1
IANA — Internet Assigned Numbers Authority — jest centralnym koordynatorem przydzielającym unikalne wartości
liczbowe związane z protokołami internetowymi.
protokoły internetowe — TCP oraz UDP (opisane odpowiednio w RFC793 i RFC768).
Należy pamiętać o tym, że połączenie przy pomocy protokołu TCP jest realizowane w trzech stopniach
pozwalających na dokładne zsynchronizowanie strumienia pakietów wysyłanych przez obie strony. Taki sposób
postępowania pozwala otrzymać pewny, stabilny,
zorientowany na połączenie
kanał informacji. Odmienną
strategię wykorzystuje protokół UDP. Nie inicjuje się tutaj połączenia, nie ma też pewności, że datagramy będą
przychodzić we właściwej kolejności. Wynikiem takiego postępowania jest szybki,
zorientowany na transmisję
kanał informacji.
Tabele 4.1 oraz 4.2 zawierają skróconą listę portów standardowych, odpowiednio TCP i UDP, wraz z
usługami z nimi związanymi (pełna lista znajduje się w Dodatku C na końcu tej książki).
Tabela 4.1. Standardowe porty TCP oraz usługi z nimi związane
Numer portu
Usługa TCP
Numer portu
Usługa TCP
7
echo
115
sftp
9
discard
117
path
11
systat
119
nntp
13
daytime
135
loc-serv
15
netstat
139
nbsession
17
qotd
144
news
19
chargen
158
tcprepo
20
FTP-data
170
print-srv
21
FTP
175
vmnet
23
telnet
400
vmnet0
25
SMTP
512
exec
37
time
513
login
42
name
514
shell
43
whois
515
printer
53
domain
520
efs
57
mtp
526
temp
77
rje
530
courier
79
finger
531
conference
80
http
532
netnews
87
link
540
uucp
95
supdup
543
klogin
101
hostnames
544
kshell
102
iso-tsap
556
remotefs
103
dictionary
600
garcon
104
X400-snd
601
maitrd
105
csnet-ns
602
busboy
109
pop2
751
kerberos
110
pop3
752
kerberos-mast
111
portmap
754
krb_prop
113
auth
888
erlogin
Tabela 4.2. Standardowe porty UDP oraz usługi z nimi związane
Numer portu
Usługa UDP
Numer portu
Usługa UDP
7
echo
514
syslog
9
discard
515
printer
13
daytime
517
talk
17
qotd
518
ntalk
19
chargen
520
route
37
time
525
timed
39
rip
531
rvd-control
42
name
533
netwall
43
whois
550
new-rwho
53
dns
560
rmonitor
67
bootp
561
monitor
69
tftp
700
acctmaster
111
portmap
701
acctslave
123
ntp
702
acct
137
nbname
703
acctlogin
138
nbdatagram
704
acctprinter
153
sgmp
705
acctinfo
161
snmp
706
acctslave2
162
snmp-trap
707
acctdisk
315
load
750
kerberos
500
sytek
751
kerberos_mast
512
biff
752
passwd_server
513
who
753
userreg_serve
Luki w bezpieczeństwie związane z portami standardowymi
Na potrzeby książki opisy portów i usług zostaną przedstawione z punktu widzenia hakera. Taka konstrukcja
opisów ma za zadanie uświadomić, jakie szanse ma osoba postronna na przełamanie zabezpieczeń i na dostanie
się do naszego systemu, lub jego uszkodzenie.
Numer portu: 7
Usługa: echo
Port ten wykorzystywany jest do analizowania bieżącej kondycji połączenia internetowego. Zadaniem usługi
jest wysyłanie do nadawcy wszelkich otrzymanych od niego pakietów
Programem wykorzystującym jej
właściwości jest PING (Packet InterNet Groper). Podstawowy problem dotyczący tego portu związany jest z
1
Dokładniejsze informacje na ten temat znajdują się w RFC792
niektórymi systemami operacyjnymi, które dopuszczają przetwarzanie pakietów o nieprawidłowych rozmiarach.
Najbardziej znanym sposobem wykorzystania tej luki jest wysłanie do portu ofiary pojedynczego pakietu o
rozmiarach przekraczających 65 536 bajtów podzielonego na wiele fragmentów. System operacyjny ofiary nie
może oczywiście przetworzyć częściowo otrzymanego pakietu, oczekuje więc na pozostałą część. Jeżeli
przydzielony jest statyczny bufor pakietu, powoduje to jego przepełnienie, co w efekcie może doprowadzić do
zawieszenia działania systemu, lub ponownego jego uruchomienia. Taktyka taka bardzo często nazywana jest
„Ping of Death”. Innym poważnym zagrożeniem jest tzw. „Ping Flooding”. Sposób ten polega na masowym
wysyłaniu w kierunku portu ofiary pakietów PING. Ponieważ usługa odpowiada na każdy pakiet, może to
spowodować wyczerpanie zasobów systemowych i sieciowych (np. odcięcie komputera od Internetu, lub
spowolnienie jego pracy).
Przykład działania programu PING pokazany jest na rys. 4.1.
C:\>ping task.gda.pl
Badanie task.gda.pl [153.19.253.204] z użyciem 32 bajtów danych
Odpowiedź z 153.19.253.204: bajtów=32 czas=762ms TTL=247
Odpowiedź z 153.19.253.204: bajtów=32 czas=763ms TTL=247
Odpowiedź z 153.19.253.204: bajtów=32 czas=693ms TTL=247
Odpowiedź z 153.19.253.204: bajtów=32 czas=704ms TTL=247
Statystyka badania dla 153.19.253.204:
Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0 (0% utraconych),
Szacunkowy czas błądzenia pakietów w milisekundach:
Minimum = 693ms, Maksimum = 763ms, Średnia = 730ms
Rys. 4.1 Przykład działania programu ping.
Numer portu: 11
Usługa: systat
Usługa ta została zaprojektowana do udzielania informacji o bieżących procesach. Przy jej pomocy można więc
otrzymać informacje np. na temat zainstalowanego w systemie oprogramowania, czy też zalogowanych
użytkowników.
Numer portu: 15
Usługa: netstat
Podobnie do usługi połączonej z portem 11, netstat podaje informacje dotyczące pracy systemu operacyjnego,
takie jak np. informacje o aktywnych połączeniach, obsługiwanych protokołach, i wiele innych równie
przydatnych z punktu widzenia atakującego informacji. Typowy wynik otrzymany z tego portu dla
standardowego systemu Windows przedstawiony jest na rys. 4.2.
Protokół Adres lokalny Obcy adres Stan
TCP pavilion:135 PAVILION:0 NASŁUCHIWANIE
TCP pavilion:1025 PAVILION:0 NASŁUCHIWANIE
TCP pavilion:1035 PAVILION:0 NASŁUCHIWANIE
TCP pavilion:1074 PAVILION:0 NASŁUCHIWANIE
TCP pavilion:138 PAVILION:0 NASŁUCHIWANIE
TCP pavilion:nbsession PAVILION:0 NASŁUCHIWANIE
TCP pavilion:137 PAVILION:0 NASŁUCHIWANIE
UDP pavilion:1035 *:*
UDP pavilion:1074 *:*
UDP pavilion:nbname *:*
UDP pavilion:nbdatagram *:*
Rys. 4.2 Informacje zdobyte przy pomocy portu usługi netstat dla standardowego systemu Windows.
Numer portu: 19
Usługa: chargen
Port numer 19, oraz związana z nim usługa chargen wydają się być zupełnie nieszkodliwe. Jak sama nazwa
wskazuje, działanie tej usługi polega na ciągłym generowaniu strumienia znaków przydatnym podczas
testowania połączenia internetowego. Niestety, usługa ta jest podatna na atak przy pomocy bezpośredniego
połączenia telnetowego. Jeśli wygenerowany w ten sposób strumień znaków zostanie skierowany np. na port 53
(DNS — Domain Name Service) może to spowodować błąd ochrony w usłudze DNS, a w konsekwencji utratę
zdolności systemu do tłumaczenia nazw symolicznych na numery IP i odwrotnie.
Numery portów: 20, 21
Usługi (w kolejności): FTP-data, FTP
Usługi powiązane z portami 20 i 21 stanowią podstawę działania protokołu FTP (File Transfer Protocol). Aby
odczytać, lub zapisać plik na serwerze FTP, musi zostać nawiązane równoległe połączenie służące do transmisji
danych. Tak więc w typowej sytuacji port 21 służy jedynie do wysyłania rozkazów, oraz odbierania odpowiedzi,
podczas gdy rzeczywista transmisja danych odbywa się poprzez port 20. Protokół FTP umożliwia między
innymi na kopiowanie, usuwanie i zmianę plików oraz katalogów. W Rozdziale 5. omówione zostaną dokładniej
luki w bezpieczeństwie powodowane przez serwery FTP, oraz techniki pozwalające atakującemu
niepostrzeżenie kontrolować system plików ofiary.
Numer portu: 23
Usługa: telnet
Usługa właściwa dla portu 23 jest powszechnie znanym protokołem służącym do zdalnego logowania. Telnet
działając jako emulator terminalu pozwala na logowanie się, oraz używanie interpretera poleceń na zdalnym
systemie. W zależności od prekonfigurowanych ustawień bezpieczeństwa, serwer ten może pozwalać, i z regóły
pozwala na kontrolę dostępu do systemu operacyjnego. Niestety, wykonanie specjalnie zaprojektowanych
skryptów przygotowanych dla konkretnych wersji serwera potrafi doprowadzić do przepełnienia bufora, co w
niektórych wypadkach doprowadza do uzyskania pełnego dostępu do systemu. Przykładem może być program
TigerBreach Penetrator (rys. 4.3), który jest częścią pakietu TigerSuite (pakiet ten zamieszczony został na CD
dołączonym do książki, a jego dokładniejszy opis znajduje się Rozdziale 12.).
Rys. 4.3 TigerBreach Penetrator w akcji.
Numer portu: 25
Usługa: SMTP
Protokół SMTP (Simple Mail Transfer Protocol) jest głównie używany do przenoszenia poczty elektronicznej.
Standardowo serwery SMTP oczekują na przychodzącą pocztę na porcie 25, zaś odebraną pocztę kopiują do
odpowiednich skrzynek pocztowych. Jeśli wiadomość nie może zostać dostarczona, nadawcy zwracany jest
komunikat błędu zawierający początkowy fragment wiadomości. Po uzyskaniu połączenia poprzez protokół
TCP, komputer wysyłający pocztę (klient) czeka na komputer odbierający pocztę (serwer), aby wysłać wiersz
tekstu identyfikujący klienta oraz informujący, że klient jest gotowy wysłać pocztę. W mechaniźmie tym sumy
kontrolne nie są wymagane do nawiązania kontaktu z powodu wewnętrznych mechanizmów kontrolujących
przepływ danych w protokole TCP. Kiedy poczta zostanie w całości odebrana przez serwer, połączenie zostaje
zwolnione. Podstawowymi problememi dotyczącymi wymiany poczty elektronicznej są m.in. „mail bombing”
1
„mail bombing” — atak typu DoS (Denial of Service) wykonywany poprzez wysyłanie na pojedyńczy serwer lub skrzynkę
pocztową dużej ilości poczty w celu ograniczenia dostępności serwera, lub przepełnienia skrzynki pocztowej.
[ Pobierz całość w formacie PDF ]