Nmap渗透指南——常用部分(笔记来自《Nmap渗透指南》)
注:由于书本内容过于全面,本文章仅介绍书本中的常用功能,对于日常扫描足够使用
目录
Nmap渗透测试指南
简介:nmap(Network Mapper)意思是网络映射器
nmap常用参数介绍
nmap TCP/IP协议栈指纹
T1 发送TCP数据包(Flag=SYN)到开放TCP端口
T2 发送空TCP数据包到开放的TCP端口
T3 发送TCP数据包(Flag=SYN,URG,PSH,FIN)到开放的TCP端口
T4 发送TCP数据包(Flag=ACK)到开放的TCP端口
T5 发送TCP数据包(Flag=SYN)到关闭的TCP端口
T6 发型TCP数据包(Flag=ACK)到关闭的TCP端口
T7 发送TCP数据包(Flag=URG,PSH,FIN)到关闭的TCP端口
语法
nmap -a(协议或参数或选项) 127.0.0.1(目标)
全面扫描 -A
指定段扫描 在目标连接的最后段用-连接 192.168.126.1-200
nmap参数
-sT
TCP connect()扫描:建立完整的TCP连接,这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。**如果想扫描自己的主机,需要建立完整的TCP连接。**
-sS
TCP同步扫描(TCP SYN):半开扫描(half-open)。**这是nmap的默认扫描方式**,仅发出一个TCP同步包(SYN),然后等待回应。
-sF -sX -sN
秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式:即使SYN扫描都无法确定的情况下使用。
-sP
ping扫描:探测主机是否存活(如果目标主机没有禁ping)。
-sU
UDP扫描:探测某台主机上提供哪些UDP(用户数据报协议)服务,可以使用这种扫描方法。
-sA
ACK扫描:这项高级的扫描方法通常用来穿过防火墙的规则集。这种扫描是向特定的端口发送ACK包(使用随机的应答/序列号)。
-Pn
无Ping扫描:穿透防火墙,也可以避免被防火墙发现
-PS
TCP SYN Ping扫描:发送一个设置了SYN标志位的空TCP报文,当目标主机的防火墙阻止这些请求时,我们可以使用该扫描选项来进行对目标主机存活的判断
-PA
TCP ACK Ping扫描:原理同上类似,两个选项可以同时使用
-PU
UDP Ping扫描:发送一个空的UDP报文到指定端口,默认40125
-PE;-PP;-PM
ICMP Ping Types扫描:ICMP协议是Internet控制报文协议,是TCP/IP协议的一个子协议,用于传递控制消息(检测网络、主机、路由等网络本身消息是否流通),不传输用户数据
-PE
通过向目标发送ICMP Echo数据包来探测目标主机是否在线
-PP
是ICMP时间戳ping扫描
-PM
是进行ICMP地址掩码ping扫描。
-PR
ARP ping扫描:该选项通常在扫描局域网的时候使用。地址解析协议,主机将ARP请求广播到网络上的所有主机,并接受返回消息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存。改扫描选项是对目标进行ARP ping的过程,尤其在内网的情况下,ARP扫描时最为有效的,在本地局域网中防火墙不会禁止ARP请求。在默认情况下,如果nmap发现目标主机就在它所在的局域网上,会进行ARP扫描(即使用-PI -PS也会默认扫描ARP),如果不想使用ARP扫描,可以指定--send-ip。
-sL
列表扫描:仅仅列出指定网络上的每台主机,不发送任何报文到目标主机。默认情况下,nmap仍然对主机进行反向域名解析以获取它们的名字
-n
禁止反向域名解析:永远不对目标IP地址作反向域名解析
-R
反向域名解析:永远对目标IP地址作反向域名解析
--system-dns
使用系统域名解析器:nmap直接发送查询到您主机上配置的域名服务器来解析域名
-6
扫描一个IPv6地址:nmap -6 fe80::20c::29ff::fee0::2e76
--traceroute
路由跟踪:此选项可以查出从本地计算机到目标之间经过的网络节点,并可以看到通过各个节点的时间
常见扫描方式
1、Intense scan (nmap -T4 -A -v) 一般扫描
-T4 加快执行速度
-A 操作系统及版本探测
-v 显示详细的输出
2、Intense scan plus UDP (nmap -sS -sU -T4 -A -v) UDP扫描
-sS TCP SYN 扫描
-sU UDP 扫描
3、Intense scan,all TCP ports (nmap -p 1-65536 -T4 -A -v)
扫描所有TCP端口,范围在1-65535,试图扫描所有端口的开放情况,速度比较慢。
-p 指定端口扫描范围
4、Intense scan,no ping (nmap -T4 -A -v -Pn) 非ping扫描
-Pn 非ping扫描
5、Ping scan (nmap -sn) Ping 扫描 -sn ping扫描
优点:速度快。 缺点:容易被防火墙屏蔽,导致无扫描结果
6、Quick scan (nmap -T4 -F) 快速的扫描
-F 快速模式。
7、Quick scan plus (nmap -sV -T4 -O -F --version-light)
快速扫描加强模式
-sV 探测端口及版本服务信息。
-O 开启OS检测
--version-light 设定侦测等级为2。
8、Quick traceroute (nmap -sn --traceroute) 路由跟踪
-sn Ping扫描,关闭端口扫描
-traceroute 显示本机到目标的路由跃点。
9、Regular scan 规则扫描
10、Slow comprehensive scan 慢速全面扫描
(nmap -sS -sU -T4 -A -v -PE -PP -PS80,443,-PA3389,PU40125 -PY -g 53 --script all)
nmap保存和输出
-oN 标准保存 nmap -oN test1.txt 目标
-oX XML保存 .xml
-oS 133t保存 .txt
-oG Grep保存 .txt
-oA 保存到所有格式
--append-output 补充保存文件
-oX --stylesheet 转换XML保存 .xml
-oX 忽略XML声明的XSL样式表 .xml --no-stylesheet(禁止nmap的XML保存关联IG任何XSL样式表)
-T 时序选项
-T0 非常慢,用于IDS逃避
-T1 慢,用于IDS逃避
-T2 比较慢,降低速度以降低对带宽的消耗(很少用)
-T3 默认,根据目标的反应自动调整时间
-T4 快速扫描,常用的扫描方式,需要在很好的网络环境下进行扫描,请求可能会淹没目标
-T5 极速扫描,该方式以牺牲准确度来提升扫描速度
--scanflags 自定义TCP扫描
-sI 空闲扫描,是nmap的高级用法,允许端口完全欺骗扫描。可以使攻击者能够不使用自己的IP向目标主机发送数据包,它可以利用不活跃的僵尸主机反弹给攻击者一个旁通信道,从而进行端口扫描。
nmap -sI www.0day.co:80 192.168.126.131
如上,如果有IDS,IDS会认为是前者进行的扫描
指纹识别与探测
-sV 版本探测
加上-A 进行操作系统版本探测
--allports 全端口版本探测
--version-intensity 设置扫描强度,后面直接加 数字,取值范围0~9
--version-light 轻量级扫描
--version-all 重量级扫描
--version-trace 获取详细版本信息
-O 启用操作系统探测
--osscan-limit 对指定的目标进行操作系统检测
--osscan-guess;--fuzzy 推测系统识别
渗透参数用法
-D ip欺骗
nmap -D 192.168.0.1,157,89,85,4 目标 指定伪造的ip
nmap -D RND:数量 目标 使用RND随机生产几个地址
nmap -D ME 目标 ME可以指定主机的真实ip
-sI(i的大写) 源地址欺骗
使用 -sI就可以进行源地址欺骗,例如 -sI www.0day.com:80 目标
--source-port 源端口欺骗
防火墙对服务器的设置会根据端口选择是否信任数据流,管理员可能会认为这些端口不会有攻击发生,所以可以利用这些端口扫描
nmap --source-port 53 目标
--data-length 指定发包长度
nmap --data-length 30 目标
在原来报文基础上附加随即数据达到规避防火墙的效果
--randomize-hosts 目标主机随机排序
单方面使用这个选项对防火墙/IDS逃逸的效果不大, 如果配合是时间选项则会有很好的效果
nmap --rangomize-hosts 192.168.126.1-200
--spoof-mac MAC地址欺骗
nmap --spoof-mac 0 目标 指定一个随机的MAC地址。
nmap用于信息收集
IP信息搜集
nmap --script ip-geolocation-* www.xxx.com
注意,如果目标域名使用了CDN,则无效。
WHOIS查询
WHOIS通常使用TCP协议43端口。每个域名或IP的WHOIS信息由对应的管理机构保存。
nmap --script whois www.xxx.com
查询该域名的历史whois,可以获得更多信息,
nmap --script whois --script-args whois.whodb-nofollow www.xxx.com
使用列表的方式进行查询,
nmap -sn --script whois -v-iL host.txt
IP反查
IP 反查可以将所有绑定到该IP的域名显示出来,这样我们就可以很清楚地知道有几个站点在同一个服务器上。但是IP反查不能辨别IP真伪。
nmap -sn --script hostmap-ip2hosts www.xxx.com
DNS查询
nmap --script dns-brute dns-brute.threads=10 www.xxx.com,设置10个线程时相应的扫描速度会增加.
枚举DNS服务器的主机名和子域名
nmap --script dns-brute --script-args dns-brute.domain=baidu.com
该脚本可以使用“dns-brute.threads =线程”指定线程来加快或减少破解速度,使用dns-brute. hostlist=./hostfile.txt指定一一个 需要枚举的列表。
nmap自带脚本
--script=vuln 检查常见漏洞(平常最常用,个人一般只用这个脚本)
--script=brute 暴力破解
--script=auth 权限鉴别
更多详细可以查看nmap安装目录中的Nmap/scripts/目录下的脚本种类
分类:
渗透测试类知识 / 渗透工具用法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了