nmap基础使用
Nmap是个强大的扫描工具,之前短暂接触后并没有深入进行学习和研究,最近正好又看到,也重新捡捡过去看过的知识,另外再深入学习一下。
1、用主机名和IP地址扫描
用主机名和IP地址进行扫描大概是最为常见的一种扫描方式,示例:nmap www.baidu.com
这样你可以得到被扫描目标的端口、服务和Mac信息
2、列出详细信息
使用-v参数来让nmap返回更详细的信息
3、扫描多个目标
如果你已经知道了多个目标的IP或者主机名,你可以直接在命令后面添加多个需要扫描的目标。示例:nmap 192.168.0.1 192.168.1.2
如果你并不知道,只是需要扫描整个子网的网段或者是某个IP范围内的目标,可以使用通配符来扫描。示例:nmap 192.168.0.这样nmap就会自动扫描从192.168.0.0到192.168.0.255的所有目标,然后给出信息。
可是如果在这个子网里你已经知道某台机器的信息,不想再次扫描,需要用到-exclude参数来排除一些目标。示例:nmap 192.168.0.* --exclude 192.168.0.1
如果你并不想扫描整个子网,而是同一子网下的多个目标,可以对IP地址的最后一位进行添加来执行扫描。示例:nmap 192.168.0.1,2,3这样nmap就会对这三个目标进行扫描。又或者可以使用nmap 192.168.0.1-10这样来指定多个扫描的目标也是可以的。
如果你已经有了一个信息列表,也可以保存成txt文件,而无需手动输入。示例:nmap -iL object.txt这样nmap就会对你txt文件中的每个目标进行扫描。
4、得到目标的系统信息
得到目标系统的信息是必不可少的,我们为了得到系统信息和路由跟踪,需要-A参数来实现。示例:nmap -A 192.168.0.1
当然,nmap是通过配对来实现操作系统信息的判别,所以nmap有时并不能准确识别出真实的信息,不提供任何信息或者提供好几种可能性都是正常的。
-A并不是唯一的选择,-O和-osscan-guess都可以进行操作系统信息的探测。
5、检测目标保护措施
现在已经过了洪水攻击和DDoS的嚣张时刻,虽然大规模DDoS依旧恐怖,但是已经不在是首选的攻击手段。
因为防护性的考虑,所以如果存在过滤规则或者防火墙的目标都会对数据包进行过滤。那么我们怎么知道目标是否存在这类的防护手段呢?
我们可以采用-sA和-PN两个参数来进行探测扫描。
6、扫描在线主机
扫描一个网段的过程中,如果目标并没有上线,有可能一无所获,所以在扫描之前可以先判断是否有主机存活。我们采用-sP参数来判断存活主机都有哪些。示例:nmap –sP192.168.0.*
7、快速扫描
Nmap大多数扫描都是非常迅速的,但也有时会出现极其缓慢的情况,那么如果我只是想初步进行判断,而不是深入分析的话,一次快速扫描可以捕捉到你想要的大多数信息。
示例:namp –F 192.168.0.1
这个参数扫描的范围仅限定在nmap-services这个文件中的端口,如果一般不加参数的命令,扫描范围是1000个最有可能开放的端口。
8、判断版本
新的软件版本一般来讲会提供更好的性能和体验,所以紧跟时代形势,使用新版本的软件对我们来说也是至关重要的一点。
我们可以通过-V来对安装的nmap版本进行查看,如果升级的话可以采用apt-get update(默认你使用的是Kali)
9、特殊扫描
如果你只是关心某个端口的开启情况,就没有必要让nmap从头到尾扫描一遍,则可以使用-p选项来指定你想要的那个端口。示例:nmap –p80 192.168.0.1或者nmap –p 80,443 192.168.0.1又或者nmap –p80-160 192.168.0.1
按顺序扫描可以使用-r来实现,这样nmap不会随机进行扫描。示例:nmap –r192.168.0.1
只扫描TCP端口和UDP端口分别使用-p T:80,8888和-sU 53来实现对某个特定端口的扫描。
10、扫描本机的网络接口
本机的网络信息是不是只有ifconfig一个选择呢?显然不是,nmap也提供了-iflist来检测本机的信息。示例:nmap -iflist
11、目标服务详细信息
目标开启的服务的版本也是我们应该关注的问题,在特定版本下所存在的漏洞都是我们应该加以利用的工具。
示例:nmap –sV192.168.0.1
12、所谓ACK和SYN扫描
Ping的请求现在会被大多数的防火墙所拦截,直接丢弃数据包。但是我们可以采用TCPACK和TCP SYN的方式来进行扫描。
通过向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST包,说明被屏蔽。
SYN称为半开放扫描,因为这种技术使得Nmap不需要通过完整的握手,就能获得远程主机的信息。Nmap发送SYN包到远程主机,但是它不会产生任何会话.因此不会在目标主机上产生任何日志记录,因为没有形成会话。这个就是SYN扫描的优势。
示例:nmap –PS192.168.0.1
依旧只关心特定端口的扫描应该怎么做呢?示例:nmap –PA–p 80 192.168.0.1或者nmap –PS–p 80 192.168.0.1
13、隐蔽扫描
大张旗鼓的多次扫描容易被防火墙记录下来,然后强行过滤,为了降低被发现的概率,我们可以采用隐蔽扫描。
示例:nmap –sS 192.168.0.1
14、使用TCP SYN扫描常用端口
示例:nmap –sT192.168.0.1
15、TCP空扫描
示例:nmap -sN 192.168.0.1
16、完整扫描
一次完整全面的扫描包括主机存活、操作系统版本探测、应用程序版本探测、端口扫描等等。
示例:nmap –T4–A –v 192.168.0.1
扫描速度共有6个(0-5)等级,一般来讲可以使用T4,速度越快越可能被过滤和屏蔽。-v是显示冗余信息
17、主机发现的详细参数
-sL:List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。
-sn:Ping Scan 只进行主机发现,不进行端口扫描。
-Pn:将所有指定的主机视作开启的,跳过主机发现的过程。
-PS/PA/PU/PY[portlist]:使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。
-PE/PP/PM:使用ICMPecho, timestamp, and netmask 请求包发现主机。-PO[protocollist]:使用IP协议包探测对方主机是否开启。
-n/-R:-n表示不进行DNS解析;-R表示总是进行DNS解析。
--dns-servers<serv1[,serv2],...>: 指定DNS服务器。
--system-dns:指定使用系统的DNS服务器
--traceroute:追踪每个路由节点
18、端口扫描详细参数
TCP FIN/Xmas/NULL扫描。这三种扫描方式被称为秘密扫描(Stealthy Scan),因为相对比较隐蔽。FIN扫描向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包,如果收到对方RST回复包,那么说明该端口是关闭的;没有收到RST包说明端口可能是开放的或被屏蔽的(open|filtered)。
其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有flags都为0的TCP包。
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimonscans的方式来对目标主机进行扫描。
-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
--scanflags
-sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
-sO: 使用IP protocol 扫描确定目标机支持的协议类型。
-b
19、版本检测详细参数
-sV:指定让Nmap进行版本侦测
--version-intensity
--version-light:指定使用轻量侦测方式 (intensity 2)
--version-all:尝试使用所有的probes进行侦测 (intensity 9)
--version-trace:显示出详细的版本侦测过程信息。

浙公网安备 33010602011771号