然而,各种框架,如 Metasploit、Empire、PoshC2、PowerSploit 和多个 PowerShell 脚本和 C# 工具可用于自动化此技术,为代码执行提供不同的触发器和各种选项。...然而,该脚本需要将Invoke-MetasploitPayload加载到内存中,并且负载将从远程位置下载。...WMI-Persistence是另一个 PowerShell 脚本,它可以创建事件过滤器,在每次重新启动后 5 分钟内从远程位置执行基于 PowerShell 的有效负载。...从 PowerShell 控制台执行以下命令将验证有效负载是否存储在“ __EventConsumer** ”中并且“ **__EventFilter ”已创建。...默认情况下,此选项会将两个连接返回到命令和控制服务器。 “ wmi_updater ” 模块能够从远程位置获取有效负载,而不是将其存储在 WMI 存储库中。
尽管WMI的多数实例数据都不存储在WMI中,但是WMI确实有一个存储库,用来存放提供程序提供的类信息,或者称为类的蓝图或者Schema。 WMI有一个Service。...通过只收集请求的数据并将其发送到单个目标来减少驱动程序开销。 用描述性驱动程序定义的类名和可选说明注释数据和事件块,然后 WMI 客户端可以枚举并显示给用户。...Q: WMI 管理的常用命令以及工具 wmic.exe - Cmd 命令 Get-CimClass - Powershell 命令 Get-CimInstance - Powershell 命令 Get-WmiObject...Tips: 从 PowerShell 3.0 开始,此 cmdlet 已被Get-CimInstance....简单示例: # 1) 计算机相关信息获取、操作 Get-WmiObject Win32_UserAccount # 获取计算机中的账号 (可省略Class) Get-WmiObject Win32
获取对象的过程中,最好先筛选出对象,再进行操作。...(即筛选在排序左边) 不区分大小写 get-process | where {$_.handles –ge 1000} 使用where获取所有对象,用对象执行大括号里的代码,如果结果为rue,则返回该对象...,如果结尾为false,则丢弃该对象 get-process *ss | where {$true} 大括号里的代码运算值永远为真,所以该命令可以返回所有以ss结尾的进程 Powershell3.0 :...Name) 「Powershell 2.0] Get-WmiObject –class win32_bios –ComputerName (Get-ADComputer –filteer * ).name...[Powershell3.0] get-CimInstance 支持管道输入,代替Get-WmiObject Get-ADComputer -Filter * | Get-WmiObject -class
它包含两个类:MSFT_Rule,它定义管理范围内的单个规则,以及MSFT_SomFilter,它提供在目标设备上评估的查询列表。...Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding 可以从 __PATH 属性中看到哪个 Filter...最后,我们需要将对象保存到 WMI 存储库中。...Stop-Service wuauserv -Verbose 4.0.使用 Set-WMIInstance创建 WMI 事件订阅 此方法使用 –Arguments 参数,该参数接受将用于定义每个实例及其属性的哈希表...命令的命令行,然后加载存储在 Windows 注册表中的大型 PowerShell 脚本。
勒索软件作者的最新方法是直接从他们的代码(或脚本)中调用删除影子副本。而PowerShell命令则受到勒索软件的青睐,在一行简单的代码中列举并删除所有影子副本的实例。...PowerShell cmdlets 也支持别名。有些是内置的,比如Get-WmiObject的gwmi,或者Get-CimInstance的gcim。...与其使用已知的主机进程作为PowerShell核心,不如使用.NET框架从自己的进程中执行PowerShell脚本。比如UnmanagedPowerShell和SharpPick。...图6:swprv.dll中ChangeDiffAreaMaxmiumSize下的无文档IOCTL。 即使驱动程序会验证请求的源头是提供商的服务,将代码注入其中以执行上述操作也会绕过该检查。...一个直观的解决方案可以是搜索任何在意外进程中加载库的异常情况。
,为了过滤掉 “无用” 信息,可使用 PowerShell 中的 select: Get-WmiObject -Namespace root -Class __Namespace | select name...现在我们从系统中得到一个命名空间的列表,许多命名空间会是这样格式出现 root\,比如 root\DEFAULT,root\CIM2 等等,因为它们是 root (本身也是一个命名空间...WMI 类表示系统中的特定项,它可以是从系统进程到硬件 (比如网卡)、服务等任何内容 类分为 3 个主要类型 (这是 CIM 标准的要求): Core classes (核心类):适用于所有管理领域,并提供很少的基本功能...可以使用以下命令来缩小范围,该命令列出了用于获取或操作用户信息的所有可用类: Get-WmiObject -Class *user* -List 同样也可以使用 Get-CimClass 命令也能实现同样的效果...Powershell 的 Format-List 或 fl 中,例如:Get-WmiObject -Class Win32_UserAccount | fl * CIM cmdlet Get-CimInstance
Turla 至少从 2008 年就开始运作,当时它成功攻击了美国军队。最近,它参与了对德国外交部和法国军队的重大攻击事件。...在2019年中,Turla 改进了这些脚本,可以使用它们从其传统武器库中加载各种自定义恶意软件。 这个样本是在东欧中的一次攻击中发现的。...PowerShell 加载器 PowerShell 加载器具有三个主要步骤:持久化、解密和加载到嵌入式可执行文件或库的内存中。...在样本中,Turla 修改的 PowerShell 配置文件: try { $SystemProc = (Get-WmiObject 'Win32_Process' | ?...最后,修补直接在 PowerShell 脚本中完成。它将AmsiScanBuffer的开头修改为始终返回 1 ( AMSI_RESULT_NOT_DETECTED )。
默认情况下,从Windows Vista开始成为Windows 的默认组件,从Windows Server 2008 开始, WinRM服务自动启动 默认情况下,未配置WinRM侦听器,即使WinRM服务在运行...从Powershell v3 及后续版本,Powershell 中提供了两种 Cmdlets: CIM Cmdlets WMI Cmdlets ?...WMI Eventing 有两种: Single process context (本地的单个进程上下文) Permanent WMI Event Subscriptions(永久的WMI 事件订阅)...中是这样的: 后面不在啰嗦, 只要理解这个类的查询逻辑,就很容易理解命令, Get-WmiObject 本质上也是 使用了WQL查询,并且 也支持 -query 参数直接使用WQL查询。...WMI Attacks – Stealthy Command “Push” ---- 上面例子中基本调用的是 powershell或cmd,在笔者其他篇中提到过ELK配合sysmon,查找这类攻击很容易
乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载! 本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!...从win98开始,Windows操作系统都支持WMI,WMI可以在本地或者远程管理计算机系统。比如:重启,关机,关闭进程,创建进程等。...用不用445端口取决于是否将结果返回,如果写注册表的话,就不需要返回,也就不需要445端口,sharpwmi 这个项⽬不依赖139和445端⼝,但是还需要依赖 135 端⼝。.../PowerShellMafia/PowerSploit/releases/tag/v3.0.0 该脚本主要通过powershell调用WMI来远程执行命令,并可以对命令结果回显。...Invoke-WMIMethod.ps1 Invoke-WMIMethod.ps1模块是powershell自带的,可以在远程系统中执行命令和指定程序。
当一个应用通过接口向WMI发起请求时,WMI将判断该请求是请求静态数据还是动态数据。...WMI提供者将数据返回给WMI服务,WMI服务再将结果返回给请求的应用。...使用Powershell来操作WMI管理: Powershell查询命名空间 WmiObject -Class __namespace -Namespace root | select name Powershell...查询BIOS信息 Get-WmiObject -Class Win32_BIOS Powershell查询计算机信息 Get-WmiObject -Class Win32_Operatingsystem...Powershell查询 Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct #注意:在旧版中查询杀软的WMI
该命令使用 Property 参数来选择要包括在表中的进程对象的三个属性。该命令使用 Title 参数来指定 HTML 页的标题。...该命令使用 InputObject 参数指定输入位于 $a 变量中。它使用 Encoding 参数将输出转换为 ASCII 格式。它使用 Width 参数将文件中的每一行限制为 50 个字符。...Get-WmiObject 的“帮助”主题。...第一个命令使用 Get-Help cmdlet 获取完整版本的 Get-WmiObject 的“帮助”主题,并将其存储在 $h 变量中。第二个命令将内容发送到 认打印机。...13.查看Powershell中预先设定所有别名(aliase)?
Winlogon Helper DLL后门 Winlogon是一个Windows组件,用来处理各种活动,如登录、注销、身份验证期间加载用户配置文件、关闭、锁定屏幕等。...Logon Scripts是优先于很多杀毒软件启动(部分杀毒是优先于他启动)的,所以可以通过这种方式将powershell命令写到bat脚本中,达到免杀隐藏启动的效果。...内部工具类 waitfor.exe 该工具用来同步网络中计算机,可以发送或等待系统上的信号。...$EventConsumerToCleanup | Remove-WmiObject $EventFilterToCleanup | Remove-WmiObject powershell版本的也可以直接使用别人写好的脚本...计划任务 经典中的经典。
文章目录[隐藏] 介绍 用 PowerShell 操作 WMI 使用 PowerShell 里的 WMI 查询 结论 这篇文章是有关 WMI 的多篇系列文章中的第一篇,如果读者对 PowerShell...例如可能希望尝试帮助调用 WmiMethod 来查看该命令的功能,类似于 Linux 手册页。...从 PowerShell v3 开始,MS 引入了 CIM cmdlet,它利用 WS-MAN 和 CIM 标准来管理对象,访问 CIM cmdlet 在两种情况下具有优势: 在 WMI/DCOM 本身被阻止运行...我们已经知道 Get WmiObject 可以用来获取关于类的信息。...因此,让我们使用 -Query 参数运行 cmdlet: Get-WmiObject -Query 'select * from win32_bios' 结论 这篇文章旨在概述我们将在本系列的下一部分中处理的内容
Get-Unique: 从排序列表返回唯一项目。 Group-Object: 指定的属性包含相同值的组对象。...$MyInvocation : 包含一个对象,该对象具有有关当前命令(如脚本、函数或脚本块)的信息。...可以使用该对象中的信息(如脚本的路径和文件名 ($myinvocation.mycommand.path) 或函数的名称 ($myinvocation.mycommand.name))来标识当前命令。...如果该字符串转换为非空字符串或非零整数,则可将该字符串解释为 TRUE。 $PID : 包含承载当前 Windows PowerShell 会话的进程的进程标识符 (PID)。...32位整数的上限([int32]::MaxValue),它就会分配一个64位整数的数据类型;同样如果是小数,字符串,日期时间也会分配成为该对应的数据类型,使用时候非常的方便; 弱类型带来的风险: 例如:
“污水”(MuddyWater)介绍 援引腾讯电脑管家的文章,“污水”(MuddyWater、T-APT-14) APT组织从2017年开始一直活跃,该APT组织主要针对中东国家。...该APT组织显著的攻击行为特点为善于利用powershell等脚本后门,通过Powershell在内存中执行,减少新的PE文件在受害者机器落地,这种方式使的该组织的样本有着较低的检测率,另一方面也加大了安全机构的取证难度...此前的主要受害者分布在巴基斯坦,沙特阿拉伯,阿联酋和伊拉克等也是该组织的攻击目标。从受害者所在的行业特征看,政府,电信公司和石油公司是该组织的主要目标。...从远程位置下载恶意文件到受害者主机中,然后使用诸如Start-Porcess、Invoke-Item或者Invoke-Expression(-IEX)之类的命令执行恶意文件,PowerShell也可以将远程文件直接下载到受害者主机内存中...,然后从内存中执行。
Get-Unique: 从排序列表返回唯一项目。 Group-Object: 指定的属性包含相同值的组对象。...(如 PowerShell 控制台)中输入。...$MyInvocation : 包含一个对象,该对象具有有关当前命令(如脚本、函数或脚本块)的信息。...可以使用该对象中的信息(如脚本的路径和文件名 ($myinvocation.mycommand.path) 或函数的名称 ($myinvocation.mycommand.name))来标识当前命令。...如果该字符串转换为非空字符串或非零整数,则可将该字符串解释为 TRUE。 $PID : 包含承载当前 Windows PowerShell 会话的进程的进程标识符 (PID)。
Meerkat是一款针对Windows终端的信息收集与网络侦查工具,该工具由多种PowerShell模块组成,且不需要预先部署代理,可以帮助广大研究人员针对Windows目标执行包括事件响应分类、威胁搜寻...; 6、标准化输出默认格式为.csv,可以轻松支持JSON和XML等数据格式; 工具要求 1、要求扫描设备上支持PowerShell 5.0+; 2、要求目标设备上支持PowerShell 3.0+,如果使用...「Get-WMIObject」替换「Get-CIMinstance」实例,则可以最多向下兼容到PowerShell 2.0; 3、要求WinRM访问; 工具安装 通过Git安装 广大研究人员可以直接使用下列命令将该项目源码克隆至本地...安装 除此之外,我们还可以在一个PowerShell命令行终端中输入下列命令来安装Meerkat: $Modules = "C:\Program Files\WindowsPowerShell\Modules...工具运行 下列命令即可将输出结果存储至「C:\Users\YourName\Meerkat\」: Invoke-Meerkat 需要注意的是,如果工具脚本未使用管理员权限运行,则下列模块将不会返回任何结果
里面介绍了关于wmi的一些相关内容,其中提到了使用wmi进行横向移动的方法,只是当时由于时间原因并未对细节进行讲解,在成熟的企业内网中,如何优雅的进行横向移动是需要每个安全人员需要去注意的点。...关于wmi事件的横向移动 和大多数的横向移动手法一样,我们使用wmi事件进行横向移动时依旧要求我们有对目标机器的操作权限(或访问凭据),该技术可以实现无文件的效果,这也是该技术的优点之一。...我们在日常的工作中也不乏会使用WMI进行横向移动,比如下面的手法进行pass the ticket,图片来自推特 wmic /authority:”kerberos:CORP\WIN8WORKSTATION...我们需要关注的是ActiveScriptEventConsumer和CommandLineEventConsumer类,其中ActiveScriptEventConsumer类允许脚本代码的执行,如JScript...由于本人没有见到源程序,只好使用powershell进行了简单实现,源代码已上传到github,地址如下: https://github.com/lengjibo/RedTeamTools/tree/master
事实上在该过程中,Windows还会在注册表的上述路径中查询所有的映像劫持子键,如果存在和该程序名称完全相同的子键,就查询对应子健中包含的"dubugger"键值名,并用其指定的程序路径来代替原始的程序...MSF中自带了利用COM劫持的模块:exploit/windows/local/bypassuac_comhijack,该模块同时直接可以绕过UAC,具体原理参考:COM Hijacking (3)CLR...如果劫持了系统常见.Net程序如powershell.exe的启动过程,向其添加payload,就能实现一种被动的后门触发机制 参考:Use AppDomainManager to maintain persistence...通过软连接的方式,实质上PAM认证是通过软连接的文件名(如: /tmp/su,/home/su)在/etc/pam.d/目录下寻找对应的PAM配置文件(如: /etc/pam.d/su),任意密码登陆的核心是...执行者对于该程序需要具有x的可执行权限 -本权限仅在执行该程序的过程中有效 在执行过程中执行者将具有该程序拥有者的权限 可以利用webshell进行利用 #vim suid.c #include<stdlib.h
清理WMI后门的方法: 删除自动运行列表中的恶意WMI条目 使用Get-WMIObject命令删除与WMI持久化相关的组件 二、WEB后门 WEB后门俗称WebShell 1、Nishang下的WebShell...、Kerberos等 API接口是SSPI 如果获得了网络中目标机器的System权限,可以使用该方法进行持久化操作: LSA(Local Security Authority)用于身份验证 lsass.exe...Hook PasswordChangeNotify,当用户修改密码后在系统中进行同步,攻击者可以在此时抓取输入的明文密码 在修改密码时,用户输入新密码后,LSA会调用PasswordFilter来检查该密码是否符合复杂性要求...将HookPasswordChange.dll注入内存,在目标系统中启动管理员权限的powershell: . ....其团队从成立至今多次参加国际网络安全竞赛并取得良好成绩,积累了丰富的竞赛经验。团队现有三十多位正式成员及若干预备人员,下属联合分队数支。
领取专属 10元无门槛券
手把手带您无忧上云