网站地图    收藏   

主页 > 后端 > 网站安全 >

精简注册表高级用法之安全篇 - Windows操作系统

来源:自学PHP网    时间:2015-04-17 18:33 作者: 阅读:

[导读] 笔者发现现在介绍注册表的书籍的重点内容都讲解注册表关于个性化设置和系统优化等部分,而对于现实网络环境下日益猖獗的“黑客”行为、木马病毒以及那些令人恶心的恶意网站却...

笔者发现现在介绍注册表的书籍的重点内容都讲解注册表关于个性化设置和系统优化等部分,而对于现实网络环境下日益猖獗的“黑客”行为、木马病毒以及那些令人恶心的恶意网站却关注甚少。笔者在此就注册表有关安全内容略加阐述,希望能起抛砖引玉之效。
  一、注册表与“黑客”行为

  “黑客”利用注册表主要包括:

  A:突破部分网管软件限制

  B:共享特定硬盘分区并运行指定程序

  C:启动黑客程序等三方面,而其中又属B、C两方面危害较大。

  1、突破部分网管软件限制

  现在流行的网管软件基本上都可以对PC机采取隐藏桌面和硬盘特定分区、禁止修改IE浏览器、隐藏“开始”工具栏,封锁注册表编辑器regedit.exe等诸多限制,有的网吧管理员甚至到了变态的地步。于是“自由的战士”便开始利用注册表进行大突围。

  

\

    Word也可以给注册表解锁?没错!我们利用的是微软在Word中提供的“宏”,没想到吧?具体方法是:运行Word,然后编写如下面所示的这个“Unlock”宏,即可给注册表解锁:

  Sub Unlock()

  Dim RegPath As String

  RegPath = “HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem”

  System.PrivateProfileString(FileName:=“”,Section:=RegPath,Key:=“Disableregistrytools”)=“OK!”

  End Sub

  ③用JavaScript、VBScript脚本语言解锁

  脚本语言解锁注册表,这个没的说,很多恶意网站就是靠它来锁住我们的注册表,现在我们反其道行之用它来解锁注册表。这里只给出JavaScript的核心代码。用记事本编辑如下内容的文件,保存为以.js为后缀名的任意文件,使用时双击就可以了。

  VAR WSHShell=WSCRIPT.CREA-TOBJEt(“WSCRIPT.SHELL”);

  WSHShell.Popup(“解锁注册表”);

  WSHShell.RegWrite(“HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\

  system\DisableRegistryTools”, 0,“reg_dword”);

  需要注意:用JS对键值进行操作时要用两斜杠“\”,并且要用“;”表示结束.

  ④利用SCR文件给注册表解锁

  众所周知,SCR文件是屏保文件,SCR文件如何用来解锁注册表呢?方法是将注册表编辑器regedit.exe改名为Regedit.scr。然后,在桌面上点击鼠标右键,在弹出菜单中选择“属性”,在弹出的“显示属性”对话框中选中“屏幕保护程序”,在“屏幕保护程序”下拉列表框中找到Regedit这个“屏保文件”(图1),最后点击“预览”按纽,你会发现注册表编辑器成功地打开了。再更改相关键值,重启计算机后就可以给注册表解锁了!(记着把SCR文件改回哦!)

 

\

  图1

  ⑤用INF文件解锁

  在Windows中有一种后缀为INF的驱动安装文件,它实际上是一种脚本语言,通过解释来执行。它包含了设备驱动程序的所有安装信息,其中也有涉及修改注册表的相关语句,所以我们也可以利用INF文件对注册表解锁。

  [Version]

  Signature=“$CHICAGO$”

  [DefaultInstall]

  DelReg=UnLock

  [UnLock]

  HKCU,SoftwareMicrosoftWindowsCurrentVersionPolicies

  System,Disableregistrytools,

  1,00,00,00,00

  将上面的内容另存为后缀名是.inf的文件,使用时只要右键点击它,在弹出菜单中选择“安装”即可给注册表解锁(如图2)。

  

 

\

  图2

  

