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程序
exe2hex -x chao.exe
可以看到,exe2hex将exe文件转变成了cmd
和bat
文件。
在创建 BATch 文件之前压缩文件
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
-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 #启用详细模式
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 Settings\winxp>cd %TEMP%
C:\DOCUME~1\winxp\LOCALS~1\Temp>echo 418671.0>klogger.bat
418671.0E~1\winxp\LOCALS~1\Temp>type klogger.bat
C:\DOCUME~1\winxp\LOCALS~1\Temp>
exe2hex其实是将我们常用的程序或者脚本,编写成txt
cmd
bat
等批处理文件。由于部分机器的WAF
会限制文件上传/下载exe。于是提出了一种使用exe2hex绕过这些防御机制的方法。将其转变为编码形式,最后再次构造 exe 并执行它。
版权属于:逍遥子大表哥
本文链接:https://cloud.tencent.com/developer/article/1977370
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。