netwerk scan

waarom?

Ik moest een nieuw netwerk gaan beheren dus wilde weten hoe het in elkaar zat en wat de knelpunten waren. Het kan ook zijn dat een netwerk simpelweg onderzocht moet worden op aandachtspunten/problemen
Bedenk wel dat een gerouteerd netwerk per subnet bekeken moet worden omdat er op een subnet weinig te zien is van andere subnetten. Of men moet op een verbinding gaan zitten tussen een serverpool bijvoorbeeld maar dan is meestal een snifbox nodig (full duplex verbindingen) met voldoende snelheid voor die link. Op een andere howto heb ik geschreven hoe zelf een snifbox 10/100 mbit zelf eenvoudig te bouwen.
Wanneer we een machine in een geswitched netwerk plaatsen zien we daarop alleen broadcast verkeer en verkeer dat naar alle poorten geflooded wordt. Dit is op zich al behoorlijk waardevol zoals we verderop kunnen zien.

benodigheden

Het is wel praktisch om wat tools ter beschikking te hebben hiervoor. Ik ga zelf uit van een linux machine omdat daar meer en betere tools voor beschikbaar zijn.
  • Een netwerksniffer zoals Wireshark of tcpdump
  • een portscanner zoals nmap
  • dns check met nslookup/dig
  • ping/arping/arp
  • netwerk monitor zoals ntop

    Wat kun je zo vinden?

    Er is met wat scannen en sniffen best veel uit een netwerk te halen.
    Een eerste stap zal zijn te bekijken op welke ip reeks we ons bevinden. Een sniffer zal dit snel laten zien. De volgende stap is een scan te doen om te bekijken welke hosts we allemaal kunnen vinden.
    Stel dat we de reeks 172.16.0.0 vinden met een masker 255.255.0.0. Met het volgende commando doen we dan een "rondje": nmap -sP 172.16.0.0/16 Dit gaat even duren want er moeten 65000 hosts gescanned worden. Sla de output gelijk op in een file dan hoef je het maar een keer te doen. Willen we meer van een host weten dan doen we een portscan: nmap 172.16.10.1 Nu zien we de poorten die open staan op deze machine. Hieraan is deels te zien wat de functie van de machine is. De optie -O doet ook een OS detectie zodat we weten wat er op de machine draait. Bekende poorten zijn o.a.:
    20/21 ftp
    22 telnet
    23 ssh
    80 http
    443 https
    137 netbios
    1494 ica (terminal server)
    1521 sql
    3306 mysql
    3389 rdp (remote desktop)
    4000 remoteanything
    5800 vnc
    5900 vnc
    
    Vinden we een poort 80 open dan is het een kleine moeite even in een browser te bekijken wat de webpagina prijs geeft. Dit kan een webserver zijn maar ook een device met een ingebouwde webserver voor beheer (o.a. ups-en, pdu's, temp. sensoren en printers). Hier kan het handig zijn om default wachtwoorden op te zoeken op internet om misschien in te kunnen loggen op deze devices (bijvoorbeeld apc devices hebben apc/apc als naam en wachtwoord). Een telnet naar een machine geeft soms ook al info wat voor machine het betreft.

    Meestal en hopelijk is er een structuur te ontdekken. Aparte pools voor servers, clients en printers.
    Wanneer we op onze machine dhcp aanzetten een een dhcp request versturen (dhclient) dan weten we of er een dhcp server is en we krijgen meestal een gateway terug en een dns/dhcp server. Die weten we dan ook vast. We zien dan ook of de dhcp server en de dns server in hetzelfde subnet zitten of een ander subnet, meestal hebben netwerken met aparte subnetten een dhcp/dns server (pool) in 1 van de subnetten of het moet een netwerk met wan verbindingen zijn.

    Om namen van machines/servers te weten te komen zijn er twee mogelijkheden. Een dnslookup of een nmblookup. De eerste checkt de dns server en de tweede doet een broadcast om de machine zelf te laten zeggen wat zijn naam is: nslookup 172.16.1.20 nmblookup -A 172.16.1.20 Soms krijgen we van beide antwoord en is dat verschillend. Dan hebben we al een foutje te pakken want dan heeft de machine in dns een andere naam dan hij zelf gekregen heeft.
    Bij de nmblookup zien we ook de werkgroep of het domein waar de machine in zit. Dit zou eenduidig moeten zijn.
    Een traceroute naar een internet adres zal misschien tonen langs welke hops het verkeer gaat mits dit niet geblokkeerd is. We weten dan meer welke routers er in het netwerk zitten en misschien of er nog meer subnetten zijn.

    De volgende stap is de sniffer te starten en te zien wat er voorbij komt. Alleen al aan broadcast verkeer kunnen we veel zien.
  • arp entries geven aan dat een machine het mac adres van een andere machine wil weten.
  • netbios entries laten machine namen zien die machines hebben of die gezocht worden.
  • ipx verkeer is tegenwoordig meestal ongewenst en vaak (nog) aanwezig. zonde van de bandbreedte. Vooral printers hebben alle protocollen aan staan zoals smb/ipx/appletalk wat meestal zo uit kan.

    Soms zien we in de sniffer unicast verkeer voorbij komen wat op een geswitched netwerk raar is. een enkel pakket mag maar een volledige stream betekent dat er iets mis is. Een switch zou het pakket moeten leren en dan niet meer flooden. Bij udp verkeer waarbij ook nog eens geen antwoord gestuurd wordt kan dit wel voorkomen. Wat kan is dat dubbele netwerkkaarten in een server verkeerd geconfigureerd zijn (teaming) maar wel dubbel aangesloten. Dan gaan pakketten wisselend over de eerste en over de tweede netwerkkaart. Een switch leert zo niet de poort en alle verkeer wordt geflooded. Puntje van aandacht dus.

    conclusie

    Met enige tools is een niet te moeilijk netwerk met enige inspanning goed in kaart te brengen met alleen een machine in dat netwerk.


    Geef hieronder uw commentaar, mening of aanvullingen op deze pagina en lees de eventuele meldingen van andere lezers.

    datum: 2010-08-10 16:18:36     naam: sjoerd sjaak     email: sjoerdsjaak-ed-plaggenhut.nl
    Is het ook mogelijk om dmv van de hierboven beschreven methode te bepalen wat de kleur van de gebruikte ethernetkabels is? Wel zo handig omdat je dan meteen de kleur van de gebruikte ethernetkabels weet. Zodra je de kleur weet hoef je niet meer te kijken welke kleur ze hebben omdat je dat dan al weet.

    :D



    naam:
    email:
    spamcheck: 1999+1=...
    opmerking:
       











    Website door Wouter Barendsen, 2005-2016