NT安全设置

/ns/wz/sys/data/20020822034139.htm

NT安全设置

作者:aben


TCP/IP设置:
1、 TCP/IP安全策略


特点:简单、方便,系统已经集成,可以单独对一块网卡进行设置;
缺点:不灵活;只有允许,没有禁止;
这些设置的允许和禁止,跟Firewall、IDS等的允许和禁止有所不同。
端口如果没有在允许的范围内,表示不能在相应的端口上绑定服务(Bingding,或叫监听),
但是用来通讯还是可以的,这在Firewall、IDS中是不允许的。

在上例中,(参见:服务/应用对应端口)
TCP允许:2433,5631(pcAnywhere);
UDP允许:5632(pcAnywhere);
IP协议:6(TCP),17(UDP);

2、 删除不必要的网络服务


3、 不在TCP/IP 上绑定NetBIOS协议


4、 取消IP转发




5、 TCP/IP注册表设置
SynAttackProtect
位置: Tcpip\Parameters
类型: REG_DWORD
范围: 0, 1, 2
0 没有保护
1 当TcpMaxHalfOpen 和 TcpMaxHalfOpenRetried 设置条件满足时,减少重发尝试和 延迟
RCE (route cache entry) 建立。
2 in addition to 1 a delayed indication to Winsock is made.)

注意:当系统检测到被攻击时,下面的socket参数将会无效:Scalable windows (RFC 1323
) 和每个网络接口的TCP 参数 (Initial RTT, window size)。这是因为当系统处于保护状态
下时,在SYN-ACK被成功发送之前,不会查询 route cache entry 和Winsock 参数无效.

默认值: 0 (False)
建议值: 2
说明: Synattack 保护会减少SYN-ACKS,重发的次数, 这样就加速了资源被重新的时间; r
oute cache entry 延迟分配,直到连接建立;假如synattackprotect 设为 2, AFD也会被延
时直到三次握手完成。需要注意的是这个保护机制只会在TcpMaxHalfOpen 和TcpMaxHalfOpe
nRetried 的值超过时才生效。

TcpMaxHalfOpen
位置:Tcpip\Parameters
类型:REG_DWORD
范围:100�C0xFFFF
默认值: 100 (Professional, Server), 500 (advanced server)
建议值: 默认设置
说明: 这个参数控制在SYN-ATTACK 保护之前,处于SYN-RCVD 状态的连接允许最大数目。如
果SynAttackProtect 设为 1, 确认该值小于AFD Backlog 参数的值(参见 AFD Backlog 参数
) 。

TcpMaxHalfOpenRetried
位置:Tcpip\Parameters
类型:REG_DWORD
范围:80�C0xFFFF
默认值:80 (Professional, Server), 400 (Advanced Server)
建议值: 默认设置
说明:这个参数控制在SYN-ATTACK 保护之前,处于SYN-RCVD 状态并已尝试重发的连接允许
最大数目。

EnablePMTUDiscovery
位置:Tcpip\Parameters
类型:REG_DWORD―Boolean
范围:0, 1 (False, True)
默认值:1 (True)
建议值:0
说明:设置为1时,系统会尝试在到达目的路径上寻找最大的MTU值。当设置为0时,系统会在
非内部网络上使用固定的MTU值(576 byte)。

NoNameReleaseOnDemand
位置:Netbt\Parameters
类型:REG_DWORD
范围:0, 1 (False, True)
默认值:0 (False)
建议值:1
说明:这个参数决定系统收到一个NetBIOS 名字解释请求时,是否进行名字解释。管理员可
以设置该值,以防止系统被恶意者攻击。

EnableDeadGWDetect
位置:Tcpip\Parameters
类型:REG_DWORD
范围:0, 1 (False, True)
默认值:1 (True)
建议值:0
说明:设置为1时, TCP 允许检查无效网关。当默认网关无效时,备份网关将会替代默认网关
,备份网关在TCP/IP协议属性里的“高级”进行设置。

