存储过程之外:SQL注入深入防御
[ 2007-03-25 04:12:59 | 作者: sun ]
几年以前,对开发者提及”SQL注入”或者要求采取一个”深入防御”的措施,你大概会遭白眼。如今,越来越多的人听过”SQL注入”攻击而且开始关注这些攻击出现带来的潜在危险,但是大多数开发者仍然欠缺如何防止SQL注入攻击的知识,而当问及他们的应用软件如何防御SQL注入时,他们通常回答:“很简单,只要使用存储过程”。我们可以预见的是,使用存储过程对于你的防御策略来说是非常好的开端,但是仅此一步却不够。你需要采用一个深入防御策略。
如果你不熟悉SQL注入攻击和它们对你的应用软件的潜在危险,请参考MSDN的文章 “SQLInjection” (http://msdn2.microsoft.com/en-us/library/ms161953.aspx)。
仅仅依赖存储过程而无法执行一个深入防御的问题在于你真的只指望存储过程开发者为你提供安全。类似于下面SQLServer代码用来鉴别一个用户的存储过程非常常见:
Alter PROCEDURE LoginUser
(
@UserID [nvarchar](12),
@Password [nvarchar](12)
)
AS
Select * FROM Users Where UserID = @UserID AND Password = @Password
RETURN
这个存储过程看起来非常安全,但是考虑一下这个:
Alter PROCEDURE LoginUser
(
@UserID [nvarchar](12),
@Password [nvarchar](12)
)
AS
EXECUTE (‘Select * FROM Users Where UserID = ‘’’ + @UserID + ‘’’
AND Password = ‘’’ + @Password + ‘’’’)
RETURN
通过创建一个特别的SQL声明,而且把它放到存储过程代码的EXECUTE函数中,我们真的可以生成一个存储过程SQL注入。当你使用控制代码来写存储过程的时候,这个更加容易,它在Microsoft SQL Server 2005中以新的方式支持:
[Microsoft.SqlServer.Server.SqlProcedure]
public static void LoginUser(SqlString userId, SqlString password)
{
using (SqlConnection conn = new SqlConnection(“context connection=true”))
{
SqlCommand selectUserCommand = new SqlCommand();
selectUserCommand.CommandText = “Select * FROM Users Where UserID = ‘”
+ userId.Value + “’ AND Password = ‘” + password.Value + “’”;
selectUserCommand.Connection = conn;
conn.Open();
SqlDataReader reader =
selectUserCommand.ExecuteReader();
SqlContext.Pipe.Send(reader);
reader.Close();
conn.Close();
}
}
甚至就算你是写存储过程的那个人,你通常不能确定其他人会在你后面在应用软件配置以后改变代码。关于Web应用这尤其可能,而这也是为什么一个需要一个深入防御策略。
明显地,这个问题的解决是采用一个深入防御策略。你应该继续使用存储过程和参数化任何有必要的查询,但是你也应该设法建立你的深入防御策略来保证传给这些存储过程的的参数和查询的验证。在我们上面的用户鉴定例子中,“bobsmith”可能是一个有效的用户ID,但是“Select * FROM tblCreditCards”或许不是。对于验证用户输入使用你的深入防御策略的一个好的方式是对它采用规范化的表达规则。你能使用在System.Web.UI.WebControls名字空间中的RegularExpressionValidator控制寻找来验证Web表格数据,而且你可以使用在theSystem.Text.RegularExpressions 名字空间中Regex类寻找来验证任何类别的文字数据。这里有一个Web表格的例子,在把用户输入传递给数据库前对它进行验证。
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
// We allow only alphanumeric input
Regex allowRegex = new Regex(“^[a-zA-Z0-9]*$”);
if ((!allowRegex.IsMatch(textBoxUserId.Text))
|| (!allowRegex.IsMatch(textBoxPassword.Text)))
{
labelErrorMessage.Text =
“Invalid user ID or password.”;
return;
}
else
{
// Call the login stored procedure
…
}
}
}
一个更加彻底的深入防御策略是使用一个允许输入联合模式(也被认为是“优选名单”)和拒绝输入模式(或者称为”黑名单”)。用户的输入必须匹配优选名单模式(或者说至少一个优选名单模式,如果不多于一个的话)而且不和黑名单模式匹配(或者说任何黑名单模式)。如果在你的允许输入表中允许类似省略号这样的非字符输入,在深度防御策略中,你应该明确的使用黑名单模式。
// We allow alpha characters, spaces,
and apostrophes as inputRegex allowRegex = new Regex(@“^[a-zA-Z\s\’]*$”);
// But we disallow common SQL functions
Regex disallowRegex = new Regex(“(union|select|drop|delete)”);
if ((!allowRegex.IsMatch(textBoxLastName.Text)) ||
(disallowRegex.IsMatch(textBoxLastName.Text)))
{
labelErrorMessage.Text = “Invalid name.”;
return;
}
最后,我们必须论及加入损害控制到你的深入防御策略。如果一个黑客真的找到了一个对你的数据库执行SQL命令的途径,他可能会造成什么样的损害呢?如果你的应用程序作为一个管理员用户连接到数据库,象Microsoft SQL Server的”sa”用户,损害甚至会很严重。他不仅仅能看表中的数据,他也能增加他自己的新数据或者改变已经存在数据的值。设想一个在线购物站点,所有的商品项目价格标成低于一个美分。他能够增加新的用户或者删除已经存在用户。他能删除行,表或者甚至整个数据库。你能通过应用最少权限原则到你的深入防御策略减轻这个风险:使你的应用软件作为一个只有足够执行必需动作的许可,而没有其它更多的许可。如果你的应用程序只是从一个数据库中读数据,去掉数据库用户插入,更新和删除的许可。如果应用程序只需要对一个产品目录数据库进行存取(举例来说),确保用户不能存取定购历史数据库。永远不要指定”sa”或者任何管理员用户作为数据库用户。
通过采用一个深入防御策略,你可以避免大一个SQL注入攻击导致你应用程序的多数或者所有的损害。就很多原因包括提高安全来说,使用存储过程是一个很好的主意,但是一定不要依赖它们提供你所有的安全。总是验证用户输入,而且采用最少权限原则来减小一个成功的攻击能引起的损害。
关于作者
Bryan Sullivan是SPI Dynamics 一个Web应用软件安全产品公司的开发经理。Bryan管理DevInspect 和 QAInspect Web 安全产品,这些产品帮助程序员在整个开发和测试过程中维护应用程序的安全。他在Georgia Tech获得本科学位,而且有11年信息技术产业工作经验。他也对AVDL有所贡献,这已经成为应用软件安全行业的一个标志。
如果你不熟悉SQL注入攻击和它们对你的应用软件的潜在危险,请参考MSDN的文章 “SQLInjection” (http://msdn2.microsoft.com/en-us/library/ms161953.aspx)。
仅仅依赖存储过程而无法执行一个深入防御的问题在于你真的只指望存储过程开发者为你提供安全。类似于下面SQLServer代码用来鉴别一个用户的存储过程非常常见:
Alter PROCEDURE LoginUser
(
@UserID [nvarchar](12),
@Password [nvarchar](12)
)
AS
Select * FROM Users Where UserID = @UserID AND Password = @Password
RETURN
这个存储过程看起来非常安全,但是考虑一下这个:
Alter PROCEDURE LoginUser
(
@UserID [nvarchar](12),
@Password [nvarchar](12)
)
AS
EXECUTE (‘Select * FROM Users Where UserID = ‘’’ + @UserID + ‘’’
AND Password = ‘’’ + @Password + ‘’’’)
RETURN
通过创建一个特别的SQL声明,而且把它放到存储过程代码的EXECUTE函数中,我们真的可以生成一个存储过程SQL注入。当你使用控制代码来写存储过程的时候,这个更加容易,它在Microsoft SQL Server 2005中以新的方式支持:
[Microsoft.SqlServer.Server.SqlProcedure]
public static void LoginUser(SqlString userId, SqlString password)
{
using (SqlConnection conn = new SqlConnection(“context connection=true”))
{
SqlCommand selectUserCommand = new SqlCommand();
selectUserCommand.CommandText = “Select * FROM Users Where UserID = ‘”
+ userId.Value + “’ AND Password = ‘” + password.Value + “’”;
selectUserCommand.Connection = conn;
conn.Open();
SqlDataReader reader =
selectUserCommand.ExecuteReader();
SqlContext.Pipe.Send(reader);
reader.Close();
conn.Close();
}
}
甚至就算你是写存储过程的那个人,你通常不能确定其他人会在你后面在应用软件配置以后改变代码。关于Web应用这尤其可能,而这也是为什么一个需要一个深入防御策略。
明显地,这个问题的解决是采用一个深入防御策略。你应该继续使用存储过程和参数化任何有必要的查询,但是你也应该设法建立你的深入防御策略来保证传给这些存储过程的的参数和查询的验证。在我们上面的用户鉴定例子中,“bobsmith”可能是一个有效的用户ID,但是“Select * FROM tblCreditCards”或许不是。对于验证用户输入使用你的深入防御策略的一个好的方式是对它采用规范化的表达规则。你能使用在System.Web.UI.WebControls名字空间中的RegularExpressionValidator控制寻找来验证Web表格数据,而且你可以使用在theSystem.Text.RegularExpressions 名字空间中Regex类寻找来验证任何类别的文字数据。这里有一个Web表格的例子,在把用户输入传递给数据库前对它进行验证。
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
// We allow only alphanumeric input
Regex allowRegex = new Regex(“^[a-zA-Z0-9]*$”);
if ((!allowRegex.IsMatch(textBoxUserId.Text))
|| (!allowRegex.IsMatch(textBoxPassword.Text)))
{
labelErrorMessage.Text =
“Invalid user ID or password.”;
return;
}
else
{
// Call the login stored procedure
…
}
}
}
一个更加彻底的深入防御策略是使用一个允许输入联合模式(也被认为是“优选名单”)和拒绝输入模式(或者称为”黑名单”)。用户的输入必须匹配优选名单模式(或者说至少一个优选名单模式,如果不多于一个的话)而且不和黑名单模式匹配(或者说任何黑名单模式)。如果在你的允许输入表中允许类似省略号这样的非字符输入,在深度防御策略中,你应该明确的使用黑名单模式。
// We allow alpha characters, spaces,
and apostrophes as inputRegex allowRegex = new Regex(@“^[a-zA-Z\s\’]*$”);
// But we disallow common SQL functions
Regex disallowRegex = new Regex(“(union|select|drop|delete)”);
if ((!allowRegex.IsMatch(textBoxLastName.Text)) ||
(disallowRegex.IsMatch(textBoxLastName.Text)))
{
labelErrorMessage.Text = “Invalid name.”;
return;
}
最后,我们必须论及加入损害控制到你的深入防御策略。如果一个黑客真的找到了一个对你的数据库执行SQL命令的途径,他可能会造成什么样的损害呢?如果你的应用程序作为一个管理员用户连接到数据库,象Microsoft SQL Server的”sa”用户,损害甚至会很严重。他不仅仅能看表中的数据,他也能增加他自己的新数据或者改变已经存在数据的值。设想一个在线购物站点,所有的商品项目价格标成低于一个美分。他能够增加新的用户或者删除已经存在用户。他能删除行,表或者甚至整个数据库。你能通过应用最少权限原则到你的深入防御策略减轻这个风险:使你的应用软件作为一个只有足够执行必需动作的许可,而没有其它更多的许可。如果你的应用程序只是从一个数据库中读数据,去掉数据库用户插入,更新和删除的许可。如果应用程序只需要对一个产品目录数据库进行存取(举例来说),确保用户不能存取定购历史数据库。永远不要指定”sa”或者任何管理员用户作为数据库用户。
通过采用一个深入防御策略,你可以避免大一个SQL注入攻击导致你应用程序的多数或者所有的损害。就很多原因包括提高安全来说,使用存储过程是一个很好的主意,但是一定不要依赖它们提供你所有的安全。总是验证用户输入,而且采用最少权限原则来减小一个成功的攻击能引起的损害。
关于作者
Bryan Sullivan是SPI Dynamics 一个Web应用软件安全产品公司的开发经理。Bryan管理DevInspect 和 QAInspect Web 安全产品,这些产品帮助程序员在整个开发和测试过程中维护应用程序的安全。他在Georgia Tech获得本科学位,而且有11年信息技术产业工作经验。他也对AVDL有所贡献,这已经成为应用软件安全行业的一个标志。
9种方法诊断Windows 2003的IPsec问题
[ 2007-03-25 04:12:42 | 作者: sun ]
在你的局域网内实现用IPsec保护网络通信后,尽管你每一步都是认真按照技术文档来进行的,你还是不确信自己在网络上的通信没有被监听。怎样才能确定IPsec已经真正将你的电脑的网络通信信息加密了呢?
让我们来看看怎样确定一切运转正常,然后-你应当在进程中发现问题-查看检修IPsec的大图-相关的认证问题。在进程中,我会指出一些Windows Server 2003中内置的工具。当你确实发现网络通信信息没有被加密的时候,可以用这些工具来诊断出IPsec出现的问题。(但是注意,文中我讲到的技术并不适用于一些特殊的IPsec设备,比如IPsec卡以及基于IPsec的VPN。)
1.检查IPsec是否在工作
即使你已经成功地配置了IPsec,它也可能出现很多错误。当Windows XP或者Windows Server 2003连不上网的时候,你可以确定是出了什么问题。不幸的是,没有什么类似的情况可以让你知道IPsec的状态。根据IPsec的配置,出问题的时候,你或者会连不上网或者是-这种情况更普遍也更不容易察觉-网络可以照常使用,但是信息没有加密。当你确信你的网络通信信息已经被加密时,却发现它完全处在不安全的状态,想象一下,这将多么令人震惊。
检查IPsec是否在工作的最快方法就是用网络监视器捕捉到达以及发出计算机的数据包,检查它们是否有被加密。Windows 2003自带网络监视器,你可以打开控制面板的添加/删除程序来安装它以及访问windows组件。安装网络监视器之后,选择捕捉菜单中的“开始”来开始捕捉数据包。然后,执行一些普通的操作,比如浏览另一台电脑上的共享文件夹等,通过类似操作来生成网络活动并产生数据。最后,选择捕捉菜单中的“停止”和“查看”。
图1显示了在计算机没有使用IPsec情况下对两个数据包的捕捉结果。在协议栏你可以看到很多协议。右边是计算机使用IPsec情况下的捕获情况
。可以看到,列表中只有一项协议:压缩安全负载(ESP)。当windows 2003 计算机使用默认IPsec政策时,载数据包捕获过程中只会出现ESP和互联网控制信息协议(ICMP)。ICMP会出现是因为默认IPsec策略允许ICMP 通信。因此,如果捕捉数据包的时候看到很多协议,你就有理由断定IPsec没有正常起作用。
几乎所有的IPsec问题都是因为在互联网密钥交换(IKE)认证阶段出现了认证问题而引起的。当两台计算机试图建立安全连接(SA)的时候,他们通过特定的过程来授予对方身份识别凭证。IKE是协商SA形式的算法。身份识别认证可以是事先共享的密钥,数字证书或者Kerbero安全认证。Windows 2003默认的IPsec策略使用Kerberos安全认证。绝大多数情况下,检修IPsec故障就意味着检修认证的进程。
2.重新启动IPsec服务
一旦你确定IPsec没有工作,你应当首先重新启动IPsec服务。这将完全清零IKE协商的状态。IPsec在策略有重大更改后不起作用的这种情况下,该措施通常都能够恢复IPsec的功能。该方案有两个优点:一是不需要重启服务器,另一个是用很短的时间就可以实现。通过执行如下Net命令,你可以在Windows 2003计算机上立刻重启IPsec服务。
net stop policyagent
net start policyagent
现在,再次执行捕捉数据包的程序,或者运行我下文要讲到的Netsh命令测试。
3.在时间日志中诊断IKE问题
如果重启IPsec服务不能解决故障,你可以继续检查安全时间日志。网络登录日志监听各个SA的建立和删除。如果你启用了监听登录事件策略的成功失败监听,这些事件就会被记录在日志中。一切运转正常的时候,成功代码显示为541,542和543。然而,我们讨论的是IPsec不工作的时候该怎么办,所以我们要找失败代码,表1中显示了各个失败代码。图2显示的是失败事件547。
SA事件记录有一个问题是这些事件很快会填满你的日志。如果你只是要监听登录事件而不想让安全事件填满IKE条目的话,你可以创建 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Audit\DisableIKE Audits subkey然后把它的值设为1来停止IKE监听。
4.使用共享密钥认证
由于它是依靠共享字符串而不是诸如Kerberos或者证书那样更复杂的方法,共享密钥认证方法能够很有效的使IPsec工作起来。当然,如果你已经使用共享密钥,但还是出现故障的话,你应该核实一下每台计算机上事先共享的密钥是否匹配。如果你的事先共享密钥有错误,IPsec是不会工作的。
如果用共享密钥认证方法可以使IPsec工作,你就会知道该检查Kerberos或者证书认证机制了。在默认的IPsec策略中,从共享密钥认证方式切换到Kerberos安全认证方式需要执行以下几个步骤:
1.关闭所有的IPsec可能应用到的Active Directory(AD)服务
2.点击“开始”,“运行”,然后输入gpedit.msc来开始编辑本地策略。
3.进入路径 计算机配置\系统设置\安全设置\IP安全策略的组策略对象编辑节点。
4.右键点击导致故障的策略然后选择”属性“
5.在规则标签中,选择过滤列表中“所有IP通信”,并点击“编辑”。
6.在“编辑规则属性”对话框中,选择“认证方法”标签然后单击“添加”来添加新的认证方法。
7.选择“使用该字符串发报”按钮并输入一个事先共享的密钥。然后单击“确定”。
8.使用“认证方法”标签中的“上移”按钮来把事先共享密钥移到列表顶端。
这些说明是假设你没怎么定制IPsec策略的。总的来说,你应当总是创建新的策略而不要编辑已经存在的策略。但是,在当前这种情况下,你只是添加一种认证方法,解决故障之后,可以将它降级。变换到共享密钥认证方法会显著的简化认证过程,所以它很有可能使IPsec对你的网络起作用。
5.确定哪种IPsec策略是有效的
IPsec不工作很有可能是因为网络上的计算机被指定了互补兼容的策略。例如,一个策略可能试图使用证书认证,然而其他策略则只接受共享密钥认证。有两种方法来确定当前主导的是哪种IPsec策略。第一种方法是用IP安全监听器。如图3所示,内置的微软管理平台(MMC)IP安全监听器替代了Windows2000的Ipsecmon.exe功能。它能确定当前计算机上哪种策略是起作用的。
第二种方法是运行Netsh命令 netsh ipsec dynamic show all|more 从命令行得到相同的信息。该命令将所有的IPsec信息放到剪切板上。你可以把该信息粘贴到文本文档中,如图4所示。在文本中,可以看到一个策略应用到了本地级别(例如,客户端:只响应)以及通过AD应用(例如,服务器:安全请求)。一旦你得到了这些信息,你就可以很快发现IPsec不工作的原因是:或者计算机没有指定策略,或者指定了不兼容的策略。解决策略不兼容问题之后,IPsec可能就正常工作了。
6.检查Kerberos认证的问题
Kerberos认证依靠AD。如果产生了Kerberos问题,很可能跟计算机帐户的问题有关。你可能需要重置计算机帐户的密码或者重启计算机帐户。如果继续有故障,可能就需要将Kerberos网络通信与域控制器(DC)上的IPsec隔离。运行命令 netsh ipsec dynamic set config ipsecexempt value=0Win2000容许Kerberos认证通信,但是Windows2003不容许。该Netsh命令强制Windows2003如Win2000一样操作。
7.检查证书认证的问题
如果基于证书的认证系统有问题,很大可能是如下三种情况之一:没有安装证书,证书过期,或者证书撤销列表(CRL)不完整。默认的IPsec证书有效期是2年,这对大多数忘了该有效期的组织来说都足够长了。不像一些证书模板,默认情况下,IPsec证书模板没有设置成自动注册模式。
确定证书认证到底是上述哪种问题的最简便方法就是打开本地计算机的证书存储器。你也可以使用内置MMC证书工具来请求一个新的IPsec证书。当你创建了内置MMC证书来检查已安装的IPsec证书的过期数据时,需要确认你选择了“计算机帐户”选项,如图5所示。如果选择的是“我的用户帐户”或者“服务器帐户”选项的话,你就无法在定位到该找的IPsec 证书。
从长远角度来看,最好的解决方法是创建一个支持自动注册(仅限于Windows2003 企业版)的新的IPsec模板。这样,IPsec证书就可以自动更新,并且只要你选择了自动更新选项你就不需要记住IPsec证书有效期是2年了。
证书正在使用时,IPsec检查CRL来确定证书是否已被废除。IPsec要花一定的时间来做这个检查,并且很有可能在得到结果之前,系统就被关闭了。可以运行 netsh ipsec dynamic set config strongcrlcheck 0 来取消CRL检查。
8.检查是否所有人都使用客户端策略
IPsec的新的管理员有时候对网络上的所有计算机都应用客户端(只响应)策略,然后纳闷为什么没有加密任何信息。对开始生效的IPsec来说,搭档中的一个需要请求使用IPsec的策略。如果所有的主机都指定的是客户端(只响应)策略,那么没有主机会请求使用IPsec。要解决该问题,可以在计算机上激活各种服务器策略中的一个,然后运行GPU更新。
9.检查IKE日志
如果所有的前述措施都没有解决IKE问题,你就不得不按照更详细的步骤来决定方案。这种情况下,你需要有互联网安全连接和密钥管理协议RFC 2408和IKE RFC 2409(ISAKMP)方面的更进一步的知识。运行 netsh ipsec dynamic set config ikelogging 1来开始追踪IKE的协商。可以将ikelogging的值增加至7(记录所有可能的数据)来增加记录下来的信息量。IKE跟踪日志位于\%systemroot%\Debug\Oakley.log,可以用文本编辑器来查看。需要注意的是,记录文档的内容很密集,刚接触IPsec的人很可能很快就受不了了。
慎用自定义
Windows2003带的IPsec策略是可以直接使用的。只有你自定义它们使用基于证书或者基于共享密钥的认证系统的时候,才会产生问题。如果需要修改IPsec的认证方法,你应该创建新策略而不是对已存在的策略进行修改。只要遵从这个建议,在调查各种突然出现的问题时,都能够迅速切换到起作用的配置上。
让我们来看看怎样确定一切运转正常,然后-你应当在进程中发现问题-查看检修IPsec的大图-相关的认证问题。在进程中,我会指出一些Windows Server 2003中内置的工具。当你确实发现网络通信信息没有被加密的时候,可以用这些工具来诊断出IPsec出现的问题。(但是注意,文中我讲到的技术并不适用于一些特殊的IPsec设备,比如IPsec卡以及基于IPsec的VPN。)
1.检查IPsec是否在工作
即使你已经成功地配置了IPsec,它也可能出现很多错误。当Windows XP或者Windows Server 2003连不上网的时候,你可以确定是出了什么问题。不幸的是,没有什么类似的情况可以让你知道IPsec的状态。根据IPsec的配置,出问题的时候,你或者会连不上网或者是-这种情况更普遍也更不容易察觉-网络可以照常使用,但是信息没有加密。当你确信你的网络通信信息已经被加密时,却发现它完全处在不安全的状态,想象一下,这将多么令人震惊。
检查IPsec是否在工作的最快方法就是用网络监视器捕捉到达以及发出计算机的数据包,检查它们是否有被加密。Windows 2003自带网络监视器,你可以打开控制面板的添加/删除程序来安装它以及访问windows组件。安装网络监视器之后,选择捕捉菜单中的“开始”来开始捕捉数据包。然后,执行一些普通的操作,比如浏览另一台电脑上的共享文件夹等,通过类似操作来生成网络活动并产生数据。最后,选择捕捉菜单中的“停止”和“查看”。
图1显示了在计算机没有使用IPsec情况下对两个数据包的捕捉结果。在协议栏你可以看到很多协议。右边是计算机使用IPsec情况下的捕获情况
。可以看到,列表中只有一项协议:压缩安全负载(ESP)。当windows 2003 计算机使用默认IPsec政策时,载数据包捕获过程中只会出现ESP和互联网控制信息协议(ICMP)。ICMP会出现是因为默认IPsec策略允许ICMP 通信。因此,如果捕捉数据包的时候看到很多协议,你就有理由断定IPsec没有正常起作用。
几乎所有的IPsec问题都是因为在互联网密钥交换(IKE)认证阶段出现了认证问题而引起的。当两台计算机试图建立安全连接(SA)的时候,他们通过特定的过程来授予对方身份识别凭证。IKE是协商SA形式的算法。身份识别认证可以是事先共享的密钥,数字证书或者Kerbero安全认证。Windows 2003默认的IPsec策略使用Kerberos安全认证。绝大多数情况下,检修IPsec故障就意味着检修认证的进程。
2.重新启动IPsec服务
一旦你确定IPsec没有工作,你应当首先重新启动IPsec服务。这将完全清零IKE协商的状态。IPsec在策略有重大更改后不起作用的这种情况下,该措施通常都能够恢复IPsec的功能。该方案有两个优点:一是不需要重启服务器,另一个是用很短的时间就可以实现。通过执行如下Net命令,你可以在Windows 2003计算机上立刻重启IPsec服务。
net stop policyagent
net start policyagent
现在,再次执行捕捉数据包的程序,或者运行我下文要讲到的Netsh命令测试。
3.在时间日志中诊断IKE问题
如果重启IPsec服务不能解决故障,你可以继续检查安全时间日志。网络登录日志监听各个SA的建立和删除。如果你启用了监听登录事件策略的成功失败监听,这些事件就会被记录在日志中。一切运转正常的时候,成功代码显示为541,542和543。然而,我们讨论的是IPsec不工作的时候该怎么办,所以我们要找失败代码,表1中显示了各个失败代码。图2显示的是失败事件547。
SA事件记录有一个问题是这些事件很快会填满你的日志。如果你只是要监听登录事件而不想让安全事件填满IKE条目的话,你可以创建 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Audit\DisableIKE Audits subkey然后把它的值设为1来停止IKE监听。
4.使用共享密钥认证
由于它是依靠共享字符串而不是诸如Kerberos或者证书那样更复杂的方法,共享密钥认证方法能够很有效的使IPsec工作起来。当然,如果你已经使用共享密钥,但还是出现故障的话,你应该核实一下每台计算机上事先共享的密钥是否匹配。如果你的事先共享密钥有错误,IPsec是不会工作的。
如果用共享密钥认证方法可以使IPsec工作,你就会知道该检查Kerberos或者证书认证机制了。在默认的IPsec策略中,从共享密钥认证方式切换到Kerberos安全认证方式需要执行以下几个步骤:
1.关闭所有的IPsec可能应用到的Active Directory(AD)服务
2.点击“开始”,“运行”,然后输入gpedit.msc来开始编辑本地策略。
3.进入路径 计算机配置\系统设置\安全设置\IP安全策略的组策略对象编辑节点。
4.右键点击导致故障的策略然后选择”属性“
5.在规则标签中,选择过滤列表中“所有IP通信”,并点击“编辑”。
6.在“编辑规则属性”对话框中,选择“认证方法”标签然后单击“添加”来添加新的认证方法。
7.选择“使用该字符串发报”按钮并输入一个事先共享的密钥。然后单击“确定”。
8.使用“认证方法”标签中的“上移”按钮来把事先共享密钥移到列表顶端。
这些说明是假设你没怎么定制IPsec策略的。总的来说,你应当总是创建新的策略而不要编辑已经存在的策略。但是,在当前这种情况下,你只是添加一种认证方法,解决故障之后,可以将它降级。变换到共享密钥认证方法会显著的简化认证过程,所以它很有可能使IPsec对你的网络起作用。
5.确定哪种IPsec策略是有效的
IPsec不工作很有可能是因为网络上的计算机被指定了互补兼容的策略。例如,一个策略可能试图使用证书认证,然而其他策略则只接受共享密钥认证。有两种方法来确定当前主导的是哪种IPsec策略。第一种方法是用IP安全监听器。如图3所示,内置的微软管理平台(MMC)IP安全监听器替代了Windows2000的Ipsecmon.exe功能。它能确定当前计算机上哪种策略是起作用的。
第二种方法是运行Netsh命令 netsh ipsec dynamic show all|more 从命令行得到相同的信息。该命令将所有的IPsec信息放到剪切板上。你可以把该信息粘贴到文本文档中,如图4所示。在文本中,可以看到一个策略应用到了本地级别(例如,客户端:只响应)以及通过AD应用(例如,服务器:安全请求)。一旦你得到了这些信息,你就可以很快发现IPsec不工作的原因是:或者计算机没有指定策略,或者指定了不兼容的策略。解决策略不兼容问题之后,IPsec可能就正常工作了。
6.检查Kerberos认证的问题
Kerberos认证依靠AD。如果产生了Kerberos问题,很可能跟计算机帐户的问题有关。你可能需要重置计算机帐户的密码或者重启计算机帐户。如果继续有故障,可能就需要将Kerberos网络通信与域控制器(DC)上的IPsec隔离。运行命令 netsh ipsec dynamic set config ipsecexempt value=0Win2000容许Kerberos认证通信,但是Windows2003不容许。该Netsh命令强制Windows2003如Win2000一样操作。
7.检查证书认证的问题
如果基于证书的认证系统有问题,很大可能是如下三种情况之一:没有安装证书,证书过期,或者证书撤销列表(CRL)不完整。默认的IPsec证书有效期是2年,这对大多数忘了该有效期的组织来说都足够长了。不像一些证书模板,默认情况下,IPsec证书模板没有设置成自动注册模式。
确定证书认证到底是上述哪种问题的最简便方法就是打开本地计算机的证书存储器。你也可以使用内置MMC证书工具来请求一个新的IPsec证书。当你创建了内置MMC证书来检查已安装的IPsec证书的过期数据时,需要确认你选择了“计算机帐户”选项,如图5所示。如果选择的是“我的用户帐户”或者“服务器帐户”选项的话,你就无法在定位到该找的IPsec 证书。
从长远角度来看,最好的解决方法是创建一个支持自动注册(仅限于Windows2003 企业版)的新的IPsec模板。这样,IPsec证书就可以自动更新,并且只要你选择了自动更新选项你就不需要记住IPsec证书有效期是2年了。
证书正在使用时,IPsec检查CRL来确定证书是否已被废除。IPsec要花一定的时间来做这个检查,并且很有可能在得到结果之前,系统就被关闭了。可以运行 netsh ipsec dynamic set config strongcrlcheck 0 来取消CRL检查。
8.检查是否所有人都使用客户端策略
IPsec的新的管理员有时候对网络上的所有计算机都应用客户端(只响应)策略,然后纳闷为什么没有加密任何信息。对开始生效的IPsec来说,搭档中的一个需要请求使用IPsec的策略。如果所有的主机都指定的是客户端(只响应)策略,那么没有主机会请求使用IPsec。要解决该问题,可以在计算机上激活各种服务器策略中的一个,然后运行GPU更新。
9.检查IKE日志
如果所有的前述措施都没有解决IKE问题,你就不得不按照更详细的步骤来决定方案。这种情况下,你需要有互联网安全连接和密钥管理协议RFC 2408和IKE RFC 2409(ISAKMP)方面的更进一步的知识。运行 netsh ipsec dynamic set config ikelogging 1来开始追踪IKE的协商。可以将ikelogging的值增加至7(记录所有可能的数据)来增加记录下来的信息量。IKE跟踪日志位于\%systemroot%\Debug\Oakley.log,可以用文本编辑器来查看。需要注意的是,记录文档的内容很密集,刚接触IPsec的人很可能很快就受不了了。
慎用自定义
Windows2003带的IPsec策略是可以直接使用的。只有你自定义它们使用基于证书或者基于共享密钥的认证系统的时候,才会产生问题。如果需要修改IPsec的认证方法,你应该创建新策略而不是对已存在的策略进行修改。只要遵从这个建议,在调查各种突然出现的问题时,都能够迅速切换到起作用的配置上。
怎么抵抗DDOS攻击
[ 2007-03-25 04:12:21 | 作者: sun ]
一、为何要DDOS?
随着Internet互联网络带宽的增加和多种DDOS黑客工具的不断发布,DDOS拒绝服务攻击的实施越来越容易,DDOS攻击事件正在成上升趋势。出于商业竞争、打击报复和网络敲诈等多种因素,导致很多IDC托管机房、商业站点、游戏服务器、聊天网络等网络服务商长期以来一直被DDOS攻击所困扰,随之而来的是客户投诉、同虚拟主机用户受牵连、法律纠纷、商业损失等一系列问题,因此,解决DDOS攻击问题成为网络服务商必须考虑的头等大事。
二、什么是DDOS?
DDOS是英文Distributed Denial of Service的缩写,意即“分布式拒绝服务”,那么什么又是拒绝服务(Denial of Service)呢?可以这么理解,凡是能导致合法用户不能够访问正常网络服务的行为都算是拒绝服务攻击。也就是说拒绝服务攻击的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达成攻击者不可告人的目的。虽然同样是拒绝服务攻击,但是DDOS和DOS还是有所不同,DDOS的攻击策略侧重于通过很多“僵尸主机”(被攻击者入侵过或可间接利用的主机)向受害主机发送大量看似合法的网络包,从而造成网络阻塞或服务器资源耗尽而导致拒绝服务,分布式拒绝服务攻击一旦被实施,攻击网络包就会犹如洪水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问服务器的网络资源,因此,拒绝服务攻击又被称之为“洪水式攻击”,常见的DDOS攻击手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等;而DOS则侧重于通过对主机特定漏洞的利用攻击导致网络栈失效、系统崩溃、主机死机而无法提供正常的网络服务功能,从而造成拒绝服务,常见的DOS攻击手段有TearDrop、Land、Jolt、IGMP Nuker、Boink、Smurf、Bonk、OOB等。就这两种拒绝服务攻击而言,危害较大的主要是DDOS攻击,原因是很难防范,至于DOS攻击,通过给主机服务器打补丁或安装防火墙软件就可以很好地防范,后文会详细介绍怎么对付DDOS攻击。
三、被DDOS了吗?
DDOS的表现形式主要有两种,一种为流量攻击,主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机;另一种为资源耗尽攻击,主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完而造成无法提供网络服务。
如何判断网站是否遭受了流量攻击呢?可通过Ping命令来测试,若发现Ping超时或丢包严重(假定平时是正常的),则可能遭受了流量攻击,此时若发现和你的主机接在同一交换机上的服务器也访问不了了,基本可以确定是遭受了流量攻击。当然,这样测试的前提是你到服务器主机之间的ICMP协议没有被路由器和防火墙等设备屏蔽,否则可采取Telnet主机服务器的网络服务端口来测试,效果是一样的。不过有一点可以肯定,假如平时Ping你的主机服务器和接在同一交换机上的主机服务器都是正常的,突然都Ping不通了或者是严重丢包,那么假如可以排除网络故障因素的话则肯定是遭受了流量攻击,再一个流量攻击的典型现象是,一旦遭受流量攻击,会发现用远程终端连接网站服务器会失败。
相对于流量攻击而言,资源耗尽攻击要容易判断一些,假如平时Ping网站主机和访问网站都是正常的,发现突然网站访问非常缓慢或无法访问了,而Ping还可以Ping通,则很可能遭受了资源耗尽攻击,此时若在服务器上用Netstat -na命令观察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等状态存在,而ESTABLISHED很少,则可判定肯定是遭受了资源耗尽攻击。还有一种属于资源耗尽攻击的现象是,Ping自己的网站主机Ping不通或者是丢包严重,而Ping与自己的主机在同一交换机上的服务器则正常,造成这种原因是网站主机遭受攻击后导致系统内核或某些应用程序CPU利用率达到100%无法回应Ping命令,其实带宽还是有的,否则就Ping不通接在同一交换机上的主机了。
当前主要有三种流行的DDOS攻击:
1、SYN/ACK Flood攻击:这种攻击方法是经典最有效的DDOS方法,可通杀各种系统的网络服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。少量的这种攻击会导致主机服务器无法访问,但却可以Ping的通,在服务器上用Netstat -na命令会观察到存在大量的SYN_RECEIVED状态,大量的这种攻击会导致Ping失败、TCP/IP栈失效,并会出现系统凝固现象,即不响应键盘和鼠标。普通防火墙大多无法抵御此种攻击。
2、TCP全连接攻击:这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过滤TearDrop、Land等DOS攻击的能力,但对于正常的TCP连接是放过的,殊不知很多网络服务程序(如:IIS、Apache等Web服务器)能接受的TCP连接数是有限的,一旦有大量的TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此容易被追踪。
3、刷Script脚本攻击:这种攻击主要是针对存在ASP、JSP、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击方法。一般来说,提交一个GET或POST指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是很大的,常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举的,因此攻击者只需通过Proxy代理向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy代理就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy会暴露攻击者的IP地址。
四、怎么抵御DDOS?
对付DDOS是一个系统工程,想仅仅依靠某种系统或产品防住DDOS是不现实的,可以肯定的是,完全杜绝DDOS目前是不可能的,但通过适当的措施抵御90%的DDOS攻击是可以做到的,基于攻击和防御都有成本开销的缘故,若通过适当的办法增强了抵御DDOS的能力,也就意味着加大了攻击者的攻击成本,那么绝大多数攻击者将无法继续下去而放弃,也就相当于成功的抵御了DDOS攻击。以下几点是防御DDOS攻击几点:
1、采用高性能的网络设备
首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDOS攻击是非常有效的。
2、尽量避免NAT的使用
无论是路由器还是硬件防护墙设备要尽量避免采用网络地址转换NAT的使用,因为采用此技术会较大降低网络通信能力,其实原因很简单,因为NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间,但有些时候必须使用NAT,那就没有好办法了。
3、充足的网络带宽保证
网络带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗现在的SYNFlood攻击,当前至少要选择100M的共享带宽,最好的当然是挂在1000M的主干上了。但需要注意的是,主机上的网卡是1000M的并不意味着它的网络带宽就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为10M,这点一定要搞清楚。
4、升级主机服务器硬件
在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包,服务器的配置至少应该为:P4 2.4G/DDR512M/SCSI-HD,起关键作用的主要是CPU和内存,若有志强双CPU的话就用它吧,内存一定要选择DDR的高速内存,硬盘要尽量选择SCSI的,别只贪IDE价格不贵量还足的便宜,否则会付出高昂的性能代价,再就是网卡一定要选用3COM或Intel等名牌的,若是Realtek的还是用在自己的PC上吧。
5、把网站做成静态页面
大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,至少到现在为止关于HTML的溢出还没出现,看看吧!新浪、搜狐、网易等门户网站主要都是静态页面,若你非需要动态脚本调用,那就把它弄到另外一台单独主机去,免的遭受攻击时连累主服务器,当然,适当放一些不做数据库调用脚本还是可以的,此外,最好在需要调用数据库的脚本中拒绝使用代理的访问,因为经验表明使用代理访问你网站的80%属于恶意行为。
6、增强操作系统的TCP/IP栈
Win2000和Win2003作为服务器操作系统,本身就具备一定的抵抗DDOS攻击的能力,只是默认状态下没有开启而已,若开启的话可抵挡约10000个SYN攻击包,若没有开启则仅能抵御数百个,具体怎么开启,自己去看微软的文章吧!《强化 TCP/IP 堆栈安全》。
也许有的人会问,那我用的是Linux和FreeBSD怎么办?很简单,按照这篇文章去做吧!《SYN Cookies》。
7、安装专业抗DDOS防火墙
8、其他防御措施
以上几条对抗DDOS建议,适合绝大多数拥有自己主机的用户,但假如采取以上措施后仍然不能解决DDOS问题,就有些麻烦了,可能需要更多投资,增加服务器数量并采用DNS轮巡或负载均衡技术,甚至需要购买七层交换机设备,从而使得抗DDOS攻击能力成倍提高,只要投资足够深入。
保护网络安全 路由安全设置九步曲
[ 2007-03-25 04:12:07 | 作者: sun ]
对于大多数企业局域网来说,路由器已经成为正在使用之中的最重要的安全设备之一。一般来说,大多数网络都有一个主要的接入点。这就是通常与专用防火墙一起使用的“边界路由器”。
经过恰当的设置,边缘路由器能够把几乎所有的最顽固的坏分子挡在网络之外。如果你愿意的话,这种路由器还能够让好人进入网络。不过,没有恰当设置的路由器只是比根本就没有安全措施稍微好一点。
在下列指南中,我们将研究一下你可以用来保护网络安全的9个方便的步骤。这些步骤能够保证你拥有一道保护你的网络的砖墙,而不是一个敞开的大门。
1.修改默认的口令!
据卡内基梅隆大学的CERT/CC(计算机应急反应小组/控制中心)称,80%的安全突破事件是由薄弱的口令引起的。网络上有大多数路由器的广泛的默认口令列表。你可以肯定在某些地方的某个人会知道你的生日。SecurityStats.com网站维护一个详尽的可用/不可用口令列表,以及一个口令的可靠性测试。
2.关闭IP直接广播(IP Directed Broadcast)
你的服务器是很听话的。让它做什么它就做什么,而且不管是谁发出的指令。Smurf攻击是一种拒绝服务攻击。在这种攻击中,攻击者使用假冒的源地址向你的网络广播地址发送一个“ICMP echo”请求。这要求所有的主机对这个广播请求做出回应。这种情况至少会降低你的网络性能。
参考你的路由器信息文件,了解如何关闭IP直接广播。例如,“Central(config)#no ip source-route”这个指令将关闭思科路由器的IP直接广播地址。
3.如果可能,关闭路由器的HTTP设置
正如思科的技术说明中简要说明的那样,HTTP使用的身份识别协议相当于向整个网络发送一个未加密的口令。然而,遗憾的是,HTTP协议中没有一个用于验证口令或者一次性口令的有效规定。
虽然这种未加密的口令对于你从远程位置(例如家里)设置你的路由器也许是非常方便的,但是,你能够做到的事情其他人也照样可以做到。特别是如果你仍在使用默认的口令!如果你必须远程管理路由器,你一定要确保使用SNMPv3以上版本的协议,因为它支持更严格的口令。
4.封锁ICMP ping请求
ping的主要目的是识别目前正在使用的主机。因此,ping通常用于更大规模的协同性攻击之前的侦察活动。通过取消远程用户接收ping请求的应答能力,你就更容易避开那些无人注意的扫描活动或者防御那些寻找容易攻击的目标的“脚本小子”(script kiddies)。
请注意,这样做实际上并不能保护你的网络不受攻击,但是,这将使你不太可能成为一个攻击目标。
5.关闭IP源路由
IP协议允许一台主机指定数据包通过你的网络的路由,而不是允许网络组件确定最佳的路径。这个功能的合法的应用是用于诊断连接故障。但是,这种用途很少应用。这项功能最常用的用途是为了侦察目的对你的网络进行镜像,或者用于攻击者在你的专用网络中寻找一个后门。除非指定这项功能只能用于诊断故障,否则应该关闭这个功能。
6.确定你的数据包过滤的需求
封锁端口有两项理由。其中之一根据你对安全水平的要求对于你的网络是合适的。
对于高度安全的网络来说,特别是在存储或者保持秘密数据的时候,通常要求经过允许才可以过滤。在这种规定中,除了网路功能需要的之外,所有的端口和IP地址都必要要封锁。例如,用于web通信的端口80和用于SMTP的110/25端口允许来自指定地址的访问,而所有其它端口和地址都可以关闭。
大多数网络将通过使用“按拒绝请求实施过滤”的方案享受可以接受的安全水平。当使用这种过滤政策时,可以封锁你的网络没有使用的端口和特洛伊木马或者侦查活动常用的端口来增强你的网络的安全性。例如,封锁139端口和445(TCP和UDP)端口将使黑客更难对你的网络实施穷举攻击。封锁31337(TCP和UDP)端口将使Back orifice木马程序更难攻击你的网络。
这项工作应该在网络规划阶段确定,这时候安全水平的要求应该符合网络用户的需求。查看这些端口的列表,了解这些端口正常的用途。
7.建立准许进入和外出的地址过滤政策
在你的边界路由器上建立政策以便根据IP地址过滤进出网络的违反安全规定的行为。除了特殊的不同寻常的案例之外,所有试图从你的网络内部访问互联网的IP地址都应该有一个分配给你的局域网的地址。例如,192.168.0.1这个地址也许通过这个路由器访问互联网是合法的。但是,216.239.55.99这个地址很可能是欺骗性的,并且是一场攻击的一部分。
相反,来自互联网外部的通信的源地址应该不是你的内部网络的一部分。因此,应该封锁入网的192.168.X.X、172.16.X.X和10.X.X.X等地址。
最后,拥有源地址的通信或者保留的和无法路由的目标地址的所有的通信都应该允许通过这台路由器。这包括回送地址127.0.0.1或者E类(class E)地址段240.0.0.0-254.255.255.255。
8.保持路由器的物理安全
从网络嗅探的角度看,路由器比集线器更安全。这是因为路由器根据IP地址智能化地路由数据包,而集线器相所有的节点播出数据。如果连接到那台集线器的一个系统将其网络适配器置于混乱的模式,它们就能够接收和看到所有的广播,包括口令、POP3通信和Web通信。
然后,重要的是确保物理访问你的网络设备是安全的,以防止未经允许的笔记本电脑等嗅探设备放在你的本地子网中。
9.花时间审阅安全记录
审阅你的路由器记录(通过其内置的防火墙功能)是查出安全事件的最有效的方法,无论是查出正在实施的攻击还是未来攻击的征候都非常有效。利用出网的记录,你还能够查出试图建立外部连接的特洛伊木马程序和间谍软件程序。用心的安全管理员在病毒传播者作出反应之前能够查出“红色代码”和“Nimda”病毒的攻击。
此外,一般来说,路由器位于你的网络的边缘,并且允许你看到进出你的网络全部通信的状况。
特洛伊木马如何利用文件关联和设置名
[ 2007-03-25 04:11:56 | 作者: sun ]
特洛伊木马如何利用文件关联和设置名
我们知道,在注册表HKEY_LOCAL_MACHINE SoftwareMicrosoftWindowsCurrentVersionRun下可以加载程序,使之开机时自动运行,类似“Run”这样的子键在注册表中还有几处,均以“Run”开头,如RunOnce、RunServices等。除了这种方法,还有一种修改注册表的方法也可以使程序自启动。
具体说来,就是更改文件的打开方式,这样就可以使程序跟随您打开的那种文件类型一起启动。举例来说,打开注册表,展开注册表到HKEY_CLASSES_ROOTexefileshell
opencommand,这里是exe文件的打开方式,默认键值为:“%1”%*。如果把默认键值改为Trojan.exe“%1”%*,您每次运行exe文件,这个Trojan.exe文件就会被执行。木马灰鸽子就采用关联exe文件的打开方式,而大名鼎鼎的木马冰河采用的是也与此相似的一招——关联txt文件。
对付这种隐藏方法,主要是经常检查注册表,看文件的打开方式是否发生了变化。如果发生了变化,就将打开方式改回来。最好能经常备份注册表,发现问题后立即用备份文件恢复注册表,既方便、快捷,又安全、省事。
木马对设备名的利用
大家知道,在Windows下无法以设备名来命名文件或文件夹,这些设备名主要有aux、com1、com2、prn、con、nul等,但Windows 2000/XP有个漏洞可以以设备名来命名文件或文件夹,让木马可以躲在那里而不被发现。
具体方法是:点击“开始”菜单的“运行”,输入cmd.exe,回车进入命令提示符窗口,然后输入md c:con\命令,可以建立一个名为con的目录。默认请况下,Windows是无法建立这类目录的,正是利用了Windows的漏洞我们才可以建立此目录。再试试输入md c:aux\命令,可以建立aux目录,输入md c:prn\可以建立prn目录,输入md c:com1\目录可以建立Com1目录,而输入md c: ul\则可以建立一个名为nul的目录。在资源管理器中依次点击试试,您会发现当我们试图打开以aux或com1命名的文件夹时,explorer.exe失去了响应,而许多“牧马人”就是利用这个方法将木马隐藏在这类特殊的文件夹中,从而达到隐藏、保护木马程序的目的。
现在,我们可以把文件复制到这个特殊的目录下,当然,不能直接在Windows中复制,需要采用特殊的方法,在CMD窗口中输入copy muma.exe \.c:aux\命令,就可以把木马文件muma.exe复制到C盘下的aux文件夹中,然后点击“开始”菜单中的“运行”,在“运行”中输入c:aux muam.exe,就会成功启动该木马。我们可以通过点击文件夹名进入此类特殊目录,不过,如果您要试图在资源管理器中删除它,会发现这根本就是徒劳的,Windows会提示找不到该文件。
由于使用del c:aux\命令可以删除其中的muma.exe文件,所以,为了达到更好的隐藏和保护效果,下木马者会把muma.exe文件也改名,让我们很难删除。具体方法就是在复制木马文件到aux文件夹时使用命令copy muma.exe \.c:con.exe,就可以把木马文件muma.exe复制到aux目录中,并且改名为con.exe,而con.exe文件是无法用普通方法删除的。
可能有的朋友会想,这个con.exe文件在“开始”菜单的“运行”中无法运行啊。其实不然,只要在命令行方式下输入cmd /c \.c:con就可以运行这个程序了。在运行时会有一个cmd窗口一闪而过,下木马者一般来说会对其进行改进,方法有很多,可以利用开机脚本,也可以利用cmd.exe的autorun:在注册表HKEY_LOCAL_ MACHINESoftwareMicrosoftCommand Processor下建一个字串AutoRun,值为要运行的.bat文件或.cmd文件的路径,如c:winntsystem32auto.cmd,如果建立相应的文件,它的内容为@\.c:con,就可以达到隐蔽的效果。
对于这类特殊的文件夹,发现后我们可以采用如下方法来删除它:先用del \.c:con.exe命令删除con.exe文件(该文件假设就是其中的木马文件名),然后再用rd \.c:aux命令删除aux文件夹即可。
好了,文章到这里就结束了。由于水平有限,文中如有不正确或值得商榷的地方欢迎大家批评指点,另外,写作时曾参阅过网上高手们的帖子,受益匪浅,在此一并谢过!
不过,AutoRun不仅能应用于光盘中,同样也可以应用于硬盘中(要注意的是,AutoRun.inf必须存放在磁盘根目录下才能起作用)。让我们一起看看AutoRun.inf文件的内容吧。
打开记事本,新建一个文件,将其命名为AutoRun.inf,在AutoRun.inf中键入以下内容:
[AutoRun]
Icon=C:WindowsSystemShell32.DLL,21
Open=C:Program FilesACDSeeACDSee.exe
其中,“[AutoRun]”是必须的固定格式,一个标准的AutoRun文件必须以它开头,目的是告诉系统执行它下面几行的命令;第二行“Icon=C:WindowsSystemShell32.DLL,21”是给硬盘或光盘设定一个个性化的图标,“Shell32.DLL”是包含很多Windows图标的系统文件,“21”表示显示编号为21的图标,无数字则默认采用文件中的第一个图标;第三行“Open=C:Program FilesACDSeeACDSee.exe”指出要运行程序的路径及其文件名。
如果把Open行换为木马文件,并将这个AutoRun.inf文件设置为隐藏属性,我们点击硬盘时就会启动木马。
为防止遭到这样的“埋伏”,可以禁止硬盘AutoRun功能。在“开始”菜单的“运行”中输入Regedit,打开注册表编辑器,展开到HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrentVersionPoliciesExploer主键下,在右侧窗口中找到“NoDriveTypeAutoRun”,就是它决定了是否执行CDROM或硬盘的AutoRun功能。将其键值改为9D,00,00,00就可以关闭硬盘的AutoRun功能,如果改为B5,00,00,00则禁止光盘的AutoRun功能。修改后重新启动计算机,设置就会生效。
我们知道,在注册表HKEY_LOCAL_MACHINE SoftwareMicrosoftWindowsCurrentVersionRun下可以加载程序,使之开机时自动运行,类似“Run”这样的子键在注册表中还有几处,均以“Run”开头,如RunOnce、RunServices等。除了这种方法,还有一种修改注册表的方法也可以使程序自启动。
具体说来,就是更改文件的打开方式,这样就可以使程序跟随您打开的那种文件类型一起启动。举例来说,打开注册表,展开注册表到HKEY_CLASSES_ROOTexefileshell
opencommand,这里是exe文件的打开方式,默认键值为:“%1”%*。如果把默认键值改为Trojan.exe“%1”%*,您每次运行exe文件,这个Trojan.exe文件就会被执行。木马灰鸽子就采用关联exe文件的打开方式,而大名鼎鼎的木马冰河采用的是也与此相似的一招——关联txt文件。
对付这种隐藏方法,主要是经常检查注册表,看文件的打开方式是否发生了变化。如果发生了变化,就将打开方式改回来。最好能经常备份注册表,发现问题后立即用备份文件恢复注册表,既方便、快捷,又安全、省事。
木马对设备名的利用
大家知道,在Windows下无法以设备名来命名文件或文件夹,这些设备名主要有aux、com1、com2、prn、con、nul等,但Windows 2000/XP有个漏洞可以以设备名来命名文件或文件夹,让木马可以躲在那里而不被发现。
具体方法是:点击“开始”菜单的“运行”,输入cmd.exe,回车进入命令提示符窗口,然后输入md c:con\命令,可以建立一个名为con的目录。默认请况下,Windows是无法建立这类目录的,正是利用了Windows的漏洞我们才可以建立此目录。再试试输入md c:aux\命令,可以建立aux目录,输入md c:prn\可以建立prn目录,输入md c:com1\目录可以建立Com1目录,而输入md c: ul\则可以建立一个名为nul的目录。在资源管理器中依次点击试试,您会发现当我们试图打开以aux或com1命名的文件夹时,explorer.exe失去了响应,而许多“牧马人”就是利用这个方法将木马隐藏在这类特殊的文件夹中,从而达到隐藏、保护木马程序的目的。
现在,我们可以把文件复制到这个特殊的目录下,当然,不能直接在Windows中复制,需要采用特殊的方法,在CMD窗口中输入copy muma.exe \.c:aux\命令,就可以把木马文件muma.exe复制到C盘下的aux文件夹中,然后点击“开始”菜单中的“运行”,在“运行”中输入c:aux muam.exe,就会成功启动该木马。我们可以通过点击文件夹名进入此类特殊目录,不过,如果您要试图在资源管理器中删除它,会发现这根本就是徒劳的,Windows会提示找不到该文件。
由于使用del c:aux\命令可以删除其中的muma.exe文件,所以,为了达到更好的隐藏和保护效果,下木马者会把muma.exe文件也改名,让我们很难删除。具体方法就是在复制木马文件到aux文件夹时使用命令copy muma.exe \.c:con.exe,就可以把木马文件muma.exe复制到aux目录中,并且改名为con.exe,而con.exe文件是无法用普通方法删除的。
可能有的朋友会想,这个con.exe文件在“开始”菜单的“运行”中无法运行啊。其实不然,只要在命令行方式下输入cmd /c \.c:con就可以运行这个程序了。在运行时会有一个cmd窗口一闪而过,下木马者一般来说会对其进行改进,方法有很多,可以利用开机脚本,也可以利用cmd.exe的autorun:在注册表HKEY_LOCAL_ MACHINESoftwareMicrosoftCommand Processor下建一个字串AutoRun,值为要运行的.bat文件或.cmd文件的路径,如c:winntsystem32auto.cmd,如果建立相应的文件,它的内容为@\.c:con,就可以达到隐蔽的效果。
对于这类特殊的文件夹,发现后我们可以采用如下方法来删除它:先用del \.c:con.exe命令删除con.exe文件(该文件假设就是其中的木马文件名),然后再用rd \.c:aux命令删除aux文件夹即可。
好了,文章到这里就结束了。由于水平有限,文中如有不正确或值得商榷的地方欢迎大家批评指点,另外,写作时曾参阅过网上高手们的帖子,受益匪浅,在此一并谢过!
不过,AutoRun不仅能应用于光盘中,同样也可以应用于硬盘中(要注意的是,AutoRun.inf必须存放在磁盘根目录下才能起作用)。让我们一起看看AutoRun.inf文件的内容吧。
打开记事本,新建一个文件,将其命名为AutoRun.inf,在AutoRun.inf中键入以下内容:
[AutoRun]
Icon=C:WindowsSystemShell32.DLL,21
Open=C:Program FilesACDSeeACDSee.exe
其中,“[AutoRun]”是必须的固定格式,一个标准的AutoRun文件必须以它开头,目的是告诉系统执行它下面几行的命令;第二行“Icon=C:WindowsSystemShell32.DLL,21”是给硬盘或光盘设定一个个性化的图标,“Shell32.DLL”是包含很多Windows图标的系统文件,“21”表示显示编号为21的图标,无数字则默认采用文件中的第一个图标;第三行“Open=C:Program FilesACDSeeACDSee.exe”指出要运行程序的路径及其文件名。
如果把Open行换为木马文件,并将这个AutoRun.inf文件设置为隐藏属性,我们点击硬盘时就会启动木马。
为防止遭到这样的“埋伏”,可以禁止硬盘AutoRun功能。在“开始”菜单的“运行”中输入Regedit,打开注册表编辑器,展开到HKEY_CURRENT_USERSoftware MicrosoftWindowsCurrentVersionPoliciesExploer主键下,在右侧窗口中找到“NoDriveTypeAutoRun”,就是它决定了是否执行CDROM或硬盘的AutoRun功能。将其键值改为9D,00,00,00就可以关闭硬盘的AutoRun功能,如果改为B5,00,00,00则禁止光盘的AutoRun功能。修改后重新启动计算机,设置就会生效。
看看你是为谁在养“木马”
[ 2007-03-25 04:11:44 | 作者: sun ]
当你发现自己的爱机中了木马时一定很气愤,很想知道是谁把马放在你的爱机里。这里先简单解释一下原理,怎么去找出马的主人吧!
现在很多木马都有发IP信件的功能,“冰河”就是其中的佼佼者,也是国内用得最多的木马。它能把你上地的动态IP,电脑里的隐藏密码和个人信息等在受害密码和个人信息等在受害者不知道的情况下记录下来并发到指定的E-mail信箱。我们就利用它发的IP信是明文信息的特点(现在好像还没有哪个木马发的IP信有进行过加密的),用sniffer类软件把它记录下来。这样我们就能知道对你用过木马那人的E-mail了。所以我们不要立即把爱机里的木马清除掉(不入虎穴焉得虎子),因为我们还要靠它找出它的主人呢!
首先去下载必要的工具,http://www.xfocus.org/htm1/data/tools/winsniff.zip(在DOS下运行)或HTTP://www.guanqian.com/starkun/tools/other/mpsnif01013.zip(在windos下运行)。两个不同环境下运行的工具各有所长。
一、DOS下winsniff的用法
在c盘创建一个winsniff目录,把包解压,解压后它里面有七个文件。
打开一个MS-DOS窗口(“点击开始--程序--MS-DOS方式”)进入winsniff目录(在MSDOS方式下输入cd\winsniff,跟着按车键)。接着输入winsniff/1,按回车,检查拨号适配器的编号(这里检查结果为0)。
输入winsniff/a 0 /a mail.txt,按回车,这时显示,其中的“0”是表示你的拨号适配器即modem的编号,当你还装有其它网络设备(如:局域网网卡)时它就不一定是0了,那时就要因应不同的需要而改变,“mail.txt”是表示记录文件的名字,可以任意取名字。
接着就是拨号上网或与网络连接(局域网的用户),等着winsniff帮你截获信息吧。
当你看到显示,出现“[mail]”时请按“ctrl+c”键结束程序,这时你就可以用笔记本打开“mail.txt”文件看看里面的信息了,是不是很惊讶呢,你的密码什么的都给记录下来了!记录文件中的“TO:”后面显示的E-mail地址就是木马主人的E-mail地址了,跟阒想怎么利用这E-mail地址对付那可恶的人就你自已喜欢了,呵呵。但不要玩过火了!这软件的优点是比较稳定不容易出错;缺点就是操作烦琐,适合具备一点DOS操作经验的人用,但我个人比较喜欢用它,因为稳定!
二、Windows下masnif的使用
在c盘创建一个mpsnif目录,把它解压,解压后有四个文件。通过双击MPSnif文件运行软件,它的工作界面如图4所示。
首先要对它进行一下设置,点击一下设置,点击一下“setup”按钮就会出现所示对话框,“Dicectory(目录)”后原来填的是“c:\”,把它改为“C:\mpsnif\”,而“DNS”可以忽略,点击“OK”按钮后它会再出现一个对话框,忽略它点击“确定”即可。然后把软件关掉再重新启动,这时刚才的设置就生效了。
选择要监视的设备,一般是选“拨号适配器”(如果你还装了其它网络设备,并且要对它进行监视才选你要监视的设备)。还要选择要监视的协议,单击“TCP ports”选中“Smtp(25)”,使它的前面有个钩。
这时可以点击“Start”按钮使软件开始工作,按着要做的就是拨号上网或与网络连接(局域网的用户),等着MPsnif帮你截获信息。我们也可以去干别的事,这时MPSnif会显示很多数据记录。
等下到网后再到“C:mpsnif”目录中查找并打开文件名为XXX_XXX_XXX_XXX$XXX-XXX_XXX_XXX_XXX$25_XXXXXXX的文件(其中$XXXX为你在发信出去时在本机打开的承受机端口,而它前面的XXX_XXX_XXX_XXX是你该次上网的IP地址;$25为邮件服务器打开的S M T P 端口,它前面的XXXXXX为该邮件的大小),在文件里“TO:”后面的E-mail地址就是木马主人的E-mail地址了。这软件的优点是操作较为简单方便,容易使用,功能比上面那个强(还有很多别的监视功能,有兴趣的可以自己研究。);缺点是不够稳定,常提示你程序出错(可能是它还是测试版的原因吧,或是我的系统出了问题),但不会影响到它的拦截数据的功能,它适合那些对电脑了解不深的人应用。
三、使用注意事项
1.运行这两个软件时都必须要在拨号上网或与网络连接前就运行,因为这样才能肯定拦截到木马所发出的IP信;
2.在运行这两个软件时不要作任何收发邮件的工作,因为这样会影响到拦截数据的准确性,给你造成“误报”的可能性;
3.这两个软件者不是百分之百的不会出问题,有时可能会拦截不到,请多试一两次提高准确率;
4.我们知道木马主人的E-mail后,记得把爱机里的木马给清除了,这样才能彻底的杜绝其他人对你爱机进行的木马侵扰;
5.在给木马主人的惩罚时请适可而止,不要过火了,到时候造成别的人严重损失时理亏就会变成你了;
6.这两个软件都会牵涉到一些别的安全问题,请不要用来做违法的事
现在很多木马都有发IP信件的功能,“冰河”就是其中的佼佼者,也是国内用得最多的木马。它能把你上地的动态IP,电脑里的隐藏密码和个人信息等在受害密码和个人信息等在受害者不知道的情况下记录下来并发到指定的E-mail信箱。我们就利用它发的IP信是明文信息的特点(现在好像还没有哪个木马发的IP信有进行过加密的),用sniffer类软件把它记录下来。这样我们就能知道对你用过木马那人的E-mail了。所以我们不要立即把爱机里的木马清除掉(不入虎穴焉得虎子),因为我们还要靠它找出它的主人呢!
首先去下载必要的工具,http://www.xfocus.org/htm1/data/tools/winsniff.zip(在DOS下运行)或HTTP://www.guanqian.com/starkun/tools/other/mpsnif01013.zip(在windos下运行)。两个不同环境下运行的工具各有所长。
一、DOS下winsniff的用法
在c盘创建一个winsniff目录,把包解压,解压后它里面有七个文件。
打开一个MS-DOS窗口(“点击开始--程序--MS-DOS方式”)进入winsniff目录(在MSDOS方式下输入cd\winsniff,跟着按车键)。接着输入winsniff/1,按回车,检查拨号适配器的编号(这里检查结果为0)。
输入winsniff/a 0 /a mail.txt,按回车,这时显示,其中的“0”是表示你的拨号适配器即modem的编号,当你还装有其它网络设备(如:局域网网卡)时它就不一定是0了,那时就要因应不同的需要而改变,“mail.txt”是表示记录文件的名字,可以任意取名字。
接着就是拨号上网或与网络连接(局域网的用户),等着winsniff帮你截获信息吧。
当你看到显示,出现“[mail]”时请按“ctrl+c”键结束程序,这时你就可以用笔记本打开“mail.txt”文件看看里面的信息了,是不是很惊讶呢,你的密码什么的都给记录下来了!记录文件中的“TO:”后面显示的E-mail地址就是木马主人的E-mail地址了,跟阒想怎么利用这E-mail地址对付那可恶的人就你自已喜欢了,呵呵。但不要玩过火了!这软件的优点是比较稳定不容易出错;缺点就是操作烦琐,适合具备一点DOS操作经验的人用,但我个人比较喜欢用它,因为稳定!
二、Windows下masnif的使用
在c盘创建一个mpsnif目录,把它解压,解压后有四个文件。通过双击MPSnif文件运行软件,它的工作界面如图4所示。
首先要对它进行一下设置,点击一下设置,点击一下“setup”按钮就会出现所示对话框,“Dicectory(目录)”后原来填的是“c:\”,把它改为“C:\mpsnif\”,而“DNS”可以忽略,点击“OK”按钮后它会再出现一个对话框,忽略它点击“确定”即可。然后把软件关掉再重新启动,这时刚才的设置就生效了。
选择要监视的设备,一般是选“拨号适配器”(如果你还装了其它网络设备,并且要对它进行监视才选你要监视的设备)。还要选择要监视的协议,单击“TCP ports”选中“Smtp(25)”,使它的前面有个钩。
这时可以点击“Start”按钮使软件开始工作,按着要做的就是拨号上网或与网络连接(局域网的用户),等着MPsnif帮你截获信息。我们也可以去干别的事,这时MPSnif会显示很多数据记录。
等下到网后再到“C:mpsnif”目录中查找并打开文件名为XXX_XXX_XXX_XXX$XXX-XXX_XXX_XXX_XXX$25_XXXXXXX的文件(其中$XXXX为你在发信出去时在本机打开的承受机端口,而它前面的XXX_XXX_XXX_XXX是你该次上网的IP地址;$25为邮件服务器打开的S M T P 端口,它前面的XXXXXX为该邮件的大小),在文件里“TO:”后面的E-mail地址就是木马主人的E-mail地址了。这软件的优点是操作较为简单方便,容易使用,功能比上面那个强(还有很多别的监视功能,有兴趣的可以自己研究。);缺点是不够稳定,常提示你程序出错(可能是它还是测试版的原因吧,或是我的系统出了问题),但不会影响到它的拦截数据的功能,它适合那些对电脑了解不深的人应用。
三、使用注意事项
1.运行这两个软件时都必须要在拨号上网或与网络连接前就运行,因为这样才能肯定拦截到木马所发出的IP信;
2.在运行这两个软件时不要作任何收发邮件的工作,因为这样会影响到拦截数据的准确性,给你造成“误报”的可能性;
3.这两个软件者不是百分之百的不会出问题,有时可能会拦截不到,请多试一两次提高准确率;
4.我们知道木马主人的E-mail后,记得把爱机里的木马给清除了,这样才能彻底的杜绝其他人对你爱机进行的木马侵扰;
5.在给木马主人的惩罚时请适可而止,不要过火了,到时候造成别的人严重损失时理亏就会变成你了;
6.这两个软件都会牵涉到一些别的安全问题,请不要用来做违法的事
新手也能对付病毒:看端口清木马
[ 2007-03-25 04:11:33 | 作者: sun ]
如果计算机里存在着木马病毒和未经授权的远程控制软件,那别人不但能得到你所有的隐私信息和账号密码,更能随时夺走计算机的控制权,本文主要讲述如何关闭这两类软件。
需要说明的一点是,本文介绍的各种木马及未授权被安装的远程控制软件均是由于没有正确的设置管理员密码导致系统被侵入而存在的。因此请先检查系统中所有帐号的口令是否设置的足够安全。
口令设置要求:
1.口令应该不少于8个字符;
2.不包含字典里的单词、不包括姓氏的汉语拼音;
3.同时包含多种类型的字符,比如大写字母(A,B,C,..Z)、小写字母(a,b,c..z)、数字(0,1,2,…9)、标点符号(@,,!,$,%,& …)。
注意:下文中提到的相关路径根据您的操作系统版本不同会有所不同,请根据自己的系统做相应的调整。根据系统安装的路径不同,目录所在盘符也可能不同,如系统安装在D盘,请将C:\Windows改为D:\Windows依此类推。
大部分的木马程序都可以改变默认的服务端口,我们应该根据具体的情况采取相应的措施,一个完整的检查和删除过程如下例所示:
例:113端口木马的清除(仅适用于Windows系统):这是一个基于irc聊天室控制的木马程序。
1.首先使用netstat -an命令确定自己的系统上是否开放了113端口;
2.使用fport命令察看出是哪个程序在监听113端口;
例如我们用fport看到如下结果:
Pid ProcessPort Proto Path
392 svchost -> 113 TCP
C:\WinNT\system32\vhos.exe
我们就可以确定在监听在113端口的木马程序是vhos.exe而该程序所在的路径为c:\Winnt\system32下。
3.确定了木马程序名(就是监听113端口的程序)后,在任务管理器中查找到该进程,并使用管理器结束该进程。
4.在开始-运行中键入regedit运行注册表管理程序,在注册表里查找刚才找到那个程序,并将相关的键值全部删掉。
5.到木马程序所在的目录下删除该木马程序。(通常木马还会包括其他一些程序,如rscan.exe、psexec.exe、ipcpass.dic、ipcscan.txt等,根据木马程序不同,文件也有所不同,你可以通过察看程序的生成和修改的时间来确定与监听113端口的木马程序有关的其他程序)。
6.重新启动机器。
707端口:
这个端口开放表示你可能感染了nachi蠕虫病毒,该蠕虫的清除方法如下:
1、停止服务名为WinS Client和Network Connections Sharing的两项服务;
2、删除c:\Winnt\SYSTEM32\WinS\目录下的DLLHOST.EXE和SVCHOST.EXE文件;
3、编辑注册表,删除HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services项中名为RpcTftpd和RpcPatch的两个键值。
1999端口:
这个端口是木马程序BackDoor的默认服务端口,该木马清除方法如下:
1、使用进程管理工具将notpa.exe进程结束;
2、删除c:\Windows\目录下的notpa.exe程序;
3、编辑注册表,删除HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Windows \CurrentVersion \Run项中包含c:\Windows\notpa.exe /o=yes的键值。
2001端口:
这个端口是木马程序黑洞2001的默认服务端口,该木马清除方法如下:
1、首先使用进程管理软件将进程Windows.exe杀掉;
2、删除c:\Winnt\system32目录下的Windows.exe和S_Server.exe文件;
3、编辑注册表,删除HKEY_LOCAL_MACHINE\Software \Microsoft \Windows \CurrentVersion \RunServices\项中名为Windows的键值;
4、将HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\CLASSES项中的Winvxd项删除;
5、修改HKEY_CLASSES_ROOT \txtfile \shell \open \command项中的c:\Winnt\system32\S_SERVER.EXE %1为C:\WinNT\NOTEPAD.EXE %1;
6、修改HKEY_LOCAL_MACHINE \Software \CLASSES \txtfile\shell \open \command项中的c:\Winnt\system32\S_SERVER.EXE %1键值改为 C:\WinNT\NOTEPAD.EXE %1。
2023端口:
这个端口是木马程序Ripper的默认服务端口,该木马清除方法如下:
1、使用进程管理工具结束sysrunt.exe进程;
2、删除c:\Windows目录下的sysrunt.exe程序文件;
3、编辑system.ini文件,将shell=explorer.exe sysrunt.exe 改为shell=explorer.exe后保存;
4、重新启动系统。
2583端口:
这个端口是木马程序Wincrash v2的默认服务端口,该木马清除方法如下:
1、编辑注册表,删除HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Windows \CurrentVersion \Run\项中的WinManager = "c:\Windows\server.exe"键值;
2、编辑Win.ini文件,将run=c:\Windows\server.exe改为run=后保存退出;
3、重新启动系统后删除C:\Windows\system\ SERVER.EXE。
3389端口:
首先说明3389端口是Windows的远程管理终端所开的端口,它并不是一个木马程序,请先确定该服务是否是你自己开放的。如果不是必须的,请关闭该服务。
Win2000关闭的方法:
1、Win2000server
开始-->程序-->管理工具-->服务里找到Terminal Services服务项,选中属性选项将启动类型改成手动,并停止该服务。
2、Win2000pro
开始-->设置-->控制面板-->管理工具-->服务里找到Terminal Services服务项,选中属性选项将启动类型改成手动,并停止该服务。
Winxp关闭的方法:
在我的电脑上阌壹∈粜?->远程,将里面的远程协助和远程桌面两个选项框里的勾去掉。
4444端口:
如果发现你的机器开放这个端口,可能表示你感染了msblast蠕虫,清除该蠕虫的方法如下:
1、使用进程管理工具结束msblast.exe的进程;
2、编辑注册表,删除HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run项中的"Windows auto update"="msblast.exe"键值;
3、删除c:\Winnt\system32目录下的msblast.exe文件。
4899端口:
首先说明4899端口是一个远程控制软件(remote administrator)服务端监听的端口,他不能算是一个木马程序,但是具有远程控制功能,通常杀毒软件是无法查出它来的,请先确定该服务是否是你自己开放并且是必需的。如果不是请关闭它。
关闭方法:
1、请在开始-->运行中输入cmd(98以下为command),然后 cd C:\Winnt\system32(你的系统安装目录),输入r_server.exe /stop后按回车。
然后在输入r_server /uninstall /silence;
2、到C:\Winnt\system32(系统目录)下删除r_server.exe admdll.dll raddrv.dll三个文件。
5800,5900端口:
首先说明5800,5900端口是远程控制软件VNC的默认服务端口,但是VNC在修改过后会被用在某些蠕虫中。请先确认VNC是否是你自己开放并且是必须的,如果不是请关闭。
关闭方法:
1、首先使用fport命令确定出监听在5800和5900端口的程序所在位置(通常会是c:\Winnt\fonts\explorer.exe);
2、在任务管理器中杀掉相关的进程(注意有一个是系统本身正常的,请注意!如果错杀可以重新运行c:\Winnt\explorer.exe);
3、删除C:\Winnt\fonts\中的explorer.exe程序;
4、删除注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run项中的Explorer键值;
5、重新启动机器。
6129端口:
首先说明6129端口是一个远程控制软件(dameware nt utilities)服务端监听得端口,他不是一个木马程序,但是具有远程控制功能,通常的杀毒软件是无法查出它来的。请先确定该服务是否是你自己安装并且是必需的,如果不是请关闭。
关闭方法:
1、选择开始-->设置-->控制面板-->管理工具-->服务
找到DameWare Mini Remote Control项点击右键选择属性选项,将启动类型改成禁用后停止该服务;
2、到c:\Winnt\system32(系统目录)下将DWRCS.EXE程序删除;
3、到注册表内将HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\项中的DWRCS键值删除。
需要说明的一点是,本文介绍的各种木马及未授权被安装的远程控制软件均是由于没有正确的设置管理员密码导致系统被侵入而存在的。因此请先检查系统中所有帐号的口令是否设置的足够安全。
口令设置要求:
1.口令应该不少于8个字符;
2.不包含字典里的单词、不包括姓氏的汉语拼音;
3.同时包含多种类型的字符,比如大写字母(A,B,C,..Z)、小写字母(a,b,c..z)、数字(0,1,2,…9)、标点符号(@,,!,$,%,& …)。
注意:下文中提到的相关路径根据您的操作系统版本不同会有所不同,请根据自己的系统做相应的调整。根据系统安装的路径不同,目录所在盘符也可能不同,如系统安装在D盘,请将C:\Windows改为D:\Windows依此类推。
大部分的木马程序都可以改变默认的服务端口,我们应该根据具体的情况采取相应的措施,一个完整的检查和删除过程如下例所示:
例:113端口木马的清除(仅适用于Windows系统):这是一个基于irc聊天室控制的木马程序。
1.首先使用netstat -an命令确定自己的系统上是否开放了113端口;
2.使用fport命令察看出是哪个程序在监听113端口;
例如我们用fport看到如下结果:
Pid ProcessPort Proto Path
392 svchost -> 113 TCP
C:\WinNT\system32\vhos.exe
我们就可以确定在监听在113端口的木马程序是vhos.exe而该程序所在的路径为c:\Winnt\system32下。
3.确定了木马程序名(就是监听113端口的程序)后,在任务管理器中查找到该进程,并使用管理器结束该进程。
4.在开始-运行中键入regedit运行注册表管理程序,在注册表里查找刚才找到那个程序,并将相关的键值全部删掉。
5.到木马程序所在的目录下删除该木马程序。(通常木马还会包括其他一些程序,如rscan.exe、psexec.exe、ipcpass.dic、ipcscan.txt等,根据木马程序不同,文件也有所不同,你可以通过察看程序的生成和修改的时间来确定与监听113端口的木马程序有关的其他程序)。
6.重新启动机器。
707端口:
这个端口开放表示你可能感染了nachi蠕虫病毒,该蠕虫的清除方法如下:
1、停止服务名为WinS Client和Network Connections Sharing的两项服务;
2、删除c:\Winnt\SYSTEM32\WinS\目录下的DLLHOST.EXE和SVCHOST.EXE文件;
3、编辑注册表,删除HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services项中名为RpcTftpd和RpcPatch的两个键值。
1999端口:
这个端口是木马程序BackDoor的默认服务端口,该木马清除方法如下:
1、使用进程管理工具将notpa.exe进程结束;
2、删除c:\Windows\目录下的notpa.exe程序;
3、编辑注册表,删除HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Windows \CurrentVersion \Run项中包含c:\Windows\notpa.exe /o=yes的键值。
2001端口:
这个端口是木马程序黑洞2001的默认服务端口,该木马清除方法如下:
1、首先使用进程管理软件将进程Windows.exe杀掉;
2、删除c:\Winnt\system32目录下的Windows.exe和S_Server.exe文件;
3、编辑注册表,删除HKEY_LOCAL_MACHINE\Software \Microsoft \Windows \CurrentVersion \RunServices\项中名为Windows的键值;
4、将HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\CLASSES项中的Winvxd项删除;
5、修改HKEY_CLASSES_ROOT \txtfile \shell \open \command项中的c:\Winnt\system32\S_SERVER.EXE %1为C:\WinNT\NOTEPAD.EXE %1;
6、修改HKEY_LOCAL_MACHINE \Software \CLASSES \txtfile\shell \open \command项中的c:\Winnt\system32\S_SERVER.EXE %1键值改为 C:\WinNT\NOTEPAD.EXE %1。
2023端口:
这个端口是木马程序Ripper的默认服务端口,该木马清除方法如下:
1、使用进程管理工具结束sysrunt.exe进程;
2、删除c:\Windows目录下的sysrunt.exe程序文件;
3、编辑system.ini文件,将shell=explorer.exe sysrunt.exe 改为shell=explorer.exe后保存;
4、重新启动系统。
2583端口:
这个端口是木马程序Wincrash v2的默认服务端口,该木马清除方法如下:
1、编辑注册表,删除HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Windows \CurrentVersion \Run\项中的WinManager = "c:\Windows\server.exe"键值;
2、编辑Win.ini文件,将run=c:\Windows\server.exe改为run=后保存退出;
3、重新启动系统后删除C:\Windows\system\ SERVER.EXE。
3389端口:
首先说明3389端口是Windows的远程管理终端所开的端口,它并不是一个木马程序,请先确定该服务是否是你自己开放的。如果不是必须的,请关闭该服务。
Win2000关闭的方法:
1、Win2000server
开始-->程序-->管理工具-->服务里找到Terminal Services服务项,选中属性选项将启动类型改成手动,并停止该服务。
2、Win2000pro
开始-->设置-->控制面板-->管理工具-->服务里找到Terminal Services服务项,选中属性选项将启动类型改成手动,并停止该服务。
Winxp关闭的方法:
在我的电脑上阌壹∈粜?->远程,将里面的远程协助和远程桌面两个选项框里的勾去掉。
4444端口:
如果发现你的机器开放这个端口,可能表示你感染了msblast蠕虫,清除该蠕虫的方法如下:
1、使用进程管理工具结束msblast.exe的进程;
2、编辑注册表,删除HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run项中的"Windows auto update"="msblast.exe"键值;
3、删除c:\Winnt\system32目录下的msblast.exe文件。
4899端口:
首先说明4899端口是一个远程控制软件(remote administrator)服务端监听的端口,他不能算是一个木马程序,但是具有远程控制功能,通常杀毒软件是无法查出它来的,请先确定该服务是否是你自己开放并且是必需的。如果不是请关闭它。
关闭方法:
1、请在开始-->运行中输入cmd(98以下为command),然后 cd C:\Winnt\system32(你的系统安装目录),输入r_server.exe /stop后按回车。
然后在输入r_server /uninstall /silence;
2、到C:\Winnt\system32(系统目录)下删除r_server.exe admdll.dll raddrv.dll三个文件。
5800,5900端口:
首先说明5800,5900端口是远程控制软件VNC的默认服务端口,但是VNC在修改过后会被用在某些蠕虫中。请先确认VNC是否是你自己开放并且是必须的,如果不是请关闭。
关闭方法:
1、首先使用fport命令确定出监听在5800和5900端口的程序所在位置(通常会是c:\Winnt\fonts\explorer.exe);
2、在任务管理器中杀掉相关的进程(注意有一个是系统本身正常的,请注意!如果错杀可以重新运行c:\Winnt\explorer.exe);
3、删除C:\Winnt\fonts\中的explorer.exe程序;
4、删除注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run项中的Explorer键值;
5、重新启动机器。
6129端口:
首先说明6129端口是一个远程控制软件(dameware nt utilities)服务端监听得端口,他不是一个木马程序,但是具有远程控制功能,通常的杀毒软件是无法查出它来的。请先确定该服务是否是你自己安装并且是必需的,如果不是请关闭。
关闭方法:
1、选择开始-->设置-->控制面板-->管理工具-->服务
找到DameWare Mini Remote Control项点击右键选择属性选项,将启动类型改成禁用后停止该服务;
2、到c:\Winnt\system32(系统目录)下将DWRCS.EXE程序删除;
3、到注册表内将HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\项中的DWRCS键值删除。
微软的IE和OFFICE前几个月一直受zero-day攻击之扰。它已经形成了一个惯例循环,微软每月在“补丁星期二”发布新的补丁,而在此前后就会出现一大把新的zero-day攻击。黑客们想要在微软能够对付它之前,最大可能地延长他们的zeroday攻击存在的时间。
微软利用客户反馈,自动工具,以及加入反病毒联盟这些方法来了解每个新的zero-day攻击的波及广度。如果该攻击波及很广,微软会加快正常的补丁周期,并且在下一个补丁星期二之前发布修正补丁。如果攻击没有广泛传播,通常都会是这种情况,微软就会等到正常的发布补丁的星期二到了再发布。花正常的时间开发和测试补丁通常意味着那补丁会很稳定(最近这对微软来说甚至变得很难做到……这就是题外话了)。
当决定按正常周期发布对付一个不是很紧急的zero-day补丁的时候,微软也很痛苦。媒体上到处都是关于最新bug,面对骗局如何自救等等。即使是我最喜欢的dshield.org,也早早加入媒体的队伍,抓着微软在上百万恶意攻击到处蔓延的时候不立刻发布补丁的痛处不放。在最近的几期攻击中,所谓的“百万恶意攻击”波及范围都是不超过100的。
但是别人眼中的自己才是真实的自己,在最新补丁调试阶段微软只有忍受痛苦。无论威胁是否只是适度地传播,消费者在官方发布补丁或者其他补偿保护措施(比如配置查杀程序)可用之前,只有苦苦等待。大多数用户从来不使用替代保护方案,因此在使用官方补丁之前他们仍处于无保护状态。
因此,很多第三方公司开始发布防护补丁,以便在官方补丁发布之前弥补空白。最集中的表现就是,新Zeroday紧急响应组(ZERT)。ZERT由一些杰出的程序员和安全专家组成,他们致力于在官方补丁滞后于大众需要的时候提供补丁。ZERT的Z保护平台允许人们开发和使用第三方微软Windows补丁,并且在卖主提供补丁后允许人们卸载该第三方补丁。
另一些专业人士,比如Jesper Johansson博士,他以前是微软的高级安全员。他建议人们使用能够阻止zero-day代码的补偿防御措施。Jesper最近提出了一些可靠的安全修正程序,它们能够使用组策略快速配置。
微软以及其他很多安全专家警告用户们不要使用第三方补丁以及修正程序。大多数用户都应该认真听取这些意见。首先,第三方补丁以及修正程序通常都没有像官方补丁那样彻底测试过。一个微软的人员曾经告诉我,每个IE安全补丁在发布之前都要经过数以千计的退化测试。
比起它们解决的问题来说,第三方补丁确实造成更多问题。即使是Jesper那优秀的VML保护脚本也曾在打了普通补丁的Windows系列计算机中引起问题。
但是有了官方警告,我觉得任何拥有知识丰富的网管的公司都能够从第三方补丁和针对危机的及时的建议中获得好处,前提是网管有时间彻底测试第三方补丁或修正程序。有些第三方对出现的漏洞等反应很快:例如,Jesper为自己的修正程序编写更新——他一旦注意到问题就会立刻给出建议;ZERT似乎在怎样应用它的补丁上作了正确选择,系统不用修改原始的那个压缩的可执行文件。
我认为,如果一个广泛传播的攻击对你的系统环境有极大危险,你应该考虑测试并使用第三方的补丁或者修正程序。管理层应当意识到第三方补丁的性质,风险并下最终决定。任何新的补丁——甚至是官方补丁——你都应当彻底测试,并且准备测试后的复原方案以防安了补丁后情况更糟。
微软利用客户反馈,自动工具,以及加入反病毒联盟这些方法来了解每个新的zero-day攻击的波及广度。如果该攻击波及很广,微软会加快正常的补丁周期,并且在下一个补丁星期二之前发布修正补丁。如果攻击没有广泛传播,通常都会是这种情况,微软就会等到正常的发布补丁的星期二到了再发布。花正常的时间开发和测试补丁通常意味着那补丁会很稳定(最近这对微软来说甚至变得很难做到……这就是题外话了)。
当决定按正常周期发布对付一个不是很紧急的zero-day补丁的时候,微软也很痛苦。媒体上到处都是关于最新bug,面对骗局如何自救等等。即使是我最喜欢的dshield.org,也早早加入媒体的队伍,抓着微软在上百万恶意攻击到处蔓延的时候不立刻发布补丁的痛处不放。在最近的几期攻击中,所谓的“百万恶意攻击”波及范围都是不超过100的。
但是别人眼中的自己才是真实的自己,在最新补丁调试阶段微软只有忍受痛苦。无论威胁是否只是适度地传播,消费者在官方发布补丁或者其他补偿保护措施(比如配置查杀程序)可用之前,只有苦苦等待。大多数用户从来不使用替代保护方案,因此在使用官方补丁之前他们仍处于无保护状态。
因此,很多第三方公司开始发布防护补丁,以便在官方补丁发布之前弥补空白。最集中的表现就是,新Zeroday紧急响应组(ZERT)。ZERT由一些杰出的程序员和安全专家组成,他们致力于在官方补丁滞后于大众需要的时候提供补丁。ZERT的Z保护平台允许人们开发和使用第三方微软Windows补丁,并且在卖主提供补丁后允许人们卸载该第三方补丁。
另一些专业人士,比如Jesper Johansson博士,他以前是微软的高级安全员。他建议人们使用能够阻止zero-day代码的补偿防御措施。Jesper最近提出了一些可靠的安全修正程序,它们能够使用组策略快速配置。
微软以及其他很多安全专家警告用户们不要使用第三方补丁以及修正程序。大多数用户都应该认真听取这些意见。首先,第三方补丁以及修正程序通常都没有像官方补丁那样彻底测试过。一个微软的人员曾经告诉我,每个IE安全补丁在发布之前都要经过数以千计的退化测试。
比起它们解决的问题来说,第三方补丁确实造成更多问题。即使是Jesper那优秀的VML保护脚本也曾在打了普通补丁的Windows系列计算机中引起问题。
但是有了官方警告,我觉得任何拥有知识丰富的网管的公司都能够从第三方补丁和针对危机的及时的建议中获得好处,前提是网管有时间彻底测试第三方补丁或修正程序。有些第三方对出现的漏洞等反应很快:例如,Jesper为自己的修正程序编写更新——他一旦注意到问题就会立刻给出建议;ZERT似乎在怎样应用它的补丁上作了正确选择,系统不用修改原始的那个压缩的可执行文件。
我认为,如果一个广泛传播的攻击对你的系统环境有极大危险,你应该考虑测试并使用第三方的补丁或者修正程序。管理层应当意识到第三方补丁的性质,风险并下最终决定。任何新的补丁——甚至是官方补丁——你都应当彻底测试,并且准备测试后的复原方案以防安了补丁后情况更糟。
禁用Scripting Host防范网页黑手
[ 2007-03-25 04:10:27 | 作者: sun ]
来自网络的攻击手段越来越多了,一些恶意网页会利用软件或系统操作平台等的安全漏洞,通过执行嵌入在网页HTML超文本标记语言内的Java Applet小应用程序、javaScript脚本语言程序、ActiveX软件部件交互技术支持可自动执行的代码程序,
强行修改用户操作系统的注册表及系统实用配置程序,从而达到非法控制系统资源、破坏数据、格式化硬盘、感染木马程序的目的。
目前来自网页黑手的攻击分为两种:一种是通过编辑的脚本程序修改IE浏览器;另外一种是直接破坏Windows系统。前者一般会修改IE浏览器的标题栏、默认主页等,关于此方面的文章比较多。下面就来介绍一些针对破坏Windows系统的网页黑手的防范方法。
黑手之一 格式化硬盘
这是一种非常危险的网页黑手,它会通过IE执行ActiveX部件并调用Format.com或Deltree.exe将硬盘格式化或者删除文件夹。在感染此类破坏程序后,会出现一个信息提示框,提示:“当前的页面含有不完全的ActiveX,可能会对你造成危害,是否执行?yes,no”,如果单击“是”,那么硬盘就会被迅速格式化,而这一切都是在后台运行的,不易被察觉。
防范的方法是:将本机的Format.com或Deltree.exe命令改名字。另外,对于莫名出现的提示问题,不要轻易回答“是”。可以按下[Ctrl+Alt+Del]组合键在弹出的“关闭程序”窗口中,将不能确认的进程中止执行。
黑手之二 耗尽系统资源
这种网页黑手会执行一段Java Script代码并产生一个死循环,以至不断消耗本机系统资源,最后导致系统死机。它们会出现在一些恶意网站或者邮件的附件中,只要打开附件程序后,屏幕上就会出现无数个IE窗口,最后只有重新启动计算机。
防范的方法是:不要轻易进入不了解的网站,也不要随便打开陌生人发来的E-mail中的附件,比如扩展名是VBS、HTML、HTM、DOC、EXE的文件。
黑手之三 非法读取文件
此类黑手会通过对ActiveX、JavaScript和WebBrowser control的调用来达到对本地文件进行读取。它还可以利用浏览器漏洞实现对本地文件的读取,避免此类攻击可以关闭禁用浏览器的JavaScript功能。
黑手之四 获取控制权限
此类黑手会利用IE执行Actives时候发生,虽然说IE提供对于“下载已签名的ActiveX控件”进行提示的功能,但是恶意攻击代码会绕过IE,在无需提示的情况下下载和执行ActiveX控件程序,而这时恶意攻击者就会取得对系统的控制权限。如果要屏蔽此类黑手,可以打开注册表编辑器,然后展开如下分支:
解决方法是在注册表分支HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerActiveX Compatibility 下为Active Setup controls创建一个基于CLSID的新键值 {6E449683_C509_11CF_AAFA_00AA00 B6015C},然后在新键值下创建一个REG_DWORD 类型的键Compatibility,并设定键值为0x00000400即可。
对于来自网上的种种攻击,在提高防范意识的同时,还需做好预防工作。
1.设定安全级别
鉴于很多攻击是通过包含有恶意脚本实现攻击,可以提高IE的级别。在IE中执行“工具/Internet选项”命令,然后选择“安全”选项卡,选择“Internet”后单击[自定义级别]按钮,在“安全设置”对话框中,将“ActiveX控件和插件”、“脚本”中的相关选项全部选择“禁用”,另外设定安全级别为“高”。需要注意的是,如果选择了“禁用”,一些需要使用ActiveX和脚本的网站可能无法正常显示。
2.过滤指定网页
对于一些包含有恶意代码的网页,可以将其屏蔽,执行“工具/Internet选项”命令,选择内容选项卡,在“分级审查”中单击[启用]按钮,打开“分级审查”对话框,选择“许可站点”选项卡,输入需要屏蔽网址,然后单击[从不]按钮,再单击[确定]按钮。
3.卸载或升级WSH
有些利用VBScript编制的病毒、蠕虫病毒,比如 “I LOVE YOU”和“Newlove”,它们都包含了一个以 VBS为后缀名的附件,打开附件后,用户就会被感染。这些病毒会利用Windows内嵌的 Windows Scripting Host 即WSH进行启动和运行。也就是说,如果将WSH禁用,隐藏在VB脚本中的病毒就无法被激活了。
在Windows 98中禁用WSH,打开“添加/删除”程序,选择“Windows 设置/附件”,并单击“详细资料”,取消“Windows Scripting Host”选项,完成后单击[确定]按钮即可。
在Windows 2000中禁用WSH的方法是,双击“我的电脑”图标,然后执行“工具/文件夹选项”命令,选择“文件类型”选项卡,找到“VBS VBScript Script File”选项,并单击[删除]按钮,最后单击[确定]即可。
另外,还可以升级WSH 5.6,IE浏览器可以被恶意脚本修改,就是因为IE 5.5以前版本中的WSH允许攻击者利用JavaScript中的Getobject函数以及htmlfilr ActiveX对象读取浏览者的注册表,可以在http://www.microsoft.com/下载最新版本的WSH。
4.禁用远程注册表服务
在Windows 2000/XP中,可以点击“控制面板/管理工具/服务”,用鼠标右键单击“Remote Registry”,然后在弹出的快捷方式中选择“属性”命令,在“常规”选项卡中单击[停止]按钮,这样可以拦截部分恶意脚本代码。
5.安装防火墙和杀毒软件
安装防火墙和杀毒软件可以拦截部分恶意代码程序,比如可以安装瑞星杀毒软件。
强行修改用户操作系统的注册表及系统实用配置程序,从而达到非法控制系统资源、破坏数据、格式化硬盘、感染木马程序的目的。
目前来自网页黑手的攻击分为两种:一种是通过编辑的脚本程序修改IE浏览器;另外一种是直接破坏Windows系统。前者一般会修改IE浏览器的标题栏、默认主页等,关于此方面的文章比较多。下面就来介绍一些针对破坏Windows系统的网页黑手的防范方法。
黑手之一 格式化硬盘
这是一种非常危险的网页黑手,它会通过IE执行ActiveX部件并调用Format.com或Deltree.exe将硬盘格式化或者删除文件夹。在感染此类破坏程序后,会出现一个信息提示框,提示:“当前的页面含有不完全的ActiveX,可能会对你造成危害,是否执行?yes,no”,如果单击“是”,那么硬盘就会被迅速格式化,而这一切都是在后台运行的,不易被察觉。
防范的方法是:将本机的Format.com或Deltree.exe命令改名字。另外,对于莫名出现的提示问题,不要轻易回答“是”。可以按下[Ctrl+Alt+Del]组合键在弹出的“关闭程序”窗口中,将不能确认的进程中止执行。
黑手之二 耗尽系统资源
这种网页黑手会执行一段Java Script代码并产生一个死循环,以至不断消耗本机系统资源,最后导致系统死机。它们会出现在一些恶意网站或者邮件的附件中,只要打开附件程序后,屏幕上就会出现无数个IE窗口,最后只有重新启动计算机。
防范的方法是:不要轻易进入不了解的网站,也不要随便打开陌生人发来的E-mail中的附件,比如扩展名是VBS、HTML、HTM、DOC、EXE的文件。
黑手之三 非法读取文件
此类黑手会通过对ActiveX、JavaScript和WebBrowser control的调用来达到对本地文件进行读取。它还可以利用浏览器漏洞实现对本地文件的读取,避免此类攻击可以关闭禁用浏览器的JavaScript功能。
黑手之四 获取控制权限
此类黑手会利用IE执行Actives时候发生,虽然说IE提供对于“下载已签名的ActiveX控件”进行提示的功能,但是恶意攻击代码会绕过IE,在无需提示的情况下下载和执行ActiveX控件程序,而这时恶意攻击者就会取得对系统的控制权限。如果要屏蔽此类黑手,可以打开注册表编辑器,然后展开如下分支:
解决方法是在注册表分支HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerActiveX Compatibility 下为Active Setup controls创建一个基于CLSID的新键值 {6E449683_C509_11CF_AAFA_00AA00 B6015C},然后在新键值下创建一个REG_DWORD 类型的键Compatibility,并设定键值为0x00000400即可。
对于来自网上的种种攻击,在提高防范意识的同时,还需做好预防工作。
1.设定安全级别
鉴于很多攻击是通过包含有恶意脚本实现攻击,可以提高IE的级别。在IE中执行“工具/Internet选项”命令,然后选择“安全”选项卡,选择“Internet”后单击[自定义级别]按钮,在“安全设置”对话框中,将“ActiveX控件和插件”、“脚本”中的相关选项全部选择“禁用”,另外设定安全级别为“高”。需要注意的是,如果选择了“禁用”,一些需要使用ActiveX和脚本的网站可能无法正常显示。
2.过滤指定网页
对于一些包含有恶意代码的网页,可以将其屏蔽,执行“工具/Internet选项”命令,选择内容选项卡,在“分级审查”中单击[启用]按钮,打开“分级审查”对话框,选择“许可站点”选项卡,输入需要屏蔽网址,然后单击[从不]按钮,再单击[确定]按钮。
3.卸载或升级WSH
有些利用VBScript编制的病毒、蠕虫病毒,比如 “I LOVE YOU”和“Newlove”,它们都包含了一个以 VBS为后缀名的附件,打开附件后,用户就会被感染。这些病毒会利用Windows内嵌的 Windows Scripting Host 即WSH进行启动和运行。也就是说,如果将WSH禁用,隐藏在VB脚本中的病毒就无法被激活了。
在Windows 98中禁用WSH,打开“添加/删除”程序,选择“Windows 设置/附件”,并单击“详细资料”,取消“Windows Scripting Host”选项,完成后单击[确定]按钮即可。
在Windows 2000中禁用WSH的方法是,双击“我的电脑”图标,然后执行“工具/文件夹选项”命令,选择“文件类型”选项卡,找到“VBS VBScript Script File”选项,并单击[删除]按钮,最后单击[确定]即可。
另外,还可以升级WSH 5.6,IE浏览器可以被恶意脚本修改,就是因为IE 5.5以前版本中的WSH允许攻击者利用JavaScript中的Getobject函数以及htmlfilr ActiveX对象读取浏览者的注册表,可以在http://www.microsoft.com/下载最新版本的WSH。
4.禁用远程注册表服务
在Windows 2000/XP中,可以点击“控制面板/管理工具/服务”,用鼠标右键单击“Remote Registry”,然后在弹出的快捷方式中选择“属性”命令,在“常规”选项卡中单击[停止]按钮,这样可以拦截部分恶意脚本代码。
5.安装防火墙和杀毒软件
安装防火墙和杀毒软件可以拦截部分恶意代码程序,比如可以安装瑞星杀毒软件。
现在很多单位都配置了局域网,为了便于进行网络管理,同时为了提高的登录网络的速度,网管人员一般都为局域网中的每台电脑都指定了IP地址。但是在Windows环境下其他用户很容易修改IP地址配置,这样就很容易造成IP地址冲突等故障,不利于网络的正常管理。
因此,最好能为IP地址加上一把“锁”,这样别人就不能轻易更改IP地址了。
在Windows 2000/XP中存在Netcfgx.dll,Netshell.dll和Netman.dll三个动态库文件,它们实际上是系统控件,在Windows 2000/XP的安装过程中会自动注册这些控件。这三个控件和Windows 2000/XP的网络功能紧密相关。当修改IP地址时,就需要用到这三个控件。因此,只要将上述三个控件卸载,就可以屏蔽网络连接窗口,这样无论是双击桌面上的网上邻居图标,还是在控制面板中双击“网络连接”项,都无法正常进入网络连接窗口,也就无法在本地连接属性窗口中修改IP地址了。
在“开始/运行”中输入“Cmd.exe”,确认后打开CMD窗口,在其中分别执行“Regsvr32 /u Netcfgx.dll”、“Regsvr32 /u Netcfgx.dll”、“Regsvr32 /u Netcfgx.dll”命令,就可以将上述控件从系统中卸载。当然,如果以后需要修改IP地址的话,可以上述控件逐一注册即可。注册的方法很简单,只要将上述命令中的“/u”参数去掉,就可以执行注册操作了。例如执行命令“Regsvr32 Netcfgx.dll”就完成了控件Netcfgx.dll的注册。
因此,最好能为IP地址加上一把“锁”,这样别人就不能轻易更改IP地址了。
在Windows 2000/XP中存在Netcfgx.dll,Netshell.dll和Netman.dll三个动态库文件,它们实际上是系统控件,在Windows 2000/XP的安装过程中会自动注册这些控件。这三个控件和Windows 2000/XP的网络功能紧密相关。当修改IP地址时,就需要用到这三个控件。因此,只要将上述三个控件卸载,就可以屏蔽网络连接窗口,这样无论是双击桌面上的网上邻居图标,还是在控制面板中双击“网络连接”项,都无法正常进入网络连接窗口,也就无法在本地连接属性窗口中修改IP地址了。
在“开始/运行”中输入“Cmd.exe”,确认后打开CMD窗口,在其中分别执行“Regsvr32 /u Netcfgx.dll”、“Regsvr32 /u Netcfgx.dll”、“Regsvr32 /u Netcfgx.dll”命令,就可以将上述控件从系统中卸载。当然,如果以后需要修改IP地址的话,可以上述控件逐一注册即可。注册的方法很简单,只要将上述命令中的“/u”参数去掉,就可以执行注册操作了。例如执行命令“Regsvr32 Netcfgx.dll”就完成了控件Netcfgx.dll的注册。