Linux 版 (精华区)

发信人: howdoit (教练让我上场!!!), 信区: Linux
标  题: ThroughtheLookingGlass:FindingEvidenceofYourCracker
发信站: 哈工大紫丁香 (Tue May 18 08:57:22 1999), 转信

《Linux公报》……让Linux更富魅力!

    Through the Looking Glass:

      Finding Evidence of Your

                           Cracker

                   By Chris Kuethe   翻译: Salty_fish

  

  

    你已经订阅了Bugtraq 和The Happy Hacker List(目录),买了

一份The Happy Hacker,并把The Cuckoo's Egg 读了好几遍。伴着快

乐的圣诞随之而来的是一个MODEM和满载的现金,因此你跑出去买东西

以建立你自己的怪客实验室。一星期后,你注意到你的一台机器正变

得象一个特别慢的小虫,并且你已经没有磁盘空间了。猜猜是什

么——你已经垮了,现在是你清除垃圾的时候了。唯一可以确信你做

对的方法就是用一个干净的备份来修复——通常是安装一个媒体以及

规范的来源(source)——不过让我们看看“h4X0r”留给我们什么可研

究的。 

    今年10月底,我们在ALBERTA大学数学科学系的一些工作站经历了

一次卤莽了攻击。因为便宜宜装的缘故,我们系的许多电脑运行

Readhat5.1 (有一个很好的平台用来学习如何保安....)。工作站经

常与WINDOWS 95绑在一起,但我们要逐步停止它因为我们安装citrix

winframe。 这篇文章分析了一位教授的电脑的处理方法。 

    在一个晴天,我被告知我们刚刚又被侵入过,是我向老板显示我

的法术的时候了。就象一个老扦被迫使用没有背面图案的牌一样,我

在控制台上的优势被削弱了。我们的黑客已使用了一个恰到好处的系

统用户工具箱(rootkit),几乎隐藏了他的行踪。 

    一般说来,系统用户工具箱(rootkit)是黑客安装的一个实用程

序的集合,以用来保持其系统用户的存取。象ps, ls, passwd, sh这

样的版本以及其它比较基本的实用程序将会被带有后门的版本替代。

这样的话,黑客就可以掌握住要留多少行迹。ls被替代,所以黑客的

文件不显示,ps被处理,因此黑客的行事过程也得不到显示。通常黑

客会留下一个嗅探器和后门,隐藏在你的电脑的某个地方。数据包嗅

探器实质上不是rootkit的一部分,但黑客们几乎象喜欢ls版本一样喜

欢它。 

    几乎在所有的情况下,你可以依靠在cracked box里的ls版本大撒

谎言。不要确信用它可以找到可疑的文件,不要相信它所报告的文件

大小或日期。为什么rootkit二元位通常比真正的要大是有一个原因,

但我们稍后再谈这个。为了找到一些有趣的东西,你就得用find。

find是比'LS更聪明的版本——RalF | grep | grep |...| grep '它

有强劲的匹配构造可以满足哪里去找,找些什么这样的确切要求。我

不是吹毛求疵,任何以点(dot)开头的名字都值得一看。命令是:find

/ -name ".*" -ls 

    在成堆无用的临时性文件和通常的'thingrc'(象MS-DOS那样的设

置)中,我们发现'/etc/rc.d/init.d/...'。是的,带了三个dot. 只有

一个dot并没什么可疑的, 两个也一样。玩大约2分钟DOS你就会知道为

什么'.'表示“this directory" 和'...'表示”one directory up"。

它们存在于每个目录并且对于文件系统的正确操作十分必要。但是

'...'怎么样?它没有存在的特殊理由。 

    天已经晚了,上了一天的课下来,我都被炸干了,话也讲不出来

了。所以我列了/etc/rc.d/init.d/来检查这个东西。 Nada.只是通常

的SysV / RH5.1的初始文件。为看一下谁在撒谎,我把目录改为

/temp/foo,回应的当前数据改为名为'...'的文件,并在上面试用了

ls,没有发现'...'。我曾发现第一个rootkit binary:是ls的副本,

写出来并不显示'...'名称。 我承认,find是另一个要危害到的目

标。在这次的情况下,它依旧很干净并给了我一些有用的信息。 

    既然我们知道'...'不是canonical distribution的一部分,我进

去看了一下。只有两个文件:linsniffer 和tcp.log。 我多看了几次

tcp.log,列了一个将得到坏消息的人员名单。Ps没有显示sniffer在

运行,但在这种情况下ps是不能相信的,因此我要换一种方法检查。 

    我们操作的是tcsh, 一种支持异步(asychronous)(背景

background)工作执行的增强的C-syntax外壳程序。我打入

'./linsniffer &'用来告诉tcsh在此目录下运行名为linsniffer的程

序,并提供背景(background)。Tcsh说这是工作#1,进度ID 2640。

是ps的又一次机会了,没有linsniffer。这没什么可奇怪的,或者是

