转载一篇,因为我在行的是网络攻击,对主机防护的也要学习啊
最近发现,网站经常会出现被挂JS,一直没有注意。这次要利用周末,好好下手除害了。同时写点共通的方法。以便更多人或许有用。
下面两点要明白的:
很清楚这样删了是治标不治本的,过不两天还会被挂!
看源文件是没有用的,可能写在你的其他包含文件里或者JS文件或者数据库里!下面讲被挂马后的一般查马和解决方法。
网页中被插入Js/iframe的可能性的途径:
虽然问题简单,但详细说起来从服务器、传输过程和客户端3个层次来分析。
1、就服务器而言存在的可能:
(1) 直接修改网页插入,现象是网页被改动了。
(2) 通过ISAPI Filter插入,现象是出现了陌生的ISAPI加载项。
(3) 通过IIS的脚注插入,现象是脚注设置被启用了。
(4) 通过网络TDI或NDIS插入,现象是出现了不知名的网络驱动类程序。
(5)“一句话木马”!这通常不被注意,但有一个功能可以把网站所有的首页和包含文件都自动加上代码的文件!
2、就传输过程存在的可能:
(1) 路由器被劫持,现象是只要通过某个路由器访问则出现代码,否则就没有。
(2) ARP欺骗,现象是arp表显然不正确。
3、就客户端存在的可能:
(1) 恶意程序或恶意插件,现象是其他机器访问网站就没有被插入代码。
被挂马后查找步骤:
1.先看看上传目录下面有没有可疑的ASP文件
2.然后再根据文件修改时间看看最近修改的文件哪些可疑
3.把上面搞清楚,应该就可以找到根源了。
服务器安全配置(WIN吧,其它的我也不是很了解):
几个关键ASP组件漏的问题。
① 删除或更名以下危险的ASP组件:
WScript.Shell、WScript.Shell.1、Wscript.Network、Wscript.Network.1、adodb.stream、Shell.application
开始------->运行--------->Regedit,打开注册表编辑器,按Ctrl+F查找,依次输入以上 Wscript.Shell等组件名称以及相应的ClassID,
然后进行删除或者更改名称(这里建议大家更名,如果有部分网页ASP程序利用了上面的组 件的话呢,
只需在将写ASP代码的时候用我们更改后的组件名称即可正常使用。
当然如果你确信你的ASP程序中没有用到以上组件,还是直接删除心中踏实一些 ^_^,
按常规一般来说是不会做到以上这些组件的。删除或更名后,iisreset重启IIS后即可升效。)
[注意:由于Adodb.Stream这个组件有很多网页中将用到,所以如果你的服务器是开虚拟主机的话,建议酢情处理。]
② 关于 File System Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228)即常说的FSO的安全问题,如果您的服务器必需要用到 FSO的话,(部分虚拟主机服务器一般需开FSO功能)
可以参照本人的另一篇关于FSO安全解决办法的文章:Microsoft Windows 2000 Server FSO
安全隐患解决办法。如果您确信不要用到的话,可以直接反注册此组件即可。
③ 直接反注册、卸载这些危险组件的方法:(实用于不想用①及②类此类烦琐的方法)
卸载wscript.shell对象,在cmd下或直接运行:regsvr32 /u %windir%\system32\WSHom.Ocx
卸载FSO对象,在cmd下或直接运行:regsvr32.exe /u %windir%\system32\scrrun.dll
卸载stream对象,在cmd下或直接运行: regsvr32 /s /u "C:\Program Files\Common Files\System\ado\msado15.dll"
如果想恢复的话只需要去掉 /U 即可重新再注册以上相关ASP组件例如:regsvr32.exe %windir%\system32\scrrun.dll
卸载这些危险组件的方法:(实用于不想用①及②类此类烦琐的方法)
卸载wscript.shell对象,在cmd下或直接运行:regsvr32 /u %windir%\system32\WSHom.Ocx
卸载FSO对象,在cmd下或直接运行:regsvr32.exe /u %windir%\system32\scrrun.dll
卸载stream对象,在cmd下或直接运行: regsvr32 /s /u "C:\Program Files\Common Files\System\ado\msado15.dll"
如果想恢复的话只需要去掉 /U 即可重新再注册以上相关ASP组件例如:regsvr32.exe %windir%\system32\scrrun.dll
防止海洋木马列出WIN服务器的用户和进程
禁用服务里面倒数第二个 workstation 服务,可以防止列出用户和服务
c:\
administrators 全部
system 全部
iis_wpg 只有该文件夹
列出文件夹/读数据
读属性
读扩展属性
读取权限
c:\inetpub\mailroot
administrators 全部
system 全部
service 全部
c:\inetpub\ftproot
everyone 只读和运行
c:\windows
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
IIS_WPG 读取和运行,列出文件夹目录,读取
Users 读取和运行(此权限最后调整完成后可以取消)
C:\WINDOWS\Microsoft.Net
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
Users 读取和运行,列出文件夹目录,读取
C:\WINDOWS\Microsoft.Net
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
Users 读取和运行,列出文件夹目录,读取
C:\WINDOWS\Microsoft.Net\temporary ASP.NET Files
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
Users 全部
c:\Program Files
Everyone 只有该文件夹
不是继承的
列出文件夹/读数据
administrators 全部
iis_wpg 只有该文件夹
列出文件/读数据
读属性
读扩展属性
读取权限
c:\windows\temp
Administrator 全部权限
System全部权限
users 全部权限
c:\Program Files\Common Files
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
TERMINAL SERVER Users(如果有这个用户)
修改,读取和运行,列出文件夹目录,读取,写入
Users 读取和运行,列出文件夹目录,读取
c:\Program Files\Dimac(如果有这个目录)
Everyone 读取和运行,列出文件夹目录,读取
administrators 全部
c:\Program Files\ComPlus Applications (如果有)
administrators 全部
c:\Program Files\GflSDK (如果有)
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
TERMINAL SERVER Users
修改,读取和运行,列出文件夹目录,读取,写入
Users 读取和运行,列出文件夹目录,读取
Everyone 读取和运行,列出文件夹目录,读取
c:\Program Files\InstallShield Installation Information (如果有)
c:\Program Files\Internet Explorer (如果有)
c:\Program Files\NetMeeting (如果有)
administrators 全部
c:\Program Files\WindowsUpdate
Creator owner
不是继承的
只有子文件夹及文件
完全
administrators 全部
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
c:\Program Files\Microsoft SQL(如果SQL安装在这个目录)
administrators 全部
Service 全部
system 全部
d:\ (如果用户网站内容放置在这个分区中)
administrators 全部权限
d:\FreeHost (如果此目录用来放置用户网站内容)
administrators 全部权限
SERVICE 读取与运行
从安全角度,我们建议WebEasyMail(WinWebMail)安装在独立的盘中,例如E:
E:\(如果webeasymail安装在这个盘中)
administrators 全部权限
system 全部权限
IUSR_*,默认的Internet来宾帐户(或专用的运行用户)
读取与运行
E:\WebEasyMail (如果webeasymail安装在这个目录中)
administrators 全部
system 全部权限
SERVICE全部
IUSR_*,默认的Internet来宾帐户 (或专用的运行用户)
全部权限
C:\php\uploadtemp
C:\php\sessiondata
everyone
全部
C:\php\
administrators 全部
system 全部权限
SERVICE全部
Users 只读和运行
c:\windows\php.ini
administrators 全部
system 全部权限
SERVICE全部
Users 只读和运行
修改该Clsid的值而禁用该组件,如将注册表中HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID的值0D43FE01-F093-11CF-8940-00A0C9054228改成0D43FE01-F093-11CF-8940-00A0C9054229(改了最后面一位),这时候的写法为:
CF-8940-00A0C9054229">
1.启用Windows自带防火墙,并开放80 21 3306 52013 端口.(想开什么端口自己加)
2.删除以下的注册表主键:
WScript.Shell
WScript.Shell.1
Shell.application
Shell.application.1
WSCRIPT.NETWORK
WSCRIPT.NETWORK.1
regsvr32 /u wshom.ocx回车、regsvr32 /u wshext.dll回车
3.删除没有必要的储存过程
use master
EXEC sp_dropextendedproc 'xp_cmdshell'
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
4.禁用Workstation服务,防止ASP木马列出用户.
5.关闭默认共享防止LAN内IPC入侵。可以用批处理来实现.如下:
echo off
net share c$ /del
net share d$ /del
net share e$ /del
net share f$ /del
保存为bat放到C:\Documents and Settings\All Users\「开始」菜单\程序\启动 即可
6.定时重启IIS服务及SQL服务.释放资源.可以用计划任务来实现.怎么弄自己想去。
7.设置终端登陆权限,只允许授权用户登陆.开始-程序-管理工具-终端服务配置-RDP-属性-权限
Administrator
chadmin
system
完全控制,不过尽管这样还是有一定的不安全,克隆个帐户就得了.建议限制IP登陆.尽管这样还是不安全滴,人家可以映射终端端口.最好的就是把服务器搞得上没得网.用IP安全策略可以做到.
8.Serv-U改一下本地管理密码,防止本地溢出.设置一下FTP域安全性,选择允许SSL/TLS和规则会话.