Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 日本一道本中文字幕,好吊色在线观看,中文字幕精品视频在线观看

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          SEO-優化網站路徑URL

          SEO-優化網站路徑URL

          eo優化網站是方方面面的,有許許多多的要素會影響我們網站的排行,查找引擎的抓取,其中有一條十分重要的要素即是網站途徑URL的優化,途徑URL是什么呢,它即是你這個網站上面內容的每一個連接,一個頁面,一篇文章都別離對應著一個URL,而查找引擎蜘蛛爬取你網站的時分也是通過這一個個URL來進行的,所以網站途徑URL的優化關于網站優化來說是至關重要的。

          一、途徑分類

          網站途徑URL有三種動態途徑、偽靜態途徑、靜態途徑,關于查找引擎現在來說這三種途徑是都能夠辨認的,理論上三種途徑都是不影響的。

          1、動態途徑

          (1)動態途徑是跟數據庫之前連接起來的,頁面要顯示出來要拜訪數據庫。假設當用戶拜訪你的網站頁面的時分,某一些數據比如圖片之類的需求從數據庫中拿出來,并不是直接在網站的頁面上。

          (2)動態途徑的辨認主要是看連接中是不是呈現”?、&“通常是這種格局”http://主頁地址/?p=545″。

          2、靜態途徑

          (1)靜態途徑是一個靜態的頁面,是一個固定的地址,不需求與數據庫打交道,拜訪的數據悉數在頁面上。

          (2)靜態頁面通常途徑是以”.html”結束的。通常是”http://主頁地址/xxx.html”

          3、偽靜態途徑

          偽靜態途徑是介于靜態途徑與動態途徑之間,它通過URL重寫手法,將動態途徑中的動態參數去掉,讓它靜態化,但實際上它依然需求從數據庫中獲取數據,所以稱之為偽靜態路由。

          二、途徑RUL優化

          1、途徑長度

          途徑URL不要過長,這個是視覺上的一個作用,要保持在查找引擎查找框中完整的顯示出來。

          2、途徑深度

          (1)途徑深度,查找引擎通過一個節點連接進入你的網站,這是第一個深度,從主頁進入到一個導航頁這代表第二個深度,從導航頁進入詳情頁代表第三個深度,沒通過一個層次代表一個途徑深度,不斷的添加。

          (2)有關于互聯網的數量來說查找引擎蜘蛛是比較少的,為了節約查找引擎的抓取時間,要優化途徑深度。假如你連接深度多的話關于查找引擎的抓取是適當晦氣的,由于它也許進入你第三個連接深度,就返回了,所以這兒主張我們把連接深度控制在三層以內。

          3、途徑中是不是富含中文

          (1)途徑URL中部要富含中文,假如富含中文的話關于查找引擎錄入是十分晦氣的,假如一篇正常途徑文章錄入需求一星期,那么富含中文途徑的也許需求兩個月。

          (2)當把富含中文的途徑輸入查找引擎查找框的時分URL 中的中文字會被當成 Unicode,并用 UTF-8 編碼方法送出,最終是轉化成http://主頁地址/%A4%A4%A4%A5.html,帶有百分號的一些組合編碼。

          4、途徑稱號

          (1)途徑稱號不要過長,假如節目稱號過長能夠運用首字母。

          (2)途徑命名要與查找盡量匹配,能夠依據下拉框、有關查找命名,比如是打標機,我能夠把稱號命名為打標機的拼音。

          5、途徑截取

          (1)途徑截取本來即是查找引擎對你網站途徑的一個反推,從最終一個連接層,一步一步向你的主頁反推,每反推一層會看你的內容,假如沒有再去上一層看,知道主頁,假如你的某一層沒有數據,那么關于優化是十分晦氣的。

          (2)關于查找引擎的途徑截取能夠縮短你的途徑來處理,把不必要的途徑進行結合,像織夢后臺有文章命名規則,你能夠去設定。

          這基本上即是網站途徑URL優化的操作方法了,這兒有一點需求我們留意的事,途徑URL的修正是要在上線前完結的,由于上線以后在修正的話會發生死連接,當然假如你一定要修正的話,那么就只有把這些前面的連接進行robots屏蔽掉。

          . 網站結構

          對于搜索引擎優化,網站的結構是最重要的因素之一。網站結構是所有關于你的網頁是如何聯系在一起。搜索引擎爬蟲的基礎上它的設置方式判斷你的網站的價值。文件層次結構和站點地圖起到無論是否獲得高排名第至關重要的作用。

          如果你想受到廣大用戶尋找你相關的關鍵字可以找到,你的網站需要邏輯布局,易于抓取速度更快。請記住,如果機器人是快樂的,每個人都會快樂。

          2. 易于導航

          對搜索引擎優化感興趣的網頁設計師,導航一定是最優先考慮的任何。對于導航,淺越好。帶著淺淺的架構,用戶可以訪問任何網頁中的幾個環節盡可能。這也指回網站的架構。當談到導航,不要試圖重新發明輪子。使之簡單,使其短路(八個選項或更少) ,并使它可用。

          3. Meta 描述

          即使你不熟悉這個術語,你肯定知道它是什么。meta 描述提供了你的網頁是關于什么的概述的小片段。在您的網站的每個頁面都會有meta描述。這些描述是160個字符或更少。meta 描述是你要吸引訪問者點擊你的鏈接絕佳機會。這也是一種方式來獲得注意到您的關鍵字,因為谷歌掃描和亮點在你的 meta 描述用戶搜索的關鍵字。

          4. 內容

          搜索引擎喜歡內容更多的文章,當然最好是原創。如果你有一個博客(我強烈推薦) ,重要的是要考慮到工藝,將帶來價值,你的網站內容的時間。如果你不是一個作家更是一個設計師,可以找人幫助你。

          5. 圖片優化

          如果你不花時間來命名你的圖片,你失去寶貴的搜索引擎優化。想想這將是多么偉大的是重命名按照同樣的圖像是什么 - 例如 smithers-web-design-mock-up.jpg。不僅是你清楚地解釋顯示的是什么圖像,你也最大限度地提高您的關鍵字。

          6. 優化 URL

          說到連接符,請確保你優化你的網址與復姓關鍵字。例如,如果你的博客文章是關于白帽 SEO ,你的網址應該是www.yoursite.com/white-hat-seo。請記住你的目標關鍵詞,并用它在你的博客文章的標題,以及在你的博客文章的網址。這是另一種方式來優化您的網站。

          7. 內鏈的絕對路徑

          這個技巧雖然簡單但很有用,有兩種類型的連接:

          • 絕對路徑:例如,<a href=&rdquo;www.yoursite.com&rdquo;>

          • 相對路徑:例如,<a href=&rdquo;/home.html&rdquo;>

          如果你正在使用相對路徑,建議換成絕對路徑,因為可以減少服務器的響應時間。

          8. 網站速度

          研究表明,如果網站加載超過3秒鐘,40%的訪客會放棄。因此,即使你的網站采用了超酷的設計,但如果新的游客幾乎有一半不圍著看它,那有什么用呢?

          速度慢也會對搜索引擎優化造成負面影響。自2010年以來,谷歌已經明確承認,加載速度是由他們來決定你的網頁排名的方法之一。雖然我們不是什么搜索引擎機器人如何評價快慢,但我們知道它有一個邏輯的網站結構優化的后端是非常重要的。

          9. 豐富的片段

          類似 meta 描述,豐富的片段顯示在搜索結果頁面。當你搜索&ldquo;samsung top load washer,&rdquo; 你會注意到有些網站提供了評分、訪問量和價格。此信息提供給搜索引擎,會增加你的搜索流量,因為它更能引起注意。除了這些片段,一個令人興奮的選項包括產品的圖片或視頻作為營銷在搜索引擎結果頁的一部分。你可以通過調整你的 meta 描述具有豐富的片段利用視覺營銷。

          60互聯網安全中心監測到一種利用被入侵服務器進行門羅幣挖礦的僵尸網絡,該僵尸網絡控制的服務器數量高峰時單日達到兩萬多臺。僵尸網絡建立初期利用&ldquo;永恒之藍&rdquo;漏洞攻擊武器入侵一定數量的計算機并以此作為僵尸網絡發展的基礎,之后這些計算機掃描其他計算機的1433端口(msSQL服務端口),嘗試爆破目標計算機的msSQL服務,一旦爆破成功則登陸SQL Server執行惡意代碼。目標計算機被僵尸網絡控制之后同樣會通過1433端口入侵其他計算機,僵尸網絡因此不斷擴大控制范圍,最終形成現在這樣的規模。

          僵尸網絡的蔓延離不開強大的Bot程序,通過代碼同源性可以發現該家族的Bot程序的誕生最早可追溯到2014年。在2014年到2017年之間, Bot程序進行多次版本更新,最早的版本只是簡單的入侵與遠程控制,從2017年4月的版本開始, Bot程序借鑒多款掃描器、爆破工具以及著名僵尸網絡mirai的實現,添加了多種針對不同協議的掃描爆破模塊,并且實現了一套針對msSQL的&ldquo;入侵+利用+傳播&rdquo;的攻擊模塊。Bot程序版本更替及傳播量如下圖所示。(圖示中xx.x.x.x.x(x)表示的是Bot程序的版本,例如17.1.0.0.2(1)表示2017年編譯的1.0.0.2版本的Bot程序變種1)

          圖1-1 Bot程序版本更替及感染量概覽圖

          從圖1-1中可以看出,Bot程序自4月底開始傳播量開始出現爆發式增長,這正是作者利用&ldquo;永恒之藍&rdquo;漏洞攻擊武器進行僵尸網絡建立的時間段。此外,Bot程序有一套完善的更新體系,當Bot程序檢測到有新版本發布之后,將自動更新至最新版本。從圖1種也不難看出,新版本傳播量增加之后,老版本的傳播量也相應地下降。

          Bot程序當前的主要目的是安裝門羅幣挖礦機,利用服務器資源挖礦。截止目前,作者的門羅幣錢包已經有高達1975枚門羅幣,當前約合人民幣167萬。

          圖1-2 作者門羅幣錢包概況

          Bot程序高度模塊化,集合了多種不同的功能,并且具有完善的更新和持久駐留機制。

          對Bot程序的分析將有助于了解該僵尸網絡的傳播機制。本文將通過對Bot程序的詳細分析,挖掘該僵尸網絡的工作原理,并據此討論服務器在面對該僵尸網絡時所需的預防措施以及防御策略。

          Bot程序由main模塊,update模塊,Scanner模塊,Cracker模塊,ServerAgent模塊和cService模塊6個模塊構成,模塊之間互有聯系,相互協作。以下將對每個模塊執行的功能進行分析。

          1. main模塊分析

          Bot程序是以控制臺形式存在的,在介紹main模塊之前先介紹Bot程序所接收的啟動參數以及參數對應的功能。

          這些啟動參數滿足以下幾條規則:

          1.當存在&ldquo;-start&rdquo;,&ldquo;-stop&rdquo;,&ldquo;-create&rdquo;和&ldquo;-delete&rdquo;中的多個時,只有第一個參數是有效的,因此作者引入&ldquo;-run&rdquo;參數配合&ldquo;-create&rdquo;參數以完成創建服務并啟動服務的操作。

          2.&ldquo;-delete&rdquo;參數在刪除Bot服務之前會關閉該服務。

          3.當未指定&ldquo;-syn&rdquo;參數時默認掃描器為TCP_CONNECT模式。

          4.當同時存在&ldquo;-srv&rdquo;和&ldquo;-cli&rdquo;時只有第一個參數是是有效的,兩者都不存在時默認為&ldquo;-srv&rdquo;。

          5.當程序啟動參數包含&ldquo;-s&rdquo;時,將以服務形式執行main模塊,否則以控制臺形式執行main模塊。

          main模塊主要是進行一些準備工作以及配置并啟用其他模塊。在程序準備工作方面,主要包括以下幾部分。

          (1)獲取系統信息。

          圖2-1-1 獲取系統信息

          (2)判斷系統類型是否為Server。

          圖2-1-2 判斷系統類型

          (3)結束并禁用Network list Service和Network Location Awareness。Network list Service用于識別計算機已連接的網絡,收集和存儲這些網絡的屬性,并在更改這些屬性時通知應用程序;Network Location Awareness用于收集并保存網絡配置和位置信息,并在信息改動時通知應用程序。Bot程序關閉并禁用這些服務以防止自身的網絡通信被記錄。

          圖2-1-3 結束并禁用Network list Service和Network Location Awareness

          (4)結束并禁用SharedAccess和MpsSvc(Intemet連接共享和防火墻服務)以保障Bot程序的網絡通信能夠正常進行,并且刪除日志文件。

          圖2-1-4結束并禁用SharedAccess和MpsSvc

          完成初始化工作之后,main模塊將創建新線程執行update模塊。update模塊檢查Bot程序版本并根據情況進行更新。同時,main模塊還作為Scanner模塊,Cracker模塊和ServerAgent模塊的入口。

          update模塊是Bot程序進行自更新的模塊。當程序執行main模塊時,將創建線程執行update模塊進行版本檢查及必要的更新。update模塊每6小時進行一次更新檢查。

          圖2-2-1 創建線程執行update模塊

          圖2-2-2 調用Sleep函數以定期執行update模塊

          進行更新檢查時,update模塊首先獲取程序當前的版本號,之后通過博客地址&ldquo;http://blog.sina.com.cn/s/blog_16fb721c50102x6hw.html&rdquo;獲得加密后的C&C的ip地址。將加密后的ip地址去除首尾的分隔符(***和@@@),經過base64解密并與0x36異或之后得到真實的ip地址(在本樣本中,C&C ip地址為67.229.144.218,以下簡稱為&ldquo;ip&rdquo;)。

          圖2-2-3 博客中加密的ip地址

          http://ip:8888/ver.txt中存放最新的Bot程序版本號,update模塊讀取該版本號并與當前Bot程序的版本號進行對比。當兩者相同時,則認為程序已經更新到最新版本,繼續執行后續功能;當兩者不同時,則對程序進行更新。

          圖2-2-4 對比Bot程序版本和最新版本號

          圖2-2-5 最新的版本號

          若Bot程序未更新到最新版本,則進行更新。最新版本的Bot程序通過路徑C://windows/system下的更新程序cabs.exe獲取。若cabs.exe不存在,則Bot程序將從http://ip:8888/ups.rar下載cab.exe,并啟動該程序進行更新。

          圖2-2-5 下載更新程序cab.exe并啟動更新

          cabs.exe會判斷當前計算機系統是否為Windows Server,只有當當前計算機系統為Windows Server時才會執行更新。

          圖2-2-6 判斷當前系統是否為Windows Server

          如果當前計算機系統為Windows Server,則訪問http://ip:8888/update.txt獲取最新的下載列表,并將下載列表下載到c:\windows\system路徑下,命名為upslist.txt。

          圖2-2-7 下載下載列表

          下載列表中包含兩個文件ps.jpg和my1.html。

          圖2-2-8 下載列表內容

          ps.jpg是末尾拼接了一個PE文件的圖片。該PE文件就是最新版本的Bot程序。

          圖2-2-9 藏有最新版本Bot程序的圖片

          圖2-2-10 圖片中監測到的PE文件特征

          my1.html是一個批處理腳本,功能與Cracker:mssql模塊釋放的批處理腳本123.dat基本相同,主要是創建一些需要的文件夾并為之后Cracker模塊配置環境。

          完成下載之后,cabs.exe會結束Bot程序的進程和服務,更新相關文件之后再重啟Bot進程和服務。

          scanner模塊修改自masscan(github:https://github.com/robertdavidgraham/masscan)。masscan是一個快速、靈活的端口掃描器,在windows下發包速度可達到每秒30萬包。

          在調用scanner模塊進行掃描之前,Bot程序會配置一個excludefile,該文件指定ip段黑名單,在該范圍中的ip地址將不會被掃描。ip黑名單以字符串的形式存放在Bot程序的資源段中,scanner模塊在臨時文件夾下創建excludefile,讀取資源后將ip黑名單寫入excludefile。

          圖2-3-1 讀取ip黑名單資源并寫入excludefile

          在Bot程序2017年四月份編譯的1.0.0.2版本和五月份編譯的1.0.0.3版本的其中一個變種中未發現ip黑名單,在五月份編譯的1.0.0.3版本的另一個變種中發現了ip黑名單。

          圖2-3-2 存放在Bot程序資源段中的ip黑名單

          對于每一個a類ip,scaner模塊排除掉部分b段。由于全網掃描容易遭到監控,通過排除部分ip地址可以減少被發現的風險。

          圖2-3-3 scanner模塊排除部分ip地址后掃描全網

          scanner模塊能夠掃描的端口包括1433端口,3306端口,135端口,22端口,445端口,23端口,80端口和3389端口。

          圖2-3-4 部分scanner模塊掃描的端口

          scanner模塊可通過兩種模式進行端口掃描,分別是TCP_SYN掃描和TCP_CONNECT掃描。使用何種掃描模式由參數&ldquo;-syn&rdquo;決定,如果啟動參數包含&ldquo;-syn&rdquo;則選擇使用TCP_SYN模式進行端口掃描,否則選擇TCP_CONNECT模式進行端口掃描。當選擇TCP_SYN模式進行端口掃描時,Bot程序只發送SYN幀,端口開放回應SYN&ACK幀,端口關閉回應RST幀,;當選擇TCP_CONNECT模式進行端口掃描時,Bot程序嘗試連接目標端口,端口開放則連接成功,否則連接失敗。

          Scanner模塊創建的最大掃描線程數由&ldquo;-t&rdquo;參數決定,&ldquo;-t&rdquo;的最大值為1800。在scanner模塊創建掃描線程的同時會同時創建名為&ldquo;CrackerWMI&rdquo;的線程,但是在Bot程序發送的數據包中并未發現目的端口為135(wmi服務使用的端口)的數據包,推測可能是作者預留的尚未完善的功能。

          圖2-3-5 兩種不同的掃描模式

          scanner模塊會記錄開放特定端口的ip地址,并且與ServerAgent模塊和Cracker模塊進行交互完成&ldquo;端口掃描+爆破+入侵&rdquo;一系列工作。

          2. ServerAgent模塊分析

          ServerAgent模塊由兩部分功能組成。一是向C&C發送掃描結果;二是對端口掃描和爆破進行相應的配置工作。

          ServerAgent模塊在scanner模塊掃描過程中連接C&C。當scanner模塊掃描到開放的端口之后,ServerAgent模塊將把對應的ip地址和端口號發送至C&C。

          圖2-4-1 ServerAgent模塊連接C&C

          此外,ServerAgent模塊下載密碼字典并為Cracker模塊配置密碼字典,當scanner模塊掃描到某ip地址的特定端口為開放狀態時,將通過該字典進行爆破。字典的下載地址為http://ip:8888/wpd.dat,當下載完成之后,ServerAgent模塊將從http://ip:8888/wpdmd5.txt獲取正確的密碼字典的MD5值并與下載的字典wpd.dat的MD5值進行對比以確定下載文件的正確性。下載的密碼字典wpd.dat是經過加密的,ServerAgent模塊讀取密鑰&ldquo;cm9vdCpwd2Q=&rdquo;,對密鑰進行base64解密后,使用其解密wpt.dat。解密后的wpd.dat部分內容如下圖所示。

          圖2-4-2 密碼字典的部分內容

          wpd.dat實際上是一個xml文件,里面包含mysql,mssql,telnet,wmi,ssh,rdp的密碼字典以及不同的入侵方式執行的shell。此外,wpd.dat中存在一個名為ports的鍵,當該鍵的某個子健鍵值為1時,ServerAgent模塊將配置scanner模塊使其掃描該子鍵對應的端口。

          圖2-4-3 ports鍵概覽

          在默認的wpd.dat中,只有mssql子鍵的值設為1,因此scanner模塊只掃描mssql服務對應的端口(端口號1433)。黑客可以通過配置wpd.dat文件增加、減少、修改掃描端口的數目和類別。

          圖2-4-4 從抓包數據發現Bot程序只掃描1433端口

          有趣的是,ServerAgent模塊選擇隨機的ip段作為每一輪掃描的ip范圍,這和mirai僵尸網絡的做法十分相似。如下所示,get_random_ip函數生成的隨機ip段為220.176.171.93~220.182.171.87,因此本輪掃描中scanner模塊對該ip段進行掃描。

          圖2-4-5 ServerAgent模塊計算并選取隨機ip段

          圖2-4-6 測試中生成的隨機ip段

          圖2-4-7 從抓包數據中發現此輪掃描中Bot程序掃描其隨機生成的ip段

          3. Cracker模塊分析

          Cracker模塊是Bot程序中最重要的模塊。該模塊用于入侵目標計算機并在目標計算機上執行惡意代碼。Cracker模塊分為多個小模塊,在分析的樣本中包括Cracker:CCTV,Cracker:mssql, Cracker:RDP,Cracker:Telnet四個小模塊。按照入侵的端口的不同,Cracker模塊提供不同的攻擊方式。下面將介紹每一種攻擊的實現。

          5.1 Cracker:mssql

          由于Bot程序默認的密碼字典wpd.dat中指定掃描的服務為msSQL,因此Cracker:mssql模塊是所有Cracker模塊中功能最為完善的。在大部分被感染的服務器的msSQL服務中都可以發現該模塊所執行的惡意動作。

          Cracker:mssql模塊首先使用爆破字典爆破目標的msSQL服務。如果成功爆破目標,則登陸SQL Server執行下一步操作。

          登陸SQL Server之后,需要在SQL Server中獲得執行shell的權限,因此Cracker:mssql模塊使用多種方式嘗試獲得執行shell的權限,包括:

          1. 恢復xp_cmdshell。

          圖2-5-1 恢復xp_cmdshell

          2. 開啟被禁止的xp_cmdshell。

          圖2-5-2 開啟xp_cmdshell

          3. xp_cmdshell被刪除后,使用SP_OACreate執行shell。

          圖2-5-3 使用SP_OACreate執行shell

          4. 開啟CLR enabled選項,使用SQL Server CLR執行shell。

          圖2-5-4 開啟CLR enabled選項

          5. 注冊regsvr32.dll執行遠端代碼所需的組件,使用regsvr32.dll執行shell。

          圖2-5-5 注冊相關組件

          6. 通過沙盒執行shell。

          圖2-5-6 通過沙盒執行shell

          7. 開啟SQL Agent服務,使用SQL Agent服務執行shell。

          圖2-5-7 開啟SQL Agent服務

          Cracker:mssql模塊所執行的主要功能主要包括以下幾方面:

          1. 在c:\windows\system32\wbem下創建批處理文件123.dat,并在該文件中寫入內容。

          圖2-5-8 創建123.bat

          該批處理文件執行的功能包括對一些程序運行所涉及到的文件和文件夾進行權限設置;使用regsvr32.dll執行遠端代碼;判斷是否存在item.dat,若存在則調用rundll32執行該程序。item.dat是修改自PCShare(github:https://github.com/isuhao/pcshare)的遠程控制程序,C&C通過item.dat控制Bot。

          2. 創建文件PerfStringse.ini,并在該文件中寫入內容。

          圖2-5-9 創建PerfStringse.ini

          該文件是個組策略模板文件,主要是禁止一些涉及到的文件的訪問權限。在創建該模板文件之后調用secedit.exe配置組策略。

          圖2-5-10 調用secedit.exe配置組策略

          3. 在c:\windows\system下創建文件myusa.dvr,并在文件中寫入內容。

          圖2-5-11 創建myusa.dvr

          myusa.dvr是個ftp下載腳本,主要功能是從down.mys2016.info下載文件1.dat到本地c:\windows\system路徑下,命名為myusago.dvr;下載1.bat到本地c:\windows\system路徑下,命名為backs.bat。

          myusago.dvr也是個ftp下載腳本,從down.mys2016.info下載多個文件到本地;backs.bat用于記錄系統時間并寫入1.txt中。

          圖2-5-12 myusago.dvr內容

          下載的文件中,item.dat是C&C用于控制Bot的遠程控制軟件;ms.rar實際上就是Bot程序的更新程序cab.exe;ss.bat和Cracker:mssql模塊釋放的123.bat是同一個文件;未找到op7key.rar文件,猜測與爆破字典類似。

          從myusago.dvr下載的文件不難看出,Bot程序除了執行Cracker:mssql模塊中硬編碼的惡意代碼之外,還通過云端下載相應的惡意程序,這保障與Bot程序相關聯的惡意代碼能夠持續駐留。在分析的過程中我們發現,用于進行環境配置和程序運行控制的123.bat批處理腳本是更新最為頻繁的,從2017年4月份起更新次數超過了10次。

          myusago.dvr和myusa.dvr將作為ftp的參數寫入命令行中并加入SQL Agent的Job中,每天執行一次。

          4. 將Bot程序加入SQL Agent的job中,并附帶參數&ldquo;-syn 1000&rdquo;。每次SQL Agent啟動時Bot程序也將啟動。

          圖2-5-13 將Bot程序加入SQL Agent的Job中

          5. 以Job的形式每20分鐘運行一次C:\Progra~1\mainsoft\install.exe。該程序是一個掛機賺分軟件。

          圖2-5-14 以Job形式執行install.exe

          6. 以Job的形式每20分鐘執行C:\windows\debug,C:\Progra~1\shengda和C:\Progra~1\kugou2010路徑下的所有exe。從我們的監控中發現,Bot程序所釋放的挖礦機以及能給黑客帶來直接收益的程序都存在于這幾個路徑中,黑客通過定時啟動這些程序保證收益的源源不斷。

          圖2-5-15 定時執行C:\windows\debug下的exe

          圖2-5-16 定時執行C:\Progra~1\shengda下的exe

          圖2-5-17 定時執行C:\Progra~1\kugou2010下的exe

          7. 創建ftp下載腳本msinfo.dat,該腳本從down.mys2016.info下載文件到C:\windows\debug路徑下,并命名為bss.exe。之后通過批處理腳本msinfo.bat調用ftp執行下載腳本,下載完成后啟動bss.exe,并刪除這兩個腳本。bss.exe疑似是個遠控木馬。

          圖2-5-18 msinfo.dat內容

          圖2-5-19 msinfo.bat內容

          8. 將item.dat和123.bat加入啟動項中。

          圖2-5-20 將item.dat加入啟動項中

          圖2-5-21 將123.bat加入啟動項中

          9. 確定權限允許之后,刪除SQL用戶,并設置SQL SA(超級管理員)帳戶及密碼,同時添加多個SQL帳戶。完成這步操作之后,黑客正式接管該計算機的SQL Server,管理員無法再通過之前的帳戶登錄SQL Server。

          圖2-5-22 添加SQL SA

          Cracker:mssql模塊還通過SQL Server執行多段shellcode,大部分的shellcode都以SQL Agent的Job形式存在并定期執行。

          第一段shellcode使用wmi中的ActiveScriptEventConsumer類執行腳本代碼。該腳本讀取http://www.cyg2016.xyz:8888/test.html網頁內容,并根據網頁內容獲取第二組網址,下載文件并執行。

          圖2-5-23 第一段shellcode內容

          下載的文件包括更新程序cabs.exe和挖礦機lsmosee.exe。挖礦機修改自xmr-stak(github:https://github.com/fireice-uk/xmr-stak-cpu),以32位形式編譯,作者在此挖礦機中添加了一個模塊,當需要64位挖礦機時,該模塊將從C&C下載64位的挖礦機lsmose.exe到本地執行。本樣本中,32位挖礦機的路徑為&ldquo;C:\windows\help&rdquo;,而64位挖礦機的路徑修改為&ldquo;C:\windows\debug&rdquo;。由于作者添加了SQL Agent的Job,使&ldquo;C:\windows\debug&rdquo;路徑下的exe文件每20分鐘執行一次,猜測作者將挖礦機保存到此目錄下是為了保證挖礦機能夠穩定運行。

          圖2-5-24 下載挖礦機和更新程序

          第二段shellcode使用js腳本執行惡意代碼,腳本功能與第一段shellcode中的jscript代碼相同。

          圖2-5-25 第二段shellcode內容

          第三段shellcode同樣使用wmi腳本執行jscript代碼,所執行的功能與創建的批處理文件123.bat的功能相同,猜測作者此舉為了防止文件123.bat被殺毒軟件清除而執行的備用方案。

          圖2-5-26 第三段shellcode內容

          第四段shellcode是第三段shellcode的js版本。不難發現,作者對于每段shellcode都準備了wmi和js兩種版本,以確保腳本執行的穩定性。

          圖2-5-27 第四段shellcode內容

          第五段shellcode通過恢復cmdshell,恢復SP_OACreate等方式保證能通過SQL Server執行shell,猜測作者通過Job定期執行這段shellcode以保證shell能長期存活。

          圖2-5-28 第五段shellcode內容

          第六段shellcode刪除C:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5路徑下的文件。由于下載文件時都會在該目錄下留下對應的tmp文件,作者此舉是為了防止用戶通過該目錄發現可疑文件,可見作者對痕跡的清理十分細心。

          圖2-5-29 第六段shellcode內容

          第七段shellcode使用js腳本訪問http://www.cyg2016.xyz:8888/kill.html,該頁面是個文件名列表。腳本搜尋系統中是否存在與該頁面返回的文件名相同的文件,若存在則結束對應進程并將文件刪除。這些文件大多數是一些其他入侵者釋放的挖礦機。

          圖2-5-30 第七段shellcode內容

          透過這些文件名我們發現了一個有趣的現象,在被刪除的文件中包含了一些和Bot程序釋放的挖礦機文件名十分相似的文件,例如C:\windows\debug\lsmosee.exe(Bot程序釋放的挖礦機是c:\windows\help\lsmosee.exe和C:\windows\debug\lsmose.exe)。是作者通過這樣的方式進行更新,淘汰舊的挖礦機,還是其他入侵者利用Bot程序定時執行C:\windows\debug路徑下程序的特性坐收漁翁之利就不得而知了。

          圖2-5-31 待刪除文件列表

          第八段shellcode將123.bat加入啟動項中,此處不再贅述。

          第九段shellcode從http://down.mys2016.info:280下載文件到C:\WINDOWS路徑下,并命名為ps.exe。ps.exe實際上是PsExec,一款強大的遠程執行工具,黑客在每臺入侵的計算中部署該工具,使每臺計算機成為一個控制端,方便構建一個龐大的僵尸網絡。

          圖2-5-32 第九段shellcode內容

          第十段shellcode主要是完成SQL提權的一系列操作。

          圖2-5-33 第十段shellcode內容

          第十一段shellcode是利用SQL Server CLR執行shell的payload,從payload中可以發現其訪問http://www.cyg2016.xyz:8888/clr.txt并執行該頁面中返回的內容。

          圖2-5-34 payload的部分內容

          該頁面和http://www.cyg2016.xyz:8888/test.html一致,即下載更新程序和挖礦機到計算機中并運行。

          Cracker:mssql模塊完成了Bot程序幾乎所有要完成的功能,包括更新、挖礦、清除同類程序、定時任務以及SQL Server管理員賬戶的設置。由于作者目前的密碼字典中將mssql作為唯一攻擊目標,因此Cracker:mssql模塊如此完善也是可以理解的。若之后作者開啟了其他攻擊方式,其他的Cracker模塊也將變得更加完善。

          5.2 Cracker:Telnet

          Cracker:Telnet模塊是除了Cracker:mssql模塊之外較為完善的一個模塊。作者充分利用mirai僵尸網絡的優點構建了一套類似于mirai的Telnet入侵模塊。

          在執行Cracker:Telnet模塊之前,Bot程序在ServerAgent模塊中配置Telnet入侵攻擊的payload。ServerAgent模塊會根據不同的平臺架構從資源段中讀取payload并將其轉化為十六進制字節碼的形式。

          圖2-5-35 從資源段讀取payload

          在payload中我們發現一些mirai相關的標識,通過對比發現Bot程序所使用的payload就是mirai僵尸網絡的payload(github:https://github.com/jgamblin/Mirai-Source-Code/tree/master/loader/bins),這些payload適用于不同的平臺架構(arm,arm7,m68k,mips,mpsl,ppc,sh4,spc,x86)。

          圖2-5-36 payload中mirai的相關標識

          除了payload與mirai相同之外,Cracker:Telnet模塊也基本修改自mirai源碼,包含密碼爆破功能和入侵功能。

          圖2-5-37 Cracker:Telnet模塊中的mirai特征

          mirai在通過Telnet入侵之前會配置一個ip地址用于作為report服務器地址,用于返回掃描結果,在分析中我們也發現了一個疑似report服務器ip地址。如果Bot程序的啟動參數中包含&ldquo;-srv&rdquo;,則ServerAgent模塊會從密碼字典中讀取名為telnetip的子鍵的鍵值,該鍵值是個ip地址,之后被傳入Cracker:Telnet模塊中。如果啟動參數中包含&ldquo;-cli&rdquo;,Bot程序會從當前目錄下的wpdconfig.ini文件中讀取ip地址。

          圖2-5-38 密碼字典中的report服務器地址

          由于Cracker:Telnet模塊與mirai相差無幾,在此不再贅述,感興趣的讀者可以查看mirai源碼(github:https://github.com/jgamblin/Mirai-Source-Code)。

          5.3 Cracker:RDP

          Cracker:RDP模塊修改自hydra(github:https://github.com/vanhauser-thc/thc-hydra)的RDP部分。hydra是一款支持多種網絡服務的強大的暴力破解工具,Cracker:RDP模塊使用了其源碼中的rdp.c文件,用于對開放了RDP服務端口的計算機進行爆破。不同于Cracker:mssql模塊和Cracker:Telnet模塊,Cracker:RDP模塊只是進行爆破而未加入任何入侵以及代碼執行的功能。

          圖2-5-39 Cracker:RDP模塊掃描端口

          5.4 Cracker:CCTV

          Cracker:CCTV模塊是一個CCTV攝像頭入侵模塊。該模塊會向http://Targetip:port/shell?...(&hellip;的內容猜測是用戶名&密碼)發送GET請求,一旦請求返回的狀態值不為400,401,403,404或500,則認為該ip地址和端口號對應的CCTV攝像頭可以被入侵。

          圖2-5-40 Cracker:CCTV模塊掃描CCTV攝像頭

          由于在密碼字典wpd.dat中并沒有配置CCTV相關的鍵值,猜測該模塊是和Cracker:Telnet模塊結合使用的。由于mirai中含有識別特定IOT設備的代碼,而Cracker:Telnet模塊又是修改自mirai,猜測當Cracker:Telnet模塊發現某臺設備為CCTV攝像機時則通過Cracker:CCTV模塊進行入侵。

          5.5 其他模塊

          在Bot程序早期的版本中(2016年10月編譯的版本)還發現了Cracker:MySQL模塊,Cracker:SSH模塊和Cracker:WMI模塊,這些模塊的功能都是在被入侵的計算機中執行shell。

          圖2-5-41 Cracker:MySQL模塊

          圖2-5-41 Cracker:WMI模塊

          圖2-5-41 Cracker:WMI模塊

          不過這幾個模塊在之后的版本中都被移除了,而原本功能簡單的Cracker:mssql模塊在之后的版本中得到了完善。

          cService模塊用于管理Bot服務,Bot服務是Service形式的Bot程序。

          當Bot程序的啟動參數中包含&ldquo;-create&rdquo;時,cService模塊創建名為&ldquo;xWinWpdSrv&rdquo;的服務,該服務以&ldquo;-s &ndash;syn 1500&rdquo;作為啟動參數啟動Bot程序。

          圖2-6-1 創建Bot服務

          當Bot程序的啟動參數包含&ldquo;-delete&rdquo;時,cService模塊刪除&ldquo;xWinWpdSrv&rdquo;服務。

          圖2-6-2 刪除Bot服務

          當Bot程序的啟動參數包含&ldquo;-start&rdquo;時,cService模塊啟動&ldquo;xWinWpdSrv&rdquo;服務。

          圖2-6-3 啟動Bot服務

          當Bot程序的啟動參數包含&ldquo;-stop&rdquo;時,cService模塊停止&ldquo;xWinWpdSrv&rdquo;服務。

          圖2-6-4 停止Bot服務

          Bot程序模塊眾多,并且各模塊之間關系緊密,相互配合。此外,Bot程序與其他組件相輔相成,以保證攻擊者對計算機的持久控制以及僵尸網絡的不斷壯大。以下將用一個關系圖描述Bot程序與其他組件之間的關聯。

          圖2-6-5 Bot程序與其他組件關系圖

          從僵尸網絡當前的攻擊重點來看,防范其通過1433端口入侵計算機是非常有必要的。此外,Bot程序還有多種攻擊方式尚未使用,這些攻擊方式可能在未來的某一天被開啟,因此也需要防范可能發生的攻擊。對此,我們總結以下幾個防御策略:

          1.對于未遭到入侵的服務器,注意msSQL,RDP,Telnet等服務的弱口令問題。如果這些服務設置了弱口令,需要盡快修改;

          2.對于無需使用的服務不要隨意開放,開放的服務是黑客入侵的前提。對于必須使用的服務,注意相關服務的弱口令問題;

          3.特別注意445端口的開放情況。由于黑客曾經使用永恒之藍漏洞入侵計算機,不排除黑客故技重施。及時打上補丁更新操作系統是非常有必要的。

          4.關注服務器運行狀況,注意CPU占用率和進程列表和網絡流量情況可以及時發現系統存在的異常。此外,注意系統賬戶情況,禁用不必要的賬戶。

          5.對于網絡攝像頭持有者,建議修改默認密碼以防止黑客直接使用默認密碼爆破。

          該僵尸網絡現今主要依靠端口掃描和弱口令爆破進行傳播,但其在&ldquo;永恒之藍&rdquo;漏洞攻擊武器出現之初就利用該武器入侵了一定數量的計算機,可見其對于最新曝光的漏洞利用以及攻擊方法的掌握十分迅速,因此需時刻警惕其可能發起的重大攻擊。


          主站蜘蛛池模板: 国产成人精品一区二区三区免费| 极品人妻少妇一区二区三区| 久久影院亚洲一区| 国产成人一区二区在线不卡| 成人欧美一区二区三区在线视频| 国产精品亚洲一区二区三区 | 韩国精品福利一区二区三区| 国产aⅴ一区二区| 波多野结衣AV无码久久一区| 99精品一区二区三区无码吞精| 国产伦精品一区二区三区在线观看 | 日韩一区二区三区在线观看| 国产一区二区三区久久| 国产精品亚洲一区二区麻豆| 美女福利视频一区二区 | 亚洲天堂一区二区三区| 日韩欧美一区二区三区免费观看| 老鸭窝毛片一区二区三区| 国产成人无码一区二区在线播放| 精品免费国产一区二区三区| 国产成人精品一区在线| 精品人妻码一区二区三区| 国产精品一区二区三区久久| 亚洲色无码一区二区三区| 夜夜高潮夜夜爽夜夜爱爱一区| 国产精品区AV一区二区| 国产成人精品久久一区二区三区| 视频一区二区三区人妻系列| 日本午夜精品一区二区三区电影| 视频在线观看一区二区三区| 亚洲乱码一区二区三区国产精品| V一区无码内射国产| 日本一区二区三区在线看| 亚洲日本精品一区二区| 国产伦精品一区二区| 人妻少妇精品视频一区二区三区| 无码人妻AⅤ一区二区三区水密桃| 亚洲午夜精品一区二区公牛电影院| 国产一区精品视频| 中文字幕在线不卡一区二区| 国产一区二区三区久久|