论坛风格切换
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 1854阅读
  • 1回复

[求助-系统问题]服务器安全设置小节 [复制链接]

上一主题 下一主题
离线惊鸿一剑
 
发帖
*
今日发帖
最后登录
1970-01-01
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-06-24 11:54:40
一:FileSystemObject组件

  FileSystemObject可以对文件进行常规操作

  可以通过修改注册表,将此组件改名,来防止此类木马的危害。

  HKEY_CLASSES_ROOT\Scripting.FileSystemObject\

  改名为其它的名字,如:改为FileSystemObject_ChangeName

  自己以后调用的时候使用这个就可以正常调用此组件了

  也要将clsid值也改一下

  HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值

  也可以将其删除,来防止此类木马的危害。

  注销此组件命令:RegSrv32 /u C:\WINNT\SYSTEM\scrrun.dll

  禁止Guest用户使用scrrun.dll来防止调用此组件。

  使用命令:cacls C:\WINNT\system32\scrrun.dll /e /d guests

  三种禁用FileSystemObject(FSO)组件的方法

  众所周知,FileSystemObject组件的强大功能及破坏性是它屡屡被免费主页

  提供商(那些支持ASP)的禁用的原因,我整理了一下,本来只找到两种方法,后来

  被某人一刺激,硬是想到第三种不为人所知的方法,呵呵,也不知道是不是这样的。

  第一种:用RegSrv32 /u C:\WINDOWS\SYSTEM\scrrun.dll来注销该组件。

  此方法过于狠毒,属于同归于尽的方法,大家都没得用,是下招

  第二种:修改Progid的值,在ASP里调用组件的方式通常是 Set 对象名=Server.

  CreateObject("Progid"),这时候我们就可以通过修改注册表中的Progid值从达

  到禁用该组件的方法。在 开始-运行中敲入regedit,然后找到HKEY_CLASSES_ROO

  T\Scripting.FileSystemObject,这时候我们就可以更改该Progid的值了,如改

  成Scripting.FileSystemObject8。这样在ASP页里就这样调用了:

  以下是代码片段:

  <%@ Language=Vbscript%>

  <%

  Set Fs=Server.CreateObject("Scripting.FileSystemObject8")

  %>

  (如果你前面没有调用过该组件的话,则无须重启,就可以看到效果了,否则请重

  启后看效果。)

  第三种:细心的高手们会想,既然能通过修改Progid值来禁用该组件,那Clsid是

  否也可以来修改呢?(OK,你想得和我一样)我们知道,除了CreateObject方法以

  外,也可以使用一般的标注建立一个组件,我们可以在ASP里面使用HTM

  L的标注,以便在网页中加入一个组件。方法是:

  以下是代码片段:

  <object runat=server id=fs1 scope=page progid="Scripting.FileSystemObj

  ect"></object>

  Runat表示是在服务端执行,Scope表示组件的生命周期,可以选用Session,Appl

  ication或page(表示当前页面,也可缺省)

  这种写法对我们没用,还有一种写法是:

  以下是代码片段:

  <object runat=server id=fs1 scope=page classid="clsid:clsid的值"></obj

  ect>

  我们也可以通过修改该Clsid的值而禁用该组件,如将注册表中HKEY_CLASSES_RO

  OT\Scripting.FileSystemObject\CLSID的值0D43FE01-F093-11CF-8940-00A0C90

  54228改成0D43FE01-F093-11CF-8940-00A0C9054229(改了最后面一位),这时候的

  写法为:

  以下是代码片段:

  <object runat=server id=fs1 scope=page classid="clsid:0D43FE01-F093-11

  CF-8940-00A0C9054229"></object>

  看运行结果,没问题,OK。这时候我们再用

  以下是代码片段:

  <object runat=server id=fs1 scope=page classid="clsid:0D43FE01-F093-11

  CF-8940-00A0C9054228"></object>

  这时候就出错了。

  新建一用户:iusr_domain

  IIS里设置对应站点的匿名用户IUSR_DOMAIN

  CACLS: 设置目录权限

  这样FSO可用,但不会影响别人

  二:WScript.Shell组件 WScript.Shell.1  WScript.Network.1 WScript.Network

  WScript.Shell可以调用系统内核运行DOS基本命令

  可以通过修改注册表,将此组件改名,来防止此类木马的危害。

  HKEY_CLASSES_ROOT\WScript.Shell\及HKEY_CLASSES_ROOT\WScript.Shell.1\

  改名为其它的名字,如:改为WScript.Shell_ChangeName或WScript.Shell.1_ChangeName

  自己以后调用的时候使用这个就可以正常调用此组件了

  也要将clsid值也改一下

  HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值


HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值

  也可以将其删除,来防止此类木马的危害。

  NET USER的禁用

  在HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names ,我们来新建一个项,项名为空格,然后在右边双击一下键值

  NET USER /ADD的禁用

  net user v /add

  打开注册表 HKEY_LOCAL_MACHINE\SAM\SAM 在右边把C键值删去~~

  三:Shell.Application组件    Shell.Application.1

  Shell.Application可以调用系统内核运行DOS基本命令

  可以通过修改注册表,将此组件改名,来防止此类木马的危害。

  HKEY_CLASSES_ROOT\Shell.Application\

  及HKEY_CLASSES_ROOT\Shell.Application.1\

  改名为其它的名字,如:改为Shell.Application_ChangeName或Shell.Application.1_ChangeName

  自己以后调用的时候使用这个就可以正常调用此组件了

  也要将clsid值也改一下

  HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值

  HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值

  也可以将其删除,来防止此类木马的危害。

  禁止Guest用户使用shell32.dll来防止调用此组件。

  使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests

  注:操作均需要重新启动WEB服务后才会生效。

  四:Cmd.exe  WScript.Shell  Shell.application  wscript.network

  禁用Guests组用户调用cmd.exe

  cacls C:\WINNT\system32\Cmd.exe /e /d guests

  彻底删掉WScript.Shell和Shell.application ,命令是regsvr32/u wshom.ocx和regsvr32/u wshext.dll,

  卸载Shell.Application对象 regsvr32.exe shell32.dll /u

  五:ADODB.STREAM

  禁用ADODB.STREAM

  我看有很多网页木马用到了这个用来列举出文件目录,有的ASP木马是用CLASSID来创建脚本对象的,

  懂的朋友麻烦说说怎么禁掉这个对象,如果可以禁这个脚本对象应该就可以完全的阻止ASP木马了吧,

  像SHELL执行已经禁掉了

  -------------------------------------------------------

  根据HKEY_CLASSES_ROOT\ADODB.Stream\CLSID的值获得CLASSID,

  我的XP上是,每台主机上应该都一样。

  再根据HKEY_CLASSES_ROOT\CLSID\\InprocServer32的值,找到这个ActiveX对应的dll。

  我的XP上是C:\Program Files\Common Files\System\ado\msado15.dll

  然后regsvr32 /s /u "C:\Program Files\Common Files\System\ado\msado15.dll"

  于是就把ADODB.STREAM给卸载了。

  ---------------------------------------------------------

  但这样会把整个ado都卸载了(估计会这样).

  如果本机还有一些ado的应用,那么可能会出问题啊

  直接删除了 HKEY_CLASSES_ROOT\ADODB.Stream\CLSID 应该就ok了吧????

  那个dll还是保留好一点

  ---------------------------------------------------------

  ASP木马在服务器上运行的跟打IE补丁有什么关系呢?

  ASP木马用到了FSO,ADODB.STREAM,还有一个DICTIONARY的脚本对象,我想最主要的还是前两个没了前两个对象难道ASP木马还有办法运行起来吗?

  --------------------------------------------------------

  禁用了??

  我的2000sp4,xp sp1,xp sp2都可以用adodb.stream。

  可能只是不让IE调用吧,即使安全级别降低

  六:Workstation

  封杀webshell 查看系统进程的功能,对我的电脑点右键-管理-服务应用程序-服务-workstation,双击点停止,禁用.这个服务在倒数第二个 “Workstation”——svchost.exe——是用来管理网络,支持联网和打印/文件共享的,禁用了也没事 对海洋有用

  七:封杀serv-u和SQL

  封杀serv-u和SQL,因为serv-u和sql都是系统权限,也就是system用户,我们的目的就是把他俩变成user用户,让他俩没权限添加administrator的帐号,这里,ftp "net user leilei3 leilei3 /add" 成功添加了leilei2帐号,serv-u本地提权漏洞,解决方法,先添加一个user权限的用户,我这就用leilei3这个用户了,然后对对我的电脑点右键-管理-服务应用程序-服务-Serv-U FTP 服务器-登陆-此帐户,把默认的改掉,

  或者把SU的管理员的密码改掉,再把目录的权限设置成管理员控制,IIS用户不能浏览。

  一般的目录:C:\Program Files\serv-u\ServUDaemon.ini 一定要设置好权限SU的设置方法:

  serv-U v6以下的版本 不推荐使用 因为漏洞太多

  这里我简单总结一下 网上也有很多教程的

  一定要用ipsec做限定相关出入站端口访问 比如把43958改成12345 限制任何IP访问12345端口访问!

  Serv-u本地默认管理端口,以默认管理员登陆新建域和用户来执行命令,

  Serv-u V3.x以上的版本默认本地管理端口是:127.0.0.1:43958,所以只能本机连接,默认管理员:LocalAdministrator,默认密码:#l@$ak#.lk;0@P,这是集成在Serv-u内部的,可以以Guest权限来进连接,对Serv-u进行管理

  1.用Ultraedit修改文件ServUDaemon.exe和ServUAdmin.exe,

  把默认密码修改成等长度的其它字符就可以了

  2.用Ultraedit打开ServUAdmin.exe查找最后一个B6AB(43958的16进制),

  替换成自定义的端口比如3930(12345)

  Serv-u V6.0 及以上直接修改密码

  SERV-U 6.0.0.2版的安全配置此版本有了登录密码功能,安全性也大大提高

  一 安装过程

  1.SERV-U默认是安装在C:\ProgramFiles\Serv-U目录下的一定要改 目录名越复杂越好

  2.安装的时候只选前2项

  3.改开始菜单组里的文件夹的名字 比如

  4.安装完成后会出现一个向导让你建立一个域驼撕?点Cancel取消向导

  5.桌面和开始菜单上生成快捷方式,一定要删除

  二 设置部分

  1.点自动开始  然后一定要设置密码 (原来的密码为空 一定要设置一个足够复杂的密码,以防止别人暴力破解。如果忘记只要把ServUDaemon.ini里的LocalSetupPassword=这一行清除并保存,再次运行ServUAdmin.exe就不会提示你输入密码登录了。)

  2.给Serv-U建立个单独帐号比如hack密码需要足够复杂 然后编辑用户属性,从“隶属于”里删除USERS组 ( 如果你安装了终端服务 那末从“终端服务配置文件”选项里取消“允许登录到终端服务器(W)”的选择).使用普通组用户启动的Serv-U是不能增加用户和删除用户的,这里说的是SERV-U用户!

  3.服务里 选择“Serv-U FTP 服务器”的属性

  然后点击“登录”进入登录账号选择界面。选择刚才建立的账号,并在下面重复输入2次该账号的密码,然后点“应用”,再次点确定,完成服务的设置。

  4.运行regedt32 找到[HKEY_LOCAL_MACHINE\SOFTWARE\Cat Soft]分支 设置权限

  删除所有用户,增加刚才的hack用户完全控制

  5.设置安装目录权限,只保留管理员账号和hack账号,并给予除了完全控制外的所有权限。

  6.设置FTP用户权限 我这里路径是e:\web。那么在这个目录的“安全设定”里除了管理员和IIS用户都删除掉(我这里IIS用户为1234),再加入hack账号,WEB目录所在盘的根目录还要设置允许hack6账号的浏览和读取权限,并确认在高级里设置只有该文件夹

  7.测试 使用FTP管理工具建立一个域,再建立一个账号,建好后选择保存在注册表

  对于SQL 一般情况下只给public权限 最好把列目录的组件也删除掉,否则会造成服务的安全文件

  删除掉危险的组件:

  使用系统帐户登陆查询分析器

  运行以下脚本

  use master

  exec sp_dropextendedproc 'xp_cmdshell'

  exec sp_dropextendedproc 'xp_enumgroups'

  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_regremovemultistring'

  exec sp_dropextendedproc 'Xp_regwrite'

  drop procedure sp_makewebtask

  go

  删除所有危险的扩展.

  以下3个存储过程会在SQL SERVER恢复备份时被使用,非必要请勿删除

  #exec sp_dropextendedproc 'xp_dirtree'

  #exec sp_dropextendedproc 'Xp_re gread'

  #exec sp_dropextendedproc 'xp_fixeddrives'

  恢复脚本

  use master

  EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

  EXEC sp_addextendedproc xp_enumgroups ,@dllname ='xplog70.dll'

  EXEC sp_addextendedproc xp_loginconfig ,@dllname ='xplog70.dll'

  EXEC sp_addextendedproc xp_enumerrorlogs ,@dllname ='xpstar.dll'

  EXEC sp_addextendedproc xp_getfiledetails ,@dllname ='xpstar.dll'

  EXEC sp_addextendedproc Sp_OACreate ,@dllname ='odsole70.dll'

  EXEC sp_addextendedproc Sp_OADestroy ,@dllname ='odsole70.dll'

  EXEC sp_addextendedproc Sp_OAGetErrorInfo ,@dllname ='odsole70.dll'

  EXEC sp_addextendedproc Sp_OAGetProperty ,@dllname ='odsole70.dll'

  EXEC sp_addextendedproc Sp_OAMethod ,@dllname ='odsole70.dll'

  EXEC sp_addextendedproc Sp_OASetProperty ,@dllname ='odsole70.dll'

  EXEC sp_addextendedproc Sp_OAStop ,@dllname ='odsole70.dll'

  EXEC sp_addextendedproc Xp_regaddmultistring ,@dllname ='xpstar.dll'

  EXEC sp_addextendedproc Xp_regdeletekey ,@dllname ='xpstar.dll'

  EXEC sp_addextendedproc Xp_regdeletevalue ,@dllname ='xpstar.dll'

  EXEC sp_addextendedproc Xp_regenumvalues ,@dllname ='xpstar.dll'

  EXEC sp_addextendedproc Xp_regremovemultistring ,@dllname ='xpstar.dll'

  EXEC sp_addextendedproc Xp_regwrite ,@dllname ='xpstar.dll'

  EXEC sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll'

  EXEC sp_addextendedproc Xp_regread ,@dllname ='xpstar.dll'

  EXEC sp_addextendedproc xp_fixeddrives ,@dllname ='xpstar.dll'

  go

  八:端口

  21 防止服务器利用FTP下载木马运行

  23 防止telnet 修改login.bat

  69 防止服务器利用TFTP下载木马运行

  135 139 445  防止溢出

  3389 终端

  4899 5631 5900 装了相应的软件注意下安全策略

  首先打开控制面版--管理工具--本地安全策略,在空白区域创建,这里的即或默认响应规则的勾去掉,还有这里的使用“添加向导 ”也去掉,开始添加,选择源地址为任何IP地址,目标地址为我的IP地址, 点协议选择TCP,到此端口里面依次添加23、69、135、139、445、3389、4899、2005、1433、这些,好了,如果你想让别人ping不通你的机器,你可以添加一个ICMP协议,首先在没有添加的时候测试一下,

  Reply from 61.134.1.4: bytes=32 time=13ms TTL=58

  Reply from 61.134.1.4: bytes=32 time=9ms TTL=58

  Reply from 61.134.1.4: bytes=32 time=9ms TTL=58

  Reply from 61.134.1.4: bytes=32 time=14ms TTL=58

  现在是通的,我们现在添加上,等一会一起测试,还有都知道灰鸽子的默认上线端口是8000,一般的菜鸟朋友喜欢默认的,所以可以添加一个阻止它的端口的协议,源地址和目标地址不用改默认就可以,添加8000,这样的话要注意一点,就是自己的QQ,因为QQ有时候登陆上去的服务器地址也是8000端口,这里大家可以自己设置一下,把这里换个服务器就可以了。好了,现在完成IP策略,每一步都要激活,添加阻止,好了,确定完成步骤,OK。现在把新添加上去的新IP安全策略,指派,再测试一下,

  Pinging 61.134.1.4 with 32 by

  Destination host unreachable.

  Destination host unreachable.

  Destination host unreachable.

  禁止了外网ping自己,也同时禁止了自己不能使用ping 命令

  WINDOWS本地安全策略 端口限制

  A.对于我们的例子来说.需要开通以下端口

  外->本地 80

  外->本地 20

  外->本地 21

  外->本地 PASV所用到的一些端口

  外->本地 25

  外->本地 110

  外->本地 3389

  然后按照具体情况.打开SQL SERVER和MYSQL的端口

  外->本地 1433

  外->本地 3306

  B.接着是开放从内部往外需要开放的端口

  按照实际情况,如果无需邮件服务,则不要打开以下两条规则

  本地->外 53 TCP,UDP

  本地->外 25

  按照具体情况.如果无需在服务器上访问网页.尽量不要开以下端口

  本地->外 80
