我们可以从***者的角度出发,将***的步骤可分为探测(Probe)、***(Exploit)和隐藏(Conceal)。同时,***技术据此可分为探测技术、***技术和隐藏技术三大类,并在每类中对各种不同的***技术进行细分。
  一、探测技术和***测试平台的发展  
  探测是***在***开始前必需的情报收集工作,***者通过这个过程需要尽可能详细的了解***目标安全相关的方方面面信息,以便能够集中火力进行***。探测又可以分为三个基本步骤:踩点、扫描和查点。如下表所示:
***技术 ***方法
  探测技术
踩点 查询域名、DNS、网络勘察
  扫描
Ping 扫描
ipsweep
端口扫描
portsweep, resetscan
操作系统辨识
queso
漏洞扫描
satan, mscan
查点 ls, ntinfoscan
   1、三部曲:踩点、扫描和查点
  如果将服务器比作一个大楼,主机***信息收集及分析要做的工作就如在大楼中部署若干个摄像头,在大楼发生盗窃事件之后,对摄像头中的影像进行分析,进而为报案和“亡羊补牢”做准备。
 
   第一步:踩点。是指***者结合各种工具和技巧,以正常合法的途径对***目标进行窥探,对其安全情况建立完整的剖析图。在这个步骤中,主要收集的信息包括:各种联系信息,包括名字、邮件地址和电话号码、传真号;IP地址范围;DNS服务器;邮件服务器。对于一般用户来说,如果能够利用互联网中提供的大量信息来源,就能逐渐缩小范围,从而锁定所需了解的目标。几种实用的流行方式有:通过网页搜寻和链接搜索、利用互联网域名注册机构进行Whois查询、利用Traceroute获取网络拓扑结构信息等。
   第二步:扫描。是***者获取活动主机、开放服务、操作系统、安全漏洞等关键信息的重要技术。扫描技术包括Ping 扫描(确定哪些主机正在活动)、端口扫描(确定有哪些开放服务)、操作系统辨识(确定目标主机的操作系统类型)和安全漏洞扫描(获得目标上存在着哪些可利用的安全漏洞)。Ping扫射可以帮助我们判断哪些系统是存活的。而通过端口扫描可以同目标系统的某个端口来建立连接,从而确定系统目前提供什么样的服务或者哪些端口正处于侦听状态。著名的扫描工具包括nmap,netcat 等,知名的安全漏洞扫描工具包括开源的nessus 及一些商业漏洞扫描产品如ISS 的Scanner 系列产品。另外,在网络环境下,网络扫描技术则是指检测目标系统是否同互联网连接、所提供的网络服务类型等等。通过网络扫描获得的信息有:被扫描系统所运行的TCP/UDP服务;系统体系结构;通过互联网可以访问的IP地址范围;操作系统类型等。
   第三步:查点。是***者常采用的从目标系统中抽取有效账号或导出资源名的技术。通常这种信息是通过主动同目标系统建立连接来获得的,因此这种查询在本质上要比踩点和端口扫描更具有***效果。查点技术通常和操作系统有关,所收集的信息包括用户名和组名信息、系统类型信息、路由表信息和SNMP信息等。
  综观本年度比较热门的***事件,可以看到,在寻找***目标的过程中,以下手段明显加强:
   (1)通过视频文件寻找“肉鸡”。在今年,这种方法大有星火燎原之势,***者首先要配置***,然后制作视频***,如RM***、WMV***等,然后通过P2P软件、QQ发送、论坛等渠道进行传播,用户很难察觉。
   (2)根据漏洞公告寻找“肉鸡”。现在,关于漏洞技术的网站专业性更强,在 [url]http://www.milw0rm.com[/url]这个网站上,经常会公布一些知名***发现的漏洞,从远程***、本地***到脚本***等,描述十分详细。在漏洞补丁没有发布之前,这些***说明可能会进一步加大网络安全威胁。
    (3)利用社会心理学、社会工程学获取目标信息。比如,通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段,取得自身利益的手法,近年来已呈迅速上升甚至滥用的趋势。目前,已经有***者通过“溯雪+社会工程学”的形式破解了263信箱。
 
二、2007年网络***和隐藏技术发展趋势
1、窃听技术的发展趋势
  窃听技术是***者通过非法手段对系统活动的监视从而获得一些安全关键信息。目前属于窃听技术的流行***方法有键击记录器、网络监听、非法访问数据和攫取密码文件。可以从以下几个方面来分析。
        (1)键击记录器。这是植入操作系统内核的隐蔽软件,通常实现为一个键盘设备驱动程序,能够把每次键击都记录下来,存放到***者指定的隐藏的本地文件中。著名的有Win32 平台下适用的IKS 等。
   (2)网络监听。这是***者一旦在目标网络上获得一个立足点之后刺探网络情报的最有效方法,通过设置网卡的混杂(promiscuous)模式获得网络上所有的数据包,并从中抽取安全关键信息,如明文方式传输的口令。Unix 平台下提供了libpcap 网络监听工具库和tcpdump、dsniff 等著名监听工具,而在Win32 平台下也拥有WinPcap监听工具库和windump、dsniff forWin32、Sniffer等免费工具,另外还有专业工具Sniffer Pro等。
   (3)非法访问数据。这是指***者或内部人员违反安全策略对其访问权限之外的数据进行非法访问。
   (4)攫取密码文件。这是***者进行口令破解获取特权用户或其他用户口令的必要前提,关键的密码文件如Windows 9x下的PWL 文件、Windows NT/2000下的SAM文件和Unix平台下的/etc/password 和/etc/shadow。
