现在很多的木马、后门、蠕虫病毒都是通过修改注册表中的RUN键值来实现自启动。但是这种自启动模式不是很隐蔽的,稍微懂点安全的人,一般发现电脑被黑,都会查看RUN键值的。于是系统服务便成为了一种相对隐蔽的自启动模式。比如冲击波杀手就采用系统服务来自启动病毒程序。
现在添加系统服务的工具很多,最典型的就是netservice。但是我们这里讲的是手工添加系统服务,所以工具的使用不在本文的讨论范围之内。WINDOWS里的很多东西都是跟注册表息息相关的,系统服务也不例外。
系统服务跟以下的注册表几个项目相关:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services
我们完全可以找到在系统服务中已注册的服务的键值来依样画葫芦。在以上任何注册表列中添加一个新项:
名字是你想要添加系统服务的名字,比如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 显示本地登陆
注意:在XP/2003下可以完全手工来添加REG EXPAND SZ类型。在XP/2003下直接修改ImagePath 键值就可以了。但是在WIN2000下却不可以。原因我也不清楚:(。但是在WIN2000下我们写一个REG来直接注册系统服务,这样WIN2000下添加系统也能很轻松了。这里同样需要注意的是注册表文件里的ImagePath的数值类型必须是HEX(16进制)。可以拿WINHEX来把程序的绝对路径转换成16进制的。每一个数值用逗号搁开。比如我的ImagePath键值是C:\winnt\nukegroup.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_MACHINE\SYSTEM\CurrentControlSet\Services\SRVTEST]
"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,等机器重新启动,这个服务就被成功添加了。但是我在真正实验的时候就遇到困难了。ImagePath的数值是乱码,
怎么想也不明白。但是这时可以把乱码修改成绝对路径了。如果直接把REG信息写成这样 "ImagePath"=hex(2):C:\WINNT\NUKEGROUP.EXE ,其他的键值都可以添加,这个键值就不可以了?总之我们可以先添加乱码的ImagePath,然后再修改成C:\winnt\nukegroup.exe 这样也不是不可能的。就是在命令行下来添加就很麻烦了。
以上是Windows 2000手工添加系统服务的方法,对于Windows 98 注册表结构是不一样的,但是Windows 98仍然可以通过注册表来实现添加系统服务,而且还要更简单一些。
在项目“HKLM/SOFTWARE/Microsoft/WindowsCurrentVersion/RunServices”下添加一个新字符串数值。比如,如果程序的名字叫做“BACKDOOR”,就建立一个名为“BACKDOOR”的字符串数值,然后在数据域中输入执行程序的完整路径。手工添加一个系统服务就这么简单,手工删除系统也是一个道理。通过注册表来实现,这里就不多说了。
|
· 网络追踪:谁在幕后频.. · 知己知彼 用VLAN技术防.. · 深信服上网行为管理设.. · 如何使用Nikto漏洞扫描.. · J0ker的CISSP之路:系.. · J0ker的CISSP之路:复.. |
· 企业如何建立渗透式网.. · 黑客兵法 攻破网络的十.. · 统一接入控制(UAC)部.. · 【有奖答题】第四期:S.. · 使用Yum自动更新Linux.. · 如果系统服务都是只读.. |
|
|||
| · 运营商封堵非法ADSL共享 · Windows Home Server .. · Windows Server 2008 · Sun以10亿美元并购开源.. · VoIP的安全性探讨 · 甲骨文85亿美元收购BEA · 如何优化IT 控制能耗 · 龙芯要做中国的“奔腾” |
· 手机病毒揭密 · 清除流氓软件——51CTO.. · 华为、贝恩资本22亿美.. · 网络安全之网吧安全 · 2007盘点专题:有多少.. · 数字证书技术ABC · 身份认证技术 · 即时通信软件(IM)安.. |
||
|
|||
| · VPN技术 · SOA 面向服务架构 · 子网掩码教程 · 三层交换技术专题 · Windows远程桌面应用 · 深入了解PGP加密技术 · MySQL数据库备份 · VPN技术 |
· 病毒查杀专题 · Solaris 10 配置管理 · Linux 基础 · Linux防火墙 · SSL VPN详细知识 · 路由器设置与口令恢复 · 打造安全服务器 · Linux 集群技术专题 |
||
|
|||
| · VPN技术 · SOA 面向服务架构 · 子网掩码教程 · 三层交换技术专题 · Windows远程桌面应用 · MySQL数据库备份 · 身份认证技术 · 病毒查杀专题 |
· 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · 常用交换机典型配置 · Linux 集群技术专题 · VPN技术 · 路由器设置与口令恢复 · Linux 基础 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·ASP.NET 2.0 Web Part编.. ·ASP.NET 2.0 Web Part编.. |
·ASP.NET 2.0 Web Part编.. ·ASP.NET 2.0服务器控件之.. |
| ·在VM6中做Windows Server.. ·让服务器自动启动失败的E.. |
·使用ISA Server保护内部.. ·使用WUCDCreator将SCSI、.. |
| ·这才叫电脑高手! ·网络安全中的“秘语”VS .. |
·三转CHM文件故障解决 ·错误是可以避免的——系.. |
| · 思科警告统一通信管理存.. · 家用路由器存在严重缺陷.. · 华为2008市场攻略 240亿.. |
· 浅谈国内的渗透评估过程 · VPN安全技术与应用 · 企业如何进行计算机取证.. |
| · IDC:2008年IT市场10大.. · Visual Studio 2005开发.. · 测试开发人员参考手册 |
· 年初17大热门技术 年底.. · 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. |
| · Linux操作系统下文件和.. · 热点:国内大型企业如此.. · IBM和Sun起争议 坚持不.. |
· 中小企业刀片市场将达20.. · IT人员应当了解的七个存.. · IDC:2008年IT市场10大.. |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· IT人员应当了解的七个存.. · 希捷承认部分硬盘暗藏病.. · 硬盘之父获得诺贝尔物理.. |