渗透测试学习笔记-Nmap使用

名字
nmap – 网络探测工具和安全/端口扫描器

简介
nmap [ ...] [ ] { }

范例

nmap -T4 -A -v host
nmap -sS -sU -T4 -A -v host
nmap -p 1-65535 -T4 -A -v host
nmap -T4 -A -v -Pn host
nmap -sn host
nmap -T4 -F host
nmap -sV -T4 -O -F --version-light host
nmap -sn --traceroute host
nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 --script "default or (discovery and safe)" host
nmap -sn -v 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80
  • -A: Enable OS detection, version detection, script scanning, and traceroute
    启用OS检测、版本检测、脚本扫描和跟踪路由(前辈说 -A 这叫万能开关,我猜可能是探测的比较全面才这么叫的)

  • -T<0-5>: Set timing template (higher is faster)
    (设置时间模板)模板名称有paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)。前两种模式用于IDS躲避,Polite模式降低了扫描 速度以使用更少的带宽和目标主机资源。默认模式为Normal,因此-T3 实际上是未做任何优化。Aggressive模式假设用户具有合适及可靠的网络从而加速 扫描。Insane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。
    如果用于有足够的带宽或以太网连接,仍然建议使用-T4选项。

  • -v: Increase verbosity level (use -vv or more for greater effect)
    提高输出信息的详细度,用-VV的话肯定更详细一点

  • -sS
    TCP SYN扫描作为默认的也是最受欢迎的扫描选项,是有充分理由的。 它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个 端口。 SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP连接。 它也不像Fin/Null/Xmas,Maimon和Idle扫描依赖于特定平台,而可以应对任何兼容的 TCP协议栈。 它还可以明确可靠地区分open(开放的), closed(关闭的),和filtered(被过滤的) 状态
    它常常被称为半开放扫描, 因为它不打开一个完全的TCP连接。它发送一个SYN报文, 就像您真的要打开一个连接,然后等待响应。 SYN/ACK表示端口在监听 (开放),而 RST (复位)表示没有监听者。如果数次重发后仍没响应, 该端口就被标记为被过滤。如果收到ICMP不可到达错误 (类型3,代码1,2,3,9,10,或者13),该端口也被标记为被过滤。

  • -sn: Ping Scan - disable port scan
    Ping扫描,关闭端口扫描,应该只用于主机存活探测

  • -sU: UDP Scan
    虽然互联网上很多流行的服务运行在TCP 协议上,UDP服务也不少。 DNS,SNMP,和DHCP (注册的端口是53,161/162,和67/68)是最常见的三个。 因为UDP扫描一般较慢,比TCP更困难,一些安全审核人员忽略这些端口。 这是一个错误,因为可探测的UDP服务相当普遍,攻击者当然不会忽略整个协议。 所幸,Nmap可以帮助记录并报告UDP端口。

  • -Pn: Treat all hosts as online – skip host discovery
    将所有主机视为在线的,跳过主机发现。

  • -P :Only scan specified ports
    只扫描指定的端口

  • --top-ports : Scan most common ports
    指定扫描最常见的端口数,默认情况下,nmap会扫描最有可能的1000个TCP端口。

  • -F: Fast mode - Scan fewer ports than the default scan
    快速 (有限的端口) 扫描

  • -O: Enable OS detection
    启用操作系统检测,也可以使用-A来同时启用操作系统检测和版本检测。

  • -sV: Probe open ports to determine service/version info
    启用版本探测,也可以用-A同时打开操作系统探测和版本探测。

  • --version-light: Limit to most likely probes (intensity 2)
    版本扫描强度为2,打开轻量级模式,轻量级模式使版本扫描快许多,但它识别服务的可能性也略微小一点。

  • --traceroute: Trace hop path to each host
    跟踪每个host的路径

  • -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes

  • -iR : Choose random targets
    (随机选择目标)对于互联网范围内的调查和研究, 您也许想随机地选择目标。 选项告诉 Nmap生成多少个IP。不合需要的IP如特定的私有,组播或者未分配的地址自动 略过。选项 0 意味着永无休止的扫描。记住,一些网管对于未授权的扫描可能会很感冒并加以抱怨。 使用该选项的后果自负! 如果在某个雨天的下午,您觉得实在无聊, 试试这个命令nmap -sS -PS80 -iR 0 -p 80随机地找一些网站浏览。

  • -g: Use given port number
    (使用给定的端口号发送数据,源端口欺骗

  • -oX:Output scan in XML
    (要求XML输出直接写入指定的文件。)

###SCRIPT SCAN(脚本扫描)

  • -sC: equivalent to --script=default(相当于--script=default使用默认类别的脚本进行扫描)
    | Script | Mean |
    | -------- | ------- |
    | auth | 负责处理鉴权证书(绕开鉴权)的脚本 |
    | broadcast | 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务 |
    | brute | 提供暴力破解方式,针对常见的应用如数据库、smbhttp、snmp等进行简单密码的暴力猜解 |
    | default | 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力 |
    | discovery | 对网络进行更多的信息,如SMB枚举、SNMP查询等 |
    | dos | 用于进行拒绝服务攻击 |
    | exploit | 利用已知的漏洞入侵系统 |
    | external | 利用第三方的数据库或资源,例如进行whois解析 |
    | fuzzer | 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞 |
    | intrusive | 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽 |
    | malware | 探测目标机是否感染了病毒、开启了后门等信息 |
    | safe | 此类与intrusive相反,属于安全性脚本 |
    | version | 负责增强服务与版本扫描(Version Detection)功能的脚本 |
    | vuln | 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067 |

##FIREWALL/IDS EVASION AND SPOOFING(绕过 防火墙/IDS绕过)

  • -f; --mtu : fragment packets (optionally w/given MTU)(报文分段、指定数据包的MTU)
  • -D : Cloak a scan with decoys(增加噪声IP,用多个IP地址掩盖真实地址,其中ME填入自己的IP地址。)
  • -S : Spoof source address(源地址欺骗)
  • -e : Use specified interface(使用指定的接口)
  • -g/--source-port : Use given port number(使用指定的端口)
  • --proxies : Relay connections through HTTP/SOCKS4 proxies
  • --data : Append a custom payload to sent packets
  • --data-string : Append a custom ASCII string to sent packets
  • --data-length : Append random data to sent packets(将随机数据附加到数据包,使其长度达到指定的NUM)
  • --ip-options : Send packets with specified ip options(使用指定的IP选项发送数据包)
  • --ttl : Set IP time-to-live field(使用此选项发送的数据包都会有指定的TTL值。扫描目标时连接速度很慢,其中正常数据包可能会接收到响应之前超时,此选项很有用。)
  • --spoof-mac : Spoof your MAC address(MAC地址欺骗)
  • --badsum: Send packets with a bogus TCP/UDP/SCTP checksum(使用伪造的TCP/UDP/SCTP检验和来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或IDS/IPS)。)

你可能感兴趣的:(渗透测试)