半個月前,巡檢時發現服務器出現不明進程,對其進行了處理,由於當時沒有做詳細記錄,在這里把大致過程描述一下.
症狀:
ps命令發現出現幾個不明進程,
1.於/tmp下運行的,名稱隨機的進程.占用CPU高達100%,確認為挖礦機
2.於activemq下運行的不明進程,占用CPU很低,kill -9 殺死進程后會自動重啟(當時以為是activemq的正常進程,后核對后發現該進程不屬於activemq)
crontab -l,發現5分鍾一次的計划任務,於某IP下載shell腳本
處理過程:
1.直接殺死/tmp下運行的程序
2.該服務器運行了redis和activemq,因為redis曾報過一次漏洞,所以第一懷疑是redis.
3.google后發現redis的可能性比較,於是查了一下activemq的漏洞
4.確認為activemq管理存在弱口令,而activemq的fileserver存在遠程執行命令漏洞,導致出現該問題,官方:http://activemq.apache.org/security-advisories.data/CVE-2016-3088-announcement.txt
見http://www.2cto.com/article/201607/522259.html
處理方法:
依照官方處理意見,關閉fileserver功能,重啟activemq
更詳細的安全策略,請參見阿里雲幫助文檔https://help.aliyun.com/knowledge_detail/50436.html
time:2017年7月6日10:26:33
今天巡檢服務器時,發現activemq被入侵,與上述情況完全相同,現提供完整現場.(怪我當時沒把其他服務器的漏洞也堵上)
# ps axuf USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 3700 0.1 7.1 4716220 573796 ? Sl Apr27 192:18 /root/jdk1.8.0_121/bin/java -Xms1G -Xmx1G -Djava.util.logging.....省略后面 root 21062 299 0.5 492564 48000 ? Sl 00:15 1826:58 \_ ./avx2 -a lyra2z -o stratum+tcp://
可以看出,該挖礦程序是利用activemq運行的,並置於activemq目錄下
# ll 總用量 1280 -rwxr-xr-x 1 mysql games 22287 10月 15 2013 activemq -rwxr-xr-x 1 mysql games 5748 10月 15 2013 activemq-admin -rw-r--r-- 1 mysql games 16110 10月 15 2013 activemq.jar -rwxrwxrwx 1 root root 1152776 7月 4 12:50 avx2 -rwxr-xr-x 1 mysql games 6189 10月 15 2013 diag drwxr-xr-x 2 root root 4096 4月 27 17:16 linux-x86-32 drwxr-xr-x 2 root root 4096 4月 27 17:16 linux-x86-64 drwxr-xr-x 2 root root 4096 4月 27 17:16 macosx -rwxr-xr-x 1 mysql games 83820 10月 15 2013 wrapper.jar # file avx2 avx2: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped # stat avx2 File: "avx2" Size: 1152776 Blocks: 2256 IO Block: 4096 普通文件 Device: fc01h/64513d Inode: 665319 Links: 1 Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2017-07-06 00:15:59.578818060 +0800 Modify: 2017-07-04 12:50:18.000000000 +0800 Change: 2017-07-06 00:15:55.004817830 +0800
# uptime
10:33:58 up 69 days, 17:42, 1 user, load average: 3.00, 3.00, 2.98
負載已經成功彪上了3
線殺死該挖礦機
# kill -9 21062 # ps axuf | grep avx2 root 21638 0.0 0.0 103332 832 pts/0 S+ 10:35 0:00 \_ grep avx2 # uptime 10:35:30 up 69 days, 17:43, 1 user, load average: 1.41, 2.58, 2.84
負載已經在回落.
進入activemq的配置目錄,備份原文件
# cd /opt/apache-activemq-5.9.0/conf/ # cp jetty.xml jetty.xml.bak
刪除fileserver配置項
# vim jetty.xml
<bean class="org.eclipse.jetty.webapp.WebAppContext"> <property name="contextPath" value="/admin" /> <property name="resourceBase" value="${activemq.home}/webapps/admin" /> <property name="logUrlOnStart" value="true" /> </bean>
<!--刪除下面選項
<bean class="org.eclipse.jetty.webapp.WebAppContext"> <property name="contextPath" value="/fileserver" /> <property name="resourceBase" value="${activemq.home}/webapps/fileserver" /> <property name="logUrlOnStart" value="true" /> <property name="parentLoaderPriority" value="true" /> </bean>
-->
<bean class="org.eclipse.jetty.webapp.WebAppContext"> <property name="contextPath" value="/api" /> <property name="resourceBase" value="${activemq.home}/webapps/api" /> <property name="logUrlOnStart" value="true" /> </bean>
修改控制台密碼
# vim jetty-realm.properties
admin: NEW_PASSWORD, admin
user: NEW_PASSWORD, user
重啟activemq,將端口加入防火牆.
后期將使用單獨的用戶啟動activemq.
