namp非常强大的主机发现和端口扫描工具,这是web渗透常用的工具。
包含四项基本功能: 主机发现、端口扫描、版本侦测、操作系统侦测
目录
常规使用
单体拳法:
namp localhost(或10.1.1.1) 查看主机当前开放的端口
nmap -p 1024-65535 localhost 限制查看范围
nmap -iL 1.txt 提取文件中的ip地址【批量扫描】
nmap 10.1.1.1/24 扫描整个网段
nmap -sS 10.1.1.1 半链接,只证明端口开放,不建立完整链接
nmap -sT 10.1.1.1 TCP扫描(默认扫描方式)
nmap -sU 10.1.1.1 UDP扫描(扫描UDP开放的端口)
nmap -sF 10.1.1.1 当目标主机是IDS/IPS系统,防火墙会过滤掉SYN数据包
nmap -sl 10.1.1.2 10.1.1.1 用另外一台主机发包,隐藏自己这个主机
nmap -sV 10.1.1.1 获取服务版本详细信息
nmap -O 10.1.1.1 确定主机操作系统
组合拳:
nmap -sS -PO -sV -o 获取远程主机的系统类型以及开放端口
nmap -sS -PO -A -v 'xxx' 同上(’xx‘ 指定IP\Y域名\主机名\子网)
nmap -sT -p 80 -oG -10.1.1.* | grepopen 列出开放了指定端口的主机列表
nmap -sP 10.0.0.* 查询全部c段在线主机(也可以指定查询范围1-255)
nmap -PN -T4 -p139,445 -n -v -script=smb-check-vulns -script-args safe=1 10.1.1.1
在局域网中查找conficker蠕虫病毒
nmap -A -p1-85,113,443,8080-8100 -T4 –min-hostgroup 50 –max-rtt-timeout 2000 –initial-rtt-timeout 300 –max-retries 3 –host-timeout 20m –max-scan-delay 1000 -oA wapscan 10.0.1.0/24
扫描网络上恶意接入点
参数详解
主机发现:
iR 随机选择目标
-iL 从文件中加载Ip地址【批量扫描】
-sL 简单的扫描
-sn ping扫描,禁用端口扫描
-Pn 将所有主机视为在线,跳过主机发现
-PS 需要root权限【TCP SYN ping】
-PA 【TCP ACK ping】
-PU 【UDP ping】
-PY 【SCTP ping】
-PE/PP/PM ICMP回显,时间戳和网络掩码请求探测
-n/-R 从不执行DNS解析/始终解析
--dns-servers 指定自定义DNS服务器
--system-dns 使用OS的dns服务器
--traceroute 跟踪到每个主机的跃点路径
扫描技术:
-sS TCP/SYN扫描
-sT TCP进行扫描
-sA TCP的ACK进行扫描
-sU UDP扫描
-sl ldle扫描
-sF FIN扫描
-b<FTP中继主机> FTP扫描
-p 指定扫描端口
--exclude-ports 排除指定端口
-f 快速扫描模式【扫描的端口会变少】
-r 连续扫描端口-不随机变化
--top-ports 扫描<number> 最常用的端口
服务版本探测:
-sV 探测服务/版本信息
--version-intensity 设置版本扫描强度
--version-all 尝试每个强度探测
--version-trace 显示详细的版本扫描活动
操作系统检测:
-o 启用os检测
--osscan-limit 将os检测限制为可能的目标
--osscan-guess 推测操作系统检测结果
--host-timeout 设置超时时间
--scan-delay 设置探测之间的时间间隔
-T<0-5> 设置时间模板,值越小,IDS报警几率越低
防火墙/IDS规避和欺骗:
-f 报文分段
-s 欺骗源地址
-g 使用指定的本机端口
--proxies<url,port> 使用HTTP/SOCK4代理
-data<hex string> 想发送的数据包中追加自定义负载
--data-string 将自定义的ACSLL字符串附加到发送数据包中
--data-length 发送数据包时,附加随机数据
--spoof-mac MAC地址欺骗
--badsum 发送带有虚假TCP/UNP/STCP校验和的数据包
输出:
-oN 标准输出
-oX XML输出
-oS script jlddi3
-oG grepable
-v 信息详细级别
-oA 同时输出三种主要格式
-d 调试级别
--packet-trace 跟踪发送和接收的报文
--reason 显示端口处于特殊状态的原因
--open 仅显示开放的端口
nmap返回报文分析
Open(开放的)意味着目标机器上的应用程序正在该端口监听连接 / 报文。
filtered(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap 无法得知 它是 open(开放的) 还是 closed(关闭的)。
closed(关闭的) 端口没有应用程序在它上面监听,但是他们随时可能开放。
unfiltered(未被过滤的)当端口对 Nmap 的探测做出响应,但是 Nmap 无法确定它们是关闭还是开放时
open filtered 开放或者被过滤的
closed filtered 关闭或者被过滤的