网络安全 频道

利用第三方软件漏洞发起的攻击如何阻击

    合理限制服务程序的权限

    当黑客利用漏洞成功溢出后,得到一个远程连接的Cmdshell,这个Cmdshell的权限往往继承了被溢出的服务程序的初始权限,而大部分服务都是运行在系统的System账户权限下的,该账户的权限甚至超过系统中的Administrator账户。也就是说,如果溢出成功,黑客将成为系统中的管理员。

    虽然很大一部分系统内置的服务程序需要以System账户权限启动,但也有不少服务程序可以选择启动时的用户账户。对于这样的服务程序,我们可以在系统中建立一个较小权限的账户,并使用该账户启动服务程序。这样即使出现了漏洞,黑客也只能得到一个较小权限的Cmdshell。

    修改应用程序的安全属性

    当黑客得到一个较小权限的Cmdshell,往往不会善罢甘休,可能通过上传一个本地溢出的攻击程序进一步扩大其权限。所以说,即使是较小权限的Cmdshell也是危险的。那么,我们该如何阻止黑客得到Cmdshell呢?

    我们可以从提供Cmdshell环境的“cmd.exe”文件入手,通过修改Cmd的安全属性来阻止黑客。

    在NTFS文件系统中,可以为不同账户设置不同的应用程序的权限,这里通过添加一个最小权限的账户来限制cmd命令的使用。

    (1)添加账户

    使用命令“Net user hidden$ /add”添加一个属于“users”组的“hidden”账户。同时为“hidden”账户设置足够强壮的口令。

    提示:在账户名后加“$”符号可以建立隐藏账户,该账户在命令“net user”下不显示。

    (2)修改cmd.exe的安全属性

    在Windows的System32目录下找到“cmd.exe”文件,右键单击文件,在文件的“属性”中选择“安全”栏目,删除如图1所示的所有用户具有的权限。然后添加“hidden”用户,并分配权限。

    这样,就只有隐藏的“hidden”用户才有权使用“cmd.exe”文件,黑客即使得到了System账户的权限也无法使用“cmd.exe”文件。这样,黑客就不能通过Cmdshell进行破坏了,但这并不能完全阻止他。

    高明的黑客可以在溢出程序的代码中添加以下指令“net user hack 123 /add ”、“net localgroup administrators hack /add”,当溢出成功后,黑客就为自己在管理员组中添加一个口令为“123”的“hack”账户。同样,黑客通过指令还能启动Telnet服务、终止杀毒软件进程或下载木马文件。因此,我们还需要用上面的方法修改System32目录下面的“net.exe”、“net1.exe”、“ftp.exe”、“tftp.exe”这些文件的权限。

    注意:为什么采用这种复杂的方法而不是直接将这些程序改名或删除呢?这是因为这些文件是受Windows系统保护的,用户无法直接删除,即便删除后系统也会重新生成。

0
相关文章