[TOC]
shellcode 基础
参考微软官方文档
几个特性:
- .NET Core可跨平台,powershell6可在Mac Linux平台使用,大气
- Win10自带组建,功能强大
了解Powershell
- 输出基于对象
- PowerShell cmdlet 旨在处理对象
- 在大多数情况下,可以使用标准 PowerShell 对象语法直接访问数据的各部分
- 命令系列是可扩展的
- 可以自己实现函数
- 支持批处理文件的脚本
- PowerShell 处理控制台输入和显示
- 在cmdlet 后使用 -?可显示关于此命令的帮助
- PowerShell 使用某些 C# 语法
了解powershell的名称
1. Cmdlet 使用谓词-名词的名称来减少命令记忆
- [PowerShell 批准的谓词]( https://docs.microsoft.com/zh-cn/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands?view=powershell-7 )
2. Cmdlet 使用标准参数
- 参数主要通过**-?**获取,还有通用参数如 WhatIf、Confirm、Verbose、Debug、Warn、ErrorAction、ErrorVariable、OutVariable 和 OutBuffer
3. 建议的参数名称
- 加上方便人理解: Force 、Exclude 、Include 、PassThru 、Path 和 CaseSensitive
使用熟悉的命令名称
1. Powershell 支持常见的Unix 和cmd.exe 的命令
cat | dir | mount | rm |
cd | echo | move | rmdir |
chdir | erase | popd | sleep |
clear | h | ps | sort |
cls | history | pushd | tee |
copy | kill | pwd | type |
del | lp | r | write |
diff | ls | ren |
别名相关操作
Get-Command -Noun Alias
获取详细的帮助信息
- 获取有关 cmdlet 的帮助
- 常规帮助 Get-Help cmdlet、man cmdlet 、cmdlet -?
- 获取到参数的帮助 Get-Help cmdlet -Full
使用变量存储对象
- 使用$表示变量
- Get-Member $env:获取变量的信息
- 可以创建设置键值对,例:
$env:LIB_PATH='/usr/local/lib'
- 可以创建设置键值对,例:
了解 PowerShell 管道
主要是方法和属性的使用,下面举个例子
Get-Location
获取一个pathInfo
Get-Location | Get-Member
获取这个类的方法和属性
想要使用必须先实例化,传给一个变量
$myLocal = Get-Location
实例化,这个$myLocal
拥有Get-Location
的全部方法和属性
比如$myloc.Drive.Used
获取所在驱动内存使用大小,通过Get-Member
获取详情
术语表
powershell的常用术语
建议中英对照看,翻译的有些不易理解
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!