Så här ser du alla enheter i ditt nätverk med nmap på Linux

By rik

Undrar du över vilka enheter som är anslutna till ditt hemnätverk? Du kan bli förvånad över svaret. Med hjälp av verktyget `nmap` på Linux kan du utforska alla enheter i ditt nätverk.

Du kanske tror att ditt hemnätverk är simpelt, men med tanke på den ökande användningen av Internet of Things (IoT)-enheter, mobiler som telefoner och surfplattor samt smarta hemenheter, kan det finnas mer än du anar. Tänk bara på de ”vanliga” nätverksenheterna som routrar, bärbara och stationära datorer.

Installation av Nmap

Vi använder kommandot `nmap`. Det kan redan vara installerat på din dator, beroende på vilka program du har.

Om inte, följ anvisningarna för att installera det på Ubuntu:

sudo apt-get install nmap

För att installera det på Fedora, använd:

sudo dnf install nmap

För installation på Manjaro, använd:

sudo pacman -Syu nmap

Det kan installeras på andra Linux-varianter genom att använda deras respektive pakethanterare.

Ta reda på din IP-adress

Börja med att ta reda på din Linux-dators IP-adress. Det finns en lägsta och högsta IP-adress som ditt nätverk kan använda. Det är det så kallade intervallet. Vi behöver detta för att ge `nmap` information om vilka adresser som ska skannas.

Använd kommandot `ip addr` i Linux för att visa din IP-adress. Skriv kommandot och tryck Enter:

ip addr

Längst ner i resultatet hittar du din IP-adress. Den föregås av ”inet”-etiketten.

I exemplet är IP-adressen `192.168.4.25`. `/24` betyder att det finns tre grupper av åtta ettor i nätmasken. (3 x 8 = 24).

Binärt ser nätmasken ut så här:

11111111.11111111.11111111.00000000

Decimalt är det `255.255.255.0`.

Nätmasken och IP-adressen används för att definiera vilken del av IP-adressen som identifierar nätverket och vilken som identifierar enheten. Nätmasken berättar att de tre första delarna av IP-adressen identifierar nätverket, medan den sista delen identifierar de specifika enheterna. Med tanke på att det största talet i ett 8-bitars binärt tal är 255, kommer intervallet för IP-adresser i detta nätverk att vara från `192.168.4.0` till `192.168.4.255`.

Allt detta är representerat av `/24`. Som tur är kan `nmap` hantera denna notation, vilket ger oss det vi behöver för att starta.

Introduktion till Nmap

Nmap är ett verktyg för nätverkskartering. Det fungerar genom att skicka olika meddelanden till IP-adresserna i det angivna intervallet. Genom att analysera svaren kan det dra slutsatser om enheten.

Låt oss starta en enkel skanning med `nmap`. Vi använder optionen `-sn` (skanna inte portar) för att göra en snabb skanning.

Observera att skanningen kan ta en stund. Ju fler enheter i nätverket, desto längre tid tar det. `Nmap` gör sin undersökning och presenterar resultatet när den första fasen är klar. Vänta tålmodigt, det kan ta lite tid.

Vi använder IP-adressen vi fick med kommandot `ip`, men med det sista numret ändrat till noll, vilket är den första IP-adressen på nätverket. `/24` berättar för `nmap` att skanna hela intervallet. Parametern `192.168.4.0/24` betyder ”börja vid 192.168.4.0 och arbeta dig igenom alla IP-adresser till 192.168.4.255”.

Observera att vi använder `sudo` för att få alla detaljer.

sudo nmap -sn 192.168.4.0/24

Efter en liten stund kommer resultatet att visas i terminalfönstret.

Du kan köra skanningen utan `sudo`, men med `sudo` får du mer information, som till exempel tillverkarens namn.

Fördelen med `-sn` är att du får en snabb och enkel lista över aktiva IP-adresser, dvs. en lista över enheter som är anslutna till nätverket, med deras IP-adresser och, där möjligt, tillverkarens namn. Inte dåligt för en första skanning.

Här är slutet av listan.

Vi har en lista över de anslutna nätverksenheterna och vet hur många det är. I detta fall finns det 15 enheter aktiva. Vi känner till tillverkaren för några av dem, men som vi kommer att se kan informationen ibland vara gissningar gjorda av `nmap`.

