zoukankan      html  css  js  c++  java
  • Nmap一些参数的具体作用

    目标说明

    1
    2
    3
    4
    -iL <inputfilename> 读取文档
    -iR <hostnum> 随机选择目标
    --exclude <host1[,host2][,...]> 排除主机/网络
    --excludefile <excludefile> 排除文件中的列表

    主机发现

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    -sL 列表扫描
    -sP ping扫描
    -P0 默认主机存活
    -Pn 默认主机存活和-P0相同
    -PS [portlist] TCP SYN Ping
    -PA [portlist] TCP ACK PING
    -PU [portlist] UDP Ping
    -PE;-PP;-PM ICMP Ping Types
    -PR ARP Ping
    -n 不用域名解析
    -R 为所有目标解析域名
    --system-dns 使用系统域名解析器

    端口扫描基础

    端口状态

    名称状态
    open 开放
    closed 关闭
    filtered 被过滤的
    unfiltered 未被过滤的
    open or filtered 开放或被过滤的
    closed or filtered 关闭或被过滤的

    端口扫描技术

    -sS

    TCP SYN扫描,半开放扫描,需要root权限

    -sT

    TCP Connect扫描,用户没有权限发送原始报文或扫描IPv6时,Nmap默认使用该扫描方式。Nmap调用connect()对目标端口建立连接,这种方式会花费更长的时间、会在目标机留下连接记录。

    -sU

    UDP扫描,可以和TCP扫描同时使用检查两种协议。

    扫描比较慢,Linux 2.4.20内核限制一秒钟只发送一条目标不可到达消息。加速UDP扫描,可以并发扫描更多的主机,先只对主要端口进行快速扫描,从防火墙后面扫描,使用--host-timeout跳过慢速的主机。

    -sN

    TCP Null 扫描
    不设置任何标志位(tcp标志头是0)

    -sF

    TCP FIN 扫描
    只设置TCP FIN标志位

    -sX

    Xmas 扫描
    设置FIN,PSH,URG标志位,就像点亮圣诞树上所有的灯一样

    -sN,-sF,-sX都基于TCP RFC来区分open和closed端口。IDS可以发现这三种方式,而且并不是所有系统都严格遵循RFC 793,例如Microsoft Windows,Cisco,BSDI,IBM OS/400,不过Unix系统都能工作。这三种模式无法区分open还是filtered

    -sA

    TCP ACK扫描
    不能区分openopen|filtered端口。用于发现防火墙规则,确定它们是有状态还是无状态,哪些端口是被过滤掉的。当扫描未被过滤的系统时,open(开放的)和closed(关闭的) 端口都会返回RST报文。Nmap把它们标记为 unfiltered(未被过滤的),意思是 ACK报文不能到达,但至于它们是open(开放的)或者 closed(关闭的) 无法确定。不响应的端口或者发送特定的ICMP错误消息(类型3,代号1,2,3,9,10, 或者13)的端口,标记为 filtered(被过滤的)

    -sW

    TCP窗口扫描
    TCP窗口值为整数,表示端口开启,TCP窗口值为0表示端口关闭

    -sM

    Mainmon扫描
    -sN,-sF,-sX方式完全一样,除了探测报文是FIN/ACK

    –scanflags

    定制的TCP扫描
    --scanflags选项可以指定任意TCP标志位来设计扫描。

    1
    --scanflags URGACKPSHRTSSYNFIN

    -sI

    TCP端口盲扫描,没有报文从真实的IP地址发送到目标

    1
    -sI <zombie host[:probeport]>

    默认端口80
    可以尝试使用可能被信任的zombies扫描目标

    端口说明和扫描顺序

    默认情况下,Nmap用指定的协议对端口1-1024以及nmap-services文件中列出的更高的端口进行扫描

    -p

    只扫描指定的端口

    1
    2
    -p <port ranges>
    -p 21-25,80

    -F

    快速,有限的端口扫描
    只扫描nmap-services文件中的端口

    -r

    不要按随机顺序扫描端口
    Nmap默认按随机顺序扫描端口,使用-r来顺序端口扫描

    服务和版本探测

    -sV

    版本探测
    也可使用-A同时打开操作系统探测和版本探测

    –allports

    不为版本探测排除任何端口

    --version-intensity

    设置 版本扫描强度

    1
    --version-intensity <intensity>

    强度:1-9 默认为7
    数值越高,服务越有可能被正确识别,高强度扫描花费更多的时间。

    --version-light

    打开轻量级模式,是--version-intensity 2的别名

    --version-all

    --version-intensity 9的别名

    --version-trace

    跟踪版本扫描活动
    Nmap打印出详细的关于正在进行的扫描的调试信息

    -sR

    RPC扫描
    可以与许多端口扫描方法联合使用,对所有被发现开放的TCP/UDP端口执行SunRPC程序NULL命令,来确定他们是否有RPC端口并确定程序和版本号。

    操作系统探测

    --O

    启动操作系统检测
    也可以使用-A来同时启动操作系统检测和版本检测

    --osscan-limit

    针对指定的目标进行操作系统检测

    --osscan-guess

    --fuzzy

    推测操作系统检测结果

    时间和性能

    防火墙/IDS躲避和哄骗

    -f

    报文分段

    --mtu

    使用指定的MTU

    -f-mtu都是将数据包分段的参数,-f使用一次是将包分成8字节或更小,使用两次是将包分为16字节的分段。使用-mtu可以自定义偏移的大小,偏移量必须是8的倍数。一些网络会禁止分段包进入网络

    -D

    使用诱饵隐蔽扫描

    1
    -D <decoy1 [,decoy2] [,ME],...>

    为使诱饵扫描起作用,需要使远程主机认为是诱饵在扫描目标网络。使用逗号分隔每个诱饵主机,也可用真实IP作为诱饵,这时可使用 ME选项说明。如果在第6个位置或更后的位置使用ME选项,一些常用端口扫描检测器(如Solar Designer’s excellent scanlogd)就不会报告 这个真实IP。如果不使用ME选项,Nmap将真实IP放在一个随机的位置

    -S

    源地址哄骗

    1
    -S <IP_Address>

    -e

    使用指定的网卡

    1
    -e <interface>

    源端口哄骗

    1
    2
    --source-port <portnumber>
    -g <portnumber>

    MAC地址哄骗

    1
    --spoof-mac <mac address,prefix,or vendor name>

    使用字符串"0",Nmap会选择一个完全随机的MAC地址。

    --data-length

    发送报文时,附加随机数据

    1
    --data-length <number>

    --ttl

    设置IPV4报文的time-to-live域

    1
    --ttl <value>

    --randomize-hosts

    对目标主机的顺序随机排列

    输出

    -oN

    标准输出

    1
    -oN <filename>

    -oX

    XML输出

    1
    -oX <filename>

    -oG

    Grep输出

    1
    -oG <filename>

    -oA

    输出至所有格式

    1
    -oA <basename>

    -v

    提高输出信息的详细度

    -d

    提高或设置调试级别

    1
    -d [level]

    --packet-trace

    跟踪发送和接收的报文

    要求Nmap打印发送和接收的每个报文摘要。为了避免输出过多的行,可以限制扫描的端口数,如-p 20-30,如果只需进行版本检测,使用--version-trace

    --iflist

    列举接口和路由

    --append-output

    在输出文件中添加

    --resume

    继续中断的扫描

    1
    --resume <filename>

    --stylesheet

    设置XSL样式表,转换XML输出

    --no-stylesheet

    忽略XML声明的XSL样式表

    其他选项

    -6

    启用IPv6扫描

    -A

    操作系统检测和版本扫描

    打印版本信息

    1
    2
    -V
    --version

    帮助信息

    1
    2
    -h
    --help
  • 相关阅读:
    CSS中position小解
    position
    mac默认安装postgresql, 如何让postgresql可以远程访问
    The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 10.0.
    active admin gem error
    psql 无法添加超级用户
    ubuntu 15.04 安装Balsamiq Mockups 3
    Rails html 写public里图片的路径
    rails c 历史命令
    undefined local variable or method `per' for []:ActiveRecord::Relation
  • 原文地址:https://www.cnblogs.com/FyJianc/p/11699137.html
Copyright © 2011-2022 走看看