当前位置: 移动技术网 > IT编程>网络>Dos/Bat > Do All in Cmd Shell一切在命令行下完成第1/6页

Do All in Cmd Shell一切在命令行下完成第1/6页

2017年12月12日  | 移动技术网IT编程  | 我要评论
文件传输 对于溢出漏洞获得的cmd shell,最大的问题就是如何上传文件。由于蠕虫病毒流行,连接ipc$所需要的139或445端口被路由封锁。再加上winxp系


接下来说服务。如果想启动或停止服务,用net命令就可以。但想增加或删除服务,需要用sc,instsrv.exe,xnet.exe等工具。而这些工具系统没有自带(xp和2003自带sc)。导入注册表虽然可以,但效果不好,原因后面会提到。还是得靠inf文件出马。

增加一个服务:

[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显然很不方便。如果用reg_sz代替会有些问题——不能用环境变量了。即只能使用完整路径。用inf文件完全没有这个问题,servicebinary(即imagepath)自动成为reg_expand_sz。
2,最关键的是,和用sc等工具一样,inf文件的效果是即时起效的,而导入reg后必须重启才有效。
3,inf文件会自动为服务的注册表项添加一个security子键,使它看起来更像系统自带的服务。

另外,addservice和delservice以及addreg、delreg可以同时且重复使用。即可以同时增加和删除多个服务和注册表项。详细的内容还是请查看ddk。
3

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网