KeepAliveTime
位置:Tcpip\Parameters
类型:REG_DWORD (毫秒)
范围:1�C0xFFFFFFFF
默认值:7,200,000 (two hours)
建议值:300,000
说明:这参数控制TCP间隔多长的时间去发送一个keep-alive 数据包,去验证一个空闲的连
接是否存活。如果远程系统仍然存活,它会对这个keep-alive应答。默认情况下, Keep-al
ive 数据包不会被发送,需要程序启用该功能。

PerformRouterDiscovery
位置:Tcpip\Parameters\Interfaces\
类型:REG_DWORD
范围:0,1,2
0 (无效)
1 (有效)
2 (DHCP 发送的路由发现有效)
默认值:2.
建议值:0
说明:控制是否进行路由发现。

EnableICMPRedirects
位置:Tcpip\Parameters
类型:REG_DWORD
范围:0, 1 (False, True)
默认值:1 (True)
建议值:0 (False)
说明:控制系统从一个网络设备处收到一个ICMP 重定向消息时,是否修改自身的路由表。

系统设置
1、 使用NTFS磁盘文件格式
使用CONVERT命令转换为NTFS磁盘文件格式
CONVERT 卷名 /FS:NTFS [/V]

2、 关闭NTFS 8.3文件格式的支持
NtfsDisable8dot3NameCreation
位置:HKEY_LOCAL_MACHINE\SYSTEM
类型:REG_DWORD
范围:0, 1 (False, True)
默认值:0 (False)
建议值:1 (True)

3、 删除OS/2 和POSIX 子系统
位置:HKEY_LOCAL_MACHINE\SOFTWARE
键值:\Microsoft\OS/2 Subsystem for NT
操作:删除所有子键

位置:HKEY_LOCAL_MACHINE\SYSTEM
键值:\CurrentControlSet\Control\Session Manager\Environment
名称:Os2LibPath
操作:删除Os2LibPath

位置:HKEY_LOCAL_MACHINE\SYSTEM
键值:\CurrentControlSet\Control\Session Manager\SubSystems
操作:删除Optional,Posix 和OS/2

4、 禁用LanManager 身份验证
Windows NT Servers Service Pack 4 和后续的版本都支持三种不同的身份验证方法:

l LanManager (LM) 身份验证;
l Windows NT (也叫 NTLM) 身份验证;
l Windows NT Version 2.0 (也叫NTLM2) 身份验证;

默认的情况下,当一个客户尝试连接一台同时支持LM 和 NTLM 身份验证方法的服务器时,L
M 身份验证会优先被使用。基于安全的理由,所以建议禁止LM 身份验证方法。

1. 打开注册表编辑器;
2. 定位到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa;
3. 选择菜单“编辑”,“添加数值”;
4. 数值名称中输入:LMCompatibilityLevel ,数值类型为:DWORD,单击 确定;
5. 双击新建的数据,并根据具体情况设置以下值:
0 - 发送 LM 和 NTLM响应;
1 - 发送 LM 和 NTLM响应;
2 - 仅发送 NTLM响应;
3 - 仅发送 NTLMv2响应;(Windows 2000有效)
4 - 仅发送 NTLMv2响应,拒绝 LM;(Windows 2000有效)
5 - 仅发送 NTLMv2响应,拒绝 LM 和 NTLM;(Windows 2000有效)
6. 关闭注册表编辑器;
7. 重新启动机器;

需要获得更多的信息,请参阅: http://support.microsoft.com/support/kb/articles/q1
47/7/06.asp

5、 拒绝guest 用户访问事件日志
在事件日志里,可能存放着一些重要的信息,而且在默认的情况下,Guests和匿名用户是可
以查看事件日志的 , 所以我们必须禁止Guests和匿名用户访问事件日志:

1. 打开注册表编辑器;
2. 定位到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\
3. 选择Application 子目录;
4. 选择菜单“编辑”,“添加数值”;
5. 数值名称中输入:RestrictGuestAccess,数值类型为:DWORD,单击 确定;
6. 双击新建的数据,并设置其值为1 ;
7. 对子目录Security 和 System 重复4-6步骤;

