来源:[url]http://www.chinaunix.net/[/url] 
下边说的后门是LINUX/UNIX系统的初学者没有接触这类操作系统的可能不太好理解,现在我发个简单的Win2000/XP中的自启动"后门"</FONT>自启动程序往往藏身于系统注册表、开始菜单等处,但在 WinZ000/XP中,其实还存在另一个自启动程序的藏身之所,那就是系统组策略。   在"开始"→"运行"中输入"gpedit.msc" .按回车,打开系统组策略窗口,选择"计算机配置"→"管理模板"→"系统"→"登录",双击右边的"在用户登录时运行这些程序"项,打开其属性对话框,如图 1 , 选择"已启用",再单击"显示",会弹出"显示内容"对话框,如图2,列表中显示的便是藏身于此的自启动程序。如果你也想在这里添加自启动项目,可单击"添加"在出现的"添加项目"对话框中输入可执行文件的完整路径和文件名,"确定"即可。笔者还发现,在这里添加的自启动程序具有更高的优先级,可先于其他应用程序启动,而且在注册表中也绝对看不到这些程序。如果有人在这里放置了恶意程序,那真是非常危险。  小提示:在"用户配置"→"管理模板"→"系统"→"登录"中,也存在"在用户登录时运行这些程序"项,也可进行相同的设显。唯一不同的是,在"计算机配置"中进行的设置可应用于本机的所有用户,而"用户配置"则仅对当前已登录的用户有效。通常我们在得到一个主机的控制权后,总是考虑下次如何轻易的能再次进来,而不需要每次都重复复杂的漏洞利用,也有可能系统管理员发现了漏洞及时的补上了呢。那么我们需要安装backdoor(后门),这样只要管理员没有发现被入侵或没有发现我们的后门,下次就可以非常轻松的进来了。在这我们介绍一些常用的后门。Rhosts + + 后门在unix系统里,一些Rsh、Rlogin通过基于rhosts文件的简单认证。在某个帐户的home下的rhosts文件里加上一行++,那么任何人任何机器都可以不需要密码登陆这个帐户了。校验和与时间戳 后门严格的讲,这只是一个隐藏后门的方法。我们通常用自己写的木马来代替系统原来的一些可执行文件来达到后门的效果。许多管理员通过时间戳和校验和来检查是否存在这样的木马。我们可以通过一些小 技巧来很容易的欺骗,一个简单的程序通过修改系统时钟就能使文件的时间戳和原始一样,至于校验和是用CRC,更加容易伪造了。所以系统管理员还是定期用MD5 校验和来检查文件吧。起码不可能伪造MD5的校验和。Login 后门这个是最常用的后门了,我们可以用login.c的源代码改一改,编译一下,替代原来的login,功能就是先检查我设定的密码,如果对的话,不去比较系统密码,直接进入,而对于其他用户来说和原来的login用起来感觉是一样的。而且在程序上可以不必记录utmp和wtmp,那么你用后门密码进去的时候就是隐形的了。为了防止strings命令显示出login的文本内容,从而暴露backdoor的后门密码。那么在改login.c的时候就得加密或隐藏口令了。但管理员还是可以用MD5校验和来发现这类后门。Telnetd 后门 当inetd守护程序发现有telnet连接,就交给in.telnetd处理,进入login程序。在in.telnetd处理时通常检测一些其他信息,例如终端类型是Xterm还是vt100等,我们可以修改in.telnetd在这加一个类型hole,当我们选择hole时,系统将自动给个shell,而不需要认证。Services 后门每个服务都可以被利用来当作后门,象什么finger,rsh,rexec,rlogin,ftp,inetd...。这和那些开放某个端口提供shell的后门程序没什么差别,只是隐蔽一点罢了。当然你可以修改inetd.conf加一些伪装成某个服务的程序,名字可以是uutcp...等具有伪装性的。Crontab 后门Crontab使unix系统在特定的时间内执行指定的程序。我们可以让系统在每天的特定时间运行我们的指定开放port的shell程序。当然系统管理员也会检查/usr/spool/cron/crontabs/下的文件来看有没有安排后门的存在。所以通过修改那些正常的cron程序,可以达到隐蔽的目的。Library 后门几乎所有的unix系统使用共享库文件,共享一些常用的调用。通常我们在crypt.c和_crypt.c中安置后门程序。login.c使用crypt(),如果在里头安置后门的话,在调用Crypt()时,可以跳过校验,直接给出shell.这样就是管理员用MD5检验login程序也不会发现我们的后门了。如果管理员MD5检查所有的文件,难免会发现这些问题。但我们还有一个方法,我们知道无论是什么程序,它都需要调用open()和其他的文件存取函数,如果我们能在这些上面做文章,那么当MD5执行时读取的是原来的文件,但执行的却是我们的后门程序,所以MD5看到的校验和是没有问题的。kernel 后门可装载内核后门是最难发现而且难度最高的了。具体的描述可以参看w00w00著名的Linux Kernel Module (LKM) Hacking。 [url]http://www.w00w00.org/files/articles/lkmhack.txt[/url]" system 后门我们通常为了隐藏一些自己的后门程序、exploit程序、工具等文件,一般是采用.目录的隐藏方式。但很容易被发现,所以修改一些象ls、du、fsck等程序达到隐藏的目的要更好一些。如果更狠一点,就可以把文件放在磁盘的块标志成坏的,并且采用特殊的文件系统格式,只有特定的程序才能读出,这样也可以达到很好的隐藏效果。Bootblock 后门在PC中病毒有一种类型叫引导型病毒,通过修改引导区程序来达到隐藏和执行的目的。当然有许多杀毒程序也能查杀这些病毒。但在unix中,很少有管理员会使用软件来检查引导区,所以把后门放到引导区也是一个很有用的方法。进程隐藏 后门为了不让管理员用ps发现我们后门程序运行的进程一般有几种方法:1、通过修改argv[]来使程序看起来象另一个进程。2、改名成和系统进程类似的名字。3、修改ps,使ps看不见。4、利用amodload之类的程序,内核加入可装载模块来实现后门。Rootkit由许多工具构成的后门工具集。有一些这样的模块构成:修改系统日志 utmp wtmp lastlog。sniffer,passcracker。欺骗时间戳和crc校验。修改login修改 ifconfig 的 PROMISC标志的输出。使检测不到分乱模式。修改ps使发现不了进程。隐藏使用的磁盘空间。隐藏所有的rootkit文件。TCP Shell 后门最常见的后门了,一个程序listen端口,连接后给出shell.容易被发现,netstat一看就知道了。UDP Shell 后门基于udp传输的后门,原理tcp shell后门差不多。ICMP Shell 后门通过ICMP协议建立pipe来实现通讯的后门。 在社区公告栏收集的旧帖子里就有一个很好的例子。ACK Shell后门通过TCP中ACK数据片来进行通讯的后门。这个比较有意思,能避过许多防火墙,天网也不例外。好了,就写这么多吧,关于每个后门的实现,以后再详细的找几个程序刨析了

















本文转自loveme2351CTO博客,原文链接: http://blog.51cto.com/loveme23/8606  ,如需转载请自行联系原作者