【渗透测试】信息收集二

其他信息收集

在渗透测试中,历史漏洞信息收集是一项重要的工作,以下是相关介绍:

历史漏洞信息收集的重要性

  • 提高效率:通过收集目标系统或应用程序的历史漏洞信息,可以快速定位可能存在的安全问题,避免重复劳动,提高渗透测试的效率。如果已知某个软件版本存在特定的漏洞,那么在测试过程中就可以直接针对该漏洞进行验证和利用,而无需再进行大量的无头绪的探测123.
  • 发现潜在风险:即使目标系统已经进行了部分安全更新和修复,历史漏洞信息仍可能揭示出一些未被完全修复或被忽视的潜在风险点。例如,某些漏洞的修复可能并不彻底,或者由于系统配置的复杂性,导致在修复一个漏洞的同时引入了新的安全隐患。历史漏洞信息收集可以帮助发现这些隐藏的问题3.
  • 辅助漏洞利用:了解历史漏洞的详细信息,包括漏洞的成因、影响范围、利用方式等,有助于渗透测试人员更好地理解目标系统的安全状况,从而制定更有效的漏洞利用策略。对于一些复杂的漏洞链攻击,历史漏洞信息可能提供关键的线索和思路.

常见的历史漏洞信息收集途径

  • 漏洞数据库 :专业的漏洞数据库是收集历史漏洞信息的重要资源,常见的漏洞数据库有以下几种:
    • CVE(Common Vulnerabilities and Exposures):这是一个由美国国家标准与技术研究院(NIST)维护的国际权威漏洞库,收录了各种软件、硬件和网络协议等的已知漏洞信息。每个漏洞都有一个唯一的 CVE 编号,方便查询和引用2.
    • CNVD(China National Vulnerability Database of Information Security):由中国国家信息安全漏洞共享平台发布和管理,主要收录国内的信息安全漏洞信息,对于国内的网络环境和应用系统具有较高的参考价值。
    • CNNVD(China National Computer Virus Emergency Response Center Vulnerability Database):中国国家计算机病毒应急处理中心建立的漏洞库,侧重于计算机病毒和恶意软件相关的漏洞信息,同时也涵盖了一些常见的网络安全漏洞。
  • 安全厂商公告:各大安全厂商如绿盟科技、启明星辰、360 等会定期发布安全公告,其中包含了他们所发现的最新漏洞信息以及针对这些漏洞的解决方案和建议。这些公告通常会针对特定的产品或技术,具有较强的针对性和实用性3.
  • 软件开发商官网:软件开发商会在其官方网站上发布关于产品的安全更新和漏洞修复信息。例如,微软会在其官网的安全更新页面发布 Windows 系统及相关软件的漏洞补丁和说明;开源软件项目如 WordPress、Drupal 等也会在其官方网站或代码仓库中公布漏洞信息和修复版本3.
  • 安全论坛和社区:一些知名的安全论坛和社区,如 FreeBuf、Seebug 等,汇聚了大量的安全研究人员和爱好者,他们会在这些平台上分享和讨论各种漏洞信息、攻击案例和安全技术。在这些论坛上,可以找到一些最新的、尚未被广泛报道的漏洞信息,以及其他安全从业者对漏洞的分析和见解23.
  • 历史漏洞报告和研究论文:一些专业的安全研究机构和学者会发布关于特定领域或行业的历史漏洞报告和研究论文,这些报告通常会对某一类漏洞进行深入的分析和总结,包括漏洞的发展趋势、影响范围、修复措施等。通过阅读这些报告和论文,可以获取更全面、深入的历史漏洞信息,为渗透测试提供更有力的支持3.

历史漏洞信息收集的方法和技巧

  • 精准搜索:使用准确的关键词和搜索语法,可以更快速地找到与目标系统相关的历史漏洞信息。例如,在搜索引擎中输入目标软件或系统的名称、版本号以及 "漏洞"、"CVE" 等关键词,如 "WordPress 5.0 CVE 漏洞",可以找到该版本 WordPress 的相关漏洞信息。还可以使用一些高级搜索语法,如在 Google 中使用 "site:wooyun.shuimugan.com 目标系统名称 漏洞" 来限定在乌云漏洞平台上搜索目标系统的漏洞信息34.
  • 关注行业动态:关注安全行业的最新动态和趋势,及时了解新出现的漏洞类型和攻击手法。可以通过订阅安全资讯邮件、关注安全媒体的社交媒体账号、参加安全会议和研讨会等方式,保持对行业动态的关注,以便在渗透测试中能够及时发现和应对新的安全威胁.
  • 建立漏洞库:在收集历史漏洞信息的过程中,可以建立自己的漏洞库,将收集到的漏洞信息进行整理、分类和归档,方便后续的查询和使用。漏洞库可以按照软件类型、漏洞类型、影响程度等进行分类,同时记录漏洞的详细信息,如漏洞名称、CVE 编号、漏洞描述、影响版本、修复措施等,以便在渗透测试中能够快速定位和利用相关漏洞。
  • 交叉验证:为了确保收集到的历史漏洞信息的准确性和可靠性,可以对从不同渠道获取的信息进行交叉验证。例如,当在某个漏洞数据库中发现一个漏洞信息时,可以通过查询软件开发商的官网、安全厂商的公告或其他权威渠道来核实该漏洞的真实性和详细情况,避免因错误或虚假的漏洞信息而导致渗透测试方向的偏差

