更新后的Mykings会在被感染系统安装开源远程控制木马PcShare,对受害电脑进行远程控制:可进行操作文件、服务、注册表、进程、窗口等多种资源,并且可以下载和执行指定的程序。
在之前,我曾在安全客分享过《wmi攻击与防御》的相关议题。里面介绍了关于wmi的一些相关内容,其中提到了使用wmi进行横向移动的方法,只是当时由于时间原因并未对细节进行讲解,在成熟的企业内网中,如何优雅的进行横向移动是需要每个安全人员需要去注意的点。比如如何使用CobaltStrike、Impacket等工具进行横向移动时最小化操作的技巧等。本文将讲解如何使用wmi事件订阅来进行横向移动。
本文是以WMI的重写版,本来这份笔记会更长,原版的笔记以Black Hat 2015的Abusing Windows Management Instrumentation (WMI) to Build a Persistent, Asyncronous, and Fileless Backdoor为主要学习资料,在笔记写到大概一万字的时候,Typora 中保存的内容部分丢失。于是重新整理,有了这份,我认为精简版的WMI笔记。
今天,我要开始一系列关于微软WMI技术的介绍。通过之后若干节的介绍,我想WMI技术将为在windows平台上从事开发的朋友开启另外一扇窗。(转载请指明出于breaksoftware的csdn博客)
一:WMI基础知识 =================================================================== WMI 最初于1998年作为一个附加组件与 Windows NT 4.0 Service Pack 4 一起发行,是内置在Windows 2000、 Windows XP和Windows Server 2003 系列操作系统中核心的管理支持技术。基于由 Distributed Management Task Force (DMTF) 所监督的业界标准,WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源。大多用户习惯于使用众多的图形化管理工 具来管理Windows资源,在WMI之前这些工具都是通过 Win32应用程序编程接口(Application ProgrammingInterfaces,API)来访问和管理Windows资源的。只要你熟悉系统编程你就知道API有多么重要。但是大多数脚本 语言都不能直接调用Win32 API,WMI的出现使得系统管理员可以通过一种简便的方法即利用常见的脚本语言实现常用的系统管理任务。 利用WMI需要和脚本如WSH和VBScript结合起来,可以实现的功能大家可以看微软的MSDN文档。 在编写我们自己的脚本之前,我们需要对WMI的体系结构有个基本的了解。如图一:(1.gif)
Windows Management Instrumentation (WMI) 使系统管理员能够在本地和远程执行任务。从红队的角度来看,WMI 可用于执行多种活动,例如横向移动、持久性、态势感知、代码执行以及作为命令和控制(C2)。WMI 是几乎所有 Windows 操作系统(Windows 98-Windows 10)中都存在的 Windows 的一部分,这一事实使这些攻击性活动远离蓝队的雷达。
在简单了解了WMI后,我们开始了横向移动,包括其中的信息收集,工具利用。那么在我们短暂的获取权限后,如何才能将权限持久化,也就是所说的权限维持住呢?笔者看了国内外部分文章后,发现WMI做权限维持主要是介绍WMI事件,并将其分为永久事件和临时事件,本文参考部分博客文章对WMI事件进行讲解,不足之处,望及时指出。
WMI全称为Windows Management Instrumentation,即Windows管理规范,是Windows 2K/XP管理系统的核心。它属于管理数据和操作的基础模块,设计WMI的初衷是为了能达到一种通用性,通过WMI去操作系统、应用程序等去管理本地或者远程资源。它支持分布式组件对象模型(DCOM)和Windws远程管理(WinRM),用户可通过WMI服务访问、配置、管理和监视Windows所有资源的功能,对于其他的Win32操作系统来讲WMI是一个非常不错的插件,同时也是测试人员在攻防实战中一个很完美的“无文件攻击”入口途径。
受bin牛委托修改并发布,版权归bin牛所有。 Bug/建议提交:zcgonvh@rootkit.net.cn 祝各位马年大吉,财源滚滚。 免责声明: 本程序只用于管理员安全检测,使用前请注意环境与法律法规,因使用不当造成的后果本人不承担任何责任。 已测试的系统: win2003+iis6+.net 2.0 win2008+iis7+.net 4.0 win8+iis8+.net 4.5 注意:此版本最低需要.net 2.0环境,不再支持.net 1.1。如果目标机器是.net 1.1,请换用AspxSp
在 IFix 使用过程中经常会使用到调度功能来实现定时报告,事件触发类的脚本,那么后台调度的进程也会出现被操作人员等意外关闭的情况。那么就会造成我们的定时报告,脚本等无法正常运行。
MoveKit是一款功能强大的Cobalt Strike横向渗透套件,本质上来说MoveKit是一个Cobalt Strike扩展,它利用的是SharpMove和SharpRDP .NET程序集的execute_assembly函数实现其功能,攻击脚本能够通过读取指定类型的模板文件来处理Payload创建任务。
WMI 全称为:Microsoft Windows Management Instrumentation (WMI)
区别于传统的基于文件的攻击,无文件非恶意软件攻击在内存中运行,不需要利用可执行文件就能达到攻击的目的。无文件非恶意软件本身是系统内置的合法工具,但是被用来执行一些不合法的操作,也就是我们常说的白名单绕过执行。总的来说就是利用Windows 的一部分来对抗Windows。
在《WMI技术介绍和应用——WMI概述》中介绍了我们可以使用C++、.net或者支持ActiveX技术的脚本语言来使用WMI。但是各种语言对WMI的控制能力是不同的,比如脚本语言只能用来从WMI获取数据或者接收事件通知。而C++还可以编写WMI提供者和发送消息。和脚本语言相比,C++对WMI有强大的控制和定制性,当然也具有更大的复杂性。本文将主要讲述使用VC如何搭建一个使用WMI的框架。(转载请指明出于breaksoftware的csdn博客)
网络罪犯利用加密挖矿恶意软件盗用计算资源牟利。早在2017年,已经观察到他们如何应用无文件技术使检测和监测更加困难。
WMI在笔者所参与的项目中发现目前攻防中利用依旧非常频繁,尤其在横向移动中,利用wmic或者powershell的WMI模块操作Win32来达到渗透的目的。笔者在学习了WMI后,将其分为四个模块(讲解、横向移动、权限提升、攻击检测),并写了四篇文章来讲解,还追加了小知识点的编写(WBEMTEST工具使用,普通用户使用wmic)。笔者能力有限,在几篇中若有未讲人话之处,望谅解。
前言: 在朋友的博客上看到推荐的一款工具Koadic,我接触了以后发现很不错这款工具的强大之处我觉得就是拿到shell后的各种模块功能,我就自己写出来发给大家看看吧。 首先把项目克隆到本地: 项目地址
对很多IT专业人士来说,Powershell的确是Windows系统中一个相当强大的工具,而且微软也有意将PowerShell作为Windows系统的默认命令行工具。但赛门铁克最近的一份报告指出,超过
EventFilter(事件过滤器)存储在一个ROOT\subscription:__EventFilter对象的实例里,其主要作用是使用WMI的查询语言来过滤审核特定的事件,一个事件过滤器接受一个WMI事件查询参数,同时EventFilter事件过滤器可以对Intrinsic Events (内部事件)和Extrinsic Events (外部事件)进行事件查询。
ATT&CK 技术项编号为 T1036 的二进制重命名技术,正在被越来越多的恶意软件所采用,本文介绍如何使用多种方法对该技术进行监控与检测。
在windows和office激活异同这边文章里我们发现了windows和office的激活都依赖于一个叫WMI的东西。那么什么是WMI呢?、
近期,火绒安全团队截获蠕虫病毒“RoseKernel”。该病毒可通过远程暴力破解密码等多种手段全网传播。病毒入侵电脑后,会同时执行“挖矿”(门罗币)、破坏Windows签名校验机制、传播后门病毒等系列恶意行为。由于病毒会对同一网段的终端同时暴力破解密码,对局域网等机构用户(政府、企业、学校、医院)危害极大,截至到发稿前,已有数万台电脑被感染。目前“火绒产品(个人版、企业版)”最新版即可查杀该病毒。
.Net本身没有封装对快捷方式的操作类,所以要在C#中操作快捷方式,需要借助“外力”。市面上常见的方法是通过Windows Script Host Object Model这个COM组件来完成。这种方法的缺憾是你的程序必须带上Interop.IWshRuntimeLibrary.dll这个文件(不过也许可以把这个dll并入exe中再动态加载什么的)。
专注是做事成功的关键,是健康心灵的特质。当你与所关注的事物融为一体时,就不会让自己萦绕于焦虑之中。专注与放松,是同一枚硬币的两面而已。一个人对一件事只有专注投入才会带来乐趣。一旦你专注投入进去,它立刻就变得活生生起来。
“WMI是微软为基于Web的企业管理(WBEM)规范提供的一个实现版本,而WBEM则是一项行业计划,旨在开发用于访问企业环境中管理信息的标准技术。WMI使用公共信息模型(CIM)行业标准来表示系统、应用程序、网络、设备和其他托管组件。”
众所周知,在windows10以及Windows Server2016的平台当中,PowerShell5.x已经能够去获取到系 统当中大部分的信息,但有时候仍有一些信息需要借助于调用WMI的类来完成。通过本文,你可以 了解到WMI的基本架构和组件,包括WMI的数据库,WMI的provider,以及在PowerShell调用WMI的 时候提供的module和相关的命令。接下来我们就能通过powershell的命令去完成WMI的查询操作, 去获取到系统当中WMI的实例。然后我们还可通过实例的属性查看到系统当中不同的信息,同时的 话去调用实例当中为我们提供的不同的方法,去修改系统信息的配置。
WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具),提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。如果不熟悉C++之类的编程语言或VBScript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要用WMI管理系统是很困难的。WMIC改变了这种情况。
WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具),提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。如果不熟悉C++之类的编程语言或VBScript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要用WMI管理系统是很困难的。WMIC改变了这种情况。
本篇文章是 WMI 攻击手法研究的第二篇,主要研究 WMI 中的 3 个组件,在整篇文章中,我们将交替使用 WMI 和 CIM cmdlet,以便熟悉这两种 cmdlet 类型。
这篇文章是有关 WMI 的多篇系列文章中的第一篇,如果读者对 PowerShell 有个基本的了解,那么对阅读本篇文章会有所帮助,但这不是必需的。
WMI,全称Windows Management Instrumentation,是微软开发的一种用于管理Windows系统的工具。你可以把它想象成一个数据库工具,它存储了关于你的电脑的各种信息,比如系统、应用程序、网络和设备等。
WMI 是基于 Web 的企业管理 (WBEM) 标准的 Microsoft 实现,WCF 公开服务的属性,如地址、绑定、行为和侦听器。您可以在应用程序的配置文件中激活内置 WMI 提供程序。这可以通过 system.ServiceModel element一节中的 <diagnostics> Element的 wmiProviderEnabled 属性实现,如以下配置示例所示。 <system.serviceModel> … <diagnostics wmiProviderEnabled
横向的手法从简单的远程桌面协议(rdp)到漏洞利用,手法不断在改变,要对抗的设备产品也不断地变化,有个技术主管问我,红蓝的快乐在于什么?为什么我钟情在红蓝。我想中快乐就是来自于对抗吧。
可以看到,该项目的Todo,依旧想的是围绕注册表去进行修改,为此我们先把注册表传输文件放一边 WMIHACKER的文件传输部分
根据C:/Windows/System32/b.txt产生的老的连接状态日志发现有大量外发扫描1433端口判断可能是通过SQL Server弱密码进来的。
在window Vista以上的操作系统中,修改sethc会提示需要trustedinstaller权限,trustedinstaller是一个安全机制,即系统的最高权限,权限比administrator管理员高,windows权限分为三种从低到高依次是user,administrator,system,而trustedinstaller比 administrator高但没有system高,这么做的好处是避免了一些恶意软件修改系统文件的可能,坏处就是自己不能直接操作了:
Wmic, 即 Windows Management Instrumentation Command-Line Utility,通过这个工具我们可以获取计算本地的很多信息。
辅助功能提供了其他选项(屏幕键盘、放大镜、屏幕阅读等)可以帮助残疾人更轻松地使用Windows操作系统,但是此功能可能会被滥用于在已启用RDP且已获得管理员级别权限的主机上实现持久性,此技术涉及磁盘或者需要修改注册表才能执行存储的远程负载
利用Windows自带的解析器:PowerShell、VBScript、批处理文件和JavaScript,对应的应用程序分别为powershell.exe、cscript.exe、cmd.exe和mshta.exe。利用上传或远程加载对应payload脚本,直接调用解析器运行(可以使用Invoke-Obfuscation或者 Invoke-DOSfuscation 等进行混淆) 用Windows自带的工具或脚本等原生工具实现执行恶意代码、启动程序、执行脚本、窃取数据、横向扩展、维持访问等,常用的有regsvr32.exe、rundll32.exe、certutil.exe、schtasks.exe、wmic.exe等,脚本类型的有:winrm.vbs、wmiexec.vbs、pubprn.vbs等
在内网渗透过程中,有时我们是需要了解不同的服务器的基本软硬件配置信息的,同时也可能需要 将它们生成报告进行归档,那么通过 Powershell,我们也能够轻松的去完成这个过程。本文中,我 们将主要说明如何通过 Powershell 收集系统信息和生成报告。
与大多数恶意软件不同,“无文件”攻击并不会在目标计算机的硬盘中留下蛛丝马迹,而是直接将恶意代码写入内存或注册表中。由于没有病毒文件,传统基于文件扫描的防病毒软件很难侦测到它们的存在。然而,“无文件”攻击的定义已经逐渐扩大化,那些需要依靠文件系统的某些功能来实现激活或驻留的恶意软件也已经包括在了“无文件”攻击的范畴中。
◎Vbs脚本编程简明教程之一 —为什么要使用Vbs?
上一篇文章我们简单的解释了什么是WMI,WMI做什么,为什么使用WMI。本文是笔者在阅读国内部分的解释WMI横向移动的文章后写下的一篇文章,希望帮助同学们在攻防中进入横向移动后根据实际场景利用WMI来解决问题。在横向移动中的固定过程中一定离不开“信息收集”,然后分析信息根据实际场景(工作组或者域)来进行横向移动,至于使用什么工具,为什么使用这个工具,笔者使用WMI的意见。所以本文分为三个段落,信息收集、横向移动、部分意见。 信息收集。
在之前的博文中,我们主要介绍了如何使用WMI查询信息和接收事件。本文将介绍WMI的另一种用法——执行方法。(转载请指明出于breaksoftware的csdn博客)
最近比较烦,研发给的pc服务版本在虚拟机上已经开始给客户使用了,服务老是莫名的死翘翘,客户不停的电话给我,搞的我心情很差,于是在一个下午,静下心来,用python写了个简单的监控进程的脚本,当发现进程消失的时候,立即调用服务,开启服务。。。
Bondnet的控制者通过一系列公开漏洞,利用Windows管理服务(WMI)木马对服务器进行入侵控制。根据GuardiCore的分析显示,昵称为Bond007.01的Bondnet控制者,能获得对肉鸡服务器的完全控制权,具备数据窃取、勒索和发起其它进一步攻击的可能。Bondnet自2016年12月出现以来,主要进行门罗币(Monero)的挖掘,其一天的收入可达1千美元之多。
随着人们的安全意识的逐步加强,企业内部的Windows服务器口令越来越复杂了,经常会遇到提权到windows服务器,获取了用户的密码hash,但是cmd5官网或者本地猜解都拿不到明文密码的情况。这时候就需要用到内网哈希传递技术了。哈希传递利用了NTLM认证的缺陷,使用用户的密码哈希值来进行NTLM认证。如果目标机器与获取hash值的机器的密码相同,就可以直接使用hash来远程登录Windows主机了。
# -*- coding:utf-8 -*- import datetime import os import wmi import time import _winreg import pythoncom import threading import win32api import win32con import Queue c = wmi.WMI() # 如果要连接远程机器,只需要在WMI构造器中指定远程机器名即可 # c = wmi.WMI("some_other_machine") # Li
在我们获得用户名口令后,尝试远程登陆目标主机并执行程序,结合实际环境做了如下测试.
领取专属 10元无门槛券
手把手带您无忧上云