C.除了明确允许的一律阻止.这个是安全规则的关键.

  外->本地 所有协议 阻止

  九:IIS的权限设置 系统目录的权限设置

  系统的每个分区禁止everyone访问的。每个网站用单独的iis用户,例如,iis_www.target.com。一般虚拟主机设置这个用户是隶属guest组的,权限很低的。只能访问特定的文件夹。这就导致了网站目录不能跳转,你只能访问本网站所在文件夹。但是我要强调的是,虽然禁止了C盘的everyone访问,但是大多数系统的C盘子文件夹没有继承父文件夹的限制,于是,我们可以手动的访问(注意:自己添加路径再转)    C:\Documents and Settings\All Users\Documents

  C:\WINDOWS\system32\inetsrv\ 好象只能是win2k

  网站目录 IIS可能限制了命令的执行 只能运行纯脚本

  c:\Program Files\serv-u\

  C:\Program Files\Microsoft SQL Server\

  c:\Temp\

  c:\mysql\(如果服务器支持PHP)

  c:\PHP(如果服务器支持PHP)

  c:\prel    他的bin目录下不能上传 否则服务器就危险了

  C:\Program Files\Java Web Start\

  c:\Documents and Settings\

  c:\Program Files\

  C:\PROGRAM FILES\KV2004\

  c:\PROGRAM FILES\RISING\

  C:\Program Files\Real\RealServer\

  C:\RECYCLER\

  C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\

  设置好目录的运行权限 防止运行木马和用NC反弹cmdshell

  访问控制表列ACLS控制:找到%windir%\system32下找到cmd.exe、cmd32.exe net.exe net1.exe ipconfig.exe tftp.exe ftp.exe user.exe reg.exe regedit.exe regedt32.exe regsvr32.exe

  对不需要asp有执行许可的目录,如data目录,images目录,uploadfile,uploadface

  等里面没有asp文件的目录,根本不需要对其设置asp的运行权。而默认是整站都有asp的

  运行权的,所以需要在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数据库.这种方法比外面一些在文件头加入特殊字符的方法更加彻底.

  因为即便文件头加入特殊字符.还是可以通过编码构造出来的

  十:首页和数据库连接页面监视

  用filewatch等文件监视器,来监视首页和数据库连接文件的监视,防止被挂马。

  十一:最好能检查下代码 防止SQL注入和跨站,

  常见的脚本安全工具:雷图站长安全助手。 SQL通用防注入程序  。安全伞。IIS入侵检测及警报系统。

  SSK。 等都是优秀的脚本安全工具

  十二:防止PHP木马

  防止PHP木马主要有三步:

  1.开启 safe mode  开启这个东西,主要就是防止别人执行一些DOS命令!

  打开php的安全模式

  safe_mode = on

  safe_mode_gid = off

  safe_mode_exec_dir = 网站目录

  这个三个需要配套修改

  2.expose_php = Off 关闭PHP版本信息

  open_basedir = /home/web/  这个主要就是用来把网站锁在这一个目录中的!

  关闭PHP版本信息

  expose_php = Off

  打开这个

  magic_quotes_gpc = On

  关闭报错

  display_errors = off

  display_startup_errors = off

  3.就是网上流传的封PHP脚本木马的一些函数了。

  passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir ,fopen,fread,fclose,fwrite,file_exists ,closedir,is_dir,readdir,opendir ,fileperms.copy,unlink,delfile

  十三:.NET木马的安全

  有很多管理员把asp的权限设置得很好 但是.NET的权限设置有问题

  我们只能使用工作进程隔离模式解决.net的安全问题。

  默认情况下,IIS 6.0在工作进程隔离模式下运行,如图五所示。
