修改注册表权限加强对木马、病毒的防范_注册表

 

  一、问题的提出

  大部分的木马及部分的病毒是通过注册表的自启动项或文件关联或通过系统服务实现自启动的,详见《Windows的自启动方式》,那是否有一种方法可以防止木马或病毒修改注册表项及增加服务呢?

  二、问题的解决

  windows2000/xp/2003的注册表是可以设置权限的,只是我们比较少用到。设置以下注册表键的权限:

  1、设置注册表自启动项为everyone只读(Run、RunOnce、RunService),防止木马、病毒通过自启动项目启动
  2、设置.txt、.com、.exe、.inf、.ini、.bat等等文件关联为everyone只读,防止木马、病毒通过文件关联启动
  3、设置注册表HKLM\SYSTEM\CurrentControlSet\Services为everyone只读,防止木马、病毒以"服务"方式启动

  注册表键的权限设置可以通过以下方式实现:

  1、如果在域环境里,可能通过活动目录的组策略实现的

  2、本地计算机的组策略来(命令行用secedit)

  3、本文通过setacl这个程序加批处理实现,可以在http://www.helge.mynetcologne.de/setacl/下载

  4、手工操作可以通过regedt32(windows2000系统,在菜单“安全”下的“权限”)或regedit(windows2003/xp,在“编辑”菜单下的“权限”)

  批处理代码在后面给出。

  如果只有users组权限,以上键值默认是只读的,就可以不用这么麻烦了。

  三、适用人群

  1)、对电脑不是很熟悉,不经常安装/卸载软件的人

  2)、喜欢在网上下载软件安装的朋友

  3)、每台电脑的操作人员都有管理员权限,这些人的电脑水平又参差不齐的企业

  四、还存在的问题

  1)、安装杀毒软件,打补丁的时候都可能对那些注册表进行操作,这样就得先恢复权限设置,再安装,安装完成后重新设置。不方便

  2)、防不住3721,不知是不是3721的权限太高了(听说3721是通过驱动程序启动的,有ring 0级权限)

  3)、只适合windows2000/xp/2003,其他的就没办法了

  4)、只能对付那些简单的病毒和木马

  五、其他

  大家看完本文看,可能禁不住大骂:神经病,两三句话就说完的事,非得搞得像论文,写这么一大堆,浪费我时间。如果真的是这样,那真的是对不起了。只因为公司在实施ISO,我也觉得ISO里提倡的东西蛮好的,为了规范化我的文档,我就多做些练习了。

  打包好的程序可以到:
https://www.xfocus.net/php/tools.php?sub=down&tid=741下载。

  六、批处理源代码

@goto start
==============================================================
名称:反特洛伊木马
功能:

     1、禁用自启动项目(run runonce runservices)
     2、禁止修改.txt、.com、.exe、.inf、.ini、.bat等等文件关联
     3、禁止修改"服务"信息

原理:设置注册表权限为只读

版本修订情况

版本号     修订日期    修订人  修订内容
1.0        2004-12-22  netu0  创建本脚本            
==============================================================
:start
@SETLOCAL
@rem 活动代码页设为中文
@chcp 936>nul 2>nul
@echo.
@echo ************************************************************
@echo #
@echo #         欢迎使用反特洛伊木马程序
@echo #
@echo #
@echo ************************************************************

:chkOS
@echo.
@ver|find "2000" > nul 2>nul
@if "%ERRORLEVEL%"=="0" goto :2000
@ver|find "Microsoft Windows [版本 5" > nul 2>nul
@if "%ERRORLEVEL%"=="0" goto :2003
@ver|find "XP" > nul 2>nul
@if "%ERRORLEVEL%"=="0" goto :XP
@echo.
@echo #您的操作系统不是Windows 2000/XP/2003中的一种,无法使用。
@goto quit

@rem 在下面语句插不同系统的不同命令
:2000
@set UpdatePolicy=secedit /refreshpolicy machine_policy>nul 2>nul
@goto Selection

:XP
@set UpdatePolicy=GPUpdate /Force>nul 2>nul
@goto Selection

:2003
@set UpdatePolicy=GPUpdate /Force>nul 2>nul
@goto Selection

:Selection
@rem User Choice
@echo.
@echo 请输入以下选项前面的数字
@echo.
@echo 1: 安装反特洛伊木马保护
@echo 2: 删除反特洛伊木马保护(恢复默认设置)
@echo 3: 查看技术信息
@echo 4: 退出
@echo.
@set /p UserSelection=输入您的选择(1、2、3、4)
@if "%UserSelection%"=="1" goto install
@if "%UserSelection%"=="2" goto uninstall
@if "%UserSelection%"=="3" goto information
@if "%UserSelection%"=="4" goto quit
@rem 输入其他字符
@cls
@goto Selection