ps被破坏了,或者是linsniffer更改了其它的名称。提醒:'ps 21640

报告说没有现成的进度。太好了,ps遭破坏了。这是第二个rootkit

binary. 扼杀了当前运行的sniffer. 

    现在我们来检查一下明显的东西:/etc/passwd。没有奇怪的登

录,所有的进入程序都正常运行。也就是说口令没有更改。事实上,

唯一不幸的是当天的早些时候文件已被修改了。最近一个符咒显示大

约在235am '炸弹‘曾进入了一小会儿。那个时间会被证实是十分重要

的。当时除了我们没有其他人在场,我们中没有一个人叫炸弹。 

    我去拿了我的黑客侦察盘——一张锁掉的软盘带有我信任的

binaries,装上了Redhat CD。我用了我的干净的ps,发现真正的ps有

28K,但是rootkit的那个超过130K。有谁愿意向我解释一下那些超出

的字节会是什么呢?'file'程序有我们的答案:ELF 32-bit LSB 可操

作,Intel 80386, version 1, 动态连接,没有剥离(stripped)。

啊哈,所以当我们的编程者编写它的时候,忘了剥离(strip)文件。

这就意味着gcc将所有的调试信息遗留在文件中。事实上,剥离程序使

其降到36K,这对于所增加的额外的功能(藏在一定的文件中)大概是

合理的了。想想我曾提过那些增加的文件规模是如何重要。这是我发

现原因的所在。首先,已加入了新的“features",其次,二元位有冗

长的符号表,用来辅助调试而不用包括所有的调试码。第三,许多编

程者喜欢遍一些不能调试的东西,他们想不然的话会有更多的调试方

式的后门。当然,我们的编程者这样想是太天真了。她的ls版本有一

整套符号表和来源(source),是根据

/home/users/c/chlorine/fileutils-3.13/ls.c编制的,这是一个有

用的信息。我们可以拿来canonical distributions把这些东西和安装

的东西比较一下,这样可以得到另一条线索以知道她已破坏了什么。 

    我天真地去找源文件,当然这象刚扫过的雪一样纯净。实际上,

他们所持有的黑客的唯一证据是四天的间隙。但我依然找到了一些有

用的东西:这个箱子看来是安装了TCP wrappers。OK,在它进入我们

的系统的时候,那些wrappers肯定失败了。在RH51,TCP wrapper在

/usr/sbin/in.*里面,因此这次在哪里呢,在/sbin? 我进入后在字符

串中找到了一些有趣的东西。我写到:You are being logged, FUCK

OFF, /bin/sh, 口令:, backon. 我怀疑这是官方发表的RedHat的一

部分。 

    我迅速检查了其它TCP wrappers, 发现里面有RedHat. Rshd是

11K, 在HD上的是200K。OK,有两个伪造的wrappers. 从那些文件数

据看来,受破坏的wrapper是在RH51发表后的那天出来的。有些吓人,

喔? 

    我注意到这些binaries,通过动态连接,使用libc5,不是我们有

的libc6。当然,libc5是存在的,但等于没有。我说没有是指根本不

用它。纯净的背景兼容码(compatiblity code)。检查了另一个可疑

的binaries后,发现它们都用libc5。这就是条形码(strings)和文

本查找工具(grep)使用的地方。 

    现在用手查找我已厌烦了,让我们把搜寻范围缩小一些,用

find。在今年十月做这一切,我怀疑我们的黑客有些病态——只要看

看到目前为止她犯的错误——因此她可能在月初以前并没有开始。我

不想显示我是find语法的大师,因此我这样写: 

find/ -xdev -ls | grep "Oct" | grep -v "19[89][0-7]" >

octfiles.txt 

    用汉语表达就是:从根目录开始,不要在其它驱动器上查找,打

印所有的文件名。经过一个文本查找工具(grep),它去掉所有一切

东西,除了十月,然后经过另一个grep,它滤掉我不关心的年份。当

然,80年代产生过许多好音乐(depeche mode)和好的代码

(UN*X/BSD),但现在不是研究历史的时候。 

    另一个find报告的文件是/sbin/in.socked. 十分有趣的是,ps说

有一个未命名的进程(process),它只有76这样低的进程,id为

uid=0, gid=26904。这个集团在校园里没人知道。它会是谁的呢?这

个文件怎么会这么早以致于有那么低的PID呢?In.socked有那个

uid/gid pair...为in.sockd查找rc.sysinit文件,文件的最后两行是

这样的: 

#Start Socket Deamon 

exec in.sockd 

    Yeah,是的,这不是正常安装的一部分。 Deamon也拼错了。拼写

校对人也应该被包括在黑客侦探中吗?Well,RedHat在差文档和成吨的

排字错误上还不是很有名,但在字典中增加单词还是可能的。因此我

们的黑客试图安装一个后门并试图通过糅合其它相关程序把这个后门

