0

这里有很多提示(和警告)用于混淆脚本中的各种项目。我不是想隐藏密码,我只是想知道我是否可以在脚本中混淆一个实际命令来击败临时用户/grepper。背景:我们有一款软件可以帮助管理环境中的机器。这些机器归企业所有。用户有时会认为这台计算机是他们的,他们不希望“The Man”越过他们的肩膀。

我开发了一些东西来检查某个进程是否正在运行,如果没有,则克隆并替换它。同样,这样做的目的不是为了击败临时用户以外的任何人。

有人建议可以回显八进制值(“混淆”命令)并将其用作脚本中的变量。例如:

strongBad=`echo "\0150\0157\0163\0164\0156\0141\0155\0145"`

然后我可以在 shell 脚本中使用 $strongBad 来狡猾地调用我想用参数调用的命令吗?

/bin/$strongBad -doThatThingYouDo -DoEEET

有没有道理呢?到目前为止,它是通过命令行直接进入 shell 的(使用带有 echo 的 -e 标志),但在脚本中并没有那么多。我得到了意想不到的输出,也许是我使用它的方式?

作为测试,在命令行中试试这个:

strongBad=`echo -e "\0167\0150\0157"`

接着

$strongBad

您应该得到与“谁”相同的输出。

编辑

经过进一步审查,在变量中添加 echo 命令的路径正在破坏它。也许这就是我问题的根源。

4

1 回答 1

1

您可以事先对您想要隐藏的任何命令执行旋转 13,然后只需在 shell 脚本中使用经过混淆的命令即可。

这个小 bash 脚本:

#!/bin/bash

function rot13 {
   echo "$@" | tr '[a-m][n-z][A-M][N-Z]' '[n-z][a-m][N-Z][A-M]'
}


rot13 echo hello, world!

`rot13 rpub uryyb, jbeyq!`

产生:

rpub uryyb, jbeyq!
hello, world!
于 2013-09-17T19:58:05.273 回答