有哪些工具可以辅助进行历史漏洞信息收集?

以下是一些可以辅助进行历史漏洞信息收集的工具:

网络爬虫与数据挖掘工具

  • PwnBack :这是一个 Burp Suite 的插件,可利用Web.archive.org的服务回溯并爬取网站的多年历史记录,能帮助安全专家深入探索网站的历史版本,发现潜在的安全漏洞和敏感信息。其通过 PhantomJS 作为驱动,可以解析并抓取网页上的 JavaScript 内容,确保对archive.org返回的页面进行完整渲染1.
  • Collector:一款基于 Python 开发的开源工具,能够智能地从整个网站域收集易受跨站脚本攻击的参数,通过利用 Wayback Machine 来发现历史上的安全漏洞点,为开发者和安全专家提供有力支持,其不仅局限于 URL 的抓取,还会深入 JS 文件挖掘敏感信息,以实现全方位覆盖潜在风险2.

漏洞扫描工具

  • Nessus:一款功能强大的漏洞扫描工具,提供了多种漏洞检测插件,可检测出系统、网络设备、应用程序等存在的历史漏洞和潜在安全风险,并生成详细的漏洞报告,支持多种操作系统和平台,被广泛应用于企业级的安全评估和漏洞管理。
  • OpenVAS:开源的漏洞扫描和管理工具,类似于 Nessus,能够对网络中的各种设备和系统进行全面的漏洞扫描,包括操作系统漏洞、网络服务漏洞、应用程序漏洞等,其漏洞库会定期更新,以确保能够检测到最新的历史漏洞信息,通过 Web 界面进行操作和管理,方便用户查看和分析扫描结果 。
  • QualysGuard:基于云计算的漏洞管理解决方案,可对企业的网络、系统和应用程序进行持续的监控和评估,及时发现新出现的漏洞和历史遗留漏洞,提供详细的漏洞分析和修复建议,还支持与其他安全工具和流程的集成,帮助企业更好地管理和应对安全风险 。

安全情报平台

  • VirusTotal:不仅可以用于检测恶意文件和网址,还收集了大量软件和应用程序的历史漏洞信息。用户可以通过上传文件或输入网址等方式,查询相关的安全情报,包括是否存在已知漏洞、恶意行为等,其数据来源广泛,包括多个安全厂商和研究机构的贡献,能够为用户提供较为全面的安全评估3.
  • CVE Details:专注于 CVE 漏洞信息的收集和整理,提供了详细的漏洞描述、影响版本、解决方案等信息,用户可以通过搜索特定的软件或产品名称,快速查找相关的历史漏洞记录,还支持漏洞趋势分析和统计功能,帮助用户了解不同类型漏洞的发展趋势和分布情况。
  • Exploit Database: 汇集了大量公开披露的漏洞利用代码和相关信息,安全研究人员和渗透测试人员可以在其中查找目标系统或应用程序的历史漏洞利用方法和案例,通过分析这些漏洞利用信息,更好地理解漏洞的本质和危害,为渗透测试和漏洞修复提供参考依据 。

搜索引擎与特定网站查询工具

  • ZoomEye:网络空间搜索引擎,收录了互联网空间中的设备、网站及其使用的服务或组件等信息,拥有两大探测引擎,可标识出互联网设备及网站所使用的服务及组件等信息,用户可方便地了解组件的普及率及漏洞的危害范围等历史漏洞信息4.
  • Shodan:与 ZoomEye 类似,可搜索网络空间中的各种设备和服务,通过对大量设备和服务的信息收集和分析,为用户提供有关目标系统的详细信息,包括设备类型、操作系统版本、开放端口、应用程序等,进而帮助用户查找相关的历史漏洞和潜在安全风险 。
  • Censys:可以对互联网上的主机和服务进行全面的扫描和分析,提供丰富的信息查询功能,包括 IP 地址、域名、端口、协议、证书等信息,用户可以通过这些信息来发现目标系统的历史漏洞和安全配置问题 3.

软件成分分析工具

  • Dependency-Check:OWASP 的实用开源程序,用于识别项目依赖项并检查是否存在任何已知的、公开披露的漏洞,支持 Java、.net、ruby、php、node.js、python 等多种语言编写的程序,可与多种主流的软件集成,如命令行、ant、maven、gradle、jenkins、sonar 等,能够帮助开发人员和安全人员及时发现项目中使用的第三方库和组件存在的历史漏洞.
  • Retire.js:主要用于检测 JavaScript 和 HTML 文件中使用的 JavaScript 库是否存在已知的漏洞,通过分析网页中的脚本引用,与已知的漏洞数据库进行比对,从而发现可能存在风险的库版本,可作为一种前端安全检测工具,帮助发现网站前端应用中存在的历史漏洞隐患 。

