Initial development for the adding of users and hosts to kali
This commit is contained in:
commit
08d9b3c4d3
163
main.py
Normal file
163
main.py
Normal file
@ -0,0 +1,163 @@
|
||||
import requests
|
||||
import json
|
||||
from time import sleep
|
||||
import requests
|
||||
|
||||
|
||||
import requests
|
||||
base_url = "http://304door/guacamole"
|
||||
data_source = 'postgresql'
|
||||
url = f"{base_url}/api/tokens"
|
||||
|
||||
headers = {}
|
||||
payload = {
|
||||
'username': 'guacadmin',
|
||||
'password': 'guacadmin'
|
||||
}
|
||||
|
||||
response = requests.request("POST", url, headers=headers, data=payload)
|
||||
|
||||
token = json.loads(response.text)['authToken']
|
||||
|
||||
## TSHOOT
|
||||
# print(response.status_code)
|
||||
# print(response.text)
|
||||
|
||||
|
||||
import requests
|
||||
import json
|
||||
|
||||
def create_user(data_source, token, username, password, attributes=None):
|
||||
# Set the URL for the API endpoint
|
||||
url = f'{base_url}/api/session/data/{data_source}/users'
|
||||
|
||||
# Set the headers for the request
|
||||
headers = {
|
||||
'Content-Type': 'application/json',
|
||||
}
|
||||
|
||||
# Set the query parameters for the request
|
||||
params = {
|
||||
'token': token
|
||||
}
|
||||
|
||||
# Set the default attributes if none are provided
|
||||
if attributes is None:
|
||||
attributes = {
|
||||
"disabled": "",
|
||||
"expired": "",
|
||||
"access-window-start": "",
|
||||
"access-window-end": "",
|
||||
"valid-from": "",
|
||||
"valid-until": "",
|
||||
"timezone": None,
|
||||
"guac-full-name": "",
|
||||
"guac-organization": "",
|
||||
"guac-organizational-role": ""
|
||||
}
|
||||
|
||||
# Set the request body
|
||||
body = {
|
||||
'username': username,
|
||||
'password': password,
|
||||
'attributes': attributes
|
||||
}
|
||||
|
||||
# Send the POST request
|
||||
response = requests.post(url, headers=headers, params=params, data=json.dumps(body))
|
||||
|
||||
# Check for a successful response
|
||||
if response.status_code == 200:
|
||||
return response.json()
|
||||
else:
|
||||
response.raise_for_status() # Raise an exception for an unsuccessful response
|
||||
|
||||
def create_rdp_connection(data_source, token, connection_name, rdp_parameters, attributes=None):
|
||||
# Set the URL for the API endpoint
|
||||
url = f'{base_url}/api/session/data/{data_source}/connections'
|
||||
|
||||
# Set the headers for the request
|
||||
headers = {
|
||||
'Content-Type': 'application/json',
|
||||
}
|
||||
|
||||
# Set the query parameters for the request
|
||||
params = {
|
||||
'token': token
|
||||
}
|
||||
|
||||
# Set the default attributes if none are provided
|
||||
if attributes is None:
|
||||
attributes = {
|
||||
"max-connections": "",
|
||||
"max-connections-per-user": "",
|
||||
"weight": "",
|
||||
"failover-only": "",
|
||||
"guacd-port": "",
|
||||
"guacd-encryption": "",
|
||||
"guacd-hostname": ""
|
||||
}
|
||||
|
||||
# Set the request body
|
||||
body = {
|
||||
'parentIdentifier': 'ROOT',
|
||||
'name': connection_name,
|
||||
'protocol': 'rdp',
|
||||
'parameters': rdp_parameters,
|
||||
'attributes': attributes
|
||||
}
|
||||
|
||||
# Send the POST request
|
||||
response = requests.post(url, headers=headers, params=params, data=json.dumps(body))
|
||||
|
||||
# Check for a successful response
|
||||
if response.status_code == 200:
|
||||
return response.json()
|
||||
else:
|
||||
response.raise_for_status() # Raise an exception for an unsuccessful response
|
||||
|
||||
|
||||
# Assume the following dictionary & read from file later
|
||||
users_dict = {
|
||||
'user1': 'password1',
|
||||
'user2': 'password2',
|
||||
}
|
||||
|
||||
# Assume the create_user function is defined as before
|
||||
# ...
|
||||
|
||||
# Loop through each user and password in the dictionary
|
||||
for username, password in users_dict.items():
|
||||
# Call the create_user function
|
||||
# create_user_response = create_user(data_source, token, username, password)
|
||||
pass
|
||||
# Optionally, print the response or handle it in some way
|
||||
# print(f'Response for {username}:', create_user_response)
|
||||
|
||||
# IPs for RDP
|
||||
ip_list = [
|
||||
'devbox.roomatectf',
|
||||
'192.168.1.2',
|
||||
'192.168.1.3',
|
||||
'192.168.1.4'
|
||||
]
|
||||
|
||||
# Loop through each IP address in the list
|
||||
for ip in ip_list:
|
||||
# Set the connection name based on the IP (or however you prefer)
|
||||
connection_name = f'RDP Connection to {ip}'
|
||||
|
||||
# Set the RDP parameters, including the current IP
|
||||
rdp_parameters = {
|
||||
'hostname': ip,
|
||||
'port': '3389',
|
||||
# ... other RDP parameters as needed
|
||||
}
|
||||
|
||||
# Call the create_rdp_connection function
|
||||
create_rdp_connection_response = create_rdp_connection(data_source, token, connection_name, rdp_parameters)
|
||||
|
||||
# Optionally, print the response or handle it in some way
|
||||
print(f'Response for {ip}:', create_rdp_connection_response)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user