安全检测Unix和Linux服务器入门精讲


尽管为服务器设计软件的软件工程师们想方设法提高系统的安全性,然而由于系统管理员的水平参差不齐或安全意识底下,往往给黑客提供了入侵的机会。

其实每一个黑客都有自己独到的方法。笔者对于入侵网站服务器的资料收集了很多,但是因为实际情况的不同,往往造成许多方法的失效;由此可见,每一个网站的情况都不同,需要入侵者区分对待。假设深圳的线路比北京的线路要好的多,从而给了词典穷举很大的方便,深圳用户就可以依靠这个优势在线攻击口令,作为北京的用户就需要优先考虑其它办法了。针对这么多的入侵手段,笔者参考H ackalot先生这位黑客界名人的一篇文章给大家介绍一下入侵网站的基本步骤。

分析一部分的主页被黑的事例可以发现使用入侵者最热衷于入侵Web服务器和FTP服务器,因为相对来说这是最简单的两种途径。在假设读者对UNIX系统和WEB SERVER的知识不曾了解的情况下,笔者给出下面的步骤。

一、了解要入侵的系统

现在网络上用作服务器的操作系统以UNIX和Linux为主流,如果要入侵这些系统则必须对它们有一个了解。

大部份在 DOS 上使用的指令在 UNIX 及 Linux 上都有对应的指令(因为早期的dos开发借鉴了UNIX),以下列出在使用 SHELL帐号 (shell account)时最主要的一些指令对应的dos指令:

HELP=HELP

CP=COPY

MV= MOVE

LS= DIR

RM =DEL

CD=CD

要看谁同 r也在该系 y上用户可以键入 WHO 指令,要知道系 y上某一位使用者的资料, 可以 I入 FINGER。这些基本的 UNIX 指令可以让你得到你正使用系 y的信息。

二、破解密码

在UNIX操作系统中, 所有系统使用者的密码都存放在一个文件中,这个文件存放在 /etc这个目录下面, 它的文件名就叫做passwd。如果读者认为所要做的工作就是拿到这个文件按照上面的密码登陆系统的话那就大错特错了。UNIX和Linux下的p asswd文件是特殊的,在它里面所有帐号的密码都已经经过重新编译的(也就是前面说过的DES加密方法),而且这些密码所进行的都是单向编译( one-way encrypted),也就是说没有办法可以反编译它的(decrypt)。

但是还是有些程序可以得到这些原始的密码。笔者向大家推荐一个破解密码的程序"Cracker Jack",它也是一个使用字典来对字典文件进行穷举的软件。首先"Cracker Jack"会把字典文件里的每一个值进行编译,然后将编译过的值与密码文件中的内容进行比较,得到相同的结果就会报告对应的未经编译密码。这个软件巧妙的绕过密码无法反编译的限制,使用穷举比较获得密码。使用这种原理获得密码的工具有许多,读者可以到网络上去搜寻一下。

三、获得密码文件

这是最困难的一部分。很明显,如果管理员有那么一个密码文件的话他当然不会放在那里让其它人舒舒服服的拿到的。入侵者必须找到好方法以不进入系统的方式拿到密码文件。这里笔者向大家介绍两种方法,大家可以试试,有可能会成功。

1.tc目录在FTP服务上不会被锁住,入侵可以用FTP client程序使用anoymously匿名帐号登陆,然后检查一下/etc/passwd是否为匿名设置了被读取的权限,如果有马上备份下来使用软件解码。

2.些系统中,/cgi-bin目录下会有个叫PHF的文件,如果准备入侵的服务器上有的话那就要方便的多了。因为PHF允许使用者对网站系统里的文件作远端读取,以此为据,用户可以使用浏览器抓取p asswd文件,只要在浏览器地址栏中键入URL:http://xxx.xxx.xxx/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd,其中xxx.xxx.xxx 是要入侵的网站名。

如果这两种方法都行不通的话,那入侵者必须实施其它的办法了。

在有些情况下入侵者找到的密码文件的第二部分是X、!或者*,那么说明该密码文件已经被锁死,这是系统管理员使用的加强安全的手段之一。但是将密码文件完全隐藏起来的情况是不太有的。通常情况下都会有未经锁死的密码文件备份在系统中,这样入侵者就可以加以利用,比如:入侵者通常会寻找/ etc/shadow目录或类似的目录,看能否找到密码文件的备份。

四、建立自己的shell帐号

经过二、三两个关键的步骤入侵者终于拿到了关键的密码文件,并且破解出了密码。现在可以运行TELNET程序,登陆主机了。当连上服务器时服务器会向你显示自己的一些信息,通常是U NIX、linux、 aix、 irix、 ultrix、 bsd 甚至是 DOS 和VAX/Vms;然后是Login提示符出现在屏幕上,这时键入得来的帐号和密码即可登陆系统。此时入侵者就可以利用自己的UNIX知识做自己喜欢做的事了。

最后对一份密码文件做一个分析,该文件内容如下:

root:1234aaab:0:1:Operator:/:/bin/csh

nobody:*:12345:12345::/:

daemon:*:1:1::/:

sys:*:2:2::/:/bin/csh

sun:123456hhh:0:1:Operator:/:/bin/csh

bin:*:3:3::/bin:

uucp:*:4:8::/var/spool/uucppublic:

news:*:6:6::/var/spool/news:/bin/csh

audit:*:9:9::/etc/security/audit:/bin/csh

sync::1:1::/:/bin/sync

sysdiag:*:0:1:Old System

Diagnostic:/usr/diag/sysdiag:/usr/diag/sysdiag/sysdiag

sundiag:*:0:1:System

Diagnostic:/usr/diag/sundiag:/usr/diag/sundiag/sundiag

tom:456lll45uu:100:20::/home/tom:/bin/csh

john:456fff76Sl:101:20:john:/home/john:/bin/csh

henry:AusTs45Yus:102:20:henry:/home/henry:/bin/csh

harry:SyduSrd5sY:103:20:harry:/home/harry:/bin/csh

steven:GEs45Yds5Ry:104:20:steven:/home/steven:/bin/csh

+::0:0:::

其中以":"分成几个栏位,比如: tom:456lll45uu:100:20:tomchang:/home/tom:/bin/csh的含义是:

User Name: tom

Password: 456lll45uu

User No: 100

Group No: 20

Real Name: tom chang

Home Dir: /home/tom

Shell: /bin/csh

读者可以发现以上诸如nobody、 daemon、 sys、 bin、 uucp、 news、 audit、 sysdiag、sundiag 等的密码栏位都是*,也就是说这些帐号的密码都已锁死,无法直接利用。

  • 1
  • 2
  • 下一页

相关内容