一、服务器环境
Centos 7 2核4G 经典网络
Jenkins服务器
二、排查流程
1.top命令查看服务器负载
top - 16:58:25 up 164 days, 1:36, 3 users, load average: 2.25, 2.49, 2.66
Tasks: 75 total, 2 running, 73 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.5 us, 0.1 sy, 0.0 ni, 95.3 id, 0.1 wa, 0.0 hi, 0.0 si, 0.1 st
KiB Mem : 1014968 total, 124920 free, 625608 used, 264440 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 231436 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4799 root 20 0 220228 4680 644 S 75.0 0.5 30:09.25 AppRun
2.搜索对应进程
[root@jekins df]# ps aux|grep 'AppRun'
root 4799 82.0 0.4 220228 4644 ? Ssl 16:21 31:52 /tmp/df/AppRun -o pool.supportxmr.com:3333 -u 44jVsxXqbwWG8Yons62ZnM9nwyeChrtxDYFPs9W2jeKyhTxhdfNYaokcvfrsop5zMujJt2WKWihffjcZrnG99AEZLKQw1yz -p y --max-cpu-usage=50 -k -B --donate-level=1
查看目录结构
[root@jenkins df]# tree /tmp/df/
/tmp/df/
├── AppRun -> initd
├── doc
│ ├── libffi6
│ │ └── copyright
│ ├── libgcrypt11
│ │ └── copyright
│ ├── libgnutls26
│ │ └── copyright
│ ├── libmicrohttpd10
│ │ └── copyright
│ └── libtasn1-6-dev
│ └── copyright
├── du.sh
├── initd
├── lib
│ ├── libffi.so.6
│ ├── libgcrypt.so.11
│ ├── libgnutls.so.26
│ ├── libmicrohttpd.so.10
│ └── libtasn1.so.6
├── lib64
├── usr
│ └── lib
├── xmrig.desktop
└── xmrig.png
三、解决问题
1.到这里基本确认被当成矿机了,百度看了确认了。
【预警通告】近期大量WebLogic主机感染挖矿病毒
2.使用lsof定位进程,可以看到本机的34214一直在对香港的ip进行请求。
[root@jenkins df]# lsof -i|grep ‘AppRun’
AppRun 4799 root 11u IPv4 31619280 0t0 TCP jekins:34214->103.253.40.189:dec-notes (ESTABLISHED)
3.服务器对外提供服务的只有jenkins,查看jenkins目录。8.6G,一只在被挖矿程序疯狂下载war包。
[root@jekins ~]# du -ah --max-depth=1 .
60K ./.cache
8.6G ./.jenkins
4.0K ./.viminfo
4.0K ./.bash_history
12K ./.ssh
8.0K ./.pip
4.0K ./.bashrc
4.0K ./.bash_profile
15G .
4.这台服务器是开发自用,排查发现存在以下问题
1.安全组不设置
2.使用root启动jenkins
3.密码弱口令
清楚挖矿程序流程应当先清楚程序进程,然后检查crontab和秘钥,最后做安全策略。下面将复现攻击流程和进行安全策略调整。
四、反思
1.首先复现攻击流程,使用Jenkins的人都知道。Jenkins是自带脚本命令行的,如果以root权限运行Jenkins,cli窗口可以执行任何命令。对比redis反弹shell攻击,Jenkins的反弹shell攻击类似,给个链接大家可以自己看,。
jenkins拿shell的方法
2.反思
a.服务器被设置了账号admin,密码admin这是非常糟糕的。有目的的人一扫描就可以拿到权限。
b.安全组对所有IP开放,给了攻击者机会。
c.是以root账号运行服务,对方通过漏洞就黑了整个系统。可以这么说,禁止root运行程序,几乎可以避免反弹shell。
d.建议不要直接java -jar jenkins.war,应当用tomcat运行,在前端加上访问认证,和对cli页面的url进行匹配跳转403.