Skip to content

Commit d132aa9

Browse files
zeroSteinerTod Beardsley
authored andcommitted
Add process enumeration via PS for OSX.
1 parent c035278 commit d132aa9

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

data/meterpreter/ext_server_stdapi.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,25 @@ def stdapi_sys_process_get_processes_via_proc(request, response):
450450
response += tlv_pack(TLV_TYPE_PROCESS_GROUP, pgroup)
451451
return ERROR_SUCCESS, response
452452

453+
def stdapi_sys_process_get_processes_via_ps(request, response):
454+
ps_args = ['ps', 'ax', '-w', '-o', 'pid,ppid,user,command']
455+
proc_h = subprocess.Popen(ps_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
456+
ps_output = proc_h.stdout.read()
457+
ps_output = ps_output.split('\n')
458+
ps_output.pop(0)
459+
for process in ps_output:
460+
process = process.split()
461+
if len(process) < 4:
462+
break
463+
pgroup = ''
464+
pgroup += tlv_pack(TLV_TYPE_PID, int(process[0]))
465+
pgroup += tlv_pack(TLV_TYPE_PARENT_PID, int(process[1]))
466+
pgroup += tlv_pack(TLV_TYPE_USER_NAME, process[2])
467+
pgroup += tlv_pack(TLV_TYPE_PROCESS_NAME, os.path.basename(process[3]))
468+
pgroup += tlv_pack(TLV_TYPE_PROCESS_PATH, ' '.join(process[3:]))
469+
response += tlv_pack(TLV_TYPE_PROCESS_GROUP, pgroup)
470+
return ERROR_SUCCESS, response
471+
453472
def stdapi_sys_process_get_processes_via_windll(request, response):
454473
TH32CS_SNAPPROCESS = 2
455474
PROCESS_QUERY_INFORMATION = 0x0400
@@ -530,6 +549,8 @@ def stdapi_sys_process_get_processes(request, response):
530549
return stdapi_sys_process_get_processes_via_proc(request, response)
531550
elif has_windll:
532551
return stdapi_sys_process_get_processes_via_windll(request, response)
552+
else:
553+
return stdapi_sys_process_get_processes_via_ps(request, response)
533554
return ERROR_FAILURE, response
534555

535556
@meterpreter.register_function

0 commit comments

Comments
 (0)