第11章黑客技术11.1黑客的动机11.2黑客攻击的流程11.3黑客技术概述11.4针对网络的攻击11.5本章小结习题黑客的动机究竟是什么?在回答这个问题前,我们应对黑客的种类有所了解,原因是不同种类的黑客动机有着本质的区别。从黑客行为上划分,黑客有“善意”与“恶意”两种,即所谓白帽(WhiteHat)及黑帽(BlackHat)。白帽利用他们的技能做一些善事,而黑帽则利用他们的技能做一些恶事。白帽长期致力于改善计算机社会及其资源,为了改善服务质量及产品,他们不断寻找弱点及脆弱性并公布于众。与白帽的动机相反,黑帽主要从事一些破坏活动,从事的是一种犯罪行为。11.1黑客的动机大量的案例分析表明黑帽具有以下主要犯罪动机。(1)好奇心许多黑帽声称,他们只是对计算机及电话网感到好奇,希望通过探究这些网络更好地了解它们是如何工作的。(2)个人声望通过破坏具有高价值的目标以提高在黑客社会中的可信度及知名度。(3)智力挑战为了向自己的智力极限挑战或为了向他人炫耀,证明自己的能力;还有些甚至不过是想做个“游戏高手”或仅仅为了“玩玩”而已。(4)窃取情报在Internet上监视个人、企业及竞争对手的活动信息及数据文件,以达到窃取情报的目的。(5)报复电脑罪犯感到其雇主本该提升自己、增加薪水或以其他方式承认他的工作。电脑犯罪活动成为他反击雇主的方法,也希望借此引起别人的注意。(6)金钱有相当一部分电脑犯罪是为了赚取金钱。(7)政治目的任何政治因素都会反映到网络领域。主要表现有:①敌对国之间利用网络的破坏活动;②个人及组织对政府不满而产生的破坏活动。这类黑帽的动机不是钱,几乎永远都是为政治,一般采用的手法包括更改网页、植入电脑病毒等。尽管黑客攻击系统的技能有高低之分,入侵系统手法多种多样,但他们对目标系统实施攻击的流程却大致相同。其攻击过程可归纳为以下9个步骤:踩点(FootPrinting)、扫描(scanning)、查点(enumeration)、获取访问权(GainingAccess)、权限提升(EscalatingPrivilege)、窃取(pilfering)、掩盖踪迹(CoveringTrack)、创建后门(CreatingBackDoors)、拒绝服务攻击(DenialofServices)。黑客攻击流程如图11.1所示。11.2黑客攻击的流程图11.1黑客攻击流程图“踩点”原意为策划一项盗窃活动的准备阶段。举例来说,当盗贼决定抢劫一家银行时,他们不会大摇大摆地走进去直接要钱,而是狠下一番工夫来搜集这家银行的相关信息,包括武装押运车的路线及运送时间、摄像头的位置、逃跑出口等信息。在黑客攻击领域,“踩点”是传统概念的电子化形式。“踩点”的主要目的是获取目标的如下信息:11.2.1踩点(1)因特网网络域名、网络地址分配、域名服务器、邮件交换主机、网关等关键系统的位置及软硬件信息。(2)内联网与Internet内容类似,但主要关注内部网络的独立地址空间及名称空间。(3)远程访问模拟/数字电话号码和VPN访问点。(4)外联网与合作伙伴及子公司的网络的连接地址、连接类型及访问控制机制。(5)开放资源未在前4类中列出的信息,例如Usenet、雇员配置文件等。为达到以上目的,黑客常采用以下技术。1.开放信息源搜索通过一些标准搜索引擎,揭示一些有价值的信息。例如,通过使用Usenet工具检索新闻组(newsgroup)工作帖子,往往能揭示许多有用东西。通过使用Google检索Web的根路径C:\\Inetpub,揭示出目标系统为WindowsNT/2000。2.whois查询whois是目标Internet域名注册数据库。目前,可用的whois数据库很多,例如,查询com、net、edu及org等结尾的域名可通过得到,而查询美国以外的域名则应通过查询数据库服务器的地址后完成进一步的查询。通过对whois数据库的查询,黑客能够得到以下用于发动攻击的重要信息:注册机构,得到特定的注册信息和相关的whois服务器;机构本身,得到与特定目标相关的全部信息;域名,得到与某个域名相关的全部信息;网络,得到与某个网络或IP相关的全部信息;联系点(POC),得到与某个人(一般是管理联系人)的相关信息。例如,下面是通过公司的信息:Registrant:IBMCorporation(IBMDOM)OldOrchardRd.Armonk,NY10504USDomainName:IBM.COMAdministrativeContact,TechnicalContact:Trio,NicholasR(SZFHGULFPI)nrt@WATSON.IBM.COMPOBOX218YORKTOWNHTS,NY105980218US(914)94518501231231234Recordexpireson20Mar2005.Recordcreatedon19Mar1986.Databaselastupdatedon8May200321:18:57EDT.Domainserversinlistedorder:NS.WATSON.IBM.COM129.34.20.80NS.ALMADEN.IBM.COM198.4.83.35NS.AUSTIN.IBM.COM192.35.232.34NS.ERS.IBM.COM204.146.173.353.DNS区域传送DNS区域传送是一种DNS服务器的冗余机制。通过该机制,辅DNS服务器能够从其主DNS服务器更新自己的数据,以便主DNS服务器不可用时,辅DNS服务器能够接替主DNS服务器工作。正常情况下,DNS区域传送操作只对辅DNS服务器开放。然而,当系统管理员配置错误时,将导致任何主机均可请求主DNS服务器提供一个区域数据的拷贝,以至于目标域中所有主机信息泄露。能够实现DNS区域传送的常用工具有dig、nslookup及Windows版本的SamSpade(其网址为)。通过踩点已获得一定信息(IP地址范围、DNS服务器地址、邮件服务器地址等),下一步需要确定目标网络范围内哪些系统是“活动”的,以及它们提供哪些服务。与盗窃案之前的踩点相比,扫描就像是辨别建筑物的位置并观察它们有哪些门窗。扫描的主要目的是使攻击者对攻击的目标系统所提供的各种服务进行评估,以便集中精力在最有希望的途径上发动攻击。扫描中采用的主要技术有Ping扫射(PingSweep)、TCP/UDP端口扫描、操作系统检测以及旗标(banner)的获取。11.2.2扫描1.Ping扫射Ping扫射是判别主机是否“活动”的有效方式。Ping用于向目标主机发送“ICMP”回射请求(EchoRequest)分组,并期待由此引发的表明目标系统“活动”的回射应答(EchoReply)分组。常用的ping扫射工具有操作系统的Ping命令及用于扫射网段的fping、WS_ping等。2.端口扫射端口扫描就是连接到目标机的TCP和UDP端口上,确定哪些服务正在运行及服务的版本号,以便发现相应服务程序的漏洞。著名的扫描工具有UNIX系统上运行的Netcat()及Nmap(),Windows系统上运行的superscan()及NetScanToolPro2003()。3.操作系统检测由于许多漏洞是和操作系统紧密相关的,因此,确定操作系统类型对于黑客攻击目标来说也十分重要。目前用于探测操作系统的技术主要可以分为两类:利用系统旗标信息和利用TCP/IP堆栈指纹。每种技术进一步细分为主动鉴别及被动鉴别。目前,常用的检测工具有Nmap、Queso()、Siphon()。注:为什么要识别远程主机的OS?OS识别是入侵或安全检测需要收集的重要信息,是分析漏洞和各种安全隐患的基础。只有确定了远程主机的操作系统类型,版本,才能对其安全状况做进一步评估。2:什么能标识远程主机的OS信息?端口及其运行的服务,主机上运行的程序种类及版本信息,TCP/IP协议栈实现的差异等等,凡是能标明某个类型[版本]OS与其他所有不同类型[版本]OS不同的差别均可作为标识远程主机OS信息的手段。4.旗标获取最后一种扫描手段是旗标获取。在旗标获取方法中,使用一个打开端口来联系和识别系统提供的服务及版本号。最常用的方法是连接到一个端口,按Enter键几次,看返回什么类型的信息。例如:\[Netat_svr#\]Telnet192.168.5.3322SSH-1.99-OpenSSH_3.1p1表明该端口提供SSH服务,版本号为3.1p1。旗标是重要而危险的信息!了解了旗标和其一般获取方法,你就知道该怎么样来利用那些已经公布出来的应用程序漏洞(现在很多是溢出或格式化字符串类的)了,通过扫描,入侵者掌握了目标系统所使用的操作系统,下一步工作是查点。查点就是搜索特定系统上用户和用户组名、路由表、SNMP信息、共享资源、服务程序及旗标等信息。查点所采用的技术依操作系统而定。在Windows系统上主要采用的技术有“查点NetBIOS”线路、空会话(NullSession)、SNMP代理、活动目录(ActiveDirectory)等。Windows系统上主要使用以下工具:(1)Windows系统命令netview、nbtstat、nbtscan及nltest。11.2.3查点(2)Netviewx();Userdump();User2sid();GetAcct();DumpSec();Legion();NAT()。在UNIX系统上采用的技术有RPC查点、NIS查点、NFS查点及SNMP查点等。UNIX系统上常用的工具有rpcinfo、rpcdump、showmount、finger、rwho、ruser、nmap、telnet、nc及snmpwalk等。在搜集到目标系统的足够信息后,下一步要完成的工作自然是得到目标系统的访问权进而完成对目标系统的入侵。对于Windows系统采用的主要技术有NetBIOSSMB密码猜测(包括手工及字典猜测)、窃听LM及NTLM认证散列、攻击IISWeb服务器及远程缓冲区溢出。而UNIX系统采用的主要技术有蛮力密码攻击;密码窃听;通过向某个活动的服务发送精心构造的数据,以产生攻击者所希望的结果的数据驱动式攻击(例如缓冲区溢出、输入验证、字典攻击等);RPC攻击;NFS攻击以及针对X-Windows系统的攻击等。11.2.4获取访问权著名的密码窃听工具有snifferpro()、TCPdump、LC4(L0phtcrackversion4,)、readsmb。字典攻击工具有LC4、JohntheRIPper(