可辅助进行历史漏洞信息收集的免费工具

  • 漏洞扫描类
    • Arachni:用于现代 web 应用程序的高性能开源漏洞扫描工具,能够识别如 sql 注入、xss、本地文件包含等各种各样的安全问题。它是一个包含很多特性、模块化的、高性能的 ruby 框架,支持所有主流操作系统,可导出评估报告,能满足从命令行指令扫描到高性能网格扫描等多种使用场景。
    • Nikto:一款流行的开源 web 服务器扫描程序,可对 web 服务器进行全面测试,检查危险文件、过时的服务器软件和其他潜在漏洞,能在 230 多种服务器上扫描出 3300 多种有潜在危险的文件、cgi 和超过 625 种服务器版本及其他问题,并可扫描指定主机的 web 类型、主机名、指定目录、特定 cgi 漏洞等。
    • Sqlmap:可自动查找网站数据库中的 sql 注入漏洞,具有强大的检测引擎和许多有用的功能,支持一系列数据库服务器,包括 mysql、oracle、postgresql 等,完全支持六种 sql 注入技术,如基于时间的盲测、基于布尔的盲测等。
  • 信息收集与分析类 2 :
  • 数据挖掘与分析类
    • WebIssues:开源的问题追踪和团队协作应用程序,包含服务器和客户端两部分,服务器基于 PHP-MySQL,用于数据存储、通知和发送,客户端为桌面应用程序,可连接到服务器,通过对历史问题追踪数据的分析,挖掘潜在的漏洞信息3.
    • Trac:集成 Subversion 源代码管理系统、Wiki 信息共享系统、BTS Bug 管理系统的 bug 追踪系统,采用 Python 开发,可用于跟踪软件项目中的漏洞和问题,分析其历史变化和趋势,为漏洞信息收集提供参考3.
  • 特定漏洞检测类
    • XSSer:一款专门用于检测跨站脚本攻击(XSS)漏洞的工具,通过多种方式对目标网站进行扫描和测试,能够发现历史上存在的 XSS 漏洞以及潜在的风险点,帮助安全人员及时修复和防范此类漏洞。
    • WPScan:针对 WordPress 网站的漏洞扫描工具,可检测 WordPress 核心、插件、主题等存在的已知漏洞,通过更新漏洞库,能够查找历史版本中的漏洞信息,对于保护和评估 WordPress 网站的安全性非常有用 。

社会工程学

  1. 社会工程学概述
    • 社会工程学是一种通过对人的心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行分析并加以利用,以获取信息、实施欺骗等目的的技术。在渗透测试中,它是一种非传统但非常有效的信息收集手段。
    • 例如,攻击者可能会伪装成公司的 IT 技术支持人员,通过电话联系公司员工,以系统升级或安全检查为由,询问员工的账号和密码等敏感信息。
  2. 社会工程学信息收集方法
    • 伪装身份
      • 可以伪装成各种角色来获取信息。如在企业环境中,伪装成内部审计人员,联系其他部门员工,要求提供业务流程、系统权限等相关信息。
      • 例如,攻击者通过伪造证件,假扮成消防部门的检查人员,进入公司办公区域,借口检查消防设施,观察员工的办公环境,收集诸如用户名、密码提示贴纸等信息。
    • 网络钓鱼
      • 这是一种常见的社会工程学攻击方式。攻击者发送看似合法的电子邮件,诱导收件人点击链接或下载附件。这些链接通常指向恶意网站,用于窃取用户的登录凭证等信息。
      • 例如,发送一封主题为 "您的银行账户安全提醒" 的邮件,邮件内容包含一个与银行官网相似的链接。当用户点击链接并输入账号和密码时,信息就会被窃取。
      • 还可以通过钓鱼短信,以中奖、快递异常等理由诱导用户点击链接或拨打电话,进而套取个人信息。
    • 电话诈骗
      • 利用电话与目标对象进行沟通,编造合理的借口获取信息。比如,打电话给公司的财务人员,冒充公司高层,要求紧急转账到指定账户。
      • 攻击者可能会提前收集公司高层的姓名、职位、讲话风格等信息,使电话诈骗更具迷惑性。例如,通过社交媒体了解公司高层的口音和常用词汇,在电话中模仿得更逼真。
    • 垃圾搜寻(Dumpster Diving)
      • 从目标组织或个人丢弃的物品中寻找有用信息。这可能包括旧的文件、硬盘、USB 设备等。
      • 例如,在公司附近的垃圾桶中寻找被丢弃的文件,可能会发现包含员工信息、组织结构图、业务合同等敏感信息的纸张。
  3. 防范社会工程学攻击的措施
    • 员工培训
      • 对员工进行安全意识培训是防范社会工程学攻击的关键。培训内容应包括识别网络钓鱼邮件、可疑电话等。
      • 例如,教会员工如何查看邮件的发件人地址是否真实,以及如何识别链接是否指向恶意网站。同时,培训员工在面对陌生人询问敏感信息时要保持警惕,及时向相关部门核实对方身份。
    • 信息管理政策
      • 制定严格的信息管理政策,如限制敏感信息的打印和外带,对废弃的文件和存储设备进行安全销毁等。
      • 例如,要求员工使用碎纸机销毁包含敏感信息的纸张,对旧硬盘等存储设备进行数据擦除或物理销毁。
    • 多因素认证
      • 采用多因素认证可以增加攻击者获取系统访问权限的难度。即使攻击者通过社会工程学手段获取了用户的密码,没有其他认证因素(如短信验证码、指纹等),也无法登录系统。

