58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
import datetime
|
|
import requests
|
|
import json
|
|
import os
|
|
|
|
def allowlistexechistories(url, outputjson: bool):
|
|
endpoint = url + '/v1/group'
|
|
print("[+] Grabbing All Policies")
|
|
payload = {}
|
|
headers = {
|
|
"X-APIKey": os.getenv('APIKEY')
|
|
}
|
|
response = requests.request("POST", endpoint, headers=headers, data=payload, verify=False)
|
|
parse_text = json.loads(response.text)
|
|
policiesnames = []
|
|
policyids = []
|
|
for index, list in enumerate(parse_text['response']['groups'], start=1):
|
|
print(f"{index}. {list['name']}")
|
|
policiesnames.append(list['name'])
|
|
policyids.append(list['groupid'])
|
|
choice = input("Select Policy Group: ")
|
|
choice = int(choice) - 1
|
|
endpoint = url + '/v1/logging/exechistories'
|
|
payload_dict = {
|
|
"type":[1, 2, 6, 7],
|
|
"checkpoint":"68a153c23963989b484541b4",
|
|
"policy": [policiesnames[choice]]
|
|
}
|
|
payload = json.dumps(payload_dict)
|
|
print(payload)
|
|
response = requests.request("POST", endpoint, headers=headers, data=payload, verify=False)
|
|
|
|
if outputjson == True:
|
|
return response
|
|
|
|
parse_text = json.loads(response.text)
|
|
for item in parse_text['response']['exechistories']:
|
|
print(item['checkpoint'])
|
|
print(item['datetime'])
|
|
print(item['hostname'])
|
|
print(item['filename'])
|
|
# checkpoint_stomper(item['checkpoint'], endpoint, headers, policiesnames[choice])
|
|
|
|
def checkpoint_stomper(checkpoint, endpoint, headers, policyname):
|
|
print(checkpoint)
|
|
payload_dict = {
|
|
"type":[1,2,6,7],
|
|
"checkpoint": checkpoint,
|
|
"policy":[policyname]
|
|
}
|
|
payload = json.dumps(payload_dict)
|
|
response = requests.request("POST", endpoint, headers=headers, data=payload, verify=False)
|
|
parse_text = json.loads(response.text)
|
|
# Send Whole JSON Response
|
|
for item in parse_text['response']['exechistories']:
|
|
print("test")
|
|
|