6、 删除所有默认共享
位置:HKEY_LOCAL_MACHINE\SYSTEM
键值:CurrentControlSet\Services\LanmanServer\Parameters
名字:AutoShareServer
类型:REG_DWORD
 值:0 

7、 取消显示最后登录用户
位置:HKEY_LOCAL_MACHINE\SOFTWARE
键值:\Microsoft\Windows NT\Current Version\Winlogon
名称:DontDisplayLastUserName
类型:REG_SZ
 值:1

8、 设置密码长度

9、 启用密码复杂性要求
Windows NT 4.0 Service Pack 2 及后续版本包含了一个密码筛选器 DLL 文件 (Passfilt.
dll) ,可以加强用户的更强密码要求。Passfilt.dll 提供加强的安全,可以防范外来侵入
者的“密码猜测”或“字典攻击”。

l 密码不得少于 6 个字符。(在域的“密码策略”中设置更大值可以进一步提高最小密码长
度)。
l 密码必须包含下列 4 类字符中至少 3 类的字符:
- 英语大写字母 A-Z
- 英语小写字母 a-z
- 阿拉伯数字 0-9
- 非文字数字(“特殊字符”)如标点符号
l 密码不能包含用户名和全名的任意部分。

要使用 Passfilt.Dll,管理员必须在所有域控制器的系统注册表中配置密码筛选 DLL。

1. 打开注册表编辑器 (regedt32.exe, 不要使用regedit.exe);
2. 定位到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa;
3. 双击 "Notification Packages";
4. 把 PASSFILT 加到新的行 (里面可能包含FPNWCLNT 等其他值)。单击 确定;
5. 关闭注册表编辑器;
6. 重新启动机器;

使用 域用户管理器不受这个设置的影响;


10、 运行SYSKEY工具,启用帐号数据
运行命令:syskey

11、 重命名Administrator帐号
12、 启用Administrator帐号网络锁定
passprop /complex /adminlockout

13、 拒绝未认证用户(匿名)访问注册表
位置:HKEY_LOCAL_MACHINE\SYSTEM
键值:\CurrentControlSet\Control\SecurePipeServers
名称:\winreg

14、 拒绝 Anonymous 帐号(NULL Session)访问
不允许匿名列举用户名、共享名。Service Pack 3 开始提供这个设置。

位置:HKEY_LOCAL_MACHINE\SYSTEM
键值:CurrentControlSet\Control\LSA
名称:RestrictAnonymous
类型:REG_DWORD
 值:1

15、 检查注册表访问权限
检查以下注册表的访问权限:
位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
\Run
\RunOnce
\RunOnceEx

位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\AeDebug
\WinLogon\GinaDLL
\WinLogon\Userinit

16、 修改“从网络访问此计算机”权限分配
17、 设置审核规则
18、 启用SAM 访问审核
1. 确定启用审核,如未启用,可以使用“域用户管理器”启动审核 ;
2. 确认启动schedule,如未启动,使用以下命令启动该服务:

C:\> net start schedule

3. 命令行使用At 命令添加任务:

C:\> at <时间> /interactive "regedt32.exe"

4. 然后Regedt32.exe会以系统帐号启动。
5. 选择 HKEY_LOCAL_MACHINE 窗口;
6. 选择 SAM 并从“安全”菜单选择“审核”,如下图;

7. 单击“添加”,然后“显示用户”;
8. 添加如下帐号:
- SYSTEM
- Domain Admins
- Administrator
- Backup Operators

其他拥有以下权限的帐号:
- Take ownership of files or other objects(取得文件或其他对象的所有权)
- Back up files and directories(备份文件和目录)
- Manage auditing and security log(管理审核和安全日志)
- Restore files and directories(还原文件和目录)
- Add workstations to domain(域中添加工作站)
- Replace a process level token(替换进程级记号)
单击“确定”;