钓鱼页面

钓鱼页面是一种在网络攻击中常用的欺诈手段,以下为你详细介绍:

定义及原理

钓鱼页面是攻击者精心仿造的、外观与合法正规网站(如常见的银行官网、电商平台、社交平台等)高度相似的网页,其目的是诱骗用户输入个人敏感信息,比如账号、密码、身份证号码、银行卡信息、验证码等,进而获取这些信息用于非法活动,例如盗刷银行卡、冒用身份进行诈骗等。攻击者通过各种渠道引导用户访问这些钓鱼页面,利用用户难以分辨真假网站的情况实施诈骗。

常见的呈现形式

  • 仿冒银行登录页面:几乎原样复制正规银行网站的界面风格、页面布局以及网址特征等,只是网址往往会有细微差别,比如将银行官网域名中的个别字母替换或者添加一些容易被忽略的字符。用户在访问时稍不注意,以为是正常登录银行账户进行操作,输入相关信息后就会泄露给不法分子。
  • 仿冒电商平台页面:模仿淘宝、京东等知名电商的商品下单、支付页面或者账户管理页面等。例如,制作一个看似正在进行限时优惠活动的商品下单页面,诱导用户登录账号并输入支付密码等信息来完成 "购买",实则是将用户信息窃取走。
  • 仿冒社交平台页面:像微信、QQ 等社交平台的登录页面也常被仿冒。比如,发送消息告知用户 "账号存在异常需重新验证登录",引导用户点击链接进入仿冒的登录页面,一旦输入账号密码,账号就可能被攻击者控制,进而向好友发送诈骗消息等。

传播途径

  • 电子邮件:攻击者会发送包含钓鱼链接的邮件,邮件主题通常极具吸引力和迷惑性,比如 "您的账户有异常交易需尽快处理""恭喜您获得平台抽奖机会" 等,邮件内容会引导用户点击链接跳转到钓鱼页面。
  • 短信:以短信形式发送诱导链接,话术诸如 "快递包裹出现问题,请点击链接查询详情""您的手机积分即将过期,点击链接兑换礼品" 等,诱使收件人点击短信中的链接进入钓鱼页面。
  • 社交平台消息:在社交软件上向目标用户发送私聊消息,利用用户对好友的信任,编造理由让其访问钓鱼页面,比如伪装成好友说 "我刚发现一个超划算的购物链接,你快看看"。

识别方法

  • 查看网址:仔细核对网站的域名,正规网站的域名一般比较规范且容易识别,而钓鱼页面的网址往往存在拼写错误、添加多余字符、使用相似域名等情况。例如,银行官网域名通常是其官方的标准英文缩写等组合,钓鱼网址可能会多几个字母或者改变字母顺序。
  • 检查页面细节:正规网站的页面设计通常比较精致,图片、文字排版规范,而钓鱼页面可能存在图片模糊、文字有错别字、链接跳转不顺畅等细节问题。同时,查看页面的安全锁标识等,正规的 https 加密页面会有相应安全标识,缺少这些或者标识异常的可能是钓鱼页面。
  • 留意来源:对于来历不明的邮件、短信、消息中包含的链接要保持警惕,尤其是非官方渠道通知的涉及个人敏感信息操作的链接,不要轻易点击。

防范措施

  • 提高安全意识:了解钓鱼页面的常见套路和识别方法,保持警惕,不随意点击可疑链接,不轻易在不明网站输入个人敏感信息。
  • 安装安全软件:使用可靠的杀毒软件、防火墙等安全工具,它们可以对访问的网页进行检测,在一定程度上识别并拦截钓鱼页面,提示用户存在风险。
  • 核实信息来源:收到涉及重要事项的通知时,通过官方客服电话、正规应用内的咨询渠道等核实消息的真实性,避免被钓鱼页面所骗。

