在上一篇關(guān)于數(shù)據(jù)庫備份操作的文章中,簡單帶入了PowerShell腳本及命令操作,以及兩個Windows命令行程序:net和robocopy。 很顯然,會寫腳本,無論是傳統(tǒng)的批處理抑或現(xiàn)代的PowerShell,都是網(wǎng)管運維水平的分水嶺,尤其是在網(wǎng)絡(luò)安全運維領(lǐng)域,這分水嶺就越發(fā)顯得差距巨大。 如果想全面了解Windows操作系統(tǒng)提供的命令行工具,可以在這個地址找到完整的命令清單:
本文中介紹的命令都可以在這個清單中找到相應(yīng)的入口。 在筆者的認識中,這么多命令,具體到網(wǎng)絡(luò)安全運維上,作為一名網(wǎng)管應(yīng)該掌握的主要且關(guān)鍵的Windows命令行程序應(yīng)包括下面這些: 一、基礎(chǔ)操作命令 (覺得基礎(chǔ)命令無聊的可以直接跳過,看第二部分) 1、ping和pathping 熟悉得不需要介紹,只是為歸類而提及。但是需要注意隨著Windows操作系統(tǒng)版本變化,ping命令也在不斷加強。比如最新版本的ping支持源路由,支持IPV6等等。 pathping知道的人相對較少,該命令提供有關(guān)源和目標之間的中間躍點的網(wǎng)絡(luò)延遲和網(wǎng)絡(luò)丟失的信息,執(zhí)行時能返回PING測試過程中路由上每個節(jié)點的RTT、發(fā)起PING的設(shè)備到每一個路由節(jié)點的丟包率。 通過pathping給出的路由器或鏈路的數(shù)據(jù)包丟失程度,可以確定哪些路由器或子網(wǎng)可能有網(wǎng)絡(luò)問題。 2、tracert tracert,也是已經(jīng)相當(dāng)熟悉的路由節(jié)點分析命令。它和pathping是相似的,但pathping在碰到路由節(jié)點不響應(yīng)icmp包時就會自動中斷,而tracert則會按最大躍點數(shù)量進行嘗試找到路由的最終節(jié)點。 3、ipconfig ipconfig,也是作為網(wǎng)管不可能不知道的命令。除了顯示網(wǎng)絡(luò)接口信息之外,還支持dhcp和dns相關(guān)操作。在網(wǎng)絡(luò)安全運維上最大的作用在于在腳本中獲得網(wǎng)絡(luò)接口信息作進一步處理使用。 4、route 操作路由表,從這個命令開始,不少網(wǎng)管員就開始轉(zhuǎn)向使用Microsoft管理控制臺(MMC)或者某些單機網(wǎng)管軟件了。但類似route命令這樣Windows操作系統(tǒng)內(nèi)建的命令的優(yōu)勢,就是在于可以把操作記錄到命令腳本,實現(xiàn)自動化運維。route命令的主要用途一般在于操作本機的靜態(tài)(永久)路由。 5、netstat netstat除了用于觀察端口開放狀態(tài)和對外鏈接情況外,在網(wǎng)絡(luò)安全運維中的關(guān)鍵意義最重要在于找出端口被哪個進程占用,具體命令形式是: netstat -ano 得到和端口對應(yīng)的進程ID清單后,可以通過進程管理命令tasklist檢索進程名稱,或者通過taskkill殺掉進程。 另外,通過netstat列出與本地端口連接的遠端地址和端口,有經(jīng)驗的網(wǎng)管可以從這些連接信息中判斷是否存在可能的惡意情況。 6、cipher cipher比較小眾,使用的場合并不多。該命令主要用途包括加密、解密和復(fù)寫擦除數(shù)據(jù),但需要注意只適用于NTFS文件系統(tǒng)分區(qū)的文件。 作為網(wǎng)絡(luò)安全運維管理員來說,需要明確的是cipher進行的是文件一級的加解密(Encrypting File System,EFS)和數(shù)據(jù)擦除,這和BitLocker這種對整個分區(qū)進行的加解密工具是不同的概念。具體可以參考:
一般來說,如果已經(jīng)對硬盤進行了BitLocker加密,那么除非有足夠的理由,比如計算機是多人公用的計算機,否則就沒必要再對文件應(yīng)用EFS加密。 值得注意的是加解密之外的用法,比如擦除硬盤分區(qū)上的空閑空間,可以給出如下的參數(shù)去使用cipher,該命令不會覆蓋已存在的文件:
二、復(fù)雜操作命令 實在不好定義,姑且叫“復(fù)雜操作”。這類命令通常通過大量的參數(shù)去靈活使用,實現(xiàn)多種類別的操作系統(tǒng)管理配置操作能集中在一個命令行程序內(nèi)完成。普遍需要給出多級命令參數(shù),個別還提供了交互式操作控制臺。 很多網(wǎng)管員都是通過Windows的各種圖形界面功能去實現(xiàn)這些配置工作,但通過掌握這些命令,不僅工作效率能得到提升,而且通過腳本實現(xiàn)運維自動化,更能釋放自己。 1、tasklist和taskkill 這兩個進程管理的命令,使用起來介乎于基本和復(fù)雜之間。tasklist列出當(dāng)前運行中的進程,taskkill則是殺掉進程。大多數(shù)網(wǎng)管員會習(xí)慣于通過任務(wù)管理器界面去操作進程,但如果需要在腳本中進行這些操作,那就必須使用這兩個命令。 在網(wǎng)絡(luò)安全運維方面值得指出的是,一些特殊的木馬程序,會針對任務(wù)管理器在UI上做手腳來隱藏自己。但tasklist可以更直接地列出全部進程,這些木馬就不容易隱藏自己。 tasklist有比較多的參數(shù),其中一個比較有用的參數(shù)是: tasklist -svc 這個參數(shù)可以列出和每個進程相關(guān)的服務(wù),這在查找隱藏服務(wù)時很有效。 由于輸出內(nèi)容會包括沒有服務(wù)的進程,所以一般通過管道操作把輸出重定向到find命令進行過濾,比如
又如需要給出進程關(guān)聯(lián)的DLL文件時,可以使用 tasklist /m 這功能會列出每個進程所調(diào)用的DLL文件。 tasklist命令本身提供了篩選器參數(shù),可以按進程狀態(tài)、名稱、PID、SESSION等進程信息進行篩選過濾。這就是我前面說的這兩個命令具有一定復(fù)雜性的特征。 如果要殺掉進程,最簡單的操作是通過:
注意taskkill支持批量殺進程操作,既可以通過一次給出多個PID參數(shù)的方式,也可以通過篩選器參數(shù)實現(xiàn)對進程的條件篩選,把符合篩選條件的進程一次全部殺掉。 必須指出的是這兩個命令還可以操作遠程計算機。 2、robocopy robocopy在我們上一篇文章 《MSSQL數(shù)據(jù)庫自動備份和自動復(fù)制轉(zhuǎn)移備份》中起到關(guān)鍵作用。這個文件復(fù)制命令的功能其實遠遠不是那么簡單,網(wǎng)絡(luò)上也有大量的參考介紹,比如:
另外,由于robocopy的參數(shù)是如此之多,為了方便使用,不少人開發(fā)了一些圖形界面的外殼工具去調(diào)用robocopy,比如: RoboCop RoboCopy:
RoboMirror:
ChoEazyCopy:
RoboCopyGUI:
還有好幾個。但GUI工具并不是這里要介紹的,而且大部分GUI工具并沒有完整實現(xiàn)robocopy的全部功能。但為了充分學(xué)習(xí)了解robocopy的使用方法,從GUI操作界面開始入手,觀感會來得更直接一些。 robocopy的使用重點主要在于同步備份,支持多線程同時復(fù)制的特性在合理運用時可以充分利用網(wǎng)絡(luò)帶寬或者壓榨存儲設(shè)備性能,但如果不合理使用,反而會拖慢robocopy的復(fù)制效率。 3、net net命令相當(dāng)有歷史了,可以追溯到WINDOWS 95 版本。只要看一眼NET命令的操作參數(shù),就能領(lǐng)會到NET命令的設(shè)計目標是打造成為能對操作系統(tǒng)進行全面配置和管理操作的單一命令行程序,所以net命令包括了賬號管理、用戶組管理、域計算機管理、共享文件管理、登錄會話管理、后臺服務(wù)管理、時間服務(wù)管理、用戶管理等等。 由于net命令功能多且雜,要在這里詳細介紹是不可能的。由于微軟也認為net命令過于繁雜已經(jīng)不應(yīng)該再被使用而需要重構(gòu),因此net命令在微軟網(wǎng)站上的介紹已經(jīng)基本消失,僅剩下若干片言只語,比如:
不過,在互聯(lián)網(wǎng)上還可以搜索到大量關(guān)于net命令使用方法的介紹文章,雖然有點零碎散亂,但還是能良好支撐使用net命令的,而且net命令也一直保留直到現(xiàn)在的Windows 11都還提供。下面這個鏈接文章對net命令進行了詳細的介紹,可以保存起來作為參考:
在網(wǎng)絡(luò)安全運維上,從net命令所能實現(xiàn)的操作,就可以理解到net命令對于編寫自動腳本非常有用,而且相比其它功能完整的復(fù)雜命令,高度簡化隱藏細節(jié)的net命令,反而是網(wǎng)管員實現(xiàn)有限度腳本的好幫手。 4、sc sc是用來與服務(wù)控制管理器和服務(wù)進行通信的命令行程序。sc也即Service Control的首字母縮寫。 很顯然sc的出現(xiàn)就是net start/net stop這兩個操作的深度和完整替代。因此,在自動化腳本中按需啟動和停止服務(wù),通過sc命令就可以方便地實現(xiàn)。 除了最基礎(chǔ)的啟動和停止系統(tǒng)服務(wù)之外,sc支持大量面向系統(tǒng)服務(wù)的配置操作,而且相當(dāng)多的功能在服務(wù)管理控制臺中是沒有的,比如創(chuàng)建服務(wù)、刪除服務(wù)、設(shè)置服務(wù)器的安全描述符等等。 但是微軟網(wǎng)站上也沒有足夠詳細的介紹文檔,只是介紹了config/create/delete/query四個命令參數(shù)?;蛘呶乙院髸iT寫一下sc.exe的特殊用法。 5、reg reg是注冊表編輯器的命令行版本。作為網(wǎng)絡(luò)安全運維的管理員,在掌握注冊表編輯器之余,也應(yīng)該熟悉reg命令,這樣就可以在自動化腳本中操作注冊表了。 值得一提的是reg命令也具有一些注冊表編輯器所不具備的功能,典型如:
注意restore/save操作與注冊表導(dǎo)出/導(dǎo)入注冊表文件、加載/卸載配置單元是不同的。 6、netsh netsh是功能強大的Windows網(wǎng)絡(luò)組件配置安裝的命令行工具。前述的清單中對netsh的介紹內(nèi)容太少。但好在netsh是當(dāng)前推薦使用的工具,所以在微軟網(wǎng)站上有比較詳細的文檔,比如:
以及一些舊版本W(wǎng)indows服務(wù)器的文檔都有介紹:
netsh是從Windows 2008 Server版本開始引入的,其作用是實現(xiàn)操作網(wǎng)絡(luò)配置的交互式命令行界面,這類似于企業(yè)級可網(wǎng)管的交換機、路由器之類的網(wǎng)絡(luò)設(shè)備的命令行操作。 通過netsh,可以安裝Windows操作系統(tǒng)內(nèi)的各種網(wǎng)絡(luò)通信服務(wù)器角色和組件、配置和顯示它們的狀態(tài),典型如配置網(wǎng)絡(luò)訪問保護(NAP)客戶端和動態(tài)主機配置協(xié)議(DHCP)客戶端等。 基本上,netsh命令提供了每個服務(wù)器角色或組件使用Microsoft管理控制臺(MMC)管理單元時相同的功能。 此外,netsh命令還有大量操作功能是在MMC管理控制臺中沒有提供的,比如配置IPv6、配置網(wǎng)橋、配置遠程過程調(diào)用(RPC)等。 7、auditpol 查詢和設(shè)置用戶賬戶審計策略的命令行工具。在網(wǎng)絡(luò)安全中,審計的要求和作用對于網(wǎng)絡(luò)安全運維管理員來說已經(jīng)是耳熟能詳。通過auditpol,可以實現(xiàn)和“本地安全策略”管理控制臺中的“賬戶策略”的相關(guān)設(shè)置,包括有:
auditpol命令比較方便的一個參數(shù)功能是backup,可以把系統(tǒng)審核策略設(shè)置、所有用戶的按用戶審核策略設(shè)置以及所有審核選項備份到 CSV 格式文件中。 小結(jié) Windows還有很多命令行工具,這里介紹只是我認為比較有用和常用的,好像寫了很多,又好像沒寫什么,就已經(jīng)4千字了,總之三言兩語就只能帶個入門而已。 還有一些其它的命令行工具,比如mpcmdrun.exe,可以配置和管理Microsoft Defender,都是值得關(guān)注的。
|
|
來自: 智勇閱覽室 > 《12 系統(tǒng)管理》