nmap工具使用详解 – 作者:小陈classmate

0x01 nmap介绍

Nmap是一个开源,免费的网络探测工具,可以用来探测存活主机以及开放的端口等,支持windows,linux,mac等多种操作系统。

nmap下载官网https://nmap.org/download.html

0x02 nmap常用功能

– 探测主机存活
– 扫描端口
– 探测主机操作系统信息
– 检测漏洞

0x03 nmap实战

nmap 常用的几个参数

nmap -v ip 显示详细的扫描过程
nmap -p  ip  扫描指定端口
nmap -A ip  全面扫描操作系统
nmap -sP ip  进行ping扫描主机存活
nmap -Pn/-P0 ip 禁ping扫描
nmap -sS ip 进行tcp syn扫描 也叫半开放扫描
nmap -sT ip 进行tcp连接扫描 (准确性高)

端口状态信息

> open :端口开启
> closed :端口关闭
> filtered :端口被过滤,因为报文被防火墙拦截
> Unfiltered :不确定端口是否开放 没有被过滤
> open|filtered(closed|filtered) :不能确定端口是否开放(关闭)或者被过滤

0x04 nmap中文说明文档

TARGET SPECIFICATION  目标说明

-iL 从主机地址列表文件中导入扫描地址
-iR 随机选择目标进行扫描,unm hosts 表示数目,设置为0则无休止扫描
–exclude 排除某个主机地址
–excludefile 排除主机列表文件中的地址
*************************************************************
HOST DISCOVERY 主机发现

-sL 列表扫描,仅将指定的目标IP列举出来,不进行主机发现
-sn 和-sP一样,只利用ping扫描进行主机发现,不扫描目标主机的端口
-Pn 将所有指定的主机视为已开启状态,跳过主机发现过程
-PS  TCP SYN ping ,发送一个设置了SYN标志位的TCP报文,默认端口为80,也可指定端口
-PA  TCP ACK ping,发送一个设置了ACK标志位的TCP报文,默认端口为80,也可指定带你看
-PU  UDP ping ,发送一个空的UDP报文到指定端口,可穿透只过滤TCp的防火墙
-P0 使用IP协议ping
-PR 使用ARP ping
-n/-R    -n不用域名解析,加速扫描,-R为目标IP做为反向解析域名,扫描较慢一些
-dns-servers 自定义域名解析服务器地址
-traceroute  目标主机路由追踪
*************************************************************
SCAN TECHNIQUER  端口扫描

nmap 将目标端口分为6种状态:
open(开放的)
closed(关闭的)
filtered (被过滤的)
unfiltered (未被过滤的)可访问但不确定开发情况
open|filtered (开放或者被过滤)无法确定端口是否开放的还是被过滤的
closed|filtered (关闭或者被过滤)无法确定端口是否关闭还是被过滤的
nmap产生的结果基于目标机器的响应报文的,而这些主机肯能是不可信任的。会产生迷惑或者误导nmap的报文

-sS   TCP SYN 扫描,不进行ping 半开放扫描,速度快隐蔽性好(不完成TCP连接),能够明确区分端口状态
-sT   TCP 连接扫描,容易产生记录,效率低
-sA   TCP ACK扫描,只设置ACK标志位,区别被过滤与未被过滤的
-sU   UDP 服务扫描,例如DNS/DHCP等,效率低
-sN;-sF;-sX    TCP Null,Fin,Xmas扫描,从RFC挖掘的微妙方法来区分开放关闭端口
-sl    利用僵尸主机上已知IP分段ID序列生成算法来探测目标上开放端口的信息,极端隐蔽
-sO  IP协议扫描,可以确定目标主机支持哪些IP协议,例如TCP/ICMP等
************************************************************************
PORT SPECIFICATION AND SCAN ORDER 端口说明和扫描顺序-p  指定扫描的端口,可以是单个端口,也可以是端口范围,可以指定UDP或TCP协议扫描特定端口
-p<name> 指定扫描的协议,例如-p http 即可扫描http协议的端口状态
–exclude-ports  排除指定端口不扫描
-F 极速模式,仅扫描100个常用端口
************************************************************************
SERVICE/VERSION DETECTION  服务与版本探测。

Nmap-services  包含大量服务的数据库,Nmap通过查询该数据库可以报告哪些端口可能对应于扫描服务,但不一定正确
-sV 进行服务版本探测
–version-intensity<level> 设置版本扫描强度,范围为0-9,默认是7,强度越高,时间越长,服务越可能被正确识别
************************************************************************
SCRIPT SCAN  脚本扫描

允许用户自己编写的脚本来执行自动化的操作或者扩展nmap的功能,使用Lua脚本语言。
-sC  使用默认类别的脚本进行扫描
–script=<Lua scripts>  使用某个或某类脚本进行扫描,支持统配符描述
************************************************************************
OS DETECTION 操作系统探测

用TCP/IP协议栈fingerprinting进行探测,Nmap发送一系列TCP和UDP报文到远程主机,检查响应的每一个比特。测试后Nmap吧结果和数据库中超过1500个已知的fingerprints比较,如匹配则输出结果

-O  启用操作系统探测
-A 同时启用操作系统探测和服务版本探测
–osscan-limit 针对指定的目标进行操作系统检测
–osscan-guess  当nmap无法确定所检测的操作系统时,会尽可能地提供相近的匹配
************************************************************************
TIMING AND PERFORMANCE  时间和性能
Nmap开发的最高优先级是性能,但实际应用中很多因素会添加扫描时间,比如特定的扫描选项,防火墙配置以及版本扫描等

-T<0-5> 设置模板级数,在0-5中选择。T0、T1用于IDS规避,T2降低了扫描速度以使用更少的带宽和资源。默认为T3,未作任何优化。T4假设具有合适及可靠的网络从而加速扫描。T5假设具有特别快的网络或者愿为速度牺牲准确性
-host-timeout<time> 放弃低速目标主机,时间单位为毫秒

扫描漏洞

nmap –script=vuln ip

3、提供暴力破解的方式,可对数据库、smb、snmp等进行简单密码的暴力猜解
nmap –script=brute 192.168.88.131

4、利用FTP指定脚本对目标特定FTP协议进行密码爆破
nmap –script=ftp-brute.nse 192.168.88.131

5、利用第三方的数据库或资源,例如进行whoise解析
nmap –script=external 192.168.88.131

来源:freebuf.com 2020-08-11 18:09:04 by: 小陈classmate

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论