Iterate through all checkpoints and add the json responses to the return output for the hash functions script
This commit is contained in:
+2
-1
@@ -1 +1,2 @@
|
|||||||
.env
|
.env
|
||||||
|
*.html
|
||||||
-62550
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
pandas==2.3.1
|
pandas==2.3.2
|
||||||
python-dotenv==1.1.1
|
python-dotenv==1.1.1
|
||||||
Requests==2.32.5
|
Requests==2.32.5
|
||||||
urllib3==2.5.0
|
urllib3==2.5.0
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+55
-25
@@ -2,6 +2,7 @@ import datetime
|
|||||||
import requests
|
import requests
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import time
|
||||||
|
|
||||||
def allowlistexechistories(url, outputjson: bool):
|
def allowlistexechistories(url, outputjson: bool):
|
||||||
endpoint = url + '/v1/group'
|
endpoint = url + '/v1/group'
|
||||||
@@ -20,39 +21,68 @@ def allowlistexechistories(url, outputjson: bool):
|
|||||||
policyids.append(list['groupid'])
|
policyids.append(list['groupid'])
|
||||||
choice = input("Select Policy Group: ")
|
choice = input("Select Policy Group: ")
|
||||||
choice = int(choice) - 1
|
choice = int(choice) - 1
|
||||||
endpoint = url + '/v1/logging/exechistories'
|
checkpoint = '000000000000000000000000'
|
||||||
payload_dict = {
|
json_output = {'error': 'Success', 'response': {'exechistories': []}}
|
||||||
"type":[1, 2, 6, 7],
|
while True:
|
||||||
"checkpoint":"68a153c23963989b484541b4",
|
json_response_data = checkpoint_stomper(checkpoint, url, policiesnames[choice], headers)
|
||||||
"policy": [policiesnames[choice]]
|
if not json_response_data['response']['exechistories']:
|
||||||
}
|
break
|
||||||
payload = json.dumps(payload_dict)
|
for index, item in enumerate(json_response_data['response']['exechistories']):
|
||||||
print(payload)
|
if index == len(json_response_data['response']['exechistories']) -1:
|
||||||
response = requests.request("POST", endpoint, headers=headers, data=payload, verify=False)
|
checkpoint = item['checkpoint']
|
||||||
|
print(f"Date Greater than 30 Days, Stepping to new Checkpoint. {item['checkpoint']}")
|
||||||
|
else:
|
||||||
|
if (datetime.date.today() - datetime.timedelta(days=1) > datetime.datetime.strptime(item['datetime'].replace(' +0000 UTC', ''), '%Y-%m-%dT%H:%M:%SZ').date()):
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
json_output['response']['exechistories'].append(json_response_data['response']['exechistories'])
|
||||||
if outputjson == True:
|
if outputjson == True:
|
||||||
return response
|
return (json_output)
|
||||||
|
#endpoint = url + '/v1/logging/exechistories'
|
||||||
parse_text = json.loads(response.text)
|
#payload_dict = {
|
||||||
|
# "type":[1, 2, 6, 7],
|
||||||
for item in parse_text['response']['exechistories']:
|
# "checkpoint":"000000000000000000000000",
|
||||||
print(item['checkpoint'])
|
# "policy": [policiesnames[choice]]
|
||||||
print(item['datetime'])
|
#}
|
||||||
print(item['hostname'])
|
#payload = json.dumps(payload_dict)
|
||||||
print(item['filename'])
|
#print(payload)
|
||||||
|
#response = requests.request("POST", endpoint, headers=headers, data=payload, verify=False)
|
||||||
|
#parse_text = json.loads(response.text)
|
||||||
|
#text_response = checkpoint_stomper(parse_text['response']['exechistories'], url, policiesnames[choice])
|
||||||
|
#
|
||||||
|
#if outputjson == False:
|
||||||
|
# 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])
|
# checkpoint_stomper(item['checkpoint'], endpoint, headers, policiesnames[choice])
|
||||||
|
|
||||||
def checkpoint_stomper(checkpoint, endpoint, headers, policyname):
|
def checkpoint_stomper(checkpoint, url, policy, headers):
|
||||||
print(checkpoint)
|
endpoint = url + '/v1/logging/exechistories'
|
||||||
payload_dict = {
|
payload_dict = {
|
||||||
"type":[1,2,6,7],
|
"type":[1,2,6,7],
|
||||||
"checkpoint": checkpoint,
|
"checkpoint": checkpoint,
|
||||||
"policy":[policyname]
|
"policy": [policy]
|
||||||
}
|
}
|
||||||
payload = json.dumps(payload_dict)
|
payload = json.dumps(payload_dict)
|
||||||
response = requests.request("POST", endpoint, headers=headers, data=payload, verify=False)
|
response = requests.request("POST", endpoint, headers=headers, data=payload, verify=False)
|
||||||
parse_text = json.loads(response.text)
|
parse_text = json.loads(response.text)
|
||||||
# Send Whole JSON Response
|
return parse_text
|
||||||
for item in parse_text['response']['exechistories']:
|
#for index, item in enumerate(parse_text):
|
||||||
print("test")
|
# if index == len(parse_text) - 1:
|
||||||
|
# checkpoint = item['checkpoint']
|
||||||
|
# print(f"Time: {item['datetime']} Checkpoint: {item['checkpoint']}")
|
||||||
|
# response_fuzzer(checkpoint, url, policyname)
|
||||||
|
# else:
|
||||||
|
# if (datetime.date.today() - datetime.timedelta(days=30) > datetime.datetime.strptime(item['datetime'].replace( ' +0000 UTC', ''), '%Y-%m-%dT%H:%M:%SZ').date()):
|
||||||
|
# pass
|
||||||
|
# else:
|
||||||
|
# response_fuzzer(checkpoint, url, policyname)
|
||||||
|
|
||||||
|
|
||||||
|
print("Finished")
|
||||||
@@ -8,7 +8,7 @@ def aggregateHashes(executions_json) -> pd.DataFrame:
|
|||||||
"""
|
"""
|
||||||
Takes the executions, aggregates all the data with sha256 as primary, then returns aggregated dataframe
|
Takes the executions, aggregates all the data with sha256 as primary, then returns aggregated dataframe
|
||||||
"""
|
"""
|
||||||
data = executions_json.json()
|
data = executions_json
|
||||||
df = pd.DataFrame(data["response"]["exechistories"])
|
df = pd.DataFrame(data["response"]["exechistories"])
|
||||||
|
|
||||||
if df.empty:
|
if df.empty:
|
||||||
|
|||||||
Reference in New Issue
Block a user