web渗透测试
1. 信息收集
域名、IP、端口
NMAP
在进行Web渗透测试的信息收集阶段,特别是针对域名、IP和端口的侦查,以下是具体的步骤和技术:
1.1 域名、IP、端口
1.1.1 域名信息收集
- WHOIS查询:使用WHOIS数据库来查找关于域名注册者的详细信息,如注册人、注册日期、过期日期等。这有助于了解目标的背景信息。
- 子域枚举:利用工具(如Sublist3r、Amass)或在线服务(如Censys、Shodan、VirusTotal)来发现与主域名相关的子域名。这可以揭示更多潜在的攻击面。
1.1.2 IP地址信息收集
- 反向DNS查找:通过IP地址执行反向DNS查找,确定其对应的主机名或域名。
- IP历史记录检查:有些网站和服务提供有关特定IP地址的历史变更信息,可能包含之前托管在此IP上的其他网站信息。
1.1.3 端口扫描
- 全端口扫描:使用nmap等工具对目标服务器进行全面的端口扫描,以识别开放的端口及其对应的服务。这一步骤可以帮助确认哪些服务正在运行,并为后续更深入的测试奠定基础。
- 服务版本检测:在端口扫描的同时,尝试获取每个开放端口上运行的服务版本信息。某些老旧版本的服务可能存在已知的安全漏洞。
工具推荐
- Nmap:一个强大的网络扫描和安全审计工具,可用于探测网络连接、端口状态以及操作系统指纹识别。
- Masscan:号称世界上最快的TCP端口扫描器,适合大规模快速扫描。
- Amass:专注于资产发现和攻击面映射,特别擅长于子域名挖掘。
- TheHarvester:用于收集电子邮件地址及子域名的工具。
- DNSDumpster:在线服务,提供详细的DNS相关信息,包括子域名、A记录、MX记录等。
注意事项
- 在进行任何信息收集活动时,请确保遵守法律法规,并且只针对你有合法授权的目标。
- 信息收集应当尽量低调,避免引起目标系统的注意或触发入侵检测系统(IDS)/入侵防御系统(IPS)报警。
- 收集到的信息应该妥善保存,并仅限于项目相关人员访问,保护敏感数据不被泄露。
以上就是针对域名、IP和端口信息收集的一些基本方法和技术。这些信息是进一步开展渗透测试的基础,对于理解目标环境至关重要。
nmap详解
Nmap(Network Mapper)是一个网络扫描和安全审计工具,它提供了丰富的命令行参数来定制扫描行为。以下是nmap常用参数的详细说明:
基本扫描选项
-sP
或-sn
:仅执行主机发现(ping扫描),不进行端口扫描。-sT
:TCP connect() 扫描,这是最基础的TCP端口扫描方式,速度较慢但不易被防火墙阻挡。-sS
:SYN 扫描(半开放扫描),发送SYN包后不完成三次握手,适用于大多数情况下的快速扫描。-sU
:UDP 扫描,用于检测开放的UDP端口。-sA
:ACK 扫描,主要用于识别防火墙规则,通过发送带有ACK标志的数据包。-sW
:窗口扫描,类似于ACK扫描,但更少见。-sM
:Maimon扫描,一种特殊的TCP扫描方法,对某些操作系统有效。
主机发现
-Pn
:跳过主机发现阶段,默认情况下Nmap会尝试确定目标是否在线;使用此选项可以强制扫描离线的目标。-PS [portlist]
:指定TCP SYN ping使用的端口列表。-PA [portlist]
:指定TCP ACK ping使用的端口列表。-PU [portlist]
:指定UDP ping使用的端口列表。-PY [portlist]
:指定SCTP INIT ping使用的端口列表。-PE
、-PP
、-PM
:分别对应ICMP Echo、Timestamp、Netmask请求的ping类型。--disable-arp-ping
:禁用ARP ping(局域网内默认开启)。--traceroute
:启用路由跟踪功能,显示到达目标的路径。
端口指定与服务版本探测
-p <port ranges>
:指定要扫描的端口范围,如-p 22
或-p 1-65535
。-F
:快速模式,只扫描最常见的100个端口。--top-ports <number>
:扫描最常使用的前N个端口。-sV
:尝试识别每个开放端口上运行的服务及其版本信息。--version-intensity <level>
:设置服务版本探测强度,范围是0到9,默认为7。
操作系统检测
-O
:尝试猜测远程操作系统的类型。--osscan-guess
:更加激进地猜测操作系统,即使匹配度不高也返回结果。--max-os-tries <tries>
:限制OS检测的最大重试次数,默认为3次。
性能优化
-T<0-5>
:设置扫描时间模板,从非常慢(T0)到极其快(T5),默认为T3。--min-hostgroup <size>
和--max-hostgroup <size>
:设定并行扫描的最小/最大主机数。--min-parallelism <numprobes>
和--max-parallelism <numprobes>
:设定并行探测的数量。--min-rate <number>
和--max-rate <number>
:控制每秒发送数据包的最小/最大速率。
输出格式
-oN/-oX/-oS/-oG <file>
:将输出保存为普通文本/Nmap XML/Scripable Output/Grepable格式文件。-oA <basename>
:同时生成三种格式的输出文件,文件名以指定的基本名称命名。--reason
:显示导致每个端口状态的原因(例如收到的RST响应)。--open
:只显示开放的端口。
其他选项
-v
:增加输出的详细程度,可以多次使用以提高详细级别(如-vv
)。-d
:调试模式,显示详细的调试信息。-h
或--help
:显示帮助信息。--script=<Lua脚本>
:运行指定的Nmap Scripting Engine (NSE) 脚本,用于执行高级任务如漏洞评估等。
具体流程:
- -S <源地址> 指定源地址,为了不被发现真实IP,扫描IP欺骗!
- nmap -vv <> 获取端口开放情况
- nmap -sV -p <端口> <> 获取服务版本,猜测服务类型
2. 漏洞扫描
漏洞扫描是渗透测试的重要组成部分,它可以帮助我们识别系统中存在的安全漏洞,并根据漏洞的类型和危害程度,制定相应的应对策略。
确实存在多个与 Nessus 功能相似或在某些方面更为专业的工具,它们各有特色和优势。选择哪一个取决于你的具体需求、预算以及对特定功能的偏好。以下是一些常见的替代方案:
1. OpenVAS
- 特点:开源漏洞扫描器,具有丰富的插件库和详细的报告功能。
- 优点:完全免费且开源;支持广泛的漏洞检测;适合需要定制化解决方案的企业。
- 适用场景:适用于那些希望利用开源资源并进行深度定制的组织。
2. Metasploit Framework
- 特点:专注于渗透测试,提供从漏洞发现到利用的一站式服务。
- 优点:强大的漏洞开发平台,广泛应用于安全研究领域;社区活跃,更新频繁。
- 适用场景:对于需要深入研究漏洞或执行复杂攻击模拟的安全团队非常有用。
3. QualysGuard
- 特点:基于云的服务,提供全面的IT资产管理和漏洞评估。
- 优点:易于部署,无需本地安装;提供实时威胁情报和持续监控。
- 适用场景:适合寻求云端解决方案并且关注自动化和持续保护的企业。
4. Rapid7 Nexpose (now InsightVM)
- 特点:集成的风险管理平台,结合了漏洞管理、配置审计和补丁管理等功能。
- 优点:用户界面友好,易于理解和操作;提供了强大的风险评分系统。
- 适用场景:对于需要综合风险管理工具的企业来说是个不错的选择。
5. Acunetix Web Vulnerability Scanner (AWVS)
- 特点:专注于Web应用程序的安全性测试,包括SQL注入、XSS等漏洞。
- 优点:快速准确地识别Web应用中的安全问题;拥有直观的界面和详尽的报告。
- 适用场景:特别适合Web开发者和技术人员用来确保其Web应用程序的安全性。
6. Core Impact Pro
- 特点:高级渗透测试平台,不仅限于漏洞扫描,还包括漏洞利用和后渗透活动。
- 优点:提供了一套完整的安全评估工具集;非常适合专业级的安全顾问和服务提供商。
- 适用场景:适用于需要执行全面安全评估的专业人士或企业。
7. Probely
- 特点:SaaS型Web应用安全扫描器,提供自动化的漏洞检测服务。
- 优点:无需安装软件,简单易用;定期更新以应对最新的安全威胁。
- 适用场景:适合中小型企业或初创公司,尤其是那些没有专门的安全团队但又需要基本的安全保障的企业。
8. Intruder
- 特点:提供外部和内部网络的持续性安全监测。
- 优点:自动化程度高,能够快速发现新出现的漏洞;价格相对亲民。
- 适用场景:适合想要简化安全流程并获得即时反馈的各类组织。
9. Sucuri Web Security Platform
- 特点:专门为网站和Web应用程序设计的安全服务平台。
- 优点:专注于恶意软件清除、防火墙保护及性能优化;提供了良好的客户支持。
- 适用场景:对于托管WordPress或其他CMS平台的网站所有者来说是非常好的选择。
10. Tenable.sc(原SecurityCenter)
- 特点:Tenable自家的另一个产品,专注于企业级的安全管理和分析。
- 优点:支持大规模部署,具备强大的报表和可视化功能;与多种第三方工具集成良好。
- 适用场景:大型企业和机构,特别是那些已经使用Tenable产品的组织。