在这种模式中,对于每一个Web应用,IIS 6.0都用一个独立的w3wp.exe的实例来运行它。w3wp.exe也称为工作进程(Worker Process),或W3Core。可靠性和安全性。可靠性的提高是因为一个Web应用的故障不会影响到其他Web应用,也不会影响http.sys,每一个Web应用由W3SVC单独地监视其健康状况。安全性的提高是由于应用程序不再象IIS 5.0和IIS 4.0的进程内应用那样用System帐户运行,默认情况下,w3wp.exe的所有实例都在一个权限有限的“网络服务”帐户下运行,如图六所示,必要时,还可以将工作进程配置成用其他用户帐户运行。

  我们把每一个网站都分配一个独立的应用程序池,并赋予不同的权限。不就能解稣飧鑫侍饬寺穑?

  具体如何做呢,下面我就针对建立一个网站来做一个示范:

  首先,我们为网站创建两个用户(一个是app_test_user、密码为appuser,一个是iis_test_user、密码为iisuser)

  1. 打开 计算机管理器

  2. 单击控制台树中的用户→计算机管理→系统工具→本地用户和组→用户

  3. 单击“操作”菜单上的“新用户”输入用户名为。app_test_user、密码为appuser

  4. 在对话框中键入适当的信息。

  5. 选中复选框: 用户不能更改密码 密码永不过期

  6. 单击“创建”,然后单击“关闭”。

  按照此方法在创建iis_test_user账户

  然后分别把app_test_user添加到iis_wpg组,把iis_test_user添加到Guests组。删除其他组。

  然后,建立相应的应用程序池。

  依次打开Internet 信息服务→本地计算机→应用程序池→新建→应用程序池

  新建一个名字为test的应用程序池 编辑test应用程序池的属性→标示→配置→用户名→浏览→把用户名改为我们刚才建立的app_test_user并输入相应的密码

  其次建立相应的网站。

  依次打开Internet 信息服务→本地计算机→网站→新建→test的网站,目录为d:    est →编辑test网站的属性→主目录→应用程序池→app_test_user →目录安全性→身份验证和访问控制→编辑,选择我们刚才建立的iis_test_user,并输入相应的密码iisuser→保存并退出。

  十四:下载信息

  这里主要是通过URL SCAN.来过滤一些非法请求

  对应措施:过滤相应包

  我们通过安全URL SCAN并且设置urlscan.ini中的DenyExtensions字段

  来阻止特定结尾的文件的执行

  十五:审计

  首先我们要确定在windows日志中打开足够的审计项目.

  如果审计项目不足.入侵者甚至都无需去删除windows事件.

  其次我们可以用自己的cmd.exe以及net.exe来替换系统自带的.

  将运行的指令保存下来.了解入侵者的行动.

  对于windows日志

  我们可以通过将日志发送到远程日志服务器的方式来保证记录的完整性.

  evtsys工具(https://engineering.purdue.edu/ECN/Resources/Documents)

  提供将windows日志转换成syslog格式并且发送到远程服务器上的功能.

  使用此用具.并且在远程服务器上开放syslogd,如果远程服务器是windows系统.

  推荐使用kiwi syslog deamon.

  备份

  使用ntbackup软件.备份系统状态.

  使用reg.exe 备份系统关键数据

  如reg export HKLM\SOFTWARE\ODBC e:\backup\system\odbc.reg /y

  来备份系统的ODBC

  日志文件默认位置:

  应用程序日志、安全日志、系统日志、DNS日志默认位置:%systemroot%/system32/config,

  默认文件大小512KB,管理员都会改变这个默认大小。

  安全日志文件:%systemroot%/system32/config/SecEvent.EVT

  系统日志文件:%systemroot%/system32/config/SysEvent.EVT

  应用程序日志文件:%systemroot%/system32/config/AppEvent.EVT

  Internet信息服务FTP日志默认位置:%systemroot%/system32/logfiles/msftpsvc1/,默认每天一个日志

  Internet信息服务WWW日志默认位置:%systemroot%/system32/logfiles/w3svc1/,默认每天一个日志

  Scheduler服务日志默认位置:%systemroot%/schedlgu.txt

  以上日志在注册表里的键:

  应用程序日志,安全日志,系统日志,DNS服务器日志,它们这些LOG文件在注册表中的:

  HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Eventlog

  有的管理员很可能将这些日志重定位。其中EVENTLOG下面有很多的子表,里面可查到以上日志的定位目录。

  Schedluler服务日志在注册表中
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/SchedulingAgent

  WWW日志:

  WWW服务同FTP服务一样,产生的日志也是在%systemroot%/System32/LogFiles/W3SVC1目录下,默认是每天一个日志文件,下面是一个典型的WWW日志文件

  十六:杀毒

  这里介绍MCAFEE 8i 中文企业版

  因为这个版本对于国内的许多恶意代码和木马都能够及时的更新.

  比如已经能够检测到海阳顶端2006

  而且能够杀除IMAIL等SMTP软件使用的队列中MIME编码的病毒文件

  而很多人喜欢安装诺顿企业版.而诺顿企业版,对于WEBSHELL.基本都是没有反应的.

  而且无法对于MIME编码的文件进行杀毒.

  在MCAFEE中.

  我们还能够加入规则.阻止在windows目录建立和修改EXE.DLL文件等

  我们在软件中加入对WEB目录的杀毒计划.

  每天执行一次

  并且打开实时监控.

  十七:关闭无用的服务

  我们一般关闭如下服务

  Computer Browser

  Help and Support

  Messenger

  Print Spooler

  Remote Registry

  TCP/IP NetBIOS Helper

  如果服务器不用作域控,我们也可以禁用

  Workstation

  十八:常见的注册表项的设置

  1.隐藏重要文件/目录可以修改注册表实现完全隐藏:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0

  2.启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器;

  3.防止SYN洪水攻击:

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  新建DWORD值,名为SynAttackProtect,值为2

  EnablePMTUDiscovery REG_DWORD 0

  NoNameReleaseOnDemand REG_DWORD 1

  EnableDeadGWDetect REG_DWORD 0

  KeepAliveTime REG_DWORD 300,000

  PerformRouterDiscovery REG_DWORD 0

  EnableICMPRedirects REG_DWORD 0

  4. 禁止响应ICMP路由通告报文:

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface

  新建DWORD值,名为PerformRouterDiscovery 值为0

  5. 防止ICMP重定向报文的攻击:

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  将EnableICMPRedirects 值设为0

  6. 不支持IGMP协议:

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  新建DWORD值,名为IGMPLevel 值为0

  7.修改终端服务端口:

  运行regedit,找到[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ Wds \ rdpwd \ Tds \ tcp],看到右边的PortNumber了吗?在十进制状态下改成你想要的端口号吧,比如7126之类的,只要不与其它冲突即可。

  第二处HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp,方法同上,记得改的端口号和上面改的一样就行了。

  8.禁止IPC空连接:

  cracker可以利用net use命令建立空连接,进而入侵,还有net view,nbtstat这些都是基于空连接的,禁止空连接就好了。打开注册表,找到Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 把这个值改成”1”即可。

  9.更改TTL值:

  cracker可以根据ping回的TTL值来大致判断你的操作系统,如:

  TTL=107(WINNT);

  TTL=108(win2000);

  TTL=127或128(win9x);

  TTL=240或241(linux);

  TTL=252(solaris);

  TTL=240(Irix);

  实际上你可以自己更改的:

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258,起码让那些小菜鸟晕上半天,就此放弃入侵你也不一定哦。

  10. 删除默认共享:

  有人问过我一开机就共享所有盘,改回来以后,重启又变成了共享是怎么回事,这是2K为管理而设置的默认共享,必须通过修改注册表的方式取消它:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters:AutoShareServer类型是REG_DWORD把值改为0即可

  11. 禁止建立空连接:

  默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,猜测密码。我们可以通过修改注册表来禁止建立空连接:

  Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 的值改成”1”即可。

  12.禁用TCP/IP上的NetBIOS

  网上邻居-属性-本地连接-属性-Internet协议(TCP/IP)属性-高级-WINS面板-NetBIOS设置-禁用TCP/IP上的NetBIOS。这样cracker就无法用nbtstat命令来读取你的NetBIOS信息和网卡MAC地址了。

  13.改远程连接端口方法:

  Windows Registry Editor Version 5.00

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]

  "PortNumber"=dword:00002683

  保存为.REG文件双击即可!更改为9859,当然大家也可以换别的端口, 直接打开以上注册表的地址,把值改为十进制的输入你想要的端口即可!重启生效!

  14.堵住页面交换隐患

  Windows 2003操作系统即使在正常工作的情况下,也有可能会向黑客或者其他访问者泄漏重要的机密信息,特别是一些重要的帐号信息。也许我们永远不会想到要查看一下,那些可能会泄漏隐私信息的文件,不过黑客对它们倒是很关心的哟!Windows 2003操作系统中的页面交换文件中,其实就隐藏了不少重要隐私信息,这些信息都是在动态中产生的,要是不及时将它们清除,就很有可能成为黑客的入侵突破口;为此,我们必须按照下面的方法,来让Windows 2003操作系统在关闭系统时,自动将系统工作时产生的页面文件全部删除掉:

  1、在Windows 2003的“开始”菜单中,执行“运行”命令,打开运行对话框,并在其中输入“Regedit”命令,来打开注册表窗口;

  2、在该窗口的左边区域中,用鼠标依次单击HKEY_local_machine\system\currentcontrolset\control\sessionmanager\memory management键值,找到右边区域中的ClearPageFileAtShutdown键值,并用鼠标双击之,在随后打开的数值设置窗口中,将该DWORD值重新修改为“1”;

  3、完成设置后,退出注册表编辑窗口,并重新启动计算机系统,就能让上面的设置生效了。

  15.VNC密码存放在HKCU\Software\ORL\WinVNC3\Password  如果装了VNC的话设置权限 防止查看密码

  16.设置权限 防止替换屏保的后门

  [HKEY_CURRENT_USER\Control Panel\Desktop]

  查看"SCRNSAVE.EXE"的值就是需要替换的scr

  17.Radmin 的密码在这里 要设置权限

  HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Parameters

  十九:防止arp欺骗  arp欺骗是基于交换机网络的常见的渗透方法

  用arp -s来绑定网关,安装arp防火墙

  一个防arp的批处理:没有防火墙时临时使用

  @echo OFF

  ping XXX.XXX.XXX.XXX

  if %~n0==arp exit

  if %~n0==Arp exit

  if %~n0==ARP exit

  echo 正在获取本机信息.....

  :IP

  FOR /f "skip=13 tokens=15 usebackq " %%i in (`ipconfig /all`) do Set IP=

  %%i && GOTO MAC

  :MAC

  echo IP:%IP%

  FOR /f "skip=13 tokens=12 usebackq " %%i in (`ipconfig /all`) do Set

  MAC=%%i && GOTO GateIP

  :GateIP

  echo MAC:%MAC%

  arp -s %IP% %MAC%

  echo 正在获取网关信息.....

  FOR /f "skip=17 tokens=13 usebackq " %%i in (`ipconfig /all`) do Set

  GateIP=%%i && GOTO GateMac

  :GateMac

  echo IP:%GateIP%

  FOR /f "skip=3 tokens=2 usebackq " %%i in (`arp -a %GateIP%`) do Set

  GateMAC=%%i && GOTO Start

  :Start

  echo MAC:%GateMAC%

  arp -d

  arp -s %GateIP% %GateMAC%

  echo 操作完成!!!

  exit

  二十:通过BLACKICE等防火墙设置 禁止直接运行新的EXE文件,防止鸽子等反弹木马。

  二十一:防止被动提权

  常见的:C:\Documents and Settings\All Users\「开始」菜单\程序\启动

  和 autorun.inf提权

  对于autorun.inf 禁止autorun.inf 自动运行 打开磁盘时不要双击打开 用鼠标右键打开就可以了

  对于C:\Documents and Settings\All Users\「开始」菜单\程序\启动  设置权限

  有时候用注册表导入到启动项 不过需要cmd权限找一个自动启动的服务。。把启动的文件替换成反弹木马 如果不行 可以先改名后替换找到策略组的启动