9. 选中 "审核已有子项的权限";
10. 为下面设置“成功”和“失败”的审核:
- Query Value(查询数值)
- Set Value(设置数值)
- Write DAC(写入DAC)
- Read Control(读取控制)


11. 单击“确定”。单击“是”。
12. 停止schedule服务;
C:\> net stop schedule

19、 移动常用/危险工具,并设置访问权限
xcopy.exewscript.execscript.exenet.exeftp.exetelnet.exe arp.exeedlin.exeping.exe
route.exeat.exe finger.exeposix.exersh.exeatsvc.exeqbasic.exerunonce.exe syskey.
execacls.exeipconfig.exercp.exesecfixup.exe nbtstat.exerdisk.exe debug.exeregedt
32.exeregedit.exeedit.comnetstat.exetracert.exe nslookup.exerexec.execmd.exe

20、 停止不必要的服务
HTTP/FTP服务器需要最少的服务:
l Event Log
l License Logging Service
l Windows NTLM Security Support Provider
l Remote Procedure Call (RPC) Service
l Windows NT Server or Windows NT Workstation
l IIS Admin Service
l MSDTC
l World Wide Web Publishing Service
l Protected Storage

IIS设置:
1、 设置Web目录访问权限(NTFS)
根据下面表格设置Web目录/文件的权限:
文件类型 ACL
CGI etc .EXE, .DLL, .CMD, .PL Everyone (RX)Administrators (Full Control)System (
Full Control)
Script Files .ASP etc Everyone (RX)Administrators (Full Control)System (Full Con
trol)
Include Files .INC, .SHTML, .SHTM Everyone (RX)Administrators (Full Control)Syst
em (Full Control)
Static Content .HTML, .GIF, .JPEG Everyone (R)Administrators (Full Control)Syste
m (Full Control)

2、 设置IIS 日志文件的访问权限
怎样知道IIS日志存放在那里?
默认是存放在% SystemRoot%\System32\LogFiles目录下,

3、 删除示例(Sample)程序
示例内容 存放位置
IIS c:\inetpub\iissamples
IIS SDK c:\inetpub\iissamples\sdk
Admin Scripts c:\inetpub\AdminScripts
Data access c:\Program Files\Common Files\System\msadc\Samples

4、 删除脚本映射

5、 禁止RDS支持
修改注册表,删除以下键值和子键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \W3SVC\Parameters\ADCLaunch
\RDSServer.DataFactory

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \W3SVC\Parameters\ADCLaunch
\AdvancedDataFactory

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services W3SVC\Parameters\ADCLaunch\
VbBusObj.VbBusObjCls

6、 禁止使用#exec调用命令
位置:HKEY_LOCAL_MACHINE\SYSTEM
键值:CurrentControlSet\Services\W3SVC\Parameters
名称:SSIEnableCmdDirective
类型:REG_DWORD
 值:0

7、 为脚本类文件取消读取访问权限
注意:不是NTFS的读权限,是Web服务属性设置的读取访问设置。

8、 取消“启用父路径”

SQL Server设置:
1、 选择合适的认证默认
SQL Server提供了三种不同的用户身份验证模式。

验证模式 描述
标准模式(只有6.5版本才有),也叫独立模式 应用程序必须提供一个SQL Server user ID 和
口令才能访问数据库。不使用Windows 客户的验证方法;
Windows NT内置模式 使用Windows 帐号作为验证的方法;
混合模式 这是同时提供上面两种验证方法的一种混合验证模式。

l 标准模式 �C只有6.5版本才有
标准模式是SQL Server默认安装里已经选定的一项选项。 它提供了简单安全验证模式,因为
它独立于WIndows NT的域模式。你可以通过设置SQL Server里的安全选项来控制用户访问数
据库和对象的访问级别。

标准模式使用SQL Server它自身的方法去验证一个用户的身份。要使用标准模式的话,每个
用户必须要向SQL Server提供一个User ID 和密码来验证身份。每个验证后的用户都可以访
问他有权限访问的数据库和对象(表、视图、存储过程)。 这是一个比较容易跟IIS集成到一
块的验证模式。

假如你不使用multi-protocol 或 Named Pipes协议来为你的SQL Server提供服务的话,你就
需要要使用标准模式。标准模式运行在任何一种SQL Server支持的协议上。使用标准模式的
SQL Server 不必考虑太多的网络因素,如域,Windows NT 帐号等等。

假如你的应用程序是IIS,那么标准模式是一个最好的选择。这是因为标准模式不管你配置里
使用的是那种协议。

值得注意的是,从7.0开始,不再单独提供这样的验证模式。要使用这种模式就只能选择下面
介绍的混合模式。

l 仅Windows
使用仅Windows的验证模式,, SQL Server 使用Windows NT 的身份验证去验证一个用户的身
份。 这种方式,用户不需要提供User ID和密码就可以访问数据库,这是因为SQL Server使
用了Windows NT的验证来代替自标准模式的验证方法。

仅Windows的模式工作在Named Pipes 或Multi-Protocol 协议上的信任连接。信任的连接可
以是来自Windows NT, Windows 95, 或 Windows for Workgroups 工作站, 和运行在DOS的M
icrosoft LAN Manager或 Microsoft Windows 客户。

SQL Server 应用程序会从l仅Windows 模式中得到很多好处。例如,域范围的帐号,加密的
密码,密码同步,登录审核和简单的用户管理。

注意:假如你的应用程序是IIS,我想你是不会使用此验证模式的。

l 混合模式(SQL Server 和 Windows)
这种模式允许用户使用两种模式中的任意一种方式去验证自己的身份。

2、 选择合适的网络协议
为了要使用SQL Server's 的仅Windows 模式,你必须使用Named Pipes 或Multi-Protocol(
Named Pipes)协议

l TCP/IP Sockets
TCP/IP Sockets 是一种无身份验证的协议。意思就是连接是没有实时验证过的。只在开始建
立连接时做身份的验证。另外在SQL Server 中定义/设置每个用户的访问权限,TCP/IP Soc
kets比Named Pipes 需要更多的管理。

如果你不需要SQL Server的仅Windows模式, TCP/IP Sockets 是一个好的选择。

l Named Pipes
Named Pipes 是一种可靠的协议。每当用户使用Named Pipes访问SQL Server ,这个连接都
会被确认身份。这也是为什么它在SQL Server 默认安装里被安装的重要原因。另外一个重要
的原因是Named Pipes的连接速度最快。

l Multi-Protocol
Multi-Protocol一个重要的好处是它有加密的功能。


3、 以普通NT帐号启动服务
建议使用“Enterprise Manager”修改。
1. 帐号需要以下权限:
2. 替换进程级记号;
3. 添加配额;
4. 以操作系统方式操作;
5. 以服务登录;
6. 读写以下注册表;
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer.
或:HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server.

HKEY_LOCAL_MACHINE\System\CurrentControlset\Services\MSSQLServer.
或(只用于SQL 2000):
HKEY_LOCAL_MACHINE\System\CurrentControlset\Services\MSSQL$Instancename.

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib
7. 读取、更改SQL Server 目录 ;
SQL 2000 \Program Files\Microsoft SQL Server\Mssql
SQL 7.0 MSSQL7.
8. 读取、更改 .mdf, .ndf, 和.ldf 数据文件;


4、 设置审核级别
a) Failure
b) Success
c) ALL

5、 删除master..xp_cmdshell 存储过程
a) 删除存储过程
============================
use master
go
execute sp_dropextendedproc 'xp_cmdshell'
go

b) 添加存储过程
============================

use master
go
execute sp_addextendedproc 'xp_cmdshell' ,'xpsql70.dll'
go

c) 查找存储过程对应的Dll文件
============================
select o.name,c.text from dbo.syscomments c, dbo.sysobjects o where c.id = o.id
and o.name = 'xp_cmdshell'

