zoukankan      html  css  js  c++  java
  • window下的计划任务

    0x00前言:

    这几天看了看信息安全就业的面试题,其中有一条是计划任务如何设置,好几个月前稍微接触了,但是很久没用差不多都忘了>_<,这里就稍微学习下windows的计划任务

    写着写着就偏离了正题,稍微有点像自己的练习记录了,其中除了计划任务也穿插了一些msf的知识

    0x01场景设置:

    因为直接在windows是敲几个命令太无聊了,于是这里我用msf模块的永恒之蓝漏洞进行远程操作

    kali攻击机ip:10.10.10.128

    win7目标机ip:10.10.10.129

    首先加载模块

    然后选下payload,设置下,双方的ip,让它跑起来,就拿到shell了,永恒之蓝还是system权限

    然后呢,戏要演得像真的一样

    #查进程号
    getpid               
    #转移session到正常的pid中,这里到lsass.exe migrate 532             
    #查看下当前账号明文密码 load mimikatz
    wdigest

    0x02定时任务at命令

    at命令是比较简单的一个命令,但是后面不常用了

    使用必须是administrator权限,并且win8之后没有这个命令了

    at time cmd
    at 18:14 calc.exe

    在msf中先连接shell

    shell
    
    #定时任务在18:23启动 at
    18:23 calc.exe

    18:22的时候进程内容如上图

    18:23的时候进程如下,成功的启动了

    但是回到win7的虚拟机,并没有弹出来,用tasklist查看下进程,发现有启动的clac.exe,但是任务管理器里面没有显示

    0x03计划任务schtasks命令:

    schtasks功能丰富,应该算是windows下计划任务最主要的工具之一了

     适用环境是win7~win10都可以

    但是在win7中文版的时候会出现以下情况

    schtasks
    错误: 无法加载列资源。

    问题原因是cmd编码有问题,因为是gbk编码936,所以必须要把cmd编码改成美国的437,就能正常使用,并且不需要管理员权限就能修改

    或者改成65001,还能让中文正常显示

    但是我在我本机的win10上面就能正常执行,真奇怪233333

    OK接下来是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][/RIinterval]
    [{/ET endtime | /DU duration} [/K] [/XML xmlfile][/V1]]
    [/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F]

    看着创建计划任务这么复杂

    于是我拿出几个简单易理解的常用的介绍下,其他的读者可以自行查阅

    那么先说下必须的结构

    SCHTASKS /Create /SC schedule /TN taskname /TR taskrun /ST startime
    /Create     创建任务
    /SC xxx     指定计划频率 xxx可以为MINUTE、 HOURLY、DAILY、WEEKLY、MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT(ONCE指执行一次)
    /TN xxx     任务叫啥名字,随意
    /TR xxx 是要启动什么任务
    /ST xxx     启动的时间(上面表说是可选项但是要/SC ONCE前提下,但是我在win7和win10都报错提示要加/ST)

     在win7本地调试可以弹出记事本

    schtasks /CREATE /SC ONCE /ST 19:28 /TN sijidou /TR notepad.exe

    但是远程shell报错,它报是映射的问题

    因为是自己的虚拟机随便怎么搞,那这里打开3389远程桌面,看看能不能在远程桌面写

    创建个sijidou账号打开3389,虽然之前mimikatz抓到了我的管理员账号,但是这里先用低权限的试试

     然后失败了....自己的虚拟机这么不给面子

    没事,端口转发,把目标3389转到我们本地12345来,用rdesktop来连

    run getgui -e -f 12345

    rdesktop 127.0.0.1:1234

    之前的sijidou账号是创立成功的,只是没打开远程连接,这里用sijidou账号登录,然后不是远程用户组登不上去....

    最后用system登录上去的,system的用户我之前用mimkatz抓的,但是前提是用永恒之蓝打的时候,目标电脑是以system身份运行的

    远程桌面是可以写的,只是远程桌面比较坑的是,目标机器会突然登出,这里是我自己的虚拟机就这么瞎搞了

    20:18的时候,时间到了,记事本弹了出来

    虽然过程稍微有点曲折,这里是能够利用了,msf其实写后面有专门的模块工具,比schtasks要简单一丢丢,这里也不介绍了,大家感兴趣可以去看看这篇文章,记录了很多msf后渗透的命令使用,非常棒的感觉:https://www.cnblogs.com/backlion/p/9484949.html

     继续介绍几个参数

    /RU  username   #这个程序运行的权限的账号      对于系统帐户,有效值是 ""、"NT AUTHORITYSYSTEM" 或"SYSTEM"。
    对于 v2 任务,"NT AUTHORITYLOCALSERVICE"和"NT AUTHORITYNETWORKSERVICE"以及常见的 SID。对这三个也都可用
    /RP password   #这个程序运行的权限的账号密码

    也就是说着2个参数表示这个程序用什么账号运行,administrator那么就是管理员权限,sijidou那么就是sijidou的权限

    但是我这个sijidou账号好像很low,连个程序都没法运行?

    但是用win7,也就是我的管理员账号能够运行,但是后面在win7上用sijidou账号登录该账号是可以使用任务计划的,但是加上/RU和/RP就不行了

    再看下/RU的参数解释,没懂,以后有机会再探讨吧

    接下来是这3个参数

    /S   system        指定要连接到的远程系统。如果省略这个系统参数,默认是本地系统。
    /U   username      连接这个远程系统的可登陆账号
    /P   password      登录的账号密码

    这3个参数的用法一般是域环境下的,因为我笔记本内存不行,就没搭域环境(都是借口)

    这里/S是在同一个域中的目标机器名字,如果有/S那么/U和/P必不可少

    /U和/P意味着能够登录目标机器账号,比如域控啥都能登,如果拿本地独有账号是不能登上去的

     还有些参数大多部分都是设置程序的启动的规则,终止时间,持续时间,频率,还有结束后删除记录等,有兴趣的可以看看这里

    https://www.cnblogs.com/yumianhu/p/3710743.html

    0x04结语:

    本文的参考链接除了文中的2个链接

    关于解决中文编码问题:https://www.cnblogs.com/chenglee/p/9110963.html

    关于编码问题无法使用schtasks解决办法:https://blog.csdn.net/xiaolongtuan/article/details/8832231

    关于windows计划任务的命令介绍:https://www.secpulse.com/archives/73454.html

    这篇文章比我的有深度多了,但是还涉及操作系统,也验证了没法靠schtasks提权?

    现在功力还不组,先了解些皮毛,一步步来吧

      

     

  • 相关阅读:
    对于在git上面拉代码报"error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054"解决方法
    在vue项目中如何添加eslint
    vscode编辑如何保存时自动校准eslint规范
    css3动画
    JS中的深拷贝与浅拷贝
    JS中的防抖与节流
    金三银四求职季,前端面试题小梳理(HTML、CSS、JS)
    正则表达式元字符大整理
    常规正则表达式练习,一起来开心的掉发吧
    关于子元素的margin-top对父级容器无效
  • 原文地址:https://www.cnblogs.com/sijidou/p/10470989.html
Copyright © 2011-2022 走看看