最邪惡的程式-Crypter-原理與介紹

105
0
Share:

Crypter(加密程式或加殼程式),是我見過最氾濫也最邪惡的程式,因為這類程式的破壞力幾乎是無極限,只受限於被加殼或加密的程式的破壞力。

這句話是什麼意思呢?假如有一個已經被防毒軟體偵測到了感染型的勒索程式,透過Crypter,就可以變成Fully-undetectable(駭客間稱之為FUD,以下也簡稱FUD)。

FUD是什麼呢?就是所有防毒軟體會認為他是正規的程式,而讓我們電腦執行它,然後惡意程式的程式碼就可以在電腦裡作怪,因為防毒軟體阻止執行的步驟已經被跳過去了。

怎麼做到的?

Crypter是由Stub(執行與釋放惡意程式碼的程式)與要被加殼的已經被偵測的惡意程式兩個組成,在那之前會有一個Stub產生器,將惡意程式加密以後變成Stub的資源檔。

Stub附加了惡意程式以後,因為惡意程式已經被加密,所以防毒軟體無法偵測到它,只能偵測Stub的特徵。但Stub的特徵會因為駭客的設計變得很多樣化,很難偵測。

所以多數的防毒軟體都偵測不到Stub,且駭客間會有人架設所謂防毒軟體的偵測網站,一次可以測試10~20種防毒軟體是否會偵測自己的Stub為惡意程式。

所以執行時Stub只要解密惡意程式在記憶體中,然後注入一個exe檔,同時執行exe和注入的惡意程式。可能看起來像是開了一個記事本,但過不久電腦鍵盤可能就被記錄下來或者視訊被偷看,或者整個電腦被鎖起來綁架了。

這樣防毒軟體不就沒用?

多數的先進防毒軟體在這幾年有增加了模擬器的功能,也就是在執行前會模擬一下程式是否有注入程式碼到別的程式。Windows 11開始也有功能可以保護系統檔案不被注入(但如果是裝成有用的程式如notepad記事本一樣,直接注入記事本其實一點防護作用都沒有)。

模擬程式執行的防毒軟體最早是由卡巴斯基實驗室推出,但後來幾乎前面順位的防毒軟體都有,比如我在這個網站一直說的Norton,但仍然可能被繞過,比如我曾經寫了一個Delphi的程式,做了兩個10位數的迴圈,延遲程式的啟動,就繞過了防毒軟體。

我只是學術性的在研究而已,並沒有做惡意的事情,但事實上連我隨意都可以繞過,代表有很多的方法是可以繞過防毒軟的偵測。

那要怎樣防護這種程式?

第一個就是不要執行來路不明的程式,尤其在執行前打開右鍵看看內容有沒有電子簽署,電子簽署是大型公司在軟體上的一個印記,很難模仿。Stub絕對模仿不了。

第二個就是還是要有一個防毒軟體,這邊我一直都在推薦Norton就是他幫我擋掉了一個遊戲的作弊程式但它是有加殼的,我事後用Sandboxie執行才知道的。

第三個就是要會使用沙盒來針對來路不明的程式做檢驗,但其實還是有可能漏掉。

第四個就是要善用VirusTotal之類的網站,有很多執行檔已經被這類的網站掃描過不知道多少次,它們也跟防毒軟體公司有提供可疑樣本作偵測,所以多數的Stub被上傳上去經過2週大概就被偵測到了。

堅持這四點大概就很難中Crypter之類的陷阱,在下方附上Norton的優惠連結,如果不知道要用什麼防毒軟體可以考慮買來試看看。

Norton優惠連結

Share:

Leave a reply