首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Windows 命令行混淆

(2) 字符替换 另一种方法是用类似的字符替换命令行中的其他字符。尤其是考虑整个 Unicode 范围时,在 ASCII 范围内也发现了许多可能接受的字母变体。...cmd例如,解决此问题的一种方法是将每个引号加倍,因此要获得如上所示的等效执行,您必须运行netsh ad""vfi""rewall show currentprofile state. (5) 简写...这方面的一个例子是 PowerShell,它的许多关键字允许您在关键字的末尾省略一个或多个字符。...也许除了最短的变体之外,在/e使混淆变得更加复杂和不可预测。例如,PowerShell 仅接受缩短的版本,前提是它不会导致另一个命令之间的歧义。...除了这种“通配符方法”之外,PowerShell 在某些情况下也接受首字母缩写词,因此尽管屏幕截图中没有显示,/ec但也可以用作/encodedcommand.

74810

Attacking SQL Server CLR Assemblies

[object_id] 通过此查询我们可以看到文件名、程序集名称、程序集类名称、程序集方法以及该方法映射到的存储过程 您应该在结果中看到"my_assembly",如果您运行我之前提供的"Create-SQLFileCLRDll...' 在这个例子中,我们可以看到它只接受一个名为"execCommand"的字符串参数,针对存储过程的攻击者可能能够确定它可用于操作系统命令执 如何将SQL Server中存在的CLR程序集导出到DLL...对于本练习我们将修改之前从SQL Server导出的cmd_exec.dll 1、在dnSpy中打开cmd_exec.dll文件,在左侧面板中向下钻取直到找到"cmd_exec"方法并选择它,这将立即允许您查看源代码并开始寻找错误..."cmd_exec",然后深入到PE部分并选择"#GUID"存储流,然后右键单击它并选择"在十六进制编辑器中显示数据" b、接下来您所要做的就是用任意值修改所选字节之一 c、从顶部菜单中选择文件,然后选择...PowerShell自动化 您可以使用我之前提供的原始 PowerShell命令,也可以使用下面的 PowerUPSQL 命令示例从新修改的"cmd_exec.dll"文件中获取十六进制字节并生成 ALTER

