aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAda Isopods <me@bathynomus.xyz>2025-05-15 04:49:41 -0600
committerAda Isopods <me@bathynomus.xyz>2026-10-21 23:04:23 -0600
commit880d4d6c90611661269b445d79dcf892535b1efa (patch)
tree1ba5ba51998e936f90d5b3563d149c5afee7f68d
parent46b9b548dd5cfbbfadd9efde0a0f6245cc51ea9c (diff)
The World Of Colour Update
-rw-r--r--cowrieder.py33
1 files changed, 26 insertions, 7 deletions
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))