2、欺骗技术的发展趋势
  欺骗技术是***者通过冒充正常用户以获取对***目标访问权或获取关键信息的***方法,属于此类的有获取口令、恶意代码、网络欺骗等***手法。下面,我们归纳了2007年比较热门的一些欺骗技术。具体如下:
   第1种:获取口令的方式。主要有通过缺省口令、口令猜测和口令破解三种途径。某些软件和网络设备在初始化时,会设置缺省的用户名和密码,但也给***者提供了最容易利用的脆弱点。口令猜测则是历史最为悠久的***手段,由于用户普遍缺乏安全意识,不设密码或使用弱密码的情况随处可见,这也为***者进行口令猜测提供了可能。口令破解技术则提供了进行口令猜测的自动化工具,通常需要***者首先获取密码文件,然后遍历字典或高频密码列表从而找到正确的口令。著名的工具有John the Ripple、Crack和适用于Win32平台的L0phtcrack等。
       第2种:恶意代码。包括特洛伊***应用程序、邮件病毒、网页病毒等,通常冒充成有用的软件工具、重要的信息等,诱导用户下载运行或利用邮件客户端和浏览器的自动运行机制,在启动后暗地里安装邪恶的或破坏性软件的程序,通常为***者给出能够完全控制该主机的远程连接。
   第3种:网络欺骗。是***者向***目标发送冒充其信任主机的网络数据包,达到获取访问权或执行命令的***方法。具体的有IP 欺骗、会话劫持、ARP(地址解析协议)重定向和RIP(路由信息协议)路由欺骗等。
   (1)IP 欺骗。是指***者将其发送的网络数据包的源IP地址篡改为***目标所信任的某台主机的IP地址,从而骗取***目标信任的一种网络欺骗***方法。通用应用于***Unix 平台下通过IP 地址进行认证的一些远程服务如rlogin、rsh等,也常应用于穿透防火墙。
   (2)会话劫持指。是指***者冒充网络正常会话中的某一方,从而欺骗另一方执行其所要的操作。目前较知名的如TCP 会话劫持,通过监听和猜测TCP 会话双方的ACK,插入包含期待ACK的数据包,能够冒充会话一方达到在远程主机上执行命令的目的。支持TCP 会话劫持的工具有最初的Juggernaut 产品和著名的开源工具Hunt。
   (3)ARP欺骗。这种方法提供将IP地址动态映射到MAC 地址的机制,但ARP机制很容易被欺骗,***主机可以发送假冒的ARP 回答给目标主机发起的ARP查询,从而使其错误地将网络数据包都发往***主机,导致拒绝服务或者中间人***。由于RIP没有身份认证机制,因此***者很容易发送冒充的数据包欺骗RIP 路由器,使之将网络流量路由到指定的主机而不是真正希望的主机,达到***的目标。
  2007年以来,通过欺骗的方式获得机密信息的事件越来越多,在国内比较严重的银行诈骗事件已经让不少用户开始感觉到网络中存在的安全隐患。下面是国际反钓鱼组织公布了一个典型案例。***者发了一个欺骗的邮件并声称:按照年度计划,用户的数据库信息需要进行例行更新,并给出了一个“To update your account address”连接地址。由于这封Email来自[email][email protected][/email],因此,一般人不会太怀疑。不过,细心的用户会发现,表面地址是[url]http://comcast-database.biz/[/url],实际地址是[url]http://66.113.136.225[/url]。很明显,这个***者利用了URL欺骗技术,以达到其不可告人的目的!
  此外,还有不少流氓软件通过欺骗技术,未经许可强行潜伏到用户电脑中,而且此类程序无卸载程序,无法正常卸载和删除,强行删除后还会自动生成。有迹象表明,病毒、***和流氓软件正紧密结合,日益趋于商业化、集团化,并且已经形成了一根完整的产业链条。
   3、拒绝服务***技术的发展
  拒绝服务***指中断或者完全拒绝对合法用户、网络、系统和其他资源的服务的***方法,被认为是最邪恶的***,其意图就是彻底地破坏,而这往往比真正取得他们的访问权要容易得多,同时所需的工具在网络上也唾手可得。因此拒绝服务***,特别是分布式拒绝服务***对目前的互联网络构成了严重的威胁,造成的经济损失也极为庞大。拒绝服务***的类型按其***形式划分包括导致异常型、资源耗尽型、分布式拒绝服务***(DDoS)。
   第1种,导致异常型拒绝服务***。这种方法利用软硬件实现上的编程缺陷,导致其出现异常,从而使其拒绝服务。如著名的Ping of Death***和利用IP协议栈对IP 分片重叠处理异常的Treadrop***。
   第2种,资源耗尽型拒绝服务***。这种方法通过大量消耗资源使得***目标由于资源耗尽不能提供正常的服务。根据资源类型的不同可分为带宽耗尽和系统资源耗尽两类。带宽耗尽***的本质是***者通过放大等技巧消耗掉目标网络的所有可用带宽。系统资源耗尽***指对系统内存、CPU 或程序中的其他资源进行消耗,使其无法满足正常提供服务的需求。著名的Syn Flood ***即是通过向目标服务发送大量的数据包,造成服务的连接队列耗尽,无法再为其他正常的连接请求提供服务。
   第3种,分布式拒绝服务***。这种方法通过控制多台傀儡主机,利用他们的带宽资源集中向***目标发动总攻,从而耗尽其带宽或系统资源的***形式。DDoS***的第一步是瞄准并获得尽可能多的傀儡主机的系统管理员访问权,然后上传DDoS***并运行。目前著名的DDoS 工具有TFN(Tribe FloodNetwork)、TFN2K、Trinoo、WinTrinoo和Stacheldraht等。
        从2007年网络***技术的发展情况来看,最近发生的拒绝服务***事件大多与联机游戏有关。某些玩家对在游戏中被人杀死或丢失他们喜爱的武器不满意,因此发动拒绝服务***,许多服务器已经成为这种***的牺牲品。另外,使用拒绝服务进行网络敲诈勒索的事件仍然十分频繁,***者通过在短暂而非紧要的时间段内发动***,对用户的数据构成威胁,受害者则不得不为此而支付“保护费”。
   4、数据驱动***技术及其新发展
  数据驱动***是通过向某个程序发送数据,以产生非预期结果的***,通常为***者给出访问目标系统的权限,数据驱动***分为缓冲区溢出***、格式化字符串***、输入验证***、同步漏洞***、信任漏洞***等。
   第1种,缓冲区溢出***。缓冲区溢出***的原理是向程序缓冲区写入超出其边界的内容,造成缓冲区的溢出,使得程序转而执行其他***者指定的代码,通常是为***者打开远程连接的ShellCode,以达到***目标。近年来著名的蠕虫如Code-Red、SQL.Slammer、Blaster 和Sasser 等,都是通过缓冲区溢出***获得系统权限后进行传播。
   第2种,同步漏洞***。这种方法主要是利用程序在处理同步操作时的缺陷,如竞争状态。信号处理等问题,以获取更高权限的访问。发掘信任漏洞***则利用程序滥设的信任关系获取访问权的一种方法,著名的有Win32 平台下互为映像的本地和域Administrator 凭证、LSA 密码(Local SecurityAuthority)和Unix 平台下SUID 权限的滥用和X Window 系统的xhost 认证机制等。
   第3种,格式化字符串***。这种方法主要是利用由于格式化函数的微妙程序设计错误造成的安全漏洞,通过传递精心编制的含有格式化指令的文本字符串,以使目标程序执行任意命令。输入验证***针对程序未能对输入进行有效的验证的安全漏洞,使得***者能够让程序执行指定的命令。
  下面是一个很有代表性的例子。打开某些网页时,可以把网址中的“/”换成“%5c”然后提交,这样就可以暴出数据库的路径。成功后,会有类似的提示:“确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。” 在Google或者百度中,搜索关键词“wishshow.asp?id=”,找到一些具有缺陷的的许愿板程序。本例是一个台湾测试站点,地址为[url]http://web.gges.tp.edu.tw/asp/wish/wishshow.asp?id=117[/url]。在wish后,用“%5c”替换“/”,地址就变成了[url]http://web.gges.tp.edu.tw/asp/wish%5c[/url] wishshow.asp?id=117,这样就可以暴出对方数据库了。根据错误提示,数据库是db.mdb,而且还可以直接下载。如图4所示。
  “%5c”并不是网页本身的漏洞,而是利用了IIS解码方式的一个缺陷。实际上是“\”的十六进制代码,是“\”的另一种表示法。但是,提交“\”和“%5c”却会产生不同的结果。在IE中,我们把下面第一个地址中的“/”换成“\”提交:
 [url]http://web.gges.tp.edu.tw/asp/wish/wishshow.asp?id=117[/url]
 [url]http://web.gges.tp.edu.tw/asp/wish[/url]\wishshow.asp?id=117
  二者的访问结果是一样的。IE会自动把“\”转变成“/”,从而访问到同一地址。但是,当我们把“/”换成十六进制写法“%5c”时,IE就不会对此进行转换,地址中的“%5c”被原样提交了。2007年以来,针对网站、论坛等程序的***依然是一大热点,一些大学网站、论坛甚至一些知名企业的站点都遭遇了不同程度的***。比较热门的事件有:OBlog2.52文件删除漏洞、COCOON在线文件管理器上传漏洞、PJBlog v2.2用户提权再提权、BBSXP 6.0 SQL版的版主提权漏洞、雪人“SF v2.5 for Access”版论坛漏洞等,这些***手法都综合了多种技巧,尤其是数据驱动***技术的运用。
        5、隐藏技术及其新发展
  ***者在完成其***目标后,通常会采取隐藏技术来消除***留下的蛛丝马迹,避免被系统管理员发现,同时还会尽量保留隐蔽的通道,使其以后还能轻易的重新进入目标系统。隐藏技术主要包括日志清理、内核套件、安装后门等。
   第1种,日志清理。日志清理主要对系统日志中***者留下的访问记录进行清除,从而有效地抹除自己的动踪迹。Unix平台下较常用的日志清理工具包括zap、wzap、wted 和remove。***者通常在获得特权用户访问权后会安装一些后门工具,以便轻易地重新进入或远程控制该主机,著名的后门工具包括BO、netbus和称为“瑞士×××”的netcat等;***者还可对系统程序进行特洛伊***化,使其隐藏***者留下的程序、服务等。
   第2种,内核套件。内核套件则直接控制操作系统内核,提供给***者一个完整的隐藏自身的工具包,著名的有knark for Linux、Linux Root Kit 及rootkit。
   第3种,安装***后门。***的危害性在于它对电脑系统强大的控制和破坏能力,窃取密码、控制系统操作、进行文件操作等等,一般的***都有客户端和服务器端两个执行程序,其中客户端是用于***者远程控制植入***的机器,服务器端程序即是***程序。***在被植入***主机后,它一般会通过一定的方式把***主机的信息,如主机的IP地址、***植入的端口等发送给***者,这样***者有这些信息才能够与***里应外合控制***主机。本文将通过网络盒子NetBox做一个***,它可以方便的将ASP等脚本编译成为独立运行的执行程序,完全不用考虑平台兼容性要求。步骤如下:
   第1步:创建一个NetBox应用。创建一个空的目录,假设是c:\web;同时,在目录中创建一个文件,命名为main.box,其内容为:
  Dim httpd
  '------------设置在服务中运行的名称,可适当修改进行隐藏---------------------
  Shell.Service.RunService "NBWeb", "NetBox Web Server", "NetBox Http Server Sample"
  '---------------------- 设置服务器启动---------------------
  Sub OnServiceStart()
    Set httpd = CreateObject("NetBox.HttpServer")
  '-------以下设置浏览端口,可修改为其他参数,或更改wwwroot目录----
    If httpd.Create("", 8080) = 0 Then
    Set host = httpd.AddHost("", "\wwwroot")
    host.EnableScript = true
    host.AddDefault "default.asp"
    host.AddDefault "default.htm"
    httpd.Start
    else
    Shell.Quit 0
    end if
  End Sub
  Sub OnServiceStop()
    httpd.Close
  End Sub
  Sub OnServicePause()
    httpd.Stop
  End Sub
  Sub OnServiceResume()
    httpd.Start
  End Sub
   第2步:设置***运行环境。在c:\web目录中再创建一个子目录wwwroot,并将我们所需要的ASP***文件全部复制到wwwroot 中,这里选用的是海阳顶端ASP***。此时,ASP运行环境应该已经准备好了。为了运行新建的NetBox 应用,必须确认8080端口没有被其他程序占用。双击main.box文件,就可以在窗口右下角看见NetBox的图标。此时,NetBox 已经正常运行了。现在,访问[url]http://localhost:8080/[/url]测试ASP***是否能正常运行。这种***的好处是,不用担心有日志记录。但是现在它还远不是一个后门,只是提供了与IIS相当的功能
   第3步:编译。执行“NetBox Deployment Wizard”,点击“选择文件夹”,找到刚才建立的目录C:\web,设置文件类型和输出文件名后,点“Build...(编译)”按钮,开始编译,就得到了编译成功的那个执行文件。因为这个例程是以服务方式创建的Web 服务器,所以可以在命令行下执行:myapp -install将应用安装成为服务,这样,系统无须登录便可以自动运行应用了。如果需要卸载服务,则可以在命令行下执行如下命令:myapp –remove。(myapp代表输出的应用文件名,如本例中的test),如图5所示。
   第4步:隐藏服务。要达到“神不知鬼不觉”的效果,首先需要把应用程序添加为服务,我们可以使用Windows提供的Instsrv.exe和Srvany.exe这两个小软件。在命令行下,先把Instsrv.exe把Srvany.exe注册为服务。格式为:INSTSRV 服务名 SRVANY的路径,如:“INSTSRV SYSTEM C:\WEB\SRVANY.EXE”。其中SYSTEM是为了便于隐藏服务名。
   第5步:添加注册表键值。注册成功后,打开注册表如下键值:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SYSTEM]。SYSTEM是刚才我们注册的服务名,在SYSTEM下面先建立一个项PARAMETERS,然后在这个项上建立一个键值APPLICATION,填上我们要执行的文件路径如C:\web\test.exe,就可以了。
   第6步:启动服务。方法有两种,第一种是在图形界面,直接进入“管理工具”下的“服务”面板;另一种是在命令行下,启动命令为:“NET START SYSTEM”,停止命令为:“NET STOP SYSTEM”。如果要将这个服务删除,可以用如下命令:“SC DELETE SYSTEM”。
   第7步:制作并发布***。结合批处理和脚本把这个做成自解压文件,或者其他的上传方式,比如通过后台数据库备份上传后再修改密码。
  值得注意的是,2007年***技术发展迅猛,除了一些老牌***,其他有特色的***也让人头疼不已,例如管理型***——ncph远程控制;国产***新秀PCView 2007;五毒俱全的蜜蜂大盗;***Erazer Lite;另类的远程控制工具JXWebSver等。这些***隐藏技术的不断提高,也给用户带来了许多麻烦。