先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
**-sW:**滑动窗口扫描,这项高级扫描技术非常类似于ACK扫描,除了它有时可以检测到处于打开状态的端口,因为滑动窗口的大小是不规则的,有些操作系统可以报告其大小。
**-sR:**RPC扫描,和其他不同的端口扫描方法结合使用。
**-b:**FTP反弹攻击(FTP Bounce attack) 外网用户通过FTP渗透内网
通用选项
**-P0:**nmap扫描前不Ping目标主机。在扫描之前,不必ping主机。有些网络的防火墙不允许ICMP echo请求穿过,使用这个选项可以对这些网络进行扫描。
**-PT:**nmap扫描前使用TCP ACK包确定主机是否在运行(-PT默认80。扫描之前,使用TCP ping确定哪些主机正在运行。nmap不是通过发送ICMP echo请求包然后等待响应来实现这种功能,而是向目标网络(或者单一主机)发出TCP ACK包然后等待回应。如果主机正在运行就会返回RST包。只有在目标网络/主机阻塞了ping包,而仍旧允许你对其进行扫描时,这个选项才有效。对于非 root用户,我们使用connect()系统调用来实现这项功能。使用-PT 来设定目标端口。默认的端口号是80,因为这个端口通常不会被过滤。
-PS: nmap使用TCP SYN包进行扫描。对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机正在运行就返回一个RST包(或者一个SYN/ACK包)。
**-PI:**nmap进行Ping扫描。设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。使用这个选项让nmap发现正在运行的主机的同时,nmap也会对你的直接子网广播地址进行观察。直接子网广播地址一些外部可达的IP地址,把外部的包转换为一个内向的IP广播包,向一个计算机子网发送。这些IP广播包应该删除,因为会造成拒绝服务攻击(例如 smurf)。
**-PB:**结合-PT和-PI功能,这是默认的ping扫描选项。它使用ACK(-PT)和ICMP(-PI)两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。
**-O:**Nmap扫描TCP/IP指纹特征,确定目标主机系统类型。
**-I:**反向标志扫描,扫描监听端口的用户
**-f:**分片发送SYN、FIN、Xmas、和Null扫描的数据包
**-v:**冗余模式扫描,可以得到扫描详细信息
-oN: 扫描结果重定向到文件
**-resume:**使被中断的扫描可以继续
-iL:-iL,扫描目录文件列表
-p:-p 指定端口或扫描端口列表及范围,默认扫描1-1024端口和/usr/share/nmap/nmap-services文件中指定端口。-p例:23;20-30,139,60000-这个选项让你选择要进行扫描的端口号的范围。例如,-p 23表示:只扫描目标主机的23号端口。-p 20-30,139,60000-表示:扫描20到30号端口,139号端口以及所有大于60000的端口。
nmap扫描基本场景
1、使用TCP SYN发现活跃主机
nmap -PS 192.168.1.0/24
2、使用TCP方式扫描端口
nmap -sS -sV -n -p1-65535 -oX tcp.xml 192.168.1.0
3、使用UDP方式扫描端口
nmap -sS -sU -n -p1-65535 -oX udp.xml 192.168.1.0
4、判断操作系统
nmap -O 192.168.1.0/24
5、判断服务版本
nmap -sV 192.168.1.0/24
4 附录
4.1 扫描结果说明
- NMap的6种端口状态
open(开放的)
应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描 的主要目标。安全意识强的人们知道每个开放的端口 都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。 而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。 非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。
closed(关闭的)
关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。 它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有所帮助。 因为关闭的关口是可访问的,也许过会儿值得再扫描一下,可能一些又开放了。 系统管理员可能会考虑用防火墙封锁这样的端口。 那样他们就会被显示为被过滤的状态,下面讨论。
filtered(被过滤的)
由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则 或者主机上的软件防火墙。这样的端口让攻击者感觉很挫折,因为它们几乎不提供 任何信息。有时候它们响应ICMP错误消息如类型3代码13 (无法到达目标: 通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧, 不做任何响应。 这迫使Nmap重试若干次以访万一探测包是由于网络阻塞丢弃的。 这使得扫描速度明显变慢。
unfiltered(未被过滤的)
未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。 只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。 用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。
open|filtered(开放或者被过滤的)
当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。 UDP,IP协议, FIN,Null,和Xmas扫描可能把端口归入此类。
closed|filtered(关闭或者被过滤的)
该状态用于Nmap不能确定端口是关闭的还是被过滤的。 它只可能出现在IPID Idle扫描中
4.2 nmap -h 完整翻译
使用方法: nmap [扫描类型(s)] [选项] {目标说明}
目标说明:
通过主机名称, IP 地址, 网段, 等等.
协议: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL : 输入 主机或者网段
-iR <主机数>:随机选择目标
–exclude <主机1[,主机2][,主机3],…>: 排除的IP或者网段
–excludefile <exclude_file>: 从文件中排除
主机发现:
-sL: List Scan – 简单的列出目标进行扫描
-sn: Ping Scan – 禁用端口扫描
-Pn: Treat all hosts as online — 不使用主机发现
-PS/PA/PU/PY[portlist]: 通过TCP SYN/ACK, UDP or SCTP 等协议发现指定端口
-PE/PP/PM: 使用ICMP协议响应, 时间戳, 和子网掩码 请求 发现 探测
-PO[protocol list]: 使用ip协议
-n/-R: Never do DNS resolution/Always resolve [默认选项]
–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, FIN, 和 Xmas 扫描
–scanflags :自定义tcp扫描
-sI <zombie host[:probeport]>: 空间扫描
-sY/sZ: SCTP初始化 或者 cookie-echo扫描
-sO: IP协议扫描
-b : FTP 反弹扫描
规范端口和扫描序列:
-p : 只扫描指定端口
使用规范: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
–exclude-ports : 排除指定端口扫描
-F: 快速扫描- 扫描常用端口
-r: 连续端口扫描 – 不随机
–top-ports : 扫描 常见的端口
–port-ratio : Scan ports more common than
服务和版本检测:
-sV: 探索开放的端口 以确定服务和版本号
–version-intensity :设置从0-9所有的探针
–version-light:最有可能的漏洞探针(intensity 2)
–version-all: 尝试每一个漏洞探针 (intensity 9)
–version-trace: 显示详细的版本扫描活动 (调试)
扫描脚本的使用:
-sC: 默认脚本进行探测
–script=: 用 逗号分隔的列表, 脚本目录or 脚本类别
–script-args=<n1=v1,[n2=v2,…]>: 为脚本提供参数
–script-args-file=filename:在一个文件中提供NSE脚本(自定义脚本)
–script-trace: 显示所有发送和接收的数据
–script-updatedb: 更新脚本数据库
–script-help=: 显示脚本帮助
是一个逗号分隔的脚本文件列表或脚本类.
操作系统识别:
-O: 使用操作系统探测
–osscan-limit: Limit OS detection to promising targets
–osscan-guess: Guess OS more aggressively
定时和性能:
用于定时任务 <时间> 在多少秒, 或者追加’毫秒’ ,
‘秒’ , ‘分钟’ , 或者 ‘小时’去设置 (e.g. 30m).
-T<0-5>: 设置定时模板 (更方便)
–min-hostgroup/max-hostgroup : 并行扫描的最大值和最小值
–min-parallelism/max-parallelism : 并行扫描
–min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout
–max-retries : Caps number of port scan probe retransmissions.
–host-timeout
–scan-delay/–max-scan-delay
–min-rate : 发送的数据包不低于《数值》
–max-rate : 发送的数据包不超过《数值》
防火墙/ IDS逃避和欺骗:
-f; –mtu : 碎片包 (可以选择 w/given MTU)
-D <decoy1,decoy2[,ME],…>: Cloak a scan with decoys
-S <IP_Address>: 源地址欺骗
-e : 使用指定的接口
-g/–source-port :使用给定的端口号
–proxies <url1,[url2],…>: Relay 通过使用 HTTP/SOCKS4 代理
–data :附加一个自定义的有效载荷发送数据包
–data-string : 添加一个自定义的ASCII字符串发送的数据包
–data-length : 附加随机数据发送数据包
–ip-options : 用指定的IP选项发送数据包
–ttl : 设置ip到达目标的时间
–spoof-mac <mac address/prefix/vendor name>:欺骗本地MAC地址
–badsum:发送用来效验的伪造数据包 TCP/UDP/SCTP
输出:
-oN/-oX/-oS/-oG :输出正常的扫描, XML格式, s|<rIpt kIddi3,和 Grepable 格式, respectively,或者指定的文件名
-oA : 一次输出三种主要格式
-v: 增加详细程度 (使用 -vv 显示更详细)
-d: 提高测试的详细程度 (使用 -dd参数更详细)
–reason: 显示端口处于某个特定状态的原因
–open: 只显示开放的端口
–packet-trace: 显示发送和接收的所有数据包
–iflist:打印主机接口和路由
–append-output: 附加到指定的输出文件
–resume : 回复终止的扫描
–stylesheet <path/URL>: XSL样式表转换XML输出HTML
–webxml: 从Nmap参考样式。或者更便携的XML
–no-stylesheet: Prevent associating of XSL stylesheet w/XML output
杂项:
-6: 启用ipv6扫描
-A: 使操作系统版本检测,检测,脚本扫描和跟踪
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
–stylesheet <path/URL>: XSL样式表转换XML输出HTML
–webxml: 从Nmap参考样式。或者更便携的XML
–no-stylesheet: Prevent associating of XSL stylesheet w/XML output
杂项:
-6: 启用ipv6扫描
-A: 使操作系统版本检测,检测,脚本扫描和跟踪
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-89apHPEV-1713441452071)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!