如何判断一个网页是否是钓鱼页面

  1. 网址检查
    • 域名分析
      • 仔细查看域名,正规网站的域名通常是品牌名称或与其紧密相关的词汇。例如,真正的银行网站域名会包含银行的官方名称缩写,像中国工商银行是 "icbc.com.cn"。如果域名看起来很奇怪,或者包含一些随机的数字和字母组合,很可能是钓鱼网站。
      • 注意顶级域名(TLD),常见的有.com、.net、.org、.gov 等。一些钓鱼网站可能会使用不太常见的顶级域名来模仿正规网站,如 ".xyz"".tk" 等。
    • 子域名和路径检查
      • 有些钓鱼网站会使用合法域名的子域名来迷惑用户。例如,在正规网站域名 "example.com" 的基础上,使用 "sub.example.com" 这样的子域名来制作钓鱼页面。虽然主域名看起来合法,但子域名可能是非法的。
      • 检查网址路径部分,看是否有不符合逻辑的内容。例如,正规银行网站的登录路径可能是 "https://bank.com/login",如果出现 "https://bank.com/strange - path/login - page" 这样奇怪路径的页面,要提高警惕。
    • https 协议检查
      • 正规的、涉及用户隐私信息处理的网站通常会使用 https 加密协议。可以查看浏览器地址栏中的网址,在 https 协议中,"s" 表示安全(Secure),意味着数据在传输过程中会进行加密。如果是 http 协议(没有 "s"),尤其是在要求输入敏感信息(如登录密码、银行卡信息等)的页面,很可能是钓鱼网站。
      • 还要注意查看 https 证书的有效性。在浏览器地址栏中,点击锁形图标可以查看证书信息。如果证书已过期、颁发给错误的域名或者是自签名证书(非权威机构颁发),那么这个网站就存在风险。
  2. 页面内容审视
    • 页面布局和设计
      • 与合法网站进行对比,钓鱼网站的页面布局可能会有细微差别。例如,正规的电商网站商品展示和购物车按钮等布局合理、美观,而钓鱼网站可能会出现排版混乱、图片模糊或不完整的情况。
      • 注意网站的 logo 和品牌标识,钓鱼网站的 logo 可能颜色不准确、比例失调或者看起来像是低质量的复制。
    • 拼写和语法错误
      • 钓鱼网站往往会存在拼写和语法错误,因为攻击者制作页面时可能不够细心或者翻译质量差。例如,在页面的提示信息、按钮文字或者版权声明中出现错别字,如 "请输如您的密码"("输如" 应为 "输入")。
    • 联系方式和版权信息
      • 查看网站的联系方式,正规网站一般会提供详细、准确的联系电话、邮箱地址和公司地址等信息。钓鱼网站可能会缺少这些信息,或者提供的联系方式是假的。
      • 检查版权信息,合法网站的版权声明会明确网站的所有者和版权归属。如果版权信息模糊不清或者与网站声称的品牌不符,很可能是钓鱼网站。
  3. 功能和链接验证
    • 链接跳转行为
      • 将鼠标悬停在页面上的链接上,查看浏览器状态栏中显示的目标网址。如果显示的网址与链接的文本描述不符,或者指向一些奇怪的、非预期的网站,那么这个页面可能是钓鱼网站。
      • 点击链接后,观察页面的跳转是否自然、流畅。如果页面跳转后出现奇怪的弹窗、自动下载文件或者跳转到明显不相关的网站,要小心。
    • 表单提交行为
      • 在要求输入敏感信息(如登录信息、个人资料、银行卡信息等)的表单页面,查看表单提交后的反馈。正规网站通常会有明确的提示信息,如 "登录成功""信息提交成功" 等。而钓鱼网站可能会在用户提交信息后没有任何反馈,或者反馈信息很奇怪,如显示一个空白页面或一个与输入内容无关的提示。
    • 功能完整性
      • 正规网站的功能通常是完整且能正常使用的。例如,购物网站可以正常添加商品到购物车、完成支付流程;银行网站可以正常查询账户余额、进行转账等操作。如果网站的功能无法正常使用,或者某些关键功能缺失(如无法找回密码),可能是钓鱼网站。
  4. 信息来源核实
    • 邮件和消息来源
      • 如果是通过邮件或消息中的链接访问的网页,检查邮件或消息的发送者。对于银行、电商等正规机构发送的邮件,其发件人地址通常是官方的邮箱域名,如 "service@bank.com"。如果发件人地址看起来很奇怪,或者是个人邮箱地址,很可能是钓鱼邮件。
      • 查看邮件或消息的内容,正规机构发送的内容通常是专业、规范的,不会出现威胁、紧急要求用户立即行动的语气。如果邮件内容充满了错别字、语法错误,并且使用夸张的语言(如 "您的账户即将被永久冻结,必须马上登录处理"),很可能是钓鱼信息。
    • 搜索引擎和推荐来源
      • 如果是通过搜索引擎访问的网页,查看搜索结果的描述和网址是否与预期一致。有些钓鱼网站可能会通过搜索引擎优化(SEO)技巧,使自己的页面在搜索结果中排名靠前,但仔细观察会发现其描述和网址存在问题。
      • 对于别人推荐的网站,询问推荐者网站的详细情况,如网站的用途、是否是官方渠道等,以核实其合法性。

网站指纹识别

网站指纹识别是一种通过识别网站的特定属性和元素,来对其进行标识和分类的技术,以下是具体介绍:

识别的信息类型

  • 服务器信息:包括服务器的类型及版本,如常见的 Apache、Nginx 等,不同服务器版本可能存在不同的漏洞和配置特点,识别出服务器信息有助于进一步发现潜在的安全风险15 。
  • 脚本类型:如 PHP、ASP、JSP 等,了解脚本类型可以为后续的漏洞挖掘提供方向,因为不同脚本语言在处理输入输出、数据库交互等方面有各自的特点和可能存在的安全隐患137.
  • 内容管理系统(CMS):常见的 CMS 有 WordPress、DedeCMS、Discuz 等,每个 CMS 都有其独特的结构、命名规则和特定的文件内容,通过识别 CMS 类型及其版本,可以查找与之相关的已知漏洞,从而实施更有针对性的渗透测试123.
  • 框架和库:识别网站所使用的 Web 框架,如 Spring、Django 等,以及 JavaScript 库,如 jQuery、Vue.js 等,这些框架和库的版本信息对于评估网站的安全性也非常重要,旧版本可能存在未修复的安全漏洞127.
  • 其他信息:还可能包括网站的编程语言、中间件架构类型、IP 地址、Cookie 信息等,这些信息综合起来能够更全面地了解网站的技术架构和运行环境127.

