Land #4302, zeroSteiner's fix getuid for the python meterpreter

bug/bundler_fix
Brent Cook 2014-12-04 16:11:55 -06:00
commit 051d2f1c39
No known key found for this signature in database
GPG Key ID: 663AF51BD5E4D8D5
1 changed files with 7 additions and 3 deletions

View File

@ -675,8 +675,10 @@ def channel_open_stdapi_net_tcp_server(request, response):
@meterpreter.register_function
def stdapi_sys_config_getenv(request, response):
for env_var in packet_enum_tlvs(request, TLV_TYPE_ENV_VARIABLE):
pgroup = ''
env_var = env_var['value'].translate(None, '%$')
pgroup = bytes()
env_var = env_var['value']
env_var = env_var.replace('%', '')
env_var = env_var.replace('$', '')
env_val = os.environ.get(env_var)
if env_val:
pgroup += tlv_pack(TLV_TYPE_ENV_VARIABLE, env_var)
@ -698,7 +700,9 @@ def stdapi_sys_config_getsid(request, response):
@meterpreter.register_function
def stdapi_sys_config_getuid(request, response):
if has_windll:
if has_pwd:
username = pwd.getpwuid(os.getuid()).pw_name
elif has_windll:
token = get_token_user(ctypes.windll.kernel32.GetCurrentProcess())
if not token:
return ERROR_FAILURE, response