Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之 一。详情请参见:www.nmap.org。
端口扫描:
常见端口与对应服务:
80 http
443 https
53 dns
25 smtp
22 ssh
23 telnet
20、21 ftp
110 pop3
119 nntp
143 imap
179 bgp
135-139、445 RPC
500 vpn
5060 voip
123 ntp
nmap ip地址/域名 支持CIDR.(连续的ip用-连接)【空选项主机存活、SYN端口】
域名解析:
n 不用解析域名。
R为所有目标解析域名。
–system-dns使用系统域名解析器解析(慢)。
–dns-server 服务器 选择dns解析。
时间性能优化:
-T 时间优化(0-5)(paranoid|sneaky|polite|normal|aggressive|insane)
-T4 常用选项
-F快速扫描。
-oN %D-%T .nmap周期性的扫描比较。
ndiff #b 1.xml o2.xml 比较文件(-h帮助-v详细text文本格式xml格式)
--max-retries调整重传次数。
--min-hostgroup/–max-hostgroup size 设置组的大小
--min-parallelism/–max-parellelism time指定时间内的探针数
--min-rtt-timrout/–max-rtt-timrout/initial-rtt-timrouttime 指定探针超时
--scan-delay/-max-scan-delay time 指定探针之间的时延
--max-retries tries指定探针重传转发数
--host-timeout time设置扫描主机的最大时间
--defeat-rst-ratelimit设置rst的限制
-A 综合扫描。
-p端口【-数 数以内 数- 大于数p-所有 U udp T tcp 服务 [数-数]端口】。
–allports不为探测版本排除任何端口。
-e 指定网络接口 。
-r顺序扫描。
-O 系统扫描。
--osscan-limit 。(针对指定的目标进行操作系统检测)
--osscan-guess; –fuzzy 。(推测操作系统检测结果)
--version-light[轻]-all[全]1-9(探针强度)
--version-intensity[0-9]默认7(探针强度)
–version-trace获取详细的探针信息。
-v强度小 d大一点 d d加强-p最强 debug信息。(V<v<D<d<<p)
-d [level] (提高或设置调试级别) 。
-sT tcp端口扫描(完整三次握手)。
-sU udp扫描。(不回应可能端口打开,回应是关闭)
-sL List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。
-sM[fin ack mainmon扫描] 。
-sS隐蔽扫描(半开syn)。
-sP 发现扫描网络存活主机。(直连arp非直连tcp80 icmp)
-sO确定主机协议扫描。
-sA tcp ACK扫描。
-sW 对滑动窗口的扫描sI[idlescan]。
-sR RPC扫描。(flag没有syn,ack,rst回送rst)
-sN 关闭主机发现【空】。(不管是否存在直接扫描)
-sn : 只进行主机发现,不进行端口扫描
-sF FIN扫描 。(sN sF sX逃避不了ids)
-sX Xmas扫描 (fin psh urg为置位)。
-sI 完全隐藏。【以一个跳板主机{无流量}扫描另一台主机】
-sV 服务版本。
-sC 跟安全有关的脚本
-P0 指定协议。(不ping主机)(1icmp6tcp17udp47gre50esp51ah53swipe77sun-nd115l2tp120uti132sctp)
-PS 端口列表用,隔开[tcp80 syn 扫描]
-PA 端口列表用,隔开[ack扫描](PS+PA测试状态包过滤防火墙【非状态的PA可以过】)【默认扫描端口1-1024】
-PU 端口列表用,隔开[udp高端口扫描 穿越只过滤tcp的防火墙]
-PE [icmp ping types]
-PM 掩码请求。
-PR [arp ping] 默认直连用。
-PN 自己。
-PP 时间请求。
--send-ip 直连不做arp做ping。
--reason返回原因。
--packet-trace 跟踪发送和接收的报文。
---traceroute追踪主机跳数。
--scanflags banner tcp扫描的flags。
--servicedb 文件
在文件里指定扫描的服务。
--script=脚本【all全部】(promiscuous杂合模式) 调用脚本。(协议平台-服务-动作)
--script-updatedb脚本升级
输出:
-oS (ScRipT KIdd|3oUTpuT)保存扫描结果输出。
-oN/oG (Grep 输出)
-oA (输出至所有格式)
--append-output 附在原来的结果前面。
输入:
-iL从列表中导入原来的扫描结果。
-iR随机选择目标。
--exclude排除主机或网络。
--excludefile排除文件中的列表。
--randomize-hosts随机主机。
--iL 文件名 导入信息。
versiondb调用数据库。
逃避技术:
-f 8字节 mtu 数 指定分片字节。
-D <ip,ip> -S 源ip e出接口
欺骗ip和mac。
--source-port 源端口; -g (源端口哄骗)
--spoof-mac 0随便,厂商,自己指定 指定mac。
--data-length (发送报文时附加随机数据)–date-length填充随机数据。
--badsum发送tcp和udp校验和的包。
--ttl (设置IP time-to-live 域)
--ip-options ip选项。
其他选项:
-b FTP反弹攻击。
--open只显示open的。
--iflist (列举接口和路由)
-6 (启用IPv6扫描)。
【例子:nmap –spoof-mac Apple –traceroute–data-length 9 f D ip地址,RND:5,ME v n O sS sV Oa 保存目录 log-errors–append-output p T:1-1024,1433,2222,2249,7778,8080,9999–randomize-hosts ip地址】
(nmap识别的端口状态:open开放closed关闭filterd过滤unfilterd未过滤[ack 开关都是rst]open|filterd开放或被过滤[UDP]closed|filterd关闭或被过滤[IPID])。
nmap下的其他两个项目cat和nping。
ncat #主机 端口 串联和重定向接口(功能和nc有点相像)
-4 ipv4 -6 ipv6 -u udp sctp sctp
-g发送松散源路由-G设定源路由指针
-p 端口-s源主机
-l监听模式-m最大链接数
broker链接中间人char聊天服务器
ssl使用ssl
ssl-verify验证服务器证书
ssl-cert指定证书
ssl-key指定私钥
ssl-trustfile名单信任的证书
proxy 主机:端口指定服务器
proxy-type 协议 指定协议
proxy-auth 用户:密码使用代理证书
-e 命令 执行命令c 命令 sh命令执行
allow 主机 允许链接–allowfile file允许文件链接
deny 主机 拒绝链接
denyfile 文件 拒绝文件连接
-d 时间 指定延时I时间 指定空闲w时间指定连接超时
-o file保存信息-x 保存16进制信息
-v详细信息-c使用CRLE去EOL顺序-h帮助
recv-only只接受send-only只发送-t远程登录version显示版本
nping #目标 网络数据包生成工具。
--tcp-connect TCP连接方式.
--tcp TCP模式
--udp UDP模式
--icmp ICMP的模式
--arp ARP表/ RARP服务模式
--tr 路由跟踪模式
-p 端口 目标端口
-g 端口 源端口
--seq seqnumber 设置端口序列
--flags 设置tcp的flags (CWR,ECN,URG,ACK,PSH,RST,SYN,FIN)
--ack 设置ack数
--win 设置滑动窗口大小
--badsum 使用错误校验
--mss 设置最大段大小。
--ws 设置窗口的规模。
--ts <echo,reply> 设置时间戳(回音和答复场)
--icmp-type 设置icmp类型
--icmp-code 设置icmp代码
--icmp-id 设置icmp的标识符
--icmp-seq 设置icmp顺序
--icmp-redirect-addr 设置icmp重定向地址
--icmp-param-pointer 设置icmp参数问题指针
--icmp-advert-lifetime 设置icmp的生成周期
--icmp-advert-entry <IP,pref> 设置icmp路由广告
--icmp-orig-time 设置icmp原始时间戳
--icmp-recv-time 设置icmp接受时间戳
--icmp-trans-time 设置icmp发送的时间戳
--arp-type arp类型(ARP-reply, RARP, RARP-reply)
--arp-sender-mac 发送人的mac地址
--arp-sender-ip 设置发件人ip地址
--arp-target-mac 设置目标mac地址
--arp-target-ip 设置目标ip地址
-S 设置源ip地址
--dest-ip 设置目标地址
--tos 服务类型
--id 标识
--df 不要分段
--mf 更多分段
--ttl 生存时间
--badsum-ip 无效ip校验
--ip-options <S|R [route]|L[route]|T|U …>设置IP选项
--ip-options 设置ip选项
--mtu 最大传输单元
-6 使用ipv6
--hop-limit 设置IPv6逐场的限制值发送到指定的数据包
--traffic-class 交通类
--flow 流标签
--dest-mac 目标mac
--source-mac 源mac
--ether-type 以太网类型
--data 附加到发送的数据包的自定义二进制数据
--data-string 追加自定义的字符串发送的数据包
--data-file 包括有效载荷从指定的文件
--data-length 附加到发送的数据包随机数据
--delay 延迟之间的探针
--rate 发送速率探针在给定
--ec 运行回声客户端
--es 运行回声服务器
--ep TCP端口号设置回声
--nc禁用加密和验证
--once服务一个客户端并退出
-h 显示帮助信息
--version 显示nping的版本
-c 轮后停止给定数量
-e 设置网络接口使用
-H 不显示发送的数据包
-N 不要试图捕捉回复
--privileged 假设该用户完全权限
--unprivileged 假设用户缺少原始套接字权限
--send-eth 使用原始以太网发送
--send-ip IP层发送的原料
--bpf-filter 自定义设置过滤器BPF
-v 增加或设置输出的详细程度
-d 增加或设置调试级别
-q 减少冗赘级别
--quiet冗长和调试级别设置到最低。
--debug冗长和调试设置到最大程度。
-oX test.xml: 将扫描结果生成 test.xml 文件
-oG test.txt: 将扫描结果生成 test.txt 文件
--stats-every 定期定时打印数据
-Pn 不进行ping扫描
-PO[protocollist]: 使用IP协议包探测对方主机是否开启。
-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。
--dns-servers : 指定DNS伺服器。
--system-dns: 指定使用系统的DNS伺服器
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
-top-ports 100表示扫描最有可能开放的100个端口(TCP和UDP分别100个端口)。
ME表示自己真实的ip,这裡是192.168.1.234