| Windows Internet服务器安全配置原理篇 |
| [ 作者:佚名 转贴自:网络转载 阅读次数:72 更新时间:2007-8-17 11:00:00 录入:刘光勇 ] 热 |
|
|
|
原理篇 tCvh($B gS@QF[^K Umi^]Ye 我们将从入侵者入侵的各个环节来作出对应措施 O z,~'&+/ 一步步的加固windows系统. K!J(rK9R= 加固windows系统.一共归于几个方面 r _~Br4 1.端口限制 @ZiX ke8g 2.设置ACL权限 e&[4'[`] 3.关闭服务或组件 @46wp# C 4.包过滤 k;S .2*Q 5.审计 *A+_z#*; IM[O G 5`0n~FEA 我们现在开始从入侵者的第一步开始.对应的开始加固已有的windows系统. etWznzrbG \8~|Wb/= G.{bDS 1.扫描 r@3]%y\ } 这是入侵者在刚开始要做的第一步.比如搜索有漏洞的服务. p1%m 对应措施:端口限制 "n|E$2*^L@ 以下所有规则.都需要选择镜像,否则会导致无法连接 )VROW#DHc 我们需要作的就是打开服务所需要的端口.而将其他的端口一律屏蔽 }Xij)-zP 4R}9E{, ,:>]& 2.下载信息 RJ}F5c]P 这里主要是通过URL SCAN.来过滤一些非法请求 n7FHk#pC 对应措施:过滤相应包 %+=>/6*x| 我们通过安全URL SCAN并且设置urlscan.ini中的DenyExtensions字段 _sI=-yVIT 来阻止特定结尾的文件的执行 I"uVB I~ 0Se(~kc<u gF "~h6o sBs_y U 3.上传文件 j!@t N 入侵者通过这步上传WEBSHELL,提权软件,运行cmd指令等等. gLM17_V(A 对应措施:取消相应服务和功能,设置ACL权限 #Y+S}%E 如果有条件可以不使用FSO的. ^7K&)U^`o 通过 regsvr32 /u c:\windows\system32\scrrun.dll来注销掉相关的DLL. _[oPyL 如果需要使用. uq_MKu%'zF 那就为每个站点建立一个user用户 />u"+Bwl 对每个站点相应的目录.只给这个用户读,写,执行权限,给administrators全部权限 /h{7'Re8 安装杀毒软件.实时杀除上传上来的恶意代码. f<HWv$m 个人推荐MCAFEE或者卡巴斯基 N&Zx\^)4 如果使用MCAFEE.对WINDOWS目录所有添加与修改文件的行为进行阻止. }E5lm5lL G:y0X)] t1:9KKa 4.WebShell >\lo~ 入侵者上传文件后.需要利用WebShell来执行可执行程序.或者利用WebShell进行更加方便的文件操作. 4,:xQ d"O 对应措施:取消相应服务和功能 Atq#q6S4 一般WebShell用到以下组件 e{4@|)1xT WScript.Network yU l ; WScript.Network.1 .H]H uR WScript.Shell SxhF4hat WScript.Shell.1 DVs moby_ Shell.Application kD|8*M2F@ Shell.Application.1 #IX`'/4wC 我们在注册表中将以上键值改名或删除 ofC6(K 同时需要注意按照这些键值下的CLSID键的内容 e.DzH'$p 从/HKEY_CLASSES_ROOT/CLSID下面对应的键值删除 )[xJ^[ +{JS~o:QLE ~iAS~r |Zs 5.执行SHELL (SMP"M) 入侵者获得shell来执行更多指令 RX0*<R 对应措施:设置ACL权限 }4pQ *n7WH windows的命令行控制台位于\WINDOWS\SYSTEM32\CMD.EXE KghyL ` 我们将此文件的ACL修改为 0F$Hf TkY 某个特定管理员帐户(比如administrator)拥有全部权限. E* -}fG 其他用户.包括system用户,administrators组等等.一律无权限访问此文件. 1~a$aS 4<U^V#W i9%|{5@ y 6.利用已有用户或添加用户 V]kh`>s> 入侵者通过利用修改已有用户或者添加windows正式用户.向获取管理员权限迈进 i1\7Onv 对应措施:设置ACL权限.修改用户 W] lg?@ 将除管理员外所有用户的终端访问权限去掉. 1, ZUM}"g! 限制CMD.EXE的访问权限. 'QaW!P|[ 限制SQL SERVER内的XP_CMDSHELL us43Ex a]#TTp/b d @pj.5Wil 7.登陆图形终端 5Pkjk} 入侵者登陆TERMINAL SERVER或者RADMIN等等图形终端, q-rlj !S& 获取许多图形程序的运行权限.由于WINDOWS系统下绝大部分应用程序都是GUI的. ):hVB,NN 所以这步是每个入侵WINDOWS的入侵者都希望获得的 a`ydv%/3 对应措施:端口限制 Nda-|HpMN 入侵者可能利用3389或者其他的木马之类的获取对于图形界面的访问. ?En!-"N 我们在第一步的端口限制中.对所有从内到外的访问一律屏蔽也就是为了防止反弹木马. F3?H Tk%]U 所以在端口限制中.由本地访问外部网络的端口越少越好. P(/j s<\ 如果不是作为MAIL SERVER.可以不用加任何由内向外的端口. ?uDnIn(/_ 阻断所有的反弹木马. Amv;K:ue RPSc; 1q9ar1i% y 8.擦除脚印 7TeB#`FeX2 入侵者在获得了一台机器的完全管理员权限后 9lTh E}? 就是擦除脚印来隐藏自身. i]g4T=2 对应措施:审计 ! [W} 首先我们要确定在windows日志中打开足够的审计项目. t_?lN8<]2 如果审计项目不足.入侵者甚至都无需去删除windows事件. K>N%l6W^ 其次我们可以用自己的cmd.exe以及net.exe来替换系统自带的. {s si~ 将运行的指令保存下来.了解入侵者的行动. j\(W|\$gH# 对于windows日志 n'w] 4] 我们可以通过将日志发送到远程日志服务器的方式来保证记录的完整性. r(^~IHT2F evtsys工具(https://engineering.purdue.edu/ECN/Resources/Documents) ZZ64@= w 提供将windows日志转换成syslog格式并且发送到远程服务器上的功能. 2%t#dBW 使用此用具.并且在远程服务器上开放syslogd,如果远程服务器是windows系统. `/*PJV 推荐使用kiwi syslog deamon. G/vs)3'M S&wZ0 )F Bfc@M Z 我们要达到的目的就是 jMnk)C 不让入侵者扫描到主机弱点 _$b5tU"e 即使扫描到了也不能上传文件 -ed&`A 即使上传文件了不能操作其他目录的文件 Y-N>wGNL 即使操作了其他目录的文件也不能执行shell ) |hK~ 即使执行了shell也不能添加用户 zE,J-?TO 即使添加用户了也不能登陆图形终端 Tn?r*gk# 即使登陆了图形终端.拥有系统控制权.他的所作所为还是会被记录下来. [-mV9 Ti T;lm@ yIq=$r 额外措施: sQp@B wZ2 我们可以通过增加一些设备和措施来进一步加强系统安全性. G#Ce.3Q 1.代理型防火墙.如ISA2004 Zr~F%et.= 代理型防火墙可以对进出的包进行内容过滤. !"&We(/q 设置对HTTP REQUEST内的request string或者form内容进行过滤 Fdn&<bFL@R 将SELECT.DROP.DELETE.INSERT等都过滤掉. -s}6 XV9@" 因为这些关键词在客户提交的表单或者内容中是不可能出现的. # S=\B E 过滤了以后可以说从根本杜绝了SQL 注入 !ug 5+pXF 2.用SNORT建立IDS +R}5uDOXg| 用另一台服务器建立个SNORT. :O JG>Jd( 对于所有进出服务器的包都进行分析和记录 uC_s PR^ 特别是FTP上传的指令以及HTTP对ASP文件的请求 }W28 windows的命令行控制台位于\WINDOWS\SYSTEM32\CMD.EXE d Bc|`oa# 我们将此文件的ACL修改为 w jwcj 某个特定管理员帐户(比如administrator)拥有全部权限. nmi+ K 其他用户.包括system用户,administrators组等等.一律无权限访问此文件. qK91E@@OZ ~ Tti c M>~mn_ 6.利用已有用户或添加用户 %gR|vWM 入侵者通过利用修改已有用户或者添加windows正式用户.向获取管理员权限迈进 >LkQ tf;P 对应措施:设置ACL权限.修改用户 rI}q [H 将除管理员外所有用户的终端访问权限去掉. w&i =.BE 限制CMD.EXE的访问权限. ~&m W~jy 限制SQL SERVER内的XP_CMDSHELL c[m\ "^]+ RKvZ< Ax6x7Gp$ 7.登陆图形终端 ~32#7K1B 入侵者登陆TERMINAL SERVER或者RADMIN等等图形终端, S0 G w= 获取许多图形程序的运行权限.由于WINDOWS系统下绝大部分应用程序都是GUI的. pn5/W wP7I 所以这步是每个入侵WINDOWS的入侵者都希望获得的 xqk YG I" 对应措施:端口限制 - QpXwYQ 入侵者可能利用3389或者其他的木马之类的获取对于图形界面的访问. Mr"`pK; 我们在第一步的端口限制中.对所有从内到外的访问一律屏蔽也就是为了防止反弹木马. /=JY(HPH 所以在端口限制中.由本地访问外部网络的端口越少越好. @[S+, @&J 如果不是作为MAIL SERVER.可以不用加任何由内向外的端口. FqlA9 }| 阻断所有的反弹木马. eV9d&'3%. @ 9AR<i YW;Hi~]P 8.擦除脚印 `r|~A6% 入侵者在获得了一台机器的完全管理员权限后 $L?[z 就是擦除脚印来隐藏自身. DxLp%JK 对应措施:审计 ,irIt 首先我们要确定在windows日志中打开足够的审计项目. @xS* gT= 如果审计项目不足.入侵者甚至都无需去删除windows事件. BtJzg@m 其次我们可以用自己的cmd.exe以及net.exe来替换系统自带的. *@[k?$mDD 将运行的指令保存下来.了解入侵者的行动. ZxSw)4(_ 对于windows日志 "pw /g 我们可以通过将日志发送到远程日志服务器的方式来保证记录的完整性. h MI9>< evtsys工具(https://engineering.purdue.edu/ECN/Resources/Documents) Ut`XqbyM] 提供将windows日志转换成syslog格式并且发送到远程服务器上的功能. J6 6t]oT 使用此用具.并且在远程服务器上开放syslogd,如果远程服务器是windows系统. ov^Tl/A*1 推荐使用kiwi syslog deamon. hK;-AGE5M - ![cz7d [6{dZI.Uvx 我们要达到的目的就是 <o:1}'0 不让入侵者扫描到主机弱点 ^{p(wHCOk 即使扫描到了也不能上传文件 r3}3 ),6 即使上传文件了不能操作其他目录的文件 k?@Tg`w 即使操作了其他目录的文件也不能执行shell *#2 c^ 即使执行了shell也不能添加用户 ENVK3ph 即使添加用户了也不能登陆图形终端 uf)kd2 即使登陆了图形终端.拥有系统控制权.他的所作所为还是会被记录下来. mQ84pyFa k8hyI@t#~1 %kl6`0;V4L 额外措施: #'@1]}`: 我们可以通过增加一些设备和措施来进一步加强系统安全性. 70Hi7 -m- 1.代理型防火墙.如ISA2004 [a s; Za 代理型防火墙可以对进出的包进行内容过滤. dqvbV>uj 设置对HTTP REQUEST内的request string或者form内容进行过滤 g BM/9, 将SELECT.DROP.DELETE.INSERT等都过滤掉. p<96@L 因为这些关键词在客户提交的表单或者内容中是不可能出现的. % br<@PO 过滤了以后可以说从根本杜绝了SQL 注入 $U(uCP1 2.用SNORT建立IDS i(M"/pL^t 用另一台服务器建立个SNORT. _0h9AQ# 对于所有进出服务器的包都进行分析和记录 EAm@kh.O 特别是FTP上传的指令以及HTTP对ASP文件的请求 oLn]VQ3 可以特别关注一下. w(KO= QAJ Xu[T& } d_ TF}*] 本文提到的部分软件在提供下载的RAR中包含 z]V ~.8e 包括COM命令行执行记录 *~{uM!P URLSCAN 2.5以及配置好的配置文件 -ZpKi`xq IPSEC导出的端口规则 yCa:0G evtsys 2$4T#KhC 一些注册表加固的注册表项. 6 3W,<a WZ }N9|B" @],^X'. 实践篇 =VVZdvB/ hxZ s7V2I 4r?UUAD 下面我用的例子.将是一台标准的虚拟主机. Qkh6p9:b 系统:windows2003 Kyni1 服务:[IIS] [SERV-U] [IMAIL] [SQL SERVER 2000] [PHP] [MYSQL] >. UMi}6 描述:为了演示,绑定了最多的服务.大家可以根据实际情况做筛减 P^6Qw|8 wA7-,{ u xZ62<F^X 1.WINDOWS本地安全策略 端口限制 3MEbT A.对于我们的例子来说.需要开通以下端口 v^J&"8C 外->本地 80 `ybV; r_a 外->本地 20 Hd,Ly,Ye 外->本地 21 m|4=GAB 外->本地 PASV所用到的一些端口 vwX<+t 外->本地 25 3 ` !0 外->本地 110 7 M +o< 外->本地 3389 mc\''{;x* 然后按照具体情况.打开SQL SERVER和MYSQL的端口 HR#5=iUy6 外->本地 1433 5y{ `Lq A 外->本地 3306 >i &=&q B.接着是开放从内部往外需要开放的端口 ol^;wC 按照实际情况,如果无需邮件服务,则不要打开以下两条规则 _4r]IjK.z 本地->外 53 TCP,UDP 6W"=w1yP 本地->外 25 UBgghD 按照具体情况.如果无需在服务器上访问网页.尽量不要开以下端口 i>\)] Hiz 本地->外 80 j -V, Jp C.除了明确允许的一律阻止.这个是安全规则的关键. LR&cA>zV 外->本地 所有协议 阻止 MsLP|]O| W(-iQ lOC^>bDfr 2.用户帐号 geg.tRCU a.将administrator改名,例子中改为root "bvolg' b.取消所有除管理员root外所有用户属性中的 JgVK2wb 远程控制->启用远程控制 以及 m Q6n)cx. 终端服务配置文件->允许登陆到终端服务器 ~+_*{Eq0 c.将guest改名为administrator并且修改密码 TB8?1%{B d.除了管理员root,IUSER以及IWAM以及ASPNET用户外.禁用其他一切用户.包括SQL DEBUG以及TERMINAL USER等等 b_?Td`j q_Q44 Lk7 /oa 3.目录权限 mFAy%=< 将所有盘符的权限,全部改为只有 2.w%=oR administrators组 全部权限 A{rZiZ l" system 全部权限 }Xx $5 将C盘的所有子目录和子文件继承C盘的administrator(组或用户)和SYSTEM所有权限的两个权限 )RW!K r 然后做如下修改 2(rQ4:Bs9C C:\Program Files\Common Files 开放Everyone 默认的读取及运行 列出文件目录 读取三个权限 kfjgO\\ C:\WINDOWS\ 开放Everyone 默认的读取及运行 列出文件目录 读取三个权限 5U+J|SoS/ C:\WINDOWS\Temp 开放Everyone 修改,读取及运行,列出文件目录,读取,写入权限 _e.j_h@l` 现在WebShell就无法在系统目录内写入文件了. sw>KBFC 当然也可以使用更严格的权限. 5F7W\=z8 在WINDOWS下分别目录设置权限. ,\|.+1 可是比较复杂.效果也并不明显. [/D#K`'# !IWS[mL9e @k[ 1r &r 4.IIS #h%?sPQ 在IIS 6下.应用程序扩展内的文件类型对应ISAPI的类型已经去掉了IDQ,PRINT等等危险的脚本类型, z)k Vh2O+ 在IIS 5下我们需要把除了ASP以及ASA以外所有类型删除. zO}4lJ"j 安装URLSCAN &?7 ~Kp 在[DenyExtensions]中 kYGb^ZvR 一般加入以下内容 p<|=EAmYa .cer x "): d l .cdx =q}Z'`|h .mdb ;[^L"+1 .bat /N/R({ s; .cmd 1j6(.' .com 2RMM/:K .htw b 06gs^Q .ida FPr>TTyt:l .idq 8bD $O+/, .htr nUD>sIr/ .idc c~H9g3 .shtm B ?54a`'[? .shtml _fOYJl!o .stm 6 D~6iB} .printer QY 9wj 这样入侵者就无法下载.mdb数据库.这种方法比外面一些在文件头加入特殊字符的方法更加彻底. B|!Y,Va 因为即便文件头加入特殊字符.还是可以通过编码构造出来的 1X z l SU 1wNF l9i@}i 5.WEB目录权限 ^lFB'82 作为虚拟主机.会有许多独立客户 4JRh%3} 比较保险的做法就是为每个客户,建立一个windows用户 W<Vu[_op 然后在IIS的响应的站点项内 WNdwsLk.~ 把IIS执行的匿名用户.绑定成这个用户 0f!P9GI 并且把他指向的目录 $|.5*\;3N< 权限变更为 drGnF X administrators 全部权限 ,Gp&Q#|s system 全部权限 :S('x_se 单独建立的用户(或者IUSER) 选择高级->打开除 完全控制,遍历文件夹/运行程序,取得所有权 3个外的其他权限. `"F`zdT AZy#5t;AF ~t GBLu 如果服务器上站点不多.并且有论坛 X}&I.Vvn 我们可以把每个论坛的上传目录 {~ aTP" 去掉此用户的执行权限. (j" U*9 只有读写权限 < l) 这样入侵者即便绕过论坛文件类型检测上传了webshell `99 wMBv 也是无法运行的. _ZvU25G ~SXe _Hj=J }jZ>c9:# 6.MS SQL SERVER2000 2WXj>&d 使用系统帐户登陆查询分析器 5j`,D 7 运行以下脚本 >o eE/ use master <1M{W8n exec sp_dropextendedproc 'xp_cmdshell' @ED*%O$\ exec sp_dropextendedproc 'xp_dirtree' \fYG'd8z exec sp_dropextendedproc 'xp_enumgroups' W~tD/wIM exec sp_dropextendedproc 'xp_fixeddrives' 1Lb;(CYP exec sp_dropextendedproc 'xp_loginconfig' `s1){w{h6 exec sp_dropextendedproc 'xp_enumerrorlogs' +|;?Y5YhF exec sp_dropextendedproc 'xp_getfiledetails' mCK0*rKB exec sp_dropextendedproc 'Sp_OACreate' at*5je exec sp_dropextendedproc 'Sp_OADestroy' .&Qd?]_" exec sp_dropextendedproc 'Sp_OAGetErrorInfo' o@O 0B exec sp_dropextendedproc 'Sp_OAGetProperty' gwM-->14n exec sp_dropextendedproc 'Sp_OAMethod' \7a~.n970* exec sp_dropextendedproc 'Sp_OASetProperty' V\!r=zZ exec sp_dropextendedproc 'Sp_OAStop' I='S6 exec sp_dropextendedproc 'Xp_regaddmultistring' ,C8klgd exec sp_dropextendedproc 'Xp_regdeletekey' 7F3`{T exec sp_dropextendedproc 'Xp_regdeletevalue' (=u6qikMP exec sp_dropextendedproc 'Xp_regenumvalues' xz:1 mx> exec sp_dropextendedproc 'Xp_regread' J BV8v<*0 exec sp_dropextendedproc 'Xp_regremovemultistring' v*K?A\(1 exec sp_dropextendedproc 'Xp_regwrite' &K](-f drop procedure sp_makeweBTask +}<XS#26 go tWQB>y8r 删除所有危险的扩展. ]ejpi<e ZYsN]8$@ TV}<ffH/jv 7.修改CMD.EXE以及NET.EXE权限 ^Dj&W Ut 将两个文件的权限.修改到特定管理员才能访问,比如本例中.我们如下修改 ] 4Y,'QU cmd.exe root用户 所有权限 n$)p Zw net.exe root用户 所有权现 LC,~r!tl 这样就能防止非法访问. n 3S"h 还可以使用例子中提供的comlog程序 ggOMq+^F 将com.exe改名_com.exe,然后替换com文件.这样可以记录所有执行的命令行指令 p}qCzU2 Pva0n5Ni V;d%( 8.备份 8W]neLjCn 使用ntbackup软件.备份系统状态. gp: `W 使用reg.exe 备份系统关键数据 `+o77- 如reg export HKLM\SOFTWARE\ODBC e:\backup\system\odbc.reg /y CqT)BN 来备份系统的ODBC rnQfdHtr "J__)@[Z f3 v~pxx0 9.杀毒 YY)),gaf 这里介绍MCAFEE 8i 中文企业版 mG JJgTz 因为这个版本对于国内的许多恶意代码和木马都能够及时的更新. \12[K)" a 比如已经能够检测到海阳顶端2006 petgb8!>L 而且能够杀除IMAIL等SMTP软件使用的队列中MIME编码的病毒文件 K2@S!9/s 而很多人喜欢安装诺顿企业版.而诺顿企业版,对于WEBSHELL.基本都是没有反应的. 4u(E.R(w 而且无法对于MIME编码的文件进行杀毒. 8uIUs 在MCAFEE中. XdDE\UP! 我们还能够加入规则.阻止在windows目录建立和修改EXE.DLL文件等 XCwf3s 我们在软件中加入对WEB目录的杀毒计划. B 5o/MPLm 每天执行一次 @i _% /' 并且打开实时监控. Q }uK5r1 _bL(UM K}MA(aGIL 10.关闭无用的服务 !V>h |F 我们一般关闭如下服务 Q,4x8?J Computer Browser sRLNb`<F1 Help and Support @R/owj7 Messenger _pyu` %G Print Spooler 2qj)=3 Remote Registry ax AvDc;R TCP/IP NetBIOS Helper Lf CH*ly 如果服务器不用作域控,我们也可以禁用 6&\WV@q_4 Workstation 7L!_;lo `1:e&>)a hV~ KM?S 11.取消危险组件 R6FZX_ 如果服务器不需要FSO #egrPi@n regsvr32 /u c:\windows\system32\scrrun.dll vh~Khqs 注销组件 ~vl!ee)M$v 使用regedit vkb?H 将/HKEY_CLASSES_ROOT下的 aOOR+ WScript.Network 4po>u:($] WScript.Network.1 6q&^P]k&W WScript.Shell +c1@/ M WScript.Shell.1 ($ypkAxOI Shell.Application 7R<zSLG Shell.Application.1 `*7<|NEx 键值改名或删除 .w6mKU\ 将这些键值下CLSID中包含的字串 /YBR| QZ< 如{72C24DD5-D70A-438B-8A42-98424B88AFB8} x@ ~EvJ 到/HKEY_CLASSES_ROOT/CLSID下找到以这些字串命名的键值 gr(LgI*2 全部删除 NLB>[2R0u PC2 2 y1|_soR 0 12.审计 3+~ aA/Z 本地安全策略->本地策略->审核策略 bho<fSI4 打开以下内容 eN 6~H#i 审核策略更改 成功,失败 I=.m>#fFu 审核系统事件 成功,失败 s[8 [=i 审核帐户登陆事件 成功,失败 ?oEE#h- 审核帐户管理 成功,失败 BMX T|n
|
|
|
|