伪装起来。这提高了我的理论的可信度。我认为我们的黑客已经在单

纯搜索开发成果上提炼了她的技术。 

    第二个感染病毒daemon是rshd.大约有标准版本的10倍大,它只能

是个大麻烦. Rsh在这儿指什么呢? RemoteSHell 或者RootShell? 你

的猜想不比我的差。 

    到现在为止我们所发现的是ls, ps, rshd, in.sockd的受害版

本,派对才刚刚开始。我建议一旦你读完这篇文章后,你做一个

rootkit搜索看一下你能攫取并击跨多少东西。为了除去它,你必须知

道去找些什么。 

    当源文件(log files)都被清除,在控制台(console)依旧打

印了一些错误,在0235h之后有许多。其中之一在0246h拒绝帮助根目

录路径到/via nfs。这与上次进入manpage的时间完全吻合。因此我们

的编程者发现了一些单纯的东西,她试图通过NFS安装这个计算机,但

她没有很好地将它激活。我得说,所有的黑客都犯错误。如果他们把

一切都做得天衣无缝,我们就不会去注意到他们,也就不会有任何问

题。但是正是由于他们的缺点而造成的问题导致了我们的不幸。因此

看看你的指南手册。对你的系统知道的越完整,你就会尽可能地注意

到不正常的情况。 

    关于NFS有用的东西(指制止黑客)是,如果服务器下降,所有仍

安装指南的NFS用户都将上吊。你将不得不把机器转120圈再把它恢复

过来。这提供了一个有趣的工具机会:写一个手稿检查一下NFS 

hack,如果远处的机器介入,将界面关掉。如果被授权的用户遭切

断,这提供了拒绝服务的可能性。但是如果你不想你的工作台受破坏

的话,这很有用。 

    在这点上,我放弃了。我了解了我曾要做的事情——怎样找到黑

客遗留下来的废物。因为这个系统的所有者将她所有的文件放在可移

动的媒体上,因此在任何情况下就不会有遭破坏的危险。~janedoe指

南从一张Jas盘上卸了下来,她在晚上把Jaz盘带回了家,因此我只要

将CD插如她的驱动器再重装一下。这就是为什么你通常要把用户文件

分开放置,为什么你通常要保留备份,为什么把到什么地方去得到你

所下载的东西的来源是一个很好的打算,为什么你不能保留原始档

案。 

    既然我们已积累了足够的证据,是考虑适当回应的时候了。就象

HAPPY HACKER中Meinel警告过你会挨打,你会蹲监狱一样,我认为一

回恶毒的报复并不恰当。在加拿大,RCMP确实有超众的精英。我不是

一个律师,因此不会玩文字游戏,除非在你那边可以找一个律师。一

切问题解决后,我们可以说我们在财产保护上很伟大。除了在你那边

找一个律师,我在此的建议是打电话给国家警察,不管是谁。象RCMP,

FBI, BKA,MI-5和KGB这类的人恐怕不会介意一个友好的电话,特别是

你打电话想知道你如何可以变成一个守法公民。机会在于你可以获得

一些确实好的信息或者至少是一些在手的参考资料。当然你也会认识

能帮你起诉的人。 

我与RCMP的商业犯罪组(包括盗用计算机和网络服务)打交道可以归

纳为以下几点:E-mail不能指望是私人的。你希望email是秘密的,但

醒来却发现它比明信片更冒险。作为系统管理者,你可以用计算机干

任何你想干的事,--这是你的责任,因为或者是你拥有计算机或者是你

被指定管理它-只要你首先告戒用户。因此我可以逐个监听我的用户发

出或收到的每个字符,都是我想做的。我对FBI网站的浏览显示了相似

的东西。但那仅是浏览。也不要与地方或国家有关有关电信的法律相

冲突。 

附件1:你想要的黑客侦察箱的程序 

.find,ps,ls,cp,rm,mv 

.gdb,nm,strings,file,strip 

.(GNU)tar,gzip,grep 

.less/more 

.vi/pico 

.tcsh/bash/csh/sh 

.mount 

为安全起见,这些程序必须静态连接 

附件2:WinFrame 参考 

http://www.citrix.com/ 

RedHat 5.1: 

http://www.redhat.com/ 

http://www.rootshell.com/ 

http://www.netspace.org/lsv-archive/bugtraq.html 

关于文件系统: 

McKusik,m.k.,Joy,W.N.,Leffler,S.J.,Fabry,R.S.,"A Fast File

System for UNIX" Unix System Manager's Manual, Computer

Systems Reseach Group, Berkeley. SMM-14 April 1986 

LEA 和电脑犯罪: 

http://www.rcmp-grc.gc.ca/html/cpu-cri.htm 

http://www.fbi.gov/programs/compcrim.htm 

  

  

                       版权所有 (C) 1999 NJLUG

          出版于第36期《Linux公报》1999年1月 中文版第三期  

                            


--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:15.980毫秒