[系统安全] 四十.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
只有更深入的了解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.控制台和快捷键
ALT+F7 清楚命令的历史记录
PgUp PgDn 翻页
Enter 执行当前命令
End 将光标移动至当前命令的末尾
Del 从右开始删除输入的命令字符
Esc 清空当前命令行
F2 自动补充历史命令至指定字符处
F4 删除命令行至光标右边指定字符处
F7 对话框显示命令行历史记录
F8 检索包含指定字符的命令行历史记录
F9 根据命令行的历史记录编号选择命令,历史记录编号可以通过F7查看
左/右 左右移动光标
上/下 切换命令行的历史记录
Home 光标移至命令行字符最左端
Backspace 从右删除命令行字符
Ctrl+C 取消正在执行的命令
Tab 自动补齐命令或文件名
4.数学运算
PS C:\Users\yxz> 2+4
6
PS C:\Users\yxz> 4-2
2
PS C:\Users\yxz> 4*3
12
PS C:\Users\yxz> 9%2
1
PS C:\Users\yxz> (1+3*5)/2
8
PS C:\Users\yxz> 1gb/1mb
1024
PS C:\Users\yxz> 1gb/1mb*18kb
18874368
PS C:\Users\yxz> 1gb -gt 1mb
True
PS C:\Users\yxz> 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:\Users\yxz\Desktop\demo.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基础入门及管道和变量的用法