系统:Windows2003
服务:[IIS] [SERV-U] [IMAIL] [SQL SERVER 2000] [PHP] [MYSQL]
描述:为了演示,绑定了最多的服务,大家可以根据实际情况做筛减
1. WINDOWS本地安全策略 端口限制
A. 对于我们的例子来说,需要开通以下端口
外->本地 80
外->本地 20
外->本地 21
外->本地 PASV所用到的一些端口
外->本地 25
外->本地 110
外->本地 3389
然后按照具体情况,打开SQL SERVER和MYSQL的端口
外->本地 1433
外->本地 3306
B. 接着是开放从内部往外需要开放的端口
按照实际情况,如果无需邮件服务,则不要打开以下两条规则
本地->外 53 TCP,UDP
本地->外 25
按照具体情况,如果无需在服务器上访问网页,尽量不要开以下端口
本地->外 80
C. 除了明确允许的一律阻止,这个是安全规则的关键
外->本地 所有协议 阻止
2. 用户帐号
A. 将administrator改名,例子中改为root
B. 取消所有除管理员root外所有用户属性中的
远程控制->启用远程控制 以及
终端服务配置文件->允许登陆到终端服务器
C. 将guest改名为administrator并且修改密码
D. 除了管理员root、IUSER以及IWAM以及ASPNET用户外,禁用其他一切用户,包括SQL DEBUG以及TERMINAL USER等等
3. 目录权限
将所有盘符的权限,全部改为只有
administrators组 全部权限
ystem 全部权限
将C盘的所有子目录和子文件继承C盘的administrator(组或用户)和SYSTEM所有权限的两个权限
然后做如下修改
C:\Program Files\Common Files 开放Everyone默认的读取及运行 列出文件目录 读取三个权限
C:\WINDOWS\ 开放Everyone默认的读取及运行 列出文件目录 读取三个权限
C:\WINDOWS\Temp 开放Everyone 修改、读取及运行、列出文件目录、读取、写入权限
现在WebShell就无法在系统目录内写入文件了。当然也可以使用更严格的权限,在WINDOWS下分别目录设置权限。可是比较复杂,效果也并不明显。
4. IIS
在IIS 6下,应用程序扩展内的文件类型对应ISAPI的类型已经去掉了IDQ、PRINT等等危险的脚本类型,
在IIS 5下我们需要把除了ASP以及ASA以外所有类型删除。
安装URLSCAN
在[DenyExtensions]中一般加入以下内容 .cer
.cdx
.mdb
.bat
.cmd
.com
.htw
.ida
.idq
.htr
.idc
.shtm
.shtml
.stm
.printer
这样入侵者就无法下载.mdb数据库,这种方法比外面一些在文件头加入特殊字符的方法更加彻底。
因为即便文件头加入特殊字符,还是可以通过编码构造出来的
5. WEB目录权限
作为虚拟主机,会有许多独立客户。比较保险的做法就是为每个客户建立一个Windows用户,然后在IIS的响应的站点项内把IIS执行的匿名用户,绑定成这个用户并且把他指向的目录,权限变更为administrators 全部权限
system 全部权限
单独建立的用户(或者IUSER) 选择高级->打开除 完全控制、遍历文件夹/运行程序、取得所有权 3个外的其他权限
如果服务器上站点不多,并且有论坛,我们可以把每个论坛的上传目录去掉此用户的执行权限,只有读写权限这样入侵者即便绕过论坛文件类型检测上传了webshell也是无法运行的。
6. MS SQL SERVER2000
使用系统帐户登陆查询分析器运行以下脚本 use master
exec sp_dropextendedproc 'xp_cmdshell'
exec sp_dropextendedproc 'xp_dirtree'
exec sp_dropextendedproc 'xp_enumgroups'
exec sp_dropextendedproc 'xp_fixeddrives'
exec sp_dropextendedproc 'xp_loginconfig'
exec sp_dropextendedproc 'xp_enumerrorlogs'
exec sp_dropextendedproc 'xp_getfiledetails'
exec sp_dropextendedproc 'Sp_OACreate'
exec sp_dropextendedproc 'Sp_OADestroy'
exec sp_dropextendedproc 'Sp_OAGetErrorInfo'
exec sp_dropextendedproc 'Sp_OAGetProperty'
exec sp_dropextendedproc 'Sp_OAMethod'
exec sp_dropextendedproc 'Sp_OASetProperty'
exec sp_dropextendedproc 'Sp_OAStop'
exec sp_dropextendedproc 'Xp_regaddmultistring'
exec sp_dropextendedproc 'Xp_regdeletekey'
exec sp_dropextendedproc 'Xp_regdeletevalue'
exec sp_dropextendedproc 'Xp_regenumvalues'
exec sp_dropextendedproc 'Xp_regread'
exec sp_dropextendedproc 'Xp_regremovemultistring'
exec sp_dropextendedproc 'Xp_regwrite'
drop procedure sp_makewebtask
go 删除所有危险的扩展 7. 修改CMD.EXE以及NET.EXE权限
将两个文件的权限修改到特定管理员才能访问,比如本例中,我们如下修改
cmd.exe root用户 所有权限
et.exe root用户 所有权现
这样就能防止非法访问
还可以使用例子中提供的comlog程序将com.exe改名_com.exe,然后替换com文件,这样可以记录所有执行的命令行指令
8. 备份
使用ntbackup软件备份系统状态,使用reg.exe 备份系统关键数据,如reg export
LM\SOFTWARE\ODBC e:\backup\system\odbc.reg /y
来备份系统的ODBC
9. 杀毒
这里介绍MCAFEE 8i 中文企业版,因为这个版本对于国内的许多恶意代码和木马都能够及时的更新。
比如已经能够检测到海阳顶端2006,而且能够杀除IMAIL等SMTP软件使用的队列中MIME编码的病毒文件,而很多人喜欢安装诺顿企业版,而诺顿企业版,对于WEBSHELL,基本都是没有反应的。而且无法对于MIME编码的文件进行杀毒。
在MCAFEE中,我们还能够加入规则阻止在windows目录建立和修改EXE.DLL文件等,我们在软件中加入对WEB目录的杀毒计划,每天执行一次,并且打开实时监控。
10. 关闭无用的服务
我们一般关闭如下服务
Computer Browser
Help and Support
Messenger
Print Spooler
Remote Registry
TCP/IP NetBIOS Helper
如果服务器不用作域控,我们也可以禁用Workstation
11. 取消危险组件
如果服务器不需要FSO,regsvr32 /u c:\windows\system32\scrrun.dll注销组件,使用regedit将/HKEY_CLASSES_ROOT下的
WScript.Network
WScript.Network.1
WScript.Shell
WScript.Shell.1
Shell.Application
Shell.Application.1
键值改名或删除
将这些键值下CLSID中包含的字串
如{72C24DD5-D70A-438B-8A42-98424B88AFB8}
到/HKEY_CLASSES_ROOT/CLSID下找到以这些字串命名的键值
全部删除
12. 审计
本地安全策略->本地策略->审核策略
打开以下内容
审核策略更改 成功,失败
审核系统事件 成功,失败
审核帐户登陆事件 成功,失败
审核帐户管理 成功,失败
服务:[IIS] [SERV-U] [IMAIL] [SQL SERVER 2000] [PHP] [MYSQL]
描述:为了演示,绑定了最多的服务,大家可以根据实际情况做筛减
1. WINDOWS本地安全策略 端口限制
A. 对于我们的例子来说,需要开通以下端口
外->本地 80
外->本地 20
外->本地 21
外->本地 PASV所用到的一些端口
外->本地 25
外->本地 110
外->本地 3389
然后按照具体情况,打开SQL SERVER和MYSQL的端口
外->本地 1433
外->本地 3306
B. 接着是开放从内部往外需要开放的端口
按照实际情况,如果无需邮件服务,则不要打开以下两条规则
本地->外 53 TCP,UDP
本地->外 25
按照具体情况,如果无需在服务器上访问网页,尽量不要开以下端口
本地->外 80
C. 除了明确允许的一律阻止,这个是安全规则的关键
外->本地 所有协议 阻止
2. 用户帐号
A. 将administrator改名,例子中改为root
B. 取消所有除管理员root外所有用户属性中的
远程控制->启用远程控制 以及
终端服务配置文件->允许登陆到终端服务器
C. 将guest改名为administrator并且修改密码
D. 除了管理员root、IUSER以及IWAM以及ASPNET用户外,禁用其他一切用户,包括SQL DEBUG以及TERMINAL USER等等
3. 目录权限
将所有盘符的权限,全部改为只有
administrators组 全部权限
ystem 全部权限
将C盘的所有子目录和子文件继承C盘的administrator(组或用户)和SYSTEM所有权限的两个权限
然后做如下修改
C:\Program Files\Common Files 开放Everyone默认的读取及运行 列出文件目录 读取三个权限
C:\WINDOWS\ 开放Everyone默认的读取及运行 列出文件目录 读取三个权限
C:\WINDOWS\Temp 开放Everyone 修改、读取及运行、列出文件目录、读取、写入权限
现在WebShell就无法在系统目录内写入文件了。当然也可以使用更严格的权限,在WINDOWS下分别目录设置权限。可是比较复杂,效果也并不明显。
4. IIS
在IIS 6下,应用程序扩展内的文件类型对应ISAPI的类型已经去掉了IDQ、PRINT等等危险的脚本类型,
在IIS 5下我们需要把除了ASP以及ASA以外所有类型删除。
安装URLSCAN
在[DenyExtensions]中一般加入以下内容 .cer
.cdx
.mdb
.bat
.cmd
.com
.htw
.ida
.idq
.htr
.idc
.shtm
.shtml
.stm
.printer
这样入侵者就无法下载.mdb数据库,这种方法比外面一些在文件头加入特殊字符的方法更加彻底。
因为即便文件头加入特殊字符,还是可以通过编码构造出来的
5. WEB目录权限
作为虚拟主机,会有许多独立客户。比较保险的做法就是为每个客户建立一个Windows用户,然后在IIS的响应的站点项内把IIS执行的匿名用户,绑定成这个用户并且把他指向的目录,权限变更为administrators 全部权限
system 全部权限
单独建立的用户(或者IUSER) 选择高级->打开除 完全控制、遍历文件夹/运行程序、取得所有权 3个外的其他权限
如果服务器上站点不多,并且有论坛,我们可以把每个论坛的上传目录去掉此用户的执行权限,只有读写权限这样入侵者即便绕过论坛文件类型检测上传了webshell也是无法运行的。
6. MS SQL SERVER2000
使用系统帐户登陆查询分析器运行以下脚本 use master
exec sp_dropextendedproc 'xp_cmdshell'
exec sp_dropextendedproc 'xp_dirtree'
exec sp_dropextendedproc 'xp_enumgroups'
exec sp_dropextendedproc 'xp_fixeddrives'
exec sp_dropextendedproc 'xp_loginconfig'
exec sp_dropextendedproc 'xp_enumerrorlogs'
exec sp_dropextendedproc 'xp_getfiledetails'
exec sp_dropextendedproc 'Sp_OACreate'
exec sp_dropextendedproc 'Sp_OADestroy'
exec sp_dropextendedproc 'Sp_OAGetErrorInfo'
exec sp_dropextendedproc 'Sp_OAGetProperty'
exec sp_dropextendedproc 'Sp_OAMethod'
exec sp_dropextendedproc 'Sp_OASetProperty'
exec sp_dropextendedproc 'Sp_OAStop'
exec sp_dropextendedproc 'Xp_regaddmultistring'
exec sp_dropextendedproc 'Xp_regdeletekey'
exec sp_dropextendedproc 'Xp_regdeletevalue'
exec sp_dropextendedproc 'Xp_regenumvalues'
exec sp_dropextendedproc 'Xp_regread'
exec sp_dropextendedproc 'Xp_regremovemultistring'
exec sp_dropextendedproc 'Xp_regwrite'
drop procedure sp_makewebtask
go 删除所有危险的扩展 7. 修改CMD.EXE以及NET.EXE权限
将两个文件的权限修改到特定管理员才能访问,比如本例中,我们如下修改
cmd.exe root用户 所有权限
et.exe root用户 所有权现
这样就能防止非法访问
还可以使用例子中提供的comlog程序将com.exe改名_com.exe,然后替换com文件,这样可以记录所有执行的命令行指令
8. 备份
使用ntbackup软件备份系统状态,使用reg.exe 备份系统关键数据,如reg export
LM\SOFTWARE\ODBC e:\backup\system\odbc.reg /y
来备份系统的ODBC
9. 杀毒
这里介绍MCAFEE 8i 中文企业版,因为这个版本对于国内的许多恶意代码和木马都能够及时的更新。
比如已经能够检测到海阳顶端2006,而且能够杀除IMAIL等SMTP软件使用的队列中MIME编码的病毒文件,而很多人喜欢安装诺顿企业版,而诺顿企业版,对于WEBSHELL,基本都是没有反应的。而且无法对于MIME编码的文件进行杀毒。
在MCAFEE中,我们还能够加入规则阻止在windows目录建立和修改EXE.DLL文件等,我们在软件中加入对WEB目录的杀毒计划,每天执行一次,并且打开实时监控。
10. 关闭无用的服务
我们一般关闭如下服务
Computer Browser
Help and Support
Messenger
Print Spooler
Remote Registry
TCP/IP NetBIOS Helper
如果服务器不用作域控,我们也可以禁用Workstation
11. 取消危险组件
如果服务器不需要FSO,regsvr32 /u c:\windows\system32\scrrun.dll注销组件,使用regedit将/HKEY_CLASSES_ROOT下的
WScript.Network
WScript.Network.1
WScript.Shell
WScript.Shell.1
Shell.Application
Shell.Application.1
键值改名或删除
将这些键值下CLSID中包含的字串
如{72C24DD5-D70A-438B-8A42-98424B88AFB8}
到/HKEY_CLASSES_ROOT/CLSID下找到以这些字串命名的键值
全部删除
12. 审计
本地安全策略->本地策略->审核策略
打开以下内容
审核策略更改 成功,失败
审核系统事件 成功,失败
审核帐户登陆事件 成功,失败
审核帐户管理 成功,失败