Windows 內建大量網路指令,分為檢測(ping/tracert)、連線(telnet/ftp)、配置(netsh/route/ipsec)三類。本文聚焦 Netsh 與 IPsec 兩大配置利器,並提供 WMI 腳本自動化範例,打造純命令列的網路偵測與防護工具箱。
原理:cscript //nologo script.vbs 執行內嵌 VBScript,無視窗干擾,自動清理暫存檔。
| 功能 | 指令區塊(複製存為 .bat 即用) |
|---|---|
| 顯示系統版本 | @echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts://./root/cimv2:win32_operatingsystem").instances_ >>ps.vbs
@echo wscript.echo ps.caption^&" "^&ps.version:next >>ps.vbs
cscript //nologo ps.vbs & del ps.vbs |
| 列舉進程 | @echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts://./root/cimv2:win32_process").instances_ >>ps.vbs
@echo wscript.echo ps.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next >>ps.vbs
cscript //nologo ps.vbs & del ps.vbs |
| 終止進程 (PID) | @echo for each ps in getobject _ >pk.vbs
@echo ("winmgmts://./root/cimv2:win32_process").instances_ >>pk.vbs
@echo if ps.handle=wscript.arguments(0) then wscript.echo ps.terminate:end if:next >>pk.vbs
cscript pk.vbs 123 & del pk.vbs |
| 重啟系統 | @echo for each os in getobject _ >rb.vbs
@echo ("winmgmts:{(shutdown)}!//./root/cimv2:win32_operatingsystem").instances_ >>rb.vbs
@echo os.win32shutdown(2):next >>rb.vbs & cscript //nologo rb.vbs & del rb.vbs |
| 列舉自啟動服務 | @echo for each sc in getobject("winmgmts://./root/cimv2:win32_service").instances_ >sc.vbs
@echo if sc.startmode="Auto" then wscript.echo sc.name^&" - "^&sc.pathname >>sc.vbs
@echo next >>sc.vbs & cscript //nologo sc.vbs & del sc.vbs |
| 列舉執行中服務 | @echo for each sc in getobject("winmgmts://./root/cimv2:win32_service").instances_ >sc.vbs
@echo if sc.state="Running" then wscript.echo sc.name^&" - "^&sc.pathname >>sc.vbs
@echo next >>sc.vbs & cscript //nologo sc.vbs & del sc.vbs |
| 最後開機時間 | @echo for each os in getobject _ >bt.vbs
@echo ("winmgmts://./root/cimv2:win32_operatingsystem").instances_ >>bt.vbs
@echo wscript.echo os.lastbootuptime:next >>bt.vbs & cscript //nologo bt.vbs & del bt.vbs |
遠端 Shell 無法互動式輸入,Netsh 支援腳本模式 netsh -f script.txt 完美解決。
| 查詢項目 | 腳本內容 (存為 s.txt → netsh -f s.txt) |
|---|---|
| TCP/IP 完整配置 | interface ip show config |
| ARP 表(比 arp -a 更詳細) | interface ip show ipnet |
| TCP/UDP 連線(等同 netstat -an) | interface ip show tcpconn show udpconn |
| 網卡詳細資訊(無替代指令) | interface ip show interface |
XP 用 ipseccmd(安裝碟 SUPPORT\TOOLS\SUPPORT.CAB),Win2000 用 ipsecpol(需 ipsecutil.dll, text2pol.dll)。語法幾乎相同,以 ipsecpol 為例:
# 1. 防禦 RPC/DCOM 攻擊:封鎖 135,137,138,139,445 (TCP/UDP)
ipsecpol -p myfirewall -r rpc-dcom -f *+0:135:tcp *+0:135:udp *+0:137:udp *+0:138:udp *+0:139:tcp *+0:445:tcp *+0:445:udp -n BLOCK -w reg -x
# 2. 防止被 Ping(同時也無法 Ping 別人)
ipsecpol -p myfirewall -r antiping -f *+0::icmp -n BLOCK -w reg -x
# 3. 後門連接埠 (6129) 僅允許特定 IP 存取
ipsecpol -p myfw -r dwmrc_block_all -f *+0:6129:tcp -n BLOCK -w reg
ipsecpol -p myfw -r dwmrc_pass_me -f 123.45.67.89+0:6129:tcp -n PASS -w reg -x
# 動態 IP 用網段:123.45.67.*+0:6129:tcp
參數解析: -p 策略名、-r 規則名、-f 篩選器(*=任何來源、0=本機、+=雙向)、-n BLOCK/PASS 動作、-w reg 寫入註冊表持久化、-x 立即啟用。
# 建立 5 分鐘後自動停用策略的計劃任務(留後路)
net start schedule
at 12:39 ipsecpol -p myfw -y -w reg
# 5 分鐘內測試,失敗則自動回滾;成功則手動啟用
ipsecpol -p myfw -x -w reg
ipseccmd show filtersnetdiag /debug /test:ipsec(需啟動 RemoteRegistry 服務)原理:複製檔案 + 註冊表寫入服務。用 .inf + rundll32 setupapi,InstallHinfSection 實現驅動安裝,打包成自解壓執行檔。系統補丁則用 KBxxxxxx.exe -n -z -q 靜默安裝,批次腳本遍歷安裝。
掌握 Netsh、IPsec、WMI 腳本,你擁有的不只是指令,而是「無介面、可自動化、可遠端部署」的網路防護核武庫。