När du går igenom resultaten kommer du förmodligen att känna igen vissa enheter, men det kan också finnas några som du inte känner till. Det är dessa som vi behöver undersöka närmare.

Vissa enheter är tydliga: Raspberry Pi Foundation är självförklarande, Amazon Technologies-enheten är en Echo Dot, Samsung-enheten är en laserskrivare, och de två Dell-enheterna är en dator och en bärbar dator. Avaya-enheten är en Voice Over IP-telefon kopplad till företagets telefonsystem.

Men det finns fortfarande frågor. Det finns flera enheter som verkar okända: Liteon-teknik och Elitegroup-datorsystem. Dessutom finns det mer än en Raspberry Pi ansluten, och det borde finnas några enheter listade som okända.

Djupare skanning

Om vi tar bort optionen `-sn`, kommer `nmap` också att undersöka portarna på enheterna. Portar är numrerade slutpunkter för nätverksanslutningar. Tänk på ett lägenhetshus där alla lägenheter har samma gatuadress (motsvarande IP-adress), men varje lägenhet har sitt eget nummer (motsvarande porten).

Varje program eller tjänst inom en enhet har ett portnummer. Nätverkstrafik skickas till en IP-adress och en port. Vissa portnummer är reserverade. Till exempel är port 22 reserverad för SSH-anslutningar och port 80 är reserverad för HTTP-trafik.

Vi kommer nu att be `nmap` att skanna portarna på varje enhet och berätta vilka som är öppna.

nmap 192.168.4.0/24

Den här gången får vi en mer detaljerad rapport. Vi ser att det finns 13 aktiva enheter. Det var ju 15 nyss?

Antalet enheter kan variera mellan skanningarna, förmodligen på grund av att mobila enheter kommer och går, eller att utrustning slås på och av. Kom också ihåg att en enhet som har stängts av kan få en annan IP-adress nästa gång den startas.

Detta gav en hel del information. Låt oss fånga det i en fil.

nmap 192.168.4.0/24 > nmap-list.txt

Nu kan vi visa filen med `less` och söka i den.

less nmap-list.txt

Gå igenom rapporten och leta efter något som du inte känner igen eller som verkar udda. Notera IP-adresserna till alla enheter du vill undersöka vidare.

Enligt den tidigare rapporten är `192.168.4.10` en Raspberry Pi som kör en Linux-distribution. Vad gör port 445, som beskrivs som `microsoft-ds`, på en Pi som kör Linux? Vi måste undersöka det.

`192.168.4.11` var märkt som ”Okänd” i den tidigare genomsökningen, men har flera öppna portar. Vad är det?

`192.168.4.18` identifierades också som en Raspberry Pi, men den och enhet `192.168.4.21` har port 8888 öppen, som beskrivs som att den används av ”sun-svarbok”. Sun AnswerBook är ett gammalt dokumentationssystem. Vi har inget sådant installerat, så det måste kollas upp.

Enhet `192.168.4.22` identifierades tidigare som en Samsung-skrivare. Det bekräftas av taggen ”skrivare”. Intressant är att HTTP-port 80 är öppen. Har min skrivare en webbplats?

`192.168.4.31` ska vara tillverkad av Elitegroup Computer Systems. Vi har aldrig hört talas om dem, och enheten har många öppna portar, så det ska undersökas.

Ju fler portar en enhet har öppna, desto större är risken för att någon utomstående ska lyckas ta sig in. Jämför det med ett hus: ju fler fönster och dörrar du har, desto fler ingångar finns för en tjuv.

De misstänkta

Enhet `192.168.4.10` är en Raspberry Pi med port 445 öppen, beskriven som ”microsoft-ds”. En snabb sökning på internet visar att port 445 oftast är associerad med Samba. Samba är en gratis implementation av Microsofts Server Message Block-protokoll (SMB). SMB används för att dela mappar och filer över ett nätverk.

Detta är logiskt. Denna Pi fungerar som en mini-NAS (Network Attached Storage) och använder Samba för att kunna koppla upp sig från andra datorer i nätverket. Ett mysterium löst.

Okänd enhet med öppna portar

Enheten med IP-adress `192.168.4.11` hade en okänd tillverkare och många öppna portar.

Vi kan använda `nmap` mer aggressivt för att försöka få mer information från enheten. Option `-A` (aggressiv skanning) tvingar `nmap` att använda operativsystemdetektering, versionsdetektering, skriptskanning och spårningsdetektering.

