Wednesday, May 16, 2007

Zatruwanie switcha

Dziś razem z jednych z doktorów z uczelni na której studiuję postanowiliśmy zatruć switcha. Był to jakiś 3com, podobno miał 8MB pamięcie... Postawiliśmy dwa laptopy, na jednym na Windowsie postawiliśmy WireShark-a, na drugim zapuściliśmy Knoppix STD.

Troszkę się namęczyłem z napisaniem skryptu, który by pozwolił tego switcha zapchać. Początkowo pomysł był taki, że ponieważ do switcha podłączone były tylko dwa komputery, słać jednym ramki na jakiś lewy MAC, drugim zaś czekać, aż zacznie wyłapywać te ramki, przy czym MAC źródłowy był preparowany.

Wstępnie napisałem w bash-u prosty skrypt generujący MACi - nic trudnego... Problemy zaczęły się gdy trzeba było preparować MACi źrółowe. Chłopacy z Matrixa zapodali wersję z ifconfigiem jednak kilka dni później trafiłem na Knoppix STD z arpingiem :)

Już na samym początku okazało się jednak, że jak się wyśle na lewy MAC to on go nie ma w pamięci i wysyła wszędzie... no to 3 komputer :| by był potrzebny, ale nie. Podszyliśmy się pod jakiś dobrze znany nam MAC, puściliśmy z niego arpinga i router to łyknął ;) Mogliśmy więc słać na MAC, którego w sieci nie ma, a switch go zna i wie co z nim robić.

Okazało się, że wersja bash-a na Knoppix STD jest tak stara, że skrypt trzeba było przepisać :| (szkoda, że nie rozwijają już Knoppix STD - świetna dystrybucja ! A byłaby jeszcze lepsza, gdyby ktoś ją odświerzył) Po przepisaniu skryptu - udało się, zapodaliśmy skrypt ... i czekamy, komunikaty się pojawiają, a my czekamy.

Doszliśmy do wniosku, że tak średnio to idzie 1 na sekundę więc przy 8MB switcha przyjdzie nam czekać 1200 godzin (szacunkowo i to z dużym błędem)... Zwiększenie ilości wątków do 400 pozwoliłoby nam liczyć na 4 godziny. Dopisaliśmy pętlę while odpalającą skrypt 400 razy i aby przyśpieszyć pracę wysłaliśmy wszystko do /dev/null. A co ! Niech sobie działa ! System trochę przysiadł i zaczął działać "w zwolnionym tempie" długo zastanawiając się nad każdym ruchem myszki jednak efekt był widoczny już po 15 minutach rozmowy - WireShark został zasypany mnóstwem pakietów :)

To było piękne :)

No comments: