网络安全 频道

系统遭受入侵后使用TCT进行紧急恢复并分析

首先说一下相关的软件:
1、The Coroners Toolkit:也就是我们所说的TCT,想要在国内下载的话,您可以到安全焦
点(http://xfocus.org/tool/other/tct-1.07.tar.gz)下载。这是一个unix下的命令行文件系统
工具集,支持FFS及ext2fs,从块及结点处来对数据进行恢复。它能够针对文件的最后修改、访
问或者改变(MAC)的时间来进行分析,并且根据数据节点的值提取出文件列表以进行恢复。
2、TCTUTILs:在http://xfocus.org/tool/other/tctutils-1.01.tar.gz可以下载当前最新
版本。它是对TCT的补充,提供了根据文件名对数据进行恢复的命令行工具。这两个工具都需要
使用者对一些底层基本知识比较了解。
3、Autopsy Forensic Browser:可以从http://xfocus.org/tool/other/autopsy-1.01.tar.gz
下载。它提供了一个友好的html界面给tct及tctutils。它能使枯燥的分析工作相对轻松些:)

一、安装:TCT在各种unix平台下都经过了比较好的测试。现在能够支持FreeBSD、OpenBSD、
SunOS、Linux等平台。TCTUTILs和Autopsy则不一定能跑得起来,我测试的平台是一台默认安装
的Red Hat 6.2系统。

1、tct

# tar zvfx tct-1.07.tar.gz -C /usr/local/tct/; cd /usr/local/tct/tct*; make
这样把tct展开到/usr/local/tct/tct-1.07/的目录下,并且进入,make。这里,如果是make
过之后,需要重新在编译的话,需要运行perl reconfig命令重新配置。

2、tctutils:

# tar zvfx tctutils-1.01.tar.gz -C /usr/local/tct;cd /usr/local/tct/tctu*;make
现在tctutils似乎只在OpenBSD 2.8、Debian Linux 2.2、Solaris 2.7下经过详尽测试,而
对FreeBSD还支持不好。通常make不会出现什么问题,如果有,自己改下代码或者Makefile即可。

3、Autopsy:

解包后运行./configure后,它会自己寻找一些实用工具如grep、strings、md5sum的路径,
并要求确认tct以及tctutils的路径(如果没找到会要求你输入正确路径)。最后要求输入需要检
查的文件系统所在,才生成程序autopsy。

二、honeynet scan15简介:

