windows PowerShell内置的端口扫描器使用 |
您所在的位置:网站首页 › win如何开放端口 › windows PowerShell内置的端口扫描器使用 |
前言
可能我们想知道远程主机的端口开放,首先想到的都是Nmap工具,但有时工具获取困难,且Nmap获取信息有限,这时PowerShell就有用武之地了。 用PowerShell实现基本的端口扫描CMD进入powershell:
上述示例中扫描的端口范围是1-1024,可修改为你想扫描的端口范围,如(22…58)、(8080…9000)等端口范围。 此外,PowerShell中另一种可用的方法是用Test-NetConnection命令,其能够输出更多有用的信息。 **【示例2】:Test-Netconnection 针对某IP段中单个端口的扫描 PS C:\User\my>foreach ($ip in 1..20) {Test-NetConnection -Port 80 -InformationLevel "Detailed" 192.168.1.$ip}注:win7版本的powershell没有Test-NetConnection ,win0系统有该命令 参数说明: 1)foreach ($ip in 1…20) {} - 循环遍历数字1到20 2)Test-NetConnection - Test-Connection是一个用来测试不同种类的网络连接的工具 3)-Port 80 - 检查80端口是否可用 4)-InformationLevel “Detailed” - 提供详细的输出信息 5)192.168.1. i p − 针 对 列 表 中 的 I P 地 址 , 依 次 尝 试 向 80 端 口 发 起 连 接 。 在 本 例 中 , 变 量 ip - 针对列表中的IP地址,依次尝试向80端口发起连接。在本例中,变量 ip−针对列表中的IP地址,依次尝试向80端口发起连接。在本例中,变量ip从1循环至20 当然,构建一个可以遍历多个系统的多个端口的扫描器也是可行的。 【示例3】: ** 针对某IP段 & 多个端口的扫描器 PS C:\User\my>1..20 | % { $a = $_; 1..1024 | % {echo ((new-object Net.Sockets.TcpClient). Connect("10.0.0.$a",$_)) "Port $_ is open!"} 2>$null}上述命令执行较慢,改进版如下: PS C:\User\my>1..20 | % { $a = $_; write-host "------"; write-host "10.0.0.$a"; 22,53,80,445 | % {echo ((new-object Net.Sockets.TcpClient).Connect("10.0.0.$a",$_)) "Port $_ is open!"} 2>$null}许多安全的网络环境会开启出口流量过滤控制,以限制对某些服务的出口协议的访问。这对于提升HTTP/HTTPS/DNS通道的安全性是有好处的,原因之一就在于此。然而,当需要识别出可替代的出站访问时,我们可以在内网中使用PowerShell来评估网络防火墙上的出口过滤器。 PowerShell测试出口过滤器: PS C:\User\my>1..1024 | % {echo ((new-object Net.Sockets.TcpClient).Connect("allports.exposed",$_)) "Port $_ is open" } 2>$null |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |