发信人: gualaguala(大笨象)
整理人: gzcsl(2002-03-26 17:30:56), 站内信件
|
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 标准模式 –只有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 –n –p 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秒后系统才会自动释放。如果这样的连接数目到了一定程度之后,系统
就无法提供正常的服务了。
----
|
|