UNIX应急响应攻略( 三 )


Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 2753 756/ /tmp/.font-unix/fs-1
……(以下省略)
在Solaris,HP-UX,AIX,FreeBSD,Linux上可以使用lsof工具列举所有运行进程及其所打开的文件描述符 , 其中包括常规文件 ,
库文件 , 目录 , UNIX流 , 套接字等 。如果只想显示网络套接字的进程:
[root@ay4z3ro foo]# lsof –i
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
portmap 620 rpc 3u IPv4 2598 UDP *:sunrpc
portmap 620 rpc 4u IPv4 2609 TCP *:sunrpc (LISTEN)
sshd 880 root 3u IPv4 2885 TCP *:ssh (LISTEN)
X 908 root 1u IPv4 2945 TCP *:x11 (LISTEN)
其中特别需要注意的是奇怪的进程和已打开的原始套接字 。
================================
寻找系统中是否运行一个非法嗅探器
================================
为了达到这个目的 , 我们需要检查网卡是否处于混杂(promiscuous)模式:
[root@ay4z3ro foo]# ifconfig –i eth0 | grep PROMISC
PROMISC标志并不会在所有的*NIX上出现 , 通过lsof ps命令可以判断系统是否正运行一个嗅探器 。或者通过第三方的工具 , 比如AntiSniff 。
=================
检查/proc文件系统
=================
在/proc/$PID/目录下对于调查比较有意义的是:exe链接 , fd子目录 , cmdline文件 。
[root@ay4z3ro 880]# ls -al
total 0
dr-xr-xr-x 3 root root 0 Sep 20 19:53 ./
dr-xr-xr-x 62 root root 0 Sep 20 15:07 ../
-r--r--r-- 1 root root 0 Sep 20 19:54 binfmt
-r--r--r-- 1 root root 0 Sep 20 19:54 cmdline
lrwxrwxrwx 1 root root 0 Sep 20 19:54 cwd -> //
-r-------- 1 root root 0 Sep 20 19:54 environ
lrwxrwxrwx 1 root root 0 Sep 20 19:54 exe -> /usr/sbin/sshd*
dr-x------ 2 root root 0 Sep 20 19:54 fd/
-r--r--r-- 1 root root 0 Sep 20 19:54 maps
-rw------- 1 root root 0 Sep 20 19:54 mem
-r--r--r-- 1 root root 0 Sep 20 19:54 mounts
lrwxrwxrwx 1 root root 0 Sep 20 19:54 root -> //
-r--r--r-- 1 root root 0 Sep 20 19:54 stat
-r--r--r-- 1 root root 0 Sep 20 19:54 statm
-r--r--r-- 1 root root 0 Sep 20 19:54 status
Exe链接允许我们恢复被删除的文件 , 只要这些文件仍然运行 。为获得“已删除可执行文件的备份 , 只需要使用cp命令在该文件系统上
创建一个拷贝就行 。通过检查fd子目录 , 可以识别该进程打开的所有文件 。如果对Unix环境下的编程有所了解的话 , 很容易就能发现
是在读写一个文件还是打开一个网络连接 。cmdline文件的内容是该进程的完整命令行 。以下语句是攻击者的欺骗手段,
strcpy(argv[0],any_string);
这样该文件就显示了一种假象 , 即使如此 , 我们仍有必要检查此文件 。
==================================
获取所有文件的创建 , 修改和访问时间
==================================
ls –alRu > /mnt/usb/access
ls –alRc > /mnt/usb/modification
ls –alR > /mnt/usb/creation
============
获取系统日志
============
大多数UNIX的日志在/var/log和/var/adm目录下 , 各种UNIX派生系统日志的具体位置有所不同 。
在此之前 , 有必要了解针对特定系统的日志存贮位置 。
比较重要的二进制日志文件:
utmp,用w工具访问;
wtmp,用last工具访问;
lastlog,用lastlog工具访问;
进程记账日志,用astcomm工具访问
常见的ASCII文本日志文件:
apache日志--/var/log/httpd/access_log;
ftp日志—xferlog;
命令历史记录文件;
/var/log/messages;
检查/etc/syslog.conf以及其他守护进程的配置文件以确定其余日志的位置 。
================
获取重要配置文件
================

推荐阅读