常用的识别方法

  • 在线工具识别
    • 潮汐指纹识别:通过输入网址,可快速识别出目标网站的服务器、CMS 等信息,为安全测试人员提供初步的网站技术架构概览1.
    • 云悉指纹识别:能够检测网站的多种信息,包括服务器类型、CMS、脚本语言、网站使用的框架及组件等,其数据库较为全面,能识别出常见的各类网站指纹信息1.
    • WhatWeb 在线版:可识别内容管理系统、中间件、Web 框架模块、网站服务器、脚本类型、JavaScript 库等众多信息,拥有大量的插件来扩展其识别能力,输入网址后能迅速返回详细的网站指纹信息127.
  • 工具识别 1 :
    • Ehole:主要用于对资产中重点系统的指纹识别,可帮助红队人员在大量资产中快速定位到易被攻击的系统,如 OA、VPN、Weblogic 等,从而实施进一步的攻击。
    • TideFinger:潮汐指纹识别工具版,能够较为准确地识别目标网站的指纹信息,为渗透测试提供有力支持。
    • WhatWeb:kali 系统中集成的工具,基于 Ruby 语言开发的开源网站指纹识别软件,可识别出网站的各种技术细节,通过命令行操作,能对单个或多个目标网站进行批量指纹识别,并生成详细的报告。
    • Finger:一款红队在大量资产中进行存活探测与重点攻击系统指纹探测的工具,可帮助快速筛选出具有特定指纹特征的目标网站,提高渗透测试的效率。
  • 手动识别 1 :
    • 查看 HTTP 响应头:重点关注 X-Powered-By、Server、Cookie 等字段,这些字段可能会泄露服务器的类型、版本以及所使用的技术框架等信息。例如,X-Powered-By 字段可能会显示服务器所使用的脚本语言及版本号。
    • 分析 HTML 特征:查看 body、title、meta 等标签的内容和属性,有时网站的开发者会在这些标签中留下一些与网站技术架构相关的线索,如特定的 meta 标签可能会注明网站所使用的 CMS 名称或版本。
    • 根据特殊的 CLASS 类型判断:HTML 中存在特定 CLASS 属性的某些 DIV 标签也可能暗示网站所使用的技术框架或 CSS 框架,通过分析这些标签的命名和结构,可以获取相关的指纹信息。
  • 浏览器插件识别:如 Wappalyzer 插件,可分析目标网站所采用的平台构架、网站环境、服务器配置环境、JavaScript 框架、编程语言、中间件架构类型等参数,还能检测出 CMS 的类型,安装后在浏览器中访问目标网站时,即可自动显示相关的指纹信息,方便快捷地获取网站的技术细节12.

