iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
Security

我的30天資安攻之路防身修練:實戰×工具×AI全紀錄系列 第 9

【DAY9】何謂木馬?C#遠控木馬🎠初步實作

  • 分享至 

  • xImage
  •  

因為資安情報分析的資訊可以被分成很多種分析資料也比較廣泛一點,所以有改一些內容像第九第十天本來是要做檔案傳輸的部分,但是感覺攻擊方面還可以再細講一些,所以今天呢就來講岌岌可危的木馬程式吧

木馬程式的起源故事

每當談到資安領域裡的木馬程式,教科書或資安書總會先帶我們聽一則古老的希臘神話──「特洛伊木馬」的故事。希臘人和特洛伊人打了一場長達十年的戰爭始終未能攻陷城門,最後希臘人靈機一動,打造了巨大的木馬,讓士兵們藏身其中,把木馬當作禮物獻給特洛伊人。城門被打開、木馬被拖進城、夜幕降臨後士兵潛伏出來,輕鬆打開城門助攻希臘大軍攻城。這個故事最關鍵的地方,就是「誰只要拿了那隻木馬,誰就等於把毒糖果吃下肚」,結果就是被敵人滲透、破壞與毀滅。

現代資訊安全中的木馬程式延伸自這個概念──它偽裝成好東西,一旦執行就會暗中偷走你的資料甚至讓攻擊者全面操控你的電腦。


資安攻擊百百種,木馬最能滲透!

現代網路世界不只木馬程式,還有像勒索病毒、釣魚郵件、SQL注入、弱密碼暴力破解等,各種攻擊手法花樣繁多。但屬於特洛伊木馬型態的攻擊最狡詐,因為它潛伏、偽裝力極強,一旦感染就能被遠端完全操控,包括偷密碼、竊取檔案、監控螢幕、注入更多病毒……這也是資安工程師、駭客與防毒廠商最重視的關卡。


Server/Client端到底在幹嘛?

伺服端(Server)
你可以把它想像成駭客的總司令部!Server負責開門等人,偵聽特定的網路埠口(例如:4444),一直等待木馬(Client)主動來報到。一但連線建立,Server就開始接收木馬送過來的資訊(像系統資料、密碼),並能下達指令(比如要求對方執行某個命令或回傳內容)。Server就像是坐在電腦前的資安高手,守在連線通道,看誰被自己掌控住。

客戶端(Client,木馬端)
這就像潛進受害者電腦的小內奸。Client本身運行在被感染的主機,只要啟動就會自動嘗試連線到Server,把偷到的資料、監聽到的資訊,或甚至執行命令後的回傳內容送給Server。過程全程隱密、用戶一般不會察覺。Client就是忠實的情報小兵,負責後勤、傳送和執行一切指令。


今天的C#木馬遠控程式完整實作過程

今天我在Visual Studio裡用C#主控台專案把這結構實際寫出來──很基礎、卻直白地還原了木馬攻擊的骨架:

Server端怎麼做?

  • TcpListener 在本機的4444端口監聽連線。
  • 用while迴圈永久等待,只要有Client連上,就自動收資料。
  • 收到資料用 NetworkStream解析,Console直接印出「Received: Hello from client」。
  • 收到後馬上以「Command received」回傳,讓Client知道自己被Server掌控著。

https://ithelp.ithome.com.tw/upload/images/20250909/20168357URLIHVwm28.png

如果遇到一下狀況不用慌!visual studio就是想要測試兩部類似的接收器,所以可以把它想成兩台機器,一開始的我也一直在同一個專案裡面一直按想說Server跟Client端明明就不能一起按了到底在說什麼?!

之後發現要先開啟Server端再開啟Client端,

##Server端可能要從C:/使用者/ source/repos/bin內的資料夾📂,裡面應該會有exe檔,先執行Server端##

再去程式內開啟client端,這樣就可以執行啦,那如果怕麻煩的話也可以直接用兩部電腦,但是IP位址需要改一下!

怎麼架設呢?就在同一個方案裡面見兩個專案再作以上步驟就有兩個伺服器啦(應該還是算一個?因為IP位址還是一樣的)

Client端怎麼做?

  • TcpClient發起主動連線到Server指定IP與端口。
  • 連線成功就直接送出「Hello from client」。
  • 等待Server端指令(這裡就是回應訊息)並把收到的訊息顯示出來。
  • 執行結束後自動斷線,整體十分自動化!(但我這邊好像有改成連續)

操作時只要伺服器先啟動、客戶端跟著執行,就會看到預期訊息:得到指令後Client回報得到的指令確認,還原了木馬的核心行為。
https://ithelp.ithome.com.tw/upload/images/20250909/20168357OZuksQZCSm.png

https://ithelp.ithome.com.tw/upload/images/20250909/20168357MvZNZy5Xw2.jpg


為什麼明天要用虛擬機?電腦才安全!

今天的程式都在自己的環境測試沒問題,但資安實驗絕不能直接在真正的主機或生產環境亂玩!,明天我會用Hyper-V創建兩台虛擬機,一台裝Server、一台裝Client,全部測試都在隔離環境執行,怎麼炸、怎麼感染都不怕失控。

虛擬機好處:

  • 安全隔離:實驗失敗隨時回復快照
  • 網路隔離:只開特定網段,防止病毒擴散
  • 方便測試多種系統:一台主機上可建多台VM
  • 配合工具監控:可用Wireshark、Process Monitor分析攻防行為

如果有下載VIsual studio的人可以開一個方案玩玩看!

client
https://ithelp.ithome.com.tw/upload/images/20250909/201683577336BlPewq.jpg
server
https://ithelp.ithome.com.tw/upload/images/20250909/20168357KMWZQGHrDF.jpg

明日強化計劃與進階資安技能

不只要遠控和通訊,明天開始會測試:

  • 客戶端自動攔截剪貼簿、系統資訊,直接喬裝成竊聽者。
  • 伺服端發送真實指令,木馬端執行並回傳結果,像高階駭客駭入系統。
  • 學習木馬隱藏、啟動自動執行、逃避防毒技術。
  • 研究防火牆和防毒軟體的對策,打造駭客與資安人的完整攻防大對決!

總結與心得

今天從「特洛伊木馬」故事談到現代資訊安全木馬程式,不但實作了完整的Server/Client架構,也親身體驗了木馬的基本溝通與資料奪取流程。明天透過Hyper-V虛擬機全程沙盒測試,不但安全也真實模擬駭客攻防情境。每一步都在練習成為更有戰力的資安實務高手!

想學C#資安實作、木馬分析,或是虛擬機打造攻防環境,歡迎留言交流──下回見!


來源
https://ithelp.ithome.com.tw/upload/images/20250909/201683571atyuMI7ab.jpg

這本計概後面有附贈很多治安程式破解的方法還蠻有趣的,想要玩玩看看的人都可以從這裡試玩看看喔!


上一篇
【DAY8】檔案上傳與遠端命令執行漏洞測試教學分享
下一篇
【鐵人賽 Day10】用 C# 實作木馬+勒索軟體模擬攻擊與防禦演練
系列文
我的30天資安攻之路防身修練:實戰×工具×AI全紀錄10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言