NMAP的基本使用
NMAP的基本使用
简介
nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取那台主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术
初次使用
(这里使用kali自带的作为演示)
首先我们要知道这工具该怎么用,
在kali打开终端,输入如下命令,可以知道有哪些命令
nmap -h
最基本的命令
nmap ip(域名)//可以扫描出其对外开放的服务
如
nmap www.baidu.com
nmap xxx.xxx.xxx.xxx
端口扫描常用参数
- -sT
TCP connect()扫描:这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的。 - -sS
TCP同步扫描(TCP SYN):因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。你可以发出一个TCP同步包(SYN),然后等待回应。如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接,这实际上有我们的操作系统内核自动完成的。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,你需要root权限来定制SYN数据包。 - -sP
ping扫描:有时你只是想知道此时网络上哪些主机正在运行。通过向你指定的网络内的每个IP地址发送ICMP echo请求数据包,nmap就可以完成这项任务。如果主机正在运行就会作出响应。 - -sU
UDP扫描:如果你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用这种扫描方法。nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的。 - -R
RPC扫描。这种方法和nmap的其它不同的端口扫描方法结合使用。选择所有处于打开状态的端口向它们发出SunRPC程序的NULL命令,以确定它们是否是RPC端口,如果是,就确定是哪种软件及其版本号。因此你能够获得防火墙的一些信息。诱饵扫描现在还不能和RPC扫描结合使用。 - -v
冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。使用这个选项,你可以得到事半功倍的效果。使用-d选项可以得到更加详细的信息。 - -O
这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志。换句话说,nmap使用一些技术检测目标主机操作系统网络协议栈的特征。nmap使用这些信息建立远程主机的指纹特征,把它和已知的操作系统指纹特征数据库做比较,就可以知道目标主机操作系统的类型。 - -p 指定扫描端口 nmap -p 80,445 192.168.21.1 nmap -p 1-1000 192.168.21.1
- -F 快速扫描常用端口 nmap -F 192.168.21.1
- -r 使用该选项不会对端口进行随机的顺序扫描
- –top-ports 扫描开发概率最高的1000个TCP端口 nmap –top-ports 1000 192.168.21.1 nmap –top-ports 100 192.168.21.1
端口状态
1.Open,端口开启,有程序监听此端口
2.Closed,端口关闭,数据能到达主机,但是没有程序监听此端口。
3.Filtered,数据未能到达主机。
4.Unfiltered,数据能到达主机,但是Nmap无法判断端口开启还是关闭。
5.Open|filtered,端口没有返回值,主要出现在UDP,IP,FIN,NULL和Xmas扫描
6.Closed|filtered,只出现在IP ID idle 扫描。
时序选项:
在Nmap中使用-T (0-5)可以启用时序选项,对于时序选项这里有0~5不同的选项。
IDS:入侵检测系统
-T0 (偏执的):非常慢的扫描,用于IDS逃避。
-T1 (鬼祟的):缓慢的扫描,用于IDS逃避。
-T2 (文雅的):降低速度以降低对带宽的消耗,此选项- -般不常用。
-T3 (普通的):默认,根据目标的反应自动调整时间。
-T4 (野蛮的):快速扫描,常用扫描方式,需要在很好的网络环境下进行扫描,请求可能会淹没目标。
-T5 (疯狂的):极速扫描,这种扫描方式以牺牲准确度来提升扫描速度。
(现在一般用-T4)
nmap -T4 192.168.21.1
主机发现常用命令
nmap -A baidu.com:全面扫描
nmap 127.0.0.1-200:扫描一个C段
nmap baidu.com :进行一个快速的扫描
Ping扫描:
只进行ping,然后显示出在线的主机
主机发现:
nmap -sP 192.168.126.131/24
无Ping扫描:
常用于防火墙禁止ping的情况下
nmap -P0 192.168.121.32
可以手动设置扫描的协议:
TCP:对应协议编号为6。
ICMP:对应协议编号为1
IGMP:对应协议编号为2
UDP:对应协议编号为17
用TCP,UDP,IGMP协议向目标主机发包判断是否存活;
nmap -p06,17,2 192.168.121.1/24 (默认用的为1,2,4)
TCP SYN扫描
nmap -PS -v 192.168.21.1
通常情况下Nmap 默认ping扫描是使用TCP ACK和ICMP Echo请求对目标进行扫描.目标主机的防火墙阻止这些请求时,可以用TCP SYN Ping扫描进行对目标主机存活的判断
指定端口范围进行的扫描nmap -PS80,100-200 -v 192.168.21.1
TCP ACK Ping扫描
使用-PA选项可以进行TCP ACK Ping扫描,它与TCP SYN Ping扫描是非常类似的,唯一的区别是设置TCP的标志位是ACK而不是SYN,使用这种方式扫描可以探测阻止:SYN包或ICMP Echo请求的主机。很多防火墙会封锁SYN报文,所以Nmap提供了TCP SYN Ping扫描与TCP ACK Ping扫描两种探测方式,这两种方式可以极大地提高通过防火墙的概率,我们还可以同时使用-PS与-PA来既发送SYN又发送ACK。在使用TCP ACK Ping扫描时,Nmap 会发送一一个ACK标志的TCP包给目标主机,如果目标主机不是存活状态则不响应该请求,如果目标主机在线则会返回一个RST包。
nmap -PA 192.168.21.1
nmap -PA -PS -v 192.168.21.1两种一起用
UDP Ping 扫描
nmap -PU 192.168.21.1
ARP Ping 扫描
通常在扫描局域网时使用,内网使用ARP Ping扫描方式是最有效的
nmap 默认情况下扫描局域网内的主机会使用ARP扫描,即使指定了-PS等
nmap -PR 192.168.21.1-200
列表扫描 -sL 不知道有啥用
禁止反向域名解析 -n
该选项很少使用,如果是对–台有域名绑定的服务器通常不会使用该选项;
如果是单纯扫描一-段IP, 使用该选项可以大幅度减少目标主机的相应时间,从而更快地得到结果。
反向域名解析
-R选项意为反向解析城名,使用该选项时Nmap永远对目标IP地址作反向域名解析。
该选项多用于绑定域名的服务器主机上,该选项的使用便于我们了解目标的详细信息。例如,在扫描一个C段的时候,我们更加清楚在哪- - 段IP上存在哪些网站。
扫描IPV6
nmap -6 fe80::1c98:68e:303d:496a
IPv6将会逐渐替换IPv4,但在一段相当长的时间内,IPv4 还会大量地存在。后面章节演示的IP则都是IPv4地址,如果需要扫描IPv6地址,则需要在每个语句的IPv6目标地址前面加上-6选项。
–traceroute 路由跟踪
nmap --traceroute -v baidu.com
防火墙/IDS(入侵检测)逃逸
报文分段
nmap -sV -F 192.168.1.100
IP欺骗 -D
RND 随机生成:
nmap -D RND:11 192.168.21.1
指定IP:
nmap -D 192.168.1.1,192.168.1.2,192.168.1.3 192.168.21.1
源地址欺骗-sI
nmap -sI www. 0day.co:80 192.168.126.131
源端口欺骗
nmap --source-port 53 182.168.21.1
MAC地址欺骗
spoof-mac 0会随机生成一个
nmap -sT -PN --spoof-mac 0 192.168.126.131
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Tree's Blog!