本次文章为大家梳理一些注册表常见的危险操作,希望可以帮大家规避一些在日常使用中可能会遇到的问题。
映象劫持IFEO(Image File Execution Options)
在低版本的windows中,我们可以简单地替换程序,但是在高版本的windows中替换的文件收到了系统的保护,所以这里我们要使用另外一个知识点:“映像劫持”。
是为一些在默认环境中运行时可能引发错误的程序执行体提供特殊的环境设定。由于这个项主要是用来调试程序用的,对一般用户意义不大。默认是只有管理员和local system有权读写修改。
简单来说就是当目标程序被映像劫持时,当我们启动目标程序时,启动的是劫持后的程序。操作也很简单,在注册表HKML\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Option下添加一个项sethc.exe,然后在sethc.exe这个项中添加debugger键,键值为我们恶意程序的路劲。最终我们按五次shift就会直接打开cmd,如果为恶意软件就会达到效果。
注册表自启动项
木马程序和后门程序一把都需要依靠自启动进行,自启动项有这两个键:Run和RunOnce,两者的区别如下:
Run:该项下的键值即为开机启动项,每一次随着开机而启动。
RunOnce:RunOnce和Run差不多,唯一的区别就是RunOnce的键值只作用一次,执行完毕后就会自动删除。
常见注册表启动项键的位置
用户级
|\HKEY_CURRETN_USER\Softwaer\Microsoft\Windows\CurrentVeerion\Run
||\HKEY_CURRETN_USER\Softwaer\Microsoft\Windows\CurrentVeerion\RunOnce
影子用户
一个用户·顾名思义就是一个隐藏用户,只能通过注册表查看这个用户,其他方式是找不到这个用户的信息。在用户后面加一个
可
以
创
建
一
个
匿
名
用
户
,
创
建
完
毕
后
我
们
再
把
这
个
用
户
添
加
到
a
d
m
i
n
i
s
t
e
a
t
o
r
组
(
用
户
命
令
在
后
面
的
常
用
命
令
中
详
细
讲
解
)
n
e
t
u
s
e
r
t
e
s
t
可以创建一个匿名用户,创建完毕后我们再把这个用户添加到administeator组(用户命令在后面的常用命令中详细讲解) net user test
可以创建一个匿名用户,创建完毕后我们再把这个用户添加到administeator组(用户命令在后面的常用命令中详细讲解)netusertest test/add
net localgroup administrators test$/add
可以看到net user是看不到我们创建的用户,但是计算机管理-用户和组中可以看到
给予这个用户足够的管理员权限,在注册表中把该用户的注册表信息进行备份。位置为
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users
注意:SAM键值默认只能是system权限修改的,所以我们要修改一下SAM键的权限。在此项上右键,选择权限可以打开权限修改
我们将administrator用户对应的项中的f值复制到test
对
应
项
中
的
F
值
,
并
将
t
e
s
t
对应项中的F值,并将test
对应项中的F值,并将test导出。通过命令将test
删
除
掉
n
e
t
u
s
e
r
t
e
s
t
删除掉 net user test
删除掉netusertest/del
双击导出的注册表文件,查看用户
net user和计算机管理-用户和组中都查看不到用户了,但是可以用net user test
查
看
用
户
信
息
,
这
个
用
户
是
存
在
的
,
只
是
无
法
被
查
看
,
但
是
可
以
使
用
这
个
用
户
能
系
统
进
行
操
作
。
使
用
n
e
t
u
s
e
r
t
e
s
t
查看用户信息,这个用户是存在的,只是无法被查看,但是可以使用这个用户能系统进行操作。使用net user test
查看用户信息,这个用户是存在的,只是无法被查看,但是可以使用这个用户能系统进行操作。使用netusertest/del无法删除这个用户,最终只能通过注册表来删除。
OFFICE系列
Word WLL
把dll文件保存在%APPDATA%\Microsoft\Word\Startup,然后把后缀名改为wll。PS:Startup支持启动多个wll打开word,成功弹框
Excel XLL
将Eexcel DLL文件复制到%appdata%\MICROSOFT\ADDINS目录下,然后再修改注册表,office版本对应的注册表位置如下:
HKEY_CURRENT_USER\Software\Microsoft\Office
Office 2003: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0
Office 2007: HKEY_CURRENT_USER\Software\Microsoft\Office\12.0
Office 2010: HKEY_CURRENT_USER\Software\Microsoft\Office\14.0
Office 2010: HKEY_CURRENT_USER\Software\Microsoft\Office\15.0
如果64位的机器运行的是32位的office的话,路径是: HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Office<version>\Common\DRM.
假如使用的2010的,所以要修改HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options,添加一个键OPEN,键值为:/R fileName.dll
注意,这个DLL必须放在%appdata%\Microsoft\AddIns目录
PowerPoint VBA add-ins
将DLL文件复制到%appdata%\Microsoft\AddIns目录下,然后参考前面我给出的office版本对应的注册表位置,在HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\PowerPoint下新建一个子项:AddIns,然后再AddIns下面新建一个子项test,新建一个键为Autoload,类型为DWORD,键值为1:;新建一个键为Path,类型为SZ,键值为我们dll文件的路劲。
用户登录初始化
Userinit的作用是用户在进行登录初始化设置时,WinLogon进程会执行指定的login scrupts,所以我们可以修改它的键值来添加要执行的程序,注册表路劲为:HKLM\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON\USERINIT,添加需要自启动的程序,多个程序用逗号隔开。
Logon Scripts
Logon Scripts优先于av先执行,我们可以利用这一点来绕过av的敏感操作拦截注册表路劲为:HKEY_CURRENT_USER\Environment,创建一个键为:UserInitMprLogonScript,其键值为我们要启动的程序路劲
屏幕保护程序
在对方开始屏幕保护的情况下,我们可以修改屏保程序为我们的恶意程序从而达到后门持久化的目的其中屏幕保护的配置存储在注册表中,其位置为:HKCU\CONTROL PANEL\DESKTOP,关键键值如下:
SCRNSAVE.EXE:默认屏幕保护程序,我们可以把这个键值改为我们的恶意程序
SCREENSAVEACTIVE:1表示屏幕保护是启动状态,0表示屏幕保护是关闭状态
SCREENSAVERTIMEOUT:指定屏幕保护程序启动前系统的空闲事件,单位为秒,默认为900(15分钟)
注册表的安全配置
一、如何保护注册表的安全
Windows NT/2000中的注册表(Registry)是一系列的数据库文件,主要存储在系统安装目录\ System32\Config下,有些注册表文件建立和存储在内存中,这些文件的备份也存储在 系统安装目录\Repair下。由于所有配置和控制系统数据最终都存在于注册表中,而且Registry的缺省权限设置是对"所有人"“完全控制”(FullControl)和"创建"(create),这种设置可能会被恶意用户删除或者替换掉注册表(Registry)文件。所以,如果注册表权限没有设置好的话,整个 Windows NT/2000的系统就不安全,因此我们必须控制注册表的访问权。
对于注册表(Registry),建议应严格限制只能在本地进行注册,不能被远程访问,限制对注册表(Registry)编辑工具的访问。具体可以利用文件管理器设置只允许网络管理员使用注册表编辑工具regedit.exe或regedt32.exe,其他任何用户不得使用;还可使用第三方工具软件,比如Enterprise Administrator (Mission Critical Software)来锁住注册表(Registry)。或者把对注册表缺省的所有用户都能"完全控制"的权利改成只能"读取".
在"开始""运行"里面输入regedt32:
假设我们将HKEY_CURRENT_USER支更改成一般用户只能读,在菜单中选择"安全"“权限” :
选择组用户users(在win2000系统中默认uers是一般用户,如果在上面列表中没有定义users组权限,可以选择"添加"按纽,将该组进行权限设置)
同时,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg
这个键应该只允许Administrators组成员访问。
为了能识别用户,防止匿名登陆,应该在HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\LSA 下新建一个DWORD(双字节)类型的RestrictAnonymous项,并设置其值为1。
实际上,如果把用户操作注册表的这种权利设置成"只读",将会给一些应用软件带来许多潜在的功能性问题,比如Dlexpert(下载专家,一个下载软件),在下载的时候会将当前下载地址等信息写入到注册表里面,如果在设置了注册表权限的机器上运行该程序,会出现下载地址无法保存的现象,解决办法就是使用regedt32软件将用户权限更改回去,在这里,我们建议在重要服务器上不要安装和运行其他非系统的软件。
二,如何手动查找并清除可疑程序
第一种方法是查看系统注册表。先打开注册表。进入注册表后,可以通过查看以下主键:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run或RunServers
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run或RunServers
下面是否有类似Netspy.exe,空格.exe等可疑文件名,并手动删除键值和相应的程序。
第二种方法使用一些第三方软件,比如The Cleaner,它可以在 HYPERLINK “http://antivirus.pchome.net/cleaner/7066.html” [url]http://antivirus.pchome.net/cleaner/7066.html[/url]下载到。
三、加强对域和帐号数据库的管理
所谓"域"是指网络服务器和其他计算机的逻辑分组,凡是在共享域范围内的用户都使用公共的安全机制和用户帐号信息。每个用户有一个帐号,每次登录的是整个域,而不是某一个服务器。即使在物理上相隔较远,但在逻辑上可以在一个域上,这样便于管理。在网络环境下,使用域的管理就显得更为有效;在使用"域"的划分时,我们应该注意到"域"是建立在一个子网范围内,其根本基础是相互之间的信任度很高。
这里我们应该注意到在Windows NT/2000中,关于域的所用安全机制信息或用户帐号信息都存放在帐号数据库中(称为安全帐号管理器(SAM)数据库)。安全帐号管理器(SAM)数据库在磁盘上的具体位置就保存在系统安装目录下的system32\config\中的SAM文件,在这个目录下还包括一个SECURITY文件,也是安全数据库的内容。安全帐号管理器(SAM)数据库中包含所有组、帐户的信息,包括密码HASH结果、帐户的SID等。所以在对Windows NT/2000进行维护时应该特别小心安全帐号管理器(SAM)数据库的完整性,严格限制Administrator组和备份组帐户的成员资格。加强对这些帐户的跟踪,尤其是Administrator帐户的登录(Logon)失败和注销(Logoff)失败。对SAM进行的任何权限改变和对其本身的修改都要进行审计,切记要改变缺省权限设置来预防这个漏洞,一般来讲只有管理员才允许具有对以上两个文件的编辑权限。
四:修改共享目录默认控制权限
对于Windows NT/2000系统来说,默认情况下当新增一个共享目录时,操作系统会自动将EveryOne这个用户组添加到权限模块当中,由于这个组的默认权限是完全控制,结果使得任何人都可以对共享目录进行读写。因此,在新建共享目录之后,要立刻删除EveryOne组或者将该组的权限调整为读取:
五、禁止不必要的服务
Windows NT/2000系统中有许多用不着的服务自动处于激活状态,它们中可能存在的安全漏洞使***者甚至不需要账户就能控制机器.为了系统的安全,应把该关的功能服务及时关闭,从而大大减少安全风险。
具体操作可以在"控制面板"的"管理工具"里面"服务"菜单中,选取不必要的服务进行禁止:
相关需要禁止的服务如下:
Alerter:通知所选用户和计算机有关系统管理级警报。
Application Management:提供软件安装服务,诸如分派,发行以及删除。
ClipBook:支持"剪贴簿查看器",以便可以从远程剪贴簿查阅剪贴页面。
COM+ Event System:提供事件的自动发布到订阅 COM 组件。
Computer Browser:维护网络上计算机的最新列表以及提供这个列表给请求的程序。
Distributed Link Tracking Client:当文件在网络域的 NTFS 卷中移动时发送通知。
Distributed Transaction Coordinator:并列事务,是分布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。
Fax Service:帮助您发送和接收传真。
FTP publishing service: 通过 Internet 信息服务的管理单元提供 FTP 连接和管理。
Indexing Service:本地和远程计算机上文件的索引内容和属性;通过灵活查询语言提供文件快速访问。
Messenger:发送和接收系统管理员或者"警报器"服务传递的消息。
Net Logon:支持网络上计算机 pass-through 帐户登录身份验证事件。"
Network DDE : 提供动态数据交换 (DDE) 的网络传输和安全特性。
Network DDE DSDM : 管理网络 DDE 的共享动态数据交换
Network Monitor : 网络监视器
NetMeeting Remote Desktop Sharing:允许有权限的用户使用 NetMeeting 远程访问 Windows 桌面。
Plug and Play (在配置好所有硬件后应该禁止掉): 管理设备安装以及配置,并且通知程序关于设备更改的情况。
Remote Procedure Call (RPC): 提供终结点映射程序(endpoint mapper) 以及其它 RPC 服务。
Remote Registry Service:允许远程注册表操作。
Removable Storage:管理可移动媒体、驱动程序和库。
Routing and Remote Access:在局域网以及广域网环境中为企业提供路由服务。
RunAs Service:在不同凭据下启用启动过程。
Server: 提供 RPC 支持、文件、打印以及命名管道共享。
Smart Card:对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。
Smart Card Helper:提供对连接到计算机上旧式智能卡的支持。
Task Schedule: 允许程序在指定时间运行。
TCP/IP Netbios Helper:允许对"TCP/IP 上 NetBIOS (NetBT)"服务以及 NetBIOS 名称解析的支持
Telephone Service:供 TAPI 的支持,以便程序控制本地计算机,服务器以及 LAN 上的电话设备和基于 IP 的语音连接。
Windows Management Instrumentation:提供系统管理信息。
必要时需禁止的服务如下:
SNMP service:简单网络管理协议
SNMP trap:简单网络协议陷阱跟踪
UPS:USP电源管理。
六,如何加固IIS服务器的安全
Windows系统近几年的***都偏重在IIS上,曾在2001到2002年大肆流行的Nimda,CodeRed病毒等都是通过利用IIS的一些漏洞***并且开始传播的。由于NT/2000系统上使用IIS作为WWW服务程序居多,再加上IIS的脆弱性以及与操作系统相关性,整个NT/2000系统的安全性也受到了很大的影响。通过IIS的漏洞***来获得整个操作系统的管理员权限对于一台未经安全配置的机器来说是轻而易举的事情,所以,配置和管理好你的IIS在整个系统配置里面显得举足轻重了。
IIS的配置可以分为以下几方面:(以下操作均是使用Internet服务管理器操作,你可以在控制面板的管理工具里面找到该快捷方式,运行界面如下:)
a) 删除目录映射。
默认安装的IIS默认的根目录是C:\inetpub,我们建议你更改到其他分区的目录里面,比如:D:\inetpub目录。
默认在IIS里面有Scripts,IISAdmin,IISSamples,MSADC,IISHelp,Printers这些目录映射,建议你完全删除掉安装IIS默认映射的目录,包括在服务器上真实的路径(%systemroot%是一个环境变量,在具体每台服务器上可能不一样,默认值由安装时候选择目录决定):
Scripts对应c:\inetpub\scripts目录
IISAdmin对应%systemroot%\System32\inetsrv\iisadmin目录
IISSamples对应c:\inetpub\iissamples目录。
MSADC对应c:\program files\common files\system\msadc目录。
FTP日志默认位置:系统安装目录\system32\logfiles\msftpsvc1\日志文件
IISHelp对应%systemroot%\help\iishelp目录。
Printers对应%systemroot%web\printers目录。
还有一些IIS管理员页面目录:
IISADMPWD 对应%systemroot%\system32\inetsrv\iisadmpwd目录
IISADMIN 对应 %systemroot%\system32\inetsrv\iisadmin目录
b) 删除可执行文件扩展名(应用程序)映射。
在应用程序配置里面 (上图"配置按钮"),默认有以下程序映射:
如果不使用SSI(server side include, 服务器端嵌入脚本),建议删除".shtm" “.stm” 和 “.shtml"这些映射.像:”.cer" “.cdx” “htr” “idc” “printer"等,如无特别需要,建议只保留”.asp"和".asa"的映射。
c) Frontpage扩展服务
从控制面板里面打开"添加或删除程序"选择"添加/删除windows组件",
选择"Internet信息服务(IIS)",点"详细信息",请确认FrontPage 2000服务器扩展没有被勾上。如果有,则取消掉,点确定就可以了。
提示: 微软公司提供了一个叫iislockd的程序,它可以用来帮助你更安全的配置IIS。除了上面的Frontpage扩展没有提供外,其他两点均能很好的支持。
下载地址:[url]http://download.microsoft.com/download/iis50/Utility/2.1/[/url]
NT45XP/EN-US/iislockd.exe
七,如何保护注册表的安全
Windows NT/2000中的注册表(Registry)是一系列的数据库文件,主要存储在系统安装目录\ System32\Config下,有些注册表文件建立和存储在内存中,这些文件的备份也存储在 系统安装目录\Repair下。由于所有配置和控制系统数据最终都存在于注册表中,而且Registry的缺省权限设置是对"所有人"“完全控制”(FullControl)和"创建"(create),这种设置可能会被恶意用户删除或者替换掉注册表(Registry)文件。所以,如果注册表权限没有设置好的话,整个 Windows NT/2000的系统就不安全,因此我们必须控制注册表的访问权。
对于注册表(Registry),建议应严格限制只能在本地进行注册,不能被远程访问,限制对注册表(Registry)编辑工具的访问。具体可以利用文件管理器设置只允许网络管理员使用注册表编辑工具regedit.exe或regedt32.exe,其他任何用户不得使用;还可使用第三方工具软件,比如Enterprise Administrator (Mission Critical Software)来锁住注册表(Registry)。或者把对注册表缺省的所有用户都能"完全控制"的权利改成只能"读取".
在"开始""运行"里面输入regedt32:
假设我们将HKEY_CURRENT_USER支更改成一般用户只能读,在菜单中选择"安全"“权限” :
选择组用户users(在win2000系统中默认uers是一般用户,如果在上面列表中没有定义users组权限,可以选择"添加"按纽,将该组进行权限设置)
同时,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg
这个键应该只允许Administrators组成员访问。
为了能识别用户,防止匿名登陆,应该在HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\LSA 下新建一个DWORD(双字节)类型的RestrictAnonymous项,并设置其值为1。
实际上,如果把用户操作注册表的这种权利设置成"只读",将会给一些应用软件带来许多潜在的功能性问题,比如Dlexpert(下载专家,一个下载软件),在下载的时候会将当前下载地址等信息写入到注册表里面,如果在设置了注册表权限的机器上运行该程序,会出现下载地址无法保存的现象,解决办法就是使用regedt32软件将用户权限更改回去,在这里,我们建议在重要服务器上不要安装和运行其他非系统的软件。
对于注册表的总结
注册表的概述
注册表示一个非常重要的数据库,映射了程序和配置的相关信息
注册表记录了用户安装在计算机上的软件和每个程序的相互关联信息,它包括了计算机的硬件配置,包括自动配置的即插即用的设备和已有的各种设备说明·状态属性·以及各种状态信息和数据。统一管理系统硬件设施·软件配置等信息,从而方便了管理,增强了系统的稳定性。
打开注册表的方法:通过windows键+R键打开命令提示界面,输入,regedit,regedit,exe或者regedt32,regedt32.exe四个名称都可以。
注册表结构说明
根键:称为HKEY…,某一项的句柄项:附加的文件夹和一个或多个值
子项:在某一个项{父项}下面出现的项(子项)—相对的概念
值项:带有一个名称和一个值的有序值,每个项都可包括任何数量的值项,值项由三个部分组成:名称,数据类型和数据(最大64项)
HKEY_CLASSES_ROOT----HKCR
包含启动应用程序所需的全部信息,包括扩展名,应用程序与文档之间的关系,驱动程序名,dde和ole信息,编号和应用程序与文档的图标等。
HKEY_CURRENT_USER----HKCU
被hkuser映射
包括当前登录用户的配置信息,包括环境变量,个人程序以及桌面设置等
HKEY_LOCAL_MACHINE—HKLM(优化速度,垃圾重灾区)
映射HKCC
包括本地计算机的系统信息,包括硬件和操作系统信息,安全数据和计算机专用的各类软件设置信息。
HKEY_USERS_DEFAULT—HKUSER
映射HKCU
包括计算机所有用户使用的配置数据,这些数据只有在用户登录系统时才能访问。这些信息告诉系统当前用户使用的图标,激活的程序组,开始菜单的内容以及颜色,字体。
HKEY_CURRENT_CONFIG----HKCC
被HKLM映射
包括当前硬件的配置信息
注册表破坏
1,无法启动系统
2,无法运行或正常运行合法的应用程序
3,找不到启动程序或运行应用程序所需的文件
4,没有访问应用程序的权限
5,不能正确安装或装入驱动程序
6,不能进行网络连接
7,注册表条目有错误
通过系统定期备份注册表,可以防止注册表被破坏后无法恢复的情况。
注册表优化
1,清除多余的dll文件
2,安装卸载应用程序的垃圾信息
3,系统安装时产生的无用信息:删除多余时区,清除国家列表,清除多余语言代码,删除多余的键盘布局,删除失效的文件关联。