nmap使用详解

nmap简介

nmap Network Mapper(网络映射器)是一个开源并且为了Linux系统管理员或者网络管理员的万能的工具。Nmap用于浏览网络,执行安全扫描,网络审计以及在远程机器找到开放端口。它可以扫描在线主机,操作系统,滤包器远程主机打开的端口

nmap安装方式:
   yum install nmap                   [基于Red Hat系统]

   $ sudo apt-get install nmap  [基于Debian(kali)系统]

扫描命令格式:

   nmap [扫描类型...] [通用选项] {扫描目标说明}

扫描方式:
   ①对主机名扫描  nmap hostname
   ②对IP地址扫描  nmap IP
   ③对域名扫描    nmap 域名

扫描参数说明:
关于被扫描主机的

-IL  inputfilename    可以从文件中读取ip
--exclude            不扫描参数后的地址
-sn  ping scan    只用ping,不扫描端口
-Pn nmap  扫描一个端口之前会检测目标是否可达。这个参数强制跳过这个步骤,认为所有的目标可达。
--dns-servers  使用指定的DNS服务器
--traceroute   顾名思义


关于扫描方式的
-sS TCP     SYN扫描,只发SYN包
-sT connect 有链接的扫描
-sA         ACK扫描
-sU UDP     扫描
-sN TCP     NULL
-sF TCP     FIN扫描

关于指定扫描端口的
-p   指定端口
--exclude-ports 某些端口不扫描
-F   快速扫描。只扫描一些端口
关于服务和协议的探测
-sV     探测协议

操作系统探测
-O    探测操作系统


扫描速度,计时器和性能设定
-T(0-5)    扫描频率,越大越快


穿墙与免杀
-S  spoof,伪造源IP
-e   使用特定端口
-g/--source-port   使用指定端口


输出格式
-oN     output Normally 正常输出
-oX     XML格式输出
-v      输出更多详情 写的v越多,越详细。比如-vv -vvv
-d    debug 的级别。和-v用法一样。越多d输出越多
--reason   输出程序判断一个端口是这个状态的原因
--open   只看开的口
若需要更详细的参数解释请转至:https://blog.csdn.net/github_35068711/article/details/51530422


Nmap所识别的6个端口状态:
open(开放的)

应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描 的主要目标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。
closed(关闭的)
关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。 它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有所帮助。 因为关闭的关口是可访问的,也许过会儿值得再扫描一下,可能一些又开放了。 系统管理员可能会考虑用防火墙封锁这样的端口。 那样他们就会被显示为被过滤的状态,下面讨论。
filtered(被过滤的)
由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则 或者主机上的软件防火墙。这样的端口让攻击者感觉很挫折,因为它们几乎不提供 任何信息。有时候它们响应ICMP错误消息如类型3代码13 (无法到达目标: 通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧, 不做任何响应。 这迫使Nmap重试若干次以访万一探测包是由于网络阻塞丢弃的。 这使得扫描速度明显变慢。
unfiltered(未被过滤的)
未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。 只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。 用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。
open|filtered(开放或者被过滤的)
当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。 UDP,IP协议, FIN,Null,和Xmas扫描可能把端口归入此类。
closed|filtered(关闭或者被过滤的)
该状态用于Nmap不能确定端口是关闭的还是被过滤的。 它只可能出现在IPID Idle扫描中。


高级扫描方式:
  

  nmap 192.168.31.1/24                          扫描一个网段
  nmap 192.168.31.*                             扫描一个网段
  nmap 192.168.31.1                             扫描一个ip
  nmap 192.168.31.1 192.168.31.2                扫描两个ip
  nmap 192.168.31.101,102,103                   扫描3个ip 
  nmap 192.168.31.1-100                         扫面1到100的ip
  nmap -iL file                                 扫描一个文件中的ip
  nmap 192.168.31.1/24 -exclude file            扫描除了file中的该网段的所有ip//没成功,好像file需要特殊 格式
  nmap 192.138.31.1/24 -exclude 192.168.31.1    扫描除了1ip外的所有ip
  nmap 192.168.31.1 -p 80,21,23                 扫描特定ip 的端口
  nmap 192.168.31.1 -p 80-90                    扫描范围内的端口
  nmap 192.168.31.55 -A                         扫描操作系统和tcpip的指纹
  nmap -sP 192.168.31.*                         扫描是否在线
  nmap -F 192.168.31.55                         快速扫描,仅扫描nmap-services中列出的端口
  nmap --iflist                                 打印主机路由及接口
  nmap -p T:8888,80 192.168.31.55               指定端口类型
  nmap -sV 192.168.31.55                        查找开放端口对应的服务版本号


  nmap -PS 192.168.31.55                        使用TCP ACK和TCP Syn方法来扫描远程主机
  nmap -PA -p 22,80 192.168.0.101               使用TCP ACK扫描远程主机上特定的端口
  nmap -PS -p 22,80 192.168.0.101               使用TCP Syn扫描远程主机上特定的端口
  nmap -sS 192.168.0.101                        执行一次隐蔽的扫描
  nmap -sT 192.168.0.101                        使用TCP Syn扫描最常用的端口
  nmap -sN 192.168.0.101                        执行TCP空扫描以骗过防火墙
 
 


用nmap扫描192.168.1.1的80,21,23号端口。

显示出该ip的这三个端口的状态与服务。


其余扫描方式可在系统终端一一测试,希望对大家有所帮助!!!

猜你喜欢

转载自blog.csdn.net/abraham_1/article/details/79810279