CactiEZ中文版横空出世
[ 2008/09/21 23:39 | by selboo ]
网通用户下载:
http://www.ipkernel.com/CactiEZ/CactiEZ_SC8.iso
电信用户下载:
ftp://cuer:cuer@125.65.112.55/CactiEZ_SC8.iso
root密码: CactiEZ
Cacti登录用户: admin
Cacti登录密码: admin
第一次登录会要求修改密码的
改IP: system-config-network命令, 或修改: /etc/sysconfig/network-scripts/ifcfg-ethX[网卡编号]
改DNS: 修改: /etc/resolv.conf
改网关: 修改: /etc/sysconfig/network, 加入 GATEWAY=[IP]
linux系统下的入侵分析案例
[ 2008/09/16 10:51 | by selboo ]
受到攻击
最近,某校校园网管理员接到国外用户投诉,说该校园网中的一台视频服务器正在对外进行非法的TCP 443端口扫描。该视频服务器的地址是192.168.1.10,操作系统为redhat7.3,对外开放端口为TCP 22、80、443。然而,管理员在机器上经过重重仔细检查,未观察到任何异常。在此情况下,我们接受请求帮助他们检查机器。
初步检测
我们首先在交换机上对该服务器的网络流量进行了镜像,发现该主机确实存在对外443端口的扫描流量,但是登录到系统上使用netstat -an命令却看不到任何与443端口相关的网络连接,使用psef命令也没有看到系统中有任何可疑的进程。因此,我们怀疑系统中可能被安装了 rootkit(注1)。为了证实这一点,我们将系统中的ps命令拷贝到另外一台可信的操作系统版本相同的机器上(当然如果你在系统安装初始就维护了一张系统命令md5值表的话,那么你现在只需从别的地方拷一个md5sum程序过来就可以),使用md5sum命令对两个ps进行比对发现192.168.1.10上的ps已经被人修改过,因此可以断定系统确实是被入侵并安装了rootkit级的后门程序。
脱机分析
既然系统命令已经被替换,那么在该系统上所做的任何操作都是不可信的,因此接下来我们将被入侵服务器关闭并取下硬盘挂到另外一台主机上面进行分析。我们首先查找系统中可疑的登录记录,使用如下命令:
more /var/log/secure |grep Accepted (注2)
我们对系统的登录日志进行了查看,在排除了管理员自己的登录记录后,下面这条记录引起了我们怀疑:
Jul 3 14:01:01 vsp-thu sshd[14042]: Accepted password for news from 82.77.188.56 port 1143 ssh2
这条记录显示在7月3号的下午14:01:01秒,有人使用news账号从82.77.188.56成功登录了系统,经查,82.77.188.56是一个罗马尼亚的地址。根据对方直接使用news账号登录这一点来看,对方攻击成功的时间应该早于7月3号14点,因为系统默认情况下news账号是内置账号没有密码并无法登录,但是我们查看/etc/shadow文件却发现如下记录:
news1$ChmaBoHa$ha.JnyJkIryk5wc5DeWzR1:12967:0:99999:7:::
这说明news账号被入侵者加设了密码,并改成了可以远程登录的账号,之所以做这样的修改,一般是入侵者想留下一个隐藏的登录账号,方便日后登录。我们继续检查系统的其他日志却再没发现任何可疑的纪录,很显然入侵者已经对系统的日志文件进行了修改。
继续深入
线索到这里似乎中断。而我们所知道的仅仅是入侵者可能来自罗马尼亚,他修改了系统的news账号权限,并篡改了系统日志。这些已知信息看起来对整个事件的处理并没有太大的帮助。但是我们有一个很有用的信息,就是攻击发生的大概时间可以定位在7月3号下午2点左右,有了这个时间我们就可以使用find命令来查找出这个时间段里面系统中被修改的文件有哪些?命令格式如下:
Find / -ctime +nprint 〉find.log (注3)
在输出的结果中我们发现入侵者在/var/opt下建了一个名为. (点后面是一个空格字符)(注4)的目录,而该目录下包含表1中所显示子目录和文件。
对这些程序进行分析后,知道其功能如下:
表1 入侵者在/var/opt下建立的名为.的目录
1、z程序是用来清除系统日志中相关信息的,例如:
./z 82.77.188.56这条命令执行后,系统中所有与82.77.188.56这个地址有关的日志信息全部会被清除掉;
2、cata目录下是一个IRC的后门程序,运行后系统会自动连接到以下4个IRC服务器,然后入侵者只要登录相应的IRC聊天室就能向这台机器发送控制指令,4个IRC聊天室服务器地址为:
server 194.134.7.195 6662
server 195.197.175.21 7000
server 161.53.178.240 6667
server 66.198.160.2 8080;
3、login程序是用来替换系统登录进程的木马程序,可以记录登录账号和密码;
4、kaka目录里放置的是用来替换系统命令的相应程序,就是这个目录里的程序使得我们在系统上看不出有任何异常;
5、atp 目录下放置的是专门用来扫描https服务和攻击openssl的程序,国外发过来的443端口的扫描投诉就是因为这个目录里的openssl-too程序引起的。这个攻击程序是2005年4月19号被公布出来的,利用的是编号为CAN-2002-0656的openssl程序的漏洞;
另外,在7月3号被入侵者修改的文件还包括以下两个:
/etc/httpd/conf/httpd.conf(注5)
/etc/httpd/logs/ssl_request_log(注6)
由此可见:
1、入侵者修改了httpd.conf文件,注销了httpd.conf的443端口(跟管理员确认了不是他们自己注销的),大概是不想漏洞被其他人利用;
2、入侵者删除了ssl_request_log日志中的7月3号中午12点到14点的所有纪录(因为ssl_request_log并不算系统日志,所以不能用z程序直接清除,入侵者只能手动删除相应时间段的日志记录)。
继续检查相应日志我们又发现在root目录下的.bash_history(注7)文件中有如下一条命令纪录:./z 82.77.188.240
揭开谜团
有了上面这些信息,我们就可以对本次入侵事件做出如下分析:
1、入侵时间:从目录生成时间和入侵者删除ssl_request_log日志中相应时间段记录的情况来看入侵的大概时间应该在7月3号中午13点左右;
2、利用的漏洞:利用漏洞扫描程序对系统进行扫描发现系统中存在多个可被利用的漏洞,但是从入侵者关闭apache的443端口服务和修改 ssl_request_log日志文件来看,他利用的是apache的mod_ssl模块的漏洞(CAN-2002-0656)入侵系统的;
3、攻击地址来源:攻击地址来源有两个为82.77.188.56和82.77.188.240(但是这两个地址很有可能也是被入侵者控制的机器);
4、入侵者进入系统后做了以下这些操作:
在系统中安装了通过IRC聊天服务器控制的后门程序修改了系统中news账号的权限和密码;
替换系统中一系列的系统命令;
替换了系统本身的login程序,并获得root的密码(注8);
利用攻击程序对外进行443端口的扫描与攻击;
使用清除程序清除了系统日志中的相关记录。
解决办法
由于系统内核级的程序已经被替换,我们建议用户备份所需数据后重新安装系统,并执行以下操作:
1、安装更高版本的操作系统;
2、安装相应的系统补丁程序;
3、修改系统管理员的密码,并检查同网段内其他使用相同密码的主机。(因为入侵者已经通过木马程序获得了管理员的口令);
4、安装更高版本的apache程序,并关闭不必要服务端口;
5、使用防火墙限制ssh 22端口的登录来源地址。
(作者单位为CERNET应急响应组)
注释
注1:简单点说rootkit就是一种黑客的工具包,它里面通常包括:修改过的系统命令程序、后门程序、攻击程序、日志清除程序等,黑客使用rootkit程序就是为了在被入侵的主机上隐藏自己的攻击行为。
注2:/var/log/secure 记录了系统账号的登录信息,而grep Accepted可以有效地过滤掉那些不成功的登录记录。
注3:这个命令的意思就是查找“/”目录下的所有n天前被修改过的文件,使用>管道符是为了将查询结果输出到find.log文件中,便于后面的分析。
注4:linux系统中以“.”开头的文件和目录都隐藏文件,需要使用ls -al命令才能查看到,而点后面加空格的目录名字很容易在ls -al显示结果中被我们忽略过去)
注5:httpd.conf是apche程序的主配置文件,在这个文件里注释掉443端口,将导致apche无法正常提供443端口的https服务。
注6:ssl_request_log文件是apache的一个日志文件,它记录着用户基于https协议的访问信息。
注7:默认情况下各相应用户主目录下的.bash_history文件记录保存着500条该用户在系统中曾经执行过的操作命令。
注8:既然入侵者已经使用了清除程序清除了系统日志,为什么还在root的.bash_history中留下了./z 82.77.188.240命令的记录呢?这就要从.bash_history的记录机制说起了,用户每次登录系统后所做的任何操作并不会直接就存储到了.bash_history文件中,而是保存在一个变量中,只有当用户退出登录以后,这个变量的值才会被写入到.bash_history文件中。这就说明入侵者最后一次是通过82.77.188.240这个地址使用root账号登录系统的,他在运行./z 82.77.188.240这个命令时./bash_history中还没有这条记录,所以也没有被清除,当他退出系统后,变量中的./z 82.77.188.240就被写入到.bash_history中了。因此我们可以断定入侵者已经通过假冒的login程序获得了root的密码。 W020061215331557713921.gif (12.75 KB)
最近,某校校园网管理员接到国外用户投诉,说该校园网中的一台视频服务器正在对外进行非法的TCP 443端口扫描。该视频服务器的地址是192.168.1.10,操作系统为redhat7.3,对外开放端口为TCP 22、80、443。然而,管理员在机器上经过重重仔细检查,未观察到任何异常。在此情况下,我们接受请求帮助他们检查机器。
初步检测
我们首先在交换机上对该服务器的网络流量进行了镜像,发现该主机确实存在对外443端口的扫描流量,但是登录到系统上使用netstat -an命令却看不到任何与443端口相关的网络连接,使用psef命令也没有看到系统中有任何可疑的进程。因此,我们怀疑系统中可能被安装了 rootkit(注1)。为了证实这一点,我们将系统中的ps命令拷贝到另外一台可信的操作系统版本相同的机器上(当然如果你在系统安装初始就维护了一张系统命令md5值表的话,那么你现在只需从别的地方拷一个md5sum程序过来就可以),使用md5sum命令对两个ps进行比对发现192.168.1.10上的ps已经被人修改过,因此可以断定系统确实是被入侵并安装了rootkit级的后门程序。
脱机分析
既然系统命令已经被替换,那么在该系统上所做的任何操作都是不可信的,因此接下来我们将被入侵服务器关闭并取下硬盘挂到另外一台主机上面进行分析。我们首先查找系统中可疑的登录记录,使用如下命令:
more /var/log/secure |grep Accepted (注2)
我们对系统的登录日志进行了查看,在排除了管理员自己的登录记录后,下面这条记录引起了我们怀疑:
Jul 3 14:01:01 vsp-thu sshd[14042]: Accepted password for news from 82.77.188.56 port 1143 ssh2
这条记录显示在7月3号的下午14:01:01秒,有人使用news账号从82.77.188.56成功登录了系统,经查,82.77.188.56是一个罗马尼亚的地址。根据对方直接使用news账号登录这一点来看,对方攻击成功的时间应该早于7月3号14点,因为系统默认情况下news账号是内置账号没有密码并无法登录,但是我们查看/etc/shadow文件却发现如下记录:
news1$ChmaBoHa$ha.JnyJkIryk5wc5DeWzR1:12967:0:99999:7:::
这说明news账号被入侵者加设了密码,并改成了可以远程登录的账号,之所以做这样的修改,一般是入侵者想留下一个隐藏的登录账号,方便日后登录。我们继续检查系统的其他日志却再没发现任何可疑的纪录,很显然入侵者已经对系统的日志文件进行了修改。
继续深入
线索到这里似乎中断。而我们所知道的仅仅是入侵者可能来自罗马尼亚,他修改了系统的news账号权限,并篡改了系统日志。这些已知信息看起来对整个事件的处理并没有太大的帮助。但是我们有一个很有用的信息,就是攻击发生的大概时间可以定位在7月3号下午2点左右,有了这个时间我们就可以使用find命令来查找出这个时间段里面系统中被修改的文件有哪些?命令格式如下:
Find / -ctime +nprint 〉find.log (注3)
在输出的结果中我们发现入侵者在/var/opt下建了一个名为. (点后面是一个空格字符)(注4)的目录,而该目录下包含表1中所显示子目录和文件。
对这些程序进行分析后,知道其功能如下:
表1 入侵者在/var/opt下建立的名为.的目录
1、z程序是用来清除系统日志中相关信息的,例如:
./z 82.77.188.56这条命令执行后,系统中所有与82.77.188.56这个地址有关的日志信息全部会被清除掉;
2、cata目录下是一个IRC的后门程序,运行后系统会自动连接到以下4个IRC服务器,然后入侵者只要登录相应的IRC聊天室就能向这台机器发送控制指令,4个IRC聊天室服务器地址为:
server 194.134.7.195 6662
server 195.197.175.21 7000
server 161.53.178.240 6667
server 66.198.160.2 8080;
3、login程序是用来替换系统登录进程的木马程序,可以记录登录账号和密码;
4、kaka目录里放置的是用来替换系统命令的相应程序,就是这个目录里的程序使得我们在系统上看不出有任何异常;
5、atp 目录下放置的是专门用来扫描https服务和攻击openssl的程序,国外发过来的443端口的扫描投诉就是因为这个目录里的openssl-too程序引起的。这个攻击程序是2005年4月19号被公布出来的,利用的是编号为CAN-2002-0656的openssl程序的漏洞;
另外,在7月3号被入侵者修改的文件还包括以下两个:
/etc/httpd/conf/httpd.conf(注5)
/etc/httpd/logs/ssl_request_log(注6)
由此可见:
1、入侵者修改了httpd.conf文件,注销了httpd.conf的443端口(跟管理员确认了不是他们自己注销的),大概是不想漏洞被其他人利用;
2、入侵者删除了ssl_request_log日志中的7月3号中午12点到14点的所有纪录(因为ssl_request_log并不算系统日志,所以不能用z程序直接清除,入侵者只能手动删除相应时间段的日志记录)。
继续检查相应日志我们又发现在root目录下的.bash_history(注7)文件中有如下一条命令纪录:./z 82.77.188.240
揭开谜团
有了上面这些信息,我们就可以对本次入侵事件做出如下分析:
1、入侵时间:从目录生成时间和入侵者删除ssl_request_log日志中相应时间段记录的情况来看入侵的大概时间应该在7月3号中午13点左右;
2、利用的漏洞:利用漏洞扫描程序对系统进行扫描发现系统中存在多个可被利用的漏洞,但是从入侵者关闭apache的443端口服务和修改 ssl_request_log日志文件来看,他利用的是apache的mod_ssl模块的漏洞(CAN-2002-0656)入侵系统的;
3、攻击地址来源:攻击地址来源有两个为82.77.188.56和82.77.188.240(但是这两个地址很有可能也是被入侵者控制的机器);
4、入侵者进入系统后做了以下这些操作:
在系统中安装了通过IRC聊天服务器控制的后门程序修改了系统中news账号的权限和密码;
替换系统中一系列的系统命令;
替换了系统本身的login程序,并获得root的密码(注8);
利用攻击程序对外进行443端口的扫描与攻击;
使用清除程序清除了系统日志中的相关记录。
解决办法
由于系统内核级的程序已经被替换,我们建议用户备份所需数据后重新安装系统,并执行以下操作:
1、安装更高版本的操作系统;
2、安装相应的系统补丁程序;
3、修改系统管理员的密码,并检查同网段内其他使用相同密码的主机。(因为入侵者已经通过木马程序获得了管理员的口令);
4、安装更高版本的apache程序,并关闭不必要服务端口;
5、使用防火墙限制ssh 22端口的登录来源地址。
(作者单位为CERNET应急响应组)
注释
注1:简单点说rootkit就是一种黑客的工具包,它里面通常包括:修改过的系统命令程序、后门程序、攻击程序、日志清除程序等,黑客使用rootkit程序就是为了在被入侵的主机上隐藏自己的攻击行为。
注2:/var/log/secure 记录了系统账号的登录信息,而grep Accepted可以有效地过滤掉那些不成功的登录记录。
注3:这个命令的意思就是查找“/”目录下的所有n天前被修改过的文件,使用>管道符是为了将查询结果输出到find.log文件中,便于后面的分析。
注4:linux系统中以“.”开头的文件和目录都隐藏文件,需要使用ls -al命令才能查看到,而点后面加空格的目录名字很容易在ls -al显示结果中被我们忽略过去)
注5:httpd.conf是apche程序的主配置文件,在这个文件里注释掉443端口,将导致apche无法正常提供443端口的https服务。
注6:ssl_request_log文件是apache的一个日志文件,它记录着用户基于https协议的访问信息。
注7:默认情况下各相应用户主目录下的.bash_history文件记录保存着500条该用户在系统中曾经执行过的操作命令。
注8:既然入侵者已经使用了清除程序清除了系统日志,为什么还在root的.bash_history中留下了./z 82.77.188.240命令的记录呢?这就要从.bash_history的记录机制说起了,用户每次登录系统后所做的任何操作并不会直接就存储到了.bash_history文件中,而是保存在一个变量中,只有当用户退出登录以后,这个变量的值才会被写入到.bash_history文件中。这就说明入侵者最后一次是通过82.77.188.240这个地址使用root账号登录系统的,他在运行./z 82.77.188.240这个命令时./bash_history中还没有这条记录,所以也没有被清除,当他退出系统后,变量中的./z 82.77.188.240就被写入到.bash_history中了。因此我们可以断定入侵者已经通过假冒的login程序获得了root的密码。 W020061215331557713921.gif (12.75 KB)
1、获得加密后的密码
grub--->grub>
grub>md5crypt
输入密码:123
获得加密后的密码:*************
2、配置grub配置文件
然后在打开一个终端
来到/boot/grub
用vi 编辑器打开grub.conf
在splashimage=(hd0,0)/grub/splash.xpm.gz和
title Red Hat Enterprise Linux AS (2.6.9-42.EL)中间
加上password --md5 加密后的密码(**********)
一半是linux,一半是windows
[ 2008/09/04 11:01 | by selboo ]
ubuntu8.04用了一段时间了。基本还是比较满意,不过还有一些比较头疼的地方,IE这个问题始终解决的不太好。另外还有一些软件只能在windows下运行。用wine模拟的速度又巨慢无比
今天在ubuntu论坛上乱转,发现有人发了一个截图,看效果是linux和windows在一起,很感兴趣。也自己尝试了一把。
首先是安装virtualbox,需要注意的就是自动捕捉键盘的问题。好在此问题我已经解决了。
然后在virtualbox中安装一个深度的精简winxp,然后把virtualbox
打开,在控制界面中设置为无缝模式。嘿嘿,弹出一个对话框,提示你如何用热键切换回去。
确定之后,就切换到原来的桌面了。注意看下面。是不是看到熟悉的windows的系统任务栏了。这可不是ps的,可以点开的,每个功能都能用。
默认的gnome的任务栏在下面,容易和winxp的任务栏重叠起来,手动把gnome的任务栏拽到上面去。哈哈。现在不碍事了,直接拖拽不动,右键,取消那个锁定,然后拽到屏幕左边的边缘,再拽到上面。
默认的VIRTUALBOX操作速度有些慢,需要加大虚拟操作系统的显卡内存,我改到64M,然后重新启动虚拟系统,现在速度快多了
附件是效果图。
Apache虚拟目录日志分割及发布
[ 2008/09/03 11:11 | by selboo ]
Apache的日志分割要借助于目前国际上最流行、最通用的日志分割工具cronolog。日志轮循工具cronolog,已经是比较的相当成熟,在不中断apache服务器的情况下,它能严格的按每一天00:00:00-23:59:59来实现日志文件的分割,同时不受apache服务器重启的影响,安装配置十分简单。
第一步 安装cronolog
首先需要下载和安装cronolog,可以到http://www.cronolog.org/ 下载最新版本的cronolog。下载完毕以后,解压安装即可,方法如下所示:
[root@www tmp]# tar xvfz cronolog-1.6.2.tar.gz
[root@www tmp]# cd cronolog-1.6.2
[root@www cronolog-1.6.2]# ./configure
[root@www cronolog-1.6.2]# make
[root@www cronolog-1.6.2]# make check
[root@www cronolog-1.6.2]# make install
完成cronolog的配置和安装,默认情况下cronolog是安装在/usr/local/sbin下。
第二步 配置httpd.conf
在此认为apache服务器安装在/usr/local/目录下;修改apache日志配置文件httpd.conf如下所示:
1、设置日志格式定义
把httpd.conf中的以下语句:
LogFormat “%h %l %u %t \”%>s %b \”%{Referer}I\” \%{User-Agent}I\””combine
改为:
LogFormat “%h %l %u %t \”%>s %b \”%{Referer}I\” \%{User-Agent}I\””
2、设置TransferLog命令
CustomLog /usr/local/apache/logs/access_log common
或是
CustomLog /usr/local/apache/logs/access_log combine
为
TransferLog “|/usr/local/sbin/cronolog /usr/local/apache/logs/%Y%m%daccess_log”
备注:
/usr/local/sbin/cronolog 为cronolog安装后的路径。
/usr/local/apache/logs/ 为日志分割时候日志保存位置。
如果是有虚拟站点,那么需要对虚拟站点另外单独设置TransferLog命令,这样保证不同的虚拟站点的日志保存在不同的位置,也就是说每个虚拟站点都有单独的日志文件。如下所示,虚拟站点www.abc.com中添加TransferLog命令,保存的日志文件为单独的文件%y%m%dabcaccess_log。
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /usr/local/apache/docs/xxxx
ServerName www.abc.com
TransferLog “|/usr/local/sbin/cronolog /usr/local/apache/logs/%Y%m%dabcaccess_log”
第三步 重新启动Apache服务器
保存设置,重启apache服务器,浏览网站后,就会在 /usr/local/apache/logs/ 目录下产生当天对应的虚拟网站日志文件。
2、设置虚拟目录来发布日志
第一步 打开Apache配置文件httpd.conf,在其中(如果是虚拟主机发布,那么需要在虚拟配置范畴内)添加以下代码:
Alias /wwwlogs/ "/usr/local/apache/logs/"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from xxx.xxx.xxx.xxx
以上的设置把/usr/local/apache/logs/目录下面的所有日志通过/wwwlogs/ 这个虚拟目录发布处理。同时这个虚拟目录禁止除了xxx.xxx.xxx.xxx(网站群流量分析服务器)以外的所有IP地址访问。
重新启动Apache服务器