网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Nmap-扫描器之王
今天我们来聊聊被称之为扫描器之王的nmap,一般我们在渗透的时候都会这样说,第一步nmap开路。Nmap是一款网络扫描和主机检测的工具。开源免费的。可用于:主机发现、端口发现或枚举、服务发现、检测操作系统,硬件地址,以及软件版本、检测脆弱性的漏洞(Nmap的脚本)
0x01:端口扫描用法
扫描方式选择
- -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
- -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
- -sN/sF/sX: 指定使用 TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
- –scanflags : 定制TCP包的flags。
- -sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
- -sY/sZ: 使用 SCTP INIT/COOKIE-ECHO 来扫描SCTP协议端口的开放的情况。
- -sO: 使用IP protocol 扫描确定目标机支持的协议类型。
- -b : 使用 FTP bounce scan扫描方式
端口参数与扫描顺序
-p : 扫描指定的端口
实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)
-F: Fast mode – 快速模式,仅扫描TOP 100的端口
-r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)。
–top-ports :扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口)
–port-ratio : 扫描指定频率以上的端口。与上述–top-ports类似,这里以概率作为参数,让概率大于–port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件
简单扫描(搜索目标主机开放的端口号,运行的服务)
nmap 10.10.10.1
全面扫描(详细版本信息)
nmap -T4 -A -v 10.10.10.1
-A选项用于使用进攻性方式扫描
-T4指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,推荐使用T4
-v 表示显示冗余信息,在扫描过程中显示扫描的细节.
探测指定端口的开放状态
例: nmap -p 80-445 10.10.10.1 扫描目标主机的80-445端口的开放情况
nmap -sS -sU -p T:80,U:445 10.10.10.1 以半连接的TCP SYN方式扫描目标主机的80端口,以UDP方式扫描目标主机的445端口
探测N个最有可能开放的端口 nmap -sS -sU -T4 --top -ports 100 10.10.20.53
参数-sS表示使用TCP SYN方式扫描TCP端口;
-sU表示扫描UDP端口;
-T4表示时间级别配置4级;
–top-ports 100表示扫描最有可能开放的100个端口(TCP和UDP分别100个端口)。
0x02:版本侦测
用于确定目标主机开放端口上运行的具体的应用程序及版本信息。
Nmap提供的版本侦测具有如下的优点:
- 高速。并行地进行套接字操作,实现一组高效的探测匹配定义语法。
- 尽可能地确定应用名字与版本名字。
- 支持TCP/UDP协议,支持文本格式与二进制格式。
- 支持多种平台服务的侦测,包括Linux/Windows/Mac OS/FreeBSD等系统。
- 如果检测到SSL,会调用openSSL继续侦测运行在SSL上的具体协议(如HTTPS/POP3S/IMAPS)。
- 如果检测到SunRPC服务,那么会调用brute-force RPC grinder进一步确定RPC程序编号、名字、版本号。
- 支持完整的IPv6功能,包括TCP/UDP,基于TCP的SSL。
- 通用平台枚举功能(CPE)
- 广泛的应用程序数据库(nmap-services-probes)。目前Nmap可以识别几千种服务的签名,包含了180多种不同的协议。
版本侦测用法
比如目标主机把SSH的22号端口改成了2222端口,那么如果使用普通扫描只会发现2222端口是开启的,并不能知道2222号端口上运行的程序,通过加参数 -sV 进行版本扫描,可以探测到目标主机上2222端口运行的是SSH服务
-sV: 指定让Nmap进行版本侦测
–version-intensity : 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
–version-light: 指定使用轻量侦测方式 (intensity 2)
–version-all: 尝试使用所有的probes进行侦测 (intensity 9)
–version-trace: 显示出详细的版本侦测过程信息
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
上软件测试知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新