d) 查找Dll文件对应的存储过程
============================
select o.name,c.text from dbo.syscomments c, dbo.sysobjects o where c.id = o.id
and c.text = 'xplog70.dll'

6、 删除OLE automation存储过程(会导致管理器一些功能不能使用)
l Sp_OACreate
l Sp_OADestroy
l Sp_OAGetErrorInfo
l Sp_OAGetProperty
l Sp_OAMethod
l Sp_OASetProperty
l Sp_OAStop

7、 删除访问注册表的存储过程
l Xp_regaddmultistring
l Xp_regdeletekey
l Xp_regdeletevalue
l Xp_regenumvalues
l Xp_regread
l Xp_regremovemultistring
l Xp_regwrite

如:读取注册表SAM数据:
xp_regread 'HKEY_LOCAL_MACHINE', 'SECURITY\SAM\Domains\Account', 'F'

8、 删除其他有威胁的存储过程
sp_sdidebugxp_availablemediaxp_deletemailxp_dirtreexp_dropwebtaskxp_dsninfoxp_en
umdsnxp_enumerrorlogsxp_enumgroupsxp_enumqueuedtasksxp_eventlogxp_findnextmsgxp_
fixeddrivesxp_getfiledetailsxp_getnetnamexp_grantloginxp_logeventxp_loginconfigx
p_logininfoxp_makewebtaskxp_msver xp_perfend xp_perfmonitorxp_perfsamplexp_perfs
tartxp_readerrorlogxp_readmailxp_revokeloginxp_runwebtaskxp_schedulersignalxp_se
ndmailxp_servicecontrolxp_snmp_getstatexp_snmp_raisetrapxp_sprintfxp_sqlinventor
yxp_sqlregisterxp_sqltracexp_sscanfxp_startmailxp_stopmailxp_subdirsxp_unc_to_dr
ive

附录一:服务/应用对应端口

服务名/应用 UDP TCP
Browsing datagram responses of NetBIOS over TCP/IP 138
Browsing requests of NetBIOS over TCP/IP 137
Client/Server Communication 135
Common Internet File System (CIFS) 445 139, 445
Content Replication Service 560
Cybercash Administration 8001
Cybercash Coin Gateway 8002
Cybercash Credit Gateway 8000
DCOM (SCM uses udp/tcp to dynamically assign ports for DCOM) 135 135
DHCP client 67
DHCP server 68
DHCP Manager 135
DNS Administration 139
DNS client to server lookup (varies) 53 53
Exchange Server 5.0
Client Server Communication 135
Exchange Administrator 135
IMAP 143
IMAP (SSL) 993
LDAP 389
LDAP (SSL) 636
MTA - X.400 over TCP/IP 102
POP3 110
POP3 (SSL) 995
RPC 135
SMTP 25
NNTP 119
NNTP (SSL) 563
File shares name lookup 137
File shares session 139
FTP 21
FTP-data 20
HTTP 80
HTTP-Secure Sockets Layer (SSL) 443
Internet Information Services (IIS) 80
IMAP 143
IMAP (SSL) 993
IKE (For more information, see Table C.4) 500
IPSec Authentication Header (AH) (For more information, see Table C.4)
IPSec Encapsulation Security Payload (ESP) (For more information, see Table C.4)

