挖礦調用哪些進程
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 *****(密碼)