Verkkoliikenteen analysointi
Oletetaan, että halutaan analysoida jonkin olemassaolevan sovelluksen (josta ei ole lähdekoodeja saatavissa) verkkoliikennettä (TCP/IP).
Jos vielä kyseessä on http -liikenne porttiin 80, niin yksi mahdollinen ratkaisu on seuraava:
Jos muusta yhteydestä tiedetään, että sovellus ottaa yhteyttä osoitteeseen:
www.palvelin.fi:80/jotain/komentosarja.php?data1=1&data2=2
Voidaan toimia seuraavasti:
1. Selvitetään manuaalisesti osoitetta www.palvelin.fi vastaava IP -osoite ja laitetaan se muistiin (tai vaihtoehtoisesti käytetään apuna eri tietokoneella toimivaa apusovellusta; tuon toisen koneen hosts -tiedostoa EI tietenkään muokata.
2. laitetaan koneen hosts -tiedostoon seuraavanlainen rivi:
127.0.0.1 www.palvelin.fi
3. Tehdään oma analysointiohjelma joka kuuntelee porttia 80 (TCP) ja uudelleenlähettää asiakkaan (eli tutkittavan sovelluksen) lähettämän datan siihen IP -osoitteeseen, joka vastaa osoittetta
www.palvelin.fi
ja vastaavasti välittää tuossa osoitteessa olevan palvelimen lähettämän datan asiakasohjelmalle.
Tämä kuvio toimii hyvin edellyttäen, että sen/niiden palvelinten tekstimuotoiset osoitteet tunnetaan, johon ko. tutkittava sovellus ottaa yhteyttä.
Jos tutkittava sovellus lähettää http -pyynnöissään "Host: www.palvelin.fi" -tyyppisen rivin, niin seuraavaa kohtaa ei tarvita, koska host -kenttä yksilöi koneen, johon yhteyttä pyritään ottamaan.
4. Jos kohdesovellus EI anna Host -kenttää kyselyissään, tällöin voidaan tehdä seuraavanlainen trikki:
Laitetaan hosts -tiedostoon:
127.0.0.1 www.palvelin.fi
127.0.0.2 www.palvelin2.fi
127.0.0.3 www.jotainmuuta.com
Ja tällöin analysointiohjelma voi tunnistaa, mihin 127.0.0.x -osoitteeseen otetaan yhteyttä ja tästä välillisesti päätellä, mihin kohdeosoitteeseen annetusta joukosta milloinkin halutaan yhteys.
HUOM: Tämä trikki toimii sellaisenaan windows 2000:ssa. Sensijaan Windows XP:ssä service pack 2 estää tuon trikin käytön, mutta siihenkin ongelmaan on olemassa korjaus: ks.
http://support.microsoft.com/default.aspx?scid=kb;en-us;884020
Näillä tiedoilla http -liikenteen analysointi on yksinkertaista, jos kohde-URL:it tai ainakin niiden konetta osoittavat osat ovat etukäteen tiedossa.
Mutta entä jos tämä edellytys ei täyty?
Miten voi silloin analysoida sovelluksen verkkoliikennettä jos kohdesovellus ottaa yhteyttä esim. muuttuviin URL:eihin jotka eivät ole etukäteen tiedossa ?
Oletetaan, että halutaan analysoida jonkin olemassaolevan sovelluksen (josta ei ole lähdekoodeja saatavissa) verkkoliikennettä (TCP/IP).
Jos vielä kyseessä on http -liikenne porttiin 80, niin yksi mahdollinen ratkaisu on seuraava:
Jos muusta yhteydestä tiedetään, että sovellus ottaa yhteyttä osoitteeseen:
www.palvelin.fi:80/jotain/komentosarja.php?data1=1&data2=2
Voidaan toimia seuraavasti:
1. Selvitetään manuaalisesti osoitetta www.palvelin.fi vastaava IP -osoite ja laitetaan se muistiin (tai vaihtoehtoisesti käytetään apuna eri tietokoneella toimivaa apusovellusta; tuon toisen koneen hosts -tiedostoa EI tietenkään muokata.
2. laitetaan koneen hosts -tiedostoon seuraavanlainen rivi:
127.0.0.1 www.palvelin.fi
3. Tehdään oma analysointiohjelma joka kuuntelee porttia 80 (TCP) ja uudelleenlähettää asiakkaan (eli tutkittavan sovelluksen) lähettämän datan siihen IP -osoitteeseen, joka vastaa osoittetta
www.palvelin.fi
ja vastaavasti välittää tuossa osoitteessa olevan palvelimen lähettämän datan asiakasohjelmalle.
Tämä kuvio toimii hyvin edellyttäen, että sen/niiden palvelinten tekstimuotoiset osoitteet tunnetaan, johon ko. tutkittava sovellus ottaa yhteyttä.
Jos tutkittava sovellus lähettää http -pyynnöissään "Host: www.palvelin.fi" -tyyppisen rivin, niin seuraavaa kohtaa ei tarvita, koska host -kenttä yksilöi koneen, johon yhteyttä pyritään ottamaan.
4. Jos kohdesovellus EI anna Host -kenttää kyselyissään, tällöin voidaan tehdä seuraavanlainen trikki:
Laitetaan hosts -tiedostoon:
127.0.0.1 www.palvelin.fi
127.0.0.2 www.palvelin2.fi
127.0.0.3 www.jotainmuuta.com
Ja tällöin analysointiohjelma voi tunnistaa, mihin 127.0.0.x -osoitteeseen otetaan yhteyttä ja tästä välillisesti päätellä, mihin kohdeosoitteeseen annetusta joukosta milloinkin halutaan yhteys.
HUOM: Tämä trikki toimii sellaisenaan windows 2000:ssa. Sensijaan Windows XP:ssä service pack 2 estää tuon trikin käytön, mutta siihenkin ongelmaan on olemassa korjaus: ks.
http://support.microsoft.com/default.aspx?scid=kb;en-us;884020
Näillä tiedoilla http -liikenteen analysointi on yksinkertaista, jos kohde-URL:it tai ainakin niiden konetta osoittavat osat ovat etukäteen tiedossa.
Mutta entä jos tämä edellytys ei täyty?
Miten voi silloin analysoida sovelluksen verkkoliikennettä jos kohdesovellus ottaa yhteyttä esim. muuttuviin URL:eihin jotka eivät ole etukäteen tiedossa ?
Vastaukset 3
Vanhimmat
ja voit kuunnella kaikkea liikennettä. Salaamattoman liikenteen analysointi onnistuu ohjelmassa.
jos sovellus käyttää http-protoa, niin ohjelmassa yleensä annetaan mahdollisuus käyttää proxyä. Asenna Burp-proxy väliin ja tutki sillä liikennettä
Wireshark (entinen ethereal) tekee tuon ilman kikkailuja. Myös tcpdump on hyvä. Ei tarvita mitään proxeja tai uudelleen ohjauksia, kun nuo kuuntelevat suoraan verkkokortin läpi menevää liikennettä.