:information
@cls
@echo

============================================================
@echo #
@echo #         欢迎使用反特洛伊木马程序
@echo #
@echo #功能:
@echo #
@echo #   1、设置注册表自启动项为只读(Run、RunOnce、RunService),
@echo #      防止木马、病毒通过自启动项目启动
@echo #   2、设置.txt、.com、.exe、.inf、.ini、.bat等等文件关联为只读,
@echo #      防止木马、病毒通过文件关联启动
@echo #   3、设置注册表HKLM\SYSTEM\CurrentControlSet\Services为只读
@echo #      防止木马、病毒以"服务"方式启动
@echo #     
@echo #注意事项: 
@echo #    某些安装程序也会用到以上注册表键,请在安装前运行本程序,
@echo #    然后选择2,恢复默认设置。安装完成后,重新运行本程序,
@echo #    然后选择1,实施反特洛伊木马保护
@echo ==============================================================
@echo.
@echo 按任意键,返回选择
@pause>nul 2>nul
@cls
@goto Selection
:install
@set OP=/grant everyone /read  /p:no_dont_copy
@goto Doit
:uninstall
@set OP=/revoke everyone /read  /p:yes
@goto Doit

:Doit
@echo.
@echo 正在执行操作...
@rem HKLM
@setacl machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /registry %OP%>nul 2>nul
@setacl machine\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /registry %OP%>nul 2>nul
@setacl machine\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices /registry %OP%>nul 2>nul
@setacl machine\SOFTWARE\Microsoft\Windows\CurrentVersion\RunEX /registry %OP%>nul 2>nul
@setacl machine\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEX /registry %OP%>nul 2>nul
@setacl machine\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesEx /registry %OP%>nul 2>nul

@rem HKCU
@setacl CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /registry %OP%>nul 2>nul
@setacl CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /registry %OP%>nul 2>nul
@setacl CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices /registry %OP%>nul 2>nul
@setacl CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunEX /registry %OP%>nul 2>nul
@setacl CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEX /registry %OP%>nul 2>nul
@setacl CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesEx /registry %OP%>nul 2>nul
@setacl CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce /registry %OP%>nul 2>nul

@rem USERS
@setacl USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /registry %OP%>nul 2>nul
@setacl USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /registry %OP%>nul 2>nul
@setacl USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices /registry %OP%>nul 2>nul
@setacl USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunEX /registry %OP%>nul 2>nul
@setacl USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEX /registry %OP%>nul 2>nul
@setacl USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesEx /registry %OP%>nul 2>nul
@setacl USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce /registry %OP%>nul 2>nul

@rem Services
@setacl MACHINE\SYSTEM\CurrentControlSet\Services /registry %OP%>nul 2>nul

@rem CLASSES_ROOT
@setacl CLASSES_ROOT\exefile\shell\open\command /registry %OP%>nul 2>nul
@setacl CLASSES_ROOT\inifile\shell\open\command /registry %OP%>nul 2>nul
@setacl CLASSES_ROOT\txtfile\shell\open\command /registry %OP%>nul 2>nul
@setacl CLASSES_ROOT\comfile\shell\open\command /registry %OP%>nul 2>nul
@setacl CLASSES_ROOT\batfile\shell\open\command /registry %OP%>nul 2>nul
@setacl CLASSES_ROOT\inffile\shell\open\command /registry %OP%>nul 2>nul

@echo 正在更新帐户策略、审核策略......
@REM [刷新本地安全策略]
@%UpdatePolicy%>nul 2>nul
@echo 帐户策略、审核策略更新完成

:complete
@echo 操作完成
@echo.
@echo.
@echo 请按任意键退出。
@pause>nul 2>nul

:quit
@rem Clear
@del %systemroot%\system32\setacl.exe>nul 2>nul
@del %systemroot%\system32\AntiTrojanhorse.bat>nul 2>nul

@ENDLOCAL

 

时间: 2024-11-08 08:43:10

修改注册表权限加强对木马、病毒的防范_注册表的相关文章

注册表检查程序Scanreg你用了吗?_注册表

注册表是Windows的命根子,如果注册表损坏了,轻则导致程序运行出错,严重的则会使整个系统崩溃,因此我们要经常做好注册表的检查和维护工作,以保证注册表的安全.在Windows中系统提供了较为实用的注册表检查程序,但许多用户对此程序不太了解,下面就向大家介绍它的具体用法. 在Windows中注册表检查程序有两个,一个是在Windows视窗界面中使用的scanregw.e xe程序,另一个是在DOS方式下使用的scanreg.exe程序.它们的功能和作用都不相同. scanregw.exe程序能够

