當遠端管理工具 (RDP/PCAnywhere/SSH) 失效,但目標主機 TCP 139/445 (SMB/IPC$) 開放、且具備有效管理員憑證時,可透過 net use、at 排程任務、自製重啟程式實現遠端重啟。本文提供完整命令列流程、C++ 原始碼與現代替代方案。
REM 1. 建立 IPC$ 會話 (驗證)
net use \\192.168.1.100\IPC$ "Password123" /user:Administrator
REM 2. 映射目標 C$ 行政共享為本地 Z:
net use Z: \\192.168.1.100\C$
REM 3. 在目標 C: 根目錄建立重啟批次檔 (Win2k/XP/2003 適用)
echo iisreset /reboot > Z:\reboot.bat
REM 或更通用的 shutdown 指令 (XP SP2+/2003+)
echo shutdown /r /t 30 /c "Remote reboot by admin" > Z:\reboot.bat
REM 4. 取得目標系統時間 (確保排程時間準確)
net time \\192.168.1.100
REM 假設回傳:Current time at \\192.168.1.100 is 14:25:00
REM 5. 在目標建立一次性排程任務 (3 分鐘後執行)
at \\192.168.1.100 14:28 Z:\reboot.bat
REM 6. 驗證任務已建立
at \\192.168.1.100
REM 7. 等待重啟完成,清理痕跡
net use Z: /delete
net use \\192.168.1.100\IPC$ /delete
NT 4.0 無 shutdown.exe、iisreset 不支援 /reboot 參數,需自製 reboot.exe 放至目標 C:\。
#include
#include
int main() {
LPSTR msg = "Remote Reboot Tool\nAuthor: Admin";
// 嘗試標準 API 重啟
if (ExitWindowsEx(EWX_REBOOT, 0)) return 0;
if (ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0)) return 0;
// 提升權限取得 SE_SHUTDOWN_NAME
HANDLE hToken;
TOKEN_PRIVILEGES tkp = {0};
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) return 1;
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, 0);
// 判斷 NT 核心 vs 9x 核心
if (!(GetVersion() & 0x80000000)) { // NT Kernel
InitiateSystemShutdown(NULL, msg, 20, TRUE, TRUE);
} else { // 9x Kernel
ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0);
}
return 0;
}
cl reboot.cpp /link /subsystem:console user32.lib advapi32.lib
# 產生 reboot.exe,複製至目標 Z:\reboot.exe
# 修改步驟 3 批次檔內容:
echo Z:\reboot.exe > Z:\reboot.bat
| 工具/協定 | 優點 | 需求 |
|---|---|---|
| PowerShell Remoting (WinRM) | 加密傳輸、Kerberos/憑證認證、物件導向、管線支援 | 目標啟用 WinRM (Enable-PSRemoting)、防火牆 5985/5986 |
| WMI (WMIC / Get-WmiObject) | 無需額外服務、DCOM/RPC 通道、查詢/執行靈活 | RPC 動態連接埠、DCOM 權限 |
| SSH (OpenSSH Server) | 跨平台、金鑰認證、標準化、審計完整 | Windows 10 1809+/Server 2019+ 內建 |
| SCCM/Intune/MDM | 企業級管理、合規、報表、分階段部署 | 基礎設施投入 |
| IPMI/iDRAC/iLO/AMT | 帶外管理、硬體級電源控制、OS 無關 | 伺服器硬體支援、專用管理網路 |
AutoShareServer=0 (註冊表) 禁用 C$/ADMIN$ 自動共享,或使用 net share C$ /delete (重開機失效)。Microsoft network server: Digitally sign communications (always) = Enabled。法律警示: 未經授權存取他人電腦系統 (含透過 IPC$ 建立會話、遠端重啟) 可能觸犯《刑法》妨害電腦使用罪、資安法等相關法規。本文僅供授權運維、滲透測試 (持有書面授權)、教學研究使用。