#渗透测试#SRC漏洞挖掘# 信息收集-Shodan进阶之Jenkins组件

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。 #陇羽sec#

目录

[Jenkins 组件概述](#Jenkins 组件概述)

[1. Jenkins Master 和 Slave](#1. Jenkins Master 和 Slave)

[2. 插件系统](#2. 插件系统)

[3. Pipeline](#3. Pipeline)

[4. 用户界面](#4. 用户界面)

[5. 安全性](#5. 安全性)

[6. 构建触发器](#6. 构建触发器)

[7. 构建环境](#7. 构建环境)

[Jenkins 安全性配置指南](#Jenkins 安全性配置指南)

[1. 防止未授权访问](#1. 防止未授权访问)

[2. 设置用户权限](#2. 设置用户权限)

[3. 使用安全矩阵](#3. 使用安全矩阵)

[4. 启用 CSRF 保护](#4. 启用 CSRF 保护)

[5. 配置凭据](#5. 配置凭据)

[6. 定期更新和审计](#6. 定期更新和审计)

Jenkins在渗透测试中的应用

自动化测试用例执行

持续集成和持续交付

安全漏洞扫描

Shodan利用jenkins

代码

复现


Jenkins 组件概述

Jenkins 是一个强大的开源持续集成和持续交付平台,它由多个组件组成,每个组件都有其特定的功能和作用。以下是 Jenkins 的一些关键组件及其简要说明:

1. Jenkins Master 和 Slave

Jenkins 的架构分为 Master 和 Slave(也称为节点)。Master 负责协调和管理工作流程,而 Slave 提供计算资源来执行构建任务。这种架构允许 Jenkins 分布式地执行构建和测试任务,提高了效率和灵活性 。

2. 插件系统

Jenkins 的强大之处在于其插件系统。插件可以扩展 Jenkins 的功能,支持多种构建、测试和部署工具。例如,SonarQube Plugin 用于代码质量分析,Maven Plugin 用于构建管理,Subversion Plug-in 用于版本管理等 。

3. Pipeline

Pipeline 是 Jenkins 中用于实现持续交付流水线的关键组件。它允许用户定义复杂的构建、测试和部署流程,并且可以可视化地展示这些流程。Pipeline 可以通过 Groovy 脚本来定义,提供了极大的灵活性 。

4. 用户界面

Jenkins 提供了一个友好的 Web 界面,用户可以通过浏览器进行配置、管理和监控 Jenkins 实例。界面中包含了各种配置选项、构建状态、日志信息等 。

5. 安全性

Jenkins 支持多种安全特性,包括用户认证、权限管理、加密存储等。用户可以通过配置全局安全设置来保护 Jenkins 实例,例如接入 LDAP 账号体系 。

6. 构建触发器

Jenkins 支持多种构建触发器,包括定时触发、版本控制系统变更触发等。这使得 Jenkins 可以根据不同的条件自动触发构建任务,实现了真正的持续集成 。

7. 构建环境

Jenkins 允许用户定义构建环境,包括执行事件或脚本。这使得用户可以在构建过程中执行自定义的操作,例如设置环境变量、安装依赖等 。

以上组件共同构成了 Jenkins 平台的核心功能,使得 Jenkins 成为了一个广泛使用的持续集成和持续交付工具。通过合理配置和使用这些组件,用户可以有效地管理和自动化软件开发生命周期中的各个环节。

Jenkins 安全性配置指南

Jenkins 是一个强大的持续集成和持续交付平台,它的安全性配置对于保护您的 CI/CD 环境至关重要。以下是一些关键的安全性配置步骤,帮助您提高 Jenkins 的安全性。

1. 防止未授权访问

Jenkins 如果配置不当,可能会导致未授权访问,从而允许攻击者执行系统命令。为了防止这种情况,您应该在 Jenkins 的全局安全配置中禁用匿名用户的访问权限。具体来说,您需要进入 系统管理 -> Configure Global Security,确保没有同时勾选"允许账户注册"和"任何用户可以做任何事"这两个选项。此外,如果您使用了安全矩阵,应确保匿名用户没有除读取之外的权限 。

2. 设置用户权限

在 Jenkins 中,您可以为不同的用户设置不同的权限。默认情况下,不应该让每个人都能在 Jenkins 中定义工作或其他管理任务。因此,您需要创建管理员用户,并由管理员来创建后续的一般用户。这样可以确保只有授权的用户才能进行关键操作 。

3. 使用安全矩阵

安全矩阵允许您为不同的用户和组分配特定的权限。通过使用安全矩阵,您可以更精细地控制谁可以访问哪些资源和执行哪些操作。例如,您可以限制某些用户只能查看构建日志,而不能修改构建配置 。

4. 启用 CSRF 保护

跨站请求伪造(CSRF)攻击是一种常见的网络攻击方式。为了防御这种攻击,您应该在 Jenkins 的全局安全配置中启用 CSRF 保护。这将要求所有对 Jenkins 的重要操作都必须通过一个额外的安全令牌验证 。

5. 配置凭据

为了安全地访问外部资源(例如 Git 仓库、Docker 注册表等),您需要在 Jenkins 中配置凭据。您可以选择域,然后点击"Add Credentials"来添加新的凭据。请确保您使用的是安全的凭据类型,并妥善保管您的凭据信息 。

6. 定期更新和审计

最后,定期检查 Jenkins 的更新,并安装最新的安全补丁是非常重要的。此外,定期审计您的 Jenkins 配置和日志,以发现并应对潜在的安全威胁也是非常必要的。

通过遵循上述步骤,您可以显著提高 Jenkins 的安全性,保护您的 CI/CD 环境免受潜在的威胁。记住,安全是一个持续的过程,需要不断地关注和维护。

Jenkins在渗透测试中的应用
自动化测试用例执行

渗透测试中,测试用例的执行是非常重要的一部分。通过Jenkins,可以自动化执行各种测试用例,包括功能测试、性能测试、安全测试等。Jenkins提供了丰富的插件支持,可以与各种测试工具集成,如TestNG、Selenium等。通过配置Jenkins Job,可以定时或触发执行测试用例,并生成详细的测试报告 。

持续集成和持续交付

在渗透测试过程中,测试环境的搭建和维护是一项耗时的工作。Jenkins可以通过持续集成和持续交付的方式,自动化完成测试环境的搭建和维护。例如,可以使用Jenkins自动部署测试代码到测试服务器,自动启动测试环境,自动执行测试用例,并自动收集和分析测试结果。这样可以大大减少人工干预,提高测试效率 。

安全漏洞扫描

Jenkins还可以用于自动化执行安全漏洞扫描任务。例如,可以使用Jenkins调用OWASP ZAP等漏洞扫描工具,对目标系统进行自动化扫描,并生成扫描报告。这样可以帮助渗透测试人员快速发现和评估系统的安全漏洞,为后续的渗透测试提供依据 。

Jenkins在渗透测试中有着广泛的应用。通过自动化执行测试用例、持续集成和持续交付、安全漏洞扫描等方式,Jenkins可以大大提高渗透测试的效率和准确性。然而,需要注意的是,Jenkins本身并不具备渗透测试的能力,它只是一个自动化工具,需要与其他工具和技能相结合才能发挥出最大的作用。

Shodan利用jenkins
代码
bash 复制代码
┌──(root㉿kali)-[~]
└─# shodan search --limit 10 --fields ip_str "X-Jenkins" OR "Set-cookie:JESSIONID" http.title:"Dashboard"
一、命令组成部分

--limit 10
这一参数的作用是限制搜索结果的数量。在这个命令中,它表示只显示10条搜索结果。这样做可以避免获取过多的数据,方便快速查看最相关的内容。
--fields ip_str
这个参数指定了搜索结果中只显示IP地址(ip_str)字段。这样可以将搜索结果聚焦在目标的IP信息上,便于后续对这些IP进行进一步的分析或者操作,例如进行漏洞扫描等针对IP的操作。
"X - Jenkins" OR "Set - cookie:JESSIONID"
 这是搜索的关键字部分。OR表示逻辑或关系。
"X - Jenkins"可能是在寻找包含特定X - Jenkins标识的设备或者服务。在Jenkins相关的场景中,可能与Jenkins服务器的某些特定响应头或者配置相关。
"Set - cookie:JESSIONID"则是在寻找设置了名为JESSIONID的Set - cookie的服务。在Web应用中,JESSIONID通常用于会话管理,这里可能是在寻找与Jenkins相关的Web服务中设置了这种会话标识的情况,也许与认证或者状态管理相关。
"http.title:"Dashboard"
这表示搜索结果中的HTTP标题为Dashboard的目标。在很多Web应用中,Dashboard通常是一个管理界面或者主要操作界面的标题。结合前面的关键字,这里就是在寻找与Jenkins相关(通过X - Jenkins或者JESSIONID相关标识)且HTTP标题为Dashboard的目标,可能是在定位Jenkins的管理界面相关的服务或者设备 。
二、整体目的
    综合来看,这个Shodan搜索命令的目的可能是在网络空间中寻找与Jenkins相关(通过特定的X - Jenkins标识或者与JESSIONID相关的会话设置)并且具有Dashboard标题的服务或设备,同时只关注这些目标的IP地址,并且限制结果为10条,以便于快速定位和分析可能存在的Jenkins相关的目标。例如,安全研究人员可能会使用这个命令来寻找可能存在安全风险的Jenkins实例,或者系统管理员用于查找自己网络中暴露的Jenkins管理界面等。
复现
相关推荐
车载诊断技术1 小时前
电子电气架构 -- ASIL D安全实现策略
人工智能·安全·架构·汽车·软件工程·autosar
Reese_Cool5 小时前
【C++】从C语言到C++学习指南
c语言·c++·1024程序员节
黄焖鸡能干四碗9 小时前
【软件设计文档】详细设计说明书模板和实际项目案例参照,概要设计说明书,需求设计书,软件设计报告(Word原件)
大数据·软件需求·设计规范·规格说明书·1024程序员节
黑不溜秋的10 小时前
C++ 编程指南04 - 尽量编写静态类型安全的程序
开发语言·c++·安全
开源网安12 小时前
湖北某高校联合开源网安打造协同育人新范式,推动智能网联汽车行业可持续发展
安全·开源·汽车
The Mr.Nobody12 小时前
树莓派搭建NextCloud:给数据一个安全的家
安全
acrel___wy13 小时前
智能安全配电装置在高校实验室中的应用
科技·安全
YAy1714 小时前
Shiro550漏洞分析
java·开发语言·学习·网络安全·安全威胁分析
_西瓜_15 小时前
可通过HTTP获取远端WWW服务信息
网络·网络协议·安全·http