敏感文件及目录探测

  1. 敏感文件及目录探测的重要性
    • 在渗透测试中,敏感文件及目录探测是发现潜在安全漏洞的关键步骤。许多网站可能会因为配置错误、疏忽或遗留的开发文件等原因,在服务器上暴露敏感信息。这些敏感信息一旦被攻击者获取,可能会导致严重的安全后果,如用户数据泄露、系统被入侵等。
  2. 常见的敏感文件和目录类型
    • 配置文件
      • 像网站的数据库配置文件(例如,对于 PHP 网站,可能是 config.php 文件),其中包含数据库的用户名、密码、主机名等关键信息。如果获取到这些信息,攻击者就可以直接访问数据库,窃取或篡改其中的数据。
      • 应用程序的配置文件,如 Web 服务器(Apache 或 Nginx)的配置文件(httpd.conf 或 nginx.conf),这些文件包含服务器的各种设置信息,包括虚拟主机配置、访问控制规则等,通过分析这些文件,攻击者可能会发现安全策略的漏洞。
    • 备份文件
      • 网站备份文件(如.tar.gz、.zip 等格式)可能包含完整的网站源代码、数据库备份等内容。这些备份文件通常是为了方便网站恢复而创建的,但如果没有妥善保管,被攻击者发现并下载,就相当于把网站的 "钥匙" 交给了攻击者。
      • 数据库备份文件(如.sql 文件)也很关键,其中存储了网站所有的数据信息,一旦泄露,会造成用户隐私数据(如用户账号、密码、订单信息等)的大规模泄露。
    • 日志文件
      • 服务器的访问日志(如 access.log)和错误日志(如 error.log)记录了网站的访问情况和出现的问题。通过分析这些日志,攻击者可以了解网站的流量模式、用户访问习惯,甚至可能发现未修复的漏洞信息。
      • 应用程序日志同样重要,它记录了应用程序内部的运行状态,如登录尝试失败记录等,这些信息可以被用来进行密码猜测等攻击。
    • 敏感目录
      • 管理后台目录(如 /admin/、/manage/ 等)是网站管理的核心区域。如果能够访问这些目录,攻击者就可能获取对网站内容和用户数据的高级管理权限。
      • 上传目录(如 /uploads/)可能存在安全隐患。如果没有对上传文件进行严格的安全检查,攻击者可能上传恶意文件(如木马程序),从而控制整个网站服务器。
  3. 敏感文件及目录探测的方法和工具
    • 目录扫描工具
      • Dirbuster:这是一款 Java 开发的目录扫描工具,它通过暴力枚举的方式,尝试访问各种可能的目录和文件路径。可以设置扫描的起始 URL、字典文件(包含各种可能的目录和文件名)等参数。其优点是功能强大,支持多种协议,能够发现隐藏的目录和文件。
      • Dirsearch:这是一个用 Python 编写的命令行工具,同样基于字典进行目录扫描。它的速度相对较快,并且可以自定义扫描的线程数、超时时间等参数。例如,可以通过设置较大的字典文件来提高发现敏感目录和文件的概率。
    • 搜索引擎利用
      • 利用搜索引擎的高级搜索语法来查找敏感文件和目录。例如,在 Google 中使用 "site: 目标网站域名 inurl:admin" 可以查找目标网站中包含 "admin" 字样的 URL,这可能会帮助发现管理后台目录。
      • 还可以使用专门的代码搜索引擎,如 GitHub 代码搜索引擎,查找目标网站相关的代码库。有时候,开发人员可能会不小心将包含敏感信息的代码提交到公共代码库中,通过这种方式可以发现潜在的安全隐患。
    • 自动化扫描平台
      • Nessus:这是一款功能强大的漏洞扫描工具,除了可以扫描系统漏洞外,还能够对网站进行敏感文件和目录的探测。它拥有庞大的插件库,可以自动识别多种类型的敏感文件和目录,并且会根据发现的情况生成详细的风险评估报告。
      • OpenVAS:作为开源的漏洞扫描工具,OpenVAS 也提供了敏感文件和目录探测的功能。它通过定期更新漏洞签名和扫描策略,能够有效地发现网站上可能存在的安全风险点,包括敏感文件的暴露和目录的不安全访问设置。
  4. 防范敏感文件及目录泄露的措施
    • 权限控制和访问限制
      • 对服务器上的文件和目录设置严格的访问权限。例如,敏感文件应该只有特定的管理员账户可以访问,其他用户和进程应该被严格限制。对于管理后台目录,应该通过 IP 地址限制、身份验证等多种方式进行访问控制。
      • 使用 Web 应用防火墙(WAF)来阻止非法的目录访问请求。WAF 可以根据预设的规则,识别和拦截试图访问敏感目录的恶意流量。
    • 安全的配置管理
      • 在开发和部署过程中,确保配置文件中不包含明文的敏感信息。可以使用环境变量、加密存储等方式来保护关键的配置参数,如数据库密码。
      • 定期清理和备份服务器上的文件。删除不必要的备份文件和临时文件,确保备份文件存储在安全的位置,并且只有经过授权的人员可以访问。
    • 安全意识培训
      • 对开发人员和运维人员进行安全意识培训,让他们了解敏感文件和目录泄露的风险。例如,培训他们如何正确地配置服务器访问权限,避免在代码中硬编码敏感信息,以及如何识别和处理可能导致文件泄露的安全漏洞。

网站指纹识别和敏感文件及目录探测有哪些区别?

网站指纹识别和敏感文件及目录探测主要有以下区别:

目的不同

  • 网站指纹识别:旨在通过分析网站的各种特征,如服务器类型、脚本语言、CMS 类型等,精准地确定网站所使用的技术栈和框架,从而帮助安全研究人员快速了解目标网站的基本信息,为后续查找与其相关的已知漏洞等安全评估工作提供基础145.
  • 敏感文件及目录探测:主要是为了发现网站上可能存在的敏感信息、易受攻击的文件和目录,例如配置文件、备份文件、版本控制系统文件、管理后台目录等,这些一旦被攻击者获取,可能会导致严重的安全后果,如数据泄露、系统被入侵等125.

识别对象不同

  • 网站指纹识别:识别的是网站整体的技术架构和特征信息,包括服务器软件及版本、脚本类型、数据库类型、CMS 类型及版本等,侧重于对网站所采用的技术框架和平台的识别145.
  • 敏感文件及目录探测:聚焦于网站中的具体文件和目录,如常见的.git、.svn 等版本控制文件,.rar、.zip、.bak 等备份文件,以及 /admin/、/uploads/ 等敏感目录,关注的是这些特定资源的存在与否及位置125.

探测方法不同

  • 网站指纹识别
    • 在线工具识别:通过访问特定的在线指纹识别网站,输入目标网址,即可获取网站的相关技术信息,如 WhatWeb、云悉指纹识别等145.
    • 工具识别:使用专门的工具,如 Ehole、TideFinger 等,在本地运行对目标网站进行扫描和识别4.
    • 浏览器插件识别:安装 Wappalyzer 等浏览器插件,在访问目标网站时,插件会自动分析并显示网站的技术架构信息145.
    • 手动识别:通过查看网页源码、HTTP 响应头中的特定字段,如 X-Powered-By、Cookie 等,以及分析 HTML 标签的内容和属性等来判断网站的技术特征4.
  • 敏感文件及目录探测
    • 目录扫描工具:利用 Dirbuster、Dirsearch、Dirmap 等工具,通过暴力枚举的方式,尝试访问各种可能的目录和文件路径,根据返回的状态码等信息来判断敏感文件和目录是否存在135.
    • 搜索引擎利用:借助搜索引擎的高级搜索语法,查找可能暴露敏感信息的文件和目录,或者利用代码搜索引擎查找目标网站相关的代码库,看是否有开发者不小心泄露的敏感信息1.

