nmap学习笔记

 

nmap的功能

  端口扫描:默认情况下,扫1000个常用端口

  主机探测:查找目标网络中的在线主机,默认情况下,nmap使用四种方式进行查找

       ICMP echo请求(ping)、向443端口发送TCP、SYN包、向80端口发送TCP、ACK包和ICMP  

  服务、版本检测:发现开放端口后,可以进一步检查目标主机的检测服务协议、应用程序名称、版本号等信息

  操作系统检测:想远程主机发送一系列的数据包,并能够将远程主机的响应和操作系统的指纹数据库进行对比

  网络路由跟踪:通过多种协议访问目标主机的不同端口,尽可能访问目标主机。

  Nmap脚本引擎:包含各种脚本

可以识别的端口的六种状态

  开放:工作于开放端口的服务器端的应用程序,可以受理TCP连接、接受UDP数据报或者响应SCTP(流控制传输协议)请求

  关闭:可以访问有关端口,但是没有应用程序工作在该端口上

  过滤:不能确定该端口是否开放,包过滤设备屏蔽了我们向目标发送的探测包

  未过滤:虽然可以访问到指定端口,但是不能确定该端口处于开放状态

  打开|过滤:认为端口处于打开或者过滤,不能确定

  关闭|过滤:认为端口处于关闭状态或者过滤状态,但是不能确定是哪种状态

常见用法

  端口扫描:nmap ip

  全端口扫描/指定端口扫描:nmap -p-/ -p port1 port2

  网段扫描:nmap 192.168.160.1-253、nmap 192.168.160.1/24

常用选项

  -sV:服务版本识别。端口扫描过程中检测服务端软件的版本信息

  -O:识别目标主机的操作系统

  -Pn:禁用主机检测,如果主机屏蔽了ping请求,nmap可能会认为主机没有开机,此选项默认所有主机存活

  -A:强力检测选项:使用-A,nmap将主动检测目标主机的服务版本识别(-sV)、操作系统识别(-O)、脚本扫描(-sC)、traceroute(-traceroute)

  -T4:快速扫描

  -iL:批量扫描端口,-iL <inputfilename>: Input from list of hosts/networks

TCP扫描选项

  -sT:TCP扫描连接,指定选项后,程序将和目标主机每个端口进行完整的三次握手。

       这样非常慢,而且扫描行为可能被目标主机记录下来。

     如果启动nmap的用户权限不足,默认情况将以这种模式进行扫描

  -sS:SYN扫描,半开连接,采用该选项后,nmap将含有SYN标志位的数据包进行端口探测

       如果目标主机恢复了SYN/ACK包,则说明端口处于开放状态,如果恢复RST/ACK,则端口处于

       关闭状态,如果没有响应,或者发送了ICMP unreachable信息,则认为端口被屏蔽了。

     SYN扫描速度非常好,不进行完整的三次握手,时分隐蔽

  -Sl:TCP idle扫描,采用这种技术后,您将通过指定的僵尸主机发送扫描数据包。

     本机 并不与目标主机直接通信。如果对方网络里有IDS,IDS将认为发起扫描的主机是僵尸主机。

UDP扫描选项

  -sU:UPD扫描可以出来的端口很可能就是有价值的服务端程序,但是UDP扫描性能不是很好,LINUX

      内核限制1s内最多发送一次ICMP Port Unreachable信息。

       解决方法:

            进行并发的UDP扫描

            优化扫描常用端口

          在防火墙后面扫描

          启用--host-timeout,跳过响应慢的主机

其他选项

  -F:快速扫描,仅扫描100个常用端口

  -r:顺序扫描,按照从小到大的顺序扫描端口

  -oN:正常输出,不显示runtime和警告信息,

  -oX:生成xml格式报告,可以转成html,还可以被nmap图形用户界面解析,便于导入数据库

  -oA:输出所有格式。标准格式、xml格式等等

脚本引擎功能

  auth:暴力破解等技术找到目标系统上的认证信息

  default:启用--sC或者-A选项时运行此脚本,特点:速度快,输出信息有指导下一步操作的价值,

      输出信息内容丰富,形式简洁,必须可靠,不入侵目标主机,不泄露信息给第三方

  discovery:用于探索网络

  dos:对目标进行拒接服务攻击,慎用

  exploit:脚本利用目标系统的安全漏洞,需要在授权情况下进行使用

  fuzzer:对目标系统进行模糊测试

  instrusive:该脚本可能导致目标系统崩溃或者耗尽目标系统所有资源

  malware:检测目标系统是否存在恶意软件或者后门

  safe:

  version:对目标系统的服务程序进行深入的版本检测

  vuln:检测目标主机系统可能存在的安全漏洞

  -sC或者--script=default:默认启动NSE脚本

  --script filename:根据指定的文件名、目录名等执行相应的脚本

  --script-args  <args>:选项用于给脚本指定参数,如果脚本需要认证,脚本可以指定用户名和密码

  http-waf-detect:检测是否有waf

  http-waf-fingerpri:更准确的识别正在服务的waf

  -f:使用小段数据包,nmap将使用8字节甚至更小的数据报进行探测

  --mtu:来调整数据包的包大小

  -D:指定假的IP,将真的ip藏与其中

  --source-port  <port>:如果防火墙只允许某些源端口的入站流量,可以使用这种方式

  --data-length:用于改变发送的数据包的默认数据长度

  --max-parallelism:限制nmap并发扫描的最大连接数

  --scan-delay <time>:用于控制发送探测数据的时间间隔

 参考链接:https://crayon-xin.github.io/2018/08/12/nmap%E8%B6%85%E8%AF%A6%E7%BB%86%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/

posted @ 2020-03-08 21:53  柒57  阅读(423)  评论(0)    收藏  举报