Do All in Cmd Shell一切在命令行下完成第4/6頁(yè)
更新時(shí)間:2008年06月14日 19:11:23 作者:
Cmd Shell(命令行交互)是黑客永恒的話題,它歷史悠久并且長(zhǎng)盛不衰。本文旨在介紹和總結(jié)一些在命令行下控制Windows系統(tǒng)的方法。這些方法都是盡可能地利用系統(tǒng)自帶的工具實(shí)現(xiàn)的。
最后說說組策略。組策略是建立Windows安全環(huán)境的重要手段,尤其是在Windows域環(huán)境下。一個(gè)出色的系統(tǒng)管理員,應(yīng)該能熟練地掌握并應(yīng)用組策略。在窗口界面下訪問組策略用gpedit.msc,命令行下用secedit.exe。
先看secedit命令語(yǔ)法:
secedit /analyze
secedit /configure
secedit /export
secedit /validate
secedit /refreshpolicy
5個(gè)命令的功能分別是分析組策略、配置組策略、導(dǎo)出組策略、驗(yàn)證模板語(yǔ)法和更新組策略。其中secedit /refreshpolicy 在XP/2003下被gpupdate代替。這些命令具體的語(yǔ)法自己在命令行下查看就知道了。
與訪問注冊(cè)表只需reg文件不同的是,訪問組策略除了要有個(gè)模板文件(還是inf),還需要一個(gè)安全數(shù)據(jù)庫(kù)文件(sdb)。要修改組策略,必須先將模板導(dǎo)入安全數(shù)據(jù)庫(kù),再通過應(yīng)用安全數(shù)據(jù)庫(kù)來刷新組策略。來看個(gè)例子:
假設(shè)我要將密碼長(zhǎng)度最小值設(shè)置為6,并啟用"密碼必須符合復(fù)雜性要求",那么先寫這么一個(gè)模板:
[version]
signature="$CHICAGO$"
[System Access]
MinimumPasswordLength = 6
PasswordComplexity = 1
保存為gp.inf,然后導(dǎo)入:
secedit /configure /db gp.sdb /cfg gp.inf /quiet
這個(gè)命令執(zhí)行完成后,將在當(dāng)前目錄產(chǎn)生一個(gè)gp.sdb,它是"中間產(chǎn)品",你可以刪除它。
/quiet參數(shù)表示"安靜模式",不產(chǎn)生日志。但根據(jù)我的試驗(yàn),在2000sp4下該參數(shù)似乎不起作用,XP下正常。日志總是保存在%windir%\security\logs\scesrv.log。你也可以自己指定日志以便隨后刪除它。比如:
secedit /configure /db gp.sdb /cfg gp.inf /log gp.log
del gp.*
另外,在導(dǎo)入模板前,還可以先分析語(yǔ)法是否正確:
secedit /validate gp.inf
那么,如何知道具體的語(yǔ)法呢?當(dāng)然到MSDN里找啦。也有偷懶的辦法,因?yàn)橄到y(tǒng)自帶了一些安全模板,在%windir%\security\templates目錄下。打開這些模板,基本上包含了常用的安全設(shè)置語(yǔ)法,一看就懂。
再舉個(gè)例子——關(guān)閉所有的"審核策略"。(它所審核的事件將記錄在事件查看器的"安全性"里)。
echo版:
echo [version] >1.inf
echo signature="$CHICAGO$" >>1.inf
echo [Event Audit] >>1.inf
echo AuditSystemEvents=0 >>1.inf
echo AuditObjectAccess=0 >>1.inf
echo AuditPrivilegeUse=0 >>1.inf
echo AuditPolicyChange=0 >>1.inf
echo AuditAccountManage=0 >>1.inf
echo AuditProcessTracking=0 >>1.inf
echo AuditDSAccess=0 >>1.inf
echo AuditAccountLogon=0 >>1.inf
echo AuditLogonEvents=0 >>1.inf
secedit /configure /db 1.sdb /cfg 1.inf /log 1.log /quiet
del 1.*
也許有人會(huì)說:組策略不是保存在注冊(cè)表中嗎,為什么不直接修改注冊(cè)表?因?yàn)椴皇撬械慕M策略都保存在注冊(cè)表中。比如"審核策略"就不是。你可以用regsnap比較修改該策略前后注冊(cè)表的變化。我測(cè)試的結(jié)果是什么都沒有改變。只有"管理模板"這一部分是完全基于注冊(cè)表的。而且,知道了具體位置,用哪個(gè)方法都不復(fù)雜。
比如,XP和2003的"本地策略"-》"安全選項(xiàng)"增加了一個(gè)"本地帳戶的共享和安全模式"策略。XP下默認(rèn)的設(shè)置是"僅來賓"。這就是為什么用管理員帳號(hào)連接XP的ipc$仍然只有Guest權(quán)限的原因。可以通過導(dǎo)入reg文件修改它為"經(jīng)典":
echo Windows Registry Editor Version 5.00 >1.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] >>1.reg
echo "forceguest"=dword:00000000 >>1.reg
regedit /s 1.reg
del 1.reg
而相應(yīng)的用inf,應(yīng)該是:
echo [version] >1.inf
echo signature="$CHICAGO$" >>1.inf
echo [Registry Values] >>1.inf
echo MACHINE\System\CurrentControlSet\Control\Lsa\ForceGuest=4,0 >>1.inf
secedit /configure /db 1.sdb /cfg 1.inf /log 1.log
del 1.*
關(guān)于命令行下讀取組策略的問題。
系統(tǒng)默認(rèn)的安全數(shù)據(jù)庫(kù)位于%windir%\security\database\secedit.sdb,將它導(dǎo)出至inf文件:
secedit /export /cfg gp.inf /log 1.log
沒有用/db參數(shù)指定數(shù)據(jù)庫(kù)就是采用默認(rèn)的。然后查看gp.inf。
不過,這樣得到的只是組策略的一部分(即"Windows設(shè)置")。而且,某個(gè)策略如果未配置,是不會(huì)被導(dǎo)出的。比如"重命名系統(tǒng)管理員帳戶",只有被定義了才會(huì)在inf文件中出現(xiàn)NewAdministratorName="xxx"。對(duì)于無法導(dǎo)出的其他的組策略只有通過訪問注冊(cè)表來獲得了。
此辦法在XP和2003下無效——可以導(dǎo)出但內(nèi)容基本是空的。原因不明。根據(jù)官方的資料,XP和2003顯示組策略用RSoP(組策略結(jié)果集)。相應(yīng)的命令行工具是gpresult。但是,它獲得的是在系統(tǒng)啟動(dòng)時(shí)被附加(來自域)的組策略,單機(jī)測(cè)試結(jié)果還是"空"。所以,如果想知道某些組策略是否被設(shè)置,只有先寫一個(gè)inf,再用secedit /analyze,然后查看日志了。
您可能感興趣的文章:
- 在Shell命令行處理JSON數(shù)據(jù)的方法
- shell學(xué)習(xí)教程獲取命令行參數(shù)示例
- 神奇的shell命令行輸入與輸出功能介紹
- Linux命令行和shell腳本編程寶典 Richard Blum
- PHP 命令行工具 shell_exec, exec, passthru, system詳細(xì)使用介紹
- 命令行下一種新的添加帳號(hào)的方法(Shell.Users)
- 利用WScript.Shell對(duì)象隱藏cmd命令行運(yùn)行框的實(shí)現(xiàn)代碼
- 關(guān)閉網(wǎng)站的wscript.shell命令行執(zhí)行
- 利用shell編程實(shí)現(xiàn)DOS風(fēng)格的Linux命令行
- shell獲取命令行參數(shù)示例分享
相關(guān)文章
批處理實(shí)現(xiàn)的結(jié)束進(jìn)程并刪除文件的代碼
批處理實(shí)現(xiàn)的結(jié)束進(jìn)程并刪除文件的代碼,挺有創(chuàng)意的,需要的朋友可以參考下。2009-12-12Attrib 顯示、設(shè)置或刪除指派給文件或目錄的只讀、存檔、系統(tǒng)以及隱藏屬性
Attrib 顯示、設(shè)置或刪除指派給文件或目錄的只讀、存檔、系統(tǒng)以及隱藏屬性...2007-09-09批處理 實(shí)現(xiàn)定時(shí)關(guān)機(jī)、注銷、重啟、鎖定等功能
一個(gè)可以實(shí)現(xiàn)電腦定時(shí)關(guān)機(jī)、注銷、重啟、鎖定等功能的腳本代碼,打擊可以看下好多功能是利用了系統(tǒng)的一些命令。大家可以自由的擴(kuò)展。2009-07-07使用shutdown命令實(shí)現(xiàn)遠(yuǎn)程關(guān)機(jī)和重啟
這篇文章主要介紹了使用shutdown命令實(shí)現(xiàn)遠(yuǎn)程關(guān)機(jī)和重啟,需要的朋友可以參考下2015-09-09sqlserver數(shù)據(jù)庫(kù)服務(wù)啟動(dòng)關(guān)閉的批處理
用批處理實(shí)現(xiàn)sqlserver服務(wù)的開啟與關(guān)閉,下面的代碼,如果您的sqlserver運(yùn)行的服務(wù)較多的情況下,是不能實(shí)現(xiàn),需要加更多的代碼。2011-03-03dos利用wget.exe讓殺毒軟件升級(jí)更自動(dòng)化
dos利用wget.exe讓殺毒軟件升級(jí)更自動(dòng)化...2007-03-03