NFsec Logo

Lokalizacja hostów do krajów i miast

04/06/2009 w Pen Test 1 komentarz.  (artykuł nr 61, ilość słów: 311)

F

irma MaxMind zajmująca się geolokalizacją hostów w Internecie, a także wykrywaniem elektronicznych wyłudzeń finansowych za pomocą kart kredytowych udostępniła za darmo lekką (nie zawierającą tylu rodzai i ilości wpisów, co wersja komercyjna) wersję bazy danych umożliwiających lokalizację hostów, dodatkowo oferując API i bibliotekę (na licencji GPL) do obsługi wspomnianej bazy.

Co taki dar oznacza dla przeciętnego użytkownika systemu Linux? M.in. umożliwia sprawdzanie lokalizacji wybranego hosta / numeru IP z dokładnością do danego kraju lub miasta w tym kraju. W celu takiej możliwości najpierw należy wyposażyć swój system w odpowiednią bibliotekę (napisaną w C) i API (ang. Application Programming Interface) firmy MaxMind – w tym przypadku – interfejs programu użytkownika. MaxMind oferuje nam API w postaci: modułów – Perl, Ruby, PHP, Apache; klas Java, Python, C#; a także nawet Pascala czy Javascript! Poniższy przykład zostanie oparty o wykorzystanie biblioteki GeoIP napisanej w C oraz małej aplikacji – geoiplookup, która została dostarczona wraz z nią (dokładne opisy zastosowania wybranych API znajdują się na stronie firmy). Proces instalacji przebiega następująco:

Instalacja biblioteki GeoIP oraz programu pod konsolę:

wget http://www.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar -xzvf GeoIP.tar.gz
cd GeoIP
./configure --prefix=/usr
make
make check
make install

Instalacja aktualnych baz danych:

cd /usr/share/GeoIP
rm GeoIP.dat
wget http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
wget http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoIP.dat.gz GeoLiteCity.dat.gz

Oficjalna próba identyfikacji kraju wybranego hosta (pod postacią domeny lub IP):

$ geoiplookup nfsec.pl
GeoIP Country Edition: PL, Poland

Oficjalna próba identyfikacji miasta wybranego hosta:

$ geoiplookup -f /usr/share/GeoIP/GeoLiteCity nfsec.pl
GeoIP City Edition, Rev 1: PL, 87, Szczecin, (null),
53.416698, 14.58330, 0, 0

Gdzie liczby 53… i 14… oznaczają kolejno szerokość i długość geograficzną, które można wykorzystać przy przenoszeniu wyników na interfejs dowolnej mapy graficznej np. maps.google.pl. Oczywiście komercyjna wersja bazy oferuje więcej możliwości (identyfikację ISP, rodzaj łącza itp.), ale jej darmowy odpowiednik wraz z połączeniem z innymi narzędziami “namierzającymi” (nslookup, whois, traceroute, itd. czy statystykami np. awstats) dostępnymi w systemie Linux powinien stanowić wystarczające uzupełnienie lokalizujące.

Więcej informacji: www.maxmind.com, www.yougetsignal.com

Kategorie K a t e g o r i e : Pen Test

Tagi T a g i : , , , , ,

Brak starszych postów

1 komentarz.

  1. Poniżej znajduje się prosty skrypt do lokalizacji w JavaScript do dodania na dowolną stronę WWW, który korzysta z API firmy MaxMind:

    <script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script>
    <script>
      var info = document.getElementById('info');
      var lat = geoip_latitude();
      var lon = geoip_longitude();
      var city = geoip_city();
      var out = '<h3>Informacje o Twoim IP:</h3>'+
                '<ul>'+
                '<li>Szerokość geograficzna: ' + lat + '</li>'+
                '<li>Długość geograficzna: ' + lon + '</li>'+
                '<li>Miasto: ' + city + '</li>'+
                '<li>Region: ' + geoip_region() + '</li>'+
                '<li>Nazwa regionu: ' + geoip_region_name() + '</li>'+
                '<li>Kod pocztowy: ' + geoip_postal_code() + '</li>'+
                '<li>Kod państwowy: ' + geoip_country_code() + '</li>'+
                '<li>Nazwa państwa: ' + geoip_country_name() + '</li>'+
                ''
      info.innerHTML = out;
    </script>