EmpireProject / Empire

Empire is a PowerShell and Python post-exploitation agent.
http://www.powershellempire.com/
BSD 3-Clause "New" or "Revised" License
7.36k stars 2.8k forks source link

Set sys.argv from the macho template #1375

Open OJ opened 4 years ago

OJ commented 4 years ago

When running an agent in a macho binary, we have an issue where any modules that make use of sys.argv (directly or indirectly through dependencies) fail because sys.argv hasn't been set. We get the following error:

image

If this same module is run from a python one-liner the error doesn't appear.

This PR attempts to fix this problem by changing the template so that argc and argv are passed to Python before the agent is run. From here, any references to sys.argv should not result in failure.

Note: I have not compiled this code (no current access to OSX), but I think it should just work out of the box.