diff --git a/Operation Shadow Watcher/DATETIME.txt b/Operation Shadow Watcher/DATETIME.txt new file mode 100644 index 0000000..97d9273 --- /dev/null +++ b/Operation Shadow Watcher/DATETIME.txt @@ -0,0 +1 @@ +=== DATETIME === diff --git a/Operation Shadow Watcher/Operation Shadow Watcher.txt b/Operation Shadow Watcher/Operation Shadow Watcher.txt new file mode 100644 index 0000000..efdec84 --- /dev/null +++ b/Operation Shadow Watcher/Operation Shadow Watcher.txt @@ -0,0 +1,29 @@ +***Operation Shadow Watcher*** +**Orientation** +This mission's goal is to establish effective active camouflage and defense positions on the target computer IOT prevent reconnaissance from the enemy in daily school environments and establish a safe environment for discreet activities. + +**Situation** +*Enemy*: Major reconnaissance units are located in classrooms and the Technician Office. The enemy uses Senso software to conduct surveillance of friendly computers, and is capable of conducting physical checks. The enemy prioritizes units that are gaming or viewing unregulated content. +*Friendlies*: Individuals among the student body that possess the Surveillance Detection Program (SDP) are capable of providing reconnaissance and assistance. However, in unknown environments, the unit must conduct this operation individually. +*Environment*: Indoor environment, flat grounds. Stairs and classrooms exist. The frontline is located in the desktops and file systems of computers. + +**Mission** +The individual or squad must complete the disguise and relocation of all un-authorized software on the target computer, and establish continued monitoring capability IOT lower the effectiveness of enemy reconnaissance. + +**Execution** +*Commander's Intent*: Maintain the target computer's "normal" look through the camouflage in file systems and real-time SDPs. +*Procedure* +- *Deployment*: From a secure source (USB, this file), deploy the related files to the predetermined position on the target computer. +- *Configuration*: Ensure that Python 3.13 is installed. Launch the SDP ("SDP.py") through IDLE and ensure that it is running the background. This program will monitor the enemy's status and provide warning. +- *Camouflage*: Move target files and the icon file into the predetermined disguise folder (DF), and hide this folder deep behind directories. On the desktop, create a disguise shortcut (DS) pointing to the DF. Set the icon and name of the DS to notepad. +- *Emergency Procedures*: If the SDP gives out a warning (through notifications and the webcam LED), immediately execute the cleanup procedure: minimize or close all unnecessary windows and open a pre-determined school document. + +**Administration and Logistics** +*Equipment*: A target school computer; a USB drive containing the SDP program (SDP.py), icon resources, and this order. +*Support*: No additional logistical support. All operations must be done by the unit. When the mission is completed, the USB drive must be removed securely. + + +**Command and Signal** +The commander of the unit has full autonomy in action. They can interpret, halt, or adjust the movement plans without further indication. The translation codes for the SDP are attached. + +The password for the SDP is Papa-Seven-Mike-Juliett. diff --git a/Operation Shadow Watcher/SDP Translation Codes.txt b/Operation Shadow Watcher/SDP Translation Codes.txt new file mode 100644 index 0000000..74d7548 --- /dev/null +++ b/Operation Shadow Watcher/SDP Translation Codes.txt @@ -0,0 +1,51 @@ +Original Term -> Replacement Term +----------------------- ------------------------- +Created -> Deployed +Modified -> In Action +Deleted -> Extracted +Logging -> SAS +Log -> BlackOps +Text -> Transmission +Client -> FieldAgent +MOD -> Command +Peer2Peer -> CovertChannel +Senso -> Surveillance +dll -> Directive +Extensions -> Attachments +Serilog -> SignalLog +AssemblyName -> OperationName +Crypto -> Cipher +BouncyCastle -> Stronghold +Microsoft -> Megacorp +Modules -> Units +Feedback -> Debriefing +Message -> CipherText +Common -> StandardIssue +Management -> Command +Formatters -> Encoders +Json -> Jupiter +json -> jupiter +NetworkFilter -> Barricade +deps -> Assets +FilterBridge -> Bridgehead +Pipelines -> Comms +System -> Apparatus +Engine -> Propulsion +Notifications -> Alerts +AzureAD -> AlphaDelta +Broker -> Handler +Modcache -> Safehouse +RemoteScreen -> Oversight +DirectX -> DirectiveX +Vortice -> Vortex +libwebp -> IntelWeb +libsharpyuv -> IntelSharp +store-journal -> MissionLog +store -> Reserve +Command_Policies -> EngagementRules +Sharpgen -> Nitrogen +Runtime -> MissionClock +Abstractions -> FaultyDebriefing +protobuf-net -> Bumper +SIPSorceryMedia -> Radio +Direct3D11 -> Directive-3-Delta-Eleven \ No newline at end of file diff --git a/Operation Shadow Watcher/interceptor-aps.py b/Operation Shadow Watcher/interceptor-aps.py new file mode 100644 index 0000000..f9a74dc --- /dev/null +++ b/Operation Shadow Watcher/interceptor-aps.py @@ -0,0 +1,164 @@ +import threading +import time +from watchfiles import watch +import pygetwindow as gw +import pyautogui +import subprocess +from termcolor import colored + +# ---------- CONFIGURATION ---------- # +monitor_path = r"C:\Program Files\Renato Software\Senso.Cloud.Client" # Path to be monitored + +# ---------- DON'T TOUCH ---------- # +program = "" # 0 is use path, -1 is use name, 1-4 is programs +p_name = "" +p_path = "" # used only if program = 0. + +# ---------- BRING TO FRONT ---------- # +def bring_to_front(window_title): + time.sleep(0.1) + try: + print("Bringing to front...", end = " ") + windows = gw.getWindowsWithTitle(window_title) + if windows: + window = windows[0] + window.restore() + window.activate() + print("Window has been brought to front.") + else: + print(colored("ERROR: Window not found", 'red')) + except Exception as e: + print(colored(f"Error: {e}", 'red')) + +# ---------- FILE WATCHER ---------- # +def file_watch(): + print("=" * 80) + print("Monitoring changes in " + monitor_path + ".") + print("-" * 80) + try: + for changes in watch(monitor_path): + for change_type, path in changes: + print(f"Change type: {change_type}, Path: {path}") + return True + except Exception as e: + print(colored(f"File Watch Error: {e}", 'red')) + +# ---------- MINIMIZE ---------- # +def minimize(): + print("=" * 80) + print("Minimizing all windows...", end = " ") + pyautogui.hotkey('win', 'd') + print("Completed.") + +# ---------- LAUNCH COVER PROGRAM ---------- # +def launch_cover(programs): + time.sleep(0.1) + print("=" * 80) + print("Launching cover application...", end = " ") + if programs == "1": # Chrome + try: + subprocess.run( + ["C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"] + ) + print("Launched Chrome.") + except Exception as e: + print(colored(f"Chrome Launch Error: {e}", 'red')) + + elif programs == "2": # Edge + try: + subprocess.run( + ["C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"] + ) + print("Launched Edge.") + except Exception as e: + print(colored(f"Edge Launch Error: {e}", 'red')) + + elif programs == "3": # Adobe Illustrator + try: + subprocess.run( + ["C:\\Program Files\\Adobe\\Adobe Illustrator 2025\\Support Files\\Contents\\Windows\\Illustrator.exe"] + ) + print("Launched Illustrator.") + except Exception as e: + print(colored(f"Illustrator Launch Error: {e}", 'red')) + + elif programs == "4": # Onenote + try: + subprocess.run( + ["C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\ONENOTE.EXE"] + ) + print("Launched OneNote.") + except Exception as e: + print(colored(f"OneNote Launch Error: {e}", 'red')) + + else: + print(colored("Error: Invalid Cover App Specified.", 'red')) + +# ---------- LAUNCH COVER PROGRAM PATH ---------- # +def launch_cover_path(path): + print("Launching custom path...", end = " ") + time.sleep(0.1) + subprocess.run( + [path] + ) + print("Launched custom path.") + +# ---------- Main Process ---------- # +def main(): + global p_name, p_path + + print("=" * 80) + print("Interceptor APS (Active Protection System)") + print("-" * 80) + print("Choose a cover app to open:") + print("[1] Chrome (empty)") + print("[2] Edge (empty)") + print("[3] Adobe Illustrator (predetermined)") + print("[4] Onenote (Identical)") + print("[5] Enter a path (Not recommended)") + print("[6] It has a name (NOTE)", end = "\n\n") + print("- Empty: window opens empty") + print("- Predetermined: window opens with whatever was on it.") + print(" * Requires having it open in the first place") + print("- Identical: a NEW window opens with what you had earlier/what you have now.") + print("- Not recommended: Only use this if you know what you're doing.") + print(" * If you get the path wrong, the program will fail you at the most critical moment.") + print("- NOTE: Probably the best way by far.") + print(" * Type the name of the window (partial names work, like note for OneNote) and it will pop up.") + program = input("Enter your option > ") + + if program == "5": # If path is selected (I doubt that) + p_path = input("Enter full path > ") + program = "0" # Indicate that the path option is selected + elif program == "6": # If name is chosen + program = "-1" # Indicate that the name option is selected + p_name = input("Name > ") + else: + pass # All other options, if selected, are already stored in program by this time + + # Begin the watching process. + try: + watchresults = file_watch() + except KeyboardInterrupt: + print("Canceled by user.") + sys.exit(0) + + # If it advances to below then there must have been a file change. (VERIFY) + if program == "0": # If we chose path + minimize() + launch_cover_path(p_path) # VERIFY IF DOUBLE ESCAPES ARE NEEDED WHEN PATH IS FIRST ENTERED BY USER + elif program == "-1": # If we chose name + minimize() + bring_to_front(p_name) + else: + minimize() + launch_cover(program) # Other options must be string numbers 1-4 + + +# ---------- Running the code ---------- # +if __name__ == "__main__": + main() + + + + diff --git a/Operation Shadow Watcher/notepad.ico b/Operation Shadow Watcher/notepad.ico new file mode 100644 index 0000000..039b5ac Binary files /dev/null and b/Operation Shadow Watcher/notepad.ico differ