\

  首先我们打开记事本编辑reg文件如下:

   REGEDIT4

  [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion

  NetworkLanmanC$]   //这里我只共享了C盘,需要的可以再加

  “Path”=”C:\”

  “Remark”=“ ”

  “Type”=dword:00000000

  “Flags”=dword:00000192

  “Parm1enc”=hex:

  “Parm2enc”=hex:

  然后另存为ShareDrives.reg文件。再打开记事本,键入以下内容:

  [AutoRun]

  open=regedit /s ShareDrives.reg // 这里/s参数作用是导入注册表信息不显示任何提示

  再另存为AutoRun.inf文件。

  将这两个文件复制到对方共享出来的驱动盘根目录下,此后只要双击共享出来的驱动盘就会自动将ShareDrives.reg文件导入注册表,对方重启系统后C盘也就共享出来了。试想想,我们如果在 “open=…”句后添上木马名并将已配置好的木马服务端一起复制过去,以后会怎样?

  那么如何对付这种攻击呢?因为硬盘根目录下基本不需要AutoRun.inf文件来运行程序,因此我们可以采用一个一劳永逸的办法就是将硬盘的AutoRun功能完全关闭,这样即使硬盘根目录下有AutoRun.inf文件,操作系统也不会运行指定的程序。Win98为例,打开注册表编辑器,找到[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer]主键,在注册表编辑器右侧框中可以看到有二进制值“NoDriveTypeAutoRun”,最后只需要将其数据数值由默认的“95 00 00 00”改为“9d 00 00 00”就可以了。其原理我就不在讲解了。

  3、启动黑客程序

  利用注册表启动黑客程序,目的是想每次开机启动时自动运行黑客程序,这同时也是很多木马病毒自启动常用的方法之一。普遍的方法是在将黑客程序名及参数添加到注册表相应的键值下,这样一来,每次开机时计算机将自动加载相应的注册表项,进而使黑客程序达到常驻内存的目的。另外还有更为隐蔽的方法会在“注册表与木马病毒”部分详细介绍。

  下面我们打开注册表编辑器,查看:

  HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion下所有以“run”开头的键值;

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion下所有以“run”开头的键值;

  HKEY_USERS.DefaultSoftware MicrosoftWindowsCurrentVersion下所有以“run”开头的键值。

  如果发现未知不明的键值,可很有可能就是非法植入的程序。

  二、注册表与病毒

  下面我们来看看病毒是如何利用注册表的。一般,病毒会利用注册表来得到系统的基本信息,例如操作系统类型、系统安装的服务程序、IE、OutLook等应用软件的版本信息等等。这主要是为了探测系统及软件本身的漏洞然后加以利用。更主要的,病毒是想通过注册表实现黑客程序一样的目的——开机自启,常驻内存。只有这样,病毒才能感染其他机器和文件,才有机会进行“破坏”。

  打开注册表编辑器,我们找到:

  HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion下所有以“run”开头的键值;

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion下所有以“run”开头的键值;

  HKEY_USERS.DefaultSoftware MicrosoftWindowsCurrentVersion下所有以“run”开头的键值。

  大部分病毒都会悄悄的在上述三个位置安家。这时我们只需要删除相应的键值再删除掉病毒程序就可以了。

  此外,病毒还可以把自己注册为系统服务来达到更为隐蔽的开机自启的目的。其基本原理是利用在WIN2K中,“启动类型”设置为“自动”的服务,启动时系统就会自动运行,所以,病毒只需将自身添加到系统服务中,并将“启动类型”设置为“自动”就可以每次启动系统时都自动运行病毒程序。其在注册表中的位置如下:

  [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices ServiceNameParameters]

  “Application”= “C:\winnt\system32\ ServiceName.exe

  其中:ServiceName就是病毒名。

 不过病毒将自身注册为系统的“服务”程序还有一个缺点,就是在“系统配置实用程序”(在“开始→运行”中执行“Msconfig”)的“启动”项和“服务”项中可以看得到。那么有没有比这更隐蔽的方法呢?答案是肯定的。在“开始→运行”中执行“Gpedit.msc”。 打开“组策略”,可看到“本地计算机策略”中有两个选项:“计算机配置”与“用户配置”,展开“用户配置→管理模板→系统→登录”,双击“在用户登录时运行这些程序”子项进行属性设置,选定“设置”项中的“已启用”项并单击“显示”按钮弹出“显示内容”窗口,再单击“添加”按钮,在“添加项目”窗口内的文本框中输入要自启动的程序的路径,单击“确定”按钮就完成了。如图3所示:

  

\

  图3

 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论