缩减Windows的网络服务 (www.team509.com)

Windows Server IPSec策略服务无法启动的根因分析与修复 IPSec策略服务(PolicyAgent)是Windows内核级安全策略执行引擎,其‘无法启动服务’错误并非传统服务崩溃,而是策略语义校验失败导致的主动拒绝加载。它依赖注册表策略快照、组策略继承关系及内核签名验证三层机制,在Server 2016+还新增了证书链可信性强制检查。该机制保障了策略执行的安全性,但也使故障排查高度依赖事件查看器‘安全’日志中的SubStatus错误码(如0x80070005、0x80070057),而非系统日志或GUI提示。典型应用场景包括域控安全加固、L2TP/IPSec V 阅读详情
这是翻译的文章,原文为法文,地址http://www.hsc.fr/ressources/breves/min_srv_res_win.html,英文版地址http://www.hsc.fr/ressources/breves/min_srv_res_win.en.html。

简单说来,这篇文章就是讲怎样把Windows的端口尽量全部关闭掉。




作者:      Jean-Baptiste Marchand
时间:      2002-09-02
最后更新:  2004-03-05
翻译:      doublelee
翻译日期:  2005-06-08

  这是翻译的文章,原文为法文,地址http://www.hsc.fr/ressources/breves/min_srv_res_win.html,英文版地址http://www.hsc.fr/ressources/breves/min_srv_res_win.en.html。


  ----[ 概述 ]----
  
  默认安装的Windows系统安装了多种网络服务(network services),通常不需要对外提供网络服务的情况下,停止这些服务是很有必要的。

  本文档提供一个完成这项任务的方法,技术细节可以查询《Windows network services internals》一书。该书位于http://www.hsc.fr/ressources/articles/win_net_srv/

  《Windows network services for Samba folks》的PPT可以在http://www.hsc.fr/ressources/presentations/sambaxp2003/找到,介绍了Windows核心网络服务的一些知识。

  本文所举例子都以这样两个系统为例:默认安装的Windows 2000 Server和默认安装的Windows XP(无DHCP,设置唯一的IPv4地址192.70.106.143)。当然,最好的选择是安装系统的时候就选择不去安装那些不会用到的服务,不过即使那样你还是最好按照下面的描述来重新部署你的windows。

----[ 服务查询 ]----

  找到本地运行了哪些网络服务一个快速的方法就是用 netstat 命令罗列出本地开放的TCP和UDP端口。

  在一台 Windows 2000 上,netstat -an 可能得到这样的输出:

C:WINNT>netstat -an

Active Connections

 Proto  Local Address          Foreign Address        State
 TCP    0.0.0.0:25             0.0.0.0:0              LISTENING
 TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:443            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:1027           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:3372           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:4983           0.0.0.0:0              LISTENING
 TCP    192.70.106.143:139     0.0.0.0:0              LISTENING
 UDP    0.0.0.0:135            *:*
 UDP    0.0.0.0:445            *:*
 UDP    0.0.0.0:1028           *:*
 UDP    0.0.0.0:1029           *:*
 UDP    0.0.0.0:3456           *:*
 UDP    192.70.106.143:137     *:*
 UDP    192.70.106.143:138     *:*
 UDP    192.70.106.143:500     *:*

  在一台 Windows XP 上, 可以加上 -o 选项以列出对应的进程ID,一个 netstat -ano 命令返回如下:

C:WINDOWS>netstat -ano

Active Connections

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       884
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
 TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       976
 TCP    0.0.0.0:5000           0.0.0.0:0              LISTENING       1160
 TCP    192.70.106.143:139     0.0.0.0:0              LISTENING       4
 UDP    0.0.0.0:135            *:*                                    884
 UDP    0.0.0.0:445            *:*                                    4
 UDP    0.0.0.0:500            *:*                                    704
 UDP    0.0.0.0:1026           *:*                                    1112
 UDP    0.0.0.0:1027           *:*                                    976
 UDP    127.0.0.1:123          *:*                                    976
 UDP    127.0.0.1:1900         *:*                                    1160
 UDP    192.70.106.143:123     *:*                                    976
 UDP    192.70.106.143:137     *:*                                    4
 UDP    192.70.106.143:138     *:*                                    4
 UDP    192.70.106.143:1900    *:*                                    1160

_警告_:

  netstat命令其实并不是报告了TCP和UDP端口的状态,实际上报告的是关于TDI传输地址和TDI连接端点的信息,而只有TDI连接端点才代表了TCP或UDP socket。

  当Windows系统向外建立连接的时候,主动打开的本地端口作为源端口被标以 LISTENING 状态。

  下面的例子中,本地系统通过1367端口和远程系统的22端口建立了TCP连接。在过滤了其他不含1367的输出后,我们看到netstat命令的输出如下:
  