IRC 531
ISPMOD (SBS 2nd tier DNS registration wizard) 1234
Kerberos de-multiplexer 2053
Kerberos klogin 543
Kerberos kpasswd (v5) 464 464
Kerberos krb5 88 88
Kerberos kshell 544
L2TP 1701
LDAP 389
LDAP (SSL) 636
Login Sequence 137, 138 139
Macintosh, File Services (AFP/IP) 548
Membership DPA 568
Membership MSN 569
Microsoft Chat client to server 6667
Microsoft Chat server to server 6665
Microsoft Message Queue Server 1801 1801
Microsoft Message Queue Server 3527 135, 2101
Microsoft Message Queue Server 2103, 2105
MTA - X.400 over TCP/IP 102
NetBT datagrams 138
NetBT name lookups 137
NetBT service sessions 139
NetLogon 138
NetMeeting Audio Call Control 1731
NetMeeting H.323 call setup 1720
NetMeeting H.323 streaming RTP over UDP Dynamic
NetMeeting Internet Locator Server ILS 389
NetMeeting RTP audio stream Dynamic
NetMeeting T.120 1503
NetMeeting User Location Service 522
NetMeeting user location service ULS 522
Network Load Balancing 2504
NNTP 119
NNTP (SSL) 563
Outlook (see for ports)
Pass Through Verification 137, 138 139
POP3 110
POP3 (SSL) 995
PPTP control 1723
PPTP data (see Table C.4)
Printer sharing name lookup 137
Printer sharing session 139
Radius accounting (Routing and Remote Access) 1646 or 1813
Radius authentication (Routing and Remote Access) 1645 or 1812
Remote Install TFTP 69
RPC client fixed port session queries 1500
RPC client using a fixed port session replication 2500
RPC session ports Dynamic
RPC user manager, service manager, port mapper 135
SCM used by DCOM 135 135
SMTP 25
SNMP 161
SNMP Trap 162
SQL Named Pipes encryption over other protocols name lookup 137
SQL RPC encryption over other protocols name lookup 137
SQL session 139
SQL session 1433
SQL session 1024 - 5000
SQL session mapper 135
SQL TCP client name lookup 53 53
Telnet 23
Terminal Server 3389
UNIX Printing 515
WINS Manager 135
WINS NetBios over TCP/IP name service 137
WINS Proxy 137
WINS Registration 137
WINS Replication 42
X400 102

附录二:检查Microsoft SQL版本脚本程序
SET NOCOUNT ON
SELECT CONVERT(CHAR(25),@@SERVERNAME) AS 'SQL SERVER',
SUBSTRING(@@VERSION,23,4) AS 'PRODUCT VERSION',
SUBSTRING(@@VERSION,35,3) AS 'BUILD NUMBER',
CASE SUBSTRING(@@VERSION,35, 3)
-- 6.5
WHEN '121' THEN 'NO SP'
WHEN '124' THEN 'SP1'
WHEN '139' THEN 'SP2'
WHEN '151' THEN 'SP3'
WHEN '201' THEN 'NO SP'
WHEN '213' THEN 'SP1'
WHEN '240' THEN 'SP2'
WHEN '252' THEN 'SP3 ** BAD **'
WHEN '258' THEN 'SP3'
WHEN '259' THEN 'SP3 + SBS'
WHEN '281' THEN 'SP4'
WHEN '297' THEN 'SP4 + SBS'
WHEN '339' THEN 'SP4 + Y2K'
WHEN '415' THEN 'SP5 ** BAD **'
WHEN '416' THEN 'SP5a'
-- 7.0
WHEN '198' THEN 'Beta 1'
WHEN '517' THEN 'Beta 3'
WHEN '583' THEN 'RC1'
WHEN '623' THEN 'NO SP'
WHEN '689' THEN 'SP1 Beta'
WHEN '699' THEN 'SP1'
WHEN '835' THEN 'SP2 Beta'
WHEN '842' THEN 'SP2'
WHEN '961' THEN 'SP3'
-- 2000
WHEN '194' THEN 'NO SP'
ELSE 'Unknown - may be a Hot-Fix version or script out of date'
END AS 'SERVICE PACK'
set nocount off

附录三:SYN攻击

xxx.xx.xxx.xxx机器上用netstat �Cn �Cp tcp命令查看,可以发现很多SYN_RECEIVED连接。
而且都是发生在80端口上,而且无法正常访问80端口上的服务。其他的网络连接、服务都是
正常的。正常情况下不应该出现大量SYN_RECEIVED状态的TCP连接。例外这些连接的来源地址
都是有一定的规律。根据经验可以确定是有恶意者对xxx.xx.xxx.xxx进行D.o.S(Denial of
Service)攻击。

执行netstat命令结果如下:

Active Connections