风险和影响不同

  • 网站指纹识别:一般情况下,单纯的网站指纹识别行为本身对网站的正常运行和数据安全不会造成直接的危害,但如果被恶意攻击者利用,可能会根据识别出的指纹信息,进一步查找和利用相关漏洞来攻击网站。
  • 敏感文件及目录探测:如果敏感文件及目录被成功探测到并被攻击者获取,会直接导致敏感信息泄露,如用户账号密码、数据库连接信息等,进而使网站面临被篡改、数据被窃取或破坏等严重安全风险,对网站及其用户的利益造成极大损害

网站waf识别

网站 WAF(Web Application Firewall,Web 应用防火墙)识别是指通过一系列方法和工具,来判断目标网站是否部署了 WAF 以及确定所部署的 WAF 的类型和相关信息,以下是具体介绍:

常见的 WAF 类型

  • 软件型 WAF:以软件的形式安装在服务器上,能够直接检测服务器上是否存在 webshell、是否有文件被创建等,如 ModSecurity、Naxsi、ShareWAF、安全狗等13.
  • 硬件型 WAF:以独立硬件设备的形态存在,部署在链路中,支持透明桥接模式、旁路模式、反向代理等多种部署方式,可拦截恶意流量,性能好、功能全面,但价格较贵,国内的绿盟、安恒、启明星辰等厂商生产的 WAF 多属此类13.
  • 云 WAF:一般以反向代理的形式工作,通过配置 NS 记录或 CNAME 记录,使对网址的请求报文优先经过 WAF 主机过滤后,再将无害的请求报文发送给实际网站服务器,如阿里云、腾讯云、深信服云 WAF、Imperva WAF 等1.
  • 网站系统内置的 WAF:直接镶嵌在网站代码中,如对输入参数强制类型转换、合法性检测,以及在关键函数执行前对输入进行检测等1.

识别方法及工具

  • 使用自动化工具
    • Wafw00f :能够快速准确地检测出指定网站所使用的 WAF 类型,支持通过代理扫描、多种输入输出格式,还可指定要搜索的 WAF 类型等,使用时只需指定目标网站的域名即可,如wafw00f wise.com.
    • IdentY Waf:也是一款易用且强大的 WAF 识别工具,与 Wafw00f 类似,输入目标网址等相关参数后,即可对网站的 WAF 进行识别.
    • WhatWaf:通过发送特定的请求并分析响应来识别 WAF,具有较高的准确性和较丰富的识别指纹库,能识别多种常见和不常见的 WAF 产品.
  • 手工检测
    • 添加测试语句 :在目标网站的 URL 后面直接加上基础的 SQL 测试语句,如unionand 1=1等,如果网站返回特定的拦截页面或错误信息,可能表示存在 WAF。
    • 分析响应头 :查看 HTTP 响应头中的ServerX-Powered-By等字段,有时其中会包含 WAF 的相关信息。
    • 观察页面行为:尝试输入一些特殊字符或非法的输入值,若网站对输入进行了严格的过滤和拦截,并给出特定的提示信息,可推测存在 WAF 防护。
  • 利用搜索引擎和网络信息:通过搜索引擎查找目标网站是否有公开披露的 WAF 信息,或者查找网站使用的服务器、CDN 等相关信息,因为某些服务器或 CDN 可能默认集成了 WAF 功能。
  • 查看历史漏洞报告和安全公告:查询目标网站或其所属组织是否曾有过安全漏洞被披露,其中可能会提及是否使用了 WAF 以及 WAF 的类型等信息。
相关推荐
零度㏄3 分钟前
linux下解压文件夹
linux
网络安全指导员4 分钟前
渗透利器-kali工具 (第五章-4) Metasploit漏洞利用模块一
开发语言·网络·python
哥咫匙传说6 分钟前
frameworks 之 SystemServiceRegistry
android·linux·车载系统
未来之窗软件服务8 分钟前
android 底层硬件通知webview 技术—未来之窗行业应用跨平台架构
android·运维·服务器
测试小小怪下士9 分钟前
接口自动化测试用例详解
运维·自动化·测试用例
dal118网工任子仪10 分钟前
32.攻防世界Web_php_include
笔记·学习·安全·web安全·网络安全
xxjkkjjkj40 分钟前
ip_done
网络
苹果醋31 小时前
SpringBoot | SpringBoot原理分析
运维·vue.js·spring boot·nginx·课程设计
kingbal1 小时前
VMware:CentOS 7.* 连不上网络
linux·网络·centos
安年CJ1 小时前
计算机操作系统保护与安全教学指南
网络·数据结构·网络协议·安全