如何使用PowerShell实现命令控制以及安全检查绕过

Windows操作系统在全球市场上的占比是大家有目共睹的,而现代Windows平台都默认安装了PowerShell,而且系统管理员还可以毫无限制地访问和使用PowerShell终端。这一切的一切,使得目前很多的安全渗透工具都是采用PowerShell编写的。但我们也要注意,PowerShell的这些特性也使得它成为了网络犯罪分子非常喜爱的一种工具。

BenTurner和Dave
Hardy这两位安全研究人员开发出了一款基于PowerShell和C#的命令控制工具-PoshC2,这款工具不仅实现了各种各样的攻击技术,而且使用起来也非常简单。而PoshC2最重要的功能就是它能够绕过目标主机中部署的各种安全检查。

PoshC2下载地址

点我下载

PoshC2的安装步骤如下:

PoshC2提供了通信数据加密功能,而且只需要八个步骤的简单操作就可以完全配置好PoshC2。PoshC2的配置界面如下:

配置完成之后,该工具会列出所有它所能实现的技术,渗透测试人员可以利用PoshC2来绕过AppLocker、Bit9或通过PowerShell向目标主机中下载植入程序。

PoshC2还可以生成各种功能强大的Payload,研究人员可以在渗透测试或安全评估过程中使用这些Payload。

当植入程序成功下载并在目标主机中安装之后,植入程序处理器(Implant Handler)终端将会打开,它负责处理植入程序和C2服务器之间的交互,并在目标主机中执行命令。

与PowerShell会话类似,它也能接收任何的PowerShell命令或PoshC2命令,相关命令可以在帮助菜单中找到:

PoshC2的植入程序中还包含很多其他的技术,研究人员可以利用这些技术来提取信息、实现提权或收集主机/域名信息。下面列出了其中的部分渗透技术:

注:该工具还提供了图形用户接口,但是用户需要安装.NET Framework v4.03019。除此之外,该工具的输出数据还可以保存为HTML文件格式。

总结

PoshC2最大的优势就在于它使用的是PowerShell,因此它的植入程序不需要任何其他的依赖组件,这种特性与其他很多用Python开发的命令控制工具很相似。除此之外,它的运行速度和效率非常快,稳定性非常高,而且输出信息也非常详细。

综上所述,PoshC2肯定可以给广大渗透测试人员带来非常大的帮助。

本文作者:Alpha_h4ck

来源:51CTO

时间: 2024-09-11 23:54:10

如何使用PowerShell实现命令控制以及安全检查绕过的相关文章

利用企业邮件系统构造命令控制(C&C)和数据窃取(Exfiltration)通道的思路探讨

假设场景 我们假设目标企业组织内设置了这样一种安全措施: 01:内部用户工作站电脑不能直接连接互联网,只能通过其中架设的代理服务器执行外部Web请求和DNS查询,而且代理服务器又设置了流量监控功能,由其产生的HTTP和DNS请求流量都能被监测发现. 02:由于从某种程度上来说,代理服务器"打破"了内部用户机与外部服务器之间点对点连接模式,包括HTTPS方式,所以像Domain fronting这种隐蔽攻击方式一样可以被监测到,所以只有一些白名单网站可以被放行通过. 03:这种环境下,企

PowerShell及命令行打开Windows Server 2008玻璃特效Aero

PowerShell及命令行打开Windows Server 2008玻璃特效Aero操作如下: 打开Powershell 后输入以下命令.(可按微标+2运行,未更改任务栏图标.)1. 安装桌面体验servermanagercmd -install http://www.aliyun.com/zixun/aggregation/16493.html">Desktop-Experience 2. 安装完成后重新启动,执行.shutdown -r -t 0 3. 更改Theme服务为自动运行s

微软否认用 PowerShell 替代命令行 cmd

微软官方博客发表了一篇文章澄清了上个月的一则流言,否认将用PowerShell替代命令行Cmd.源自ComputerWorld的文章称微软最新发布的Windows 10 insider Build (Build 14971)用PowerShell替代了命令提示符,按组合键WIN + X ,运行对话框输入Cmd,或在任何文件夹按 Shift + 右键,命令行窗口不再出现.微软官方对此回应称,无论是近期还是远期,Windows都不会移除Cmd.流言的传播者错误解读了Build 14971的更新公告,

AngularJS 使用$sce控制代码安全检查

什么是SCE SCE,即strict contextual escaping,我的理解是 严格的上下文隔离 ...翻译的可能不准确,但是通过字面理解,应该是angularjs严格的控制上下文访问. 由于angular默认是开启SCE的,因此也就是说默认会决绝一些不安全的行为,比如你使用了某个第三方的脚本或者库.加载了一段html等等. 这样做确实是安全了,避免一些跨站XSS,但是有时候我们自己想要加载特定的文件,这时候怎么办呢? 此时可以通过$sce服务把一些地址变成安全的.授权的链接...简单

PowerShell复制命令行历史命令方法_PowerShell

适用于所有PowerShell版本 要保存你在当前PowerShell控制台上输入的所有的PowerShell命令,试试下面的代码: 复制代码 代码如下: (Get-History).CommandLine | clip.exe 它会复制所有的命令道剪贴板,然后你可以把它复制进PowerShell ISE,再保存.

PowerShell实现在控制台中插入绿色的打勾符号_PowerShell

在前面的PowerShell技巧中,我们看到了PowerShell控制台支持输出所有TrueType字体的字符,你只需将你的字符代码转换成Char类型.今天再来一个更高级的例子,让用户在控制台中插入绿色的打勾符号. $greenCheck = @{ Object = [Char]8730 ForegroundColor = 'Green' NoNewLine = $true } Write-Host "Status check... " -NoNewline Start-Sleep -

AngularJS 使用$sce控制代码安全检查_AngularJS

由于浏览器都有同源加载策略,不能加载不同域下的文件.也不能使用不合要求的协议比如file进行访问. 在angularJs中为了避免安全漏洞,一些ng-src或者ng-include都会进行安全校验,因此常常会遇到 一个iframe中的ng-src无法使用. 什么是SCE SCE,即strict contextual escaping,我的理解是 严格的上下文隔离  ...翻译的可能不准确,但是通过字面理解,应该是angularjs严格的控制上下文访问. 由于angular默认是开启SCE的,因此

探索PowerShell(九) 条件控制、逻辑_PowerShell

逻辑判断 先来简单介绍最基本的逻辑判断: • -eq 判断是否等于(equal) • -lt 判断时候小于(less than) • -gt 判断是否大于(greater than) • -ge 判断是否大于或等于(greater of equal) • -le 判断是否小于或等于(less or equal) • -ne 判断是否不等于(no equal) 在之前的几个小节中,如果你注意的话,应该可以发现PowerShell对于大小写并不敏感,可是在某些时候我们却需要区分它们,因此,还可以使用

PowerShell脚本中控制Windows DNS服务的方法_PowerShell

PowerShell可以很方便的操作WMI,而DNS服务又提供了很好的WMI支持,所以,PowerShell可以通过操作WMI来操作Windows DNS服务. 1.获取DNS对象. 复制代码 代码如下: PS> $mydns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" 2.创建解析记录,使用CreateInstanceFromTextRepresentation方法. 复制代码 代码如下: PS>