C:WINDOWS>netstat -anp tcp | find ":1367"
 TCP    0.0.0.0:1367           0.0.0.0:0              LISTENING
 TCP    192.70.106.142:1367    192.70.106.76:22       ESTABLISHED

  第二行表明从本地1367端口到对方22端口的连接已经建立,然而第一行却错误地报告了了1367端口处于LISTENING状态,其实这个端口并没有绑定一个服务。就像这样,任何连出的TCP连接,都会导致一个多余的行,错误显示一个侦听状态的端口。我们务必把这种情况和真正处于侦听状态的端口区分开来。

  注意:Windows Server 2003中修复了这个bug。

  一旦确认了打开的端口,我们就要给出方法来一步步地关掉它们。

  (译者注:这实际上是Windows NT,2000,XP中netstat命令长期存在的一个bug,可以参考http://support.microsoft.com/?id=331078)


----[ 禁用无用的服务 ]----

  关闭端口,首先要做的事就是禁用服务。我们将用net stop命令来停止服务。然而为了防止重新启动后服务再次启动,这些服务的启动模式必须改为手动或者禁用。有些还要特别处理,否则还会被系统“手动”地自动启动。
  
  在Windows 2000中,可以在服务管理器中调整一个服务的启动类别。

C:WINDOWS>services.msc

  服务类别(自动,手动,已禁用)可以在每个服务的属性页中修改。
  
  在Windows XP中,sc命令(Windows 2000 Resource Kit中也提供该工具)可以修改服务的启动类别,像这样:

C:WINDOWS>sc config service_name start= disabled

(start=和disabled之间必须有空格)

下面的命令

C:WINDOWS>sc config service_name start= manual

调整服务的启动类别为手动。

--[ Windows 2000 ]--

 -[ IIS 5 ]-

  在Windows 2000 Server中,默认运行了IIS 5.0,包括了SMTP服务,HTTP服务和IIS管理服务。为了关闭TCP端口25、80、443、UDP端口3456,一个IIS管理端口(在我们的例子中是4983)和两个大于1023的RPC服务端口,这些服务必须停止。
  
  停止这些服务最快捷的方法就是停止iisadmin服务(其他服务依赖于此服务):

C:WINNT>net stop iisadmin

下面的服务依赖于 IIS Admin 服务。
停止 IIS Admin 服务也会停止这些服务。

  World Wide Web Publishing Service
  Simple Mail Transport Protocol (SMTP)

是否继续此操作? (Y/N) [N]: y
World Wide Web Publishing Service 服务正在停止.
World Wide Web Publishing Service 服务已成功停止。

Simple Mail Transport Protocol (SMTP) 服务正在停止.
Simple Mail Transport Protocol (SMTP) 服务已成功停止。

...
IIS Admin Service service 服务正在停止.
IIS Admin Service service 服务已成功停止。


netstat -an 命令的输出显示,打开的端口数目已经减少:

C:WINNT>netstat -an

Active Connections

 Proto  Local Address          Foreign Address        State
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:3372           0.0.0.0:0              LISTENING
 TCP    192.70.106.143:139     0.0.0.0:0              LISTENING
 UDP    0.0.0.0:135            *:*
 UDP    0.0.0.0:445            *:*
 UDP    0.0.0.0:1029           *:*
 UDP    192.70.106.143:137     *:*
 UDP    192.70.106.143:138     *:*
 UDP    192.70.106.143:500     *:*

  最后,防止IIS服务再次随系统重新启动的最简单办法是移除IIS组件,在控制面板中选添加/删除。

-[ IPsec ]-

  IKE协议(Internet Key Exchange)使用的UDP端口500,可以通过停止IPsec服务而关闭。

C:WINNT>net stop policyagent
IPSEC Services 服务正在停止.
IPSEC Services 服务已成功停止。

  UDP 端口 500 消失在 netstat -an 的输出中:

C:WINNT>netstat -an

Active Connections

 Proto  Local Address          Foreign Address        State
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING
 TCP    0.0.0.0:3372           0.0.0.0:0              LISTENING
 TCP    192.70.106.143:139     0.0.0.0:0              LISTENING
 UDP    0.0.0.0:135            *:*
 UDP    0.0.0.0:445            *:*
 UDP    0.0.0.0:1029           *:*
 UDP    192.70.106.143:137     *:*
 UDP    192.70.106.143:138     *:*

-[ Distributed Transaction Coordinator ]-

  并列事务服务(Distributed Transaction Coordinator service)在 Windows 2000 server 上默认安装和启动并打开了TCP端口3372和一个大于1023的端口(我们的例子中是1025)。

  停止服务,以关闭这两个TCP端口:

C:WINNT>net stop msdtc
Distributed Transaction Coordinator 服务正在停止.
Distributed Transaction Coordinator 服务已成功停止。

  列出现在的开放端口:

C:WINNT>netstat -an

Active Connections

 Proto  Local Address          Foreign Address        State
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING
 TCP    192.70.106.143:139     0.0.0.0:0              LISTENING
 UDP    0.0.0.0:135            *:*
 UDP    0.0.0.0:445            *:*
 UDP    0.0.0.0:1029           *:*
 UDP    192.70.106.143:137     *:*
 UDP    192.70.106.143:138     *:*


--[ Windows XP ]--

  Windows XP中容易停止的服务有:
IPsec services (PolicyAgent)
SSDP Discovery Service (SSDPSRV)
Windows Time (W32Time)

  以下命令停止这些服务:
 
C:WINDOWS>net stop policyagent

C:>WINDOWS>net stop ssdpsrv

C:>WINDOWS>net stop w32time

  netstat -ano 命令显示:TCP 5000,UDP 123、500和1900端口已经关闭。

C:WINDOWS>netstat -ano

Active Connections

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       884
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
 TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       976
 TCP    192.70.106.143:139     0.0.0.0:0              LISTENING       4
 UDP    0.0.0.0:135            *:*                                    884
 UDP    0.0.0.0:445            *:*                                    4
 UDP    0.0.0.0:1026           *:*                                    1112
 UDP    0.0.0.0:1027           *:*                                    976
 UDP    192.70.106.143:137     *:*                                    4
 UDP    192.70.106.143:138     *:*                                    4


---[ NetBIOS over TCP/IP (NetBT) ]---

  TCP/IP上的NetBIOS(NetBT),是Windows系统用来传输CIFS协议(SMB)的。CIFS协议就是用来提供资源共享服务的。(典型应用如:文件共享,打印机共享)。

  NetBT使用了UDP 137、138和TCP 139端口。要关闭这些端口,必须在所有网络适配器(Adapter)上禁用NetBT协议。

  在所有的网络适配器和所有的拨号连接上,选择属性->Internet协议 (TCP/IP)->属性->高级->WINS,禁用TCP/IP上的NetBIOS。这样就关闭了UDP137、138和TCP139端口。
  
  用来解析NetBIOS名字的lmhosts服务,也可以停止并禁用。

C:WINNT>net stop lmhosts
TCP/IP NetBIOS Helper 服务正在停止.
TCP/IP NetBIOS Helper 服务已成功停止。

  在 Windows 2000 上,开放端口列表变成:

C:WINNT>netstat -an

Active Connections

 Proto  Local Address          Foreign Address        State
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING
 UDP    0.0.0.0:135            *:*
 UDP    0.0.0.0:445            *:*
 UDP    0.0.0.0:1029           *:*

  而在Windows XP上:

C:WINDOWS>netstat -ano

Active Connections

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       884
 TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
 TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       976
 UDP    0.0.0.0:135            *:*                                    884
 UDP    0.0.0.0:445            *:*                                    4
 UDP    0.0.0.0:1026           *:*                                    1112
 UDP    0.0.0.0:1027           *:*                                    976

---[ CIFS over TCP ]---

  在Windows 2000以前,CIFS协议主要经NetBT传输,TCP 139端口。从Windows 2000开始,CIFS可以经由TCP/IP直接传输,省略了中间的NetBT层。这时,TCP 445端口被使用。(http://www.ubiqx.org/cifs/SMB.html#SMB.1.2)
  
  要关闭TCP 445端口,可以有两种方法:
  1. 禁用NetBT驱动
  2. 修改注册表以禁用TCP上的CIFS
  

-[ 禁用 NetBT 驱动 ]-

  完全在系统中禁用SMB的方法,就是说,同时禁用SMB客户端(workstation服务)和服务端(server服务)。
  首先要禁用这两个服务(以及所有依赖它们并运行着的服务)。

C:WINNT>net stop rdr
Workstation 服务正在停止.
Workstation service 服务已成功停止。

C:WINNT>net stop srv
Server 服务正在停止.
Server service 服务已成功停止。

  这两个服务停止后,就可以停止NetBT驱动了:

C:WINNT>net stop netbt
NetBios over Tcipip 服务正在停止.
NetBios over Tcipip service 服务已成功停止。

  然后,必须在注册表中修改:

Key: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBT
Value: Start
Type: DWORD value (REG_DWORD)
Content: 4

在 Windows XP 上, 你可以使用如下命令:

C:WINDOWS>sc config netbt start= disabled


-[ 不禁用NetBT,只禁用SMB ]-

  有时,你可能想保留NetBT,但不用它传输SMB,而用TCP 445。

  这种情况下,你可以如下设置注册表

Key: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters
Value: SmbDeviceEnabled
Type: DWORD value (REG_DWORD)
Content: 0 (to disable)

  重新启动,TCP 445已经不再开放。

  Windows 2000中还有下面的端口开放:

C:WINNT>netstat -an

Active Connections

 Proto  Local Address          Foreign Address        State
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
 TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING
 UDP    0.0.0.0:135            *:*
 UDP    0.0.0.0:1029           *:*

  Windows XP中:

C:WINDOWS>netstat -ano

Active Connections

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       884
 TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       976
 UDP    0.0.0.0:135            *:*                                    884
 UDP    0.0.0.0:1026           *:*                                    1112
 UDP    0.0.0.0:1027           *:*                                    976


---[ RPC 服务 ]---

  剩下的端口是RPC服务所使用的(Remote Procedure Call)。RPC端口映射和COM服务控制管理器(COM SCM)都使用TCP 135端口,比1023稍大的的一个TCP端口是RPC服务所使用,可以由RPC或DCOM(ORPC)访问。因为这个端口动态打开,不固定,就需要一个端口映射服务,来给出一个指定RPC服务所使用的端口。

  如果你想区分出哪些RPC服务占用了本机哪些端口,可以使用rpcdump工具从端口影射数据库中得到已注册的RPC服务列表。(http://razor.bindview.com/tools/desc/rpctools1.0-readme.html)

-[ Windows 2000 ]-

  用rpcdump,我们检查出,在我们的测试系统中,UDP端口1029被Messenger服务所启动的RPC服务占用。禁用服务并重启系统后,该端口关闭。

  并且,UDP端口135不再开放,因为:
 -最后一个通过UDP访问的RPC服务已被禁用
 -DCOM默认不经过UDP访问,所以COM SCM不侦听UDP 135端口

  TCP端口1026被计划任务(Task Scheduler)服务启动的RPC服务占用,禁用并重新启动即可关闭该端口

  远程访问连接管理器(RasMan)也必须被禁用。

-[ Windows XP ]-

  XP系统中,UDP 1027被Messenger服务的RPC使用,TCP 1025被计划任务(Task Scheduler)的RPC占用。与Windows 2000同样,UDP 135、1027和TCP 1025可在禁用服务并重启后被关闭。

--[ Windows 2000上的接口限制 ]--

_警告_: 此处描述的接口限制技术只应用于Windows 2000(不适用于Windows XP)

  现在为止,我们已经禁用了启动RPC服务的服务,为了关闭它们动态打开的端口,有时我们还是需要先启动计划任务这样的服务。

  有些RPC服务的可以限制网络接口,更精确地说,是那些不需要特别侦听所有网络接口的RPC服务。

  有一个注册表键值可以用来控制RPC服务侦听接口的列表,这个值包括了一个整数列表,代表了相应的网络接口。

  在Windows 2000以前,这个值包含了网络设备名称,如在Microsoft Platform SDK文档中,“Configuring the Windows XP/2000/NT Registry Port Allocations and Selective Bindings”条目描述的那样。从Windows 2000开始,是一个接口序号,从1开始。
  在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices下,默认不存在Rpc和RpcLinkage目录,必须手工创建。
  增加键值:
Key: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcLinkage
Value: Bind
Type: REG_MULTISZ
Content: list of network interfaces indexes

  2003年4月16日,微软发布了新版本的rpccfg工具,可以列出接口和进行接口限制,可以在http://download.microsoft.com/找到。(搜索关键字: rpccfg)

  用rpccfg的 -q 选项可以给出当前接口和端口限制的状况:

C:>WINNT>rpccfg -q
RPCCFG: Listening on all interfaces (default configuration)

RPCCFG: Using default port settings

  用rpccfg的 -l 选项可以给出网络适配器和接口号码的对应关系:

C:WINNT>rpccfg -l
IF[2]: Ethernet: 3Com EtherLink PCI (Microsoft's Packet Scheduler)
IF[1]: Ethernet: MS TCP Loopback interface

  在我们的系统中,第一个号码对应一个回环接口(IPv4地址127.0.0.1)。这样,如果要限制RPC服务在这个回环接口上,我们用 -a 1 参数:

C:WINNT>rpccfg -a 1
RPCCFG: Listening on the following interfaces
IF[1]: Ethernet: MS TCP Loopback interface

  然后我们用-q选项查看到,接口限制已经被正确设置到只在回环接口上:

C:WINNT>rpccfg -q
RPCCFG: Listening on the following interfaces
IF[1]: Ethernet: MS TCP Loopback interface

RPCCFG: Using default port settings


-[ 端口映射情况 ]-

  默认地,端口映射RPC服务绑定在了所有网络接口上。
  注册表键值ListenOnInternet控制着端口映射RPC服务是否绑定在所有网络接口上,默认这个键值不存在并且被当作有值Y:

Key: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs
Value: ListenOnInternet
Type: REG_SZ
Content: "Y" or "N"

  把这个键值设为N,TCP 135端口将只开在前述Bind键值所指定的那些网络接口上。
When set to "N", TCP port 135 will only listen on interfaces specified by the
Bind value described in the previous section.

-[ 接口限制技术的局限性 ]-

  接口限制技术有某些的局限性
 -只能应用于那些不明确指定需要侦听所有接口的RPC服务。
 -这是一个全局设置,不能为每个RPC服务单独设置。
 -好象只对RPC服务的TCP传输有效。

  测试表明,Windows 2000上的接口限制技术可以应用于下列服务

RPC service of the Distributed Transaction Coordinator service
RPC service of the Task Scheduler service
RPC service of the inetinfo service

  对工作在UDP上的下列服务无效(实际上,可能根本就对UDP传输无效)

RPC service of the messenger service
RPC service of the inetinfo service


-[ RPC 动态端口范围限制 ]-

  默认地,许多TCP和UDP端口会被RPC服务动态申请并使用,范围从1025开始(1024似乎从来不会被Windows使用),这解释了为什么许多RPC服务一旦启动会侦听稍高于1023的TCP和UDP端口。

  这个动态端口范围也是可以指定的。这可以用来使得IP过滤设备的端口过滤更容易。也可以使普通动态端口(系统作为客户端时所使用的端口)和RPC的动态端口更容易区分出来。

  rpccfg的 -pi 和 -pe选项用来设置RPC服务的动态端口范围,例如设置为4000-4100:

C:WINNT>rpccfg -pi 4000-4100
The following ports/port ranges will be used for Intranet ports
4000-4100

Default port allocation is from Intranet ports


  我们检查一下接口和端口限制是否设置正确:

C:WINNT>rpccfg -q
RPCCFG: Listening on the following interfaces
IF[1]: Ethernet: MS TCP Loopback interface

The following ports/port ranges will be used for Intranet ports
4000-4100

Default port allocation is from Intranet ports

--[ DCOM ]--

  唯一剩下的端口是TCP 135了。它由远程过程调用(RpcSs)打开并且不能禁用,因为该服务包含着COM服务控制管理器,本地进程需要。

  135端口打开是为了接收远程COM组件激活请求,注册表中有一个禁用DCOM的全局设置:

Key: HKEY_LOCAL_MACHINESOFTWAREMicrosoftOle
Value: EnableDCOM
Type: REG_SZ
Content: "Y" (to enable) or "N" (to disable)

  这个键值对应着dcomcnfg工具里的“在这台计算机上启用分布式COM”选项:

C:WINDOWS>dcomcnfg

  关于这个过程现在已经写在微软知识库中了。(http://support.microsoft.com/?id=825750)。

  禁用DCOM是个不错的主意,可以使系统免遭关于DCOM的漏洞的影响,这个漏洞由 Delirium Research Group (http://www.lsd-pl.net/special.html ) 和 Xfocus team (http://www.xfocus.org/advisories/200307/4.html )发现。

  DCOM禁用后,COM组件接收到远程激活请求后会返回错误码E_ACCESSDENIED(0x80700005),利用前面所提到的漏洞的攻击就会失效。

  禁用DCOM并不能关闭端口TCP 135。要关闭这个端口,一个方法是从可能用到DCOM的列表中删除基于IP的RPC协议列。在我们的例子中,列ncacn_ip_tcp(在TCP/IP上传输)可以删除。

  最简便的方法是:用dcomcnfg工具删除“默认协议”里的“面向连接的 TCP/IP”

  在Windows 2000上,dcomcnfg的“默认协议”直接显示了本地系统的DCOM属性。在Windows XP上,dcomcnfg调用了一个MMC控制台,显示了三个结点。我的电脑->属性->“默认协议”。

  “默认协议”中显示的列表其实储存在注册表里:

Key: HKEY_LOCAL_MACHINESOFTWAREMicrosoftRpc
Value: DCOM Protocols
Type: REG_MULTI_SZ

  所以,也可以直接编辑注册表来删除ncacn_ip_tcp。

  重新启动后,除了一个Windows XP下的UDP端口,所有的端口都被关掉了。我们下一节来对付这个端口。


--[ Windows XP的缓存DNS服务 ]--

  从Windows 2000开始,Windows系统包含了一个缓存DNS服务(dnscache),用来在内存中保存DNS查询的结果。

  在Windows 2000上,这个服务用UDP发送DNS请求,每次使用不同的UDP端口。在Windows XP上则总是使用同一个端口,第一次进行DNS查询时由dnscache服务申请并在以后维护,所以只要dnscache服务开着,这个端口就一直开着。

  Windows XP上,这个UDP端口是1026,如果我们停止dnscache服务,这个端口就将被关闭。这是可以做到的,在注册表中增加如下键值:

Key: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDnscacheParameters
Value: MaxCachedSockets
Type: REG_DWORD
Content: 0

  这样设置后,Windows XP的dnscache服务将变得和Windows 2000一样,也就是说,每次DNS请求使用不同的UDP端口。

--[ 系统使用中启动的RPC服务 ]--

  某些RPC服务会随某些程序的启动而启动。例如:在Windows XP中使用组件服务会打开两个RPC端口。因此,在做完本文的所有工作后,最好再增加IP过滤机制。

----[ 小结 ]----

  缩减网络服务一般有三个步骤:
 -禁用无用的服务
 -禁用TCP/IP上的NetBIOS和TCP上的CIFS
 -缩减RPC服务

应该禁用的服务包括:
Windows 2000:
 -IIS 5:iisadmin,w3svc,smtpsvc
 -其它:messenger,msdtc,policyagent,schedule
Windows XP:
 -messenger,policyagent,schedule,ssdpsrv,w32time

  禁用TCP/IP上的NetBIOS是分别对于每个网络接口而言的。要完全禁用TCP上的CIFS(445端口),必须增加SmbDeviceEnabled注册表项并置0。

  缩减RPC服务要从禁用那些注册了RPC服务的服务着手。

  在dcomcnfg工具里移除“面向连接的 TCP/IP”协议列,可以关闭TCP 135端口。

  如果必要,可以用rpccfg工具限制Windows 2000中RPC服务的侦听接口。

----[ 结论 ]----

  默认安装的Windows系统包含了太多的服务,完全有可能并且最好尽量减少它们,只保留十分必要的。

----[ 感谢 ]----

  感谢Jacqueline J. 通读了这篇文章并给出了许多改进。
LinuX 硬盘分区细节详谈 【 整理至 LinuxSir BY FreeXploiT 】 系统引导过程及硬盘分区结构论述作者: zhy2111314来自: LinuxSir.Org ouc.edu.cn摘要: 本文是理论性文档,主要讲述系统引导过程以及硬盘的物理结构;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++正文+++++++++++++++++++++++++++++++++++++++++++++++ 阅读详情

相关推荐

Secrets_of_Reverse_Engineering(逆向工程的密码).rar

由 team509.com 翻译的逆向人员的宝贵资料

简单OCR实现原理 (www.team509.com)

许多网站在接受HTTP输入的时候常用到一项认证码技术来防止DOS攻击。简单地说就是在显示提交数据页面之前或者同时,服务器会向客户端发送一个小图片,该图片通常由一些随机的数字或字母(很少情况下会有其他字符)组合而成,并要求在HTTP的提交表单(FORM)中正确输入该数字,无效的输入会使数据提交失败。这样的机制可以有效阻止或降低一些登陆/张贴/投票的自动机对网站产生的负面作用。 作者:doublele

FreeXploiT 7797

关闭高危端口

一键关闭高危端口@echo off sc config RemoteRegistry start= DISABLED sc config RDSessMgr start= DISABLED sc config RemoteAccess start= DISABLED sc config lanmanserver start= DISABLED sc config LmHosts start= DISABLED 。。。。。。。。。。。。。。。。

QQ的安全问题 (www.team509.com)

QQ,就是OICQ,TENCENT公司研发的即时信息软件,是中国市场上国产IM软件绝对的老大。中国网民几乎人手至少一个QQ号码。大家都比我清楚,不多介绍。     本文谈谈QQ的安全问题。     QQ具有如此惊人的人气,却有着与之不相称的安全问题。基本上可以说,使用QQ,基本没有任何隐私可言!另外它也为你的电脑带来了诸多附送的安全隐患。有识之士如我都早已不用QQ啦。 QQ的安全问题 作者:dou

FreeXploiT 7386

WPF MVVM实战:构建可绑定的RichTextBox富文本编辑器

本文详细介绍了如何在WPF MVVM模式下构建可绑定的RichTextBox富文本编辑器,解决标准RichTextBox.Document属性不支持数据绑定的问题。通过创建自定义BindableRichTextBox控件,实现FlowDocument的绑定支持,并分享插入图片、文本格式控制等实战技巧,帮助开发者高效开发富文本编辑功能。

weixin_33717117的博客 305

生信分析实战指南:Linux环境下EMBOSS的安装与核心功能详解

本文详细介绍了在Linux环境下安装和使用EMBOSS工具包的实战指南,涵盖源码编译、包管理器安装和Conda安装三种方法,并演示了序列比对、序列特征提取和引物设计等核心功能。EMBOSS作为生物信息学领域的开源工具集,适用于序列分析、蛋白质结构预测等多种任务,帮助研究人员高效完成生信分析工作。

weixin_29202213的博客 460

Keen,China Team China Dream

先回味一则旧闻:在上个月的Pwn2Own 2014黑客大赛上,来自中国的Keen Team以15秒攻破Mac OS X10.9.2和20秒攻破Windows 8.1的成绩夺取了冠军。   如果我没记错的话,这是中国第一次在Pwn2Own上夺冠。Pwn2Own在我看来教育和宣传的意义远大于技术交流的意义。它每年都会请来世界上最顶尖的黑客对各大厂商的系统进行攻击,吸足了眼球。  

刘书的IT博客 872

MR2数据集实战:5步搞定多模态谣言检测模型训练(附完整代码)

本文详细介绍了如何使用MR2多模态数据集构建高精度谣言检测系统,涵盖环境配置、数据准备、多模态特征工程、模型架构设计、训练调优及部署优化等5个关键步骤。通过双线性融合技术处理文本、图像和网页三模态数据,解决特征对齐和模态冲突等工程难题,并提供完整代码实现和性能优化方案。

weixin_42657024的博客 239

网络监听与扫描攻击

原理简介 Nmap 是一个免费开放的网络扫描和嗅探工具包,也叫网络映射器(Network Mapper)。 Nmap 工具可以用来扫描电脑上开放的端口,确定哪些服务运行在哪些端口,并且推断出计算机运行的操作系统。通过使用该工具,可以评估网络系统安全。所以,Nmap 是大部分用户所必要的工具之一。 Nmap 可以完成以下任务:主机探测、端口扫描、版本检测、系统检测。Nmap 使用 TCP/IP 协议栈指纹准确地判断目标主机的操作系统类型。首先,Nmap 通过对目标主机进行端口扫描,找出有哪些端口正在目标主机上

weixin_43916678的博客 3451

【photoshop CEP插件】 OCR文字识别

一个photoshop CEP插件OCR文字识别 APP_ID = 17594920 API_KEY = puMFv72xqCYV2jdcSlXgtFvm SECRET_KEY = v5XHtqKXEm0p6ehPZrXIXrftDvocyv1m /*********************************************/ 百度OCR 密钥由Greless@qq.com 提供, 用户可自行前往https://ai.baidu.com/docs#/Auth/top 申请。 通用文字识别..

Greless的后花园 6487

别再找在线API了!用C#调用微信电脑版自带的OCR,本地识别又快又准

本文详细介绍了如何利用C#调用微信电脑版内置的OCR引擎实现本地文字识别,解决传统云端API的隐私和网络依赖问题。微信OCR具备高精度中文识别、完全离线运行和零成本接入三大优势,特别适合企业文档电子化处理。通过实战代码演示了核心交互逻辑、批量处理流水线和表格数据提取等高级应用场景。

weixin_29295541的博客 588

入门读物(2) – WEB应用程序的安全 (www.team509.com)

大家都知道,这年头进行一次成功的网络攻击是越来越难了,特别是我们在对客户作安全服务的时候要做渗透测试。舍得花钱让我们做安全服务的客户,手里都有大把的银子,什么firewall,IDS,IPS,管它有用没用,全给加上,我们曾经见过一个WEB server前加俩防火墙的例子。在这种情况下,很多的攻击手段都无法使用,特别是buffer overflow的手段几乎没有用武之地,现在管理员的安全水准也有较大

FreeXploiT 1889

ROS中tf2_ros::Buffer.lookupTransform的正确使用姿势:从踩坑到填坑

本文深入解析了ROS中tf2_ros::Buffer.lookupTransform接口的正确使用方法,重点剖析了因tf2_ros::TransformListener生命周期管理不当导致的经典问题。文章提供了从理解Buffer与Listener共生关系、类成员设计黄金法则到参数详解与异常处理的完整避坑指南,并给出了构建健壮坐标变换工具类的实战方案,帮助开发者稳定实现机器人坐标系变换。

weixin_29253711的博客 133

入门读物(1) -- 信息收集 (www.team509.com)

要进行一次成功的网络攻击,前期的准备工作是必不可少的,而且前期工作的准备质量,直接影响到攻击的成败与否,所以这部分的工作是至关重要的。下面,我们假设我们要攻击某些大中型网络为例来说明信息收集的方法与技巧,并给出一定的工具。author:wooshi@gmail.comdate:2005-6-1要进行一次成功的网络攻击,前期的准备工作是必不可少的,而且前期工作的准备质量,直接影响到攻击的成败与否,所

FreeXploiT 1920

ADS1115 0-10V高精度ADC模块原理图设计,已量产

在水质监测、智能气象站、环境感知等领域,0-10V 电压输出的传感器占据了重要地位。这类传感器输出信号稳定、抗干扰能力强,但对数据采集模块的精度、线性度和易用性提出了严苛要求。本文将深度解析一款专为 0-10V 传感器设计的高精度 ADC 模块,从硬件架构、性能指标到工程化实践,全面呈现其设计思路与核心价值。

不脱发的程序猿 272

YOLOv13改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计

实时检测器架构的轻量级设计GsConv。

Limiiiing的博客 91

天网防火墙的配置文件加密方法——兼谈RC6算法 (www.team509.com)

author: doubleleedate:   2005-6-1    天网防火墙2.50版,用Borland C编译,规则配置文件是加密的。为了绕开其监控,必须能够读写其规则配置文件并重新启动之。      本文主要说说怎样读写其配置文件,顺便谈谈RC6的基本情况,作为备忘。author: doubleleedate:   2005-6-1    天网防火墙2.50版,用Borland C编译

FreeXploiT 4286

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

服务器安全组策略解禁之恢复

服务器安全组策略解禁之恢复

netuser1937的博客 1034

sc 服务

    使用命令行启动服务    在cmd下可有两种方法打开,net和sc,net用于打开没有被禁用的服务,语法是:    net start 服务名    net stop 服务名    用sc可打开被禁用的服务,语法是:     sc config 服务名 start= demand    //手动    sc condig 服务名 start= auto      //自动    sc co

linkyang的专栏 2181

端口大全及端口关闭方法

在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的 端口,端口号的范围从0到65535,比如用于浏览网页服务。    查看端口    在windows 2000/XP/Server 2003中要查看端口,可以使用N

shibingbo1986的专栏 2万+

电子书专题

EXE电子书与垃圾 作者:马健邮箱:stronghorse@tom.com主页:http://stronghorse.yeah.net 目前EXE格式的电子书在网络上比较流行,制作工具五花八门,eBook Workshop和eBook Edit Pro是其中比较流行的两个。但是又有多少人知道,在你打开用它们制作的电子书的时候,其实它们已经在你的系统中悄悄产生了一些垃圾,包括注册表项、文件等。而且目

FreeXploiT 3万+

三款常用IP发包工具介绍

AntPower 版权所有© 2003 技术文章http://www.antpower.org 第1 页共14 页AntPower-技术文章三款常用IP 发包工具介绍小蚁雄心成员郎国军著lgj@qingdao.cngb.comURL修订版本版本时间修订人说明AntPower 版权所有© 2003 技术文章http://www.antpower.org 第2 页共14 页1. 简介在从事网络产品尤其

FreeXploiT 2万+

windows网关详解 【了解网关的重要性,增加网络性能】【FreeXploiT综合文】

理解Windows中的路由表和默认网关   每一个Windows系统中都具有IP路由表,它存储了本地计算机可以到达的网络目的地址范围和如何到达的路由信息。路由表是TCP/IP通信的基础,本地计算机上的任何TCP/IP通信都受到路由表的控制。 理解路由表 你可以运行 route print 或 netstat -r 显示本地计算机上的路由表,如下图所示: C:/Documents

FreeXploiT 1万+

stunnel使用详解

http://www.stunnel.org/faq/args.htmlhttp://www.colasoft.com.cn/support/monitor_stunnel.php科来网络分析系统与stunnel结合使用科来网络分析系统是一款强大的网络检测分析工具,可对网络中未加密的数据传输进行检测分析并实时显示分析结果,包括用户的邮件收发、Web访问以及各种网络登录等操作。所以,未经加密的数据传

FreeXploiT 1万+
上一篇: 天网防火墙的配置文件加密方法——兼谈RC6算法 (www.team509.com)
下一篇: 简单OCR实现原理 (www.team509.com)
freexploit
博客等级 码龄22年 315粉丝 778原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值