Fuzzowanie nazw domen

Pracując tam, gdzie pracowałem, miałem kilka razy utarczki z “biznesem” na temat tego jak powinny być wybierane nazwy domenowe (głównie dla stron WWW). Dla biznesu najważniejsza była ich chwytliwość i możliwość skonstruowania kampanii marketingowej z ich wykorzystaniem. Z mojego punktu widzenia kwestie bezpieczeństwa przy wybieraniu nazwy domenowej są również istotne. Wybieraniu nazwy i patrzeniu co się dzieje w jej okolicach...

O jakich okolicach mówię? Jeśli istnieje serwis (popularny), to można:

Jak to można zrobić? Może na początku prosty przykład – domena interia.pl. Napisałem prosty skrypt, który w oparciu o podaną nazwę domeny generuje inne, podobne. W celu generowania podobnych napisałem kilka fuzzerów:

Skrypt ten sprawdza, czy dana domena istnieje. W tym celu odpytywany jest serwer DNS, jeśli zostanie uzyskana inna odpowiedź niż NXDOMAIN , domena jest uznawana za istniejącą.

Jakie są rezultaty?

W sumie 56 domen mniej lub bardziej podobnych do domeny wyjściowej. Część z nich jest tylko zarejestrowana, pod częścią adresów można zobaczyć ciekawe rzeczy, a to sklep erotyczny, a to serwis z oponami.

Jeszcze ciekawsze rezultaty można osiągnąć, gdy domena wyjściowa, to domena jakiegoś banku. Dla przykładu mbank.com.pl. Wpisy rozpoczynające się od * to tak zwane wildcardy:

I teraz pierwsza z brzegu domena rnbank.com.pl - wizualne zlepek liter r i n przypomina literę m. Zresztą właściciel strony bez zbytniego krępowania przyznaje się, że właśnie o takie podobieństwo mu chodziło. Na podobnej zasadzie opiera się wildcard *.corn.pl.

Niektórzy właściciele domen zdają sobie sprawę, że pomyłki przy wprowadzaniu adresu mogą się zdarzyć i rejestrują domeny dla najbardziej prawdopodobnych pomyłek.

Mój skrypt...

Skrypt jest dostępny tutaj. napisany jest w Python (testowałem TYLKO pod 2.5 i TYLKO pod Windows), do działania wymaga biblioteki obsługującej DNS, konkretnie dnspython. Szybkość działania skryptu zależy w znacznym stopniu od tego jak szybko odpowiada serwer DNS, z którego się korzysta...

EDIT: nowsza wersja skryptu dostępna jest tutaj.

W celu uruchomienia wystarczy rozpakować go do katalogu i uruchomić DNSSearch.py -d -f. Są jeszcze dwa rozumiane parametry. Parametr -p powoduje, że DNS nie jest odpytywany, wypisywane są tylko wygenerowane nazwy domen (wszystkie, bez znaczenia, czy są aktywne, czy też nie). Parametr -s uruchamia drugą funkcję – wyszukiwanie nazw domen poprzez dodawanie różnych przedrostków i przyrostków, ale funkcja ta nie działa jeszcze zbyt dobrze.

Oryginał tego wpisu dostępny jest pod adresem Fuzzowanie nazw domen

Autor: Paweł Goleń