Wstęp
Ostatnio w moje ręce wpadła karta sieciowa(pod PCI) z chipsetem Atheros AR5006x. Wraz z dostarczoną paczką przyszła mi do głowy myśl zamienienia adresu MAC sprzętowo(najlepiej na same zera). Dlaczego nie? Do dzieła!
Przede wszystkim research
3h wklepywania w google.com różnych kombinacji słów kluczowych nie wniosło nic nowego do posiadanej wiedzy. No może, przypomniało o zasłużonym madwifi. Porażka? Nie! Poddają się tylko klepacze!
Rusz głową!
Madwifi to sterowniki bezprzewodowych kart sieciowych opartych na chipsetach Atherosa. Zostały one zastąpiąne przez ath5k. Madwifi po skompilowaniu dostarcza nam przydatne narzędzie: ath_info, które pozwala robić dump eeprom-a. Sam EEPROM to nic innego jak pamięć „nieulotna”, wykorzystywana do przechowywania małej ilości danych. To właśnie w tym miejscu mamy zamiar namieszać (: Wszystko jak na razie wygląda na proste i przyjemne. Niestety pozory czasem mylą i tak też jest w tym przypadku, gdyż aby zacząć mieszać potrzebujemy znaleźć adres pamięci naszego urządzenia i zczytać z niego dane. Do tego potrzebujemy Ubuntu 9.04, ponieważ w póżniejszych wersjach Ubuntu pamięć przechowywana jest w powłokach jądra i dostęp do niej jest znacznie ograniczony. Gdy już uda nam się zczytać dane to potrzebujemy nadpisać niektóre wartości w eepromie na podstawie adresów pamięci. Pewien ceniony czeski programista Jan Krupa napisał wiele narzędzi, które zczytują i nadpisują EEPROM. Niestety w moim wypadku nie działały, dlatego korzystam z ath_info, a cała operacja i tak wygląda bardzo podobnie. To by było na tyle wstępów. Do dzieła!
Przygotuj odpowiednio system
Zacznijmy od pobrania najnowszej wersji UNetbootin w moim wypadku dla Windowsa.
Następnie uruchamiamy program, wybieramy dystrybucję, w naszym wypadku Ubuntu, i wybieramy wersję: 9.04_Live. Ponadto w okno przy napisie „Przestrzeń używana do zachowywania plików pomiędzy rebootami (tylko Ubuntu)” podajemy wartość 1000 mb. Wybieramy napęd USB i klikamy ok.
Po kliknięciu ok rozpocznie się pobieranie Ubuntu i wgrywanie go na „gwizdek”. W zależności od prędkości internetu operacja może trwać ok 30min.
Po ukończeniu całej operacji uruchamiamy komputer ponownie i wchodzimy w ustawienia BIOS-u żeby ustawić bootowanie z pendrive-a. Nie będę opisywał jak to zrobić, a jeżeli nie wiesz to odsyłam do google.pl (:
Pierwszy start
Włączamy komputer i po zabootowaniu naszego pendrive wybieramy opcję Default i czekamy aż system się załaduje (: Przede wszystkim klikamy alt+f2 i wpisujemy „gnome-terminal”.
Otworzy się nam konsola, która będzie miejscem naszych działań. Dla ułatwienia i zbędnego wklepywania sudo przed każdym poleceniem zróbmy to raz, dodajmy hasło rootowi:
sudo passwd root
i zalogujmy się na jego konto:
su root
Teraz mamy pełną kontrolę. Niesety jest mały problem, ponieważ Ubuntu 9.04 nie jest dalej supportowany i nie ma możliwości zainstalowania poprzez apt-get potrzebnego nam subversion. Z problemem tym radzimy sobie w następujący sposób. Otwieramy sources.list
gedit /etc/apt/sources.list
i wklejamy treść sources.list z późniejszej wersji 9.10:
deb http://gb.archive.ubuntu.com/ubuntu/ karmic main restricted deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://gb.archive.ubuntu.com/ubuntu/ karmic-updates main restricted deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://gb.archive.ubuntu.com/ubuntu/ karmic universe deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic universe deb http://gb.archive.ubuntu.com/ubuntu/ karmic-updates universe deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://gb.archive.ubuntu.com/ubuntu/ karmic multiverse deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic multiverse deb http://gb.archive.ubuntu.com/ubuntu/ karmic-updates multiverse deb-src http://gb.archive.ubuntu.com/ubuntu/ karmic-updates multiverse deb http://security.ubuntu.com/ubuntu karmic-security main restricted deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted deb http://security.ubuntu.com/ubuntu karmic-security universe deb-src http://security.ubuntu.com/ubuntu karmic-security universe deb http://security.ubuntu.com/ubuntu karmic-security multiverse deb-src http://security.ubuntu.com/ubuntu karmic-security multiverse
Po zakończeniu powyższej operacji instalujemy subversion za pomocą komendy:
aptitude install subversion
Teraz gdy słynny svn jest gotowy do użycia, korzystamy z niego wpisując:
svn checkout http://madwifi-project.org/svn/madwifi/trunk madwifi
Dzięki temu do katalogu madwifi pobierze się kod źródłowy sterowników madwifi.
Wchodzimy do lokalizacji:
cd madwifi
i budujemy:
make
Bądź uważny i zwracaj uwagę na różnego rodzaju błędy. Jeżeli cała operacja przebiegnie pomyślnie możemy przejść do następnego kroku:
make install
Rozpocznie się kompilacja sterowników. Po jej pomyślnym przejściu musimy załadować nasze sterowniki do działającego systemu poprzez komendę:
modprobe ath_pci
Zaczynamy mieszać
Rozpoczynamy procedurę od sprawdzenia adresu karty sieciowej w pamięci:
lspci -v
Wyświetli nam się lista różnych urządzeń, wśród nich wyszukujemy naszego Atherosa i pod szukamy takiej linijki:
Memory at <8 znakowy adres> np. 8c100000
Następnie przystępujemy do zrobienia pseudo backapu:
ath_info -d 0x<8 znakowy adres> np. 8c100000 > backup.txt
Po tym wpisujemy taką komendę:
ath_info -d 0x<8 znakowy adres> np. 8c100000
i w tym co nam się pojawi szukamy czegoś takiego
0000: a55a 0000 0040 0001 0000 5001 0000 7131 0008: 144f 1c0a 0100 0000 01c2 0002 c606 0001 0010: 0000 0000 0000 0000 0000 0000 0000 0000 0018: 0000 0000 0000 0000 0000 5566 3344 1122 0020: 0000 0000 0000 0000 0000 0000 0000 0000 0028: 0000 0000 0000 0000 0000 0000 0000 0000 0030: 0000 0000 0000 0000 0000 0000 0000 0000 0038: 0000 0000 0000 0000 0000 0000 0000 0000 0040: ffff ffff ffff ffff ffff ffff ffff ffff 0048: ffff ffff ffff ffff ffff ffff ffff ffff 0050: ffff ffff ffff ffff ffff ffff ffff ffff 0058: ffff ffff ffff ffff ffff ffff ffff ffff 0060: ffff ffff ffff ffff ffff ffff ffff ffff 0068: ffff ffff ffff ffff ffff ffff ffff ffff 0070: ffff ffff ffff ffff ffff ffff ffff ffff 0078: ffff ffff ffff ffff ffff ffff ffff ffff 0080: 1400 168c 001c 1402 0001 0200 140a 5001 0088: 0000 140b 144f 7131 140f 0100 1c0a 1410 0090: 5001 01c2 15c3 3f01 0f00 1419 0cc0 0504 0098: 1410 5001 c1c2 1005 0000 0000 101e 0001 00a0: 0000 ffff ffff ffff ffff 2211 4433 6655 00a8: ffff ffff ffff ffff ffff ffff ffff ffff 00b0: ffff ffff ffff ffff ffff ffff ffff ffff 00b8: ffff ffff ffff ffff ffff ffff ffff 0037 00c0: 2063 5003 da6c 0401 b1c8 016e 00ff 78ff
Jest to dump eepromu. Pokazuje on jakie wartości są przypisane do adresów. W naszym Atherosie dane na temat adresu MAC zapisane są w odpowiedniej kolejności w odpowiednich adresach.
Załóżmy, że mamy nasz adres MAC to:
11:22:33:44:55:66
Aby nadpisać 4 pierwsze cyfry adresu MAC np. na zera, potrzebujemy zmienić dwie wartości przy dwóch różnych adresach. 11:22 zapisane jest przy adresie 001f i 22:11 przy adresie 00a5. Robimy to następująco:
ath_info -g 3:0 -w 0x<8 znakowy adres> 001f 0000 ath_info -g 3:0 -w 0x<8 znakowy adres> 00a5 0000
Czasami przy -g 3:0 nie chce nadpisać wtedy należy zmieniać 3 na liczbę od 1 do 5. Przy którejś powinno przejść.
Przy następnych cyfrach postępujemy analogicznie. 33:44 przypisane jest do adresu 001e i 44:33 do adresu 00a6
ath_info -g 3:0 -w 0x<8 znakowy adres> 001e 0000 ath_info -g 3:0 -w 0x<8 znakowy adres> 00a6 0000
Dalej podobnie. 55:66 to adres 001d a 66:55 to 00a7
ath_info -g 3:0 -w 0x<8 znakowy adres> 001d 0011 ath_info -g 3:0 -w 0x<8 znakowy adres> 00a7 1100
Po takiej operacji nasz adres MAC zamiast:
11:22:33:44:55:66
przyjmie postać:
00:00:00:00:00:11
Musimy zwrócić uwagę na to, że podszywanie się pod cudzy adres MAC jest nielegane
Tekst zostal napisany wylacznie w celach edukacyjnych. Autor nie ponosi odpowiednialnosci, za jakiekolwiek poczynania zwiazane z opisanymi powyżej metodami pracy przy komputerze.