通过HttpModule实现数据库防注入
[ 2007-03-25 02:58:07 | 作者: sun ]
通过相应的关键字去识别是否有 Sql注入攻击代码
string SqlStr = "and |exec |insert |select |delete |update |count | * |chr |mid |master |truncate |char |declare ";
在下面的代码中你要看以上面的定义, 其实就是定义要识别的关键字.
而我们处理请求一般都是通过 Request.QueryString / Request.Form 这两种
我们可以专门写一个类去处理这些请求, 但如果在每一个处理环节都载入这个类去做处理, 那太麻烦了.
如果写一个ISAPI当然也能完成这个功能的实现, 但在.NET 中 HttpModule帮我们实现了类似于ISAPI Filter的功能, 所以改为通过 HttpModule 去处理这些事情是最好不过的啦.
我们现在要用到的只是里面的BeginRequest这个事件, 所以只需要注册BeginRequest这个事件就可以了.
REM 过滤字符串
Dim strFilter As String = "and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare|&"
REM 分割后的过滤字符串数组
Dim strf() As String
Dim strTemp1, strTemp2 As String
strf = strFilter.Split("|")
If Request.RequestType = "GET" Then
For Each strTemp1 In Request.QueryString
For Each strTemp2 In strf
If InStr(LCase(strTemp1), LCase(strTemp2), CompareMethod.Text) Then
Response.Write("想干啥?别注我!有漏洞通知QQ:26242000")
Response.End()
End If
Next
Next
ElseIf Request.RequestType = "POST" Then
For Each strTemp1 In Request.Form
For Each strTemp2 In strf
If InStr(LCase(strTemp1), LCase(strTemp2), CompareMethod.Text) Then
Response.Write("想干啥?别注我!有漏洞通知QQ:26242000")
Response.End()
End If
Next
Next
End If
再来看看我在百度上找的sql防攻击代码
// @copyright S.Sams Lifexperience http://blog.8see.net/
using System;
namespace Theme.Services.Public
{
/// <summary>
/// SqlstrAny 的摘要说明。
/// </summary>
public class ProcessRequest
{
public ProcessRequest()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region SQL注入式攻击代码分析
/// <summary>
/// 处理用户提交的请求
/// </summary>
public void StartProcessRequest()
{
try
{
string getkeys = "";
string sqlErrorPage = System.Configuration.ConfigurationSettings.AppSettings["CustomErrorPage"].ToString();
if (System.Web.HttpContext.Current.Request.QueryString != null)
{
for(int i=0;i<System.Web.HttpContext.Current.Request.QueryString.Count;i++)
{
getkeys = System.Web.HttpContext.Current.Request.QueryString.Keys[i];
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys]))
{
System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true");
System.Web.HttpContext.Current.Response.End();
}
}
}
if (System.Web.HttpContext.Current.Request.Form != null)
{
for(int i=0;i<System.Web.HttpContext.Current.Request.Form.Count;i++)
{
getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i];
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys]))
{
System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true");
System.Web.HttpContext.Current.Response.End();
}
}
}
}
catch
{
// 错误处理: 处理用户提交信息!
}
}
/// <summary>
/// 分析用户请求是否正常
/// </summary>
/// <param name="Str">传入用户提交数据</param>
/// <returns>返回是否含有SQL注入式攻击代码</returns>
private bool ProcessSqlStr(string Str)
{
bool ReturnValue = true;
try
{
if (Str != "")
{
string SqlStr = "and |exec |insert |select |delete |update |count | * |chr |mid |master |truncate |char |declare ";
string[] anySqlStr = SqlStr.Split('|');
foreach (string ss in anySqlStr)
{
if (Str.IndexOf(ss)>=0)
{
ReturnValue = false;
}
}
}
}
catch
{
ReturnValue = false;
}
return ReturnValue;
}
#endregion
}
}
// System.Configuration.ConfigurationSettings.AppSettings["CustomErrorPage"].ToString(); 这个为用户自定义错误页面提示地址,
//在Web.Config文件时里面添加一个 CustomErrorPage 即可
//<!-- 防止SQL数据库注入攻击的出错页面自定义地址 -->
// <add key="CustomErrorPage" value="../Error.html" />
string SqlStr = "and |exec |insert |select |delete |update |count | * |chr |mid |master |truncate |char |declare ";
在下面的代码中你要看以上面的定义, 其实就是定义要识别的关键字.
而我们处理请求一般都是通过 Request.QueryString / Request.Form 这两种
我们可以专门写一个类去处理这些请求, 但如果在每一个处理环节都载入这个类去做处理, 那太麻烦了.
如果写一个ISAPI当然也能完成这个功能的实现, 但在.NET 中 HttpModule帮我们实现了类似于ISAPI Filter的功能, 所以改为通过 HttpModule 去处理这些事情是最好不过的啦.
我们现在要用到的只是里面的BeginRequest这个事件, 所以只需要注册BeginRequest这个事件就可以了.
REM 过滤字符串
Dim strFilter As String = "and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare|&"
REM 分割后的过滤字符串数组
Dim strf() As String
Dim strTemp1, strTemp2 As String
strf = strFilter.Split("|")
If Request.RequestType = "GET" Then
For Each strTemp1 In Request.QueryString
For Each strTemp2 In strf
If InStr(LCase(strTemp1), LCase(strTemp2), CompareMethod.Text) Then
Response.Write("想干啥?别注我!有漏洞通知QQ:26242000")
Response.End()
End If
Next
Next
ElseIf Request.RequestType = "POST" Then
For Each strTemp1 In Request.Form
For Each strTemp2 In strf
If InStr(LCase(strTemp1), LCase(strTemp2), CompareMethod.Text) Then
Response.Write("想干啥?别注我!有漏洞通知QQ:26242000")
Response.End()
End If
Next
Next
End If
再来看看我在百度上找的sql防攻击代码
// @copyright S.Sams Lifexperience http://blog.8see.net/
using System;
namespace Theme.Services.Public
{
/// <summary>
/// SqlstrAny 的摘要说明。
/// </summary>
public class ProcessRequest
{
public ProcessRequest()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region SQL注入式攻击代码分析
/// <summary>
/// 处理用户提交的请求
/// </summary>
public void StartProcessRequest()
{
try
{
string getkeys = "";
string sqlErrorPage = System.Configuration.ConfigurationSettings.AppSettings["CustomErrorPage"].ToString();
if (System.Web.HttpContext.Current.Request.QueryString != null)
{
for(int i=0;i<System.Web.HttpContext.Current.Request.QueryString.Count;i++)
{
getkeys = System.Web.HttpContext.Current.Request.QueryString.Keys[i];
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys]))
{
System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true");
System.Web.HttpContext.Current.Response.End();
}
}
}
if (System.Web.HttpContext.Current.Request.Form != null)
{
for(int i=0;i<System.Web.HttpContext.Current.Request.Form.Count;i++)
{
getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i];
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys]))
{
System.Web.HttpContext.Current.Response.Redirect (sqlErrorPage+"?errmsg=sqlserver&sqlprocess=true");
System.Web.HttpContext.Current.Response.End();
}
}
}
}
catch
{
// 错误处理: 处理用户提交信息!
}
}
/// <summary>
/// 分析用户请求是否正常
/// </summary>
/// <param name="Str">传入用户提交数据</param>
/// <returns>返回是否含有SQL注入式攻击代码</returns>
private bool ProcessSqlStr(string Str)
{
bool ReturnValue = true;
try
{
if (Str != "")
{
string SqlStr = "and |exec |insert |select |delete |update |count | * |chr |mid |master |truncate |char |declare ";
string[] anySqlStr = SqlStr.Split('|');
foreach (string ss in anySqlStr)
{
if (Str.IndexOf(ss)>=0)
{
ReturnValue = false;
}
}
}
}
catch
{
ReturnValue = false;
}
return ReturnValue;
}
#endregion
}
}
// System.Configuration.ConfigurationSettings.AppSettings["CustomErrorPage"].ToString(); 这个为用户自定义错误页面提示地址,
//在Web.Config文件时里面添加一个 CustomErrorPage 即可
//<!-- 防止SQL数据库注入攻击的出错页面自定义地址 -->
// <add key="CustomErrorPage" value="../Error.html" />
巧妙的搭建一个Windows下的蜜罐系统
[ 2007-03-25 02:57:52 | 作者: sun ]
搭建一个基于*nix系统的蜜罐网络相对说来需要比较多系统维护和网络安全知识的基础,但是做一个windows系统的蜜罐(下面简称winpot)的门槛就比较低,而且大部分朋友都会M$的select & click :),今天我们就一起尝试搭建一个windows下的蜜罐系统
由于win和*nix系统不一样,我们很难使用有效的工具来完整的追踪入侵者的行为,因为win下有各式各样的远程管理软件(VNC,remote-anything),而对于这些软件,大部分杀毒软件是不查杀他们的,而我们也没有象LIDS那样强大的工具来控制Administrator的权限,相对而言,winpot的风险稍微大了点,而且需要花更加多的时间和精力去看管他,没办法,门槛低了,风险当然就会相对高了。
OK,开始
先介绍一下我们需要的软件
vpc Virtual pc,他是一个虚拟操作系统的软件,当然你也可以选择vmware.
ActivePerl-5.8.0.805-MSWin32-x86.msi windows下的perl解析器
evtsys_exe.zip 一个把系统日志发送到log服务器的程序
comlog101.zip 一个用perl写的偷偷记录cmd.exe的程序,不会在进程列表中显示,因为入侵者运行的的确是cmd.exe :)
Kiwi_Syslog_Daemon_7 一个很专业的日志服务器软件
norton antivirus enterprise client 我最喜欢的杀毒软件,支持win2k server。当然,如果你觉得其他的更加适合你,你有权选择
ethereal-setup-0.9.8.exe Ethereal的windows版本,Ethereal是*nix下一个很出名的sniffer,当然,如果你已经在你的honeynet中布置好了
sniffer,这个大可不必了,但是本文主要还是针对Dvldr 蠕虫的,而且ethereal的decode功能很强,用他来获取irc MSG很不错的
WinPcap_3_0_beta.exe ethereal需要他的支持。
md5sum.exe windows下用来进行md5sum校验的工具
绿色警戒防火墙 对入侵者做限制
windows 2000 professional的ISO镜象 用vpc虚拟操作系统的时候需要用到他
除了windows 2000 professional的ISO镜象,本文涉及的所有程序都可以在郑州大学网络安全园下载的到
http://www.520hack.com
Dvldr蠕虫简介
他是一个利用windows 2000/NT弱口令的蠕虫。该蠕虫用所带的字典暴力破解随机生成的ip的机器,如果成功,则感染机器,并植入VNC修改版
本,并向一个irc列表汇报已经感染主机的信息,同时继续向其他机器感染。可以访问郑州大学网络安全园或者关于他更详细的信息。
一:使用VPC安装一个win2k pro,具体的安装方法本文就省略了,打上所有的补丁,只留一个漏洞,就是dvldr蠕虫需要的administrator的空
密码。
二:安装norton antivirus enterprise client,升级到最新的病毒库,并启动实时监控
三:用cmdlog替换cmd.exe程序,把comlog101.zip解压缩后有五个文件cmd.exe,cmd101.pl,COMLOG.txt,MD5.txt,README.txt,其中cmdlog.txt和
readme.txt都是说明文件,md5.txt包含这五个文件的md5校验和的值,我们可以使用md5sum.exe工具来检测一下他们是否遭受修改
D:comlog101>md5sum.exe *
md5sum.exe: .: Permission denied
md5sum.exe: ..: Permission denied
f86ba5ffaa8800a2efa9093d2f11ae6f *cmd.exe
484c4708c17b5a120cb08e40498fea5f *com101.pl
001a6f9ca5f6cf01a23076bad9c6261a *comlog.txt
121bf60bc53999c90c6405440567064b *md5.txt
eb574b236133e60c989c6f472f07827b *md5sum.exe
42605ecfa6fe0f446c915a41396a7266 *README.TXT
把这些数字和md5.txt的数字对比,如果出现不一致,就证明程序遭受修改,请勿使用并通知我
在校验无误之后,我们开始覆盖系统的cmd.exe。先打开资源管理器-->工具-->文件夹选项-->查看,把"隐藏受保护的操作系统文件"的钩去掉,
并选择"显示所有文件和文件夹"-->确定
然后去到C:WINNTsystem32dllcache目录,并找到cmd.exe,并把他改名成cm_.exe,再把comlog101下的cmd.exe和com101.pl复制到这里,并把C
:WINNTsystem32下的cmd.exe也改成cm_.exe,同样把comlog101目录下的cmd.exe和com101.pl复制到这里。在这段时间,系统会提醒你系统
文件遭到修改,问你是否修复,选择取消就可以了。然后在C:WINNTHelp目录下建一个叫"Tutor"的目录,这里是用来放cmd.exe的命令记录的地方,当然你同样可以修改com101.pl来选择日志的存放位置。
现在我们运行cmd.exe,你会发现窗口一闪而过,这是因为我们还没装perl解析器。运行ActivePerl-5.8.0.805-MSWin32-x86.msi,一路next就OK了。
现在我们运行cmd.exe,这回我们可爱的cmd窗口就跳出来了,随便敲几个东西进去,然后去到C:WINNTHelpTutor目录下,你就可以看到记录了。为了避免记录自己在cmd.exe的操作,我们可以把原来的cmd.exe改成另外一个名字来执行。
四:安装日志服务器,我们选择Kiwi的Syslog Daemon 7是因为他够专业并且有很多统计信息和支持产品,一路next并启动服务即可。
netstat -an我们可以看到514端口
UDP 0.0.0.0:514 *:*
五:安装evtsys_exe,解压缩之后有两个程序evtsys.exe和evtsys.dll,同样需要检测文件是否被修改
D:evtsys_exe>md5sum.exe *
md5sum.exe: .: Permission denied
md5sum.exe: ..: Permission denied
f5ba9453e12dc030b5e19f75c079fec2 *evtsys.dll
dcc02e429fbb769ea5d94a2ff0a14067 *evtsys.exe
eb574b236133e60c989c6f472f07827b *md5sum.exe
如果一切正常的话,执行evtsys.exe /?
D:evtsys_exe>evtsys.exe /?
Usage: evtsys.exe -i|-u|-d [-h host] [-p port] [-q char]
-i Install service (安装服务)
-u Uninstall service (卸载服务)
-d Debug: run as console program (以debug模式运行)
-h host Name of log host (日志服务器IP地址)
-p port Port number of syslogd (日志服务器端口,默认是514)
-q char Quote messages with character
Default port: 514
我们运行D:evtsys_exe>evtsys.exe -h 日志服务器IP -i来安装服务
这样你系统的应用程序日志,系统日志,安全日志都会发到日志服务器去了,这样我们就可以更加真实的了解到系统的运行情况。
六:安装WinPcap_3_0_beta.exe和ethereal-setup-0.9.8.exe
下面针对本案例大概的说说ethereal的使用
先启动ethereal
capture->start
capture packets in promiscuous mode
不选这个,因为我们只需要得到本机的信息,不需要以混杂模式运行
filter
filter name:irc
string:ip host urip and tcp port 6667
只能有一条规则,但是可以使用逻辑符号
否定(`!' or `not')
交集(`&&' or `and')
并集(`||' or `or')
还有=,>=,+,&等等
更加详细的设置请查看ethereal的manual
先自己测试一下sniffer是否工作
连接上IRC,并发言,我们可以看到一些结果
然后选择一个记录,并且按”follow tcp stream”就可以查看IRC的聊天内容了
七:安装设置绿色警戒防火墙 关闭“进入请求通知”,开放共享,把所有的入侵检测对策的“拦截”都改成“警告”,警告级别都改成“记录”,我们主要是想了解一下大概的攻击情况
接着打扫战场,把你下载的软件,临时文件,历史记录,文档的记录全部删除,但是别忘记用regsnap做个镜象哦,最后再次开启ethereal
现在剩下的就是等蠕虫感染来了………………
由于win和*nix系统不一样,我们很难使用有效的工具来完整的追踪入侵者的行为,因为win下有各式各样的远程管理软件(VNC,remote-anything),而对于这些软件,大部分杀毒软件是不查杀他们的,而我们也没有象LIDS那样强大的工具来控制Administrator的权限,相对而言,winpot的风险稍微大了点,而且需要花更加多的时间和精力去看管他,没办法,门槛低了,风险当然就会相对高了。
OK,开始
先介绍一下我们需要的软件
vpc Virtual pc,他是一个虚拟操作系统的软件,当然你也可以选择vmware.
ActivePerl-5.8.0.805-MSWin32-x86.msi windows下的perl解析器
evtsys_exe.zip 一个把系统日志发送到log服务器的程序
comlog101.zip 一个用perl写的偷偷记录cmd.exe的程序,不会在进程列表中显示,因为入侵者运行的的确是cmd.exe :)
Kiwi_Syslog_Daemon_7 一个很专业的日志服务器软件
norton antivirus enterprise client 我最喜欢的杀毒软件,支持win2k server。当然,如果你觉得其他的更加适合你,你有权选择
ethereal-setup-0.9.8.exe Ethereal的windows版本,Ethereal是*nix下一个很出名的sniffer,当然,如果你已经在你的honeynet中布置好了
sniffer,这个大可不必了,但是本文主要还是针对Dvldr 蠕虫的,而且ethereal的decode功能很强,用他来获取irc MSG很不错的
WinPcap_3_0_beta.exe ethereal需要他的支持。
md5sum.exe windows下用来进行md5sum校验的工具
绿色警戒防火墙 对入侵者做限制
windows 2000 professional的ISO镜象 用vpc虚拟操作系统的时候需要用到他
除了windows 2000 professional的ISO镜象,本文涉及的所有程序都可以在郑州大学网络安全园下载的到
http://www.520hack.com
Dvldr蠕虫简介
他是一个利用windows 2000/NT弱口令的蠕虫。该蠕虫用所带的字典暴力破解随机生成的ip的机器,如果成功,则感染机器,并植入VNC修改版
本,并向一个irc列表汇报已经感染主机的信息,同时继续向其他机器感染。可以访问郑州大学网络安全园或者关于他更详细的信息。
一:使用VPC安装一个win2k pro,具体的安装方法本文就省略了,打上所有的补丁,只留一个漏洞,就是dvldr蠕虫需要的administrator的空
密码。
二:安装norton antivirus enterprise client,升级到最新的病毒库,并启动实时监控
三:用cmdlog替换cmd.exe程序,把comlog101.zip解压缩后有五个文件cmd.exe,cmd101.pl,COMLOG.txt,MD5.txt,README.txt,其中cmdlog.txt和
readme.txt都是说明文件,md5.txt包含这五个文件的md5校验和的值,我们可以使用md5sum.exe工具来检测一下他们是否遭受修改
D:comlog101>md5sum.exe *
md5sum.exe: .: Permission denied
md5sum.exe: ..: Permission denied
f86ba5ffaa8800a2efa9093d2f11ae6f *cmd.exe
484c4708c17b5a120cb08e40498fea5f *com101.pl
001a6f9ca5f6cf01a23076bad9c6261a *comlog.txt
121bf60bc53999c90c6405440567064b *md5.txt
eb574b236133e60c989c6f472f07827b *md5sum.exe
42605ecfa6fe0f446c915a41396a7266 *README.TXT
把这些数字和md5.txt的数字对比,如果出现不一致,就证明程序遭受修改,请勿使用并通知我
在校验无误之后,我们开始覆盖系统的cmd.exe。先打开资源管理器-->工具-->文件夹选项-->查看,把"隐藏受保护的操作系统文件"的钩去掉,
并选择"显示所有文件和文件夹"-->确定
然后去到C:WINNTsystem32dllcache目录,并找到cmd.exe,并把他改名成cm_.exe,再把comlog101下的cmd.exe和com101.pl复制到这里,并把C
:WINNTsystem32下的cmd.exe也改成cm_.exe,同样把comlog101目录下的cmd.exe和com101.pl复制到这里。在这段时间,系统会提醒你系统
文件遭到修改,问你是否修复,选择取消就可以了。然后在C:WINNTHelp目录下建一个叫"Tutor"的目录,这里是用来放cmd.exe的命令记录的地方,当然你同样可以修改com101.pl来选择日志的存放位置。
现在我们运行cmd.exe,你会发现窗口一闪而过,这是因为我们还没装perl解析器。运行ActivePerl-5.8.0.805-MSWin32-x86.msi,一路next就OK了。
现在我们运行cmd.exe,这回我们可爱的cmd窗口就跳出来了,随便敲几个东西进去,然后去到C:WINNTHelpTutor目录下,你就可以看到记录了。为了避免记录自己在cmd.exe的操作,我们可以把原来的cmd.exe改成另外一个名字来执行。
四:安装日志服务器,我们选择Kiwi的Syslog Daemon 7是因为他够专业并且有很多统计信息和支持产品,一路next并启动服务即可。
netstat -an我们可以看到514端口
UDP 0.0.0.0:514 *:*
五:安装evtsys_exe,解压缩之后有两个程序evtsys.exe和evtsys.dll,同样需要检测文件是否被修改
D:evtsys_exe>md5sum.exe *
md5sum.exe: .: Permission denied
md5sum.exe: ..: Permission denied
f5ba9453e12dc030b5e19f75c079fec2 *evtsys.dll
dcc02e429fbb769ea5d94a2ff0a14067 *evtsys.exe
eb574b236133e60c989c6f472f07827b *md5sum.exe
如果一切正常的话,执行evtsys.exe /?
D:evtsys_exe>evtsys.exe /?
Usage: evtsys.exe -i|-u|-d [-h host] [-p port] [-q char]
-i Install service (安装服务)
-u Uninstall service (卸载服务)
-d Debug: run as console program (以debug模式运行)
-h host Name of log host (日志服务器IP地址)
-p port Port number of syslogd (日志服务器端口,默认是514)
-q char Quote messages with character
Default port: 514
我们运行D:evtsys_exe>evtsys.exe -h 日志服务器IP -i来安装服务
这样你系统的应用程序日志,系统日志,安全日志都会发到日志服务器去了,这样我们就可以更加真实的了解到系统的运行情况。
六:安装WinPcap_3_0_beta.exe和ethereal-setup-0.9.8.exe
下面针对本案例大概的说说ethereal的使用
先启动ethereal
capture->start
capture packets in promiscuous mode
不选这个,因为我们只需要得到本机的信息,不需要以混杂模式运行
filter
filter name:irc
string:ip host urip and tcp port 6667
只能有一条规则,但是可以使用逻辑符号
否定(`!' or `not')
交集(`&&' or `and')
并集(`||' or `or')
还有=,>=,+,&等等
更加详细的设置请查看ethereal的manual
先自己测试一下sniffer是否工作
连接上IRC,并发言,我们可以看到一些结果
然后选择一个记录,并且按”follow tcp stream”就可以查看IRC的聊天内容了
七:安装设置绿色警戒防火墙 关闭“进入请求通知”,开放共享,把所有的入侵检测对策的“拦截”都改成“警告”,警告级别都改成“记录”,我们主要是想了解一下大概的攻击情况
接着打扫战场,把你下载的软件,临时文件,历史记录,文档的记录全部删除,但是别忘记用regsnap做个镜象哦,最后再次开启ethereal
现在剩下的就是等蠕虫感染来了………………
修改注册表清除黑客程序保证计算机安全
[ 2007-03-25 02:57:40 | 作者: sun ]
在网络给我们的工作学习带来极大方便的同时,病毒、木马、后门以及黑客程序也严重影响着信息的安全。这些程序感染计算机的一个共同特点是在注册表中写入信息,来达到如自动运行、破坏和传播等目的。以下是笔者在网上收集的,通过修改注册表来对付病毒、木马、后门以及黑客程序,保证个人计算机的安全。
1.清理访问“网络邻居”后留下的字句信息
在HEKY_CURRENT_USER/Network/Recent下,删除下面的主键。
2.取消登陆时自动拨号
在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Network/RealModeNet下修改右边窗口中的“autologon”为“01 00 00 00 00”。
3.取消登录时选择用户
已经删除了所有用户,但登录时还要选择用户,我们要取消登录时选择用户,就要在HKEY_LOCAL_MACHINENetworkLogon下,在右边的窗口中,修改"UserProfiles"值为"0"。
4.隐藏上机用户登录的名字
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogon下在右边的窗口中新建字符串"DontDisplayLastUserName",设值为"1"。
5.预防Acid Battery v1.0木马的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“Explorer”键值,则说明中了YAI木马,将它删除。
6.预防YAI木马的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“Batterieanzeige”键值,则说明中了YAI木马,将它删除。
7.预防Eclipse 2000木马的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“bybt”键值,则将它删除。然后在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下删除右边的键值“cksys”,重新启动电脑。
8.预防BO2000的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“umgr32.exe”键值,则说明中了BO2000,将它删除。
9.预防爱虫的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下若在右边窗口中如发现了“MSKernel32”键值,就将它删除。
10.禁止出现IE菜单中“工具”栏里“interner选项”
把c:windowssystem下的名为inetcpl.cpl更名为inetcpl.old或则别的名字后就会出现禁止使用的情况把名字再换回来,就可以恢复使用。
11.预防BackDoor的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下若在右边窗口中如发现了“Notepad”键值,就将它删除。
12.预防WinNuke的破坏
在HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDMSTCP下在右边的窗口中新建或修改字符串“BSDUrgent”,设其值为0。
13.预防KeyboardGhost的破坏
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices下如发现KG.EXE这一键值,就将它删除,并查找KG.exe文件和kg.dat文件,将它们都删除
14.查找NetSpy黑客程序
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun下,在右边的窗口中寻找键"NetSpy",如果存在,就说明已经装有NetSpy黑客程序,把它删除.
1.清理访问“网络邻居”后留下的字句信息
在HEKY_CURRENT_USER/Network/Recent下,删除下面的主键。
2.取消登陆时自动拨号
在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Network/RealModeNet下修改右边窗口中的“autologon”为“01 00 00 00 00”。
3.取消登录时选择用户
已经删除了所有用户,但登录时还要选择用户,我们要取消登录时选择用户,就要在HKEY_LOCAL_MACHINENetworkLogon下,在右边的窗口中,修改"UserProfiles"值为"0"。
4.隐藏上机用户登录的名字
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionWinlogon下在右边的窗口中新建字符串"DontDisplayLastUserName",设值为"1"。
5.预防Acid Battery v1.0木马的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“Explorer”键值,则说明中了YAI木马,将它删除。
6.预防YAI木马的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“Batterieanzeige”键值,则说明中了YAI木马,将它删除。
7.预防Eclipse 2000木马的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“bybt”键值,则将它删除。然后在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下删除右边的键值“cksys”,重新启动电脑。
8.预防BO2000的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices下若在右边窗口中如发现了“umgr32.exe”键值,则说明中了BO2000,将它删除。
9.预防爱虫的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下若在右边窗口中如发现了“MSKernel32”键值,就将它删除。
10.禁止出现IE菜单中“工具”栏里“interner选项”
把c:windowssystem下的名为inetcpl.cpl更名为inetcpl.old或则别的名字后就会出现禁止使用的情况把名字再换回来,就可以恢复使用。
11.预防BackDoor的破坏
在HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun下若在右边窗口中如发现了“Notepad”键值,就将它删除。
12.预防WinNuke的破坏
在HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDMSTCP下在右边的窗口中新建或修改字符串“BSDUrgent”,设其值为0。
13.预防KeyboardGhost的破坏
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices下如发现KG.EXE这一键值,就将它删除,并查找KG.exe文件和kg.dat文件,将它们都删除
14.查找NetSpy黑客程序
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun下,在右边的窗口中寻找键"NetSpy",如果存在,就说明已经装有NetSpy黑客程序,把它删除.
BBSxp/LeadBBS后台上传Webshell的防范
[ 2007-03-25 02:57:28 | 作者: sun ]
关于BBSxp/LeadBBS的后台上传Webshell的防范
作者:kEvin1986 更新日期:2005-04-01 类别:网络安全->安全防御 总浏览/今日:650/1
最近弄了两个BBS系统,发现后台传/改Webshell的时候都做了一定限度的防范,使得很多新手不知道如何去传Webshell控制主机.其实这个问题很简单......几分钟就能解决
1.BBSXP
昨天朋友弄进去一个BBSXP的论坛,这个论坛以前问题多多,制作人(好象是yuzi工作室)很不注意安全的防范,而且对脚本安全基本知识缺乏了解,导致了很多漏洞,而现在已经不是是很流行了.但是新版的还是新版的,也要看看...
后台大致浏览了一下发现可以和Dvbbs的后台一样通过备份数据库来获取Webshell,可是问题是如果备份成ASP的话,后台有一个验证,提示不能备份成.ASP文件.其实这个东西是个名副其实的鸡肋防范策略,因为我们还知道有CdxCerAsaHtr等格式也可以执行ASP脚本.而BBSXP并没有想到.......所以,我们把备份的改为.asa等就可以传了.........BBSXP还是那么菜啊.....
2.LeadBBS.
LeadBBS总体来说还是个强悍的论坛,但是最近还是被Lin给发现了Cookie欺骗漏洞.呵呵.那么在很多人利用的时候,都发现没办法传WebShell.其中包括Sniper .哈哈/
其实我们可以编辑后台的一个ASP文件,而这个文件是检测server和<%这两个字符的.看起来是做了不错的防范,可是还是有问题的.
我们可以通过include来写一个ASP木马.
首先从论坛上传一个JPG后缀的ASP木马,这个木马最好是直接使用FSO或ADODB.STREAM在当前目录生成一个Newmm.ASP这样的代码.因为Include是无法接收数据的.
然后在后台的编辑文件那里写上
然后访问这个文件,最后访问生成的ASP木马地址就可以了.......
作者:kEvin1986 更新日期:2005-04-01 类别:网络安全->安全防御 总浏览/今日:650/1
最近弄了两个BBS系统,发现后台传/改Webshell的时候都做了一定限度的防范,使得很多新手不知道如何去传Webshell控制主机.其实这个问题很简单......几分钟就能解决
1.BBSXP
昨天朋友弄进去一个BBSXP的论坛,这个论坛以前问题多多,制作人(好象是yuzi工作室)很不注意安全的防范,而且对脚本安全基本知识缺乏了解,导致了很多漏洞,而现在已经不是是很流行了.但是新版的还是新版的,也要看看...
后台大致浏览了一下发现可以和Dvbbs的后台一样通过备份数据库来获取Webshell,可是问题是如果备份成ASP的话,后台有一个验证,提示不能备份成.ASP文件.其实这个东西是个名副其实的鸡肋防范策略,因为我们还知道有CdxCerAsaHtr等格式也可以执行ASP脚本.而BBSXP并没有想到.......所以,我们把备份的改为.asa等就可以传了.........BBSXP还是那么菜啊.....
2.LeadBBS.
LeadBBS总体来说还是个强悍的论坛,但是最近还是被Lin给发现了Cookie欺骗漏洞.呵呵.那么在很多人利用的时候,都发现没办法传WebShell.其中包括Sniper .哈哈/
其实我们可以编辑后台的一个ASP文件,而这个文件是检测server和<%这两个字符的.看起来是做了不错的防范,可是还是有问题的.
我们可以通过include来写一个ASP木马.
首先从论坛上传一个JPG后缀的ASP木马,这个木马最好是直接使用FSO或ADODB.STREAM在当前目录生成一个Newmm.ASP这样的代码.因为Include是无法接收数据的.
然后在后台的编辑文件那里写上
然后访问这个文件,最后访问生成的ASP木马地址就可以了.......
针对ASP类网站的Win 2003硬盘安全设置
[ 2007-03-25 02:57:15 | 作者: sun ]
C:分区部分:
c:
administrators 全部
iis_wpg 只有该文件夹
列出文件夹/读数据
读属性
读扩展属性
读取权限
c:inetpubmailroot
administrators 全部
system 全部
service 全部
c:inetpubftproot
everyone 只读和运行
c:windows
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
Users 读取和运行,列出文件夹目录,读取
c:Program Files
Everyone 只有该文件夹
不是继承的
列出文件夹/读数据
administrators 全部
iis_wpg 只有该文件夹
列出文件/读数据
读属性
读扩展属性
读取权限
c:Program FilesCommon Files
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
TERMINAL SERVER Users(如果有这个用户)
修改,读取和运行,列出文件夹目录,读取,写入
Users 读取和运行,列出文件夹目录,读取
如果安装了我们的软件:
c:Program FilesLIWEIWENSOFT
Everyone 读取和运行,列出文件夹目录,读取
administrators 全部
IIS_WPG 读取和运行,列出文件夹目录,读取
c:Program FilesDimac(如果有这个目录)
Everyone 读取和运行,列出文件夹目录,读取
administrators 全部
c:Program FilesComPlus Applications (如果有)
administrators 全部
c:Program FilesGflSDK (如果有)
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
TERMINAL SERVER Users
修改,读取和运行,列出文件夹目录,读取,写入
Users 读取和运行,列出文件夹目录,读取
Everyone 读取和运行,列出文件夹目录,读取
c:Program FilesInstallShield Installation Information (如果有)
c:Program FilesInternet Explorer (如果有)
c:Program FilesNetMeeting (如果有)
administrators 全部
c:Program FilesWindowsUpdate
Creator owner
不是继承的
只有子文件夹及文件
完全
administrators 全部
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
D:分区部分:
d: (如果用户网站内容放置在这个分区中)
administrators 全部权限
d:FreeHost (如果此目录用来放置用户网站内容)
administrators 全部权限
SERVICE 全部权限
E:分区部分:
从安全角度,我们建议WebEasyMail(WinWebMail)安装在独立的盘中,例如E:
E:(如果webeasymail安装在这个盘中)
administrators 全部权限
system 全部权限
IUSR_*,默认的Internet来宾帐户(如果这个网站用这个用户来运行)
不是继承的
只有子文件夹
读取权限
E:WebEasyMail (如果webeasymail安装在这个目录中)
administrators 全部
system 全部权限
SERVICE 全部
IUSR_*,默认的Internet来宾帐户 全部权限(如果这个网站用这个用户来运行)
关于IUSR_*,我们不建议用这个用户来运行Webeasymail,应该用平台开一个虚拟主机来运行Webeasymail。
----------------不知道2000是不是一样设置
针对PHP木马攻击的防御之道操作系统常遇木马的预防技巧
[ 2007-03-25 02:56:58 | 作者: sun ]
木马程序是目前比较流行的一类病毒文件,它与一般的病毒不同,它不会自我繁殖,也并不刻意地去感染其他文件。它通过将自身伪装吸引用户下载执行,或以捆绑在网页中的形式,当用户浏览网页时受害。
木马程序向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃取被种者的文件和隐私,甚至远程操控被种者的电脑。木马的原理和计算机网络中常常要用到的远程控制软件相似,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性;而木马程序则完全相反,木马要达到的是“偷窃”性的远程控制,如果没有很强的隐蔽性的话,那就是毫无价值的。
木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行,电脑就会有一个或几个端口被打开,黑客就可以利用控制端进入运行了服务端的电脑,甚至可以控制被种者的电脑,所以被种者的安全和个人隐私也就全无保障了!
随着微软的操作系统从Win9X过渡到WinNT系统(包括2000/xp/2003),微软的任务管理器也一下子“脱胎换骨”,变得“火眼金睛”起来 (在Win9X中,只需要将进程注册为系统服务就能够从进程查看器中隐形,可是这一切在WinNT中却完全不同,无论木马从端口、启动文件上如何巧妙地隐藏自己,始终都不能欺骗WinNT的任务管理器),这使得以前在win9X操作系统下靠将进程注册为系统服务就能够从任务管理器中隐形的木马面临前所未有的危机,所以木马的开发者及时调整了开发思路,转入了开发可以躲避WinNT的任务管理器的进程查询的动态嵌入式DLL木马。
要弄清楚什么是动态嵌入式DLL木马,我们必须要先了解Windows系统的另一种“可执行文件”——DLL,DLL是Dynamic Link Library(动态链接库)的缩写,DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,DLL文件一般都是由进程加载并调用的。
因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL.所以木马的开发者就通过编写动态嵌入式DLL木马,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现那个DLL木马。如果那个进程是可信进程(例如资源管理器Explorer.exe),那么就没人会怀疑DLL文件也是个木马了。从而木马就又实现了自己的隐蔽性的功能,所以,预防DLL木马也是相当重要的。
在WinNT系统,DLL木马一般都藏在System32目录下(因为System32是系统文件存放的目录,里面的文件很多,在里面隐藏当然很方便了),针对这一点我们可以在安装好系统和必要的应用程序后,对该目录下的EXE和DLL文件作一次记录:点击开始—运行—输入cmd回车—出现DOS命令行模式—输入cd\回车,再输入cd C:\Windows\System32回车,这就转换目录到了System32目录(要还是不知道怎么进入的,请参看DOS的cd命令的使用),输入命令:dir *.exe>exebackup.txt &dir *.dll>dllbackup.txt回车。
这样,我们就把System32目录下所有的exe文件和所有的dll文件都记录在exebackup.txt和dllbackup.txt里面了。日后如发现系统异常而用传统的方法又查不出问题时,则要考虑是不是系统中已经潜入了DLL木马。
这时我们用同样的方法将System32目录下的EXE和DLL文件记录到另外exebackup1.txt和dllbackup1.txt中,然后运行 CMD—fc exebackup.txt exebackup1.txt>different.txt &fc dllbackup.txt dllbackup1.txt>different.txt(使用FC命令比较前后两次的DLL和EXE文件,并将结果输入到 different.txt中),这样我们就能发现一些多出来的DLL和EXE文件,然后通过查看创建时间、版本、是否经过压缩等就能够比较容易地判断出是不是已经被DLL木马光顾了。
没有是最好,如果有的话也不要直接删除掉,可以先把它移到回收站里,若系统没有异常反应再将之彻底删除,或者把DLL文件上报给反病毒研究中心检查。
最后,防治木马的危害,专家建议大家应采取以下措施:
第一,安装反病毒软件和个人防火墙,并及时升级。
第二,把个人防火墙设置好安全等级,防止未知程序向外传送数据。
第三,使用安全性比较好的浏览器和电子邮件客户端工具。
第四,操作系统的补丁要经常进行更新。
第五,不要随便打开陌生网友传送的文件和下载、使用破解软件。
相信大家只要做好安全防护工作,防治木马并不是那么可怕的。
木马程序向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃取被种者的文件和隐私,甚至远程操控被种者的电脑。木马的原理和计算机网络中常常要用到的远程控制软件相似,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性;而木马程序则完全相反,木马要达到的是“偷窃”性的远程控制,如果没有很强的隐蔽性的话,那就是毫无价值的。
木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行,电脑就会有一个或几个端口被打开,黑客就可以利用控制端进入运行了服务端的电脑,甚至可以控制被种者的电脑,所以被种者的安全和个人隐私也就全无保障了!
随着微软的操作系统从Win9X过渡到WinNT系统(包括2000/xp/2003),微软的任务管理器也一下子“脱胎换骨”,变得“火眼金睛”起来 (在Win9X中,只需要将进程注册为系统服务就能够从进程查看器中隐形,可是这一切在WinNT中却完全不同,无论木马从端口、启动文件上如何巧妙地隐藏自己,始终都不能欺骗WinNT的任务管理器),这使得以前在win9X操作系统下靠将进程注册为系统服务就能够从任务管理器中隐形的木马面临前所未有的危机,所以木马的开发者及时调整了开发思路,转入了开发可以躲避WinNT的任务管理器的进程查询的动态嵌入式DLL木马。
要弄清楚什么是动态嵌入式DLL木马,我们必须要先了解Windows系统的另一种“可执行文件”——DLL,DLL是Dynamic Link Library(动态链接库)的缩写,DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,DLL文件一般都是由进程加载并调用的。
因为DLL文件不能独立运行,所以在进程列表中并不会出现DLL.所以木马的开发者就通过编写动态嵌入式DLL木马,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现那个DLL木马。如果那个进程是可信进程(例如资源管理器Explorer.exe),那么就没人会怀疑DLL文件也是个木马了。从而木马就又实现了自己的隐蔽性的功能,所以,预防DLL木马也是相当重要的。
在WinNT系统,DLL木马一般都藏在System32目录下(因为System32是系统文件存放的目录,里面的文件很多,在里面隐藏当然很方便了),针对这一点我们可以在安装好系统和必要的应用程序后,对该目录下的EXE和DLL文件作一次记录:点击开始—运行—输入cmd回车—出现DOS命令行模式—输入cd\回车,再输入cd C:\Windows\System32回车,这就转换目录到了System32目录(要还是不知道怎么进入的,请参看DOS的cd命令的使用),输入命令:dir *.exe>exebackup.txt &dir *.dll>dllbackup.txt回车。
这样,我们就把System32目录下所有的exe文件和所有的dll文件都记录在exebackup.txt和dllbackup.txt里面了。日后如发现系统异常而用传统的方法又查不出问题时,则要考虑是不是系统中已经潜入了DLL木马。
这时我们用同样的方法将System32目录下的EXE和DLL文件记录到另外exebackup1.txt和dllbackup1.txt中,然后运行 CMD—fc exebackup.txt exebackup1.txt>different.txt &fc dllbackup.txt dllbackup1.txt>different.txt(使用FC命令比较前后两次的DLL和EXE文件,并将结果输入到 different.txt中),这样我们就能发现一些多出来的DLL和EXE文件,然后通过查看创建时间、版本、是否经过压缩等就能够比较容易地判断出是不是已经被DLL木马光顾了。
没有是最好,如果有的话也不要直接删除掉,可以先把它移到回收站里,若系统没有异常反应再将之彻底删除,或者把DLL文件上报给反病毒研究中心检查。
最后,防治木马的危害,专家建议大家应采取以下措施:
第一,安装反病毒软件和个人防火墙,并及时升级。
第二,把个人防火墙设置好安全等级,防止未知程序向外传送数据。
第三,使用安全性比较好的浏览器和电子邮件客户端工具。
第四,操作系统的补丁要经常进行更新。
第五,不要随便打开陌生网友传送的文件和下载、使用破解软件。
相信大家只要做好安全防护工作,防治木马并不是那么可怕的。
针对PHP木马攻击的防御之道
[ 2007-03-25 02:56:44 | 作者: sun ]
本文通过介绍一些技巧介绍了针对PHP木马攻击的防御之道,通过这些方面你可以更好的防范木马程序。 1、防止跳出web目录 首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行: php_admin_value open_basedir /usr/local/apache/htdocs 这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话会提示这样的错误: Warning: open_basedir restriction in effect. File is in wrong directory in /usr/local/apache/htdocs/open.php on line 4 等等。
2、防止php木马执行webshell 打开safe_mode, 在,php.ini中设置 disable_functions= passthru,exec,shell_exec,system 二者选一即可,也可都选
2、防止php木马执行webshell 打开safe_mode, 在,php.ini中设置 disable_functions= passthru,exec,shell_exec,system 二者选一即可,也可都选
教你如何用手工迅速剿灭QQ广告弹出木马
[ 2007-03-25 02:56:32 | 作者: sun ]
将杀毒软件升级到最新也不能查杀,打开浏览器,上网搜索,发现也有朋友中了这种木马,但该网友提供的方法并不能删除木马,无奈之下只好自己“动手”了,以下就是我的整个手工清除木马的过程,写出来与大家分享。
具体的不知道从哪天起,我的Maxthon浏览器好像不能拦截一些网站的广告了,屏幕的右下角也不时的出现如QQ广告一样的东西,一开始以为是网站和QQ的广告。但越用越不对劲,仔细一看,右下角的根本就不是QQ的广告,出来的整个广告就是一个链接,不像QQ广告外面还有一个框,鼠标放在上面是不会变成手形的,而这个广告,无论鼠标放在什么地方都是手形的。我开始怀疑我中招了,将杀毒软件升级到最新也不能查杀,打开浏览器,上网搜索,发现也有朋友中了这种木马,但该网友提供的方法并不能删除木马,无奈之下只好自己“动手”了,以下就是我的整个手工清除木马的过程,写出来与大家分享。
1、常规操作
打开任务管理器,查看进程,并没有发现什么不良进程。
2、深入挖掘
运行Regedit,依次展开
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
一看,果然多了个新家伙Advapi32,一看键值,竟然加载的是一个Dll文件,而这个文件位于C:\WINDOWS\Downloaded Program Files目录下的_IS_0518目录中。找到了根源就好办了,先删除了启动项,再删除对应的木马文件就行了,但到了C:\WINDOWS\Downloaded Program Files目录一看,发现这些文件根本看不到(开启了显示隐藏文件项)。且重启之后启动项又出现了,很显然,这个木马监视注册表,且文件隐藏。为了剿灭彻底,以下步骤是进入安全模式后进行的(开机时按住F8键或Ctrl键不放直到启动菜单出现)。
在第三步之前,我曾尝试直接用第四步的方法删除木马文件,但发现重启之后木马并没有消失,因此初步判断该木马存在备份文件。
3、清除木马备份文件
打开“我的电脑”进入C:\Windows目录,发现一个可疑目录Backup,进去一看,果然启动项加载的Dll文件也在里面,但启动项加载的却不是这个目录中的文件,很显然这个目录就是木马的备份,先删除这个备份目录再说,但刚刚删除,大概一两秒的时间这个目录又被重新建立。这个木马还真狡猾,竟然在安全模式还能自动加载且监视备份文件,一旦备份文件被删除,马上又会建立。正所谓“以彼之道还施彼身”,它能监视且能自动建立备份目录,我如果能先将目录删除,然后抢在它的前面建立目录不就行了吗?因为Windows是不允许同一目录下有两个文件或目录同名的。但从备份目录被删除到被重新建立中间的间隔太短了,手工肯定是不行的,那么就用Dos时代的批处理吧!先建立如下的批处理文件,命名为Kill.bat,双斜杠之后是注释,实际操作时无需输入。Move c:\windows\backup c:\windows\bak //将Backup目录重命名为BakMd c:\windows\backup //在C:\windows下建立Backup目录这时再打开“我的电脑”,依次进入C:\windows目录,将Bak目录删除,即完成了木马备份文件的删除。
4、清除木马文件
重新建立一个批处理文件,命名为Kill2.bat,内容如下。cd c:\ //将当前路径改为C:盘的根目录cd C:\WINDOWS\Downloaded Program Files //将当前路径改为C:\WINDOWS\Downloaded Program Filesmove _IS_0518 c:\bak//将当前目录下的_IS_0518目录移动到C:根目录下并重命名为bak打开“我的电脑”,进入C:\,删除Bak目录,再进入C:\windows目录,删除Backup目录,即完成了木马文件的清除。
5、清理注册表
运行Regedit,分别将下面所列的键删除。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Advapi32
HKEY_CURRENT_USER/Software/advapi32
至此,Advapi32木马(因为在网上也没查到此木马的名字,所以就用它的自启动项键名来代替了)手工清理完毕。注:
1.第三步和第四步顺序千万不能对调,因为只有先删除备份文件,再删除木马文件,这时因为木马文件没有了,备份文件也没有了,所以木马也就没办法重新建立文件了。
2.以前也在报刊上看到过手工清除木马的例子,但大部分都是一些利用进程查看工具结束进程来实现的,由于此木马进程伪装隐蔽,笔者曾用IceSword查看,虽能初步判断木马隐藏在Svchost.exe进程中,但由于Windows XP中Svchost.exe进程比较多,所以不好判断其具体的隐藏位置,结束进程的方法也就不好实现了,反而用本文所提的方法就能轻松将木马剿灭。
3.本方法在Windows XP Pro + SP2下测试通过。
做自己的救世主--系统安全保卫战
[ 2007-03-25 02:56:21 | 作者: sun ]
一. 谁是救世主
相信看过《黑客帝国》系列的朋友都不会对主人公尼奥感到陌生,这位闯入虚拟世界的程序员一次又一次演绎了“救世主”的角色,保护了城市居民,其形象早已深入人心。
而离开电影后,我们广大的计算机用户要面对的又是另一种亦真亦假的数字虚拟世界——网络,这里同样潜伏着许多危险,同样存在“黑客帝国”,但这里却没有尼奥这个人的存在,我们能看到的,只有形形色色的安全厂商和他们所提供的安全工具,除此之外,似乎已经没有别的选择。
于是乎,许多用户把各种安全工具看成了这个世界中的“救世主”,我们看到许多关于安全工具的广告,我们购买市面上流行的防病毒软件,我们在听闻每周一次的“新病毒预警”时赶紧升级病毒特征库,我们每周都对电脑进行一次漫长的病毒扫描……许多人都这样做,许多人不得不这样做,因为我们把一切都交给杀毒工具了,我们什么都不需要做了,我们只管肆无忌弹的上网聊天看电影下软件,因为我们有杀毒工具,这些工具都具备一个“实时监测”的功能,它每时每刻都会检查我们刚下载的文件,我们感到自己很安全,我们以为这就是网络中的防御。
然而,事实真的如此美好吗?依稀记得有一句话好像是这么说的,“无论你做什么事情,你都不可避免要付出一定的代价”,在我们安然自得的享受由杀毒工具带来的安全防御的同时,我们也在付出相应的代价。为什么呢?因为杀毒工具是一套在系统启动的时候就开始运行直到关机或者用户退出它的时候才会停止运行的程序,它们的检测和防御机制的效率是不能和尼奥相比的。举个简单例子,学过编程的人大概都知道,象棋程序是最难写得完美的,因为象棋的走法从来都没有一个固定的模式,我们能创造出许多花样,但是程序不能,它只能按照有限的判断机制去决定每一步棋怎么走,这就是为什么如今的许多象棋程序看起来像个傻瓜的原因。有人也许会说,做一个强大的象棋程序把尽可能遇到的走法都写进去就可以了,这个象棋程序必然无敌。这样是可行的,但是由此带来的代价就是每个和它下棋的人可能都要花一辈子的时间了,因为程序在每走一步棋之前都要把所有尽可能遇到的情况都“思考”一遍,这样是要付出时间作为代价的,如果要缩短时间,就要让程序在同一时刻思考多种走法,但着时候,代价就变成庞大的系统资源消耗了——你能忍受么?
同样的缺陷正在杀毒软件身上发生,我们知道,大部分杀毒软件是采用“特征码”技术去搜索病毒的,就是说,杀毒软件引擎读取一个程序或文件内容,并与自身数据库里储存的已被确认为病毒程序体内某段特定代码进行匹配,一旦两者相同,杀毒软件就“确认”此文件为病毒。随着病毒家族的庞大,这个数据库体积的增长也到了不可忽视的地步,加载的速度也就慢了。而且数据库每增加一个病毒特征码,杀毒引擎的判断分支就要增多一条,相应的时间也会延长,为了避免出现扫描一个文件需要半小时的尴尬情况,杀毒软件会采用各种提高匹配速度的方案,但这些方案无一例外都要疯狂剥削用户的系统资源,如果一台电脑的配置并不是很高,那么在用户查毒的时候,他基本上已经不能正常做其他工作了,找个电视台慢慢看连续剧吧,这就是尼奥的代价。
那么,谁才是我们的救世主?答案就是——你自己。能信任的人永远只有自己,只要肯努力,每个人都可以做尼奥,不过这也是有代价的,因为它把系统资源的消耗转变为脑子的消耗,把判断分支和经验写入脑子里,在处理分支的效率上,人永远比程序要灵活,而且这样一来就不会出现依赖的恶性循环了,离开了杀毒软件,我们要学会靠自己来保护自己不被这个虚拟世界伤害到。现在,就让我们来做自己的救世主吧。
二. 做自己的救世主
小时候曾经看过一个故事《另一种侵略》,被人类打败的宇宙侵略者送给人类一种水晶,只要人类拿起它想一种物品,这个物品就会出现在自己面前,于是每个人都开始沉浸于无尽的享受中,再也没人去钻研科技国防了,几十年后,人类开始出现退化现象。这时候,宇宙侵略者又来访问地球了,这次它们只用了一条条鞭子就征服了地球,在最后一个人类被驱逐进囚笼之前,他回头含糊不清的说了句什么话——连他的舌头都退化得差不多了,也许他是说:“地球完了。”
以上的故事或许只是虚无的幻想,但类似的行为却正在当代发生,如果一个用户怀疑自己的电脑感染了后门,他的第一个反应大概会是打开杀毒工具。故事里的人类太依赖水晶的魔力,现实中的我们太依赖杀毒软件的方便快捷!也许有人会反对,既然能使用工具方便快捷的保护计算机安全,我又何必自寻烦恼学习安全防御?会这样想的用户没有想到网络的复杂,能闯进计算机的“客人”并非就是在各大安全工具厂商通缉名单上的成员,因为网络中还流传着一部分小规模使用而且没有被公开的“私人后门”(例如大部分DDoS后门工具其实都是自己写自己用的),有能力的人都可以自己写“私人后门”,然后通过多种途径放到别人的计算机上执行。这时候,“病毒库特征码”技术的局限性就开始显露了,被感染了“私人后门”的用户偶尔会察觉到计算机异常,然后他会开始查毒,结果因为渗透进系统的后门程序并没有在病毒特征库里“登记”过,杀毒软件就认不出它了,用户只能在浪费大量时间后看着杀毒软件报告的“没有发现病毒”消息继续“享受”被入侵的感觉。这个事实可笑吗?我们只能在自己信赖的尼奥面前被敌人杀死——甚至这个尼奥也不复存在了,如果后门能把它踢出内存并删除掉的话。
还是那句话,能信任的人只有自己,更何况这是网络。所以,我们不能再战战兢兢的躲在掩体里等待救世主消灭所有敌人了,我们要做自己的救世主!
三. 捕获不请自来的“客人”
“600型机器人包裹的是橡胶外皮,很容易被认出来,但现在的101型机器人是生化技术制造的,有真实皮肤,会呼吸、流血、甚至口臭,一切都和人类一样,直到它开始攻击,你才能知道它不是人类。”
“那你们怎么办?”
“我们用狗识别终结者。”
——《终结者》
在《终结者》里,狗是唯一可以区分敌我的工具,因为它判断对方的方式并不仅仅靠眼睛——眼睛是可以被欺骗的,但是气息不能,一个机器人无论伪装得再怎么逼真,都不能具备生命体的气息,但是它能欺骗人类的视觉和听觉,这就足够了。
后门技术从诞生到现在,已经发展了好几代,对自身的伪装技术也越来越成熟了,从最初的启动项结合隐藏进程方式,到最新的Ring0驱动方式,我们越来越难发现这些“客人”的痕迹,当它开始破坏的时候,已经来不及做补救措施了,所以,我们需要一种可以嗅出后门气息的“狗”。
1.准备工作
在进行一切工作之前,用户需要对系统有点了解,例如注册表、启动项、服务、常见的程序和进程名等,这是学习手工查毒最基本的要求,在初期可以多参考一些介绍系统概念的文章如到处都流传的“系统进程详解”、“WinXP系统服务简介及优化措施”等,并做一点笔记,力求日积月累尽快记住一些最常见的系统程序和相关工具的使用方法,如果过不了这个门槛,后面的工作也就无从谈起。
首先,我们必须了解Windows系统的三大知识点:注册表(Registry)、进程(Process)和权限(Privilege)。
“注册表”是出现在Windows 95及以后版本的一种数据库。在这之前,用户要对软硬件工作环境进行配置,就要修改一种被称为“配置设置”(INI)的文件来完成,但是由于每种设备或应用程序都得有自己的INI文件,无形中增加了管理难度,为了解决这个问题,微软开始统一标准并将各种信息资源集中起来存储,最终形成了将应用程序和计算机系统配置信息容纳在一起的“注册表”,用来管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息和数据等,注册表维持着整个系统的正常运作。
注册表采用一种类似文件目录的结构树来描述配置信息,最顶端的5个项目称为“根键”(ROOT_KEY),系统能识别的所有的数据都是从它们这里展开的,这5个根键分别是:
HKEY_CLASSES_ROOT(负责各种组件注册类别和文件并联信息)
HKEY_CURRENT_USER(当前登录用户的环境信息)
HKEY_LOCAL_MACHINE(整个系统的公共环境信息)
HKEY_USERS(所有用户的环境配置信息)
HKEY_CURRENT_CONFIG(当前的配置信息)
其中,我们主要关注的是前面三个根键里的数据,它们是后门最爱篡改的地方,分别是三个启动项目“HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun”、“HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun”和“HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices”,一般的后门都要通过修改这里加入自己的配置信息以达到跟随系统启动的目的;除此之外就是文件并联信息“HKEY_CLASSES_ROOT”,并联型后门最爱更改这里的.exe、.bat、.scr、.com等可执行文件的注册信息,让自己抢先一步运行。更多涉及到的注册表内容以后会提到,现在让我们来看看进程是什么。
“进程”,是指一个可执行文件在运行期间请求系统在内存里开辟给它的数据信息块,系统通过控制这个数据块为运行中的程序提供数据交换和决定程序生存期限,任何程序都必须拥有至少一个进程,否则它不被系统承认。进程从某一方面而言就是可执行文件把自身从存储介质复制在内存中的映像,它通常和某个在磁盘上的文件保持着对应关系,一个完整的进程信息包括很多方面的数据,我们使用进程查看工具看到的“应用程序”选项卡包含的是进程的标题,而“进程”选项卡包含的是进程文件名、进程标识符、占用内存等,其中“进程文件名”和“进程标识符”是必须掌握的关键,“进程标识符”是系统分配给进程内存空间时指定的唯一数字,进程从载入内存到结束运行的期间里这个数字都是保持不变的,而“进程文件名”则是对应着的介质存储文件名称,根据“进程文件名”我们就可以找到最初的可执行文件位置。
最后是“权限”,这里涉及的权限是指80386模式的Ring权限。操作系统是由内核(Kernel)和外壳(Shell)两部分组成的,内核负责一切实际的工作,包括CPU任务调度、内存分配管理、设备管理、文件操作等,外壳是基于内核提供的交互功能而存在的界面,它负责指令传递和解释。由于内核和外壳负责的任务不同,它们的处理环境也不同,因此处理器提供了多个不同的处理环境,把它们称为运行级别(Ring),Ring让程序指令能访问的计算机资源依次逐级递减,目的在于保护计算机遭受意外损害——内核运行于Ring 0级别,拥有最完全最底层的管理功能,而到了外壳部分,它只能拥有Ring 3级别,这个级别能操作的功能极少,几乎所有指令都需要传递给内核来决定能否执行,一旦发现有可能对系统造成破坏的指令传递(例如超越指定范围的内存读写),内核便返回一个“非法越权”标志,发送这个指令的程序就有可能被终止运行,这就是大部分常见的“非法操作”的由来,这样做的目的是为了保护计算机免遭破坏,如果外壳和内核的运行级别一样,用户一个不经意的点击都有可能破坏整个系统。但是现在,Ring已经屡屡被后门木马利用成为一个令人头痛的凶器。
2.进程伪装型后门的歼灭
最初的后门靠注册“系统服务”的方法在Win9x系统里隐藏自己的运行信息,到了NT架构里,这个方法失效了——NT家族自带的任务管理器(Task Manager,TaskMgr.exe)把所有普通进程都一视同仁的显示出来,连初级用户都能轻易发现后门运行的痕迹,于是后门制造者开始攻克心理学和障眼法,让后门进程在任务管理器里把自己标榜为“系统关键进程”,达到欺骗用户的目的。
我们都知道,任务管理器列出的众多进程里包含着一部分“关键进程”,它们是无法通过任务管理器中止的,而且许多文章也会提到相关进程名,久而久之,我们又养成一个习惯:查看进程信息时,只要看到熟悉甚至类似的进程名就忽略不计了,仅仅去寻找不熟悉的进程名,于是后门制造者就直接利用这个心理暗角配合路径遍历法则,让后门进程显示为“smss.exe”、“svchost.exe”、“lsass.exe”、“csrss.exe”、“winlogon.exe”等关键进程名就欺骗了用户和任务管理器。
在这种情况下,系统自己的任务管理器已经不能信任了,因为它遗漏了最重要的路径信息,后门就利用了这一点——它可以把自己伪装成svchost.exe放到Windows目录下,然后在注册表启动项里加上不带路径信息的“svchost.exe”信息,系统在根据目录遍历法则一层层深入寻找svchost.exe时会在Windows目录里发现并执行它,而真正的关键进程svchost.exe是在SYSTEM32里的,而且它也必须通过“服务管理器”(Service Control Manager,SCM)加载,于是任务管理器会显示多个svchost.exe进程,但是由于缺乏路径指示,我们根本不知道系统已经多了一个假的svchost.exe。即使我们发现了它是假的,也无法用任务管理器终止它的运行,因为任务管理器只是简单的判断了文件名就认为它是“关键进程”了,自然不会让你终止。类似的后门伪装文件名还有“SYSTEM undll32.exe”、“SYSTEM32 undll.exe”(NT架构里根本没有rundll.exe这个程序)、“SYSTEMservices.exe”等,要发现并歼灭这些后门,除了要求我们对常见的系统关键进程有所了解以外,还需要第三方提供的扩展任务管理器协助,例如Windows优化大师携带的进程查看器,用它便可迅速发现路径不对的“假兄弟”。
其实最迅速的查找方法是运行“系统配置实用程序”(MSCONFIG.EXE),切换到“启动项”,如果在这里发现了“系统关键程序”的信息,那它一定是假的。
3.服务欺骗型后门的战役
Windows的任务管理器不可终止两种程序的运行:一种是关键进程,另一种是通过服务管理器SCM启动的系统服务程序(NT-Service),所以一部分后门制造者设法把后门做成服务形式,让SCM直接帮助启动服务进程,不再借用注册表启动项加载,这样即使是对注册表启动项有一定了解的用户也难以发现异常,而且就算他想终止任务管理器里显示的奇怪进程,也会被拒绝,如果用户对服务管理器的了解不深,那他将会在眼花缭乱的服务面前变得束手无策。
这时候,我们又需要请“系统配置实用程序”出山了,切换到“服务”选项卡,把“隐藏所有Microsoft服务”,这里就只显示非微软开发的普通服务程序列表了,包括服务欺骗型后门的服务项,一般它会包含欺骗性质的字符或者伪装成某厂商的服务名,如“Rising Virus Monitor”(瑞星监控)、“Macromedia License”等,记住这里显示的列表名称,接着运行“服务管理器”(Services.msc)找到对应的项目,看看属性里的文件和路径是不是真的,如果你并没有安装KAV、MCAFEE这些杀毒软件而SCM里却找到对应项目的话,它就是狡猾的后门没错了。一些间谍软件还会自作主张的把自己命名为“Windows Print Controller”,简直就是无视系统自身的“Print Spooler”服务。
找到这类后门后,不要急着终止它的运行,既然后门作者知道SCM能直接停止它们,就必然会做一些复活措施,所以我们必须先把后门服务的“启动类型”设置为“禁止”,然后重启一次确保后门程序无法跟随系统启动,这时候才能开始清理后门。其中文件的路径信息SCM已经提供给我们了,直接在磁盘上找到删除即可,但是服务项目不能直接用SCM删除,要删除这个残留的服务项,首先要对系统服务有个最初的概念。
官方对系统服务的定义如下:
在NT架构系统中,服务是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层(接近硬件)程序。通过网络提供服务时,服务可以在Active Directory中发布,从而促进了以服务为中心的管理和使用。服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。 既然服务自身也是独立出来的程序,它就必须有一个加载的入口,我们可以把这个入口理解为第二个启动项,这个入口是由SCM负责的,无论是什么身份的用户进入系统,SCM启动服务的位置都固定在注册表的HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices分支里,所以只要找这个分支就可以发现所有服务——也许你会说,这里显示的名字似乎都毫无意义,我怎么知道哪个是我正在找的?其实很简单,我们回到SCM,查看一个服务的属性,例如“DNS Client”服务,它的属性里写着“显示名称:DNS Client 服务名称:Dnscache”,现在回到注册表分支,查找“Dnscache”,就会看到它是CurrentControlSet ServicesDnscache,这就是我们在SCM里看到的“DNS Client”服务,如果你删除掉“Dnscache”项目,那么整个“DNS Client”服务也就消失了。以此类推,很快就可以清理掉服务欺骗型后门。
4.最艰难的寻找:Ring 0后门
随着安全技术的发展和计算机用户群的技术提高,一般的木马后门越来越难生存,于是一部分有能力的后门作者把眼光投向了系统底层——Ring 0。
位于Ring 0层的是系统核心模块和各种驱动程序模块,所以位于这一层的木马也是以驱动的形式生存的,而不是一般的EXE。后门作者把后门写成符合WDM规范(Windows Driver Model)的驱动程序模块,把自身添加进注册表的驱动程序加载入口,便实现了“无启动项”运行。一般的进程查看器都只能枚举可执行文件EXE的信息,所以通过驱动模块和执行文件结合的后门程序便得以生存下来,由于它运行在Ring 0级别,拥有与系统核心同等级的权限,因此它可以更轻易的把自己隐藏起来,无论是进程信息还是文件体,甚至通讯的端口和流量也能被隐藏起来,在如此强大的隐藏技术面前,无论是任务管理器还是系统配置实用程序,甚至系统自带的注册表工具都失去了效果,我们不得不借助于更强大的第三方工具。幸好,一部分持有编写Ring 0程序能力的人并没有加入Ring 0木马的阵营,而是把技术用到了安全检查方面,于是我们有了IceSword、RootkitRevealer、knlsc等优秀的检测工具。
一般的进程工具是运行在Ring 3级别的,它们读取的依据来自Ring 0层,这些数据是可以被运行于Ring 0级别的木马修改的,所以它们根本无法得知木马程序信息,而IceSword等检测工具不同,它们和Ring 0木马一样,也是通过驱动的模式进入Ring 0层工作的,不再需要从Ring 0层获取信息,所以它们能得到未被木马篡改的原始链表数据,例如最原始的进程信息,它是不能被更改的,如果木马把它自身从原始进程信息里删除,就意味着它要自我终结了。所以一旦有进程工具从 Ring 0层直接读取了原始数据,再把这个数据和Ring 3层获取到的进程列表比较一下,就能迅速发现哪个是拼命隐藏自身的木马程序了。很巧合的是,驱动程序和系统服务共享同一个加载入口,即HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices,只要查找相应的Ring 0木马文件名,就会发现它,删除掉注册表的加载数据后重新启动计算机,再删除掉木马文件就可以解决了。
5.清理不受欢迎的附属产品
“21世纪什么最贵?人才!”
——《天下无贼》
黎叔说的这句话固然无可厚非,只是他大概不知道,在21世纪的网络上,网民最恨的就是一部分利用歪点子制造“广告软件”(Adware)和“流氓/间谍软件”(Spyware)的“人才”。如今的网络已经被这些不受欢迎的软件使用捆绑战术给占领了,随便下载个共享工具,有点良心的会在安装界面里默认打上“安装附属产品”的勾,更多的则是一口气给你把所有附属工具都装上了,许多用户在安装了一些共享软件后,突然发现浏览器多了一堆这个条那个霸的,想要卸载时却发现所谓的卸载程序只是个把用户当小孩来哄的界面!可以说,这些恶意软件才是当今网络最令人厌恶的东西,“流氓软件猛于后门也”!
与各种后门木马的意图不同,恶意捆绑软件的立场是自家公司的利益,它们一般不会携带破坏性质的代码(但不代表没有),通常还会拥有一些号称“服务大众”的功能,这些功能或许可以让它得到一些用户的拥戴,但是这种光环并不能掩盖其“服务大众”背后的暴利黑幕。首先,恶意捆绑软件可以轻易收集到用户信息,任何一台被安装了“X手X霸X猪X搜”的计算机都不再与“个人隐私”这个词语有缘。其次,恶意捆绑软件可以借用广大计算机作为它无偿弹出公司广告的殖民地,如果每条广告都能给该软件背后的公司带来一点利润,那么一年下来这个公司就已经从广大用户群的身上搜刮到一大笔可观的钱财了。天下并没有免费的午餐,在你使用这些捆绑软件提供的“快捷服务”时,你就已经付出了代价。
最初,捆绑软件都比较单纯,仅仅使用BHO技术(Browser Helper Objects,浏览器辅助模块)把自己安家在浏览器上而已,但是现在,也许因为被用户清理得多了,一些公司恼羞成怒把ring 0级别的木马技术应用在了自家产品上,配合一种令人厌恶的强制安装技术,再利用金钱开路,让一些网站加载自己的产品,只要用户浏览某个页面,就会不知不觉被安装上一堆BHO,这已经不是一般的强盗行为了,而由于商业关系,一般的杀毒程序是不能去查杀它们的,即使它们与木马后门的特征无异,这时候,用户就要靠自己来了。
首先,浏览器的BHO加载项目是固定在系统目录的“Downloaded Program Files”文件夹里的,对于在浏览器上出现的栏目,只要简单的在这个文件夹里选中删除即可,但是其余残留文件就只能自行寻找了,由于制作恶意捆绑BHO的公司太多,文件存放位置也不同,这里无法给出很全面的删除方法,所以只能推荐两个工具:Upiea和RogueCleaner,使用它们即可快速卸载掉惹人讨厌的附属产品。
四. 生存法则
在森林里,鹿妈妈会警告小鹿不要去到太偏僻或者太远的地方玩耍,因为那里可能隐藏着恶狼。在网络上有更多的恶狼存在,但是却没有人能收到有效的警告。要成为自己的救世主,必须把那一份多余的好奇心收起来,直到已经掌握了清理“不速之客”的技术以后,方可放开好奇心到处看看,否则一不小心被自己的好奇心弄得系统出毛病了,又没法判断清理,最终恐怕还是会回到依赖杀毒软件的用户群去。最后还有一句恒古不变的真理:网络充满风险,勤打系统补丁。
相信看过《黑客帝国》系列的朋友都不会对主人公尼奥感到陌生,这位闯入虚拟世界的程序员一次又一次演绎了“救世主”的角色,保护了城市居民,其形象早已深入人心。
而离开电影后,我们广大的计算机用户要面对的又是另一种亦真亦假的数字虚拟世界——网络,这里同样潜伏着许多危险,同样存在“黑客帝国”,但这里却没有尼奥这个人的存在,我们能看到的,只有形形色色的安全厂商和他们所提供的安全工具,除此之外,似乎已经没有别的选择。
于是乎,许多用户把各种安全工具看成了这个世界中的“救世主”,我们看到许多关于安全工具的广告,我们购买市面上流行的防病毒软件,我们在听闻每周一次的“新病毒预警”时赶紧升级病毒特征库,我们每周都对电脑进行一次漫长的病毒扫描……许多人都这样做,许多人不得不这样做,因为我们把一切都交给杀毒工具了,我们什么都不需要做了,我们只管肆无忌弹的上网聊天看电影下软件,因为我们有杀毒工具,这些工具都具备一个“实时监测”的功能,它每时每刻都会检查我们刚下载的文件,我们感到自己很安全,我们以为这就是网络中的防御。
然而,事实真的如此美好吗?依稀记得有一句话好像是这么说的,“无论你做什么事情,你都不可避免要付出一定的代价”,在我们安然自得的享受由杀毒工具带来的安全防御的同时,我们也在付出相应的代价。为什么呢?因为杀毒工具是一套在系统启动的时候就开始运行直到关机或者用户退出它的时候才会停止运行的程序,它们的检测和防御机制的效率是不能和尼奥相比的。举个简单例子,学过编程的人大概都知道,象棋程序是最难写得完美的,因为象棋的走法从来都没有一个固定的模式,我们能创造出许多花样,但是程序不能,它只能按照有限的判断机制去决定每一步棋怎么走,这就是为什么如今的许多象棋程序看起来像个傻瓜的原因。有人也许会说,做一个强大的象棋程序把尽可能遇到的走法都写进去就可以了,这个象棋程序必然无敌。这样是可行的,但是由此带来的代价就是每个和它下棋的人可能都要花一辈子的时间了,因为程序在每走一步棋之前都要把所有尽可能遇到的情况都“思考”一遍,这样是要付出时间作为代价的,如果要缩短时间,就要让程序在同一时刻思考多种走法,但着时候,代价就变成庞大的系统资源消耗了——你能忍受么?
同样的缺陷正在杀毒软件身上发生,我们知道,大部分杀毒软件是采用“特征码”技术去搜索病毒的,就是说,杀毒软件引擎读取一个程序或文件内容,并与自身数据库里储存的已被确认为病毒程序体内某段特定代码进行匹配,一旦两者相同,杀毒软件就“确认”此文件为病毒。随着病毒家族的庞大,这个数据库体积的增长也到了不可忽视的地步,加载的速度也就慢了。而且数据库每增加一个病毒特征码,杀毒引擎的判断分支就要增多一条,相应的时间也会延长,为了避免出现扫描一个文件需要半小时的尴尬情况,杀毒软件会采用各种提高匹配速度的方案,但这些方案无一例外都要疯狂剥削用户的系统资源,如果一台电脑的配置并不是很高,那么在用户查毒的时候,他基本上已经不能正常做其他工作了,找个电视台慢慢看连续剧吧,这就是尼奥的代价。
那么,谁才是我们的救世主?答案就是——你自己。能信任的人永远只有自己,只要肯努力,每个人都可以做尼奥,不过这也是有代价的,因为它把系统资源的消耗转变为脑子的消耗,把判断分支和经验写入脑子里,在处理分支的效率上,人永远比程序要灵活,而且这样一来就不会出现依赖的恶性循环了,离开了杀毒软件,我们要学会靠自己来保护自己不被这个虚拟世界伤害到。现在,就让我们来做自己的救世主吧。
二. 做自己的救世主
小时候曾经看过一个故事《另一种侵略》,被人类打败的宇宙侵略者送给人类一种水晶,只要人类拿起它想一种物品,这个物品就会出现在自己面前,于是每个人都开始沉浸于无尽的享受中,再也没人去钻研科技国防了,几十年后,人类开始出现退化现象。这时候,宇宙侵略者又来访问地球了,这次它们只用了一条条鞭子就征服了地球,在最后一个人类被驱逐进囚笼之前,他回头含糊不清的说了句什么话——连他的舌头都退化得差不多了,也许他是说:“地球完了。”
以上的故事或许只是虚无的幻想,但类似的行为却正在当代发生,如果一个用户怀疑自己的电脑感染了后门,他的第一个反应大概会是打开杀毒工具。故事里的人类太依赖水晶的魔力,现实中的我们太依赖杀毒软件的方便快捷!也许有人会反对,既然能使用工具方便快捷的保护计算机安全,我又何必自寻烦恼学习安全防御?会这样想的用户没有想到网络的复杂,能闯进计算机的“客人”并非就是在各大安全工具厂商通缉名单上的成员,因为网络中还流传着一部分小规模使用而且没有被公开的“私人后门”(例如大部分DDoS后门工具其实都是自己写自己用的),有能力的人都可以自己写“私人后门”,然后通过多种途径放到别人的计算机上执行。这时候,“病毒库特征码”技术的局限性就开始显露了,被感染了“私人后门”的用户偶尔会察觉到计算机异常,然后他会开始查毒,结果因为渗透进系统的后门程序并没有在病毒特征库里“登记”过,杀毒软件就认不出它了,用户只能在浪费大量时间后看着杀毒软件报告的“没有发现病毒”消息继续“享受”被入侵的感觉。这个事实可笑吗?我们只能在自己信赖的尼奥面前被敌人杀死——甚至这个尼奥也不复存在了,如果后门能把它踢出内存并删除掉的话。
还是那句话,能信任的人只有自己,更何况这是网络。所以,我们不能再战战兢兢的躲在掩体里等待救世主消灭所有敌人了,我们要做自己的救世主!
三. 捕获不请自来的“客人”
“600型机器人包裹的是橡胶外皮,很容易被认出来,但现在的101型机器人是生化技术制造的,有真实皮肤,会呼吸、流血、甚至口臭,一切都和人类一样,直到它开始攻击,你才能知道它不是人类。”
“那你们怎么办?”
“我们用狗识别终结者。”
——《终结者》
在《终结者》里,狗是唯一可以区分敌我的工具,因为它判断对方的方式并不仅仅靠眼睛——眼睛是可以被欺骗的,但是气息不能,一个机器人无论伪装得再怎么逼真,都不能具备生命体的气息,但是它能欺骗人类的视觉和听觉,这就足够了。
后门技术从诞生到现在,已经发展了好几代,对自身的伪装技术也越来越成熟了,从最初的启动项结合隐藏进程方式,到最新的Ring0驱动方式,我们越来越难发现这些“客人”的痕迹,当它开始破坏的时候,已经来不及做补救措施了,所以,我们需要一种可以嗅出后门气息的“狗”。
1.准备工作
在进行一切工作之前,用户需要对系统有点了解,例如注册表、启动项、服务、常见的程序和进程名等,这是学习手工查毒最基本的要求,在初期可以多参考一些介绍系统概念的文章如到处都流传的“系统进程详解”、“WinXP系统服务简介及优化措施”等,并做一点笔记,力求日积月累尽快记住一些最常见的系统程序和相关工具的使用方法,如果过不了这个门槛,后面的工作也就无从谈起。
首先,我们必须了解Windows系统的三大知识点:注册表(Registry)、进程(Process)和权限(Privilege)。
“注册表”是出现在Windows 95及以后版本的一种数据库。在这之前,用户要对软硬件工作环境进行配置,就要修改一种被称为“配置设置”(INI)的文件来完成,但是由于每种设备或应用程序都得有自己的INI文件,无形中增加了管理难度,为了解决这个问题,微软开始统一标准并将各种信息资源集中起来存储,最终形成了将应用程序和计算机系统配置信息容纳在一起的“注册表”,用来管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息和数据等,注册表维持着整个系统的正常运作。
注册表采用一种类似文件目录的结构树来描述配置信息,最顶端的5个项目称为“根键”(ROOT_KEY),系统能识别的所有的数据都是从它们这里展开的,这5个根键分别是:
HKEY_CLASSES_ROOT(负责各种组件注册类别和文件并联信息)
HKEY_CURRENT_USER(当前登录用户的环境信息)
HKEY_LOCAL_MACHINE(整个系统的公共环境信息)
HKEY_USERS(所有用户的环境配置信息)
HKEY_CURRENT_CONFIG(当前的配置信息)
其中,我们主要关注的是前面三个根键里的数据,它们是后门最爱篡改的地方,分别是三个启动项目“HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun”、“HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun”和“HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices”,一般的后门都要通过修改这里加入自己的配置信息以达到跟随系统启动的目的;除此之外就是文件并联信息“HKEY_CLASSES_ROOT”,并联型后门最爱更改这里的.exe、.bat、.scr、.com等可执行文件的注册信息,让自己抢先一步运行。更多涉及到的注册表内容以后会提到,现在让我们来看看进程是什么。
“进程”,是指一个可执行文件在运行期间请求系统在内存里开辟给它的数据信息块,系统通过控制这个数据块为运行中的程序提供数据交换和决定程序生存期限,任何程序都必须拥有至少一个进程,否则它不被系统承认。进程从某一方面而言就是可执行文件把自身从存储介质复制在内存中的映像,它通常和某个在磁盘上的文件保持着对应关系,一个完整的进程信息包括很多方面的数据,我们使用进程查看工具看到的“应用程序”选项卡包含的是进程的标题,而“进程”选项卡包含的是进程文件名、进程标识符、占用内存等,其中“进程文件名”和“进程标识符”是必须掌握的关键,“进程标识符”是系统分配给进程内存空间时指定的唯一数字,进程从载入内存到结束运行的期间里这个数字都是保持不变的,而“进程文件名”则是对应着的介质存储文件名称,根据“进程文件名”我们就可以找到最初的可执行文件位置。
最后是“权限”,这里涉及的权限是指80386模式的Ring权限。操作系统是由内核(Kernel)和外壳(Shell)两部分组成的,内核负责一切实际的工作,包括CPU任务调度、内存分配管理、设备管理、文件操作等,外壳是基于内核提供的交互功能而存在的界面,它负责指令传递和解释。由于内核和外壳负责的任务不同,它们的处理环境也不同,因此处理器提供了多个不同的处理环境,把它们称为运行级别(Ring),Ring让程序指令能访问的计算机资源依次逐级递减,目的在于保护计算机遭受意外损害——内核运行于Ring 0级别,拥有最完全最底层的管理功能,而到了外壳部分,它只能拥有Ring 3级别,这个级别能操作的功能极少,几乎所有指令都需要传递给内核来决定能否执行,一旦发现有可能对系统造成破坏的指令传递(例如超越指定范围的内存读写),内核便返回一个“非法越权”标志,发送这个指令的程序就有可能被终止运行,这就是大部分常见的“非法操作”的由来,这样做的目的是为了保护计算机免遭破坏,如果外壳和内核的运行级别一样,用户一个不经意的点击都有可能破坏整个系统。但是现在,Ring已经屡屡被后门木马利用成为一个令人头痛的凶器。
2.进程伪装型后门的歼灭
最初的后门靠注册“系统服务”的方法在Win9x系统里隐藏自己的运行信息,到了NT架构里,这个方法失效了——NT家族自带的任务管理器(Task Manager,TaskMgr.exe)把所有普通进程都一视同仁的显示出来,连初级用户都能轻易发现后门运行的痕迹,于是后门制造者开始攻克心理学和障眼法,让后门进程在任务管理器里把自己标榜为“系统关键进程”,达到欺骗用户的目的。
我们都知道,任务管理器列出的众多进程里包含着一部分“关键进程”,它们是无法通过任务管理器中止的,而且许多文章也会提到相关进程名,久而久之,我们又养成一个习惯:查看进程信息时,只要看到熟悉甚至类似的进程名就忽略不计了,仅仅去寻找不熟悉的进程名,于是后门制造者就直接利用这个心理暗角配合路径遍历法则,让后门进程显示为“smss.exe”、“svchost.exe”、“lsass.exe”、“csrss.exe”、“winlogon.exe”等关键进程名就欺骗了用户和任务管理器。
在这种情况下,系统自己的任务管理器已经不能信任了,因为它遗漏了最重要的路径信息,后门就利用了这一点——它可以把自己伪装成svchost.exe放到Windows目录下,然后在注册表启动项里加上不带路径信息的“svchost.exe”信息,系统在根据目录遍历法则一层层深入寻找svchost.exe时会在Windows目录里发现并执行它,而真正的关键进程svchost.exe是在SYSTEM32里的,而且它也必须通过“服务管理器”(Service Control Manager,SCM)加载,于是任务管理器会显示多个svchost.exe进程,但是由于缺乏路径指示,我们根本不知道系统已经多了一个假的svchost.exe。即使我们发现了它是假的,也无法用任务管理器终止它的运行,因为任务管理器只是简单的判断了文件名就认为它是“关键进程”了,自然不会让你终止。类似的后门伪装文件名还有“SYSTEM undll32.exe”、“SYSTEM32 undll.exe”(NT架构里根本没有rundll.exe这个程序)、“SYSTEMservices.exe”等,要发现并歼灭这些后门,除了要求我们对常见的系统关键进程有所了解以外,还需要第三方提供的扩展任务管理器协助,例如Windows优化大师携带的进程查看器,用它便可迅速发现路径不对的“假兄弟”。
其实最迅速的查找方法是运行“系统配置实用程序”(MSCONFIG.EXE),切换到“启动项”,如果在这里发现了“系统关键程序”的信息,那它一定是假的。
3.服务欺骗型后门的战役
Windows的任务管理器不可终止两种程序的运行:一种是关键进程,另一种是通过服务管理器SCM启动的系统服务程序(NT-Service),所以一部分后门制造者设法把后门做成服务形式,让SCM直接帮助启动服务进程,不再借用注册表启动项加载,这样即使是对注册表启动项有一定了解的用户也难以发现异常,而且就算他想终止任务管理器里显示的奇怪进程,也会被拒绝,如果用户对服务管理器的了解不深,那他将会在眼花缭乱的服务面前变得束手无策。
这时候,我们又需要请“系统配置实用程序”出山了,切换到“服务”选项卡,把“隐藏所有Microsoft服务”,这里就只显示非微软开发的普通服务程序列表了,包括服务欺骗型后门的服务项,一般它会包含欺骗性质的字符或者伪装成某厂商的服务名,如“Rising Virus Monitor”(瑞星监控)、“Macromedia License”等,记住这里显示的列表名称,接着运行“服务管理器”(Services.msc)找到对应的项目,看看属性里的文件和路径是不是真的,如果你并没有安装KAV、MCAFEE这些杀毒软件而SCM里却找到对应项目的话,它就是狡猾的后门没错了。一些间谍软件还会自作主张的把自己命名为“Windows Print Controller”,简直就是无视系统自身的“Print Spooler”服务。
找到这类后门后,不要急着终止它的运行,既然后门作者知道SCM能直接停止它们,就必然会做一些复活措施,所以我们必须先把后门服务的“启动类型”设置为“禁止”,然后重启一次确保后门程序无法跟随系统启动,这时候才能开始清理后门。其中文件的路径信息SCM已经提供给我们了,直接在磁盘上找到删除即可,但是服务项目不能直接用SCM删除,要删除这个残留的服务项,首先要对系统服务有个最初的概念。
官方对系统服务的定义如下:
在NT架构系统中,服务是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层(接近硬件)程序。通过网络提供服务时,服务可以在Active Directory中发布,从而促进了以服务为中心的管理和使用。服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如客户端/服务器应用程序、Web服务器、数据库服务器以及其他基于服务器的应用程序。 既然服务自身也是独立出来的程序,它就必须有一个加载的入口,我们可以把这个入口理解为第二个启动项,这个入口是由SCM负责的,无论是什么身份的用户进入系统,SCM启动服务的位置都固定在注册表的HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices分支里,所以只要找这个分支就可以发现所有服务——也许你会说,这里显示的名字似乎都毫无意义,我怎么知道哪个是我正在找的?其实很简单,我们回到SCM,查看一个服务的属性,例如“DNS Client”服务,它的属性里写着“显示名称:DNS Client 服务名称:Dnscache”,现在回到注册表分支,查找“Dnscache”,就会看到它是CurrentControlSet ServicesDnscache,这就是我们在SCM里看到的“DNS Client”服务,如果你删除掉“Dnscache”项目,那么整个“DNS Client”服务也就消失了。以此类推,很快就可以清理掉服务欺骗型后门。
4.最艰难的寻找:Ring 0后门
随着安全技术的发展和计算机用户群的技术提高,一般的木马后门越来越难生存,于是一部分有能力的后门作者把眼光投向了系统底层——Ring 0。
位于Ring 0层的是系统核心模块和各种驱动程序模块,所以位于这一层的木马也是以驱动的形式生存的,而不是一般的EXE。后门作者把后门写成符合WDM规范(Windows Driver Model)的驱动程序模块,把自身添加进注册表的驱动程序加载入口,便实现了“无启动项”运行。一般的进程查看器都只能枚举可执行文件EXE的信息,所以通过驱动模块和执行文件结合的后门程序便得以生存下来,由于它运行在Ring 0级别,拥有与系统核心同等级的权限,因此它可以更轻易的把自己隐藏起来,无论是进程信息还是文件体,甚至通讯的端口和流量也能被隐藏起来,在如此强大的隐藏技术面前,无论是任务管理器还是系统配置实用程序,甚至系统自带的注册表工具都失去了效果,我们不得不借助于更强大的第三方工具。幸好,一部分持有编写Ring 0程序能力的人并没有加入Ring 0木马的阵营,而是把技术用到了安全检查方面,于是我们有了IceSword、RootkitRevealer、knlsc等优秀的检测工具。
一般的进程工具是运行在Ring 3级别的,它们读取的依据来自Ring 0层,这些数据是可以被运行于Ring 0级别的木马修改的,所以它们根本无法得知木马程序信息,而IceSword等检测工具不同,它们和Ring 0木马一样,也是通过驱动的模式进入Ring 0层工作的,不再需要从Ring 0层获取信息,所以它们能得到未被木马篡改的原始链表数据,例如最原始的进程信息,它是不能被更改的,如果木马把它自身从原始进程信息里删除,就意味着它要自我终结了。所以一旦有进程工具从 Ring 0层直接读取了原始数据,再把这个数据和Ring 3层获取到的进程列表比较一下,就能迅速发现哪个是拼命隐藏自身的木马程序了。很巧合的是,驱动程序和系统服务共享同一个加载入口,即HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices,只要查找相应的Ring 0木马文件名,就会发现它,删除掉注册表的加载数据后重新启动计算机,再删除掉木马文件就可以解决了。
5.清理不受欢迎的附属产品
“21世纪什么最贵?人才!”
——《天下无贼》
黎叔说的这句话固然无可厚非,只是他大概不知道,在21世纪的网络上,网民最恨的就是一部分利用歪点子制造“广告软件”(Adware)和“流氓/间谍软件”(Spyware)的“人才”。如今的网络已经被这些不受欢迎的软件使用捆绑战术给占领了,随便下载个共享工具,有点良心的会在安装界面里默认打上“安装附属产品”的勾,更多的则是一口气给你把所有附属工具都装上了,许多用户在安装了一些共享软件后,突然发现浏览器多了一堆这个条那个霸的,想要卸载时却发现所谓的卸载程序只是个把用户当小孩来哄的界面!可以说,这些恶意软件才是当今网络最令人厌恶的东西,“流氓软件猛于后门也”!
与各种后门木马的意图不同,恶意捆绑软件的立场是自家公司的利益,它们一般不会携带破坏性质的代码(但不代表没有),通常还会拥有一些号称“服务大众”的功能,这些功能或许可以让它得到一些用户的拥戴,但是这种光环并不能掩盖其“服务大众”背后的暴利黑幕。首先,恶意捆绑软件可以轻易收集到用户信息,任何一台被安装了“X手X霸X猪X搜”的计算机都不再与“个人隐私”这个词语有缘。其次,恶意捆绑软件可以借用广大计算机作为它无偿弹出公司广告的殖民地,如果每条广告都能给该软件背后的公司带来一点利润,那么一年下来这个公司就已经从广大用户群的身上搜刮到一大笔可观的钱财了。天下并没有免费的午餐,在你使用这些捆绑软件提供的“快捷服务”时,你就已经付出了代价。
最初,捆绑软件都比较单纯,仅仅使用BHO技术(Browser Helper Objects,浏览器辅助模块)把自己安家在浏览器上而已,但是现在,也许因为被用户清理得多了,一些公司恼羞成怒把ring 0级别的木马技术应用在了自家产品上,配合一种令人厌恶的强制安装技术,再利用金钱开路,让一些网站加载自己的产品,只要用户浏览某个页面,就会不知不觉被安装上一堆BHO,这已经不是一般的强盗行为了,而由于商业关系,一般的杀毒程序是不能去查杀它们的,即使它们与木马后门的特征无异,这时候,用户就要靠自己来了。
首先,浏览器的BHO加载项目是固定在系统目录的“Downloaded Program Files”文件夹里的,对于在浏览器上出现的栏目,只要简单的在这个文件夹里选中删除即可,但是其余残留文件就只能自行寻找了,由于制作恶意捆绑BHO的公司太多,文件存放位置也不同,这里无法给出很全面的删除方法,所以只能推荐两个工具:Upiea和RogueCleaner,使用它们即可快速卸载掉惹人讨厌的附属产品。
四. 生存法则
在森林里,鹿妈妈会警告小鹿不要去到太偏僻或者太远的地方玩耍,因为那里可能隐藏着恶狼。在网络上有更多的恶狼存在,但是却没有人能收到有效的警告。要成为自己的救世主,必须把那一份多余的好奇心收起来,直到已经掌握了清理“不速之客”的技术以后,方可放开好奇心到处看看,否则一不小心被自己的好奇心弄得系统出毛病了,又没法判断清理,最终恐怕还是会回到依赖杀毒软件的用户群去。最后还有一句恒古不变的真理:网络充满风险,勤打系统补丁。
武装到牙齿 07个人电脑安全配置手册
[ 2007-03-25 02:56:05 | 作者: sun ]
前言
几年前在社区中也发过类似的帖子,但是之后时间由于各种原因并没更新重发。今年由于熊猫的原因我决定发布新版本的安全手册。
本贴仅面相普通的计算机使用用户,说以我尽量避免使用复杂的系统设置图解而是尽可能用第三方软件代替。软件的使用宗旨也是尽量使用免费软件和中文软件。
思路我的重点并没有放到查杀上,而是注重防上。一切都围绕这个主题进行。
由于这是一个很庞杂的帖子,一次不可能完成所以帖子会不断进行更新,某些内容可能来源其它网友我会尽可能署上作者姓名,如有 相关问题请联系我:)更新前后会效仿软件的版本号的形式注明。我已经向社区的版主征集相关的稿件,并会把相关的内容及时更新上来。
面相对象
目前本贴仅面相单机普通个人用户的系统安全。但是考虑到很多朋友已经拥有二台或两台以上的计算机设备,而且多机联网可以有更大的安全空间,和更多安全选择以及更好的安全效果。说以相关的内容会在后面的时间更新(已经在朋友那里组建完毕三机〔两台式一笔记本〕测试平台,目前正在测试并收集相关的数据)
系统安装前
分区应该是大家在安装系统前最先碰到的一个问题,也是第一个被大家忽略的问题。给大家的意见就是系统盘也就是大家说的c盘应该在10G左右考虑到新系统(VISTA)可适当的扩展到15G。而工具盘也是说的D盘也应该在10G左右的空间。剩下的盘符大家可以自便,但是最后一个区空间应该适当的大一些因为我们用它来作资料备份使用。
磁盘格式的选择
强烈建议大家的把C,D两个盘符分成NTFS格式。因为WINDOWS的安全全都是建立在NTFS基础之上的。抛弃了NTFS也就不要谈什么安全了(大家注意的是使用NTFS格式后在 DOS下是 看不到NTFS分区的,你看到的C:应该是NTFS分区之后的那FAT32个区,但是借助其它软件也可以查看DOS下的 NTFS的 数据)但是我也不推荐全部分区都使用NTFS,因为这样你备份以及一些其它的操作可能会受到一些影响。所以个人的意见是把最后一个区也就是备份区分成FAT32。
系统选择
微软的VISTA系统已经上市了,但是由于其极高的硬件要求更因为第三方软件软件兼容性上的问题。我们暂时没有选择VISTA而是选择成熟的 WINDOWS XP SP2 PRO。(放弃了2003是因为其设置上对于很多用户是巨大的瓶颈,而且2003对很多软件尤其是安全软件都存在兼容性的问题。但是在以后涉及到多机安全上我们将涉及2003或服务器版本的 VISTA)
系统安装
对于普通用户来说系统安装是最简单的问题了,看似没有说的必要。但是往往问题都是出在我们忽略的小事情上。比如系统,补丁,驱动等的安装顺序上。我的建议是系统→SP补丁(当然目前的XPSP2已经没有必要)→Microsoft .NET Framework,IE, Windows Media Player更新包→安全更新→驱动的顺序进行安装。当然并不是说你不安这个顺序安装有什么问题,但是这样作做少会降低很多不必要的隐患。
首次备份时间点
这样安装完驱动后,我们的系统就基本本宣告安装完毕了。此时建议你使用备份软件对系统进行备份,并最好把备份文件进行光盘存档。
软件提示
由于众所周知的问题,在进行以上安装的时候用户会碰到第一个棘手的问题。就是无法下载WINDOWS的安全更新!此时建议相关的用户安装Windows Updates Downloader,该软件是免费软件,首次使用需要到其官方网站下载相应语言版本的文件(有WINDOWS和OFFICE二种)之后就可以点击DOWNLOAD更新,它不仅仅提供安全更新,还提供SERVICE PACKS(也就是SP)更新和FRAMEWORK更新。唯一需要注意的就是该软件不会检测你 系统中已经安装的补丁,它之会把所有更新全部列出,所以用户下载时请酌情下载相应的补丁。它还会下载非关键更新OTHER:)但是不一定没有用,很有意思哦!
操作系统设置
以前是非常难说的问题,也是最费笔墨的一个部分。但是现在有了XP-ANTISPY这个软件一切都变的非常简单了!它同样也是一个免费软件,它将系统设置的各个的方面以选项的的 形式放在用户面前,最让人兴奋的的 是每个选项作者都给出了详细说明,用户根据提示就可以把为复杂的系统的设置变成简单的点击。
非管理员账户的创建及设置
说VISTA的安全性的 提高,一个重要的原因就是。微软借鉴LINUX的对管理员账户进行严格管制的思路,不让用户直接进入管理员账户即使要进入也输入密码……其实我们在非VISTA系统也可以这样作。(由于时间的关系该内容以后更新)
密码管理
前言
为什么要设置密码,很多用户都不去设置密码或设置简单得罪你密码都是为了方便。但是在实际情况中,用户拥有什么权限病毒木马就有什么样的权限。没有权限控制的的计算机也就对病毒木马全开绿灯。最关键是用户不要以为有了安全软件和防火墙就可以不设置密码了因为这是完全没有关系的二个安全体系。由于密码设置的特使原因我无法对所有的密码管理都进行详尽的设置,用户最好根据自己的软、硬件使用说明以及自己的使用情况进行设置!但是唯一要提醒用户你自己最好不要忘记自己设置的密码:)
系统账户密码
首先我们必须要对ADMINISTRATOR账户进行密码设置而且密码应该是12位以上(因为木马病毒都带有弱口令密码字典,而且黑客账户都带有各种密码字典在可接受的时间内它们可以暴力破解95%以上的用户密码)。而且在我的电脑→管理→计算机管理→“本地用户和组”中用户应该停用除ADMINISTRATOR账外的所有账户比如GUEST账户,即使用户需要某些账户也应该对这些账户设置足够强健的密码。
请给你的安全软件设置密码
在安全软件中很多软件都有密码控制的选项,用户很多时候都没有理会。但是为了这些软件自身的安全以及保护你的软件设置请给你的安全软件设置密码。
硬件密码
ADSL MODEM在默认情况下都有默认的出厂密码,一些别有用心的人就可以通过这个“漏洞”控制并攻击用户!所以请参照你的硬件说明更改密码!
安全软件的选择
前言
对于防病毒软件来说,没有什么完美的软件。甚至在一线和二线厂商之间也没有什么大的分别。因为几乎每一个我们知道或不知道的厂商都有自己独特的反病毒技术,正是因为这种理念的不同就使的各个软件在不同方面都有自己的优点及缺陷。对于用户来说没有最好的,只有最适合自己的。当然这种分寸拿捏是需要用户对自己系统了解,以及对各个软件长时间反复测试才能的出。对于普通用户来说这显然是很困难的。所以我给出是一个最大众化的配置,它在各个方面都不会是最出色的配置,但是它也应该是综合性能最优秀的一个。
普通用户方案
主杀毒软件
瑞星二??七
并非是因为我是IKAKA的版主或因为本贴是在社区首发,而推荐瑞星二??七的。因为这个版本的瑞星改进的脱壳程序完善了网友对瑞兴诟病最多的木马查杀环节,使用“碎甲”技术,完善了启发查毒以及对虚拟机的成功应用,这一切都让瑞星成了用户的不二选择。而且只要对瑞星进行合理的设置就基本可以抵御用户面对安全问题。
安全建议:社区有不少二??七优化方案的 帖子大家最好看看:)
辅助杀毒
这里的杀毒软件仅仅是对 主杀毒软件的一个补充,因为目前的安全形式已经很难让用户用单一的安全手段面对日益增长威胁。辅助杀毒一般不会有实时监控程序即使有也建议用户取消,仅仅只在下载新软件后手动调用辅助杀毒程序进行查杀(也就是鼠标右键)
推荐1
Cureit它是鼎鼎大名的Dr.web的 免费版。Dr.web是俄科学院研制供俄罗斯军方专业的杀毒软件,其引擎对木马脱壳能力应该是众多杀毒软件中最强大的,即使是卡巴斯基单从引擎上 说也逊色三分。Cureit根Dr.web的 区别仅仅是没有实时监控程序,其它诸如引擎和病毒库上都是完全相同的。
优点:完全免费,资源占用少 缺点:没有中文版。
推荐二
**
**就不用说了,其根瑞星的渊源我也不用细细道来了,选用**的理由很简单就是其设计的初衷!一款主动防御软件。具体的 说明大家有兴趣可以到其官方网站了解。
优点:国货!对主杀毒程序兼容好 缺点:付费软件,资源占用稍大。
防火墙
前言
没有安全的墙!目前大家对防火墙评测基本都是国外网站的测试的结果,而且流行的无非都是那几款。但是非常遗憾的告诉大家这些墙都有或大或小的安全BUG,而且即使是ZA这种被网友“力捧”的墙在其设计构架中都存在致命的缺陷。最关键不是你看别人说什么墙好,而是你了解什么墙你会用什么墙。
瑞星二??七防火墙
又是瑞星?没错!首先它是瑞星杀毒软件标准版中就附带,而且经过不断的改进瑞星防火墙已经成为一款成熟的产品。瑞星杀毒软件+瑞星防火墙+注册表监控,用户只要运用好这3样工具就基本可以从容的应付常见的安全威胁。
社区有网友提供瑞星防火墙规则包建议大家安装,不错的:)有时间我可能会更新一个新包上来:)
花絮:一样的外衣不一样的心
很多人都关系某某部门用了什么软件或军方用了什么软件,其实这完全没有什么意义因为首先你不可能享受到想这些部门一样的服务。其次这些杀毒软件的DAT或防火墙的规则你是根本就接触甚至看不到的。编译好自己的规则才时最关键的。
HIPS一
什么是HIPS
HIPSPS(主机入侵防御体系),也被称为系统防火墙,今年开始在比较专业的用户中开始流行,甚至一些杀毒软件厂商研究新病毒的时候都用它们来最终分析。HIPS可以控制限制进程调用,或者禁止更改或者添加注册表文件。当某进程或者程序试图偷偷运行时,这个行为就会被所HIPS检测,然后弹出警告,询问用户是否允许运行。如果用户拥有足够的软件和系统进程方面知识的情况下,利用HIPS软件能非常有效的防止木马或者病毒的偷偷运行。如果运用的好甚至可以摆脱对杀毒软件的依靠!(现在开始风行的行为杀毒其实就是HIPS功能的智能化)。的功能分类有Application Defend(简称AD)应用程序防御体系, Registry Defend(简称RD)注册表防御体系(比如瑞星的注册表监控), File Defend(简称FD)文件防御体系三类。
第一次使用HIPS时用户进行各种操作软件都会有提示,用户安提示操作就可以了以后只要文件没有被病毒或木马破坏就不会有相关的提示,但是这也要求使用HIPS一定要不怕麻烦,并能认真阅读HIPS的提示信息。否则HIPS对你不但没有什么帮助,也会徒增你的烦恼
推荐
System Safety Monitor(简称SSM)是目前最红的HIPS软件,经过几年的开发,现在SSM2.2已经基本成熟了,系统资源占用也越来越少,它拥有AD和RD功能,可以察看运行程序的父子关系,就是界面设计的有些烦琐,上手比较麻烦,拥有MD5和更强大的256位SHA效验算法可以选择。同时也有中文语言包,虽然价格比较高,但是还有免费的版本提供,不过少了磁盘底层写入监视和RD(正因为瑞星又RD功能,所以我推荐SSM作为普通用户方案HIPS的搭配)
注意:SSM有付费和免费两种版本,免费版仅缺少几项项监控。用户可根据自己的情况选择!建议大家用免费版本:)
第二次备份时间点
使用上述软件对 系统进行完全扫描后,用户就可以进行第二次的备份操作!备份文件直接备份备份区分即可刻在光盘上也不错:)
免费方案
免费软件已经不是一个陌生的名词,免费的安全盛宴也不可不称“丰富”。用好这些免费软件你同样可以拥有安全。还是那句话没有最好的软件,只有最合理的使用方法。
PS:根据免费软件的使用协议,您如果使用后依然中毒,或导致系统冲突,进而引起数据损毁甚至硬件损坏等不良后果一概由您自行承担。因此如果您对软件尚不甚了解,请到论坛各专区学习,或请专人指导,或发帖求助。同样出于时间的问题我也无法给出这些软件的兼容性测试。建议用户首次使用时仅用在学习交流测试中。
主杀毒软件
推荐1
AntiVir PersonalEdition Classic就是网友说的“小红伞”。一款来自德国的安全产品今年在瑞星参加过的德国的AV-test测试上基本保持第一第二的地位。它的免费版杀毒软件也只是少了很少功能,引擎和病毒库和收费版本完全相同。在国际上非常有名,在国内更是有着不小的影响。在免费杀毒软件首推AntiVir是因为其是以出色的启发”查毒。
PS: Classic是免费版本Premiun是付费版本,还有免费版也显示有时限日期不用理会到时软件会自动更新新的授权。
优点:免费难道不是最大优点吗?缺点:没有中文版
推荐2
捷克的AVG Anti-Virus是欧洲著名的杀毒软件,今年发布的7.5版本功能全面,无论是启发还是特征码杀毒技术都很成熟。它可能是提供了功能缩水最少的免费版杀毒软件,只是有部分功能无法设定,其它都和收费版本相同!
优点:同上 缺点:同上
PS:免费的国产杀毒软件有“东方卫士”抵抗英文的朋友可以用一下。
辅助杀毒
推荐一
罗马尼亚BitDefender Antivirus 8 Free Edition其实它也很有明,其付费版我 也曾经试用过,感觉很不错:)号称世界上病毒库最多的安全软件
PS: 繁体中文版下www.bitdefender.com.hk/site/Main/view/Download-Free-Products.html
优点:繁体中文也是中文呀! 缺点:没有监控所以用在辅助杀毒也不是问题了……
推荐二
Novatix Cyberhawk这个是什么什么东东?嘿嘿!它就是美国版的WEIDIAN但是人家是免费的!
优点:免费的主动防御工具 缺点:没有中文版
防火墙
前言
免费的防火墙实在是太多太多了,热评排名的帖子有很多但是针对免费防火墙测试帖子还没有看到。但是就是有谁又能知道其权威性呢?还是那句最关键不是你看别人说什么墙好,而是你了解什么墙你会用什么墙。
推荐一
费尔防火墙3.0
我个人力推的免费软件,最近更新了3.0界面和性能都有很大的提高,极力推荐大家试用一下。其它国产防火墙风云,傲盾等等都有自己令人称道一面大家可以根据自己的需要试用。
优点:国产软件
推荐二
Comodo Personal Firewall Pro来自英国的功能强大、高效而容易使用的防火墙,提供了针对网络和个人用户的最高级别的保护,从而阻挡黑客的进入和个人资料的泄露。以上都是官方的说法……但是推荐的理由完全是另一个原因,因为科摩多防火墙是第一个在内置国际语言中有中文的软件!!!
优点:新墙,老外的但是支持中文没有什么理由不试一试。
HIPS二
ProSecurity是今年发布的新东东,当前的是1.25版。它占用系统资源很少,设定也很简单。同时拥有了AD和RD功能。稳定也不错,对于AD控制采用了先进的SHA效验技术,也提供了免费版本。用够了SMM吗?用ProSecurity吧!
优点:免费而且有直接支持中文哦!
虚拟还原
有社区的朋友说上面的方法都非常的麻烦,使用杀毒软件+防火墙+虚拟机的组合,的确目前还是没有可以感染虚拟机的病毒,但是个人认为这样组合在某些方面是不错但是仍有些问题让人挠头。我依旧给出一个软件但是比虚拟机要方便一些。
推荐
PowerShadow Master。它是原联想部门经理鲍禹卿开发的,它开发出影子系统后,在国内共享软件难以见到收益的环境下,暂时放弃国内市场,开发英文版并在欧美市场采用代理方式销售后,现在软件认知度很高,国内渐渐也有很多用户。在2006年底,鲍禹卿决定将这款优秀软件打入中国市场,以获得更庞大的用户群,如果是个人用户使用,它还是免费的!
它有两种模式:一种是保护系统分区,一切对系统的更改在下次启动后全部无效,对非系统分区的更改是有效的,一种是全盘保护模式。它独创的影子模式让真正的系统具有隐身的能力,使你拥有一个真正自修复免维护的系统。