关于honeynet project的详情,可以参见安全焦点(http://xfocus.org/honeynet/),他们
现在维护着国外honeynet项目的中文镜像。
scan15是honeynet在2001年3月15日于一台受入侵的Linux机器上搜集到的数据而面临的问题。
入侵者下载了一些rootkit放在根目录下,成功安装后删除了。而honeynet project将当时的原始
数据镜像下来,作为题目出给网络安全爱好者,要求对这一被删除的rootkit进行恢复。
详情可以参见http://xfocus.org/honeynet/scans/
根据要求,我下载了honeynet.tar.gz的包,约13M,解压后是一个270M左右的文件honeypot.hda8.dd
及一个README文件,README如下:

===================================================================

SUMMARY
-------
You have download the / partition of a compromised RH 6.2
Linux box. Your mission is to recover the deleted rootkit
from the / partition. Below are a list of all the partitions
that made up the compromised system.

/dev/hda8 / <----- The partition you downloaded
/dev/hda1 /boot
/dev/hda6 /home
/dev/hda5 /usr
/dev/hda7 /var
/dev/hda9 swap

- The Honeynet Project
http://project.honeynet.org

====================================================================
图一

任务非常明确。

三、操作过程

1、确认下载数据无误

# md5sum honeynet.tar.gz
0dff8fb9fe022ea80d8f1a4e4ae33e21 honeynet.tar.gz
# md5sum honeypot.hda8.dd
5a8ebf5725b15e563c825be85f2f852e honeypot.hda8.dd

这些md5校验值同honeynet网站上贴出来的一样,说明文件下载无误,未经篡改。

2、将下载下来的镜像挂接到系统上

# mount honeypot.hda8.dd /mnt/ -oloop,ro

3、配置autopsy并运行之(其实在上面autopsy的configure过程中就做这步了)

====================================================================
[root@test autopsy-1.01]# ./configure
Autopsy Forensic Browser v.1.01 Installation
MD5 found: /usr/bin/md5sum
strings found: /usr/bin/strings
grep found: /bin/grep
Enter TCT Directory:
/usr/local/tct
TCT bin directory was found
Enter TCTUTILs Directory:
/usr/local/tctutils
TCTUTILs bin directory was found
Enter Morgue Directory:
/home/inburst
Enter Default Investigator Name (for the Autopsy Reports):
inburst
Settings saved to conf.pl
[root@test autopsy-1.01]#
====================================================================
图二

然后进入/home/inburst/,你存放honeypot.hda8.dd的地方,编辑文件fsmorgue,使其看来象
下面这样:

====================================================================
# fsmorgue file for Autopsy Forensic Browser
#
# local_file name can contain letters, digits, ''-'', ''_'', and ''.''
#
# local_file mount_point
honeypot.hda8.dd /mnt/
====================================================================
图三

并且编辑zoneinfo,确定时间信息。

然后可以运行命令:

# ./autopsy 9999 192.168.168.130

这里192.168.168.130是我所用的工作机,9999是端口号,屏幕上会输出:

====================================================================
Autopsy Forensic Browser ver 1.01
Investigator: inburst

Paste this as your browser URL on 192.168.168.130:
192.168.168.130:9999/1727589285/autopsy
====================================================================
图四

将192.168.168.130:9999/1727589285/autopsy粘贴到你的浏览器url里,就可以开始进一步的分析了。

4、恢复被删除的rootkit,这里我们先纯用命令行来解决问题,其实利用autopsy可以令这些麻烦事
看起来相对直观些。

a、搜集信息

====================================================================
# ils honeypot.hda8.dd > ilsdump.txt
# cat ilsdump.txt
class|host|device|start_time
ils|test.inburst.com.cn|honeypot.hda8.dd|992134159
st_ino|st_alloc|st_uid|st_gid|st_mtime|st_atime|st_ctime|st_dtime|st_mode|st_nlink|st_size|st_block0|st_block1
23|f|0|0|984706608|984707090|984707105|984707105|100644|0|520333|307|308
2038|f|1031|100|984707105|984707105|984707105|984707169|40755|0|0|8481|0
……
……
====================================================================
图五

ils命令是用来显示inode信息的,它显示了每个被删除的文件节点的原始资料。上面显示的第一个域是
结点号。后面数据恢复时需要用到,关于这个输出的详细信息如下:

st_ino:The inode number.
st_alloc:Allocation status: `a'' for allocated inode, `f'' for free inode.
st_uid:Owner user ID.
st_gid:Owner group ID.
st_mtime:UNIX time (seconds) of last file modification.
st_atime:UNIX time (seconds) of last file access.
st_ctime:UNIX time (seconds) of last inode status change.
st_dtime:UNIX time (seconds) of file deletion (LINUX only).
st_mode:File type and permissions (octal).
st_nlink:Number of hard links.
st_size:File size in bytes.
st_block0,st_block1:The first two entries in the direct block address list.

====================================================================
# /usr/local/tct/extras/ils2mac ilsdump.txt > deletedfiles.txt
# cat deletedfiles.txt
class|host|device|start_time
body|test.inburst.com.cn|honeypot.hda8.dd|992134159
md5|file|st_dev|st_ino|st_mode|st_ls|st_nlink|st_uid|st_gid|st_rdev|st_size|st_atime|st_mtime|st_ctime|st_blksize|st_blocks
|||23|100644|-rw-r--r--|0|0|0||520333|984707090|984706608|984707105||
|||2038|40755|drwxr-xr-x|0|1031|100||0|984707105|984707105|984707105||
|||2039|100755|-rwxr-xr-x|0|0|0||611931|984707090|1013173693|984707105||
|||2040|100644|-rw-r--r--|0|0|0||1|984707090|983201398|984707105||
……
……
====================================================================
图六

ils2mac重新排列输出了上面的信息,这在你有多个磁盘分区需要分析时比较有用。

====================================================================
# mactime -p /mnt/etc/passwd -g /mnt/etc/group -b deletedfiles.txt 1/1/2001 > mactime.txt
# cat mactime.txt
Feb 08 02 21:08:13 611931 m.. -rwxr-xr-x root root
Jan 27 01 23:11:32 3278 m.. -rw-r--r-- root root
Jan 27 01 23:11:44 11407 m.. -rw-r--r-- root root
Feb 26 01 22:46:04 632066 m.. -rwxr-xr-x root root
Feb 26 01 23:22:55 4060 m.. -rwxr-xr-x root root
Feb 26 01 23:22:59 8268 m.. -rwx------ root root
Feb 26 01 23:23:10 4620 m.. -rwxr-xr-x root root
Feb 26 01 23:23:55 53588 m.. -rwxr-xr-x root root
Feb 26 01 23:24:03 75 m.. -rwx------ root root
Feb 26 01 23:28:40 79 m.. -rwxr-xr-x root root
Feb 26 01 23:29:51 688 m.. -rw-r--r-- root root
Feb 26 01 23:29:58 1 m.. -rw-r--r-- root root
Mar 03 01 11:05:12 708 m.. -rw-r--r-- root root
Mar 03 01 11:08:37 3713 m.. -rwx------ root root
Mar 15 01 19:17:36 33135 mac -rw-r--r-- root root
Mar 15 01 19:19:37 16 ma. lrwxrwxrwx root root
16 ma. lrwxrwxrwx root root
16 ma. lrwxrwxrwx root root
Mar 15 01 19:20:25 16 ..c lrwxrwxrwx root root
239 .ac -rw-r--r-- root root
……
……
====================================================================
图七

mactime命令则是按时间,inode对输出进行排列、对比,显示出哪些inodes被修改或者存取过。

OK,有趣的东西玩过了,让我们来看看,其实用autopsy就不用这么麻烦,大家可以从入侵检测有着极大帮助。从上面的输出我们可以非常轻松地判断出rootkit被安装在几
个隐藏目录下,如
/dev/ida/.. /
/dev/ida/.drag-on/

d、由于本文的重点不是放在入侵检测上,所以对该image中其它入侵者留下的痕迹就不再做进一步
分析了,建议如果感觉兴趣同志可以自己去下载这个包来进行一次模拟入侵实战,并且可以从honeynet
的高手们的分析过程中得出很多经验。

最后,介绍一个由叫recover的软件。这个软件可以恢复ext2下被删除的文件,但是没有tct那样功能
强大。只是相对更“傻瓜”一些,操作起来比较方便。可以在http://xfocus.org/tool/other/recover-1.2.tar
获取。
它的运行简单,只要运行./recover就OK了,然后会问你需要恢复的数据所以磁盘、删除时间、文件
大小等一系统信息,以帮助精确定位需要恢复的文件,但最后恢复出来的东西,都是以数字排序,分析
起来有一定的难度。

大致如此,have fun。
 
http://netadmin.77169.com/HTML/20040322231600.html

0
相关文章