灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:1234回复:0

浅谈利用注册表添加服务启动程序

楼主#
更多 发布于:2013-06-23 19:17
现在添加系统服务的工具很多,最典型的就是netservice。但是我们这里讲的是手工添加系统服务,所以工具的使用不在本文的讨论范围之内。
 现在很多的木马、后门、蠕虫病毒都是通过修改注册表中的RUN键值来实现自启动。
 
但是这种自启动模式不是很隐蔽的,稍微懂点安全的人,一般发现电脑被黑,都会查看RUN键值的。
 
于是系统服务便成为了一种相对隐蔽的自启动模式。比如冲击波杀手就采用系统服务来自启动病毒程序。
 WINDOWS里的很多东西都是跟注册表息息相关的,系统服务也不例外。
 
系统服务跟以下的注册表几个项目相关:
 
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
 
HKEY_LOCAL_MACHINESYSTEMControlSet001Services
 
HKEY_LOCAL_MACHINESYSTEMControlSet002Services
 我们完全可以找到在系统服务中已注册的服务的键值来照葫芦画瓢。
 在以上任何注册表列中添加一个新项:
 
名字是你想要添加系统服务的名字,比如Backdoor。
 
在BACKDOOR项下新建一个字符串,数值名称Displayname 数值数据为要添加服务的
 
名称Backdoor。
 下面列出一个表,会直观一些:
 
名称 类型 数据 备注
 
Displayname REG_SZ 想要添加服务的名称
 Description REG_SZ 服务的描述
 ImagePath REG EXPAND SZ 程序的路径
 Start REG_DWORD 0,2,3,4 2代表自动启动,3代表手动启动服务.4代表禁用服务,0代表系统对底层设备驱动(一般不需要这个)
 ErrorControl REG_DWORD 1
 Type REG_DWORD 10 or 20 一般应用程序都是10,其他的对应20
 ObjectName REG_SZ LocalSystem 显示本地登陆
 这里同样需要注意的是注册表文件里的ImagePath的数值类型必须是HEX(16进制)。可以拿WINHEX来把程序的绝对路径转换成16进制的。每一个数值用逗号搁开。比如我的ImagePath键值是C:winntnukegroup.exe那就应该转换成:
 63,3A,5C,77,69,6E,6E,74,5C,6E,75,6B,65,2E,65,78,65(无空格)
 
打开记事本,敲入以下内容:
 
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSRVTEST]
 
“Type”=dword:00000010
 
“Start”=dword:00000002
 
“ErrorControl”=dword:00000001
 
“ImagePath”=hex(2):63,3A,5C,77,69,6E,6E,74,5C,6E,75,6B,65,2E,65,78,65
 
“DisplayName”=”SRVTEST”
 
“ObjectName”=”LocalSystem”
 
“Description”=”系统服务测试”
 
把以上信息保存为addsrv.reg,我们就可以依靠命令来导入注册表,从而达到添加系统服务的目的。
 
我们在命令控制台输入regedit /s addsrv.reg,等机器重新启动,这个服务就被成功添加了。
 
剩下的大家继续发挥,另外求基友指点

喜欢0 评分0
游客

返回顶部