2.2.8. Het verifiëren van welke poorten luisteren
Na het instellen van de netwerk services, is het belangrijk om aandacht te geven naar welke poorten van de interfaces van het netwerk van het systeem feitelijk geluisterd wordt.
Er zijn twee basis benaderingen voor het opsommen van de poorten die luisteren op het netwerk. De minst betrouwbare benadering is het bevragen van de netwerk status stack met gebruik van commando's zoals netstat -an
of lsof -i
. Deze methode is minder betrouwbaar omdat deze programma's niet met de machine verbinden vanaf het netwerk, maar in plaats daarvan controleren wat er op de server draait. Om deze reden zijn deze toepassingen vaak doelen voor aanvallers. Crackers proberen hun sporen te verbergen als ze ongeoorloofde poorten openen door het vervangen van netstat
en lsof
met hun eigen, veranderde versies.
Een meer betrouwbare manier om te controleren welke poorten op het netwerk luisteren is om een poort scanner te gebruiken zoals nmap
.
Het volgende commando uitgevoerd vanaf de console bepaalt welke poorten luisteren naar TCP verbindingen op het netwerk:
nmap -sT -O localhost
De output van dit commando is als volgt:
Starting Nmap 4.68 ( http://nmap.org ) at 2009-03-06 12:08 EST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1711 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind
113/tcp open auth
631/tcp open ipp
834/tcp open unknown
2601/tcp open zebra
32774/tcp open sometimes-rpc11
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.17 - 2.6.24
Uptime: 4.122 days (since Mon Mar 2 09:12:31 2009)
Network Distance: 0 hops
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.420 seconds
Deze output laat zien dat het systeem portmap
draait door de aanwezigheid van de sunrpc
service. Er is echter ook een geheimzinnige service op poort 834. Om te controleren of de poort verbonden is met de officiële lijst van bekende services, type je:
cat /etc/services | grep 834
Dit commando geeft geen output terug. Dit geeft aan dat hoewel de poort zich in een gereserveerde reeks bevindt (0 tot en met 1024) en root toegang nodig heeft om geopend te worden, het niet verbonden is met een bekende service.
Vervolgens zoeken we naar informatie met het gebruik van netstat
of lsof
Om poort 834 te controleren met netstat
, gebruik je het volgende commando:
netstat -anp | grep 834
Het commando geeft de volgende output terug:
tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind
De aanwezigheid van de open poort in
netstat
is geruststellend omdat een cacker die een poort op een gekraakt systeem stiekem opent het niet zal toestaan dat dit ontdekt wordt met dit commando. De
[p]
optie laat ook het proces ID (PID) zien van de service die de poort opende. In dit geval behoort de open poort toe aan
ypbind
(
NIS), wat een
RPC service is die in combinatie met de
portmap
service afgehandeld wordt.
Het lsof
commando laat soortgelijke informatie zien als netstat
omdat het ook in staat is om open poorten te verbinden met services:
lsof -i | grep 834
Het relevante gedeelte van de output van dit commando is:
ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN)
ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)
Deze gereedschappen laten veel zien over de status van services die op een machine draaien. Deze gereedschappen zijn flexibel en bieden een schat van informatie over netwerk services en instellingen. Refereer naar de manual pagina's voor lsof
, netstat
, nmap
, en services
voor meer informatie.