solaris中的系统log日志原理分析

solaris中的系统log日志原理分析


    作为攻击者当然要知道系统是如何纪录用户的活动的情况的原理的了,呵呵,不然ip被记下来都不知道!

呵呵,其实一些人只会到/var/adm/目录里去删日志,那是很笨很笨的做法。

前段时间在www.unixaid.net结识了一个外地的系统管理员,谈了谈,深有心得所以我把这些写下来,呵呵。

unix系统的日志其实是非常复杂和强大的,特别是solaris系统,因为源码的不公开,所以被蒙上了一层神秘的面纱,我研究分析了一阵子得出的结论和大家分享,我的能力有限,还望大家多多指教。

负责日志记帐的有两个守护进程:klogd,syslogd,我着重讲这两个进程,当然还有进程记帐进程,就不多介绍了,呵呵,因为基本上所有的系统动作都会被这两个进程监视并纪录,大家如果要编写一些系统程序的话,也会用到syslog这个接口的,呵呵,klogd主要纪录一些系统内核的动作,对攻击者最受影响的是syslogd这个进程.它可以接收访问系统的日志信息并且根据/etc/syslog.conf配置文件中的指令处理
这些信息。因此,任何希望生成日志信息的程序都可向syslog接口呼叫来生成改信息。大部分内部系统工具如邮件和打印系统都是如此生成信息的,许多新增的程序如TCP_wrappers和SSH也是如此工作的。讲到这里,大家有点概念了吧?呵呵
/etc/syslog.conf的格式比较复杂,大家可以参考一下有关书籍,主要是如下语句形式:
facility.level  action
facility代表各种服务,level代表syslog的认证级别,action代表的是针对前面信息的处理。大家可以注意action字段,有时候会把信息发送到另外一台机器而不是熟悉的/var/adm/messages的,这下应该知道这个文件的重要性了吧?如果真把日志发到另外一台机器的话,就想办法把那台机器dos掉了,不是它死你是你亡啊,呵呵,有时会发送到/dev/console,/dev/tty1或/dev/lp1等等这样的设备,就是发送到终端啊,呵呵,想想如果那终端作的是系统管理员,你不是很惨?

现在大家应该知道不是删删/var/adm/messages就了事的吧?呵呵

好,下面介绍一下solaris的另外一个记帐,就是wtmp和utmp,说明一下大家常见到的wtmpx和utmpx是wtmp和utmp的扩展罢了,大家可以参看wtmp.h,utmp.h里的定义的数据结构,会有写概念,呵呵,在solaris里是通过utmpd,wtmpd这两个进程来进行记帐的,然后通过utmppipe这个管道文件向/var/adm/utmpx这个文件写数据,当然utmpx这个文件不是象messages一样是文本形式的,它是二进制的,只有who,finger命令可以访问,呵呵,大家知道了吧?而last命令是访问wtmpx的。utmp是纪录用户的动态会话用的,而wtmp是纪录用户的登陆与推出的活动的,这就是区别,呵呵。写这篇

文章只是要提醒大家不要随便删日志,那很傻的,呵呵,最好自己编写一些删日志的小工具,很容易,大家参考一下utmp这个数据结构就可以了,也可以用一个命令来删除messages中的纪录:
eagle~# more /var/adm/messages|grep -v  >/var/adm/messages
很简单不是么?呵呵,当然utmp,wtmp中的纪录就要用程序解决了,也有现成的程序比如:

wtmpdump.c,marry.c,remove.c等等,呵呵都不错的,我主页上有下载,呵呵
attacker.qzone.com

好了,就说这么多了,重申一句,我只是为了让大家进行爱国主义行动的时候注意以下善后的工作,呵呵其中牵涉到的只是非常多,我很多没有详细说明和讲解,希望大家重视日志,参考一下有关资料。

忘了,这些是solaris中的情况,呵呵,在linux里又大不一样,呵呵,linux里没有utmpd这个进程,是通过PAM的认证模块来进行记帐的,PAM的资料大家可以参考一下书籍很复杂,说的话会近万字呢,呵呵

 

注:本文版权为补天网络安全公司,转载请保持文章的完整性!