Elastic DAC pipeline
import os
import requests
import subprocess
from datetime import datetime
# Get user input for the "name" and "operation"
name = input("Enter the name of the operation: ")
adversary_id = input("Enter the adversary ID: ")
# Define the API endpoint and headers
url = "http://127.0.0.1:8888/api/rest"
headers = {"KEY": "ADMIN123"}
data = {"index": "operations", "name": name, "adversary_id": adversary_id}
# Execute the HTTP request and capture the response
response = requests.put(url, headers=headers, json=data)
# Check if the HTTP request was successful
if response.status_code == 200:
print("HTTP request was successful.")
else:
print("HTTP request failed.")
# Create a unique timestamp for the script name
timestamp = datetime.now().strftime('%Y%m%d-%H%M%S')
script_path = os.path.join(os.environ['TEMP'], f'run_request_{timestamp}.bat')
# Create a batch script to run the HTTP request
with open(script_path, 'w') as f:
f.write(f"@echo off\n")
f.write(f"REM This script was executed immediately on {datetime.now()}\n")
f.write(f"curl -X PUT -H \"KEY:ADMIN123\" \\\n")
f.write(f"http://127.0.0.1:8888/api/rest \\\n")
f.write(f"-d \"{{\\\"index\\\":\\\"operations\\\",\\\"name\\\":\\\"{name}\\\",\\\"adversary_id\\\":\\\"{adversary_id}\\\"}}\"\n")
# Create a unique task name using the current timestamp
unique_task_name = f"RunCurlCommand-{timestamp}"
# Command to create a scheduled task using schtasks
task_command = f'Schtasks /Create /SC MONTHLY /TN "{unique_task_name}" /TR "{script_path}" /ST 00:00 /F'
# Run the task scheduler command
subprocess.run(task_command, shell=True)
# Final message indicating the task was created
print(f"Task Scheduler job '{unique_task_name}' has been created to run '{script_path}' every month at 00:00.")Last updated