Proto Local Address Foreign Address State
TCP 127.0.0.1:1025 127.0.0.1:1033 ESTABLISHED
TCP 127.0.0.1:1033 127.0.0.1:1025 ESTABLISHED
TCP xxx.xx.xxx.xxx:80 1.129.155.213:56048 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 8.71.96.232:18544 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 17.95.29.168:33072 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 33.212.238.226:29024 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 33.250.131.21:46336 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 41.254.157.63:26688 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 44.6.143.72:14352 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 44.233.0.83:2368 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 46.172.194.36:60560 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 52.141.107.180:34048 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 58.92.189.37:59680 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 147.24.54.140:42160 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 150.41.8.196:50864 SYN_RECEIVED
........................
........................
TCP xxx.xx.xxx.xxx:80 157.176.98.17:49712 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 165.217.228.103:18416 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 171.191.13.61:64656 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 174.45.224.245:30896 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 181.118.121.182:23984 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 191.3.0.46:2864 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 196.235.126.62:57024 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 208.104.144.7:50912 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 209.232.143.50:57248 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 214.14.49.76:50496 SYN_RECEIVED
TCP xxx.xx.xxx.xxx:80 223.71.101.172:62528 SYN_RECEIVED
........................
........................


攻击方式的分析:

通过对netstat命令结果的分析。可以知道这是利用TCP的脆弱性进行攻击的。简单说就是攻
击者伪造一个假的IP包,发送到目标攻击的机器,浪费目标机器上的TCP资源,从而是目标机
器无法为正常访问者提供服务的一种攻击。

现今很多Internt的服务都是建立在TCP连接上面的,包括Telnet ,WWW, Email。当一台机器
(我们称它为客户端)企图跟一个台提供服务的机器(我们称它为服务端)建立TCP连接时,
它们必须先按次序交换通讯好几次,这样TCP连接才能建立起来。

开始客户端会发送一个带SYN标记的包到服务端;
服务端收到这样带SYN标记的包后,会发送一个带SYN-ACK标记的包到客户端作为确认;
当客户端收到服务端带SYN-ACK标记的包后 ,会向服务端发送一个带ACK标记的包。
完成了这几个步骤(如下图),它们的TCP连接就建立起来了,可以进行数据通讯。

客户端 服务端
SYN →
← SYN-ACK
ACK →


攻击者就是利用TCP连接的建立需要这样的过程的特点,作为攻击的手段。

他们(攻击者)伪造一个IP包,其中里面包含一个SYN标记和假的源IP地址,发送到目标机器
(受攻击的机器)。

目标机器(受攻击的机器)收到攻击者发送过来的伪造的IP包,会尝试向IP包里面记录的源
IP地址发送一个带SYN-ACK标记的包到源IP地址的机器上。

由于攻击者发送过来的IP包里面包含的源IP地址为伪造的,所以目标机器(受攻击的机器)
根本无法成功发送带SYN-ACK标记的包到伪造的源IP地址的机器上。造成目标机器(受攻击的
机器)的等待,尝试再连接。

因为目标机器(受攻击的机器)的等待是需要占用系统一定的资源的。如果这样的连接到了
一定的数目,系统没有更多的资源来为新的连接作出响应,那么TCP连接就无法建立,换而言
之,就是无法提供正常的服务。

而这些等待的资源会在一定的时间(Time Out)后被释放。而Windows NT的默认设置第一次为
3秒的超时,尝试5次,每次尝试的超时时间为前一次的两倍。如下表:


花费时间(秒) 累计花费时间(秒)
第一次,失败 3 3
尝试第1次,失败 6 9
尝试第2次,失败 12 21
尝试第3次,失败 24 45
尝试第4次,失败 48 93
尝试第5次,失败 96 189


从上表,我们可以看到,如果是Windows NT默认的设置,那么一个这样攻击,将会把响应的
资源占用189秒,189秒后系统才会自动释放。如果这样的连接数目到了一定程度之后,系统
就无法提供正常的服务了。