exe2hexbat是一个 Python 脚本,用于将 Windows PE 可执行文件转换为批处理文件,反之亦然。
概述
exe2hex
将可执行二进制文件编码为 ASCII
文本格式。然后,将结果传输到目标计算机(回显 ASCII 文件比回显二进制数据容易得多)。执行exe2hex
的输出文件后,使用或PowerShell
(默认情况下在Windows上预安装)还原原始程序。可以使用exe2hex
中的内置 Telnet
或 WinEXE
选项自动将文件传输到目标计算机。
Binary EXE -> ASCII Text -> *Transfer* -> Binary EXE
快速开始
-x
使用文件或 STDIN ( /path/to/binary-program.exe-s
)
-b
输出到 BATch /或 PoSH (-b file.bat-p powershell.cmd
)
用法示例
创建 BATch & PowerShell 文件:
这里我随便写了一个exe程序
代码语言:javascript复制exe2hex -x chao.exe
可以看到,exe2hex将exe文件转变成了cmd
和bat
文件。
在创建 BATch 文件之前压缩文件
代码语言:javascript复制exe2hex -x chao.exe -b nc.txt -cc
[*] exe2hex v1.5.1
[i] Attempting to clone and compress
[i] Creating temporary file /tmp/tmp509bq1bl
[ ] Compression (strip) was successful! (0.0% saved)
upx: /tmp/tmp509bq1bl: NotCompressibleException
[ ] Compression (UPX) was successful! (0.0% saved)
[ ] Successfully wrote (BATch) /root/桌面/nc.txt
帮助
代码语言:javascript复制-h,--help #显示帮助信息并退出
-x EXE #EXE二进制文件转换
-s #从STDIN读取
-b BAT #BAT输出文件(DEBUG.exe方法-x86)
-p POSH #PoSh输出文件(PowerShell方法-x86 / x64)
-e #URL编码输出
-r TEXT #pRefix-在每行命令之前添加的文本
-f TEXT #suFfix-在每行命令后添加的文本
-l INT #每行最大十六进制值
-c #在转换之前克隆并压缩文件(使用-cc进行更高压缩)
-t #创建一个Expect文件,以自动进行Telnet会话。
-w #创建一个Expect文件,以自动执行WinEXE会话。
-v #启用详细模式
主要用途:
- 将二进制程序转换为ASCII十六进制文件,可以使用内置的操作系统程序进行还原。
- 在旧版和新版本的 Windows 上工作,无需预安装任何第三方程序。
- 支持 x86 和 x64 操作系统。
- 可以使用 DEBUG.exe 或 PowerShell 来还原文件。
- 能够在转换之前压缩文件。
- 对输出进行 URL 编码。
- 向每行添加前缀和后缀文本的选项。
- 能够设置每行的最大十六进制长度。
- 可以使用标准输入 () 中的二进制文件或管道。STDIN
- 通过 Telnet 和/或 WinEXE 自动传输。
Telnet登录
代码语言:javascript复制exe2hex.py -x chao.exe -b chao.bat -t
这时会生成一个/chao-bat-telnet
的文件,用来远程连接。
格式如下:
./klogger-bat-telnet <ip> <username> <password>
./chao-bat-telnet 192.168.123.1 admin admin
Welcome to Microsoft Telnet Service
login: winxp
password:
*===============================================================
Welcome to Microsoft Telnet Server.
*===============================================================
C:Documents and Settingswinxp>cd %TEMP%
C:DOCUME~1winxpLOCALS~1Temp>echo 418671.0>klogger.bat
418671.0E~1winxpLOCALS~1Temp>type klogger.bat
C:DOCUME~1winxpLOCALS~1Temp>
后记
exe2hex其实是将我们常用的程序或者脚本,编写成txt
cmd
bat
等批处理文件。由于部分机器的WAF
会限制文件上传/下载exe。于是提出了一种使用exe2hex绕过这些防御机制的方法。将其转变为编码形式,最后再次构造 exe 并执行它。
版权属于:逍遥子大表哥
本文链接:https://cloud.tencent.com/developer/article/1977370
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。