的数据到远程系统上(假设远程主机的IP地址为192.168.1.100)我们必须开放远程主机上TCP端口:
(remote host)# nc -l -p 8888 > date_compromised
再者,开放非安全系统主机的端口:
(compromised host)# /mnt/cdrom/date | /mnt/cdrom/nc 192.168.1.100 8888 -w 3
为了保持收集资料的完整性我们计算收集到的文件的hash值并且将每一步都文挡化.
(remote host)# md5sum date_compromised > date_compromised.md5
有时,我们在非安全系统上收集校检和并发送结果到远程主机上. 关于这个问题所能引起的更多问题已经在这篇文章的别处讨论到了.
(compromised host)# /mnt/cdrom/md5sum /etc/fstab | /mnt/cdrom/nc 192.168.1.100 8888 -w 3
第三步:当前日期
结果是用UTC时间来记录的(译者注:UTC:格林尼治时间)
(remote)# nc -l -p port > date_compromised
(compromised)# /mnt/cdrom/date -u | /mnt/cdrom/nc (remote) port
(remote)# md5sum date_compromised > date_compromised.md5
第四步: 缓存表
首先,我们必须从缓存表中及时收集数据,原因是这些数据具有生命周期,这些数据在表中的周期是很短的.我将从arp协议和路由表中收集这些数据.
Mac address cache table:
(remote)# nc -l -p port > arp_compromised
(compromised)# /mnt/cdrom/arp -an | /mnt/cdrom/nc (remote) port
(remote)# md5sum arp_compromised > arp_compromised.md5
Kernel route cache table:
(remote)# nc -l -p port > route_compromised
(compromised) # /mnt/cdrom/route -Cn | /mnt/cdrom/nc (remote) port
(remote)#md5sum route_compromised > route_compromised.md5
第五步:当前的连接和开放的TCP/UDP端口
现在,我们来收集关于当前连接和开放的TCP/UDP端口的信息.
关于活动的sockets信息我们将在第八步中来解决.
(remote)#nc -l -p port > connections_compromised
(compromised)# /mnt/cdrom/netstat -an | /mnt/cdrom/nc (remote) port
(remote)#md5sum connections_compromised > connections_compromised.md5
在这一步中我们可以使用cat命令来代替netstat命令来进行操作.我们将关于开放的端口的信息被存放在/proc文件系统中(/proc/net/tcp and /proc/net/udp files).把关于当前连接的信息存放在/proc/net/netstat file中.所有的数据以16进制存储.
例如: 0100007F:0401 在十进制中表示 127.0.0.1:1025
根据前面所提及的方法,当前连接会被纪录系统所监测到.把这纪录下很重要:
一个检测rootkit的简单的方法是当其加载到核心内存中时并隐藏到一个开放的端口中.我们必须从远程系统是扫描非安全系统被检测到的开放端口并且同时和我们从netstat命令中得到的结果进行比较.但是这个操作会带来很多不利因为我们又一次改变了非安全系统,在第七步中我将提供一种可代替的检测隐藏基于LKM的rootkit.
第一部分结束语
现在,我们已经用了一些数据和网络连接状态的纪录.在我们关闭系统非安全前,我们准备进行了一些附加的步骤. 下个月,在第二篇文章中我们将集中地从所收集的数据中寻找出恶意的代码并将它们发送到远程主机中.我们也会讨论一些在安全环境下能一次性完成的寻找方法.
参考书籍:
- Alessandro Rubini, Jonathan Corbet. Linux Device Drivers, 2nd Edition. O''''Reilly; 2001.
- Dan Farmer, Wietse Venema. Column series for the Doctor Dobb''''s Journal. http://www.porcupine.org/forensics/column.html.
- Daniel P. Bovet, Marco Cesati. Understanding the Linux Kernel, 2nd Edition. O''''Reilly; 2002.
- Kernel source code. http://www.kernel.org/
- Linux manual pages.
- National Institute of Standards and Technology. Computer Security Incident Handling Guide. http://csrc.nist.gov/.
- PHRACK #61. Finding hidden kernel modules (the extrem way) by madsys. http://www.phrack.org/.
- RFC 3227. Guidelines for Evidence Collection and Archiving.
- Smith Fred, Bace Rebecca. A guide to forensic testimony. Addison Wesley; 2003.
- Symantec Corporation. CodeRed Worm. http://securityresponse.symantec.com/.
- The Honeynet Project. Scan 29. http://www.honeynet.org/
- The SANS Institute. Incident Handling step by step. http://www.sans.org/
关于作者
View more articles by Mariusz Burdach on SecurityFocus.
上一页 [1] [2] [3] [MySql]联机的Linux的系统分析(第二部分)(第一版)
|