I min senaste inlägget vi identifierat att klienten systemet förmodligen sprang någon form av verktyg för att söka efter kända för att vara sårbara filer. Vi har fortfarande att förklara återställa paket dock, liksom varför servern var att ignorera dem.
Just nu har vi inte ens vet var detta paket fånga togs i förhållande till två ändpunkter. Jag ska köra tshark använda "-T-fält" Switch för att skriva ut TTL information. Genom att analysera TTLS, bör vi kunna avgöra var vi sniffa i förhållande till klienten och servern. Jag kommer också att skriva ut IP-ID: n för att se om det finns några avvikelser i paketet ordning.
Här är kommandot och utgång:
tshark-r challenge1.cap-T fält-e frame.number-e ip.src-e tcp.srcport-e ip.ttl-e ip.id
1 148.78.247.10 26922 49 0x2a6b
2 12.33.247.4 80 64 0 × 0000
3 148.78.247.10 26922 49 0x2a95
4 148.78.247.10 26922 49 0x2a96
5 12.33.247.4 80 64 0 × 3743
6 12.33.247.4 80 255 0xb0f2
7 148.78.247.10 26922 255 0xb0f2
8 12.33.247.4 80 64 0 × 3744
9 12.33.247.4 80 64 0 × 3745
10 12.33.247.4 80 64 0 × 3746
11 12.33.247.4 80 64 0 × 3747
12 12.33.247.4 80 64 0 × 3748
13 12.33.247.4 80 64 0 × 3749
14 12.33.247.4 80 64 0x374a
15 12.33.247.4 80 64 0x374b
16 12.33.247.4 80 64 0x374c
17 12.33.247.4 80 64 0x374d
148.78.247.10 är kunden. Vi vet att eftersom det inledde sessionen och dess kommunikation med hjälp av en övre källport. 12.33.247.10 är vårt HTTP-servern kommunicerar från port 80.
I paket 1 ser vi kunden har en TTL på 49. Den närmaste start TTL match för ett känt operativsystem är 64, så det här berättar kunden är ett Linux, UNIX eller Mac-system sammanträde 15 humle bort. I paket 2 ser vi servern med en TTL-värde på 64, så det måste vara en av de tidigare nämnda operativsystemen sitter på det lokala nätverket. Så är vi på samma kollision domän som servern, men sammanträde 15 humle bort från kunden.
Det finns ett problem dock. Titta på paket 6 och 7. Här ser vi TTL för båda systemen förändras till 255. Ett OS kommer aldrig att ändra det är TTL under en session, så det här ser väldigt misstänkt. Vidare har vi bestämt redan att klienten sitter 15 humle ifrån oss. 255 är den största möjliga TTL-värde som TTL-fältet är bara ett enda byte (byte 8 i IP-huvudet). Så även om källan IP-adress anspråk på att vara fjärrklient, det finns inget sätt att paketet kunde ha sitt ursprung någon annanstans än från det lokala nätverket. Om paketet hade passerat en eller flera routrar, skulle TTL-värdet vara lägre.
IP ID-information ser inte rätt heller. Under de första tre paket från klienten ser vi IP-ID-värden 0x2a6b (10.859), 0x2a95 (10.901) och 0x2a96 (10.902). Detta säger oss klienten eventuellt med hjälp av en en inkrementell IP-ID, vi bara inte se 42 av paket mellan sänds första och andra paket. Nästa IP-id vi ser från klienten är 0xb0f2 (45.298). OK, om vi inte missat mer än 34 tusen paket går detta IP-ID inte jive.
Notera ovanstående analys endast skulle vara teoretiskt det inte vore för den inkonsekventa TTL-värden. Med bara tre paket att titta på, kan vi inte exakt identifiera IP-ID steg. Det är också möjligt, men mycket mycket osannolikt, att IP-ID steg är helt slumpmässig och att systemet bara råkade tilldela två inkrementella IP-ID, en direkt efter den andra. Ändå kombinerar TTL-och IP-ID-information tillsammans och de visar att detta sista paketet inte kunde ha sitt ursprung i samma system.
Vi har fler IP-ID data från servern att arbeta med, så låt oss ta en titt på det. IDS är:
- 0 (0)
- 0 × 3743 (14.147)
- 0xb0f2 (45.298)
- 0 × 3744 (14.148)
- 0 × 3745 (14.149)
- 0 × 3746 (14.150)
- 0 × 3747 (14.151)
- 0 × 3748 (14.152)
- 0 × 3749 (14.153)
- 0x374a (14.154)
- 0x374b (14.155)
- 0x374c (14.156)
- 0x374d (14.157)
Ta en titt på finns med på tredje IP-ID, som är från paket 6 i spår. Notera att alla andra IP-ID är inkrementella en, men denna IP-ID inte hör hemma. Faktum är att vi kan visa att servern steg är det IP-ID genom att en och att det inte finns något sätt detta paket kommer från servern.
Humm. Jag undrar om dessa misstänker paket linje med den konstiga återställer vi såg:
tshark-r challenge1.cap-T fält-e frame.number-e ip.src-e tcp.srcport-e ip.ttl-e ip.id-e tcp.flags.reset
1 148.78.247.10 26922 49 0x2a6b 0
2 12.33.247.4 80 64 0 × 0000 0
3 148.78.247.10 26922 49 0x2a95 0
4 148.78.247.10 26922 49 0x2a96 0
5 12.33.247.4 80 64 0 × 3743 0
6 12.33.247.4 80 255 0xb0f2 1
7 148.78.247.10 26922 255 0xb0f2 1
8 12.33.247.4 80 64 0 × 3744 0
9 12.33.247.4 80 64 0 × 3745 0
10 12.33.247.4 80 64 0 × 3746 0
11 12.33.247.4 80 64 0 × 3747 0
12 12.33.247.4 80 64 0 × 3748 0
13 12.33.247.4 80 64 0 × 3749 0
14 12.33.247.4 80 64 0x374a 0
15 12.33.247.4 80 64 0x374b 0
16 12.33.247.4 80 64 0x374c 0
17 12.33.247.4 80 64 0x374d 0
Ah ha! Så om vi ser på paket med konstiga TTL-och IP-värden ID var dessa konstiga återställa paket som skickas under sessionen.
Det ser jag som någon tredje systemet är att hoppa in i samtalet för att överföra återställa paket. Eftersom dessa konstiga paket har en TTL på 255, vet vi att det måste vara på samma kollisionsdomän som där vi är sniffning. Eftersom det är på samma kollision domän, kan Ethernet header informationen vara till hjälp:
tshark-r challenge1.cap-T fält-e frame.number-e ETH-e tcp.flags.reset
1 Ethernet II, SRC: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB), DST: DellComp_20: 7d: E3 (00: b0: d0: 20:07 d: E3) 0
2 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
3 Ethernet II, SRC: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB), DST: DellComp_20: 7d: E3 (00: b0: d0: 20:07 d: E3) 0
4 Ethernet II, SRC: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB), DST: DellComp_20: 7d: E3 (00: b0: d0: 20:07 d: E3) 0
5 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
6 Ethernet II, SRC: D-Link_8f: E0: 0C (00:50: BA: 8f: E0: 0C), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: ab) 1
7 Ethernet II, SRC: D-Link_8f: E0: 0C (00:50: BA: 8f: E0: 0C), DST: DellComp_20: 7d: E3 (00: b0: d0: 20:07 d: E3) 1
8 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
9 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
10 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
11 Ethernet II, src: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
12 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
13 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
14 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
15 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
16 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
17 Ethernet II, SRC: DellComp_20: 7d: E3 (00: b0: d0: 20:07 D: E3), DST: HewlettP_ea: 20: AB (0:50:08 B: EA: 20: AB) 0
Så när kunden kommer in från Internet, passerar den genom en HP-systemet fungerar som antingen en router eller en brandvägg. Vår webbserver körs på Dell-maskinvara. Observera våra återställs (paket 6 och 7) är båda genereras av samma system med en D-Link NIC.
Så varför gjorde D-Link systemet försöka döda sessionen? Detta inträffade strax efter det att kunden skickade den misstänkta filen begäran. Det ser jag som D-Link-systemet är egentligen en enda finslipat Intrusion Prevention System (IPS). När en attack upptäcks, försöker IPS att förhindra attacken genom att sända återställa paket till båda ändarna av anslutningen.
Men vi har fortfarande några obesvarade frågor. Var attacken lyckas och varför servern verkar ignorera IPS: s försök att döda sessionen?
Lämna in till nästa episod för att ta reda på.