excel学习库

excel表格_excel函数公式大全_execl从入门到精通

网络安全信息收集之玩转nmap(理论篇)

更新时间

2022年09月06日16:20:10

  • 完成nmap介绍,目标选择,主机发现部分

2022年10月28日21:19:20

  • 完成最基本的内容,端口扫描,版本和系统探测,安全其他等

  • 打算的更新计划:更多案例和图片,导出xml文件转为Excel分析(周末先休息一下吧)

nmap

nmap(Network Mapper)是免费、开源的网络发现和安全审计工具,通常我们用于收集网络中的比如主机和端口等信息,从而为下一步的攻击提供突破口,制定攻击的计划。也可为网络管理员使用,从而针对性修复可能暴露的安全漏洞。

具体的功能介绍可以登录官网https://nmap.org,来获取软件包和官方教程。

  • 当我们下载好nmap后在命令行中会多出这些命令:

  • nmap,集成了:

    • 主机发现(Host Discovery)

    • 端口扫描(Port Scanning)

    • 版本侦测(Version Detection)

    • 操作系统侦测(Operating System Detection)

  • zenmap,zenmap为nmap的图像化版本。

  • ncat,可进行灵活的数据传输,重定向。

  • ndiff,对比扫描结果的工具。

  • nping,包生成和响应工具。

图1.Windows查看nmap提供的可执行文件

nmap命令

nmap发现的原理无非就是,发送数据包到目标主机,依据响应报文来识别已经开放的端口等信息等,属于主动攻击。

  • nmap的命令基本上可以分为有“三要素”,其中扫描的目标是必选的。扫描类型默认使用-sT。

    • nmap [ <扫描类型> ...] [ <选项> ] { <扫描目标说明> }
  • 可以使用-h参数或者无参数,以输出帮助信息。

  • 一下介绍的主机发现、端口扫描的方式都可以排列组合来使用。

下面的篇幅较长,如果是忘记了命令,可以只看这部分即可,我在这里翻译了nmap -h原文,并做了小总结。时间宝贵,头发也宝贵呢。


