-
只有更深入的了解PowerShell基础及用法,才能更好地检测恶意代码
-
一.Powershell初识
1.基础概念
2.为什么强大?
3.控制台和快捷键
4.数学运算
-
二.Powershell管道和重定向
1.管道
2.重定向
-
三.Powershell执行外部命令及命令集
1.外部命令
2.命令集
-
四.Powershell别名使用
1.别名基本用法
2.自定义别名
-
五.Powershell变量基础
1.基础用法
2.变量操作
3.自动化变量
4.环境变量
-
六.Powershell调用脚本程序
1.脚本文件执行策略
2.调用脚本程序
-
七.总结
作者的github资源:
-
逆向分析:
https://github.com/eastmountyxz/
SystemSecurity-ReverseAnalysis
-
网络安全:
https://github.com/eastmountyxz/
NetworkSecuritySelf-study
一.Powershell初识
1.基础概念
$psversiontable
2.为什么强大?
get-service
3.控制台和快捷键
清楚命令的历史记录
PgUp PgDn 翻页
Enter 执行当前命令
End 将光标移动至当前命令的末尾
Del 从右开始删除输入的命令字符
Esc 清空当前命令行
F2 自动补充历史命令至指定字符处
F4 删除命令行至光标右边指定字符处
F7 对话框显示命令行历史记录
F8 检索包含指定字符的命令行历史记录
F9 根据命令行的历史记录编号选择命令,历史记录编号可以通过F7查看
左右移动光标
切换命令行的历史记录
Home 光标移至命令行字符最左端
Backspace 从右删除命令行字符
取消正在执行的命令
Tab 自动补齐命令或文件名
4.数学运算
PS C:Usersyxz> 2+4
6
PS C:Usersyxz> 4-2
2
PS C:Usersyxz> 4*3
12
PS C:Usersyxz> 9%2
1
PS C:Usersyxz> (1+3*5)/2
8
PS C:Usersyxz> 1gb/1mb
1024
PS C:Usersyxz> 1gb/1mb*18kb
18874368
PS C:Usersyxz> 1gb -gt 1mb
True
PS C:Usersyxz> 0xabcd
43981
二.Powershell管道和重定向
1.管道
linux:ls
cmd:dir
ls | format-table name, mode
2.重定向
ls | format-table name, mode > demo.txt
type demo.txt
三.Powershell执行外部命令及命令集
1.外部命令
netstat -ano
ipconfig
route print
start notepad
notepad
$env:path
2.命令集
get-command
get-help get-command
get-process
get-alias
get-history
get-date
四.Powershell别名使用
1.别名基本用法
get-command
gcm
get-childitem
ls
dir
get-help get-childitem
get-alias -name ls
get-alias -name dir
get-alias | where{$_.definition.startswith("Remove")}
get-alias | group-object definition | sort -descending Count
2.自定义别名
set-alias -name pad -value notepad
del alias:pad
export-alias demo.ps
dir
type demo.ps
import-alias -force demo.ps
五.Powershell变量基础
1.基础用法
$name='eastmount'
$name
$age=28
$age
"I am a" var ()}="yxz" {
"I am a" var ()} {
n=(7*6+8)/2
n=3.14
$n=ls
$n1=$n2=$n3=25
$n1,$n2,$n3
2.变量操作
$a=2
$b=10
$c=a+b
$a,$b,$c
$num1=10
$num2=20
$temp=$num1
$num1=$num2
$num2=$temp
$num1,$num2
$num1=10
$num2=20
$num1,$num2=$num2,$num1
$num1,$num2
ls variable:
ls variable:num*
ls variable:num1
test-path variable:num1
test-path variable:num0
del variable:num1
test-path variable:num1
clear-variable
remove-variable
new-variable
3.自动化变量
$home
pid
$
4.环境变量
ls env:
$env:windir
$env:name='eastmount'
ls env:na*
del env:name
ls env:na*
$env:OS
$env:OS="Linux"
$env:OS
[environment]::setenvironmentvariable("PATH","E:","User")
[environment]::getenvironmentvariable("PATH","User")
六.Powershell调用脚本程序
1.脚本文件执行策略
get-executionpolicy
get-help set-executionpolicy
set-executionpolicy RemoteSigned
2.调用脚本程序
@echo off
echo hello world
cd desktop
.demo.bat
msgbox "CSDN Eastmount"
cd desktop
.demo.vbs
$number=49
switch($number)
{
{($_ -lt 50) -and ($_ -gt 40)} {"此数值大于50且小于40"}
50 {"此数值等于50"}
{$_ -gt 50} {"此数值大于50"}
}
@echo off
powershell "&'C:UsersyxzDesktopdemo.ps1'"
cd desktop
.demo.bat
start demo.bat
demo.bat
七.总结
-
一.Powershell初识
-
二.Powershell管道和重定向
-
三.Powershell执行外部命令及命令集
-
四.Powershell别名使用
-
五.Powershell变量基础
-
六.Powershell调用脚本程序
-
[1] https://www.bilibili.com/video/av66327436 [推荐B站老师视频]
-
[2]《安全之路Web渗透技术及实战案例解析》陈小兵老师
-
[3] https://baike.baidu.com/item/Windows Power Shell/693789
-
[4] https://www.pstips.net/powershell-piping-and-routing.html
-
[5] https://www.pstips.net/using-the-powershell-pipeline.html
-
[6] 微软官方PowerShell文档
前文回顾(下面的超链接可以点击喔):
-
[系统安全] 四十.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
原文始发于微信公众号(娜璋AI安全之家):[系统安全] 四十.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法