脚本 填加反弹木马的路径用户登陆时的启动脚本  将文件scripts.ini保存到“C:\\winnt\\system32\\GroupPolicy\\Machine\\Scripts”

  ini组成方式如下:

  [Startup]

  0CmdLine=C:\WINDOWS\system32\net.exe

  0Parameters=user admin /add

  1CmdLine=C:\WINDOWS\system32\net.exe

  1Parameters=localgroup administrators admin /add

  [Shutdown]

  0CmdLine=1.bat

  0Parameters=

  [startup] \\代表是启动

  0CmdLine=C:\WINDOWS\system32\net.exe \\脚本名

  0Parameters=user admin /add \\脚本参数

  1CmdLine=C:\WINDOWS\system32\net.exe \\第二条脚本名

  1Parameters=localgroup administrators admin /add \\第二条脚本参数

  [Shutdown] \\关闭

  0CmdLine=1.bat \\脚本名 1.bat 目录队应于

  C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup

  0Parameters= \\参数

  也就是说 scripts.ini 控制着整个启动,就如同以前 win.ini 一样。

  C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\Startup\ 启动文件的目录,那样脚本名路径就可以不用加详细目录名了。

  C:\WINDOWS\system32\GroupPolicy\Machine\Scripts\shutdown\ 关闭文件目录,同上。

  思路就这样,copy 后门到非常隐藏的目录,再加个启动脚本参数,实现木马启动。

  解决此缺陷的方法:组策略->计算机配置->管理模板->系统->脚本,相应的禁止就行了。

  或者来招毒的,彻底禁止掉这个:把scripts.ini 对应用户权限全部删除,system administrators 全部取消,就没人能访问了。

  以上在 Windows XP SP2 均已测试成功。

  地址栏进C:\WINNT\system32\GroupPolicy\User\Scripts\logon(具体的路径按照实际情况自己改动GroupPolicy文件夹默认是隐藏的,没有\Scripts\logon的话 就自己新建一个)

  C:\windows\system32\GroupPolicy\Machine\Scripts\Startup

  在这里,我们可以放置任何可以执行的文件将改写的Folder.htt与desktop.ini,还有你的木马或者是VBS或者是什么,放到对方管理员最可能浏览的目录下 (相当于挂马)

  [desktop.ini与Folder.htt]

  引用:首先,我们现在本地建立一个文件夹,名字不重要,进入它,在空白处点右键,选择“自定义

  文件夹”(xp好像是不行的)一直下点,默认即可。完成后,你就会看到在此目录下多了两个名为Folder

  setting的文件架与desktop.ini的文件,(如果你看不到,先取消“隐藏受保护的操作系统文件”)然后

  我们在Folder setting目录下找到Folder.htt文件,记事本打开,在任意地方加入以下代码: <OBJECT

  ID=”RUNIT” WIDTH=0 HEIGHT=0 TYPE=”application/x-oleobject” CODEBASE=”你的后门文件名”>

  </OBJECT> 然后你将你的后门文件放在Folder setting目录下,把此目录与desktop.ini一起上传到对方

  任意一个目录下,就可以了,只要等管理员浏览了此目录,它就执行了我们的后门

  上面两个方法不太常见 但是也要注意下 设置好目录权限 不让起写入

  并且去掉隐藏文件的设置 让其能浏览所有的文件

  二十二:额外措施:

  我们可以通过增加一些设备和措施来进一步加强系统安全性.

  1.代理型防火墙.如ISA2004

  代理型防火墙可以对进出的包进行内容过滤.

  设置对HTTP REQUEST内的request string或者form内容进行过滤

  将SELECT.DROP.DELETE.INSERT等都过滤掉.

  因为这些关键词在客户提交的表单或者内容中是不可能出现的.

  过滤了以后可以说从根本杜绝了SQL 注入

  2.用SNORT建立IDS

  用另一台服务器建立个SNORT.

  对于所有进出服务器的包都进行分析和记录

  特别是FTP上传的指令以及HTTP对ASP文件的请求

  可以特别关注一下.
1条评分
寒江雪 电魂 +5 优秀文章 2009-06-24
离线寒江雪
发帖
*
今日发帖
最后登录
1970-01-01
只看该作者 沙发  发表于: 2009-06-24 13:36:55
专业性很强