Nmap 7.93 (https://nmap.org)


用法:nmap [扫描类型] [选项] {要扫描的目标}


扫描的目标:

可以是 主机名、IP 地址、网络等。#(可以使用逗号,指定不连续的ip段 减号-指定连续ip段 斜杠/指定掩码 星号*代表全部)

例如:scanme.nmap.org、microsoft.com/24、192.168.0.1; 10.0.0-255.1-254

-iL <inputfilename>: 从文件中读取要扫描的主机列表

-iR <主机数量>: 选择随机目标 #0为无限生成

--exclude <host1[,host2][,host3],...>:要排除的 主机/网络

--excludefile <exclude_file>: 从文件中选择要排除的主机列表


主机发现:

-sL: 列表扫描 - 打印主机的列表(对域名进行扫描时,可以得到IP列表 )

-sn: Ping 扫描,同时禁用端口扫描,用来检查主机存活状态。

-Pn: 禁用 Ping 扫描,默认所有主机都是存活状态

-PS/PA/PU/PY[端口列表]:对指定的端口通过 TCP SYN/ACK、UDP 或 SCTP 扫描来发现主机

-PE/PP/PM: 对指定的端口通过 ICMP、时间戳和网络掩码请求发现和探测主机

-PO[协议列表]: IP 协议 Ping

-n/-R: 不进行DNS解析/ 进行DNS解析 [默认]

--dns-servers <serv1[,serv2],...>: 指定自定义 DNS 服务器

--system-dns: 使用操作系统的 DNS 解析器

--traceroute: 跟踪每个主机的跃点路径


扫描技术:

-sS/sT/sA/sW/sM: TCP SYN / Connect() / ACK / Window / Maimon 扫描

-sU: UDP 扫描

-sN/sF/sX: TCP Null、FIN 和 Xmas 扫描

--scanflags <flags>: 自定义 TCP 扫描标志

-sI <僵尸主机[:僵尸端口]>: 空闲扫描

-sY/sZ: SCTP INIT/COOKIE-ECHO 扫描

-sO: IP 协议扫描

-b <FTP 中继主机>: FTP 反弹扫描


指定扫描端口、扫描顺序:

-p <端口范围>:只扫描指定的端口

例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9

--exclude-ports <端口范围>: 从扫描中排除指定端口

-F: 快速模式。 扫描比默认扫描更少的端口

-r: 连续扫描端口。不要随机化,即按顺序扫描端口

--top-ports <number>: 扫描<number>个最常用的端口

--port-ratio <ratio>: 扫描比<ratio>更常见的端口


服务/版本检测:

-sV: 探测开放端口以确定服务/版本信息

--version-intensity <level>:设置从 0(轻)到 9(尝试所有探针)

--version-light: 限制最可能的探测(强度 2)

--version-all: 尝试每一个探测(强度 9)

--version-trace: 显示详细的版本扫描活动(用于调试)


脚本扫描:

-sC: 相当于--script=default

--script=<Lua scripts>: 使用脚本进行扫描,多个脚本时用逗号分隔,支持通配符。

--script-args=<n1=v1,[n2=v2,...]>: 为脚本提供参数

--script-args-file=filename: 从文件中提供 NSE 脚本参数

--script-trace: 显示所有发送和接收的数据

--script-updatedb: 更新脚本数据库。

--script-help=<Lua 脚本>: 显示有关脚本的帮助。


操作系统检测:

-O: 启用操作系统检测

--osscan-limit: 将操作系统检测限制为有希望的目标

--osscan-guess: 更积极地猜测操作系统


时间和性能:

默认是秒,也可以 “ms”(毫秒),'s'(秒)、'm'(分钟)或 'h'(小时)到值(例如 30m)。

-T<0-5>: 设置时序模板(越高扫描速度越快,但是准确性降低)

--min-hostgroup/max-hostgroup <size>: 并行主机扫描组大小

--min-parallelism/max-parallelism <numrobes>:探针并行化

--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <时间>: 指定探测往返时间。

--max-retries <tries>: 限制端口扫描探测重传的次数。

--host-timeout <time>: 多长时间后放弃目标

--scan-delay/--max-scan-delay <time>:调整探针之间的延迟

--min-rate <number>: 每秒发送数据包不低于 <number>

--max-rate <number>: 每秒发送数据包的速度不超过 <number>


防火墙/IDS 逃避和欺骗:

-f; --mtu <val>: 分片数据包(可选地 w/给定的 MTU)

-D <诱饵IP1,诱饵IP2[,本机IP],...>:使用诱饵隐藏扫描。即发送参杂着假ip的数据包检测

-S <IP 地址>: 欺骗源地址。就是伪造源主机IP地址。

-e <网络接口>: 指定从哪个网卡发送和接收数据包。

-g/--source-port <portnum>: 使用给定的端口号。针对防火墙只允许的源端口

--proxies <url1,[url2],...>: 通过 HTTP/SOCKS4 代理中继连接

--data <hex string>: 将自定义有效负载附加到发送的数据包

--data-string <string>: 将自定义 ASCII 字符串附加到发送的数据包中

--data-length <num>: 将随机数据附加到发送的数据包中。

改变发生数据包的默认的长度,防止被识别出来。

--ip-options <options>: 发送带有指定ip选项的数据包

--ttl <val>: 设置 IP 生存时间字段

--spoof-mac <mac地址/前缀/供应商名称>: 欺骗你的MAC地址

--badsum: 发送带有虚假 TCP/UDP/SCTP 校验和的数据包


输出:

-oN/-oX/-oS/-oG <file>: 扫描结果写入到文件。

正常,XML,s|<rIpt kIddi3,Grepable 格式,

-oA <basename>: 一次输出三种主要格式

-v: 增加详细程度(使用 -vv 或更多以获得更好的效果)

-d: 增加调试级别(使用 -dd 或更多以获得更好的效果)

--reason: 显示端口处于特定状态的原因

--open: 仅显示打开(或可能打开)的端口

--packet-trace: 显示所有发送和接收的数据包

--iflist: 打印主机接口和路由(用于调试)

--append-output: 附加到而不是破坏指定的输出文件

--resume <文件名>: 恢复中止的扫描

--noninteractive: 通过键盘禁用运行时交互

--stylesheet <path/URL>:将 XML 输出转换为 HTML 的 XSL 样式表

--webxml: 参考 Nmap.Org 的样式表以获得更便携的 XML

--no-stylesheet: 防止 XSL 样式表与 XML 输出相关联


杂项:

-6: 启用 IPv6 扫描

-A: 也叫全面扫描。操作系统检测、版本检测、脚本扫描和跟踪路由。

--datadir <dirname>: 指定自定义 Nmap 数据文件位置

--send-eth/--send-ip:使用原始以太网帧或 IP 数据包发送

--privileged: 假设用户拥有完全特权

--unprivileged: 假设用户缺乏原始套接字权限

-V:打印版本号

-h:打印此帮助摘要页。


有关更多选项和示例,请参见手册页 (https://nmap.org/book/man.html)

--exclude排除host

# 比如你指定了大范围内的ip,但是某些ip你又想排除,后面可以无限写nmap 192.168.1.1/24 --exclude 192.168.1.1 192.168.1.100

-iL从文件中导入和--excludefile排除

有时候从dhcp服务器中导出了在线的ip,可以使用文件来批量的选择扫描的目标,比如某公司禁止公司内部电脑开启web服务等,使用文件导入的方法,可以跳过离线主机进行的扫描。

  • -iL <目标ip的文件路径>

  • --excludefile <排除ip的文件路径>

文件格式中ip之间可以使用换行(\n),同时也支持,/-语法。

-iR随机扫描

  • -iR <随机生成ip数量>

    • -iR 0 # 0代表无限次

以下是我使用nmap -iR 2后的抓包,可以看到ip是随机的,默认的

图2.默认扫描发送的报文

扫描类型可以省略,缺省时使用-sT参数,即TCP连接扫描,缺省情况下发送三个报文

  • ICMP Echo Request

  • TCP SYN 80和443

端口模式

nmap将端口分成六个状态:

  • open(开放)

    • 有回显

  • closed(关闭)

    • 无回显,可能是关闭了,也可能是防火墙设置为drop(丢弃而不做回应)。

  • filtered(被过滤)

    • 在扫描者和被扫描着之间,此端口可能在防火墙、设备上的服务器、交换机路由器acl等过滤了。返回拒绝访问。

  • unfiltered(未被过滤)

    • 可以访问端口,但是无法确认端口是否开放,一般情况只在TCP ACK扫描中出现。

  • open|filtered(开放或者被过滤)

    • 当无法确定端口是开放还是被过滤的,可能是开放的端口不响应也可能返回目标端口报文在中途被防火墙、acl过滤了或者网络丢包了

  • closed|filtered(关闭或者被过滤)

    • 和上面open|filtered类似,不知道是关闭还是被过滤了。

主机发现

针对于不同的设备和网络环境,不同的扫描方式会有着截然不同的效果。

  • 大体上分为这几种:

    • sL通过向DNS服务器反向解析(当然不要加上-n)

    • PU

    • PS,发送SYN握手包

    • PA,发送ACK确认包

    • sP,发送ICMP echo-Request报文

    • ICMP发现主机

    • TCP端口连接发现主机

    • UDP端口连接发现主机

    • DNS反向解析

-sL(列表扫描)

其实这个参数不会对目标进行扫描操作,但因为nmap默认情况下是会对本机设置的所有DNS服务器反向解析其IP,即获取hostname,所以使用起来可以起到获取目标IP域名的效果。

图3.sL扫描会向本机DNS依据IP反解析hostname

我的本机默认的DNS是192.168.24.8和223.5.5.5。话说对公网的DNS服务器反向解析内网的IP的hostname,是不是有点太搞笑了。

  • -dns-servers <DNS Server> 指定DNS服务器

  • -n不解析DNS,那就真的只是列出IP地址而已了

  • -R 强制解析DNS

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接