From 880d4d6c90611661269b445d79dcf892535b1efa Mon Sep 17 00:00:00 2001 From: Ada Isopods Date: Thu, 15 May 2025 04:49:41 -0600 Subject: The World Of Colour Update --- cowrieder.py | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'cowrieder.py') diff --git a/cowrieder.py b/cowrieder.py index d1468d6..7194c20 100644 --- a/cowrieder.py +++ b/cowrieder.py @@ -6,7 +6,26 @@ import os def ccgen(seed=""): # Color code generator if(not os.isatty(1)): # Do not output color code at all if output is not a TTY that can accept them return "" - if(seed and seed != "reset" and seed != "RESET"): # If seed is provided, use it to generate a color. Return color reset code otherwise or if seed is the word "reset" + + match(seed): # Match color keywords to control codes + case "RED": + return "\x1b[31m" + case "GREEN": + return "\x1b[32m" + case "YELLOW": + return "\x1b[33m" + case "BLUE": + return "\x1b[34m" + case "PURPLE": + return "\x1b[35m" + case "CYAN": + return "\x1b[36m" + case "GREY": + return "\x1b[37m" + case "RESET": + return "\x1b[0m" + + if(seed): # If seed is provided, use it to generate a color random.seed(seed) return "\x1b[38;2;{r};{g};{b}m".format(r=random.randrange(50, 256), g=random.randrange(50, 256), b=random.randrange(50, 256)) return "\x1b[0m" @@ -89,10 +108,10 @@ else: # Default (low) verbosity: just the good stuff for session_id in sessions: ip = session_ips[session_id] - timestamp = session_timestamps[session_id][:22].replace("T", " ") + timestamp = session_timestamps[session_id][:22].replace("T", " ") # clean up the timestamp text all pretty like if(session_id not in session_successful_login): - print(timestamp + " > " + ppip(ip) + " > Empty ping lasting " + session_durations[session_id] + "s") + print(timestamp + " > " + ppip(ip) + " > " + ccgen("PURPLE") + "Empty ping" + ccgen() + " lasting " + session_durations[session_id] + "s") elif(not session_successful_login[session_id]): cred_combos = [] @@ -102,7 +121,7 @@ else: # Default (low) verbosity: just the good stuff if("password" in entry): pw = entry["password"] cred_combos.append((entry["username"], pw)) - print(timestamp + " > " + ppip(ip) + " > Failed login: " + str(cred_combos)) + print(timestamp + " > " + ppip(ip) + " > " + ccgen("RED") +"Failed login" + ccgen() + ": " + str(cred_combos)) elif(session_id in session_ran_command): collapse_cmdping = False @@ -122,10 +141,10 @@ else: # Default (low) verbosity: just the good stuff for entry in sessions[session_id]: if(entry["eventid"] == "cowrie.login.failed" or entry["eventid"] == "cowrie.login.success"): cred_combos.append((entry["username"], entry["password"])) - print(timestamp + " > " + ppip(ip) + " > Command ping: " + str(cred_combos) + " > " + str(pingcmds)) + print(timestamp + " > " + ppip(ip) + " > " + ccgen("BLUE") + "Command ping" + ccgen() + ": " + str(cred_combos) + " > " + str(pingcmds)) else: - print(timestamp + " > " + ppip(ip) + " > Session:") + print(timestamp + " > " + ppip(ip) + " > " + ccgen("CYAN") + "Session" + ccgen() + ":") for entry in sessions[session_id]: match(entry["eventid"]): case "cowrie.login.failed": @@ -151,4 +170,4 @@ else: # Default (low) verbosity: just the good stuff for entry in sessions[session_id]: if(entry["eventid"] == "cowrie.login.failed" or entry["eventid"] == "cowrie.login.success"): cred_combos.append((entry["username"], entry["password"])) - print(timestamp + " > " + ppip(ip) + " > Login ping: " + str(cred_combos)) + print(timestamp + " > " + ppip(ip) + " > " + ccgen("GREEN") + "Login ping" + ccgen() + ": " + str(cred_combos)) -- cgit v1.2.3