Skip to main content

Copy file to destination

Nov 18, 2022AustinLeath
Loading...

More Python Posts

bruteforce password cracker

Nov 18, 2022AustinLeath

0 likes • 4 views

import itertools
import string
import time
def guess_password(real):
chars = string.ascii_lowercase + string.ascii_uppercase + string.digits + string.punctuation
attempts = 0
for password_length in range(1, 9):
for guess in itertools.product(chars, repeat=password_length):
startTime = time.time()
attempts += 1
guess = ''.join(guess)
if guess == real:
return 'password is {}. found in {} guesses.'.format(guess, attempts)
loopTime = (time.time() - startTime);
print(guess, attempts, loopTime)
print("\nIt will take A REALLY LONG TIME to crack a long password. Try this out with a 3 or 4 letter password and see how this program works.\n")
val = input("Enter a password you want to crack that is 9 characters or below: ")
print(guess_password(val.lower()))

get LDAP user

Nov 18, 2022AustinLeath

0 likes • 0 views

def get_ldap_user(member_cn, user, passwrd):
'''
Get an LDAP user and return the SAMAccountName
'''
#---- Setting up the Connection
#account used for binding - Avoid putting these in version control
bindDN = str(user) + "@unt.ad.unt.edu"
bindPass = passwrd
#set some tuneables for the LDAP library.
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW)
#ldap.set_option(ldap.OPT_X_TLS_CACERTFILE, CACERTFILE)
conn = ldap.initialize('ldaps://unt.ad.unt.edu')
conn.protocol_version = 3
conn.set_option(ldap.OPT_REFERRALS, 0)
#authenticate the connection so that you can make additional queries
try:
result = conn.simple_bind_s(bindDN, bindPass)
except ldap.INVALID_CREDENTIALS:
result = "Invalid credentials for %s" % user
sys.exit()
#build query in the form of (uid=user)
ldap_query = '(|(displayName=' + member_cn + ')(cn='+ member_cn + ')(name=' + member_cn + '))'
ldap_info = conn.search_s('DC=unt,DC=ad,DC=unt,DC=edu', ldap.SCOPE_SUBTREE, filterstr=ldap_query)
sAMAccountName = str(ldap_info[0][1]['sAMAccountName']).replace("[b'", "").replace("']","")
return sAMAccountName

xxx

Apr 27, 2025hasnaoui1

0 likes • 1 view

import random
import time
def generate_maze(width, height):
"""Generate a random maze using depth-first search"""
maze = [[1 for _ in range(width)] for _ in range(height)]
def carve(x, y):
maze[y][x] = 0
directions = [(1, 0), (-1, 0), (0, 1), (0, -1)]
random.shuffle(directions)
for dx, dy in directions:
nx, ny = x + dx*2, y + dy*2
if 0 <= nx < width and 0 <= ny < height and maze[ny][nx] == 1:
maze[y + dy][x + dx] = 0
carve(nx, ny)
carve(1, 1)
maze[0][1] = 0 # Entrance
maze[height-1][width-2] = 0 # Exit
return maze
def print_maze(maze, path=None):
"""Print the maze with ASCII characters"""
if path is None:
path = []
for y in range(len(maze)):
for x in range(len(maze[0])):
if (x, y) in path:
print('◍', end=' ')
elif maze[y][x] == 0:
print(' ', end=' ')
else:
print('▓', end=' ')
print()
def solve_maze(maze, start, end):
"""Solve the maze using recursive backtracking"""
visited = set()
path = []
def dfs(x, y):
if (x, y) == end:
path.append((x, y))
return True
if (x, y) in visited or maze[y][x] == 1:
return False
visited.add((x, y))
path.append((x, y))
for dx, dy in [(1, 0), (-1, 0), (0, 1), (0, -1)]:
if dfs(x + dx, y + dy):
return True
path.pop()
return False
dfs(*start)
return path
# Generate and solve a maze
width, height = 21, 11 # Should be odd numbers
maze = generate_maze(width, height)
start = (1, 0)
end = (width-2, height-1)
print("Generated Maze:")
print_maze(maze)
print("\nSolving Maze...")
time.sleep(2)
path = solve_maze(maze, start, end)
print("\nSolved Maze:")
print_maze(maze, path)

guacamole LDAP creation

Nov 18, 2022AustinLeath

0 likes • 0 views

import os
import sys
import argparse
import json
import csv
import getpass
import string
import random
import re
from datetime import datetime
import ldap
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
from requests.auth import HTTPBasicAuth
import validators
def create_guac_connection(BASE_URL, auth_token, ldap_group, computer, guac_group_id):
'''
creates a guac connection
'''
json_header = {'Accept': 'application/json'}
query_parm_payload = { 'token': auth_token }
payload_data = {
"parentIdentifier":guac_group_id,
"name":computer,
"protocol":"vnc",
"parameters":{
"port":"5900",
"read-only":"",
"swap-red-blue":"",
"cursor":"",
"color-depth":"",
"clipboard-encoding":"",
"disable-copy":"",
"disable-paste":"",
"dest-port":"",
"recording-exclude-output":"",
"recording-exclude-mouse":"",
"recording-include-keys":"",
"create-recording-path":"",
"enable-sftp":"true",
"sftp-port":"",
"sftp-server-alive-interval":"",
"enable-audio":"",
"audio-servername":"",
"sftp-directory":"",
"sftp-root-directory":"",
"sftp-passphrase":"",
"sftp-private-key":"",
"sftp-username":"",
"sftp-password":"",
"sftp-host-key":"",
"sftp-hostname":"",
"recording-name":"",
"recording-path":"",
"dest-host":"",
"password":"asdasd",
"username":"asdasd",
"hostname":"nt72310.cvad.unt.edu"
},
"attributes":{
"max-connections":"",
"max-connections-per-user":"1",
"weight":"",
"failover-only":"",
"guacd-port":"",
"guacd-encryption":"",
"guacd-hostname":""
}
}
CREATE_CONNECTION_URL = BASE_URL + "/api/session/data/mysql/connections"
create_connection_request = requests.post(CREATE_CONNECTION_URL, headers=json_header, params=query_parm_payload, data=payload_data, verify=False)
create_connection_result = create_connection_request.status_code
if create_connection_result == "200":
print("Successfully created computer: " + computer)
else:
print(create_connection_request.json())
return create_connection_result

combine values

Nov 19, 2022CodeCatch

0 likes • 0 views

from collections import defaultdict
def combine_values(*dicts):
res = defaultdict(list)
for d in dicts:
for key in d:
res[key].append(d[key])
return dict(res)
d1 = {'a': 1, 'b': 'foo', 'c': 400}
d2 = {'a': 3, 'b': 200, 'd': 400}
combine_values(d1, d2) # {'a': [1, 3], 'b': ['foo', 200], 'c': [400], 'd': [400]}

collect dictionary

Nov 19, 2022CodeCatch

0 likes • 1 view

from collections import defaultdict
def collect_dictionary(obj):
inv_obj = defaultdict(list)
for key, value in obj.items():
inv_obj[value].append(key)
return dict(inv_obj)
ages = {
'Peter': 10,
'Isabel': 10,
'Anna': 9,
}
collect_dictionary(ages) # { 10: ['Peter', 'Isabel'], 9: ['Anna'] }