挖矿调用哪些进程
A. 服务器被rshim挖矿病毒攻击后 HugePages_Total 透明大页怎么都清不掉 一直占用内存 球球
问题定位及解决步骤:
1、free -m 查看内存使用状态 ,发现free基本没了。--> 怀疑是服务有内存泄漏,开始排查
2、使用top命令观察,开启的服务占用内存量并不大,且最终文档在一个值,且服务为java应用,内存并没达到父jvm设置上限。按top监控占用内存排序,加起来也不会超过物理内存总量。查看硬盘使用量,占用20%。基本排除虚拟内存占用过大的原因。--->排除服务内存泄漏因素,怀疑mysql和nginx,开始排查
3、因为top命令看 mysql占用内存也再可控范围,是否存在connection占用过多内存,发现并不会,设置最大连接数为1000,最多也不会超过几M。 nginx占用一直非常小。但每次最先被kill的基本都是nginx进程。所以排查,但发现无非就是openfiles数量啥的调整。发现也一切正常。且之前niginx可以正常使用的。
4、最为费解的就是 通过free -m 查看的时候 基本全是used,cache部分很少,free基本没有。但top上又找不到有哪些进程占用了内存。无解
5、注意到有两个进程虽占用内存不多,但基本耗光了100%的cpu。开始想着占cpu就占了,没占内存,现在是内存不不够导致进程被kill的,就没注意这点。
6、实在搞不定,重启服务器,重启了所有服务,服务暂时可用,回家。在路上的时候发现又崩了。忐忑的睡觉。
7、早上起来继续看,这次留意注意了下那两个占用高cpu的进程,kdevtmpfsi 和 networkservice。本着看看是啥进程的心态,网络了下。真相一目了然,两个挖矿病毒。
突然后知后觉的意识到错误原因:
1、cpu占用率高,正常服务使用cpu频率较高的服务最容易最内存超标。(因为在需要使用cpu时没cpu资源,内存大量占用,服务瞬间崩溃),然后看top发现刚刚已经占用内存的进程已经被kill了,所以没发现内存有高占用的情况。
2、后面的应用继续使用cpu时也会发生类似情况,倒是服务一个一个逐渐被kill。
问题点基本定位好了,解决问题就相对简单很多:
通过网络,google,常见的病毒清除步骤基本都能解决。这两个挖矿病毒很常见,大致记录下要点。可能所有病毒都会有这些基础操作。
① 首先,查看当前系统中的定时任务:crontab -l
我服务器上有四个定时下载任务 通过wget 和 curl 下载病毒文件,把异常的删掉。要不然删了病毒文件还是会下载下来
crontab -r,全部删除命令(或根据需求删除定时任务)
② 查找病毒文件 可以全部模糊搜索 清除, 但病毒文件基本都用了chattr +i命令 使用chattr -i filename 后再使用rm -f filename 。可删除
③ kill 病毒进程,但注意kill了可能马上就重启了。因为有守护进程,需要把病毒进程的守护进程也kill掉
④ 检查是否root用户被攻击,可能系统配置信息被更改。
⑤ 最好能理解病毒脚本,通过看代码看它做了些什么。针对脚本取修复系统。
B. 鎸栫熆鐥呮瘨鎬庝箞澶勭悊
鎸栫熆鐥呮瘨澶勭悊姝ラゅ備笅锛
1銆佹煡鐪嬫湇鍔″櫒杩涚▼杩愯岀姸鎬佹煡鐪嬫湇鍔″櫒绯荤粺鏁翠綋杩愯屾儏鍐碉紝鍙戠幇鍚嶄负kdevtmpfsi鐨勬寲鐭胯繘绋嬪ぇ閲忓崰鐢ㄧ郴缁烠PU浣跨敤鐜囥
2銆佹煡鐪嬬鍙e強澶栬仈鎯呭喌鏌ョ湅绔鍙e紑鏀剧姸鎬佸強澶栬仈鎯呭喌锛屽彂鐜颁富鏈哄瓨鍦ㄩ檶鐢熷栬仈琛屼负銆傚硅ュ栭儴鍦板潃杩涜屾煡璇㈠彂鐜板睘浜庡浗澶栧湴鍧锛岃繘涓姝ョ‘瀹氳ヨ繘绋嬩负鎭舵剰鎸栫熆杩涚▼锛氬畾浣嶆寲鐭胯繘绋嬪強鍏跺畧鎶よ繘绋婸ID鎸栫熆鐥呮瘨kdevtmpfsi鍦ㄨ繍琛岃繃绋嬩腑涓嶄粎浼氫骇鐢熻繘绋媖devtmpfsi銆
6銆佹煡鐪媟edis鏃ュ織閫氳繃鏌ョ湅redis閰嶇疆鏂囦欢/etc/redis.conf鍙戠幇鏃ュ織鍔熻兘鏈寮鍚銆
7銆佹煡鎵炬晱鎰熸枃浠跺彂鐜癮uthorized_keys鏂囦欢銆
8銆佹煡鐪媠sh鏃ュ織鏂囦欢鏌ョ湅ssh鏃ュ織鏂囦欢锛屽彂鐜板ぇ閲忕櫥闄嗙棔杩逛互鍙婂叕閽ヤ笂浼犵棔杩广
比特币目前还没发展到成长期,但随着比特币挖矿速度开始加快,该行业有望实现大幅增长。
2008年10月,在中本聪发表白皮书详细介绍如何创建新货币体系时,没有人料到在之后不到13年的时间里,比特币的市值能够飙升至8500亿美元。此外,比特币还衍生出了数千种其他类型的加密货币,形成了一整个金融服务行业,并发展成为一种新的资产类别,彻底改变了我们所熟知的货币类型。
我们公司已从事比特币挖矿活动七年了,并推动了该行业的发展和适应。下面我们将介绍一些鲜为人知的比特币挖矿发展过程以及对该行业有重大影响的一些趋势。
比特币挖矿的产生
比特币是一种去中心化货币体系,其作用类似于黄金,是一种拥有价值储藏手段的有限商品。这意味着比特币的供应有限,目前仅存2100万个比特币,这使得其不易受通货膨胀影响。想要使用比特币的人们无需受有权改变其价值或决定用户使用权的政府监督。
那么,比特币本身从何而来呢?与黄金一样,比特币必须经过挖掘才能获得,但不是用镐和铁锹,而是用计算机进行挖掘。
比特币以区块链技术为基础。世界各地的矿工们竞相解一种算法,为的是可以在区块链中添加一个区块。率先解出该算法的人可以获得该区块的交易费用和新币发行的固定奖励(目前是每个区块获得6.25个比特币),而这会增加比特币的流通量。
最初创建比特币时,挖矿非常容易,矿工们在厨房就可利用配备标准中央处理器的笔记本电脑进行挖矿。但随着越来越多矿工的加入,解算法这一竞争愈发激烈,这也意味着矿工们需要更强的数据处理能力和更新的硬件设备。为了有效运行更强大的计算机,电费价格开始受到重视。很快,由于挖矿竞争过于激烈,个体挖矿便不再具有盈利性。
价值数十亿美元行业的诞生
要想盈利,就必须扩大挖矿业务的规模。目前,市场上出现了新的挖矿专用硬件,矿工们也在拖车和仓库中安装了矿机,以便拥有数千台矿机的大型矿场全天候解决算法问题。大规模矿场的运营包括布局和设计、能源、软件管理以及硬件更新,在这些运营需求的推动下,比特币挖矿迅速发展为一个价值数十亿美元的行业。
方舟投资(ARK Invest)的报告显示,支持生态系统的硬件成本约为72亿美元,此外,该报告称,“自比特币专用硬件2013年面世以来,我们认为已有数十亿美元用于设计、生产和流片,这也衍生出了一个专门制造这种强大而又专业硬件的行业。
比特币挖矿虽然操作复杂,但是利润颇丰。方舟投资预计,矿工们可以获得150亿美元的收入,这些收入来自交易费用和比特币固定奖励。
竞争催生新硬件
比特币挖矿的竞争不断加剧,但由于比特币是一种有限商品,所以挖矿的竞争也是有限的。这意味着挖矿运算需要尽可能以高性能保持高速运行,如此才能获得奖励。
由于比特币挖矿日益激烈的竞争提高了对计算能力的要求,所以挖矿竞争也就变成了显卡竞争,而显卡是 游戏 玩家通常在高端 游戏 中才会使用的硬件。后来,专用集成电路逐渐取代了显卡,这是专门用于挖掘加密货币的一种硬件,是比特币挖矿中速度最快、效率最高的硬件,目前仅在挖矿中使用。
但硬件依赖于芯片,虽然目前芯片技术不断加速发展,但芯片还是供不应求。这意味着挖矿运算需要提前规划升级,而且必要的硬件经常售罄,比如比特大陆最近正面临短缺。
新技术最有望实现盈利
同样,比特币挖矿需要跟上技术发展的步伐,能使挖矿硬件更大、更好、更快,因为一旦效率滞后就会造成盈利受损。如今,技术不断超越创新,因此挖矿不仅需要跟上购买新硬件的步伐,还需要迅速安装新硬件。这是因为时间至关重要,即使只延迟几天都会造成严重损失,所以许多挖矿作业(比如我们公司的挖矿)都租用了波音747s以减少运输时间。
西方矿工人数增加
长期以来,全球超过一半的挖矿能源来自中国,主要原因是在中国设立工厂的成本更低,运输速度更快。但随着中国加大对比特币挖矿的打击力度,这些优势正在消亡。据《连线》杂志报道,“比特币挖矿的地理分布可能正在发生变化,”该业务或转向北美、欧洲和拉美等地。矿工们也计划在北欧国家、加拿大和美国等地寻找挖矿地点,这些地方拥有大量廉价的可持续能源,如风能、太阳能和水能等。
比特币的未来
尽管比特币最近出现了许多波动(这并不新鲜),但是比特币的未来是光明的,其价值将继续上涨,并且会吸引新的投资者。随着越来越多的人们开始了解比特币,了解其来源和挖矿方式,人们还将从比特币中发现更多价值。
D. top cpu飙高,中了挖矿程序----解决方法
1.发现cpu异常,查看对应的进程信息
2.查看进程发现是挖矿进程在执行
3.确定是挖矿病毒,查看进程的执行文件链接到哪里,发现是jenkins的工作目录,最后结果发现是jenkins的漏洞导致自动创建CI计划,进行启动挖矿脚本
4.查看虚机密码是否被破解登录
5.查找挖矿文件
6.检查定时任务脚本
jenkins CVE-2018-1999002 漏洞修复: https://paper.seebug.org/648/
jenkings漏洞利用: https://xz.aliyun.com/t/4756
CI安全隐患: https://www.jianshu.com/p/8939aaec5f25
jenkins漏洞描述地址: https://www.cyberark.com/threat-research-blog/tripping-the-jenkins-main-security-circuit-breaker-an-inside-look-at-two-jenkins-security-vulnerabilities/
E. 服务器被攻击并植入kdevtmpfsi挖矿/病毒/木马
MongoDB库中的数据莫名其妙没有了,发觉如下信息:
1、 top -d 5命令 ,查看系统负载情况、是否有未知进程,发现一个名为kdevtmpfsi的进程,经科普它是一个挖矿程序,会占用服务器高额的CPU、内存资源。如图,CPU占用率高达788.7%,而且是yarn用户下:
2、 ps -ef |grep kdevtmpfsi 命令查看 该挖矿程序路径:/tmp/kdevtmpfsi
3、 ps -ef |grep yarn 命令查看更多关于yarn相关进程信息(此时我的服务器并没有开启yarn服务,如果有yarn的相关进程则可判断是攻击者开启的进程),发现另外还有个kinsing进程,经科普kinsing进程是kdevtmpfsi的守护进程:
4、 netstat -lntupaa 命令查看是否有异常的ip,果然发现194.87.102.77这个陌生的ip,判断是kdevtmpfsi的发出者:
5、经查询该ip的所在国家是俄罗斯:
6、 find / -iname kdevtmpfsi 命令再次确定命令所在位置以便删除:
7、 cd /tmp 进入相关目录:
8、 rm -rf kdevtmpfsi 删除kdevtmpfsi程序:
9、** kill -9 40422**杀掉kdevtmpfsi进程:
10、发现并没杀掉所有kdevtmpfsi进程,再次查找yarn的相关进程(因为之前已确认病毒是在yarn下),果真还有kdevtmpfsi进程存在:
11、用命令 批量杀掉 相关进程:
12、删除kinsing文件:
13、现在,已经把挖矿程序及相关进程删除掉了,但是还有两处没做处理:
14、 crontab -l 命令先看看crontab的定时任务列表吧:
15、编写删除挖矿程序脚本 kill_kdevtmpfsi.sh :
16、新增 定时任务 并删除攻击者的挖矿定时任务:
17、 crontab -l命令 查看现在只有杀进程的定时任务了:
18、禁止黑客的IP地址。
最初安装MongoDB时,并未设置密码认证,存在漏洞,导致黑客通过漏洞攻击服务器,并在程序里植入木马/病毒。单纯的kill -9 id杀掉病毒进程是杀不彻底的,治标不治本,应该定时删除病毒进程,禁止攻击者IP,重新安装系统或相关软件。
经过几天的观察,服务器运行正常,再没有被黑客攻击成功。
F. 挖矿病毒分析(centos7)
rm -rf /root/.ssh/*
如果有配置过密钥认证,需要删除指定的黑客创建的认证文件即可。
ls /proc/10341 查看进程文件
该脚本执行了 /xm 脚本,并且总是会重启服务。如果此程序不进行清除,即使杀死了对应的进程,过一会还是会执行重新创建,又导致服务器异常。
因此,先停止启动脚本配置项:
systemctl disable name.service
删除脚本:
rm -rf /etc/systemd/system/xm.service
5,启动脚本删除完后,删除相应的程序
ps -ef|grep xmrig
ps -ef|grep javs
kill 9 pid
ls /proc/10341
G. 记一次解决挖矿病毒的过程(sysupdate、networkservice)
我也是有一段时间服务器变的很卡,那时我还以为是我自己的软件装太多导致的问题,不看不知道,看了吓一跳,服务器已经被攻击了,接下来,我来分享下如何查找和解决这个病毒。
当发现服务器卡的时候,我们可以采用top命令,如下显示
我们注意看以上这几个进程,没稍加注意的话,我们还以为这几个是正常的进程,为啥呢?
1、毕竟这几个的user是apache、www、nobody,因为我的web站点,文件目录是www目录,所以这个地方很容易被误认为就是我们的站点目录,而且apache本来是web服务,它取成了这个名词,也容易混淆我们的视野。
2、后面的command名称取成了networkservice 和sysupdate,名称很像我们的系统进程,
3、每个进程的cpu占用都比较小,平均差不多20%个cpu,可是这么多进程加起来,CPU占用就爆炸了,将近100%了
从上面这个地方可以发现这个攻击者很聪明,懂得用这种名称来混淆我们的视野
从上面的top命令知道了这几个占用比较大的进程号,我们可以根据其中的某个进程,比如7081入手,来查找其他关联的进程,使用以下命令,如下图所示
进入到/etc目录下,
我们可以看到有sysupdate、networkservice、sysguard三个文件,这三个文件都是二进制文件,这三个应该就是挖矿的主程序和守护程序。还有一个update.sh文件,这应该是对挖矿病毒升级用的。这个update.sh怎么找出来的呢,其实是通过定时程序里面的cron找出来的。
再进入到 /var/spool/cron看下定时程序
如下图所示
可以看到这几个文件名称,和刚刚占用cpu高的进程user,名称是一样的
这样就可以确认的确是病毒攻击了服务器
1、删除所有的定时程序
进入到/etc/crontab、/var/spool/cron/root、/var/spool/cron/crontabs/root等目录中,删除其中的定时脚本。
也要记得删除定时任务,crontab -e,删除其中的脚本
2、杀掉进程,并删除文件
以下这几张图片的进程id,分别进行kill杀掉
然后删除/etc下面的 sysupdate、networkservice、sysguard、update.sh和config.json几个文件
这时候,你可能会发现无法删除,因为病毒使用了chattr +i 命令,使用如下命令即可删除
每个无法删除的文件,都执行如上命令,即可实现删除文件
3、/root/.ssh/authorized_keys 删除
可能攻击者已经在这里配置了登陆,攻击者可以随便登陆你的服务器,你这里要把秘钥也修改下
经过这些处理后,可以发现我们的服务器已经不再卡了,如下,没有占用高的程序了
转自: https://www.jianshu.com/p/b99378f0cf8f
H. 如何用Linux服务器挖矿教程
今天早上起来一看,服务器脚本一个都没有启动!甚是奇怪,远程登录服务器,也是异常的卡,直到最后卡死,只好重新启动服务器!
启动之后没一会又会变卡,越来越卡,top查看进程!不觉又奇怪的进程,因为平常也不经常看!所以自己也搞不明白怎么回事儿!只好到群里问了问,说是被挖矿的挂了木马文件了,是由于redis的漏洞!
后来我自己发现,原来redis远程可以直接登录,原以为redis和mysql不开放登录权限就不会支持远程登录呢,看来是我想多了
看了好长时间才发现一个异常的进程,自启的进程 molibe !
找到进程位置 ps -ef|grep molibe ;
在tmp目录下,打开一看的确是有
chmod -x molibe 取消执行权限在来到/var/spool/cron下,cat root 查看定时器的执行发现之前脚本都被改了,顾不得删除cron,service crond restart 重新启动,再有就时kill 掉molibe进程
这样大概整个就结束了!但是根本是因为redis漏洞,所以还是补上吧
首先修改redis'端口,找到redis.conf文件 port **** 修改端口号再有就是必须修改密码 # requirepass ******** 去除#号重新启动 /redis/src/redis-server /redis/redis-conf
启动成功之后
redis/redis-cli -p ****(端口) -a *****(密码)