找回密码
 新注册用户
搜索
查看: 7049|回复: 9

[分享]再介绍一个把普通程序作为系统服务执行的工具。

[复制链接]
发表于 2004-2-1 00:00:00 | 显示全部楼层 |阅读模式
再介绍一个把普通程序作为系统服务执行的工具。
因为论坛不能贴附件,就不能放上来了,大家需要的话,可以用 google 搜一搜“ntservice.exe”就可以找到了。

--------------------------
现在大多数木马或后门程序都不是以服务启动的,而只是在注册表中的run作为自启动的,非服务
启动的程序有几个不足的地方:
1.管理员如果没有登陆的话,在run中执行的程序不会被执行到.
2.当管理员注销后,在run中被执行的程序亦会内存中被杀掉
3.如果是以管理员权限被执行的话,如果管理员只是以一个guest或user的帐户登陆的话,
  被执行的程序得到的权限亦只是Guest或user权限,但如果是以服务方式执行的话,程序得到的
  权限是LocalSystem的(服务默认是以LocalSystem权限执行的,当然亦可以只在某个帐户下才
  可以执行,但这里我们不需要讨论),LocalSystem权限是比Admin还多出一些权限的,所以如果
  程序是以LocalSystem被执行的话,那得到的是最高的权限的了。

对于非服务启动的程序,亦曾有过教程或第三方程序去帮助那些非服务启动的程序以服务启动,但
是安装起来麻烦,还要修改好些注册表的地方,最不足的就是如果你有三个程序想以服务启动的话,
那个第三方程序是要被执行三次的,这样会浪费系统资源,以下是一种比较好的解决方法。

方法:
写一个以服务启动的程序(命名为Serivce Loader,然后这程序被执行时会读入配置文件,配置文件
中是写入了特定格式的要被执行的程序,这样的话,只要安装那个Service Loader,那样就可以读
入配置文件中要被执行的非服务启动的程序,这样会节省很多资源。

以下说明是关于如何使用那个Service Loader
这程序名字是ntservice.exe,你可以修改这程序名字,将这程序和一个ini文件,这个ini文件的名字
可改,不过要和ntservice.exe同时改.例如你将ntservice.exe改为abc.exe,那么ntservice.ini
就要改为abc.ini,这样程序才能识别到的。使用方法如下:
将ntservice.exe以及ntservice.ini复制到同一个目录中,下面先说说ntservice.ini的格式

[Settings]
ServiceName = NTService
LogEnable = 0
ProcCount = 2
[Process0]
CommandLine = notepad.exe
PauseStart = 1000
PauseEnd = 1000
UserInterface = Yes
[Process1]
CommandLine = legend.exe
PauseStart = 1000
PauseEnd = 1000
UserInterface = No

第一行中的[Settings]
不能改变

第二行中的ServiceName = NTService
你可以将NTService改为你喜欢的服务名字

第三行LogEnable = 0
这里0代表Service Loader不自动生成一个日志,如果1就是会生成一个叫ntservice.log的文件,里
面会记录了这服务启动以及启动配置文件中的程序的情况.

第四行ProcCount = 2
2代表你将会设置两个程序让Service Loader在启动时去执行,如果你想设置三个程序让Service loader
去执行,可以改为3

第五行[Process0]代表了第一个要被执行的程序的设置。

第六行CommandLine = notepad.exe
这代表了将会让Service Loader去执行notepad.exe这程序

第七行和第八行不用理会

第九行UserInterface = Yes
Yes代表了程序执行时会显示它的窗口,如果设置为No的话,程序会在后台被执行,不会显示窗口。

从第10行开始[Process1],这代表了第二个要被执行的程序的设置开始

第11行CommandLine = legend.exe
这代表了将会让Service Loader去执行一个叫Legend.exe的程序

第12和13行不用理会

第14行UserInterface = No
No代表了程序被执行时不显示其窗口,会在后台悄悄执行

如果你还有第三个程序或更多程序要被执行时,就继续加入配置如下
[Process2]
CommandLine = backdoor.exe
PauseStart = 1000
PauseEnd = 1000
UserInterface = No
[Process3]
CommandLine = trojan.exe
PauseStart = 1000
PauseEnd = 1000
UserInterface = No
[ProcessN]
CommandLine = xyz.exe
PauseStart = 1000
PauseEnd = 1000
UserInterface = No

上面的[ProcessN]中的N不能超过20,不过认为这是足够用的了,没可能执行超过20个木马或后门
在一个系统吧。

好了,以下就说说ntservice.exe的安装以及其它功能.
当你将ntservice.exe和ntservice.ini复制到同一个目录中去后,你就可以在命令行中执行
ntservice.exe -insall
这样ntservice这个服务就被安装进去系统了,然后执行
net start ntservice
这样服务就被启动了,不过如果你在那个ntservice.ini中将ServiceName = NTService中
NTService修改为其它名字,例如改为abcdefg,那么你要用的命令去执行服务了
net start abcdefg

服务被启动后,就会读入配置文件(ntservice.ini),去启动里面的要执行的程序了。
还有命令是
netservice.exe -kill 服务名字
这个可以自己停自己的服务或停其它服务

netservice.xe -uninstall
会将自己这个服务删除,在用这命令前一定要将服务停止,停止
服务可以用net stop ntservice或netseriv.cexe -kill ntservice

压缩包中有三个文件,
ntservice.exe 主程序
ntservice.ini (修改一下就可以用了)
readme.txt     说明文件
回复

使用道具 举报

发表于 2004-2-1 00:00:00 | 显示全部楼层
感觉上过于复杂,我不太明白,我还是用耗费资源的第三方程序.
回复

使用道具 举报

发表于 2004-2-1 00:00:00 | 显示全部楼层
很长呀~~
回复

使用道具 举报

发表于 2004-2-4 00:00:00 | 显示全部楼层
恩,刚才想固顶的,现在不想了 :p
回复

使用道具 举报

发表于 2004-2-4 00:00:00 | 显示全部楼层
对于分布式计算来说,有点杀“机”用牛刀了
回复

使用道具 举报

发表于 2004-2-5 00:00:00 | 显示全部楼层
没必要搞这吗复杂
回复

使用道具 举报

发表于 2004-2-9 00:00:00 | 显示全部楼层
大约明白,就是说把这个程序做成服务,用它来启动我们想要运行的程序,而有时加入的服务程序没有那么高的权限,所以用这个程序自己来启动别的程序,让它们也有和这个程序一样高的权限
回复

使用道具 举报

发表于 2004-9-8 00:00:00 | 显示全部楼层
顶,这样的方法添加的服务能不被任务管理器结束掉吗?
回复

使用道具 举报

发表于 2009-6-20 23:25:19 | 显示全部楼层
asdfasdfasdfasdfasdf
回复

使用道具 举报

发表于 2009-6-21 09:02:49 | 显示全部楼层
谢谢楼主,很简单的方式。

做成服务还是很好的方式。在登陆前,没有那些登陆后的乱七八糟的程序来抢资源。

boinc好像也是服务模式哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-9-28 02:21

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表