टास्क शेड्यूलर कैश¶
TaskCache क्या है¶
Windows Task Scheduler SOFTWARE के अंतर्गत एक registry cache रखता है जो task paths को GUIDs,
triggers/lists, principals, actions, runtime metadata और security descriptors से जोड़ता है। Juntei
execution और COM-handler actions के साथ legacy email/message actions, task timestamps, और सामान्य
Task Scheduler interface से छिपाए गए tasks के संकेत decode करता है।
Tasks एक आम persistence और remote-execution तंत्र हैं। Registry cache तब भी मूल्यवान होता है जब कोई हमलावर task की XML फ़ाइल को हटा देता है या उससे छेड़छाड़ करता है।
सर्वोत्तम निष्कर्ष: TaskCache ने task/action को configure किया या सुरक्षित रखा। किसी विशेष निष्पादन को सिद्ध करने के लिए runtime fields और स्वतंत्र logs की आवश्यकता होती है।
स्थान¶
SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache
C:\Windows\System32\Tasks\... (task XML/files; collect separately)
SOFTWARE को transaction logs के साथ और पूरा System32\Tasks tree एकत्र करें। Task Scheduler
Operational और Security event logs निर्माण/update/runtime के साक्ष्य जोड़ते हैं।
विश्लेषक के लिए सावधानियाँ¶
- छेड़छाड़, deletion, अधूरे registration या क्षति के बाद registry cache और task XML में असहमति हो सकती है।
- Juntei का
Hiddenसंरचनात्मक रूप से छिपाने (प्रासंगिक स्थितियों में लापता Tree linkage/security descriptor) की पहचान करता है, न कि केवल सामान्य “Hidden” UI flag के साथ configure किए गए task की। - Windows 7 task actions को cache की
Actionsvalue के बजाय XML में संग्रहीत करता है; वहाँ खाली action अपने-आप संदिग्ध नहीं है। LastRunऔरLastResultउपयोगी हैं, लेकिन पूर्ण, छेड़छाड़-रोधी निष्पादन इतिहास नहीं।Contextconfigure किए गए principal/context का नाम देता है, उस उपयोगकर्ता का नहीं जिसने task register किया।- COM handler CLSIDs के लिए अलग registry/file resolution आवश्यक है।
Juntei से parse करें¶
Usage: juntei parse-registry taskcache <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find SOFTWARE hives
-f, --file <FILE> Parse one SOFTWARE hive
--log1/--log2 Supply transaction logs explicitly
--no-logs Do not replay logs
Filtering:
--task <NAME> Full task path or final task name
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry taskcache -f SOFTWARE -o tasks.csv
juntei parse-registry taskcache -f SOFTWARE -t jsonl \
| jq 'select(.Hidden == true or (.Executable? | test("powershell|cmd|mshta"; "i")))'
आउटपुट fields¶
| फ़ील्ड | व्याख्या |
|---|---|
Host, SourcePath |
Host संदर्भ और स्रोत SOFTWARE hive। |
TaskName |
पूरा scheduler path। XML और event logs में प्राथमिक pivot। |
TaskGUID |
Tree और Tasks cache entries को जोड़ने वाला GUID। मज़बूत correlation key। |
TaskIndex |
Scheduler द्वारा उपयोग किया गया Tree/index metadata; संदर्भात्मक, निष्पादन count नहीं। |
TaskLists |
Cache सूचियाँ (Boot, Logon, Plain, Maintenance) जो triggering/handling को वर्गीकृत करती हैं। |
Hidden |
संरचनात्मक hidden-task संकेतक। छेड़छाड़ का निष्कर्ष निकालने से पहले InTree, InTasks और descriptor स्थिति की समीक्षा करें। |
InTree, InTasks |
क्या cache के दोनों पक्ष मौजूद हैं। लापता linkage deletion/छेड़छाड़/अधूरे registration का संकेत दे सकता है। |
HasSecurityDescriptor |
क्या Tree entry में SD है; इसकी अनुपस्थिति प्रासंगिक versions पर hidden-task व्यवहार में योगदान कर सकती है। |
TreeKeyLastWrittenUTC, TaskKeyLastWrittenUTC |
Cache के हर पक्ष के लिए key-स्तर के बदलाव; सटीक निर्माण/run समय नहीं। |
ActionIndex |
Task के भीतर zero-based action। एक task कई rows उत्पन्न कर सकता है। |
ActionType |
exec, com_handler, send_email, या show_message। |
Executable, Args, WorkingDirectory |
प्रभावी execution action। Quoting, variables, relative paths और LOLBins की व्याख्या करें। |
COM-ClassID, ActionData |
COM handler CLSID और data, या legacy email/message payload। CLSID को अलग से resolve करें। |
Context |
Actions के साथ encode किया गया principal context (LocalSystem, Author आदि); configure की गई पहचान, register करने वाला नहीं। |
Author, URI, Description |
Task metadata। आसानी से हमलावर-नियंत्रित और विश्वास का साक्ष्य नहीं। |
LastRegisteredUTC |
जहाँ मौजूद हो, DynamicInfo registration/update का समय। |
LastRunUTC, LastSuccessfulRunUTC, LastResult |
Cache किया गया runtime/result metadata। Operational logs और process साक्ष्य से correlate करें। |
ActionsRaw |
Decoding अधूरी होने या सत्यापन आवश्यक होने पर मूल action bytes। |
TransactionLogStatus, LogsApplied |
Registry recovery का संदर्भ। |
Problems |
Path/GUID mismatch, ग़लत value type, truncated action संरचना, या लापता हिस्से। |
जाँच की रणनीति¶
- पहले hidden/असंगत tasks और non-Microsoft paths की समीक्षा करें।
- Arguments, working directory, environment expansion और COM resolution सहित प्रभावी commands का पुनर्निर्माण करें।
- Registry record की तुलना task XML से करें और संदर्भित executable का hash/timestamp लें।
TaskName/GUID/समय को Task Scheduler events, Security 4698/4702, process logs, Prefetch और MFT/USN से correlate करें।- जब हमलावर ने task हटा दिया हो, तो हटाए गए/recover किए गए registry data में खोजें।