以文本方式查看主题

-  康柏仕电脑学院  (http://combss.com/bbs/index.asp)
--  Server服务器配置教程  (http://combss.com/bbs/list.asp?boardid=68)
----  Win2003 防木马、权限设置、IIS服务器安全  (http://combss.com/bbs/dispbbs.asp?boardid=68&id=3381)

--  作者:superpch
--  发布时间:2012/7/6 23:12:29
--  Win2003 防木马、权限设置、IIS服务器安全

发现木马的方法:

 


  1.   检查系统进程
  大部分木马运行后会显示在进程管理器中,所以对系统进程列表进行分析和过滤,可以发现可疑程序。特别是利用与正常进程的CPU资源占用率和句柄数的比较,发现异常现象。
  2.   检查注册表、ini文件和服务
  木马为了能够在开机后自动运行,往往在注册表如下选项中添加注册表项:
  HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run
  HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce
  HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnceEx
  HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunServices
  HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunServicesOnce
  木马亦可在Win.ini和System.ini的“run=”、“load=”、“shell=”后面加载,如果在这些选项后面加载程序是你不认识的,就有可能是木马。木马最惯用的伎俩就是把“Explorer”变成自己的程序名,只需稍稍改“Explorer”的字母“l”改为数字“1”,或者把其中的“o”改为数字“0”,这些改变如果不仔细观察是很难被发现。
  在Windwos   NT/2000中,木马会将自己作为服务添加到系统中,甚至随机替换系统没有启动的服务程序来实现自动加载,检测时要对操作系统的常规服务有所了解。
  3.   检查开放端口
  远程控制型木马以及输出Shell型的木马,大都会在系统中监听某个端口,接收从控制端发来的命令,并执行。通过检查系统上开启的一些“奇怪”的端口,从而发现木马的踪迹。在命令行中输入Netstat   na,可以清楚地看到系统打开的端口和连接。亦可从http://www.foundstone.com   下载Fport软件,运行该软件后,可以知道打开端口的进程名,进程号和程序的路径,这样为查找“木马”提供了方便之门。
  4.   监视网络通讯
  对于一些利用ICMP数据通讯的木马,被控端没有打开任何监听端口,无需反向连接,不会建立连接,采用第三种方法检查开放端口的方法就行不通。可以关闭所有网络行为的进程,然后打开Sniffer软件进行监听,如此时仍有大量的数据,则基本可以确定后台正运行着木马。
  堵
  1.   堵住控制通路
  如果你的网络连接处于禁用状态后或取消拨号连接,反复启动、打开窗口等不正常现象消失,那么可以判断你的电脑中了木马。通过禁用网络连接或拔掉网线,就可以完全避免远端计算机通过网络对你的控制。当然,亦可以通过防火墙关闭或过滤UDP、TCP、ICMP端口。
  2.   杀掉可疑进程
  如通过Pslist查看可疑进程,用Pskill杀掉可疑进程后,如果计算机正常,说明这个可疑进程通过网络被远端控制,从而使计算机不正常。
  杀
  1.   手工删除
  对于一些可疑文件,不能立即删除,有可能由于误删系统文件而使计算机不能正常工作。首先备份可疑文件和注册表,接着用Ultraedit32编辑器查看文件首部信息,通过可疑文件里面的明文字符对木马有一个大致了解。当然高手们还可以通过W32Dasm等专用反编译软件对可疑文件进行静态分析,查看文件的导入函数列表和数据段部分,初步了解程序的主要功能。最后,删除木马文件及注册表中的键值。
  2.   软件杀毒
  由于木马编写技术的不断进步,很多木马有了自我保护机制。普通用户最好通过专业的杀毒软件如瑞星、金山毒霸等软件进行杀毒,对于杀毒软件,一定要及时更新,并通过病毒公告及时了解新木马的预防和查杀绝技,或者通过下载专用的杀毒软件进行杀毒(如近期的冲击波病毒各大公司都开发了查杀工具)。  
        木马克星和瑞星都不错!!!

 

一、系统的安装  

1、按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面。
2、IIS6.0的安装
  开始菜单—>控制面板—>添加或删除程序—>添加/删除Windows组件
  应用程序 ———ASP.NET(可选)
       |——启用网络 COM+ 访问(必选)
       |——Internet 信息服务(IIS)———Internet 信息服务管理器(必选) 
                   |——公用文件(必选)
                   |——万维网服务———Active Server pages(必选)
                              |——Internet 数据连接器(可选)
                              |——WebDAV 发布(可选)

                              |——万维网服务(必选)
                              |——在服务器端的包含文件(可选)
  然后点击确定—>下一步安装。(具体见本文附件1

3、系统补丁的更新
  点击开始菜单—>所有程序—>Windows Update
  按照提示进行补丁的安装。

4、备份系统
  用GHOST备份系统。

5、安装常用的软件
  例如:杀毒软件、解压缩软件等;安装完毕后,配置杀毒软件,扫描系统漏洞,安装之后用GHOST再次备份系统。

6、先关闭不需要的端口 开启防火墙 导入IPSEC策略
网络连接里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了Qos数据包计划程序。在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOSS"。在高级选项里,使用"Internet连接防火墙",这是windows 2003 自带的防火墙,在2000系统里没有的功能,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能。

修改3389远程连接端口
修改注册表.
开始--运行
--regedit
依次展开
HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/
TERMINAL SERVER/WDS/RDPWD/TDS/TCP
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制( 10000 )

HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/
WINSTATIONS/RDP-TCP/
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(
10000 )
注意:别忘了在WINDOWS2003自带的防火墙给+10000端口

修改完毕.重新启动服务器.设置生效.

二、用户安全设置
1
、禁用Guest账号

在计算机管理的用户里面把Guest账号禁用。为了保险起见,最好给Guest加一个复杂的密码。你可以打开记事本,在里面输入一串包含特殊字符、数字、字母的长字符串,然后把它作为Guest用户的密码拷进去。

2
、限制不必要的用户

去掉所有的Duplicate User用户、测试用户、共享用户等等。用户组策略设置相应权限,并且经常检查系统的用户,删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。

3
、把系统Administrator账号改名

大家都知道,Windows 2003 Administrator用户是不能被停用的,这意味着别人可以一遍又一遍地尝试这个用户的密码。尽量把它伪装成普通用户,比如改成Guesycludx

4
、创建一个陷阱用户

什么是陷阱用户?即创建一个名为“Administrator”的本地用户,把它的权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。这样可以让那些 Hacker们忙上一段时间,借此发现它们的入侵企图。

5
、把共享文件的权限从Everyone组改成授权用户

任何时候都不要把共享文件的用户设置成“Everyone”组,包括打印共享,默认的属性就是“Everyone”组的,一定不要忘了改。

6
、开启用户策略

使用用户策略,分别设置复位用户锁定计数器时间为20分钟,用户锁定时间为20分钟,用户锁定阈值为3次。 (该项为可选)

7
、不让系统显示上次登录的用户名
默认情况下,登录对话框中会显示上次登录的用户名。这使得别人可以很容易地得到系统的一些用户名,进而做密码猜测。修改注册表可以不让对话框里显示上次登录的用户名。方法为:打开注册表编辑器并找到注册表“HKLM\\Software\\Microsoft\\Windows T\\CurrentVersion\\Winlogon\\Dont-DisplayLastUserName”,把REG_SZ的键值改成1

密码安全设置

1
、使用安全密码

一些公司的管理员创建账号的时候往往用公司名、计算机名做用户名,然后又把这些用户的密码设置得太简单,比如“welcome”等等。因此,要注意密码的复杂性,还要记住经常改密码。

2
、设置屏幕保护密码

这是一个很简单也很有必要的操作。设置屏幕保护密码也是防止内部人员破坏服务器的一个屏障。

3
、开启密码策略

注意应用密码策略,如启用密码复杂性要求,设置密码长度最小值为6位 ,设置强制密码历史为5次,时间为42天。

4
、考虑使用智能卡来代替密码

对于密码,总是使安全管理员进退两难,密码设置简单容易受到黑客的攻击,密码设置复杂又容易忘记。如果条件允许,用智能卡来代替复杂的密码是一个很好的解决方法。

三、系统权限的设置
1、磁盘权限
  系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限
  系统盘\\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限
  系统盘\\Documents and Settings\\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限
  系统盘\\Windows\\System32\\cacls.execmd.exenet.exenet1.exeftp.exetftp.exetelnet.exe        netstat.exeregedit.exeat.exeattrib.exeformat.comdel文件只给 Administrators 组和SYSTEM 的完全   控制权限 
另将\\System32\\cmd.exeformat.comftp.exe转移到其他目录或更名

  Documents and Settings下所有些目录都设置只给adinistrators权限。并且要一个一个目录查看,包括下面的所有子目录。

删除c:\\inetpub目录

2、本地安全策略设置
  开始菜单—>管理工具—>本地安全策略
  A、本地策略——>审核策略
  审核策略更改   成功 失败  

  审核登录事件   成功 失败
  审核对象访问      失败
  审核过程跟踪   无审核
  审核目录服务访问    失败
  审核特权使用      失败
  审核系统事件   成功 失败
  审核账户登录事件 成功 失败
  审核账户管理   成功 失败

  B、本地策略——>用户权限分配
  关闭系统:只有Administrators组、其它全部删除。
  通过终端服务允许登陆:只加入Administrators,Remote Desktop Users组,其他全部删除

  C、本地策略——>安全选项
  交互式登陆:不显示上次的用户名       启用
  网络访问:不允许SAM帐户和共享的匿名枚举  启用
  网络访问:不允许为网络身份验证储存凭证   启用
  网络访问:可匿名访问的共享         全部删除
  网络访问:可匿名访问的命          全部删除
  网络访问:可远程访问的注册表路径      全部删除
  网络访问:可远程访问的注册表路径和子路径  全部删除

  帐户:重命名来宾帐户            重命名一个帐户

  帐户:重命名系统管理员帐户         重命名一个帐户

3、禁用不必要的服务   开始-运行-services.msc
       TCP/IPNetBIOS Helper
提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持而使用户能够共享

      
文件、打印和登录到网络
       Server
支持此计算机通过网络的文件、打印、和命名管道共享
  Computer Browser 维护网络上计算机的最新列表以及提供这个列表
       Task scheduler
允许程序在指定时间运行

       Messenger
传输客户端和服务器之间的 NET SEND 和 警报器服务消息

  Distributed File System: 局域网管理共享文件,不需要可禁用

  Distributed linktracking client:用于局域网更新连接信息,不需要可禁用

  Error reporting service:禁止发送错误报告

  Microsoft Serch:提供快速的单词搜索,不需要可禁用

  NTLMSecuritysupportprovidetelnet服务和Microsoft Serch用的,不需要可禁用

  PrintSpooler:如果没有打印机可禁用

  Remote Registry:禁止远程修改注册表

  Remote Desktop Help Session Manager:禁止远程协助

       Workstation  
关闭的话远程NET命令列不出用户组

  以上是在Windows Server 2003 系统上面默认启动的服务中禁用的,默认禁用的服务如没特别需要的话不要启动。
4、修改注册表
修改注册表,让系统更强壮
1
、隐藏重要文件/目录可以修改注册表实现完全隐藏
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\ Current-Version\\Explorer\\Advanced\\Folder\\Hi-dden\\SHOWALL”
,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0

2、防止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

3. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\interface
新建DWORD值,名为PerformRouterDiscovery 值为0

4. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters
EnableICMPRedirects 值设为0

5. 不支持IGMP协议
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters
新建DWORD值,名为IGMPLevel 值为
0
6
、禁止IPC空连接:

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

7、更改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\\ParametersDefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258,起码让那些小菜鸟晕上半天,就此放弃入侵你也不一定哦

8. 删除默认共享
    
有人问过我一开机就共享所有盘,改回来以后,重启又变成了共享是怎么回事,这是2K为管理而设置的默认共享,HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\LanmanServer\\ParametersAutoShareServer类型是REG_DWORD把值改为0即可

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

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

10、建立一个记事本,填上以下代码。保存为*.bat并加到启动项目中
net share c$ /del
net share d$ /del
net share e$ /del
net share f$ /del
net share ipc$ /del
net share admin$ /del

5IIS站点设置:
1
、将IIS目录&数据与系统磁盘分开,保存在专用磁盘空间内。
2
、启用父级路径
3
、在IIS管理器中删除必须之外的任何没有用到的映射(保留asp等必要映射即可)

4
、在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件
5
Web站点权限设定(建议)
                 允许
                 不允许
脚本源访问         不允许
目录浏览         建议关闭
日志访问         建议关闭
索引资源         建议关闭
执行             推荐选择仅限于脚本
6
、建议使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和systemFull Control)。

7
、程序安全
:
1)
涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限
;
2)
需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。

3)
防止ASP主页.inc文件泄露问题;
4)
防止UE等编辑器生成some.asp.bak文件泄露问题。

6IIS权限设置的思路
?
要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。
?
IIS的【站点属性或者虚拟目录属性目录安全性匿名访问和验证控制编辑匿名访问编辑】填写刚刚创建的那个用户名。

?
设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。

7、卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,( 以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 C:\\WINDOWS\\ )
regsvr32/u C:\\WINDOWS\\System32\\wshom.ocx
del C:\\WINDOWS\\System32\\wshom.ocx
regsvr32/u C:\\WINDOWS\\system32\\shell32.dll
del C:\\WINNT\\WINDOWS\\shell32.dll

然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。