SAMSA黑客手册zix.docx
《SAMSA黑客手册zix.docx》由会员分享,可在线阅读,更多相关《SAMSA黑客手册zix.docx(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SAMSA黑客手册1999-11 北京摘要 入侵一个系统有很多步骤,阶段性很强的“工作”,其最终的目标是获得超级用户权限对目标系统的绝对控制。从对该系统一无所知开始,我们利用其提供的各种网络服务收集关于它的信息,这些信息暴露出系统的安全脆弱性或潜在入口;然后我们利用这些网络服务固有的或配置上的漏洞,试图从目标系统上取回重要信息(如口令文件)、或在上面执行命令,通过这些办法,我们有可能在该系统上获得一个普通的shell接口;接下来,我们再利用目标系统本地的操作系统或应用程序的漏洞试图提升我们在该系统上的权限,攫取超级用户控制;适当的善后工作包括隐藏身份、消除痕迹、安置特洛伊木马和留后门。为什么要
2、研究网络入侵技术?孙子兵法有云:知己知彼、百战不殆。为了更好的防卫网络入侵,为了提高网络安全,为了网络管理员甚至系统设计者能够防患于未然,将安全隐患消灭或尽量减少,必须使大家了解网络黑客入侵技术的具体细节。因此笔者先做一个假设的替换,把自己放到一个黑客的位置,然后再诚实地从那个位置把黑客的秘密手段向大家展示。(零)、确定目标攻击的基本条件,除了攻击者和攻击技术,就是攻击对象,特定的对象(特定子网、特定主机)对特定的攻击者构成吸引力,也召唤着与之相适应的技术。0.1) 目标明确攻击者明确地知道要攻击的目标,如某可恶的ISP,如某敌对观点的宣传站点,如解雇了攻击者的单位的主页,等等。0.2) 区段
3、搜索攻击者有大致的攻击范围(某一网段),但没有具体的主机作为目标,这时可以工具搜索出该网段上的所有机器,如用笔者开发的mping(multi-ping),用法如下:synopsis mping network netmaske.g.# mping 192.168.0.0 255.255.255.0第一个参数是欲搜索的网段,第二个参数是网络掩码。即可快速获取该网段上所有活动主机的IP地址。0.3) 抓网从一个有很多链接的WWW站点开始,顺藤摸瓜,自然可以找到许多域名和IP地址;0.4) 到网上去找站点列表很多网页上都有大量相关站点的列表;找到一个站点列表,就可以挨个儿进行攻击尝试了!(一)、情报
4、搜集从对攻击目标一无所知开始,通过种种尝试,获得越来越多的关于它的信息;黑客的哲学是:没有无用的信息。几乎关于攻击目标的任何知识都是可能的入侵入口,举凡操作系统类型、版本、用户名等,即使是一些表面上无害的信息,也可能通过和别的信息综合而构成暴露系统漏洞的消息。1.1) 端口扫描端口扫描是通过扫描找出目标系统开放的服务端口从而推断出目标系统上运行的服务,通过这些服务可能获取进一步的知识或通往系统的路径。端口扫描的程序所在多有,可从网上免费获取,如笔者使用的一种,其输出如下:e.g.# tcp_scan numen 1-655357:echo:9:discard:13:daytime:19:cha
5、rgen:21:ftp:23:telnet:25:smtp:37:time:79:finger111:sunrpc:512:exec:513:login:514:shell:515:printer:540:uucp:2049:nfsd:4045:lockd:6000:xwindow:6112:dtspc:7100:fs:# udp_scan numen 1-655357:echo:9:discard:13:daytime:19:chargen:37:time:42:name:69:tftp:111:sunrpc:161:UNKNOWN:177:UNKNOWN: .大概地说,TCP和UDP端口扫
6、描的机理都是依次(如从1号端口到n号)向目标系统的端口发出连接请求或服务请求包,若该端口上无服务程序守侯,则TCP协议层会回送一个RST(Reset)包,而UDP协议层则会回送一个ICMP Port Unreachable(端口不可达)包,如果没有收到这两种包,就说明该端口有一服务程序,再根据服务程序和著名端口号间的对应关系,既可推知目标系统上究竟运行着哪些服务了。观看端口扫描程序运行结果,如发现有下列服务:finger,sunrpc,nfs,nis(yp),tftp,ftp,telnet,http,shell(rsh),login(rlogin),smtp,exec(rexec),etc则应
7、引起注意。因为这些服务或者无偿向外界提供关于系统的重要知识,或者提供某种使用户可以“登录”到系统的方法,或者使得用户可以远程执行系统中的程序,所以都有可能是网络入侵的重要途径。在下面的叙述中读者将陆续看到这一点。1.2) finger如果端口扫描发现目标系统上开放了finger服务,这对攻击者来说真是福音,因为finger无偿地(即不需要任何认证手续)就向所有人提供关于系统用户的重要信息,而黑客入侵最重要的一种途径也即是冒充用户登录,所以开放finger实在是一件很危险的事。e.g.# finger rootLogin Name TTY Idle When Whereroot Super-Us
8、er console 1 Fri 10:03 :0root Super-User pts/6 6 Fri 12:56 root Super-User pts/7 Fri 10:11 root Super-User pts/8 1 Fri 10:04 :0.0root Super-User pts/1 4 Fri 10:08 :0.0root Super-User pts/11 3:16 Fri 09:53 root Super-User pts/10 Fri 13:08 root Super-User pts/12 1 Fri 10:13 :0.0这个例子说明,该机器上有很多人以root身份登
9、录着,也就是说,假使黑客能够以root身份登录进去,将不至于显得过于突出了(例中所有的机器域名替换成虚构的域名,但都有现实的基础,谨此说明,下同此)。# finger Login Name TTY Idle When Whereroot Super-User console 7 Fri 10:03 :0john Johnathan Swift pts/6 11 Fri 12:56 jack Michael Jackson pts/7 Fri 10:11 mary Mariah Carey pts/11 3:21 Fri 09:53 root Super-User pts/10 3 Fri 13
10、:08 sally Sallivan pts/11 12 Fri 11:07 finger 的意思是:请报告当前登录在它上面的所有用户情况。这个例子说明目前登录在上的有root、john、mary、sally等用户,他们分别来自虚构的、等主机。# finger 0Login Name TTY Idle When Wheredaemon ? bin ? sys ? leopard ? pts/5 john ? pts/12 lilac ? pts/8 yark ? pts/9 jack ? pts/9 weeper ? pts/9 sally ? pts/6 zebra ? pts/9 mary
11、 ? pts/9 finger 0的意思是:请报告它上面所有的合法用户及其登录情况。得到了这个情报,黑客就可以挨个尝试以这些用户的身份登录系统了,通常可以利用一些有一段时间没有登录过的用户,或趁某用户不在线上时以他的身份登录,这样做的目的是以免被该用户发现,因为合法用户应该知道自己是从哪儿登录过来,并且也知道自己开了几个终端,黑客登录必然影响who或w命令输出,用户如果发现这输出与自己的情况不吻合,自然就会发现自己的帐号被人盗用了。# finger 0Login Name TTY Idle When Wheredaemon ? bin ? sys ? leopard ? pts/5 john
12、? pts/12 lilac ? pts/8 yark ? pts/9 jack ? pts/9 weeper ? pts/9 sally ? pts/6 zebra ? pts/9 mary ? pts/9 finger 0是一种finger的级联,请求先发到,再由转给,最后的结果是给出的。# finger 0unknown host:这个命令则有可能造成某些有缺陷的finger daemon因资源耗尽而暂时瘫痪,也算一种DoS(Denial of Service:拒绝服务)攻击吧。1.3) rusers rusers命令,remote users,顾名思义,即询问远程主机关于其用户的信息,
13、跟finger有类似之处。e.g.# rusers -l numenroot numen:console May 7 10:03 22 (:0)john numen:pts/6 May 7 12:56 26 ()will numen:pts/7 May 7 10:11 ()mary numen:pts/11 May 7 09:53 3:37 ()paul numen:pts/10 May 7 13:08 18 () 列出numen上所有活动的用户。1.4) showmountNFS(Network File System:网络文件系统)是用来提供网络文件共享的,通过安装共享目录,可以实现不登录
14、到一台主机即可读写该机上的硬盘内容,这对攻击者来说是非常有利的。showmount命令列出一台机器上共享出来的所有目录及其信息。e.g.# showmount -e export table of :/export/home (everyone)表示:把/export/home共享给所有人;# showmount -a :/export/home:/export/home表示:和安装了共享出来的/export/home。1.5) rpcinfoRPC(Remote Procedure Call:远程过程调用)是指从一台机器上可以直接调用另一台机器上的过程,通过使用一种称为EDR(Externa
15、l Data Representation)的数据表示方法,前者把参数传给后者,后者把计算结果返回给前者。rpcinfo报告关于一台主机上提供的可供外部进程调用的过程的信息。e.g.# rpcinfo -p program vers proto port service 100000 4 tcp 111 rpcbind 100000 4 udp 111 rpcbind 100024 1 udp 32772 status 100024 1 tcp 32771 status 100021 4 udp 4045 nlockmgr 100001 2 udp 32778 rstatd 100083 1
16、tcp 32773 ttdbserver 100235 1 tcp 32775 100021 2 tcp 4045 nlockmgr 100005 1 udp 32781 mountd 100005 1 tcp 32776 mountd 100003 2 udp 2049 nfs 100011 1 udp 32822 rquotad 100002 2 udp 32823 rusersd 100002 3 tcp 33180 rusersd 100012 1 udp 32824 sprayd 100008 1 udp 32825 walld 100068 2 udp 32829 cmsd可以看到
17、提供了rpcbind, rusersd等过程服务,上面用到的rusers命令实际上就调用了目标机上的rusersd提供的过程。可惜没有打开rexd,如果打开了rexd,其效果就和没有password一样,攻击者可以随意运行目标机上的任何程序。1.6) x-windowsX-Windos系统是一种客户/服务器结构的窗口系统,每个拥有显示设备的主机系统都可以作为服务器,并可接受另一个主机系统作为其客户,简而言之:程序在客户系统上运行,而用户界面却显示在服务器的显示设备上,客户通过网络把应该显示出来的东西传送给服务器,服务器则把用户的输入通过网络传送给客户。通常是服务器和客户都在本机上,即:程序在本
18、机上运行,用户界面也显示在本机的显示设备上。远程的情况,概念则似乎有点别扭,依我的理解,主要用途在于,假设:我在主机A上通过telnet远程登录到主机B,这时如果我运行一些文本界面的程序,输入输出都可以通过telnet程序提供的伪终端进行,但如果我想运行一些图形界面的程序,由于telnet程序的伪终端不支持图形显示,就必须用到X-Windows系统了,需要做的工作是:首先,把主机A看作X服务器,使它同意接受主机B作它的客户,即在本机键入:A xhost +B其次,在telnet窗口(主机B)中键入:B DISPLAY=A:0.0B export DISPLAY意味着:把A当作主机B当前shel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAMSA 黑客 手册 zix
限制150内