2019年10月17日 星期四

木馬(Trojan)/後門(Backdoor)逆向分析

以前在學習惡意程式分析,都會先了解此惡意程式是如何撰寫的,這樣才能直搗黃龍,那麼此篇就來分析最常遇到的惡意程式:

木馬(Trojan)/後門(Backdoor),通常駭客需要遠端控制受害者的電腦,就會透過未授權的連線,連回受害者端,所以學會識別它的行為,在分析大部分的惡意程式都可以游刃有余。

木馬(Trojan)/後門(Backdoor),主要有兩種運行的方式:

1. Port Binding Backdoor:會在受害者端的電腦開啟一個TCP Port,駭客會透過此TCP Port,來連到受害者端的電腦。

2. Reverse Backdoor:這是跟Port Binding Backdoor相反的運作,從受害者端連線到駭客中繼站的TCP Port,此種方式可以規避防火牆,因此惡意程式常用這個連線的方式。

一、木馬(Trojan)/後門(Backdoor)分析

從WSAConnect來看,它是屬於Reverse Backdoor,因此它會回連到駭客的中繼站,如果想要知道駭客是連到哪個IP和Port,可以繼續分析它的第二個參數,它是sockaddr_in的結構,裡面會存放連線的IP和Port。



在分析木馬(Trojan)/後門(Backdoor)時,最主要會運行CreateProcess,然後利用cmd.exe去執行系統指令,之後再回傳給中繼站,所以了解它的參數也是非常重要。

a. STARTUPINFOA結構:裡面可以設置標準輸出(hStdOutput)、輸入(hStdInput)、錯誤(hStdError),重導向到其它的I/O。

b. 運行的指令:如果CreateProcess的第一個參數是NULL,那麼此參數就要夾帶運行的程式路徑,例如cmd.exe \c dir。

c. CreateProcess:讓程式在記憶體上執行。



STARTUPINFOA結構,裡面的標準輸出(hStdOutput)、輸入(hStdInput)、錯誤(hStdError),重導向到網路連線(Winsock),這樣駭客只要傳送系統指令,就會被cmd.exe運行,然後會將結果回傳給駭客,不過這邊要注意一下,有些惡意程式會導向到Pipeline。



大多數的惡意程式一定會隱藏cmd.exe的字串,不讓分析者一下子就找到相關的字串,因此會重組字串或者加密它。



二、木馬(Trojan)/後門(Backdoor)運行結果

讓受害者端的電腦回連到駭客的中繼站(透過nc開啟Port 9999來接收受害者的連線),然後傳送ipconfig的指令,並回傳結果到中繼站。