intellij idea远程调试jenkins

前段时间因为jenkins的一个漏洞jenkins未授权远程代码执行漏洞(CVE-2017-1000353)需要远程动态调试jenkins。

又因为是java语言,所以使用intellij ideal来远程调试,这块费了一点周章,所以记录一下这过程:

我的jenkins环境是ubuntu,所以首先在ubuntu环境下下载和编译jenkin源码,这里的jenkins版本是2.32.1

1 在ubuntu上面git源码:

git clone https://github.com/jenkinsci/jenkins.git

然后把分支切到我们需要的版本:

git checkout jenkins-2.32.2

配置编译环境

先安装java环境

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update

sudo apt-get install openjdk-7-jdk

关于java版本这里我们要跟pom.xml里面的版本一致,不然编译的时候会报错

然后安装maven

apt-get install maven

配置环境变量:

export JAVA_HOME=/usr/local/jdk1.6.25/ export M2_HOME=/usr/local/apache-maven/apache-maven-3.0.3 export M2=$M2_HOME/bin export PATH=$M2:$PATH

3 编译jenkins:

因为jenkins是个比较大的项目,里面有很多的依赖,所以需要配置一个比较快的源,这里用阿里的源:

在/root/.m2/setting.xml中配置

下来在jenkins目录中编译jenkins

mvn clean install -pl war -am –DskipTests

好了以后我们以调试模式启动jenkins

mvnDebug  org.jenkins-ci.tools:maven-jenkins-dev-plugin:run

配置ideal:

下来我们要配置idea软件去远程调试jenkins

这里调试原理也是在jenkins机器上面debug了一个9000端口,然后ideal去监听连接这个端口。

在Run->edit configure->添加一个remote里面填写远程主机的配置,这个主要是为了修改同步文件

在file->settings里面搜索Debugger配置监听端口

然后点调试

就可以开始了

5.问题:

    1)报错缺少库

我在实际运行时候,jenkins界面有报错找不到插件eclipse lifecycle-mapping-plugin需要下载下面插件

checkout https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin

mvn clean install

重新编译jenkins

    2)用burp抓不到包

还有个问题是在用burpsuite抓包时候发现的,因为jenkins漏洞的poc最终是java的文件,jenkins-cli.jar这时候即使我设置了全局的代理拦截,但是依旧没有抓到包,最后发现java在cmd的命令行终端执行的时候,设置全局代理和cmd的代理都不管用,要用java自己的代理参数,例如如下:

java -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8080 -jar jenkins-cli.jar -s http://192.168.0.5:8080/jenkins/ who-am-i

就这么多了,水平有限,有些地方没有描述的很详细,实际真正调试过jenkins这个漏洞的同学应该更容易明白些。

声 明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技

北京神州绿盟信息安全科技股份有限公司(简称绿盟科技)成立于2000年4月,总部位于北京。在国内外设有30多个分支机构,为政府、运营商、金融、能源、互联网以及教育、医疗等行业用户,提供具有核心竞争力的安全产品及解决方案,帮助客户实现业务的安全顺畅运行。

基于多年的安全攻防研究,绿盟科技在网络及终端安全、互联网基础安全、合规及安全管理等领域,为客户提供入侵检测/防护、抗拒绝服务攻击、远程安全评估以及Web安全防护等产品以及专业安全服务。

北京神州绿盟信息安全科技股份有限公司于2014年1月29日起在深圳证券交易所创业板上市交易,股票简称:绿盟科技,股票代码:300369。

如果您需要了解更多内容,可以
加入QQ群:570982169
直接询问:010-68438880

Spread the word. Share this post!

Meet The Author

Leave Comment