H4CK.NL
Home > Tutorials > Hacking > Poortscannen

Gebruikersnaam
Wachtwoord vergeten
Wachtwoord
Onthoud Gebruiker  

Poortscannen


Let op: Als je niet ingelogd bent kan je maar 10% zien van alle tutorials zien!!

[ Poortscannen ]
================
Theorie
-------
Poortscannen is het proces waarbij verbinding wordy gemaakt met TCP- en UDP-poorten op het doelsysteem om vast te stellen welke services
er actief zijn en in een luistertoestand staan, of beter bekend als 'listening'. Actieve services die luisteren, kunnen een onbevoegde gebruiker toelaten tot systemen doe onjuist geconfigureerd zijn of een softwareversie hebben met bekende zwakke plekken op het gebied van beveiliging. Poostscanning-tools en technieken hebben de laatste paar jaren een snelle ontwikkeling doorgemaakt. We beperken ons tot een aantal populaire hulpmiddelen en technieken die ons een heleboel informatie zullen (kunnen?) opleveren.
Er zijn een aantal doelstellingen die we willen bereiken als we gaan poortscannen op een doelsysteem. De belangrijkste zijn de volgende:
* Identificeren van zowel de TCP- als UDP-services die op het doelsysteem worden uitgevoerd;
* Identificeren van het type besturingssysteem van het doelsysteem;
* Identificeren van specifieke toepassingen of versies van een bepaalde service;
Als we deze doelen hebben bereikt kunnen we zeggen dat onze poortscan succesvol is gelukt!
Scantypen
---------
Voordat we ons verdiepen in de benodigde hulpmiddelen voor poortscanning, moeten we de verschillende poortscanningtechnieken bespreken. Een van de pioniers in het gebruik van verschillende poortscantechnieken is Fyodor. Hij heeft een tal van scaningtechnieken opgenomen in zijn programma NMAP. Veel scantypen die we bespreken, zijn door Fyodor zelf uitgewerkt!
* TCP-VERBINDINGSSCAN *
Dit type scan maakt een verbinding met de doelpoort en voert een volledig drievoudige handshake uit (SYN, SYN/ACK en ACK). Het kan gemakkelijk door het doelsysteem ontdekt worden.
* TCP SYN-SCAN *
Deze techniek word half-open scanning genoemd omdat geen volledige TCP-verbinding wordt gemaakt. In plaats daarvan wordt een SYN-pakket naar de doelpoort verstuurd. Als een SYN/ACK van de doelpoort ontvangen word, kunnen we concluderen dat de poort in de listening-status staat. Als een RST/ACK wordt ontvangen, geef dit gewoonlijk aan dat de poort niet luistert. Een RST/ACK wordt verzonden door het systeem dat de poortscan uitvoert zodat nooit een volledige verbinding tot stand komt. Deze techniek heeft het voordeel minder snel opgemerkt te worden dan een volledige TCP-verbinding en wordt mogelijk niet door het doelsysteem geregistreerd.
* TCP FIN-SCAN *
Bij deze techniek wordt een FIN-pakket naar de doelpoort gestuurd. Volgens RFC 0793 (zie www.ietf.org/rfc/) moet het doelsysteem voor alle gesloten poorten een RST terugsturen. Deze techniek werkt gewoonlijk alleen op TCP/IP-stacks onder UNIX.
* TCP XMAS TREE-SCAN *
Bij deze techniek word een FIN-, URG- en PUSH-pakket naar de doelpoort gestuurd. Volgens RFC 0793 moet het doelsysteem voor alle gesloten poorten een RST terugsturen.
* TCP NULL-SCAN *
Bij deze techniek worden alle blaggen uitgezet. Volgens RFC 0793 moet het doelsysteem voor alle gesloten poorten een RST terugsturen.
* TCP WINDOWS-SCAN *
Bij deze techniek kunnen op sommige systemen (bv AIX en FreeBSD) zowel open als gefilterde/niet-gefilterde poorten ontdekt worden aan de hand van een afwijkende wijze waarop de TCP-venstergrootte wordt aangeduid.
* TCP ACK-SCAN *
Deze techniek wordt gebruikt om firewall-regelsets te analyseren. De scan kan van nut zijn bij het bepalen of de firewall een eenvoudig pakketfilter is dat alleen tot stand gekomen verbindingen (verbindingen met de ACK-bit ingesteld) toelaat of een firewall die pakketten voorfiltert.
* TCP RPC-SCAN *
Deze techniek is specifiek voor *NIX-systemen en wordt gebruikt om RPC-poorten (Remote Procedure Call) en hun bijhorende programma en versienummer te ontdekken en identificeren.
* UDP-SCAN *
Deze techniek stuurt een UDP-pakket naar de doelpoort. Als de doelpoort antwoordt met het bericht 'ICMP Port Unreachable', wordt de doelpoort gesloten. andersom geldt dat we kunnen concluderen dat de poort open is als we geen 'ICMP Port Unreachable' ontvangen. Aangezien UDP bekend staat als een verbindingsloos protocol, is de nauwkeurigheid van deze techniek sterk afhankelijk van veel factoren met betrekking tot het gebruik van netwerk- en systeemelementen. Bovendien is UDP-scanning een heel langzaam proces als u een mechanisle probeert te scannen dat intensieve pakketfiltering toepast. Als u van plan bent UDP-scans over Internet te doen, bedenk dan dat de resultaten niet altijd betrouwbaar zullen zijn!
Praktijk
--------
We beginnen met STROBE. Dit is een respectable poortscanningprogramma dat geschreven is door Julian Assange (ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/strobe-1.06.tgz). Het is al enige tijd in omloop en het is een van de snelste en betrouwbaarste TCP-scanners. Een aantal belangrijke kenmerken van STROBE zijn het vermogen systeem- en netwerkelementen te optimaliseren en het doelsysteem efficïent te scannen. Daarnaast kunnen versie 1.04 en hoger van STROBE de bijhorende banner (indien beschikbaar) bemachtigen van iedere poort waarmee zij in verbinding komen. Met behulp hiervan kunnen zowel het besturingssysteem als de actieve service mogelijk geïdentificeerd worden. De STROBE-uitvoer geeft elke luisterende TCP-poort weer:
bash-2.05a$ strobe 213.206.1.238
Strobe 1.06 @ 1995 Julian Assange (proff@suburbia.net)
213.206.77.238 echo ------- 7/tcp Echo [95,JBP]
213.206.77.238 ftp -------- 21/tcp File Transfer
213.206.77.238 exec ------- 512/tcp Remote Process Execution
213.206.77.238 ssh -------- 22/tcp Secure Shell
213.206.77.238 telnet ----- 23/tcp Telnet [112,JBP]
213.206.77.238 lockd ------ 4045/tcp
213.206.77.238 unknown ---- 32799/tcp unassigned
Strobe is zeer betrouwbaar, maar heeft wel wat beperkingen. Strobe is alleen een TCP-scanner en biedt geen mogelijkheden voor UDP-scanning. Bovendien gebruikt STROBE alleen de techniek van de TCP-verbindingsscan als met elke poort verbinding wordt gemaakt. Dit gedrag draagt weliswaar bij aan de betrouwbaarheid van STROBE, maar zorgt er ook voor dat de poortscans gemakkelijk door het doelsysteem te ontdekken zijn! Als de scanningstechnieken van STROBE niet toereikend zijn, zijn er nog andere technieken waarvoor ik dieper in mijn gereedschapkist moet gaan duiken :D
Aangezien STROBE uitsluitend geschikt is voor TCP-scanning, gebruiken we UDP_SCAN voor het scannen van UDP-services. Kijk eens op http://wwwdsilx.wwdsi.com voor de laatste versie! Er zijn nog veel ander eprogramma's die UDP-scans uitvoeren, maar ik heb ervaren dat UDP_SCAN een van de betrouwbaarste is. Even een toepassing:
bash-2.05a$ udp_scan 213.206.77.1 1-1024
42:UNKNOWN:
53:UNKNOWN:
123:UNKNOWN:
135:UNKNOWN:
Een ander uitstekend programma is NETCAT ofwel NC, dat geschreven is door Hobbit (hobbit@avian.org). Dit programma kan enorm veel taken uitvoeren. De opties -v en -vv leveren respectievelijk uitvoerige en zeer uitvoerige outputs op. De optie -z geeft nulmodus-I/O en wordt gebruikt voor poortscanning. De optie -w2 geeft een time-out-waarde voor elke verbinding. Standaard gebruikt NC TCP-poorten. Voor het scannen van UDP-poorten moeten we de optie -u gebruiken. Zie ook het volgende voorbeeld:
bash-2.05a$ nc -v -z -w2 213.206.77.3 1-140
[213.206.77.3] 139 (?) open
[213.206.77.3] 135 (?) open
[213.206.77.3] 110 (pop-3) open
[213.206.77.3] 80 (http) open
[213.206.77.3] 53 (domain) open
[213.206.77.3] 21 (ftp) open
bash-2.05a$ nc -u -v -z -w2 213.206.77.3 1-140
[213.206.77.3] 135 (ntportmap) open
[213.206.77.3] 123 (ntp) open
[213.206.77.3] 53 (domain) open
[213.206.77.3] 42 (name) open
Nu we een aantal hulpmiddelen voor poortscanning hebben besproken hebben, komen we nu aan de Nr. 1 op dit gebied: NMAP (http://www.insecure.org/nmap/)! NMAP, geschreven door Fyodor, biedt TCP- en UDP-scanning mogelijkheden en bevat ook de eerder genoemde scanningstechnieken. Er zijn weinig hulpmiddelen die zoveel bruikbaarheid in één pakket hebben. We bekijken nu een paar van de handigste opties.
bash-2.05a$ nmap --help
Output: Een hele waslijst met help!
bash-2.05a$ nmap -sS 213.206.77.4
Output: TCP-scan
NMAP heeft nog meer mogelijkheden die de moeite waard zijn. We hebben se syntaxis gezien die gebruikt kan worden om één systeem te scannan. Met NMAP is het echter eenvoudig om een compleet netwerk te scannen. De optie -oN slaat de resultaten op in een voor mensen leesbare indeling:
bash-2.05a$ nmap -sF 213.206.77.5 -oN outputfile
Afhankelijk van hoe complex het doelnetwerk en de hosts zijn, konden de scans die tot nu toe zijn uitgevoerd eenvoudig ontdekt worden. NMAP biedt via de optie -D extra lokmiddelen (decoys) die ontworpen zijn om een doelsite te overspoelen met overbodige informatie. Het principe van deze optie is dat gelijktijdig met een echte scan decoy-scans worden verstuurd. Dit wordt gedaan door het brondadres van echte servers te vervalsen en deze valse scans met de echte poortscan te mengen. Het doelsysteem zal dan zowel aan de valse adressen als aan jouw werkelijke poortscan antwoorden. Bovendien zit het doel met het probleem om alle scans te moeten opsporen om vast te stellen welke echt zijn en welke niet. Denk eraan dat het decoy-adres actief moet zijn, anders kunnen uw scans op het doelsysteem een vloedgolf aan SYN-pakketten veroorzaken met een DoS (Denail-of-Service) als gevolg! Een voorbeeldje:
bash-2.05a$ nmap -sS 213.206.77.1 -D 10.1.1.1
Output: Het resultaat...
Nog een handige scanoptie is ident (zie ook RFC 1413). Ident wordt gebruikt om de identiteit van een gebruiker van een bepaalde TCP-verbinding vast te stellen door te communiceren met poort 113. Dit werkt het beste onder een UNIX systeem:
bash-2.05a$ nmap -I 213.206.77.8
Output: Poortscan met ident
Je ziet aan de hand van dit voorbeeld dat we de eigenaar van elk proces kunnen vinden. Slimme lezertjes hebben misschien opgemerkt dat de webserver als (meestal toch) 'root' draait in plaats van een onbevoegde gebruiker zoals 'nobody', wat in dat laatste geval een kenmerk is van gebrekkige beveiliging.
Ik heb zowat de belangrijkste en nuttigste dingen hierboven besproken voor de *NIX systemen maar er zijn ook mensen die nog zijn aan het prullen met Windows...
Poortscannen onder Windows
--------------------------
Tot nu toe heb ik dus enkel de aandacht besteed aan onze UNIX-gebruikers. In dit deel van de tekst gaan we ook de Windows-gebruikers wat verder helpen met enkele bruikbare tools!
Een van de meest veelzijdige hulpmiddelen voor netwerkverkenning is NetScan Tools Pro 2000 ofwel NSTP2K. Dit toepassingsprogramma is zéér uitgebreid, een aanrader maar deze gaan we voorlopig niet bespreken.
Dan hebben we SuperScan, van Robin Keir (http://membsers.home.com/rkeir/software.html). Deze is eveneens een snelle en flexibele TCP-poortscanner (en gratis). Evenals NSTP2K maakt het ook flexibele specificatie van doel-IP's en poortlijsten mogelijk. Gemakkelijker dan SuperScan kan niet. Nogtans geeft het programma een aantal van de meest uitgebreide poortlijsten die ik ooit gezien heb.
NTOScanner van NTObjectives Inc. (http://www.ntobjectives.com/) is een snelle grafische TCP-poortscanner! Het programma is echter niet zo flexibel in het specificeren van de doelen en poorten, en vereist bovendien dat hosts eerst gepinged worden bij het scannen van klasse-C-netwerken. Niet echt een aanrader dus...
De Windows UDP Port Scanner (WUPS - http://www.ntsecurity.nu/toolbox/wups/) is betrouwbaar, grafisch en behoorlijk actieve UDP-poortscanner. Het is een zeer goed hulpmiddel voor je UDP-scans...

Let op: Als je niet ingelogd bent kan je maar 10% zien van alle tutorials zien!!

h4ck.nl
Rated 9/10 based on 714 reviews

Je kan je eigen review plaatsen als je lid bent.

Â