0x01 前言
在滲透測試中,尤其是域滲透,常常會用到Windows系統的計划任務,一是用於遠程啟動程序,二是用於程序的自啟動
那么,計划任務具體有哪些使用技巧呢?是否對權限有要求?一定需要管理員權限才能運行嗎?
官方說明文檔:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa446802(v=vs.85).aspx
需要開啟服務Task Scheduler
可在以下情況觸發:
When a specific system event occurs.
At a specific time.
At a specific time on a daily schedule.
At a specific time on a weekly schedule.
At a specific time on a monthly schedule.
At a specific time on a monthly day-of-week schedule.
When the computer enters an idle state.
When the task is registered.
When the system is booted.
When a user logs on.
計划任務創建后,會在C:\Windows\System32\Tasks保存XML格式的配置文件
例如我創建了一個名為test的定時任務,此目錄下會生成相應的XML配置文件
0x02 計划任務的配置方式
1、界面操作
執行taskschd.msc,如下圖
選中任務計划程序,右鍵 -> 創建任務
彈出界面,逐個配置即可,如下圖
2、命令行配置
(1) at 命令
At 運行時間 運行程序
(管理員權限)
eg:
at 23:53 notepad.exe
默認以system權限啟動,適用於Win7
從Win8開始不再支持at命令,所以不過多介紹
(2) schtasks命令
支持Win7-Win10
- 每天固定時間,以普通權限啟動notepad.exe
命令如下:
schtasks /Create /TN TestService1 /SC DAILY /ST 01:02 /TR notepad.exe
C:\Windows\System32\Tasks產生新文件TestServ
值得注意的是<RunLevel>LeastPrivilege</RunLevel>,代表權限為普通用戶
2.每天固定時間,以system權限啟動notepad.exe
命令如下(管理員權限):
schtasks /Create /TN TestService2 /SC DAILY /ST 01:02 /TR notepad.exe /RL HIGHEST
C:\Windows\System32\Tasks產生新文件TestService2,內容如下:
值得注意的是<RunLevel>HighestAvailable</RunLevel>,代表權限為最高,一般為System權限
3.每天固定時間,以system權限啟動notepad.exe,通過導入xml文件的方式
以文件TestService2作為模板,修改啟動時間,保存為1.xml,內容如下:
通過xml文件導入配置,建立計划任務,以system權限啟動,命令如下(管理員權限):
schtasks /create /xml c:\test\1.xml /tn TestService3
注:
如果是一個新的系統,修改<Author>、<Date>、<StartBoundary>、<UserId>和<Command>即可
4.每天固定時間,以普通權限啟動notepad.exe,通過導入xml文件的方式
修改1.xml: <RunLevel>HighestAvailable</RunLevel>改為<RunLevel>LeastPrivilege</RunLevel>即可 導入配置的命令如下: schtasks /create /xml c:\test\1.xml /tn TestService4
補充:schtasks的其他命令用法
查看服務狀態: schtasks /Query /TN TestService1 刪除服務: schtasks /Delete /TN TestService1 /F 注: 服務執行成功后不會自動刪除