1.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    windows命令行混淆

    便可以看到我们所有的环境变量。然后我们来设置环境变量: set a=cmd /c whoami 然后执行: %a% ? 该方法可以用与静态检测绕过,要对其进行日志监测还需要装sysmon。...双引号 双引号没有什么特殊的含义,它可以帮助文件或目录保持一个整体,而不会被中间的空格所切割。 一个简单的例子就是目录名中间有空格。 ? 用法即是我们可以在敏感文件名、命令中间添加空格。 ?...字符串提取 cmd中也可以通过环境变量的方式进行变量值的字符串提取。...逗号与分号 逗号与分号某些情况可以当作一个终止符号或者代替空格。 ? 循环语句查找 我们也可以通过for循环去查找我们所要的字符串执行,可以避免在命令行输入特殊的字符。...\”) do %g 从”c:\windows\system32\powershell”中以反斜杠为分隔符,提取第四列的字符串并执行。

    1.5K20

    A Detailed Guide on AMSI Bypass

    ,我们会看到amsi正在powershell终端中运行,任何输入都会首先被它扫描 Method 1: Powershell降级处理 如果您正在运行基于powershell的有效负载并且AMSI阻止了它...,您可以将您的powershell版本降级到2.0,因为AMSI仅在v2.0之后受支持,首先您可以看到我们的关键字被amsi屏蔽了 之后检查当前PS版本,然后降级到版本2并再次运行这些被阻止的命令 $...PSVersionTable "amsiutils" powershell -version 2 "amsiutils" 正如您所看到的那样我们成功绕过了AMSI,这里最大的缺点是许多现代函数或脚本无法在...,在其他方法中替换函数或替换字符串,但逻辑相同 Method 4: Powershell内存劫持 Daniel Duggan在他的博客中介绍了关于绕过AMSI的内存劫持技术,逻辑是Hook函数AmsiScanBuffer...AMSI也会阻止字符串AmsiScanBufferBypass 下载后您转到发布文件夹并看到一个名为ASBBypass.dll的DLL,请注意由于我们现在有一个DLL,它也可以与我们的EXE有效负载集成

    1.5K20

    (3)Powershell基础知识(一)

    从输出结果中,可以看到可以获取指定的service,新建新的service,重启,设置service的一些状态,启动,停止等操作。...通过允许发送对象(而不是文本),它扩展了在命令之间发送数据的概念。 右命令行很容易过度到脚本 使用 Windows PowerShell,可以很方便地从以交互方式键入命令过渡到创建和运行脚本。...命令不是基于文本的,是基于.Net对象的 与传统的命令(如perl,bat,cmd,bash等)不同,Powershell可处理对象(结构化的信息),而不只是显示在屏幕上的字符串,命令输出始终提供可能会需要的额外信息...除此之外,Powershell还可以调用外部的.ps1脚本文件,也可以在脚本中创建自己的函数。...如果仅有两个名词和两个动词,则一致性并不会极大地简化您了解这些命令的过程。

    4.1K20

    进攻性横向移动

    以另一种方式,它包含您的身份并说明您可以在系统上使用和不能使用的内容。在不深入研究 Windows 身份验证的情况下,访问令牌引用登录会话,这是用户登录 Windows 时创建的。...两者之间的区别,尽管 CS 文档说,PsExec (psh) 正在调用 Powershell.exe,并且您的信标将作为 Powershell.exe 进程运行,而没有 (psh) 的 PsExec 将作为...image.png image.png 所以我们看到,即使通过 WMI,尽管 wmic.exe 能够通过 Powershell 在目标上运行命令,但仍会创建命名管道,那么为什么首先要创建命名管道呢...这可以通过 Powershell 中的命令完成,也可以通过 WMI 和 Powershell 远程完成: 启用-PSRemoting -Force 从非 CS 的角度来看(用您的二进制文件替换 calc.exe...可以与上述一些方法结合使用,以避免丢弃编码的 Powershell 命令或生成 cmd.exe。

    2.2K10

    OFFENSIVE LATERAL MOVEMENT 横向移动(译文)

    换句话说,它包含您的身份并说明您可以在系统上使用或不能使用的功能。在不深入研究Windows身份验证的情况下,访问令牌会参考登录会话,这是用户登录Windows时创建的登录会话。...另外,发送的命令是通过命名管道发送的,该管道在CS中具有默认名称(可以更改)。 Red Canary撰写了一篇有关检测它的出色文章。...两者之间的区别,尽管CS文档有说明,PsExec(psh)仍在调用Powershell.exe,并且您的信标将作为Powershell.exe进程运行,而没有(psh)的PsExec将作为rundll32...因此,我们看到即使通过WMI,尽管wmic.exe能够通过PowerShell在目标上运行命令,但仍创建了命名管道,那么为什么要首先创建命名管道呢?...这可以通过Powershell中的命令完成,也可以通过WMI和Powershell远程完成: Enable-PSRemoting -Force 从非CS的角度来看(用您的二进制文件替换calc.exe)

    4.2K10

    记一次powershell的免杀之路(绕过360、火绒)

    2、PowerShell脚本可以运行在内存中,不需要写入磁盘。 3、几乎不会触发杀毒软件。 4、可以远程执行。 5、目前很多工具都是基于PowerShell开发的。...7、cmd.exe通常会被阻止运行,但是PowerShell不会。 8、可以用来管理活动目录。...可以看到默认的策略是Restricted 不允许任何脚本执行 我们可以用管理员权限去更改powershell的默认策略 Set-ExecutionPolicy Unrestricted 当然这种方法在实战中不太适用...图像保存为 PNG,并且可以无损压缩而不会影响执行有效负载的能力,因为数据存储在颜色本身中。...+图片混淆技术绕过AV检测 首先我们在cobaltsrtike4.0中生成一个powershell代码文件(注意不能是64位的) 可以看到基本的意思是把代码以及字符串进行base64加密放进$var_code

    6.6K10

    1.PS编程入门基础语法

    一样很好的执行外部命令, 即在 windows Cmd 中运行的基本都可以在PS中运行。.../ping的格式, 所以说命令与脚本的混淆不会发生在powershell中,因为powershell有更安全的机制。 示例2.在PS中执行VB脚本文件 # 执行 ....称为管道元素)将其输出逐项传递到管道中的下一个命令 1.传统的Cmd管道是基于文本的,但是Powershell是基于对象 2.管道中传递是对象可以作为下一个cmdlet的参数 3.它可以减少使用复杂命令的工作量...在使用不带参数的 Export-Console cmdlet 时,它自动更新在会话中最近使用的控制台文件。 可以使用此自动变量确定要更新的文件。...,日期时间也会分配成为该对应的数据类型,使用时候非常的方便; 1.弱类型的缺点: 有一个变量要存储的是即将拷贝文件的个数,可是在赋值时付了一个字符串,Powershell不会去做过多的判断,它会更新这个变量的类型

    20.8K20

    如何利用oneNote钓鱼?

    沙箱分析 但凡是个正常人,肯定是不会直接双击样本的。打开用杀软先静态扫了一波,df报毒了,某60和某绒没报毒(不知道当你看到这的时候会不会报毒)。然后在虚拟机上装一个OneNote。...行为分析图 看到这里的调用链,狂喜,这真不会是个0day吧。...它的作用是将一个 Base64 编码的字符串转换为 ASCII 编码的字符串。....FromBase64String 方法是 System.Convert 类中的一个方法,它接收一个 Base64 编码的字符串,并返回其对应的字节数组。...把cmd文件拖出来,里面就是我们刚刚看到的那串PowerShell代码了。 复现制作过程 制作非常简单,几乎不需要什么技巧,主要要考虑的姿势还是cmd里的内容。

    95630

    FireEye发布调查报告,混淆技术成为了2017年攻击者最喜欢用的技术之一

    (_MICROSOFT_UPDATE_CATALOG)中设置需要运行的PowerShell命令,然后在另一个环境变量(MICROSOFT_UPDATE_SERVICE)中设置字符串“powershell...-”,接下来PowerShell将会运行它通过StdIn接收到的命令了。...因此,WinWord.exe将不会生成子进程,但系统将会生成如下进程树:wmiprvse.exe > cmd.exe > powershell.exe。...最后,他们还使用了一个cmd.exe支持的字符替换功能,而这个功能几乎很少有人知道。wscript.exe命令也被设置在了一个进程级环境变量“x”之中,但使用了字符“@”来进行混淆处理。...这种技术会暴露前三个cmd.exe的命令执行参数,如果这些环境变量设置在LNK或宏文件中并通过StdIn传递到了cmd.exe之中,那么命令行界面将不会出现任何数据。

    1.1K70

    红队技巧-持久性技巧

    优化: 我们完全可以用木马可执行文件来替换cmd执行powershell,这样后台将不会有任何操作显示,这样隐蔽一点,只需要把木马可执行文件绝对路径替换成链接的target就行了,这里仅提供一个思路,后续研究各位请继续...Powershell配置文件: PowerShell配置文件是一个PowerShell脚本,您可以对其进行自定义,并将其特定于会话的元素添加到您启动的每个PowerShell会话中。...它是一个在PowerShell启动时运行的脚本,你可以使用配置文件作为登录脚本来自定义环境,你可以添加命令,功能,别名,模块等。...PowerShell配置文件脚本存储在文件夹“ WindowsPowerShel”中,默认情况下对用户隐藏。如果有效负载已放入磁盘,则可以使用。...执行过程不会像上面的示例那样在系统上创建新进程,而是使用现有的PowerShell进程,更为隐蔽。

    1.3K30

    针对黑客的Windows文件传输总结

    这不会将 EXE 文件下载并执行到内存中。 当PowerShell脚本被下载并直接执行到内存中时,它会将脚本加载到当前会话中,以便可以执行脚本函数。但是,由于执行策略,这可能会带来问题。...Invoke-PowerShellTcp.ps1') 从我们的Python日志中,我们可以看到用户成功下载了脚本;在我们的受害者上,我们看到提示符在执行后立即挂起。...1.4从攻击者的HTTP服务器下载文件:cmd.exe 借助 PowerShell 示例,我们可以使用一种技术,它允许我们从 cmd.exe 提示符执行 PowerShell 命令。...HTTP服务器一样在浏览器中访问;不过,这次它配备了易于使用的上传功能。...检查文件,我们可以看到在将文件大小与攻击者计算机上的原始文件大小进行比较后,它已完整传输。

    68511

    The Missing Semester of Your CS Education

    在折腾完Powershell后,shell的课程用的是bash,那我想了想可以用git bash,于是又给git bash也配置了一下,现在已经可以在cmd中打开并且有个看起来还不错的主题啦 更换完主题心情舒畅...以'定义的字符串为原义字符串,其中的变量不会被转义,而 "定义的字符串会将变量值进行替换。 bash使用了很多特殊的变量来表示参数、错误代码和相关变量。...命令替换 通过 ( CMD ) 这样的方式来执行CMD 这个命令时,它的输出结果会替换掉 ( CMD ) 。...进程替换 CMD ) 会执行 CMD 并将结果输出到一个临时文件中,并将 CMD ) 替换成临时文件名。 运行脚本 #!...在 sed 中,您基本上是利用一些简短的命令来修改文件,而不是直接操作文件的内容(尽管您也可以选择这样做)。

    2K21

    windows中cmd和PowerShell批处理命令

    git branch -D因为这个命令中的 grep、xargs 本身是 Shell script,在 windows 中的 cmd 和 PowerShell 中是不能用的。...cmd 中批处理命令# 在cmd中用 % 标识变量,如果是批处理程序执行bat文件中需要使用 %% 来表示变量如 %%i# 在cmd小黑窗窗口中for %i in (xxx) do command# 在...元素可以是变量、字符串,元素之间用空格键、tab键、逗号、分号或等号分隔xxx必须用()包围,即使只有一个元素%%I是形式变量,即使没有在command中被使用,也不能省略for语句的形式变量I,可以换成...26个字母中的任意一个,这些字母会区分大小写,也就是说,%%I和%%i会被认为不是同一个变量为了不与批处理中的%0~%9这10个形式变量发生冲突,请不要随意把%%I替换为%%0~%%9中的任意一个for...语句依次提取(xxx)中的每一个元素,把它的值赋予形式变量I,带到do后的command中参与命令的执行;当执行完一次do后的语句之后,再提取(xxx)中的下一个元素,再执行一次command,如此循环

    41230

    ATT&CK矩阵的攻与防

    白+黑 就执行exe来说,我们出了通过双击,cmd运行以外,还可以存在如下运行方式 利用pcalua Pcalua -m -a axgg.exe 利用forfiles forfiles -P c:...,缩短,拼接,我们来看看 先说替换,我们可以怎么替换,比如Pcalua -m -a axgg.exe,我们可以使用环境变量替换某个字符串 P%comspec:~20,1%alua -m -a axgg....%comspec:~24,1%x%comspec:~24,1% 提个问题,关于pcalua这个exe,我们可以去了解一下它具体是干嘛的,出了-m -a参数还有什么,是否只能执行exe,dll,vbs...利用特殊字符串替换 比如我们的命令,forfiles -P c:\windows\ /m .prx /c "cmd /c c:\users\axingg\desktop\axgg.exe 我们-p可以替换为.../p,甚至可以用特殊字符串绕过 forfiles /ᵖ c:\windows\ /m .prx /c "cmd /c c:\users\axingg\desktop\axgg.exe同样也提一个问题,后面的

    88120

    【Rust学习】01_入门

    如果您没有看到此信息,请检查 Rust 是否在您的 %PATH% 系统变量中,如下所示在 Windows CMD 中,使用:> echo %PATH%在 PowerShell 中,使用:> echo $...意味着您调用了一个宏而不是一个普通函数,并且宏并不总是遵循与函数相同的规则。您看到 "Hello, world!" 字符串。我们将此字符串作为参数传递给 println! ,并将该字符串打印到屏幕上。...在 Windows上的 Linux、macOS 和 PowerShell 上,可以通过在 shell 中输入 ls 命令来查看可执行文件:$ lsmain main.rs在 Linux 和 macOS...使用 Windows 上的 PowerShell,你将看到与使用 CMD 相同的三个文件。...如果在现有 Git 存储库中运行 cargo new ,则不会生成 Git 文件;可以使用 cargo new --vcs=git 来覆盖此行为。

    12000
    领券