信息收集定义
渗透测试的信息收集是一个全面而细致的过程,需要收集各种类型的信息来全面了解目标并发现潜在的安全漏洞。这些信息将作为后续渗透测试的基础和依据。
收集方式:
主动扫描:主动发送数据包目标系统,以探测目标系统的安全漏洞、开放端口、服务状态等信息。需要与目标系统建立直接的通信连接,并发送特定的数据包来触发目标系统的响应。
开放搜索:利用公开信息或开放资源进行搜索和发现安全漏洞的方法。这种方法可能包括使用搜索引擎、开放数据库、社交媒体等渠道来收集目标系统的相关信息。
前期准备(制定计划)
- 目标确定:
测试范围:明确哪些系统、网络、应用或特定IP/域名将接受测试。
测试规则和需求:定义测试的具体目标,如查找web应用的SQL注入漏洞、业务逻辑漏洞等。
测试账户:如果测试需要特定的访问权限,应先准备或申请账户。
- 工具与资源
重点:电脑、服务器、数据库、程序等是渗透测试的主要对象,需要根据测试目标详细规划。
工具:选择合适的渗透测试工具,如漏洞扫描器、端口扫描器、社会工程学技巧和密码爆破工具等。
一、核心基础信息
- IP地址
目标主机的IP地址是渗透测试的基石信息。它是网络中标识主机的唯一数字标识,是与目标进行网络通信和后续测试操作的起点。
- 网段
了解目标主机所在的网段,能够帮助我们掌握目标网络的整体规模和结构布局,网段划定了一个特定的网络范围,在这个范围内的主机通常具有相似的网络配置和安全策略,于我们从宏观层面规划渗透测试的范围和策略。
- 域名
目标网站的域名是用户访问网站的常用URL地址,也是信息收集的关键切入点。通过域名,我们可以进一步挖掘与之相关的各种信息,如子域名、网络架构等。
- 子域名
收集子域名能够显著夸大攻击范围。同一主域名夏的二级域名通常属于相同的资产范畴,彼此之间往往存在一定的关联。通过收集子域名,可以发现更多处于渗透测试范围内的域名和子域名,从而扩大发现漏洞的概率。
子域名的在线工具
1.查域名 https://chaziyu.com
2.IP138子域名查询 stie.ip138.com
3.站长工具子域名查询 tool.chinaz.com
二、端口信息
端口的重要性
端口作为服务器与客户端进行交百的关键接口,其作用举足轻重,不同的端口对应着不同的网络服务,通过对目标主机开放端口的扫描,我们可以了解主机上运行的各类程序和中间件,进而发现潜在的服务漏洞。
端口扫描策略与工具使用
端口扫描是发现目标主机开放端口及对应服务的重要手段。为了高效且准确地完成端口扫描任务,我们可以采用以下工具组合的策略:
1.Mascan:这是KalLnux系统中内置的一款强大端口扫描工具,其性能优于Nme。由于Mascan 的扫描速度极快,我们可以先使用它对目标IP(通常是一个网段)进行全端口扫描,快速定位存活主机及其开放端口。例如,若要扫描某个网段的所有端口,可以使用类似masscan -p1-65535目标网段的命令。
2.Nmap:在Masscan 完成初步扫描后,再使用Nmap对存活主机的开放端口进行详细扫描。Nmap 能够更精确地识别端口对应的服务,并检测这些服务是否存在已知漏洞。例如,针对Masscan发现的开放端口主机,可使用nmap-sv-p开放端口列表目标IP命令进行进一步扫描。此外,在端口扫描过程中,还可以使用NC(NeceU) 工具,关于具具体使用方法在之前已有介绍。通过合理运用这些工具和策略,我们能够全面且深入地了解目标主机的端口和服务情况,为后续的渗透测试工作提供有力支持。
三、操作系统信息收集
识别操作系统的方法与意义:
通过向目标主机发特定的探测包,然后仔细分析响应包中的相关信息,我们能够推测出目标主机所使用的操作系统类型及其版本。准确识别操作系统对于后续制定漏洞利用方案和攻击策略起着至关重要的作用,因为不同的操作系统可能存在不同的安全漏洞和防护机制。
四、中间件信息收集
中间件概述:
中间件是位于应用程序和操作系统之间的软件,常见的有Web服务器(如 Apache、Nginx等)以及应用服务器(如 Tomcat、JBoss 等)。
收集的重要性:
收集中间件信息有助于我们全面了解目标网站的技术架构。基于对中间件的了解,我们可以进一步发现可能存在的中间件漏洞,为后续的渗透测试提供方向。
五、脚本语言信息识别
识别脚本语言的途径:
通过深入分析网页源代码、HTTP响应头等信息,我们可以识别出目标网站所使用的脚本语言,例如 JavaScript、PHP、ASP.NET等。
识别的作用:
了解网站使用的脚本语言有助于我们知晓网站的功能实现方式。同时,不同的脚本语言可能存在各白特有的安全漏洞,识别脚本语言能够帮助我们有针对性地进行安全漏洞排查。
六、数据库信息收集
收集内容:
主要是了解目标网站所使用的数据库类型(如 MySQL、SQL Server、Oracle等)以及对应的版本信息。
收集的意义:
掌握数据库类型和版本信息后,我们可以更有针对性地进行数据库漏洞扫描和渗透测试,因为不同类型和版本的数据库存在的安全风险可能不同。
七、CMS 源码分析
适用情况:
如果目标网站采用了内容管理系统(CMS),像WordPress、Joomla等,就需要对其进行相关分析。
分析内容与目的:
收集CMS的源码信息,分析其版本以及播件的使用情况。这样做有助于我们发现CMS本身或者其播件存在的已知漏洞,进而开展针对性的渗透测试。
八、漏洞类型及其挖掘方式
定义:
基于收集到的信息,使用自动化或手动的方式对目标进行漏洞扫描,查找可能的安全漏洞。
工具扫描:
使用漏洞扫描工具(如OpenVAS、Nessus、Acunetix等)结合漏洞库(如ww.exploit-db.com)对目标系统进行全面的漏洞扫描。
自己挖掘:
通过手动分析和测试目标系统,以发现那些自动化扫描工具可能无法识别或漏报的潜在安全漏洞。这个过程需要深厚的网络安全知识和实践经验,以及对各种攻击技术和漏洞原理的深入理解。
cs
以下为常见的漏洞类型及其挖掘方式:
弱口令
定义:弱口令是指容易被猜测或破解的密码,如"123456%、"password"等常用密码。
挖掘方式:通过暴力破解、字典攻击等方式尝试登录目标系统的账号,以发现是否存在弱口令问题。
REC(远程命令执行漏洞和远程代码执行漏洞)
定义:REC漏洞包括远程命令执行(RCE)和远程代码执行(RCE,尽管这里可能有些重复,但通常指不同层面),它们允许攻击者远程执行系统命令或代码。
挖掘方式:通过输入特定格式的参数或利用应用程序的漏洞,尝试执行系统命令或代码,观察是否成功执行。
SQL注入
定义:SQL注入是一种通过向Web应用程序的输入字段中插入恶意SOL代码,从而欺骗应用程序执行未授权的数据库操作的安全漏洞。
挖掘方式:在应用程序的输入字段中输入特殊字符(如单引号、双引号、注释符号等),尝试构造恶意的SOL查询,观察是否成功获取数据库信息或执行未授权操作。
XSS 跨站脚本攻击
定义:XSS是一种通过向网站注入恶意脚本代码,从而窃取用户敏感信息或对用户进行欺骗、木马攻击等的网络安全漏洞。挖掘方式:在网站的输入框、URL参数等位置输入恶意脚本代码,观察是否能够在用户浏览器中成功执行。
CSRF(跨站请求伪造)
定义:CSRF是一种网络攻击方式,攻击者利用受害者的身份在受害者不知情的情况下执行未授权操作。
挖掘方式:分析目标网站的敏感探作(如转账,修改密码等),尝试构造恶意请求,诱导受害者执行。
SSRF(服务的请求伪造)
定义:SSRF是一种由攻击者构造的、由服务端发起请求的安全漏洞,攻击者可以通过该量洞对服务器所在的内网、本地服务器等进行玫击。
挖掘方式:通过向目标服务器发送包含内网IP地址或本地服务器资源的请求,观察服务器是否发起了相应的请求。
文件上传、下载漏洞
定义:文件上传、下载漏洞允许攻击者上传或下载恶意文件,从而对服务器或用户造成危害。
挖掘方式:尝试上传或下载文件,观察服务器是否对文件类型、大小等进行了有效的限制和验证。
XXE(XML 外部实体注入)
定义:XXE是一种安全漏洞,它允许攻击者利用XML解析器的漏洞,读取服务器上的文件、执行系统命令或进行其他恶意操作。
挖掘方式:在XML数据输入点输入包含外部实体的XML数据,观察服务器是否解析并执行了这些外部实体。
九、漏洞验证
对扫描出的漏洞进行验证,确保漏洞的真实性和可利用性。验证方法包括自动化验证和手工验证,有时还需要搭建模拟环境进行试验验证。
自动化验证:使用自动化工具对漏洞进行初步验证,确认漏洞的真实性和可利用性。
手工验证:根据公开资源进行手工验证,如exploit-db、wooyun等。尝试构建攻击场景,模拟黑客攻击过程。
实验验证:在模拟环境中搭建目标系统的复制品,进行漏洞利用实验。验证漏洞利用的成功率和效果。
十、信息分析
分析收集到的信息和验证的漏洞,评估目标的整体安全状况,确定攻击的可能性和风险安全评估。
绕过防御机制:分析并尝试绕过目标系统的WAF(Web应用防火墙)、防火墙等安全设备。
定制攻击路径:根据收集到的信息,规划从外网到内网的攻击路径,或直接攻击目标系统。
绕过检测机制:了解并尝试绕过代码审查、入侵检测系统等安全监控措施。
攻击代码:编写或选择合适的攻击代码,对目标系统进行实际攻击,以评估其安全性和稳定性。
十一、进行渗透
基于以上所有阶段的成果,实际执行渗透测试,评估目标安全性和稳定性。