一个名叫aliyun的挖矿木马处理过程
一个名叫aliyun的挖矿木马处理过程
背景
老哥突然私聊我,他负责的服务器CPU飙高,发现可疑进程,疑似挖矿。
分析
为了防止事态进一步扩大,我让老哥先把这个进程kill掉,然后进行排查,可是没过多久,挖矿进程死灰复燃了,这次挖矿的名称变成了BP70vI
我想事情可能没那么简单,可能设置了定时任务或者有其他远控尚未发现。通过排查定时任务使用crontab -l
,发现有一条定时任务,仔细一看原来是阿里云的shell脚本,但是整个系统就配置了这一条定时任务,难免让人怀疑。
当我打开/root/.aliyun.sh
,我突然发现自己还是太年轻,攻击者尽然使用的是障眼法,没有那个运维人员会闲的蛋疼,把shell程序的内容使用base64进行编码。
以下是相关代码,有想研究的小伙伴可以拿去进行研究。
1 |
|
使用base64进行解码,可以得到恶意的shell脚本内容
解码以后的内容如下:
1 |
|
通过分析,我们可以发现,该shell首先会判断当前用户是否对/usr/bin 当前用户的home目录 /dev/shm /tmp /var/tmp
这几个目录拥有读写权限。
/tmp/.X11-unix/00是什么鬼
X11 server需要有一种途径来跟X11 client来进行沟通。 在网络上它们可以通过TCP/IP Socket来实现沟通,而在本机上它们通过一个Unix-domain socket来沟通.Unix-domain socket其实很TCP/IP socket很类似,只不过它指向的是一个文件路径,而且无需通过网卡进行转发,因此相对来说更安全,更更快些。而 /tmp/.X11-unix 其实就是存放这些Unix-domain Socket的地方。一般来说 /tmp/.X11-unix 下面只会有一个 Unix-domain Socket(因为一般只有一个Xserver在运行),但若系统同时运行多个Xserver,也可能会有多个Unix Domain Socket出现的情况。具体可以参考参考内容里的文章,里面有详细说明
但是,通过查看/tmp/.X11-unix/
目录中的00文件,我并未发现该文件的种类并不是s,攻击者可能是为了掩人耳目,故意在该目录下设置一个文件,来存储远控木马进程id
通过判断 /proc/木马进程id/io 文件是否存在,如果不存在执行X函数从以下这些站点三级域名trumps4c4ohxvq7o下载int木马客户端
- tor2web.io
- 4tor.ml
- onion.mn
- onion.in.net
- onion.to
- d2web.org
- civiclink.network
- onion.ws
- onion.nz
- onion.glass
- tor2web.su
通过全网检这些三级域名,发现年中的时候有人中招了,文件名不同,但是手法很像,有兴趣可以查看我提供参考链接。下载木马客户端的用户名为当前时间的md5值,然后授权执行删除。
具体使用wget或者curl请求下载int木马文件拼接案例语句如下:
1 |
|
将下载下来的int和crn文件进行分析,
virustotal返回的结果是crn是安全的,int只有Ikarus和SentinelOne (Static ML)两个引擎判断为木马,可见这个木马病毒在绕过引擎检测方面下了大量功夫。
crn检测结果:
int检测结果:
返现int木马程序主体,crn为shell文件,目的是下载int木马程序并运行,crn文件并未进行编码和混淆,不太清楚作者为何这么做。
将int扔到IDA并未发现什么,只发现基本的逻辑流程,可能个人逆向功底太弱了,那位大佬分析了,可以请教一下。
接下来我们继续分析aliyun.sh脚本,发现木马通过判断 /proc/木马进程id/io 文件是否存在,如果不存在执行U函数从以下这些站点三级域名trumps4c4ohxvq7o下载crn shell脚本并执行,
使用lsof
命令查看该进程相关信息,如果没有相关命令,请自行安装
可以发现相应的远控客户端(/usr/bin/46e5166a46208402e09732a78526b5f0)已删除
使用top我们可以发现,该挖矿木马的客户端的进程id为8391,
通过查看/tmp/.X11-unix/00
文件,获取对应远控客户端进程id为8065
通过pstree,我们可以清晰的看到两个异常的进程OYK6yV和 jKhnvF
通过分析ps -ef
的结果,获取异常异常进程信息
综合所有信息,我们发现jKhnvF是挖矿进程,OYK6yV是木马远控的进程。
移除挖矿木马
分析完挖矿木马基本信息,接下来我们需要移除这些恶意的进程,并针对相关漏洞进行打补丁。
我们首先移除了crotab中设定的定时任务
然后杀掉两个恶意进程
然后我发现当我们kill掉的挖矿进程又死灰复燃了,通过分析,可能其他地方还存在定时任务,或者遗漏,还有其他恶意进程,我们在 /etc/cron.d/ 下发现0aliyun这个定时任务文件,突然发现这里还有一个定时任务,顺便发现在 /opt/ 目录下,还有一个 aliyun.sh 的挖矿脚本。
我们通过移除两个定时任务,然后重复上面的操作,找到挖矿端和木马远控客户端,杀掉就行
清除/root/.aliyun.sh
和/opt/aliyun.sh
看着运行正常的系统,内心还是很满足的。
后续
后续溯源工作由于系统是研发同事的测试系统,上面运行三个web站点,并且安装redis,memcache等,并且未设置日志,所以并未发现攻击者是从什么地方进来的。针对这些问题我们给出以下建议:
1、配置redis的日志,对redis进行安全加固和合规性配置
2、使用河马webshell查杀工具对web目录进行扫描,查看是否有遗留的webshell
3、加固操作系统,重新设置复杂度较高的密码。
参考内容
- http://blog.lujun9972.win/blog/2018/04/24/docker%E5%AE%B9%E5%99%A8%E4%B8%AD%E8%B7%91gui%E7%9A%84%E6%9C%80%E7%AE%80%E5%8D%95%E6%96%B9%E6%B3%95/index.html【/tmp/.X11-unix=是什么玩意】
- https://unix.stackexchange.com/questions/196677/what-is-tmp-x11-unix 【what-is-tmp-x11-unix】
- https://www.cnblogs.com/jinanxiaolaohu/p/11993504.html
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!