Barridos ping
Para descubrir todos los hosts activos de una red de forma rápida podemos realizar un barrido ping o ICMP. En este ejemplo se usa un operador de rango para hacer ping a todas las IP's de una red /24 y del resultado filtramos los que contienen la linea TTL, que son los que nos interesan (esto excluye las IP's que respondieron con tiempo de espera agotado)PS C:\> 1..254 | % {echo "192.168.88.$_"; ping -n 1 -w 100 192.168.88.$_} | Select-String ttl Respuesta desde 192.168.88.1: bytes=32 tiempo=2ms TTL=64 Respuesta desde 192.168.88.214: bytes=32 tiempo=2ms TTL=64 Respuesta desde 192.168.88.229: bytes=32 tiempo<1m TTL=128 PS C:\>
Escaneo de puertos TCP
Para probar si un puerto TCP está abierto, podemos usar el cmdlet Test-NetConnectionPS C:\> foreach ($ip in 1..254) {Test-NetConnection -Port 80 -InformationLevel "Detailed" 192.168.88.$ip} ComputerName : 192.168.88.1 RemoteAddress : 192.168.88.1 RemotePort : 80 NameResolutionResults : 192.168.88.1 MatchingIPsecRules : NetworkIsolationContext : Private Network InterfaceAlias : vEthernet (Ether-wifi) SourceAddress : 192.168.88.229 NetRoute (NextHop) : 0.0.0.0 TcpTestSucceeded : True ADVERTENCIA: TCP connect to (192.168.88.2 : 80) failed ADVERTENCIA: Ping to 192.168.88.2 failed with status: TimedOut ComputerName : 192.168.88.2 RemoteAddress : 192.168.88.2 RemotePort : 80 NameResolutionResults : 192.168.88.2 MatchingIPsecRules : NetworkIsolationContext : Private Network InterfaceAlias : vEthernet (Ether-wifi) SourceAddress : 192.168.88.229 NetRoute (NextHop) : 0.0.0.0 PingSucceeded : False PingReplyDetails (RTT) : 0 ms TcpTestSucceeded : False
El comando anterior arroja resultados muy verbose para mi gusto, la siguiente alternativa facilita probar un rango de puertos y da como resultado una salida mas limpia:
PS C:\> 1..1024 | % { echo ((new-object Net.Sockets.TcpClient).Connect("192.168.61.1",$_)) "$_ is open" } 2>$null 22 is open 80 is open 443 is open PS C:\>
Eso es todo. En una próxima entrada analizaremos opciones para probar puertos UDP con PowerShell.
0 comentarios:
Publicar un comentario