[注册表]原理结构及恢复IE浏览器实例_注册表

摘要:本文分析了与IE浏览器相关的Windows注册表的键,以解决目前常见的上网时IE设置被修改后无法复原问题. 常在网上浏览的网友,大多遇到过这样令人头疼的问题:当访问完某个主页时,IE设置被莫名其妙地修改,如标题和默认主页被更换.右键快捷菜单增加了某些内容.系统启动时增加了弹出框.更有甚者,您的默认主页选项被disable(不能更改)了等等.不少网友迫于无奈,只好将整个系统格式化掉,代价实在太大了.事实上,这些更改均是利用改写系统注册表实现的. 本文通过介绍系统注册表的原理及注册表编辑器的使

注册表Win2000安全设置—注册表使用全攻略之十六_注册表

利用注册表Win2000安全设置-注册表使用全攻略之十六 注:更改的注册表项目位于HKEY_CURRENT_USER中. 如果针对某一用户,更改位于HKEY_USERS\(S-1-5-21-746137067-507921405-1060284298-500)(用户代码)下的相应键值. 1. 防止他人获取对Web页面的访问信息 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs用于保存IE历史记录的,保存最近浏览的25

恶意网页之注册表后门—注册表使用全攻略之十九_注册表

恶意网页之注册表后门-注册表使用全攻略之十九 浏览器顽固不改, 修改注册表成功,重新启动后又恢复到被修改的状态 主要是修改注册表后留后门,目的让你修改注册表好像成功,重新启动后又恢复到被修改的状态. 这主要是在启动项里留了后门,大家可以打开注册表到 HKCU\Software\Microsoft\Windows\CurrentVersion\Run HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce HKCU\Software\Micro

注册表故障的原因及恢复和方法_注册表

注册表出现故障的一般现象是在你装载Win 95时,屏幕上会给出如下消息: Registry File was not found.Registry services may be inoperative for this session.(没找到注册表文件,本次任务注册无效).并给出重新启动进行自动恢复和忽略两选项.若选择自动恢复,则重新启动后系统会自动用备份文件恢复系统上一次成功启动时的状态值.但如果连续出现两次这样的情况,一般是连备份文件也损坏了,就需要进行下面的工作. 出现注册表故障的可能

XP注册表之性能优化—注册表使用全攻略之十八_注册表

XP注册表之性能优化-注册表使用全攻略之十八     1.加快开机及关机速度 在[开始]-->[运行]-->键入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],将字符串值[HungAppTimeout]的数值数据更改为[200],将字符串值[WaitToKillAppTimeout]的数值数据更改为1000.另外在[HKEY_LOCAL_MACHINE]-->[System]-->[Cur

利用注册表限制特定程序运行—注册表使用全攻略之十四_注册表

利用注册表限制特定程序运行-注册表使用全攻略之十四 对于一些与系统密切相关的程序,如果随意让其他人使用,非常容易造成死机甚至系统崩溃.通过系统本身的注册表来限制特定程序的运行. 1.一键锁通关 我们要做的是在注册表中加入"RestrictRun"键值,以此来限制绝大多数程序的运行 . 运行"Regedit"打开注册表编辑器,展开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\E

保存和配置系统硬件注册信息—注册表使用全攻略之十二_注册表

保存和配置系统硬件注册信息-注册表使用全攻略之十二 电脑用的时间长了,经常要更换一些硬件设备,重复安装驱动程序也就成了家常便饭,这样就致使电脑中残留下很多硬件注册信息,系统启动时就会试图与不存在的设备通讯,从而导致系统速度的下降.如何删除这些注册信息呢?格式化么?太麻烦了吧! 其实Windows有个"硬件配置文件"功能,它是用来告诉电脑在启动时启动哪些硬件设备,第一次安装Windows时,系统就默认创建了一个配置文件"Original Configuration"(

通过注册表禁用DOS窗口来保护系统安全_注册表

1.禁用MS-DOS方式 有时候为了安全,我们将装有重要数据的分区隐藏起来,但是其他用户可以通过MS-DOS方式访问到这个驱动器.因此,为了安全起见,需要禁止用户通过使用MS-DOS方式,其操作步骤为: 打开"注册表编辑器",随后依次展开"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\WinOldApp"分支(如果WinOldApp分支不存在,我们可以新建).在注册表的右侧窗