Duomenų srauto stebėjimas ir analizė lokaliame tinkle
Tikslai:
•susipažinti su MS Network Monitor programos, kuri skirta LAN duomenų srauto stebėjimui ir analizei, galimybėmis;
•užrašyti ir detaliai išanalizuoti bent vieną savo kompiuterio duomenų srautą Ethernet paketų lygyje paprastai duomenų kaitos sesijai.
Apie MS Network Monitor(NetMon) paketą:
Programa NetMon skirta duomenų srauto stebėjimui lokalaus tinklo segmente.
Visi duomenys perduodami Ethernet tinklu ir yra talpinami į paketus. Ethernet – pati populeriausia tinklinė architekūra. Ji išnaudoja siaurojuostine transleciją (10
MB/S).Ethernet suskaldo duome-
nis į paketus (kadrus); Tinklo magistralėje ‘vaikšto labai’ daug paketų.
Todėl turi būti nustatytas atitinkamas filtras,kuris išrenka tik tuos kurių mums reikia. Filtre nustatomas atitinkamas rišys tarp kompiuterių , nurodomi draugo (iš kurio siunčiamės duomenis ) ir to ant kurio dirbate kompiuterių adresai.
Paketas kabeliu siunčiamas iš vieno kompiuterio į kitą. Nusiūsti duomenys į konkretų kompiuterį , jis juos apdoroja ir siunčia atsakomajį paketą(atgaliniu adresu), nes pirmame pa-
kete buvo siunčiančiojo kompiuterio unikalus adresas.
Minimalus paketo ilgis 64 baitai , o kartu su tarnybine paketo dalimi –
preambule- 72 baitai
(802.3 standartas). Prembulė–nurodo kadro pradžią. Maksimalus kadras gali būti 1518 baitų .
Darbo aprašas:
Analizuojant duomenų srautą tarp kompiuterių, Ethernet paketų lygyje, buvo kopijuojamas duomenų failas iš vieno kompiuterio į kitą.Tinklo magistrale laksto labai daug paketų. Todėl norint kad duomenų būtų nedaug, buvo uždėtas filtras , kuris fiksavo tik iš draugo kompiuterio einančius paketus. Filtre nustatomas atitinkamas rišys tarp kompiuterių , nurodomi kompiuterių adresai:
|AND |
SAP/ETYPE = Any SAP or Any ETYPE
|AND |(Address Pairs) |
KTML_NT_3 < = > KTML_NT_1
|AND |(Pattern Matches) |
Šis rišys fiksavo tik paketus einančius iš draugo kompiuterio į tą kopmiuterį ant kurio aš dirbau (į abi kryptis) ir tik Ethernet paketus, nefiksuojant visų kitų rūšių paketų.
| |Kompiuterio |MAC adresas |IP adresas |
| |vardas | | |
|Draugo komp. |KTML_NT_3 |00:C0:6C:30:49:30|193.219.33.83 |
|Mano komp. |KTML_NT_1 |00:C0:6C:28:92:05|193.219.33.81 |
Nustačius filtrą, iš pagrindinio meniu ‘Capture’ paleidžiamas tinklo stebėjimas,kurio metu “pagauti” paketai rašomi į failą , pastebima tam tikra dinamika programos lange. Sustabdžius stebėjimą , sukauptą failą galima peržiūreti. Peržiūros sąsajos režime kiekvieno paketo įrašas išskleidžiamas į atskirus laukus, galima matyti paketų antraštes ir kt.
Buvo kopijuojamas failas SSS.txt, kuriame įrašyta eilutė –
“AAAAAAAAAAABBBBBBBBB
BBBBBBBBBCCCCCCCCCCCCCCC
Programa fiksavo 12 freimų.
Pirmas freimas:
|Time Src MAC Addr Dst MAC Addr Protocol Description |
|1.617 KTML_NT_1 KTML_nt_3 SMB C transact2 |
|Findfirst, File = \sss.txt |
00000: 00 C0 6C 30 49 30 00 C0 6C 28 92 05 00 92 FF FF ..l0I0..l(……
00010: 00 92 00 04 00 00 19 94 00 C0 6C 30 49 30 04 55 ……….l0I0.U
00020: 00 00 19 94 00 C0 6C 28 92 05 04 55 10 06 03 40 ……l(…U…@
00030: 05 60 EB 00 62 00 00 00 62 00 FB 00 00 01 FF 53 .`..b…b……S
00040: 4D 42 32 00 00 00 00 18 03 80 96 81 00 00 00 00 MB2………….
00050: 00 00 00 00 00 00 01 08 C0 F9 01 08 40 37 0F 1E …………@7..
00060: 00 00 00 0A 00 60 02 00 00 00 00 00 00 00 00 00 …..`……….
00070: 00 1E 00 44 00 00 00 00 00 01 00 01 00 21 00 00 …D………!..
00080: 00 00 16 00 06 00 05 00 04 01 00 00 00 00 5C 00 …………..\.
00090: 73 00 73 00 73 00 2E 00 74 00 78 00 74 00 00 00 s.s.s…t.x.t…
Pirmoje eilutėje, pirmus 6 baitus kadre sudaro gavėjo adresas, o sekančius
6 baitus siuntėjo adresas. Sekantys 2 baitai – Ethernet tipas(skaičius visada didesnis už maksimalų kadro duomenų ilgį baitais). Freimo ilgis 160 baitai. Taigi kopijuojant failą pirmame freime mūsų kompiuteris pirmiausia pasiuntė užklausimą kitam kompiuteriui ar toks failas yra: “transact2
Findfirst, File = \sss.txt”. Paketo tipas = IPX ; IDP ilgis = 146(0x92);
Antras freimas:
|Time Src MAC Addr Dst MAC Addr Protocol |
|Description |
|1.619 KTML_nt_3 KTML_NT_1 SMB |
|R transact2 Open (response) |
00000: 00 C0 6C 28 92 05 00 C0 6C 30 49 30 00 E0 FF FF
..l(….l0I0….
00010: 00 E0 00 04 00 00 19 94 00 C0 6C 28 92 05 04 55
……….l(…U
00020: 00 00 19 94 00 C0 6C 30 49 30 04 55 10 06 05 60
……l0I0.U…`
00030: 03 40 FB 00 B0 00 00 00 B0 00 EC 00 F1 00 FF 53
.@………….S
00040: 4D 42 32 00 00 00 00 98 03 80 96 81 00 00 00 00
MB2………….
00050: 00 00 00 00 00 00 01 08 C0 F9 01 08 40 37 0A 0A
…………@7..
00060: 00 6C 00 00 00 0A 00 38 00 00 00 6C 00 44 00 00
.l…..8…l.D..
00070: 00 00 00 79 00 00 01 10 01 00 01 00 00 00 00 00
…y…………
00080: 00 00 00 00 00 00 00 00 00 00 80 35 A8 4D D7 9D
………..5.M..
00090: BE 01 50 7D DD 7D 57 A3 BE 01 E0 F9 3D E2 C9 9D
..P}.}W…..=…
000A0: BE 01 E0 F9 3D E2 C9 9D BE 01 43 00 00 00 00 00
….=…..C…..
000B0: 00 00 48 00 00 00 00 00 00 00 20 00 00 00 0E 00 ..H…….
000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000E0: 73 00 73 00 73 00 2E 00 74 00 78 00 74 00 s.s.s…t.x.t.
Dabar gavome paketą iš kito kompiuterio. Matome kad siuntėjo ir gavėjo adresai susikeitė vietomis, kaip ir turėjo atsitikti. Tarpas tarp freimų sudarė 2
milisekundes. Freimo ilgis 238
baitai. Antras kompiuteris atsakė, kad failas atidarytas ir ivyks “bendradarbiavimas”
: “transact2 Open (response)”. IDP ilgis = 224(0xE0);
Trečias freimas
|Time Src MAC Addr Dst MAC Addr Protocol Description |
|1.623 KTML_NT_1 KTML_nt_3 SMB C NT |
|create & X, File = \sss.txt |
00000: 00 C0 6C 30 49 30 00 C0 6C 28 92 05 00 96 FF FF
..l0I0..l(……
00010: 00 96 00 04 00 00 19 94 00 C0 6C 30 49 30 04 55
……….l0I0.U
00020: 00 00 19 94 00 C0 6C 28 92 05 04 55 10 06 03 40
……l(…U…@
00030: 05 60 EC 00 66 00 00 00 66 00 FC 00 01 01 FF 53
.`..f…f……S
00040: 4D 42 A2 00 00 00 00 18 03 80 96 81 00 00 00 00
MB…………..
00050: 00 00 00 00 00 00 01 08 C0 F9 01 08 80 37 18 FF
………….7..
00060: 00 00 00 00 10 00 06 00 00 00 00 00 00 00 89 00
00070: 02 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
00080: 00 00 01 00 00 00 44 00 00 00 02 00 00 00 03 13
……D………
00090: 00 00 5C 00 73 00 73 00 73 00 2E 00 74 00 78 00
..\.s.s.s…t.x.
000A0: 74 00 00 00 t…
Freimo ilgis 64 baitai; IDP ilgis = 150(0x96); Duomenų ilgis =
0x0096(150);
Po 4 milisekundžių mūsų kompiuteris vėl pasiuntė freimą atsakydamas į antrą freimą ir klausdamas informacijos ar failas sukurtas:
NT create & X, File = /sss.txt Freimo ilgis 164 baitai; IDP ilgis = 150
(0x96);
Ketvirtas freimas
|Time Src MAC Addr Dst MAC Addr Protocol Description |
|1.624 KTML_nt_3 KTML_NT_1 SMB R NT create|
|& X, FID = 0x1805 |
00000: 00 C0 6C 28 92 05 00 C0 6C 30 49 30 00 98 FF FF
..l(….l0I0….
00010: 00 97 00 04 00 00 19 94 00 C0 6C 28 92 05 04 55
……….l(…U
00020: 00 00 19 94 00 C0 6C 30 49 30 04 55 10 06 05 60
……l0I0.U…`
00030: 03 40 FC 00 67 00 00 00 67 00 ED 00 F2 00 FF 53
.@..g…g……S
00040: 4D 42 A2 00 00 00 00 98 03 80 96 81 00 00 00 00
MB…………..
00050: 00 00 00 00 00 00 01 08 C0 F9 01 08 80 37 22 FF
………….7″.
00060: 00 67 00 02 05 18 01 00 00 00 80 35 A8 4D D7 9D
.g………5.M..
00070: BE 01 50 7D DD 7D 57 A3 BE 01 E0 F9 3D E2 C9 9D
..P}.}W…..=…
00080: BE 01 E0 F9 3D E2 C9 9D BE 01 20 00 00 00 48 00 ….=…..
…H.
00090: 00 00 00 00 00 00 43 00 00 00 00 00 00 00 00 00
……C………
000A0: 00 00 00 00 00 19 ……
Freimo ilgis = 166 baitai;Duomenų ilgis = 0x0098(152); IDP ilgis =
151(0x97);
File Allocation Size = 0x0000000000000048; End of File =
0x0000000000000043
Po 1 milisekundės kitas kompiuteris atsiuntė freimą ir pranešė, kad failas sukurtas:
“NT Create & X, FID=0x1805”.
Penktas freimas
|Time Src MAC Addr Dst MAC Addr Protoco l Description |
|1.626 KTML_NT_1 KTML_nt_3 SMB C |
|transact2 Query file info, FID = |
|0x1805 |
00000: 00 C0 6C 30 49 30 00 C0 6C 28 92 05 00 78 FF FF
..l0I0..l(…x..
00010: 00 78 00 04 00 00 19 94 00 C0 6C 30 49 30 04 55
.x……..l0I0.U
00020: 00 00 19 94 00 C0 6C 28 92 05 04 55 10 06 03 40
……l(…U…@
00030: 05 60 ED 00 48 00 00 00 48 00 FD 00 02 01 FF 53
.`..H…H……S
00040: 4D 42 32 00 00 00 00 18 03 80 96 81 00 00 00 00
MB2………….
00050: 00 00 00 00 00 00 01 08 C0 F9 01 08 C0 37 0F 04
………….7..
Freimo ilgis = 134 baitai; Duomenų ilgis = 0x0078(120); IDP ilgis = 120
(0x78);
Dar po 2 milisekundžių mūsų kompiuteris dar kartą pasiuntė kadrą reikalaudamas informacijos apie failą:
“transact2 Query file info, FID = 0x1805”.
Šeštas freimas
|Time Src MAC Addr Dst MAC Addr Protocol Description |
|1.627 KTML_nt_3 KTML_NT_1 SMB R |
|transact2 Open (response) |
00000: 00 C0 6C 28 92 05 00 C0 6C 30 49 30 00 92 FF FF
..l(….l0I0….
00010: 00 92 00 04 00 00 19 94 00 C0 6C 28 92 05 04 55
……….l(…U
00020: 00 00 19 94 00 C0 6C 30 49 30 04 55 10 06 05 60
……l0I0.U…`
00030: 03 40 FD 00 62 00 00 00 62 00 EE 00 F3 00 FF 53
.@..b…b……S
00040: 4D 42 32 00 00 00 00 98 03 80 96 81 00 00 00 00
MB2………….
00050: 00 00 00 00 00 00 01 08 C0 F9 01 08 C0 37 0A 02
………….7..
00060: 00 26 00 00 00 02 00 38 00 00 00 26 00 3C 00 00
.&…..8…&.<..
00070: 00 00 00 2B 00 00 00 00 00 01 00 00 00 00 0E 00
00080: 00 00 43 00 00 00 00 00 00 00 48 00 00 00 00 00
..C…….H…..
00090: 00 00 3A 00 3A 00 24 00 44 00 41 00 54 00 41 00
..:.:.$.D.A.T.A.
Freimo ilgis =160 baitai; Duomenų ilgis=0x0092(146); IDP ilgis
=146(0x92);
Po 1 milisekundės kitas kompiuteris atsiuntė freimą ir pranešė, kad failas atidarytas:
“transact2 Open (response)”.
Septintas freimas
|Time Src MAC Addr Dst MAC Addr Protocol Description |
|1.630 KTML_NT_1 KTML_nt_3 SMB C transact2|
|Query file info, FID = |
|0x1805 |
00000: 00 C0 6C 30 49 30 00 C0 6C 28 92 05 00 78 FF FF
..l0I0..l(…x..
00010: 00 78 00 04 00 00 19 94 00 C0 6C 30 49 30 04 55
.x……..l0I0.U
00020: 00 00 19 94 00 C0 6C 28 92 05 04 55 10 06 03 40
……l(…U…@
00030: 05 60 EE 00 48 00 00 00 48 00 FE 00 03 01 FF 53
.`..H…H……S
00040: 4D 42 32 00 00 00 00 18 03 80 96 81 00 00 00 00
MB2………….
00050: 00 00 00 00 00 00 01 08 C0 F9 01 08 00 38 0F 04
………….8..
00060: 00 00 00 02 00 04 00 00 00 00 00 00 00 00 00 00
00070: 00 04 00 44 00 00 00 00 00 01 00 07 00 07 00 00
…D…………
00080: 00 00 05 18 03 01 ……
Freimo ilgis = 134 baitai; Duomenų ilgis = 0x0078(120); IDP
ilgis=120(0x78);
Dar po 3 milisekundžių mūsų kompiuteris dar kartą pasiuntė kadrą reikalaudamas informacijos apie failą:
“transact2 Query file info, FID = 0x1805”.
Aštuntas freimas
|Time Src MAC Addr Dst MAC Addr Protocol |
|Description |
|1.630 KTML_nt_3 KTML_NT_1 SMB R |
|transact2 Query file |
|info(response to frame 7) |
00000: 00 C0 6C 28 92 05 00 C0 6C 30 49 30 00 70 FF FF
..l(….l0I0.p..
00010: 00 70 00 04 00 00 19 94 00 C0 6C 28 92 05 04 55
.p……..l(…U
00020: 00 00 19 94 00 C0 6C 30 49 30 04 55 10 06 05 60
……l0I0.U…`
00030: 03 40 FE 00 40 00 00 00 40 00 EF 00 F4 00 FF 53
.@..@…@……S
00040: 4D 42 32 00 00 00 00 98 03 80 96 81 00 00 00 00
MB2………….
00050: 00 00 00 00 00 00 01 08 C0 F9 01 08 00 38 0A 02
………….8..
00060: 00 04 00 00 00 02 00 38 00 00 00 04 00 3C 00 00
…….8…..<..
00070: 00 00 00 09 00 00 00 00 00 01 00 00 00 00 …………..
Freimo ilgis = 126 baitai; Duomenų ilgis = 0x0070(112); IDP
ilgis=112(0x70);
Po 1 milisekundžių kompiuteris, iš kurio buvo kopijuojamas failas, perdavė informaciją apie kopijuojamą failą:
“transact2 Query file info (response to frame 7)”.
Devintas freimas
|Time Src MAC Addr Dst MAC Addr Protocol Description |
|1.635 KTML_NT_1 KTML_nt_3 SMB C read & X, |
|FID = 0x1805, Read |
|0x43 at 0x00000000 |
00000: 00 C0 6C 30 49 30 00 C0 6C 28 92 05 00 6C FF FF
..l0I0..l(…l..
00010: 00 6C 00 04 00 00 19 94 00 C0 6C 30 49 30 04 55
.l……..l0I0.U
00020: 00 00 19 94 00 C0 6C 28 92 05 04 55 10 06 03 40
……l(…U…@
00030: 05 60 EF 00 3C 00 00 00 3C 00 FF 00 04 01 FF 53
.`..<…<……S
00040: 4D 42 2E 00 00 00 00 18 00 20 00 00 00 00 00 00 MB…….
00050: 00 00 00 00 00 00 01 08 FE CA 01 08 40 38 0C FF
…………@8..
00060: 00 00 00 05 18 00 00 00 00 43 00 43 00 FF FF FF
………C.C….
00070: FF 43 00 00 00 00 00 00 00 01 .C……..
Freimo ilgis = 122 baitai; Duomenų ilgis = 0x006C(108); IDP
ilgis=108(0x6C);
Mūsų kompiuteris paprašė atsiusti failo gabalą:
“read & X, FID = 0x1805, Read 0x43 at 0x00000000”.
Dešimtas freimas
|Time Src MAC Addr Dst MAC Addr Protocol Description |
|1.636 KTML_nt_3 KTML_NT_1 SMB R read & |
|X, Read 0x43 |
00000: 00 C0 6C 28 92 05 00 C0 6C 30 49 30 00 B0 FF FF
..l(….l0I0….
00010: 00 AF 00 04 00 00 19 94 00 C0 6C 28 92 05 04 55
……….l(…U
00020: 00 00 19 94 00 C0 6C 30 49 30 04 55 10 06 05 60
……l0I0.U…`
00030: 03 40 FF 00 7F 00 00 00 7F 00 F0 00 F5 00 FF 53 .@………..S
00040: 4D 42 2E 00 00 00 00 98 00 20 00 00 00 00 00 00 MB…….
00050: 00 00 00 00 00 00 01 08 FE CA 01 08 40 38 0C FF
…………@8..
00060: 00 00 00 FF FF 00 00 00 00 43 00 3C 00 00 00 00
………C.<….
00070: 00 00 00 00 00 00 00 44 00 01 41 41 41 41 41 41
…….D..AAAAAA
00080: 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 0D
AAAAAAAAAAAAAAA.
00090: 0A 42 42 42 42 42 42 42 42 42 42 42 42 42 42 42
.BBBBBBBBBBBBBBB
000A0: 42 42 42 42 42 42 0D 0A 43 43 43 43 43 43 43 43
BBBBBB..CCCCCCCC
000B0: 43 43 43 43 43 43 43 43 43 43 43 43 43 00 CCCCCCCCCCCCC.
Freimo ilgis = 134 baitai; Duomenų ilgis = 0x00130(176); IDP
ilgis=175(0xAF);
Kaip matome (paryškinta) buvo patenkintas reikalavimas ir mes gavome failo turinį.
“R read & X, Read 0x43”.
Venuoliktas freimas
|Time Src MAC Addr Dst MAC Addr Protocol Description |
|1.917 KTML_NT_1 KTML_nt_3 NBIPX Session Data, |
|Ack, Recv Seq 0x100, |
|0x105 Bytes Received |
00000: 00 C0 6C 30 49 30 00 C0 6C 28 92 05 00 30 FF FF
..l0I0..l(…0..
00010: 00 30 00 04 00 00 19 94 00 C0 6C 30 49 30 04 55
.0……..l0I0.U
00020: 00 00 19 94 00 C0 6C 28 92 05 04 55 80 06 03 40
……l(…U…@
00030: 05 60 F0 00 00 00 00 00 00 00 00 01 05 01 .`…………
Freimo ilgis = 62 baitai; Duomenų ilgis = 0x0030(48); IDP ilgis=48(0x30);
Šis freimas labai trumpas(minimalus – 62 baitai) ir buvo pasiųstas po sąlyginai ilgo laiko tarpo
– 281 milisekundžių.
Dvyliktas freimas
|Time Src MAC Addr Dst MAC Addr Protocol Description |
|0.000 000000000000 000000000000 STATS Number of |
|Frames Captured = 11 |
00000: 00 00 00 00 00 00 00 00 00 00 00 00 00 6E AA AA
………….n..
00010: 03 00 00 00 19 84 24 4D 53 54 00 00 00 00 67 00
……$MST….g.
00020: 00 00 50 00 00 00 00 00 AB 0D 00 00 0B 00 00 00
..P………….
00030: D0 06 00 00 0B 00 00 00 78 06 00 00 1B 00 00 00
……..x…….
00040: 67 0B 00 00 01 00 00 00 0F 00 00 00 00 00 00 00
g……………
00050: 00 00 00 00 15 00 00 00 FF FF FF FF FF FF FF FF
00060: FF FF FF FF 00 00 00 00 FF FF FF FF FF FF FF FF
00070: 00 00 00 00 00 00 00 00 00 00 00 00 …………
Freimo ilgis =124 baitai; Duomenų ilgis = 0x006E(110);
Šis paskutinis freimas neįprastas. Jis neturi nei siuntėjo, nei gavėjo.
Be to jis sugautas po
4294965379 milisekunžių. Tai gali būti šiūkšlės.