Nmap 是 网络探测工具和安全/端口扫描器。
官网链接 Nmap参考指南(Man Page)
官网下载地址 Downloading Nmap
到官网下载对应操作系统的安装包,
默认配置,一直下一步安装即可。安装过程中备份下安装路径,后续用到。
Win10 为例,
此电脑–右键选择属性–高级系统设置–高–环境变量–用户变量,在 Path 里添加 Nmap 的安装路径。
打开命令行工具,输入 nmap -v 查看版本,如果显示如下,说明可以正常使用了。
如果不行,重启后再试。
参考官网,列出部分参数和部分释义。
参数 | 官网释义 |
---|---|
-p | 该选项指明您想扫描的端口,覆盖默认值。 单个端口和用连字符表示的端口范围(如 1-1023)都可以。 范围的开始以及/或者结束值可以被省略, 分别导致Nmap使用1和65535。所以您可以指定 -p-从端口1扫描到65535。 如果您特别指定,也可以扫描端口0。 对于IP协议扫描(-sO),该选项指定您希望扫描的协议号 (0-255)。 当既扫描TCP端口又扫描UDP端口时,您可以通过在端口号前加上T: 或者U:指定协议。 协议限定符一直有效您直到指定另一个。 例如,参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。 注意,要既扫描 UDP又扫描TCP,您必须指定 -sU ,以及至少一个TCP扫描类型(如 -sS,-sF,或者 -sT)。如果没有给定协议限定符, 端口号会被加到所有协议列表 |
-F | 快速 (有限的端口) 扫描. 在nmap的nmap-services 文件中(对于-sO,是协议文件)指定您想要扫描的端口。 这比扫描所有65535个端口快得多。 因为该列表包含如此多的TCP端口(1200多),这和默认的TCP扫描 scan (大约1600个端口)速度差别不是很大。如果您用–datadir选项指定您自己的 小小的nmap-services文件 ,差别会很惊人。 |
-T | Nmap提供了一些简单的 方法,使用6个时间模板,使用时采用-T选项及数字(0 - 5) 或名称。模板名称有paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)。前两种模式用于IDS躲避,Polite模式降低了扫描 速度以使用更少的带宽和目标主机资源。默认模式为Normal,因此-T3 实际上是未做任何优化。 |
-6 | 启用IPv6扫描 |
-A | 激烈扫描模式选项。 这个选项启用额外的高级和高强度选项,目前还未确定代表 的内容。目前,这个选项启用了操作系统检测(-O) 和版本扫描(-sV),以后会增加更多的功能。 目的是启用一个全面的扫描选项集合,不需要用户记忆大量的 选项。这个选项仅仅启用功能,不包含用于可能所需要的 时间选项(如-T4)或细节选项(-v)。 |
-Pn | 将所有主机视为在线,跳过主机发现 |
示例 ,nmap -p 1-65536 -T4 -A -Pn 192.xxx.xx.xx
192.xxx.xx.xx 是安卓设备的IP地址。
扫描会花费一些时间,耐心等待。
扫描结果很长,截取一部分,
扫描到的开放端口是 1478 、6666 、8881、11222 。
多次测试发现,电脑和Android设备在相同网段下和不同网段下的测试结果不同,建议电脑和Android设备在相同网段下测试。
使用 netstat
命令查看端口占用情况,netstat --help
查看参数说明,
console:/ # netstat --help
Toybox 0.8.6-android multicall binary (see toybox --help)
usage: netstat [-pWrxwutneal]
Display networking information. Default is netstat -tuwx
-r Routing table
-a All sockets (not just connected)
-l Listening server sockets
-t TCP sockets
-u UDP sockets
-w Raw sockets
-x Unix sockets
-e Extended info
-n Don't resolve names
-W Wide display
-p Show PID/program name of sockets
使用 netstat -anp
命令得到结果,就知道对应的端口是被哪个应用占用了。
(ps:这里的端口和 nmap 扫描到的端口对应不上是因为是实际操作和写文章时用的设备不一样,仅贴图做参考)