Laboratorium podstaw sieci komputerowych Zadanie 5

Transkrypt

Laboratorium podstaw sieci komputerowych Zadanie 5
150875
numer indeksu
Grzegorz Graczyk
imie i nazwisko
Data
Kierunek
Rok akademicki
Semestr
Grupa dziekańska
Grupa laboratoryjna
2010-05-05
Informatyka
2009/10
4
2
15
Laboratorium
podstaw sieci komputerowych
Zadanie 5
Wstęp
FTP (ang. File Transfer Protocol – Protokół Transferu Plików) – protokół typu klient-serwer,
który umożliwia przesyłanie plików z serwera i na serwer poprzez sieć TCP/IP. Protokół ten
jest zdefiniowany przez IETF w RFC 959.
Protokół ten działa w oparciu o dwa połączenia. Pierwsze połączenie - utrzymywane przez
cały czas jest połączeniem dla poleceń i wykorzystuje protokół telnet. Drugie połączenie jest
wykorzystywane do przesyłania danych i jest inicjowane wtedy, gdy jest potrzebne. Ponieważ
dane są przesyłane za pomocą osobnego strumienia nie jest potrzebny specjalny protokół - są
one przesyłane bajt po bajcie za pomocą strumienia TCP.
FTP oferuje dwa tryby inicjowania połączenia danych: aktywny - w którym serwer inicjuje
połączenie oraz pasywny - w którym robi to klient.
Serwer FTP działa zazwyczaj na porcie 21 oraz w przypadku trybu aktywnego wykorzystuje
port 20. W przypadku trybu pasywnego porty dobierane są losowo spośród wartości wyższych
niż 1024.
W czasie analizy zostaną przedstawione oba tryby pracy: pobranie listy plików w trybie
aktywnym oraz wysłanie pliku w trybie pasywnym. Sama komunikacja w celu ograniczenia
liczby nieinteresujących pakietów została przeprowadzona z użyciem programów telnet i nc.
Aby w analizie uniknąć powtórzeń część ramek będzie pozostawiona bez komentarza, zaś
część zostanie pominięta. Pominięte zostaną ramki zawierające wyłącznie potwierdzenia. Szczegółowy komentarz pominiemy w przypadku poszczególnych faz nawiązywania połączeń dla strumienia danych.
Analiza
W czasie analizy zostało wykrytych 61 pakietów:
No .
Time
Source
Destination
Protocol Info
Broadcast
ARP
Who has
1 0.000000
IntelCor 9c : f5 :8d
192.168.0.1?
Tell 192.168.0.4
2 0.001263
N e t g e a r 0 2 : 0 7 : ba
IntelCor 9c : f5 :8d
ARP
192.168.0.1 is
a t 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba
3 0.001279
192.168.0.4
192.168.0.1
DNS
Standard query A
stud . i c s . p . lodz . pl
4 0.024780
192.168.0.1
192.168.0.4
DNS
Standard query
response A 212.51.220.231
Questions : 1
5 0.025322
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ SYN
] Seq=0 Win=5840 Len=0 MSS=1460 TSV=5382533 TSER=0 WS=6
6 0.048203
212.51.220.231
192.168.0.4
TCP
f t p > 52502 [ SYN
, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=148866435 TSER=5382533 WS=7
7 0.048263
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=1 Ack=1 Win=5888 Len=0 TSV=5382538 TSER=148866435
8 0.074563
212.51.220.231
192.168.0.4
FTP
Response : 220 : :
f f f f : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 FTP s e r v e r r e a d y
9 0.074619
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=1 Ack=45 Win=5888 Len=0 TSV=5382545 TSER=148866443
10 5 . 3 7 8 9 5 1
192.168.0.4
212.51.220.231
FTP
Request : u s e r
grzesiu
11 5 . 4 0 2 6 9 2
212.51.220.231
192.168.0.4
TCP
f t p > 52502 [ACK
] Seq=45 Ack=15 Win=5888 Len=0 TSV=148868040 TSER=5383871
12 5 . 4 1 0 0 1 0
212.51.220.231
192.168.0.4
FTP
Response : 331
Password r e q u i r e d f o r g r z e s i u
13 5 . 4 1 0 0 6 0
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=15 Ack=80 Win=5888 Len=0 TSV=5383879 TSER=148868044
14 9 . 4 3 2 0 6 2
192.168.0.4
212.51.220.231
FTP
Request : p a s s
∗∗∗∗∗∗∗∗∗∗
15 9 . 4 9 2 5 4 7
212.51.220.231
192.168.0.4
TCP
f t p > 52502 [ACK
] Seq=80 Ack=32 Win=5888 Len=0 TSV=148869269 TSER=5384885
PSK: Grzegorz Graczyk
2 / 16
No .
Time
Source
Destination
Protocol Info
16 1 2 . 8 1 2 5 0 0
212.51.220.231
192.168.0.4
FTP
Response : 230
User g r z e s i u l o g g e d i n
17 1 2 . 8 1 2 5 5 7
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=32 Ack=108 Win=5888 Len=0 TSV=5385730 TSER=148870265
18 2 0 . 2 9 6 0 9 5
192.168.0.4
212.51.220.231
FTP
Request : p o r t
83 ,10 ,157 ,172 ,10 ,0
19 2 0 . 3 1 9 2 7 1
212.51.220.231
192.168.0.4
TCP
f t p > 52502 [ACK
] Seq=108 Ack=57 Win=5888 Len=0 TSV=148872515 TSER=5387601
20 2 0 . 3 1 9 6 1 0
212.51.220.231
192.168.0.4
FTP
Response : 200
PORT command s u c c e s s f u l
21 2 0 . 3 1 9 6 4 0
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=57 Ack=137 Win=5888 Len=0 TSV=5387606 TSER=148872515
22 2 4 . 7 4 3 0 1 4
192.168.0.4
212.51.220.231
FTP
Request : l i s t
23 2 4 . 7 6 7 0 7 6
212.51.220.231
192.168.0.4
TCP
f t p −data >
l a b r a t [ SYN ] Seq=0 Win=5840 Len=0 MSS=1460 TSV=148873851 TSER=0 WS=7
24 2 4 . 7 6 7 1 2 4
192.168.0.4
212.51.220.231
TCP
labrat > ftp−
data [ SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=5388718 TSER=148873851
WS=6
25 2 4 . 7 8 9 5 7 7
212.51.220.231
192.168.0.4
TCP
f t p −data >
l a b r a t [ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=148873858 TSER=5388718
26 2 4 . 7 9 0 9 4 9
212.51.220.231
192.168.0.4
FTP
Response : 150
Opening ASCII mode data c o n n e c t i o n f o r f i l e l i s t
27 2 4 . 7 9 0 9 9 4
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=63 Ack=191 Win=5888 Len=0 TSV=5388724 TSER=148873858
28 2 5 . 0 0 3 0 7 7
212.51.220.231
192.168.0.4
FTP−DATA FTP Data : 1033
bytes
29 2 5 . 0 0 3 1 3 6
192.168.0.4
212.51.220.231
TCP
labrat > ftp−
data [ACK] Seq=1 Ack=1034 Win=7872 Len=0 TSV=5388777 TSER=148873921
30 2 5 . 0 0 8 2 0 7
212.51.220.231
192.168.0.4
FTP−DATA FTP Data : 1054
bytes
No .
Time
Source
Destination
Protocol Info
31 2 5 . 0 0 8 2 5 2
192.168.0.4
212.51.220.231
TCP
labrat > ftp−
data [ACK] Seq=1 Ack=2089 Win=9984 Len=0 TSV=5388779 TSER=148873921
32 2 5 . 0 0 8 3 7 8
192.168.0.4
212.51.220.231
TCP
labrat > ftp−
data [ FIN , ACK] Seq=1 Ack=2089 Win=9984 Len=0 TSV=5388779 TSER=148873921
33 2 5 . 0 3 2 8 8 6
212.51.220.231
192.168.0.4
TCP
f t p −data >
l a b r a t [ACK] Seq =2089 Ack=2 Win=5888 Len=0 TSV=148873931 TSER=5388779
34 2 5 . 0 3 3 8 5 8
212.51.220.231
192.168.0.4
FTP
Response : 226
Transfer complete
35 2 5 . 0 3 3 8 9 4
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=63 Ack=214 Win=5888 Len=0 TSV=5388785 TSER=148873931
36 3 1 . 1 6 0 6 7 3
192.168.0.4
212.51.220.231
FTP
Request : pasv
37 3 1 . 1 8 5 8 9 7
212.51.220.231
192.168.0.4
FTP
Response : 227
E n t e r i n g P a s s i v e Mode ( 2 1 2 , 5 1 , 2 2 0 , 2 3 1 , 2 1 5 , 1 4 6 ) .
38 3 1 . 1 8 5 9 4 0
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=69 Ack=267 Win=5888 Len=0 TSV=5390323 TSER=148875776
39 3 8 . 9 6 3 0 7 0
192.168.0.4
212.51.220.231
FTP
Request : s t o r
f i l e . txt
40 3 9 . 0 2 3 9 4 7
212.51.220.231
192.168.0.4
TCP
f t p > 52502 [ACK
] Seq=267 Ack=84 Win=5888 Len=0 TSV=148878129 TSER=5392267
41 4 4 . 0 2 0 1 1 2
N e t g e a r 0 2 : 0 7 : ba
IntelCor 9c : f5 :8d
ARP
Who has
192.168.0.4?
Tell 192.168.0.1
42 4 4 . 0 2 0 1 4 7
IntelCor 9c : f5 :8d
N e t g e a r 0 2 : 0 7 : ba
ARP
192.168.0.4 is
at 00:1 f : 3 b : 9 c : f5 : 8 d
43 6 6 . 7 0 6 6 6 1
192.168.0.4
212.51.220.231
TCP
33139 > 55186 [
SYN ] Seq=0 Win=5840 Len=0 MSS=1460 TSV=5399203 TSER=0 WS=6
44 6 6 . 7 2 9 8 4 7
212.51.220.231
192.168.0.4
TCP
55186 > 33139 [
SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=148886440 TSER=5399203 WS=7
45 6 6 . 7 2 9 9 0 8
192.168.0.4
212.51.220.231
TCP
33139 > 55186 [
ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=5399209 TSER=148886440
PSK: Grzegorz Graczyk
3 / 16
No .
Time
Source
Destination
Protocol Info
46 6 6 . 7 5 3 7 5 0
212.51.220.231
192.168.0.4
FTP
Response : 150
Opening ASCII mode data c o n n e c t i o n f o r f i l e . t x t
47 6 6 . 7 5 3 7 9 8
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=84 Ack=320 Win=5888 Len=0 TSV=5399215 TSER=148886448
48 7 1 . 2 0 9 1 3 7
192.168.0.4
212.51.220.231
FTP−DATA FTP Data : 13
bytes
49 7 1 . 2 3 2 4 4 9
212.51.220.231
192.168.0.4
TCP
55186 > 33139 [
ACK] Seq=1 Ack=14 Win=5888 Len=0 TSV=148887792 TSER=5400329
50 7 5 . 2 7 6 5 7 6
192.168.0.4
212.51.220.231
TCP
33139 > 55186 [
FIN , ACK] Seq=14 Ack=1 Win=5888 Len=0 TSV=5401346 TSER=148887792
51 7 5 . 3 0 0 2 8 9
212.51.220.231
192.168.0.4
TCP
55186 > 33139 [
FIN , ACK] Seq=1 Ack=15 Win=5888 Len=0 TSV=148889012 TSER=5401346
52 7 5 . 3 0 0 3 4 3
192.168.0.4
212.51.220.231
TCP
33139 > 55186 [
ACK] Seq=15 Ack=2 Win=5888 Len=0 TSV=5401352 TSER=148889012
53 7 5 . 6 5 2 9 3 3
212.51.220.231
192.168.0.4
FTP
Response : 226
Transfer complete
54 7 5 . 6 5 2 9 7 5
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=84 Ack=343 Win=5888 Len=0 TSV=5401440 TSER=148889116
55 7 8 . 7 6 5 4 2 3
192.168.0.4
212.51.220.231
FTP
Request : q u i t
56 7 8 . 7 8 9 3 1 8
212.51.220.231
192.168.0.4
TCP
f t p > 52502 [ACK
] Seq=343 Ack=90 Win=5888 Len=0 TSV=148890058 TSER=5402218
57 7 8 . 7 8 9 7 4 5
212.51.220.231
192.168.0.4
FTP
Response : 221
Goodbye .
58 7 8 . 7 8 9 7 7 7
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ACK
] Seq=90 Ack=357 Win=5888 Len=0 TSV=5402224 TSER=148890058
59 7 8 . 8 0 8 5 0 0
212.51.220.231
192.168.0.4
TCP
f t p > 52502 [ FIN
, ACK] Seq=357 Ack=90 Win=5888 Len=0 TSV=148890064 TSER=5402218
60 7 8 . 8 0 8 6 5 8
192.168.0.4
212.51.220.231
TCP
52502 > f t p [ FIN
, ACK] Seq=90 Ack=358 Win=5888 Len=0 TSV=5402229 TSER=148890064
61 7 8 . 8 3 0 8 6 1
212.51.220.231
192.168.0.4
TCP
f t p > 52502 [ACK
] Seq=358 Ack=91 Win=5888 Len=0 TSV=148890070 TSER=5402229
Zapytanie ARP
Ramka 1
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : B r o a d c a s t ( f f : f f : f f : f f : f f :
ff )
Destination : Broadcast ( f f : f f : f f : f f : f f : f f )
Source : I n t e l C o r 9 c : f5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d)
Type : ARP ( 0 x0806 )
Address R e s o l u t i o n P r o t o c o l ( r e q u e s t )
Hardware t y p e : E t h e r n e t ( 0 x0001 )
P r o t o c o l t y p e : IP ( 0 x0800 )
Hardware s i z e : 6
Protocol s i z e : 4
Opcode : r e q u e s t ( 0 x0001 )
Se nd er MAC a d d r e s s : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d )
Se nd er IP a d d r e s s : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
Ta rge t MAC a d d r e s s : 0 0 : 0 0 : 0 0 0 0 : 0 0 : 0 0 ( 0 0 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0 )
Ta rge t IP a d d r e s s : 1 9 2 . 1 6 8 . 0 . 1 ( 1 9 2 . 1 6 8 . 0 . 1 )
Przed wykonaniem ćwiczenia zostało wyczyszczone cache arp. Dzięki temu system operacyjny przed skorzystaniem z serwera DNS oraz bramy domyślnej (które się pokrywają) musi na
podstawie adresu IP 192.168.0.1 ustalić adres MAC. Ponieważ zapytanie jest wysyłane na adres
rozgłoszeniowy wszystkie komputery w domenie rozgłoszeniowej poznają nasz adres MAC (choć
jest on im już znany, gdyż wyczyszczone zostało jedynie cache arp na maszynie lokalnej).
PSK: Grzegorz Graczyk
4 / 16
Ramka 2
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
Destination : IntelCor 9c : f5 :8d (00:1 f :3b:9 c : f5 :8d)
S o u r c e : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba )
Type : ARP ( 0 x0806 )
Address R e s o l u t i o n P r o t o c o l ( r e p l y )
Hardware t y p e : E t h e r n e t ( 0 x0001 )
P r o t o c o l t y p e : IP ( 0 x0800 )
Hardware s i z e : 6
Protocol s i z e : 4
Opcode : r e p l y ( 0 x0002 )
Se nd er MAC a d d r e s s : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba )
Se nd er IP a d d r e s s : 1 9 2 . 1 6 8 . 0 . 1 ( 1 9 2 . 1 6 8 . 0 . 1 )
Ta rge t MAC a d d r e s s : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d )
Ta rge t IP a d d r e s s : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
Host o szukanym adresie IP odpowiada nam dzięki czemu uzyskujemy jego adres MAC. W
pakiecie z odpowiedzią adresy MAC się powtarzają - występują zarówno w nagłówku ethernetowym jak i w pakiecie ARP.
Zapytanie DNS
Ramka 3
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 1 9 2 . 1 6 8 . 0 . 1 ( 1 9 2 . 1 6 8 . 0 . 1 )
User Datagram P r o t o c o l , S r c Port : 45509 ( 4 5 5 0 9 ) , Dst Port : domain ( 5 3 )
Domain Name System ( query )
T r a n s a c t i o n ID : 0 xd20e
F l a g s : 0 x0100 ( Standard query )
Questions : 1
Answer RRs : 0
A u t h o r i t y RRs : 0
A d d i t i o n a l RRs : 0
Queries
s t u d . i c s . p . l o d z . p l : t y p e A, c l a s s IN
Wysyłane jest zapytanie DNS o host docelowy. Jest ono skierowane pod adres bramy domyślnej - routera na którym znajduje się między innymi serwer DNS. Jedyne czego potrzebujemy to
adres IP naszego hosta dlatego jedynym zapytaniem jest zapytanie typu A.
Ramka 4
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 1 ( 1 9 2 . 1 6 8 . 0 . 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
User Datagram P r o t o c o l , S r c Port : domain ( 5 3 ) , Dst Port : 45509 ( 4 5 5 0 9 )
Domain Name System ( r e s p o n s e )
T r a n s a c t i o n ID : 0 xd20e
F l a g s : 0 x8180 ( Standard query r e s p o n s e , No e r r o r )
Questions : 1
Answer RRs : 1
A u t h o r i t y RRs : 0
A d d i t i o n a l RRs : 0
Queries
s t u d . i c s . p . l o d z . p l : t y p e A, c l a s s IN
Answers
s t u d . i c s . p . l o d z . p l : t y p e A, c l a s s IN , addr 2 1 2 . 5 1 . 2 2 0 . 2 3 1
Time t o l i v e : 18 hours , 33 minutes , 16 s e c o n d s
Odpowiedź na zapytanie DNS z poprzedniej ramki. Zawiera najważniejszą informację - adres
IP. Ponadto posiada istotne z punktu widzenia architektury DNS. Pole TTL określa jak długo
PSK: Grzegorz Graczyk
5 / 16
wynik zapytania może być cachowany. Po upływie określonego czasu należy powtórzyć zapytanie
DNS.
Nawiązanie połączenia dla poleceń
Ramka 5
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 0 , Len :
0
S o u r c e p o r t : 52502 ( 5 2 5 0 2 )
Destination port : ftp (21)
Sequence number : 0
( r e l a t i v e s e q u e n c e number )
Header l e n g t h : 40 b y t e s
F l a g s : 0 x02 (SYN)
Window s i z e : 5840
Checksum : 0 x6500 [ c o r r e c t ]
O pt i on s : ( 2 0 b y t e s )
Połączenie FTP jest nawiązywane za pomocą protokołu TCP. Pierwszym krokiem nawiązania połączenia jest wysłanie pakietu TCP z ustawioną flagą SYN oraz wybranym losowo
numerem sekwencyjnym. Program wireshark wylicza względne odległości między tymi numerami ułatwiając śledzenie połączenia - możemy jednak bez trudu odczytać jego prawdziwą wartość
z heksadecymalnego zrzutu pakietu. Wartością tą okazuje się być 0xca7e22ab.
Ramka 6
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 0 , Ack :
1 , Len : 0
Source port : f t p (21)
D e s t i n a t i o n p o r t : 52502 ( 5 2 5 0 2 )
Sequence number : 0
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 1
( r e l a t i v e ack number )
Header l e n g t h : 40 b y t e s
F l a g s : 0 x12 (SYN, ACK)
Window s i z e : 5792
Checksum : 0 x3280 [ c o r r e c t ]
O pt i on s : ( 2 0 b y t e s )
Serwer przyjmuje połączenie odpowiadając pakietem z ustawionymi flagami SYN oraz ACK.
Numer potwierdzenia w rzeczywistości oznacza numer bajtu na który serwer od tej pory oczekuje. Numery potwierdzeń podobnie jak numery sekwencyjne są wyliczone przez program wireshark.
Ramka 7
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 1 , Ack :
1 , Len : 0
S o u r c e p o r t : 52502 ( 5 2 5 0 2 )
Destination port : ftp (21)
Sequence number : 1
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 1
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x10 (ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x778a [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
PSK: Grzegorz Graczyk
6 / 16
Klient potwierdza gotowość do odbierania pakietów odsyłając pakiet z flagą ACK oraz numerem potwierdzenia ustawionym na 1 - oznaczającym dokładnie to samo co w wypadku poprzedniej ramki.
Powitanie serwera oraz potwierdzenie TCP
Ramka 8
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 1 , Ack :
1 , Len : 44
Source port : f t p (21)
D e s t i n a t i o n p o r t : 52502 ( 5 2 5 0 2 )
Sequence number : 1
( r e l a t i v e s e q u e n c e number )
[ Next s e q u e n c e number : 45
( r e l a t i v e s e q u e n c e number ) ]
Acknowledgement number : 1
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x18 (PSH, ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x4568 [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
[ SEQ/ACK a n a l y s i s ]
F i l e T r a n s f e r P r o t o c o l (FTP)
220 : : f f f f : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 FTP s e r v e r r e a d y \ r \n
Wiadomość powitalna serwera. Zawiera kod oczekiwania na logowanie 220 oraz wiadomość
tekstową do tego komunikatu. Podobnie jak większość wysłanych pakietów TCP pakiet ten jest
opatrzony flagą PSH, która wymusza odesłanie bufora do warstwy aplikacji nawet jeśli nie został
on jeszcze wypełniony.
Warto zwrócić uwagę na ciąg \r \n (13,10). Jest to windowsowe zakończenie linii, które
pod samym windowsem oznaczane jest jedynie jako \r \n co prowadzi często do problemów
ze zgodnością. Z tego powodu protokół telnet na którym opiera się linia poleceń protokołu ftp
wymusza użycie ciągu \n jako znaku nowej linii.
Ramka 9
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 1 , Ack :
4 5 , Len : 0
S o u r c e p o r t : 52502 ( 5 2 5 0 2 )
Destination port : ftp (21)
Sequence number : 1
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 45
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x10 (ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x182a [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
Klient wysyła potwierdzenie odbioru 44 bajtów wysyłając flagę ACK i ustawiając numer
potwierdzenia na 45.
PSK: Grzegorz Graczyk
7 / 16
Autoryzacja FTP
Ramka 10
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 1 , Ack :
4 5 , Len : 14
F i l e T r a n s f e r P r o t o c o l (FTP)
u s e r g r z e s i u \ r \n
Logowanie rozpoczyna się od podania loginu w postaci jawnej za pomocą polecenia USER.
Ramka 11
No .
Time
Source
Destination
Protocol Info
11 5 . 4 0 2 6 9 2
212.51.220.231
192.168.0.4
TCP
f t p > 52502 [ACK
] Seq=45 Ack=15 Win=5888 Len=0 TSV=148868040 TSER=5383871
Serwer wysyła potwierdzenie odbioru. Pakiety zawierające jedynie potwierdzenia będziemy
pomijać w późniejszej analizie komunikacji (ich zestawienie jest widoczne w liście wszystkich
pakietów).
Ramka 12
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 4 5 , Ack :
1 5 , Len : 35
F i l e T r a n s f e r P r o t o c o l (FTP)
331 Password r e q u i r e d f o r g r z e s i u \ r \n
Odpowiedzią serwera jest kod 331 - jak możemy przeczytać w komunikacie tekstowym oznacza on, iż logowanie wymaga podania hasła.
Ramka 14
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 1 5 , Ack :
8 0 , Len : 17
F i l e T r a n s f e r P r o t o c o l (FTP)
p a s s ∗∗∗∗∗∗∗∗∗∗\ r \n
Zgodnie z zaleceniem serwera wysyłamy hasło za pomocą komendy PASS.
Ramka 16
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 8 0 , Ack :
3 2 , Len : 28
F i l e T r a n s f e r P r o t o c o l (FTP)
230 User g r z e s i u l o g g e d i n \ r \n
Odpowiedzią jest tym razem kod 230 oznaczający iż udało nam się zalogować.
PSK: Grzegorz Graczyk
8 / 16
Informacja o otwartym porcie
Ramka 18
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 3 2 , Ack :
1 0 8 , Len : 25
F i l e T r a n s f e r P r o t o c o l (FTP)
p o r t 8 3 , 1 0 , 1 5 7 , 1 7 2 , 1 0 , 0 \ r \n
Ponieważ pracujemy domyślnie w trybie aktywnym musimy poinformować serwer o adresie
oraz porcie z jakim ma być nawiązane połączenie przesyłające dane. Wykonujemy to za pomocą
komendy PORT. Pierwsze 4 argumenty odpowiadają adresowi IP, pozostałe dwa numerowi portu
(pierwszy oktet jest bardziej znaczący).
Ramka 20
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 1 0 8 , Ack
: 5 7 , Len : 29
F i l e T r a n s f e r P r o t o c o l (FTP)
200 PORT command s u c c e s s f u l \ r \n
Serwer informuje nas o pozytywnym wyniku operacji. W wypadku serwera studenckiego stud
do niepowodzenia może doprowadzić między innymi podanie adresu ip innego niż nasz aktualny
adres.
Rządanie listy plików
Ramka 22
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 5 7 , Ack :
1 3 7 , Len : 6
F i l e T r a n s f e r P r o t o c o l (FTP)
l i s t \ r \n
Komenda LIST powoduje wysłanie listy plików w aktualnym katalogu. Ponieważ lista może
być obszerna jest wysyłana ona kanałem danych.
Ramka 26
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 1 3 7 , Ack
: 6 3 , Len : 54
F i l e T r a n s f e r P r o t o c o l (FTP)
150 Opening ASCII mode data c o n n e c t i o n f o r f i l e l i s t \ r \n
Odpowiedź na komendę LIST przychodzi dopiero po otrzymaniu przez serwer potwierdzenia
(SYN,ACK) nawiązania połączenia dla danych. Aby zachować spójny ciąg pytanie-odpowiedź
został przedstawiony wcześniej.
PSK: Grzegorz Graczyk
9 / 16
Nawiązanie połączenia dla danych
Nawiązanie połączenia przebiega identycznie jak w wypadku każdego połączenia - choć w
przeciwieństwie do ramek 5-7 w tej sytuacji to serwer nawiązuje połączenie z nami. Z punktu
widzenia klienta jest to sytuacja dość rzadka, choć jak widać możliwa i występująca. Jednak ze
względu na jej rzadkość i potencjalne zagrożenie jakie może ze sobą nieść jest blokowana przez
firewalle co często uniemożliwia stosowanie trybu aktywnego.
Warto wspomnieć jeszcze o przypadkowym wybraniu portu 2560, który jest przypisany do
protokołu labrat. Wireshark automatycznie zamienia numery portów na nazwy protokołów stąd wystąpienie tej niespodziewanej nazwy.
Ramka 23
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p −data ( 2 0 ) , Dst Port : l a b r a t ( 2 5 6 0 ) , Seq : 0 ,
Len : 0
S o u r c e p o r t : f t p −data ( 2 0 )
Destination port : labrat (2560)
Sequence number : 0
( r e l a t i v e s e q u e n c e number )
Header l e n g t h : 40 b y t e s
F l a g s : 0 x02 (SYN)
Window s i z e : 5840
Checksum : 0 xad6b [ c o r r e c t ]
Ramka 24
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : l a b r a t ( 2 5 6 0 ) , Dst Port : f t p −data ( 2 0 ) , Seq : 0 ,
Ack : 1 , Len : 0
Source port : l a b r a t (2560)
D e s t i n a t i o n p o r t : f t p −data ( 2 0 )
Sequence number : 0
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 1
( r e l a t i v e ack number )
Header l e n g t h : 40 b y t e s
F l a g s : 0 x12 (SYN, ACK)
Window s i z e : 5792
Checksum : 0 x1e65 [ c o r r e c t ]
O pt i on s : ( 2 0 b y t e s )
Ramka 25
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p −data ( 2 0 ) , Dst Port : l a b r a t ( 2 5 6 0 ) , Seq : 1 ,
Ack : 1 , Len : 0
S o u r c e p o r t : f t p −data ( 2 0 )
Destination port : labrat (2560)
Sequence number : 1
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 1
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x10 (ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x639b [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
PSK: Grzegorz Graczyk
10 / 16
Dane
Ramka 28
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p −data ( 2 0 ) , Dst Port : l a b r a t ( 2 5 6 0 ) , Seq : 1 ,
Ack : 1 , Len : 1033
S o u r c e p o r t : f t p −data ( 2 0 )
Destination port : labrat (2560)
Sequence number : 1
( r e l a t i v e s e q u e n c e number )
[ Next s e q u e n c e number : 1034
( r e l a t i v e s e q u e n c e number ) ]
Acknowledgement number : 1
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x18 (PSH, ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x f 3 5 6 [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
FTP Data
Dane ze względu na rozmiar są przesyłane w dwóch porcjach. Istotny jest natomiast fakt,
iż nie jest wykorzystana fragmentacja TCP. Bloki danych należą do osobnych pakietów TCP.
Fragmentacja została przeniesiona do warstwy aplikacji - choć tak na prawde została całkowicie wyeliminowana, gdyż warstwa aplikacji użytego protokołu nie posługuje się pakietami, ale
strumieniami.
Ramka 30
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p −data ( 2 0 ) , Dst Port : l a b r a t ( 2 5 6 0 ) , Seq :
1 0 3 4 , Ack : 1 , Len : 1054
S o u r c e p o r t : f t p −data ( 2 0 )
Destination port : labrat (2560)
Sequence number : 1034
( r e l a t i v e s e q u e n c e number )
[ Next s e q u e n c e number : 2088
( r e l a t i v e s e q u e n c e number ) ]
Acknowledgement number : 1
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x19 ( FIN , PSH, ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x6a95 [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
FTP Data
Drugi pakiet zawiera odrazu ustawioną flagę FIN, co oznacza, że po otrzymaniu tego pakietu
klient będzie kontynuował procedurę zamykania połączenia.
Ramka 31
No .
Time
Source
Destination
Protocol Info
31 2 5 . 0 0 8 2 5 2
192.168.0.4
212.51.220.231
TCP
labrat > ftp−
data [ACK] Seq=1 Ack=2089 Win=9984 Len=0 TSV=5388779 TSER=148873921
Przed zamknięciem połączenia wyśle jednak standardowe potwierdzenie.
PSK: Grzegorz Graczyk
11 / 16
Zakończenie przesyłania danych danych
Ramka 32
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : l a b r a t ( 2 5 6 0 ) , Dst Port : f t p −data ( 2 0 ) , Seq : 1 ,
Ack : 2 0 8 9 , Len : 0
Source port : l a b r a t (2560)
D e s t i n a t i o n p o r t : f t p −data ( 2 0 )
Sequence number : 1
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 2089
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x11 ( FIN , ACK)
Window s i z e : 9984 ( s c a l e d )
Checksum : 0 x5a88 [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
Ramka 33
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p −data ( 2 0 ) , Dst Port : l a b r a t ( 2 5 6 0 ) , Seq :
2 0 8 9 , Ack : 2 , Len : 0
S o u r c e p o r t : f t p −data ( 2 0 )
Destination port : labrat (2560)
Sequence number : 2089
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 2
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x10 (ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x 5 a e c [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
Powyższe pakiety to kontynuacja procedury zamknięcia połączenia.
Ramka 34
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 1 9 1 , Ack
: 6 3 , Len : 23
F i l e T r a n s f e r P r o t o c o l (FTP)
226 T r a n s f e r c o m p l e t e \ r \n
Po zakończeniu przysyłu pliku jesteśmy informowani o jego powodzeniu. Jesteśmy gotowi na
wykonanie kolejnej operacji.
Włączenie trybu pasywnego
Ramka 36
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 6 3 , Ack :
2 1 4 , Len : 6
F i l e T r a n s f e r P r o t o c o l (FTP)
pasv \ r \n
Za pomocą komendy PASV przełączamy się do trybu pasywnego. Nie wymaga ona żadnych
argumentów, gdyż serwer nie będzie potrzebował o nas żadnych informacji w celu nawiązania
połączenia.
PSK: Grzegorz Graczyk
12 / 16
Ramka 37
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 2 1 4 , Ack
: 6 9 , Len : 53
F i l e T r a n s f e r P r o t o c o l (FTP)
227 E n t e r i n g P a s s i v e Mode ( 2 1 2 , 5 1 , 2 2 0 , 2 3 1 , 2 1 5 , 1 4 6 ) . \ r \n
W odpowiedzi dostajemy parametry połączenia w identycznej postaci jakiej używaliśmy w
poleceniu PORT. Dzięki losowo wybranemu portowi serwer nawet obsługując kilka połączeń
FTP jednocześnie rozpozna nasze połączenie i powiąże strumień TCP z odpowiednim plikiem.
Rządanie uploadu pliku
Ramka 39
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 6 9 , Ack :
2 6 7 , Len : 15
F i l e T r a n s f e r P r o t o c o l (FTP)
s t o r f i l e . t x t \ r \n
Tym razem spróbujemy wgrać plik na serwer używając komendy STOR. Argumentem jest
oczywiście nazwa pliku docelowego.
Ramka 46
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 2 6 7 , Ack
: 8 4 , Len : 53
F i l e T r a n s f e r P r o t o c o l (FTP)
150 Opening ASCII mode data c o n n e c t i o n f o r f i l e . t x t \ r \n
Podobnie jak w poprzednim wypadku sygnalizowane jest pomyślne nawiązanie połączenia.
Nawiązanie połączenia dla danych
Połączenie przebiega identycznie jak przy nawiązaniu połączenia komend - ta sama strona
inicjuje połącznie. Jedyną różnicą na tym etapie są porty.
Ramka 43
No .
Time
Source
Destination
Protocol Info
43 6 6 . 7 0 6 6 6 1
192.168.0.4
212.51.220.231
TCP
33139 > 55186 [
SYN ] Seq=0 Win=5840 Len=0 MSS=1460 TSV=5399203 TSER=0 WS=6
Ramka 44
No .
Time
Source
Destination
Protocol Info
44 6 6 . 7 2 9 8 4 7
212.51.220.231
192.168.0.4
TCP
55186 > 33139 [
SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=148886440
Ramka 45
No .
Time
Source
Destination
Protocol Info
45 6 6 . 7 2 9 9 0 8
192.168.0.4
212.51.220.231
TCP
33139 > 55186 [
ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=5399209 TSER=148886440
PSK: Grzegorz Graczyk
13 / 16
Dane
Ramka 48
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 33139 ( 3 3 1 3 9 ) , Dst Port : 55186 ( 5 5 1 8 6 ) , Seq : 1 ,
Ack : 1 , Len : 13
S o u r c e p o r t : 33139 ( 3 3 1 3 9 )
D e s t i n a t i o n p o r t : 55186 ( 5 5 1 8 6 )
Sequence number : 1
( r e l a t i v e s e q u e n c e number )
[ Next s e q u e n c e number : 14
( r e l a t i v e s e q u e n c e number ) ]
Acknowledgement number : 1
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x18 (PSH, ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 xe36b [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
FTP Data
FTP Data : H e l l o world . \ n
W wypadku tego połączenia dysponujemy ilością danych znacznie mniejszą niż w poprzednim
przypadku. Pozwala to zaobserwować iż dane przesyłane są bezpośrednio w protokole TCP.
Ramka 49
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 55186 ( 5 5 1 8 6 ) , Dst Port : 33139 ( 3 3 1 3 9 ) , Seq : 1 ,
Ack : 1 4 , Len : 0
S o u r c e p o r t : 55186 ( 5 5 1 8 6 )
D e s t i n a t i o n p o r t : 33139 ( 3 3 1 3 9 )
Sequence number : 1
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 14
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x10 (ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x5a56 [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
Zakończenie przesyłania danych danych
O ile strona inicjująca połączenie jest wybierana ze względu na używany tryb to stroną
inicjującą zakończenie jest zawsze strona wysyłająca dane. W przypadku pobierania zawartości
pliku bądź listy plików jak w 1 połączeniu będzie to serwer; w przypadku wgrywania zawartości
pliku jak w tym wypadku będzie to klient.
Ramka 50
No .
Time
Source
Destination
Protocol Info
50 7 5 . 2 7 6 5 7 6
192.168.0.4
212.51.220.231
TCP
33139 > 55186 [
FIN , ACK] Seq=14 Ack=1 Win=5888 Len=0 TSV=5401346 TSER=148887792
Ramka 51
No .
Time
Source
Destination
Protocol Info
51 7 5 . 3 0 0 2 8 9
212.51.220.231
192.168.0.4
TCP
55186 > 33139 [
FIN , ACK] Seq=1 Ack=15 Win=5888 Len=0 TSV=148889012 TSER=5401346
PSK: Grzegorz Graczyk
14 / 16
Ramka 52
No .
Time
Source
Destination
Protocol Info
52 7 5 . 3 0 0 3 4 3
192.168.0.4
212.51.220.231
TCP
33139 > 55186 [
ACK] Seq=15 Ack=2 Win=5888 Len=0 TSV=5401352 TSER=148889012
Dodatkowe połączenie zostało zamknięte.
Ramka 53
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 3 2 0 , Ack
: 8 4 , Len : 23
F i l e T r a n s f e r P r o t o c o l (FTP)
226 T r a n s f e r c o m p l e t e \ r \n
Ponownie zamknięcie strumienia danych - a zatem pomyślne przesłanie pliku jest sygnalizowane w protokole komend.
Zakończenie połączenia FTP
Ramka 55
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 8 4 , Ack :
3 4 3 , Len : 6
F i l e T r a n s f e r P r o t o c o l (FTP)
q u i t \ r \n
Aby zakończyć połączenie FTP używamy komendy QUIT. Jeśli zakończy się ona powodzeniem serwer zainicjuje zamknięcie połączenia.
Ramka 57
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 3 4 3 , Ack
: 9 0 , Len : 14
F i l e T r a n s f e r P r o t o c o l (FTP)
221 Goodbye . \ r \n
Serwer wysyła własne pożegnanie dając nam znać, że za chwile połączenie zostanie przerwane.
Ramka 59
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 3 5 7 , Ack
: 9 0 , Len : 0
Source port : f t p (21)
D e s t i n a t i o n p o r t : 52502 ( 5 2 5 0 2 )
Sequence number : 357
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 90
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x11 ( FIN , ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x6da7 [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
[ SEQ/ACK a n a l y s i s ]
PSK: Grzegorz Graczyk
15 / 16
Serwer wysyła flagę FIN sygnalizującą zamknięcie połączenia. Utrzymuje jednak połączenie
na wypadek, gdyby klient zdążył wysłać jeszcze jakieś pakiety nim otrzyma ten pakiet.
Ramka 60
E t h e r n e t I I , S r c : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b : 9 c : f 5 : 8 d ) , Dst : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f
: 3 3 : 0 2 : 0 7 : ba )
I n t e r n e t P r o t o c o l , S r c : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 ) , Dst : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : 52502 ( 5 2 5 0 2 ) , Dst Port : f t p ( 2 1 ) , Seq : 9 0 , Ack :
3 5 8 , Len : 0
S o u r c e p o r t : 52502 ( 5 2 5 0 2 )
Destination port : ftp (21)
Sequence number : 90
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 358
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x11 ( FIN , ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x6d6d [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
Klient otrzymawszy poprzedni pakiet również zamyka połączenie.
Ramka 61
E t h e r n e t I I , S r c : N e t g e a r 0 2 : 0 7 : ba ( 0 0 : 1 f : 3 3 : 0 2 : 0 7 : ba ) , Dst : I n t e l C o r 9 c : f 5 : 8 d ( 0 0 : 1 f : 3 b
:9 c : f5 :8d)
I n t e r n e t P r o t o c o l , S r c : 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ( 2 1 2 . 5 1 . 2 2 0 . 2 3 1 ) , Dst : 1 9 2 . 1 6 8 . 0 . 4 ( 1 9 2 . 1 6 8 . 0 . 4 )
T r a n s m i s s i o n C o n t r o l P r o t o c o l , S r c Port : f t p ( 2 1 ) , Dst Port : 52502 ( 5 2 5 0 2 ) , Seq : 3 5 8 , Ack
: 9 1 , Len : 0
Source port : f t p (21)
D e s t i n a t i o n p o r t : 52502 ( 5 2 5 0 2 )
Sequence number : 358
( r e l a t i v e s e q u e n c e number )
Acknowledgement number : 91
( r e l a t i v e ack number )
Header l e n g t h : 32 b y t e s
F l a g s : 0 x10 (ACK)
Window s i z e : 5888 ( s c a l e d )
Checksum : 0 x6d95 [ c o r r e c t ]
O pt i on s : ( 1 2 b y t e s )
Ostatnim krokiem zamknięcia połączenia jest wysłanie pakietu z ustawioną jedynie flagą
ACK. Dla serwera od chwili wysłania pakietu połączenie jest uznawane za w pełni zamknięte.
Bibliografia
1. Karol Krysiak, Sieci komputerowe. Kompendium., Wydanie II, Helion 2005.
2. Peter Norton, W sercu PC, Helion 2003.
3. Różne hasła z angielskiej oraz polskiej Wikipedii.
PSK: Grzegorz Graczyk
16 / 16