Med optionen `-T` (timing mall) kan vi ställa in ett värde från 0 till 5, vilket motsvarar olika tidslägen. Dessa lägen heter: paranoid (0), smygande (1), artig (2), normal (3), aggressiv (4) och galen (5). Ju lägre siffra, desto mindre påverkan har `nmap` på bandbredden och andra användare.

Vi ger inte `nmap` ett IP-intervall. Vi fokuserar på en enskild IP-adress.

sudo nmap -A -T4 192.168.4.11

Det kan ta en stund innan resultatet visas.

Tyvärr ger oss inte resultatet några tydliga svar.

Vi har fått veta att den kör en version av Linux. Det är ingen stor överraskning eftersom Linux ofta används i IoT-enheter. Denna version av Linux verkar dock vara ganska gammal.

Längre ner i utdata ger `nmap` oss enhetens Media Access Control-adress (MAC-adress). Det är en unik referens som tilldelas nätverksgränssnitt.

De första tre byten av MAC-adressen är den Organisatoriskt unika identifieraren (OUI). OUI kan användas för att identifiera leverantören av nätverksgränssnittet.

Vårt verktyg visar att den tillhör Google. Med tanke på den gamla Linuxversionen och misstanken om att det är en IoT-enhet, pekar detta direkt mot Google Home Mini-högtalaren.

Du kan göra samma typ av OUI-sökning online via Wireshark Manufacturer Lookup-sida.

Det överensstämmer med våra resultat.

För att vara helt säker kan man göra en skanning, stänga av enheten och sedan skanna igen. IP-adressen som nu saknas är enheten du stängde av.

Sun Answerbook?

Nästa mysterium är beskrivningen ”sol-svarsboken” för Raspberry Pi med IP-adress `192.168.4.18`. Samma beskrivning dök upp för `192.168.4.21`, som är en stationär Linux-dator.

`Nmap` gör sitt bästa för att gissa portens användning baserat på en lista över kända programvaruassociationer. Om portassociationen inte längre är relevant, till exempel om programvaran är uttjänt, kan du få felaktig information. Sun Answerbook-systemet kommer från tidigt 1990-tal, så det är ett minne blott.

Om det inte är Sun Microsystems programvara, vad har då dessa två enheter gemensamt?

Sökningar på nätet gav inget användbart. Det visade sig att allt med ett webbgränssnitt som inte vill använda port 80 verkar välja port 8888 som reserv. Så nästa steg var att försöka koppla upp sig till den porten med en webbläsare.

Vi använde `192.168.4.18:8888` som adress i webbläsaren. Det är formatet för att ange en IP-adress och en port. Kolon `:` används för att separera IP-adressen från portnumret.

En webbsida öppnades.

Det är administratörsportalen för enheter som kör Resilio Sync.

Vi hade glömt bort denna funktion. Så ”Sun AnswerBook”-uppgiften var inte korrekt och vi har identifierat tjänsten bakom port 8888.

En dold webbserver

Nästa problem var HTTP-port 80 på skrivaren. Vi tog IP-adressen från `nmap`-resultaten och använde den i en webbläsare. Vi behövde inte ange porten, eftersom webbläsaren som standard använder port 80.

Och se, skrivaren har en inbyggd webbserver.

Nu kan vi se antalet sidor den har skrivit ut, tonernivån och annan information.

Ytterligare en okänd enhet

Enheten med IP-adress `192.168.4.24` har inte gett oss någon information med de `nmap`-skanningar vi har gjort hittills.

Vi lade till optionen `-Pn` (ingen ping). Det tvingar `nmap` att anta att målenheten är aktiv och fortsätta med skanningarna. Det kan vara användbart för enheter som inte svarar som förväntat och gör att `nmap` tror att de är offline.

sudo nmap -A -T4 -Pn 192.168.4.24

Detta resulterade i en datadump, men inget som identifierade enheten.

Det rapporterades att den kör en Linux-kärna från Mandriva Linux. Mandriva Linux var en distribution som lades ner redan 2011. Den lever vidare med community-stödet OpenMandriva.

En till IoT-enhet? Förmodligen inte. Vi har bara två, och båda är identifierade.

Vi undersöker rum efter rum och flera enheter, men hittar inget. Låt oss slå upp MAC-adressen.

Det visade sig att det var vår mobiltelefon.