Jeg tok like så gjerne og prøvde ut problemstillingen Andreas Rosland gjorde klassen oppmerksom på idag. Dersom en pc spoofer mac-addressen til en annen, altså at en switch har samme mac addresse på to forskjellige porter; hva skjer da?
Her er topologien:
Oppsett
| PC | ip | MAC | port |
|---|---|---|---|
| laptop | 192.168.1.10 | 00:15:c5:af:02:2d | 4 |
| server | 192.168.1.1 | 00:04:e2:33:1c:74 | 1 |
| stasjonær | 192.168.1.11 | 00:1c:c0:7a:32:8b | 2 |
Switchen har forøvrig ip-address 192.168.1.89, på vlan1. Jeg pinget switchen fra de tre pcene. Da så arp-tabellen og mac-address-tabellen i switchen slik ut:
tonet-switch1#show mac-address-table Destination Address Address Type VLAN Destination Port IP ------------------- ------------ ---- -------------------- 0004.e233.1c74 Dynamic 1 FastEthernet0/1 0015.c5af.022d Dynamic 1 FastEthernet0/4 001c.c07a.328b Dynamic 1 FastEthernet0/2 tonet-switch1#show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.1.89 - 0004.9a18.d740 ARPA VLAN1 Internet 192.168.1.11 0 001c.c07a.328b ARPA VLAN1 Internet 192.168.1.10 3 0015.c5af.022d ARPA VLAN1 Internet 192.168.1.1 0 0004.e233.1c74 ARPA VLAN1
Mac spoofing -- å duplisere en mac addresse
Nå kommer magien. Laptopen kjører ubuntu. Siden linux er et veldig greit verktøy for å jobbe med nettverk (og mye annet) bestemte jeg meg for å bruke laptopen til å klone (spoofe) mac addressen til den stasjonære pcen. Ville det skje noe?
Et søk på google gav meg et tips om et lite program som heter macchanger.
sudo apt-get install macchanger
Så byttet jeg mac addresse til den samme som den stasjonære pcen hadde. Men først måtte jeg stoppe nettverkstjenestene.
technocake@technocake-laptop:~$ sudo /etc/init.d/networking stop
* Deconfiguring network interfaces...
[ OK ]
technocake@technocake-laptop:~$ sudo macchanger --mac=00:1c:c0:7a:32:8b eth0
Current MAC: 00:15:c5:af:02:2d (unknown)
Faked MAC: 00:1c:c0:7a:32:8b (unknown)
technocake@technocake-laptop:~$ sudo /etc/init.d/networking startles mer om macchanger her:
Da har jeg på dette tidspunktet to maskiner med samme mac addresse tilkoblet samme switch.
Skjer det noe?
For å se hva som hendte, slo jeg på debugging for arp og mac-address-table på switchen:
tonet-switch1#debug arp ARP packet debugging is on tonet-switch1#debug mat dynamic MAT dynamic addresses debugging is on
mat står her for Mac Address Table. Og det er de dynamiske oppføringen til switchen vi er innteresert i.
Da, pinget jeg switchen (192.168.1.89) fra laptopen, og observerte.
show mac-address-table:
Destination Address Address Type VLAN Destination Port ------------------- ------------ ---- -------------------- 0004.e233.1c74 Dynamic 1 FastEthernet0/1 001c.c07a.328b Dynamic 1 FastEthernet0/4
Nå gikk tabellen over fra 3 entries til 2. Legg merke til at port 2 ikke er å se. Dette er den porten som den stasjonære pcen er koblet til.
Men arp tabellen har en oversikt over ip addresser:
tonet-switch1#show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.1.89 - 0004.9a18.d740 ARPA VLAN1 Internet 192.168.1.11 0 001c.c07a.328b ARPA VLAN1 Internet 192.168.1.10 3 001c.c07a.328b ARPA VLAN1 Internet 192.168.1.1 0 0004.e233.1c74 ARPA VLAN1
Pingingen fra laptopen fikk svar. Det merkelige var at den stasjonære fikk også svar på ping til switchen. Også når de pinget samtidig!
Hvorfor?
Jeg observerte, at om jeg pinget fra den stasjonære, ble mac-addresse-tabellen oppdatert, slik at denne macen pekte til port 2. Pinget jeg fra laptopen, ble den byttet til port 4. Og slik gikk det frem og tilbake.
Jo fordi switchen baserer seg på data fra både arp tabellen og mac-address-table for å velge hvilken port den skal sende ut på. Siden laptopen og den stasjonære har ulik IP-ADDRESSE, men lik MAC addresse, så et den hvilken port den skal sende ut svaret på.
Thats it for this time.
Technocake a.k.a kakemann a.k.a Robin out!

Andreas
/ January 11, 2010Jeg likte spesielt godt at du kom frem til samme svar som meg
(der hadde jeg flaks!
)
Jan Egil
/ January 12, 2010Så kommer spørsmålet. Inneholder arp tabellen noen informasjon om hvilket interface mac-adressen er koblet til, og på den måten kan finne ut hvilke port den skal sende den ut på? Eller er arp tabellen enkelt og greit bare en kobling mellom ip-adresse og mac-adresse som switchen selv bruker når den skal ha tak i en IP-adresse.
Hva om du ikke hadde pinget switchen, hadde hatt en switch som kun støttet L2, eller hadde tømt arp-tabellen før du prøvde?
jocke
/ January 12, 2010En «dum», ikke-manageable switch har ikke ARP-tabell engang. Men det kan godt være resultatet hadde blitt annerledes på en slik en.
Technocake
/ January 13, 2010Når jeg pinget fra begge samtidig, med uendelig antall ping kom det opp noen warnings på switchen:
Warning, relearning 60 arp-entries per minute.
Så mine antagelser er at switchen driver frenetisk og oppdaterer mac-address-table fortløpende frem og tilbake for å kunne vite hvilken port den skal svare på.
Angående dumme svitsjer: jeg har jo en del, gonna try it out.
Jan Egil
/ January 14, 2010MAC-tabellen oppdateres nok når den merker at det kommer en frame med en MAC-addresse som ikke allerede ligger på den porten. Hvis MAC-tabellen i switchen kun inneholder 1 oppføring pr mac-adresse, vil da denne oppdateres fortløpende frem og tilbake dersom det er to porter som har en enhet med samme MAC-adresse tilkoblet. Når du kjører ditt evt neste eksperiment og pinger på likt. Kan du se hva som skjer dersom den ene hosten som pinges blir pinget “hurtigere” enn den andre. Eksempelvis med ping -f. Noe tall på pakketap hadde også vært gøyt å sett…
Technocake
/ January 14, 2010Skal fikses Jan Egil
Btw, er det noe forskjell på show arp og show ip arp?
robin
jocke
/ January 14, 2010Ingen forskjell på «show arp» og «show ip arp» nei. Jeg får hvertfall samme output fra begge.