因為資安情報分析的資訊可以被分成很多種分析資料也比較廣泛一點,所以有改一些內容像第九第十天本來是要做檔案傳輸的部分,但是感覺攻擊方面還可以再細講一些,所以今天呢就來講岌岌可危的木馬程式吧
每當談到資安領域裡的木馬程式,教科書或資安書總會先帶我們聽一則古老的希臘神話──「特洛伊木馬」的故事。希臘人和特洛伊人打了一場長達十年的戰爭始終未能攻陷城門,最後希臘人靈機一動,打造了巨大的木馬,讓士兵們藏身其中,把木馬當作禮物獻給特洛伊人。城門被打開、木馬被拖進城、夜幕降臨後士兵潛伏出來,輕鬆打開城門助攻希臘大軍攻城。這個故事最關鍵的地方,就是「誰只要拿了那隻木馬,誰就等於把毒糖果吃下肚」,結果就是被敵人滲透、破壞與毀滅。
現代資訊安全中的木馬程式延伸自這個概念──它偽裝成好東西,一旦執行就會暗中偷走你的資料甚至讓攻擊者全面操控你的電腦。
現代網路世界不只木馬程式,還有像勒索病毒、釣魚郵件、SQL注入、弱密碼暴力破解等,各種攻擊手法花樣繁多。但屬於特洛伊木馬型態的攻擊最狡詐,因為它潛伏、偽裝力極強,一旦感染就能被遠端完全操控,包括偷密碼、竊取檔案、監控螢幕、注入更多病毒……這也是資安工程師、駭客與防毒廠商最重視的關卡。
伺服端(Server)
你可以把它想像成駭客的總司令部!Server負責開門等人,偵聽特定的網路埠口(例如:4444),一直等待木馬(Client)主動來報到。一但連線建立,Server就開始接收木馬送過來的資訊(像系統資料、密碼),並能下達指令(比如要求對方執行某個命令或回傳內容)。Server就像是坐在電腦前的資安高手,守在連線通道,看誰被自己掌控住。
客戶端(Client,木馬端)
這就像潛進受害者電腦的小內奸。Client本身運行在被感染的主機,只要啟動就會自動嘗試連線到Server,把偷到的資料、監聽到的資訊,或甚至執行命令後的回傳內容送給Server。過程全程隱密、用戶一般不會察覺。Client就是忠實的情報小兵,負責後勤、傳送和執行一切指令。
今天我在Visual Studio裡用C#主控台專案把這結構實際寫出來──很基礎、卻直白地還原了木馬攻擊的骨架:
TcpListener
在本機的4444端口監聽連線。NetworkStream
解析,Console直接印出「Received: Hello from client」。如果遇到一下狀況不用慌!visual studio就是想要測試兩部類似的接收器,所以可以把它想成兩台機器,一開始的我也一直在同一個專案裡面一直按想說Server跟Client端明明就不能一起按了到底在說什麼?!
之後發現要先開啟Server端再開啟Client端,
##Server端可能要從C:/使用者/ source/repos/bin內的資料夾📂,裡面應該會有exe檔,先執行Server端##
再去程式內開啟client端,這樣就可以執行啦,那如果怕麻煩的話也可以直接用兩部電腦,但是IP位址需要改一下!
怎麼架設呢?就在同一個方案裡面見兩個專案再作以上步驟就有兩個伺服器啦(應該還是算一個?因為IP位址還是一樣的)
TcpClient
發起主動連線到Server指定IP與端口。操作時只要伺服器先啟動、客戶端跟著執行,就會看到預期訊息:得到指令後Client回報得到的指令確認,還原了木馬的核心行為。
今天的程式都在自己的環境測試沒問題,但資安實驗絕不能直接在真正的主機或生產環境亂玩!,明天我會用Hyper-V創建兩台虛擬機,一台裝Server、一台裝Client,全部測試都在隔離環境執行,怎麼炸、怎麼感染都不怕失控。
虛擬機好處:
如果有下載VIsual studio的人可以開一個方案玩玩看!
client
server
不只要遠控和通訊,明天開始會測試:
今天從「特洛伊木馬」故事談到現代資訊安全木馬程式,不但實作了完整的Server/Client架構,也親身體驗了木馬的基本溝通與資料奪取流程。明天透過Hyper-V虛擬機全程沙盒測試,不但安全也真實模擬駭客攻防情境。每一步都在練習成為更有戰力的資安實務高手!
想學C#資安實作、木馬分析,或是虛擬機打造攻防環境,歡迎留言交流──下回見!
來源
這本計概後面有附贈很多治安程式破解的方法還蠻有趣的,想要玩玩看看的人都可以從這裡試玩看看喔!