Nel mio ultimo post abbiamo individuato che il sistema client in esecuzione era probabilmente una sorta di strumento di rilevare noti per essere i file vulnerabili. Dobbiamo ancora spiegare i pacchetti ripristino tuttavia, così come perché il server è stato li ignora.
Al momento non so nemmeno dove questo cattura dei pacchetti è stata presa in relazione ai due punti finali. Io vado a correre tshark utilizzando il "T-campi" passare alla stampa le informazioni TTL. Analizzando il TTL, dovremmo essere in grado di determinare dove siamo sniffing in relazione al client e il server. Ho anche intenzione di stampare gli ID di IP per vedere se ci sono anomalie in ordine pacchetto.
Ecco il comando e l'output:
tshark-r-T challenge1.cap campi-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
12.33.247.4 14 80 64 0x374a
12.33.247.4 15 80 64 0x374b
12.33.247.4 16 80 64 0x374c
12.33.247.4 17 80 64 0x374d
148.78.247.10 è il client. Sappiamo che in quanto ha iniziato la sessione e la sua comunicazione con una porta in alto sorgente. 12.33.247.10 è il nostro server HTTP la comunicazione dalla porta 80.
Nel pacchetto 1 vediamo il cliente ha un TTL di 49. La partita più vicina TTL di partenza per un sistema operativo noto è 64, quindi questo ci dice il cliente è un Linux, UNIX, Mac o un sistema seduto 15 hop lontano. Nel pacchetto 2 vediamo il server con un valore TTL di 64 anni, quindi deve essere uno dei sistemi operativi già citato seduto sulla rete locale. Quindi, siamo sulla stesso dominio di collisione come server, ma seduto 15 hop lontano dal client.
C'è un problema però. Guardate i pacchetti 6 e 7. Qui vediamo il TTL di entrambi i sistemi di cambio a 255. Un sistema operativo non cambierà mai è TTL durante una sessione, quindi questo sembra estremamente sospetto. Inoltre, abbiamo già stabilito che il cliente è seduto 15 hop lontano da noi. 255 è il valore più grande possibile TTL come il campo TTL è solo un singolo byte (byte 8 nell'intestazione IP). Così, anche se l'indirizzo IP sorgente sostiene di essere il client remoto, non c'è modo che il pacchetto potrebbe aver avuto origine da nessuna parte, ma dalla rete locale. Se il pacchetto aveva attraversato uno o più router, il valore TTL sarebbe minore.
Le informazioni ID IP non sembra giusto neanche. Nei primi tre pacchetti dal client si veda l'IP ID valori 0x2a6b (10.859), 0x2a95 (10.901), e 0x2a96 (10.902). Questo ci dice il cliente è eventualmente utilizzando un +1 ID incrementale IP, noi non abbiamo visto 42 della pacchetti tra il primo e il secondo pacchetto trasmesso. L'ID prossima IP si vede dal client è 0xb0f2 (45.298). OK, a meno che non abbiamo perso oltre 34.000 pacchetti, questo ID IP non jive.
Nota precedente analisi sarebbe solo teorica se non fosse per i valori incoerenti TTL. Con solo tre pacchetti da guardare, non possiamo identificare con precisione l'incremento IP ID. E 'anche possibile, ma altamente improbabile, che l'incremento ID IP è completamente casuale e il sistema è capitato di assegnare due ID incrementale IP, una dopo l'altra. Ancora, unire il TTL e di dati identificativi IP insieme e indicano che questo pacchetto finale non poteva aver avuto origine dallo stesso sistema.
Abbiamo dati identificativi più IP dal server con cui lavorare, quindi diamo un'occhiata a questo. Gli ID sono:
- 0 (0)
- 0 × 3743 (14147)
- 0xb0f2 (45298)
- 0 × 3744 (14148)
- 0 × 3745 (14149)
- 0 × 3746 (14150)
- 0 × 3747 (14151)
- 0 × 3748 (14152)
- 0 × 3749 (14153)
- 0x374a (14154)
- 0x374b (14155)
- 0x374c (14156)
- 0x374d (14157)
Date un'occhiata al terzo l'ID IP elencati, che viene dal pacchetto 6 nella traccia. Si noti che tutti gli ID altro IP sono incrementali +1, ma questo ID IP non gli appartiene. Infatti possiamo dimostrare che gli incrementi del server è l'IP ID di +1 e che non vi è modo questo pacchetto originato dal server.
Humm. Mi chiedo se questi pacchetti sospetti linea con il reset strano che abbiamo visto:
tshark-r-T challenge1.cap campi-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
12.33.247.4 14 80 64 0x374a 0
12.33.247.4 15 80 64 0x374b 0
12.33.247.4 16 80 64 0x374c 0
12.33.247.4 17 80 64 0x374d 0
Ah ah! Quindi, se guardiamo i pacchetti con lo strano TTL e valori ID IP, questi sono stati i pacchetti di reset strano inviati durante la sessione.
Sembra a me come un terzo sistema sta saltando nella conversazione, al fine di trasmettere i pacchetti di reset. Dal momento che questi strani pacchetti hanno un TTL di 255, sappiamo che devono essere sullo stesso dominio di collisione, come dove siamo sniffing. Dal momento che è sulla stesso dominio di collisione, le informazioni di intestazione Ethernet potrebbe essere utile:
tshark-r-T challenge1.cap campi-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
Così, quando il cliente arriva da Internet, passa attraverso un sistema di HP in qualità sia un router o un firewall. Il nostro server Web è in esecuzione su hardware Dell. Nota nostro ripristina (pacchetti di 6 e 7) sono entrambi vengono generati dallo stesso sistema utilizzando una scheda di rete D-Link.
Allora perché il D-Link cercare di terminare la sessione? Ciò è avvenuto solo dopo che il cliente ha inviato la richiesta di file sospetti. Sembra a me come il D-Link è in realtà un unico affinato sistema di prevenzione delle intrusioni (IPS). Quando viene rilevato un attacco, l'IPS tentativi di prevenire l'attacco da parte la trasmissione dei pacchetti riportato a entrambe le estremità della connessione.
Ma abbiamo ancora alcune domande senza risposta. È stato l'attacco di successo e perché il server sembrano ignorare il tentativo IPS di uccidere la sessione?
A sua volta, alla prossima puntata per scoprirlo.