Windows內(nèi)部命令
2020-10-27 20:39:36
供稿:網(wǎng)友
Windows系統(tǒng)中最有用的命令行工具:包括WMIC、net、openfiles、netstat和查找命令。我將集中闡述五個比較有用的命令,并分析安全專家如何使用這些命令來幫助他們更好地工作,從而完整地列出十大命令。
與使用tasklist的程序相結(jié)合
當(dāng)沒有其它選擇,只運行tasklist命令時,它會顯示一列所有正在運行的程序,顯示這些程序的名稱、PID碼和其它統(tǒng)計信息。要獲得更多的tasklist信息,可以考慮這樣運行該命令:
C:/> tasklist /svc
這個命令可以使tasklist顯示每個進程中是哪個服務(wù)正在運行。許多Windows用戶并不理解服務(wù)與進程之間的關(guān)系,Windows系統(tǒng)中的每個服務(wù)必須在某個程序中運行,并且一些程序內(nèi)部有多個服務(wù)。因此,程序與服務(wù)之間的關(guān)系是一對多的關(guān)系,tasklist命令可以揭示這一點。
Tasklist命令的另一種有用形式是:
C:/> tasklist /m
“m”代表“模塊(modules)”,或者代表tasklist指代DLL和代碼庫的方式,代碼庫是程序在運行過程中按照主機的命令而加載的。當(dāng)用這種方法調(diào)用命令時,tasklist可以顯示當(dāng)前加載到所有運行程序中的每一個DLL。這就為用戶在特定的時間內(nèi)提供了大量的信息,這些信息是關(guān)于其計算機上正在發(fā)生的情況。雖然非常麻煩,Google搜索特定的程序和DLL,可能會帶回反病毒廠商站點中的惡意軟件描述,有了特定樣本,就可以洞察到攻擊者的動機。
高級注冊表分析的reg命令
Reg命令可以使用戶與其機器的注冊表在命令行進行交互。沒有采用麻煩的regedit GUI來操縱注冊表,安全專家可以簡單地彈出打開一個Windows命令界面,并運行reg命令,進而讀取或更新注冊表。然而,reg命令不允許注冊表的交互式瀏覽;用戶需要知道他們想要查看或改變的注冊表索引的完整路徑。但是,一旦知道了路徑,reg命令是一種進行更改的簡單方式。
如果要查看特定注冊表索引的設(shè)置,使用reg命令的“查詢”選項,具體如下所示:
C:/> reg query hklm/software/microsoft/windows/currentversion/run
這個索引控制Windows上不同的自動啟動程序,當(dāng)計算機啟動以及隨后用戶登錄到系統(tǒng)時,這些程序開始運行。許多惡意軟件樣本可以改變這個索引,來確保當(dāng)系統(tǒng)重新啟動時,惡意軟件也開始運行。
將單個索引或者整個注冊表輸出到一個文件,用于分析或者將其安裝在一個隔離的系統(tǒng)中,reg命令支持“reg輸出”功能。除了讀取和輸出注冊表設(shè)置以外,reg命令也可以進行更新。“reg add”命令將更新現(xiàn)有索引值,或者在不存在索引的情況下,創(chuàng)建一個索引。“reg import”命令可以導(dǎo)入多個注冊表索引。
使用ipconfig進行DNS分析
大多數(shù)真正的Windows用戶都熟悉ipconfig命令,它非常有用,可以顯示W(wǎng)indows中的網(wǎng)絡(luò)設(shè)置。但是,ipconfig有一個非常有用的功能,Ipconfig命令可以顯示本地Windows機器中的DNS緩沖器,如下所示:
C:/> ipconfig /displaydns
該命令的輸出可以顯示各種緩沖域名、其相關(guān)的IP地址以及DNS記錄的停留時間(以秒計)。如果用戶重復(fù)運行這個命令,他們可以看到停留時間在減少,直到記錄終止并且被放棄,或者得到更新。在研究快速通量僵尸網(wǎng)絡(luò)時,查看DNS緩沖器和停留時間(TTL)值是非常重要的,可以利用帶有小部分TTL的DNS記錄,來迫使連續(xù)更新,并使研究者寧不清楚黑客主要的后端服務(wù)器的地址。無可否認,ipconfig并不擁有諸如本文中提到的其它命令(比如tasklist和reg)那么多的功能。但是,這條命令的一個用處就非常有用。
利用FOR /L循環(huán)重復(fù)運行
有時,管理員或者安全專家想要重復(fù)運行一條命令,可能在5秒的間隔內(nèi)尋找其輸出的變化。要實現(xiàn)這一目的,他們可以采用Windows 系統(tǒng)的FOR循環(huán)。Windows支持五種不同的FOR循環(huán),它們可以遍歷文件整數(shù)、文件名、目錄名稱、文件內(nèi)容和字符串。這里的重點是這些循環(huán)的最簡化,尤其是FOR /L,由于它可以用來使命令連續(xù)運行,進而實現(xiàn)無數(shù)次遍歷。FOR /L循環(huán)的語法是:
C:/> for /L %[var] in ([start],[step],[stop]) do [command]
[var]是我們的迭代變量,一個英文字母將會在循環(huán)中的每一步顯示不同的迭代值。然后,用戶指定變量的初始值,在循環(huán)中的每一步中,數(shù)值會增加,并且其最大值會終止循環(huán)。也應(yīng)當(dāng)指定循環(huán)中每一步運行的命令。具體說來,需要考慮下面的幾點:
C:/> for /L %i in (1,1,10) do @echo %i
這個循環(huán)會使用%i作為一個變量,初始值為1。循環(huán)中的每一次迭代,%i會增加1,直至升到10。然后,在循環(huán)中,用戶可以使用echo命令,簡單地在屏幕上打印出迭代變量的值。@告訴系統(tǒng)不要打印出命令本身,這使得輸出稍微漂亮一些。用戶僅僅告訴系統(tǒng)從1計數(shù)到10。
現(xiàn)在,我們來看看如何使用這條命令來實現(xiàn)tasklist命令的連續(xù)運行:
C:/> for /L %i in (1,0,2) do @tasklist
輸入這條命令,就意味著用戶告訴計算機為變量賦值為1 ,啟動循環(huán),計數(shù)為0 ,自始至終升到2。這就會無限計數(shù),直到用戶單擊CTRL-C來終止它。用戶可以在每次迭代中簡單地運行tasklist命令。
要在迭代之間延遲幾秒,只需要添加“& ping --n 6 127.0.0.1 > nul”,在循環(huán)的每次迭代中簡單地多次ping本地主機(127.0.0.1)。如下所示:
C:/> for /L %i in (1,0,2) do @tasklist & ping --n 6 127.0.0.1 > nul
由于Windows命令行沒有內(nèi)置的睡眠功能,來等待某個特定的延遲,用戶可以使用ping,進而產(chǎn)生一個延遲。上面的命令可以ping本地主機地址六次(-n 6),引入一個五秒的延遲(第一次ping立即發(fā)生,緊接著是每秒一次ping,持續(xù)五秒)。我們正將ping煩人的輸出轉(zhuǎn)儲為nul,并使之消失。結(jié)果是一個命令可以讓tasklist每五秒運行一次,這個技術(shù)可以用于重復(fù)運行本文中提到的每條命令,用戶可以更仔細地檢查輸出。更復(fù)雜的語法甚至可以解析命令的輸出,允許產(chǎn)生專門制作的腳本,進而用于詳細的系統(tǒng)分析,但是這種語法超出了每月技巧的討論范圍。
通過命令行啟動管理GUI
雖然Windows命令行有許多功能強大的工具,但是,不論你相信與否,有時候,GUI工具可以比命令行做的更好。然而,Microsoft已經(jīng)在其GUI的某些地址中埋藏了不同的控件,記憶這些模糊的地址是一項令人混亂的任務(wù)。
幸運的是,用戶不必挖掘GUI來尋找他們想要的東西;相反,他們可以依賴命令行快捷方式。比如,不用在開始菜單中尋找并運行本地用戶管理GUI,用戶可以采用就近的命令提示和類型:
C:/> lusrmgr.msc
大量的其它GUI控件都可以采用這種方法從命令行中啟動,這樣就可以節(jié)省大量的時間。下面是我鐘愛的一些控件:
Secpol.msc:這是本地安全策略的管理者,用于在機器上配置大量的安全設(shè)置。
Services.msc:這條命令可以啟動服務(wù)的控制面板GUI。
Control:這個命令可以調(diào)出工具的整個控制面板設(shè)置。
Taskmgr.exe:該命令用于啟動任務(wù)管理器。
Explorer.exe:運行這條命令,可以采用便捷的方式調(diào)用Windows file explorer。
Eventvwr.ms:該命令可以運行此命令運行Windows事件查看器(Windows Event Viewer),有助于日志分析。
這些Windows命令行工具可以幫助管理員和安全專家更有力的掌控其Windows機器,當(dāng)受到攻擊時,可以更安全地進行配置,更詳盡地進行分析。