怎么查找后门:后门查找初步来源: 发布时间:星期六, 2009年9月12日 浏览:30次 评论:0
来自:www.linuxforum.net
1. 帐号后门 检查/etc/passwd、/etc/shadow文件中如下帐号是否已经拥有合法登录shell、登录口令 bin、daemon、adm、lp、sync、shutdown、halt、mail、 ![]() gopher、ftp、nobody、xfs、named、gdm、sys、nuucp、listen /etc/passwd文件格式如下 username : password : uid : gid : comment : home_directory : shell 建议对/etc/passwd、/etc/shadow文件做备份 ![]() ![]() 比 ![]() ![]() 2. $HOME/.rhosts后门 趁系统干净 ![]() ![]() ![]() 是否增加了这类文件以及原有文件内容是否改变 3. binary木马后门 2进制木马后门是将系统 2进制可执行文件替换成特洛伊(trojan)木马文件来达到放置后 门 ![]() ![]() ![]() ![]() ![]() 文件中植入代码 ![]() 对这类后门检测 ![]() ![]() ![]() 具作了时间戳和校验和记录 ![]() ![]() 间戳 ![]() ![]() ![]() ![]() ![]() 细作进 ![]() ![]() 对于网络应用 ![]() ![]() ![]() ![]() 看有无异常端口被打开 ![]() ![]() 作进 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 要 ![]() ![]() ![]() 对于这类后门 ![]() ![]() ![]() in.ftpd、in.telnetd、in.rshd、in.rlogind、in.rexecd、in.talkd、in.tnamed、 in.uucpd、in.tftpd、in.fingerd、sadmind、rquotad、rpc.rusersd、rpc.sprayd、 rpc.rwalld、rpc.rstatd、rpc.rexd、rpc.ttdbserverd、rpc.cmsd、kcms_server、ufsd、 fs.auto、cachefsd、kerbd、in.lpd、gssd、dtspcd、in.comsat /etc/init.d目录中启动脚本 ![]() ![]() ![]() ANNOUNCE MOUNTFSYS PRESERVE RMTMPFILES ab2mgr afbinit audit autofs auto ![]() cachefs.daemon cachefs.root cacheos cacheos.finish cron devlinks drvconfig dtlogin inetinit inetsvc init.dmi init.snmpdx initpcmcia keymap lp mkdtab nfs.client nfs.server nscd pcmcia power rootusr rpc savecore sendmail spc standardmounts sy ![]() syslog ufs_quota utmpd volmgt xntpd 除了上面所列 ![]() ![]() 1) login后门 如果" ![]() ![]() ![]() 2) ls、dir、vdir后门 ls、dir、vdir后门 ![]() ![]() 有代码中不支持这个选项) ![]() ![]() 检查/dev目录 ![]() ![]() ![]() -rw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyr 而不是 crw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyr 或 brw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/*** 如果有 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 3) du后门 du后门同样是用来隐藏文件和目录 ![]() ![]() 代码中没有这个选项) ![]() ![]() ![]() "/dev/ptyr"的类 ![]() ![]() -rw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyr 而不是 crw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyr 或 brw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/*** 如果有 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 4) ![]() ![]() ![]() ![]() ![]() 以去掉网卡混杂模式显示 ![]() ![]() ![]() ![]() ![]() ![]() 5) netstat后门 检查/dev目录 ![]() ![]() ![]() ![]() -rw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyq 而不是 crw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyq 或 brw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/*** 如果有 ![]() ![]() ![]() 中netstat接受"-/"选项(原有代码中没有这个选项) ![]() ![]() ![]() 如果 ![]() ![]() ![]() 路径或文件名 ![]() ![]() netstat木马 ![]() ![]() ![]() ![]() ![]() ![]() 因此如果发现netstat不支持"-p"选项 ![]() ![]() ![]() ![]() 选项表示打印出进程号(pid)和 ![]() ![]() 印出ARP Cache信息 ![]() ![]() ![]() ![]() 6) ps后门 检查/dev目录 ![]() ![]() ![]() -rw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyp 而不是 crw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyp 或 brw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/*** 如果有 ![]() ![]() ![]() 选项(原有代码中没有这个选项) ![]() ![]() ![]() ![]() ![]() ![]() 明已经被植入木马 ![]() 7) top后门 检查/dev目录 ![]() ![]() ![]() -rw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyp 而不是 crw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyp 或 brw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/*** 如果有 ![]() ![]() ![]() 受"-/"选项(原有代码中没有这个选项) ![]() ![]() ![]() ![]() ![]() ![]() 介绍说明已经被植入木马 ![]() 8) tcpd后门 tcpd中有 ![]() ![]() ![]() ![]() ![]() ![]() 是使这段代码失效 ![]() 检查/dev目录 ![]() ![]() ![]() -rw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyq 而不是 crw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyq 或 brw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/*** 如果有 ![]() ![]() ![]() 选项(原有代码中没有这个选项) ![]() ![]() ![]() ![]() ![]() ![]() 介绍说明已经被植入木马 ![]() 9) syslogd后门 检查/dev目录 ![]() ![]() ![]() -rw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptys 而不是 crw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptys 或 brw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/*** 如果有 ![]() ![]() ![]() ![]() ![]() ![]() 文件名 ![]() ![]() 10) killall后门 检查/dev目录 ![]() ![]() ![]() -rw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyp 而不是 crw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyp 或 brw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/*** 如果有 ![]() ![]() ![]() 接受"-/"选项(原有代码中没有这个选项) ![]() ![]() ![]() ![]() ![]() 文件名 ![]() ![]() 11) pop3d后门 pop3d-trojan.tar.gz 12) sshd后门 sshd后门把ssh发行包里 ![]() ![]() ![]() ![]() " ![]() ![]() ![]() ![]() ![]() 13) cgi后门 在cgi-bin/目录下检查这类cgi ![]() ![]() ![]() 14) find后门 检查/dev目录 ![]() ![]() ![]() -rw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyr 而不是 crw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/ptyr 或 brw-rw-rw- 1 root tty 2, 164 May 6 1998 /dev/*** 如果有 ![]() ![]() ![]() 选项(原有代码中没有这个选项) ![]() ![]() ![]() ![]() ![]() ![]() 介绍说明已经被植入木马 ![]() 15) chfn后门 16) chsh后门 4. 守护进程后门 binary木马后门是把系统上原有 ![]() ![]() ![]() ![]() ![]() 类后门是在系统上隐藏 ![]() ![]() ![]() ![]() ![]() 协议来分类 ![]() 1) UDP后门 启动 ![]() ![]() ![]() ![]() ![]() udp-backdoor-v2.0.tgz ![]() ![]() ![]() 门 ![]() 2) TCP后门 诸如bdoor.c的类 ![]() ![]() ![]() ![]() 3) Raw Socket后门 这类后门打开 ![]() ![]() ![]() ![]() 如果已对文件系统用TripWire的类 ![]() ![]() ![]() ![]() 用这类工具检查是否增加了新文件 ![]() ![]() ![]() ![]() 是后门 ![]() ![]() 另 ![]() ![]() ![]() ![]() ![]() 动 ![]() ![]() ![]() ![]() 通过inetd 超级服务器来启动 ![]() ![]() ![]() 要进行网络通讯 ![]() 1) 检查rc脚本 对Solaris系统 ![]() ![]() rcS、rc0、rc1、rc2、rc3、rc5、rc6 对Linux ![]() ![]() ![]() 对Solaris系统 ![]() ![]() ![]() rc0.d、rc1.d、rc2.d、rc3.d、rcS.d 5个目录 ![]() ![]() 示运行级别 ![]() ![]() ![]() ![]() ![]() 打头 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 数stop ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 别是 rcS ![]() ![]() ![]() ![]() 置 ![]() 对Linux系统 ![]() ![]() /etc/rc.d/rc脚本依据运行级别象Solaris上 ![]() ![]() 守护进程 ![]() ![]() ![]() ![]() 必须执行 ![]() ![]() ![]() 检查上面 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 检查这些 ![]() ![]() ![]() ![]() 上面所列 ![]() ![]() ![]() ![]() 件 ![]() ![]() ![]() ![]() 号连接或者硬链接 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Solaris上大致为下面这些 ANNOUNCE MOUNTFSYS PRESERVE RMTMPFILES ab2mgr afbinit audit autofs auto ![]() cachefs.daemon cachefs.root cacheos cacheos.finish cron devlinks drvconfig dtlogin inetinit inetsvc init.dmi init.snmpdx initpcmcia keymap lp mkdtab nfs.client nfs.server nscd pcmcia power rootusr rpc savecore sendmail spc standardmounts sy ![]() syslog ufs_quota utmpd volmgt xntpd 在Linux上 ![]() anacron apmd arpwatch atd crond functions gpm halt httpd httpd.orig identd inet ipchains ipsec irda kdcrotate keytable killall kudzu linuxconf lpd named netfs network nfs nfslock pcmcia portmap random rstatd rusersd rwalld rwhod sendmail single snmpd syslog xfs ypbind yppasswdd ypserv 仔细检查这些rc?.d 目录 ![]() 目录中某个脚本文件 ![]() ![]() ![]() ![]() 或者增加了某个脚本文件 ![]() ![]() ![]() ![]() ![]() ![]() 确信rc?.d目录中脚本文件都是到/etc/rc.d/init.d或/etc/init.d目录中某个脚本文件 ![]() ![]() ![]() 目录下 ![]() ![]() ![]() ![]() ![]() 改 ![]() ![]() ![]() ![]() ![]() ![]() 除此的外 ![]() ![]() ![]() ![]() ![]() ![]() 都要仔细检查 ![]() ![]() ![]() ![]() init.d目录中 ![]() ![]() ![]() ![]() ![]() /usr/local/bin、/sbin、/usr/sbin目录下 ![]() 2) 检查/etc/inetd.conf配置文件 注意/etc/inetd.conf中 ![]() #<service_name> < ![]() telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd <server_pathname>和<args> ![]() ![]() ![]() ![]() ![]() ![]() 形参 ![]() ![]() ![]() ![]() ![]() ![]() 如果有 ![]() ![]() ![]() ![]() ![]() 同样 ![]() ![]() ![]() ![]() ![]() 查 ![]() ![]() ![]() 3) 使用netstat和lsof命令 如果后门 ![]() ![]() ![]() ![]() 借此获取对系统 ![]() ![]() 对Linux系统 ![]() ![]() <PID/Program name> 这两栏 ![]() ![]() 状态 ![]() ![]() ![]() ![]() 它肯定是后门 ![]() ![]() ![]() ![]() 端口上配置服务 ![]() ![]() ![]() ![]() ![]() 常系统配置允许使用 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 对Solaris系统 ![]() ![]() ![]() local_host_addr:port ![]() ![]() 协议执行"lsof -i udp@local_host_addr:port"命令 ![]() 出 ![]() ![]() ![]() ![]() ![]() ![]() ![]() local_host_addr 是本机 ![]() ![]() ![]() 可以加上 -T[q、s、w 任意组合] 选项列出队列长度、状态、窗口大小信息 ![]() 对于raw ![]() ![]() ![]() 5. cron后门 除了以守护进程方式启动后门 ![]() ![]() ![]() ![]() ------------------------------------------------------------------------------- #! /sbin/sh # Which port should the shell start _disibledevent=> # where (and under what name) to hide the ![]() 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" ![]() echo "you had to be root to do this!" exit 1 fi echo "# ![]() cat >> backdoor.c << 'EOF' ... ... EOF gcc -O3 -o $HIDE backdoor.c ![]() echo "Compiling done" rm -f backdoor.c ![]() 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 ------------------------------------------------------------------------------- (这个脚本有问题 ![]() ![]() ![]() 对Linux系统 ![]() ![]() ![]() /var/spool/cron/crontabs目录中 ![]() ![]() ![]() 进程每隔 ![]() ![]() ![]() ![]() ![]() ![]() 后门 ![]() ![]() ![]() 检测后门时 ![]() ![]() 文件 ![]() ![]() ![]() ![]() ![]() ![]() 马后门相交叉 ![]() ![]() ![]() ![]() ![]() 如果cron后门有网络通讯 ![]() ![]() ![]() ![]() 6. 动态链接库后门 几乎所有 ![]() ![]() ![]() 动态库里 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 动shell或建立网络连接 ![]() 动态库后门 ![]() ![]() ![]() ![]() 进程常驻后台 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 如open ![]() ![]() ![]() ![]() ![]() ![]() 击者指定主机上 ![]() ![]() ![]() 后门进程立即退出 ![]() ![]() ![]() 开连接 ![]() ![]() ![]() ![]() ![]() 发现 ![]() 对于动态库后门 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 它们 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 某种思路方法 ![]() ![]() ![]() ![]() ![]() ![]() 数 ![]() ![]() ![]() ![]() 么区别 ![]() ![]() ![]() ![]() ![]() 当然 ![]() ![]() ![]() ![]() ![]() 对经常被 ![]() ![]() ![]() ![]() ![]() ![]() 另 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 查看有没有什么异常 ![]() ![]() 如果有这些异常 ![]() ![]() ![]() ![]() 备份 ![]() ![]() ![]() 如果检测binary木马后门和守护进程后门时发现异常 ![]() 木马 ![]() ![]() ![]() ![]() ![]() ![]() 经常 ![]() ![]() ![]() ![]() ![]() -----------------+-----------------------+----------------------- open | libc.so | . . . -----------------+-----------------------+----------------------- close | libc.so | . . . -----------------+-----------------------+----------------------- crypt | libcrypt.so | . . . -----------------+-----------------------+----------------------- (注意完成这个表) 为了检测这类后门 ![]() ![]() ![]() ![]() ![]() 脚本进行比较 ![]() ![]() ![]() ------------------------------------------------------------------------------- 此处代码略 ------------------------------------------------------------------------------- 7. SLKM后门 THC ![]() ------------------------------------------------------------------------------- 此处代码略 ------------------------------------------------------------------------------- 8. sn ![]() sn ![]() ![]() ![]() ![]() ![]() 看网络接口是否处于混杂(promisc)模式后确定 ![]() 对Linux系统 ![]() ![]() ![]() ![]() ![]() 口处于混杂(promisc)模式 ![]() ![]() ![]() ![]() 运行 ![]() ![]() ![]() ![]() 些输出行仔细检查 ![]() ![]() ![]() ![]() ![]() ![]() 对于Solaris系统 ![]() ![]() ![]() 还是后门 ![]() # ![]() ![]() lo0: flags=849<UP,LOOPBACK,RUNNING,MULTIcast> mtu 8232 inet 127.0.0.1 netmask ff000000 hme0: flags=863<UP,BROADcast,NOTRAILERS,RUNNING,MULTIcast> mtu 1500 inet 192.168.10.2 netmask ffff0000 broadcast 192.168.255.255 ether 8:0:20:b0:64:6d # ls -l /dev/hme* # 查出网络接口设备 lrwxrwxrwx 1 root other 29 Oct 9 1998 /dev/hme->../devices/pseudo/clone@0:hme # ls -l /devices/pseudo/clone@0:hme # 细看 ![]() crw------- 1 root sys 11, 7 Oct 9 1998 /devices/pseudo/clone@0:hme # lsof | grep "hme" # 用 lsof 查看是否处于混杂模式 snoop 7988 root 3u VCHR 7,2 0t0 423220 /devices/pseudo/clone@0:hme->bufmod->hme # lsof | grep "clone@0:hme" # 同上 snoop 7988 root 3u VCHR 7,2 0t0 423220 /devices/pseudo/clone@0:hme->bufmod->hme # "lsof | grep ***" 有输出 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 确定是否是后门 ![]() ![]() ![]() ![]() 0
相关文章读者评论发表评论 |