Commit Graph

  • b6c81755a0 Implemented dual list selection widgets for choosing modules. Jakob Friedl 2025-09-24 16:30:29 +02:00
  • d4bdf56224 Added more websocket commands and started agent generation modal window. Jakob Friedl 2025-09-23 15:51:57 +02:00
  • d3b37aa4a1 Started work on websocket communication: Parsing/Serialization of WebSocket packets. Jakob Friedl 2025-09-22 21:53:13 +02:00
  • 42cc58b30b Replaced prologue implementation with mummy for listener management, since it seems more suitable for future use (websockets, etc.). Jakob Friedl 2025-09-19 18:31:45 +02:00
  • 6b41efe1ed Added simple eventlog. Jakob Friedl 2025-09-19 11:43:14 +02:00
  • 3173122878 Implemented dynamic sleepmask configuration command. Jakob Friedl 2025-09-19 10:11:20 +02:00
  • 971bb6c8df Added listener table view and modal for starting listeners. Jakob Friedl 2025-09-18 17:50:58 +02:00
  • 669a436946 Added console filter. Jakob Friedl 2025-09-18 12:35:26 +02:00
  • 5d09efd823 Reworked module system. Modules can now be individually set to be included in the agent. For example, it is possible to compile an agent only capable of executing BOFs and nothing else. Jakob Friedl 2025-09-17 15:55:13 +02:00
  • 5f1a9979be Added console history handling with arrow keys. Jakob Friedl 2025-09-16 22:21:11 +02:00
  • ee397c4fb5 Implemented console input field. Jakob Friedl 2025-09-16 20:17:48 +02:00
  • ce417db941 Implemented console items window using ImGuiTextSelect after it was implemented into imguin. Jakob Friedl 2025-09-14 22:55:44 +02:00
  • c6bbef8520 Implemented compression of the network packet bodies. Jakob Friedl 2025-09-13 15:18:46 +02:00
  • b7b9114258 Fixed issue that caused assembly execution to fail when used more than once in a session. Jakob Friedl 2025-09-13 14:14:21 +02:00
  • 94f2f8121c Implemented 'dotnet' command for execute-assembly functionality. Patched AMSI using HWBP Jakob Friedl 2025-09-13 11:47:19 +02:00
  • 9b94a06ce9 Implemented basic .NET assembly execution using winim/clr. Jakob Friedl 2025-09-12 15:06:28 +02:00
  • f0010694eb Added notes and some minor changes to console view. Auto-scroll to bottom is not supported with the current approach, revisit this later. Jakob Friedl 2025-09-12 10:15:13 +02:00
  • e15f4842ec Added comments. Jakob Friedl 2025-09-11 19:11:11 +02:00
  • 1a6977d52d Implemented vertically and horizontally scrollable console-output window for agent interaction windows. Jakob Friedl 2025-09-11 18:18:13 +02:00
  • c2b388fbf2 Implemented default docking layout. Console windows are automatically docked to the bottom panel of the application. Jakob Friedl 2025-09-11 12:03:02 +02:00
  • 8968c797ac Implemented right-click context menu on session table to create console windows for interacting with the agent. Jakob Friedl 2025-09-10 18:25:15 +02:00
  • 5f131ae916 Implemented multi-select functionality and basic context-menu for session table. Jakob Friedl 2025-09-09 22:55:43 +02:00
  • 2320b705d3 Experimented with ImGUI tables for session view. Jakob Friedl 2025-09-07 17:18:50 +02:00
  • 87059ced4c Created template files for core views. Jakob Friedl 2025-09-06 14:12:51 +02:00
  • d834e4f713 Created initial UI component template. Jakob Friedl 2025-09-05 19:39:24 +02:00
  • e7ab8b5fac Created base template for ImGUI application. Jakob Friedl 2025-09-05 10:49:27 +02:00
  • cb02d79b6e Fixed help flag output. Jakob Friedl 2025-09-04 15:29:54 +02:00
  • e64e31a7bc Integrated sleep obfuscation settings into agent generation. Jakob Friedl 2025-09-04 13:44:50 +02:00
  • e297bb2d76 Split sleep obfuscation into separate functions to increase readability and changed to manual API resolution. Jakob Friedl 2025-09-04 12:02:50 +02:00
  • 5ebe5d3598 Implemented the Foliage sleep obfuscation technique. Jakob Friedl 2025-09-03 23:21:45 +02:00
  • d0545ffd16 Implemented 'screenshot' command. Jakob Friedl 2025-09-03 19:38:22 +02:00
  • 653dfac4b4 Improved sleep obfuscation cleanup. Jakob Friedl 2025-09-03 08:46:38 +02:00
  • b19f8e1236 Implemented Zilean sleep obfuscation technique as an alternative to Ekko. Jakob Friedl 2025-09-02 21:41:04 +02:00
  • f7d97908d1 Added initial client UI structure. Jakob Friedl 2025-09-02 12:48:46 +02:00
  • 4ae9add3af Implemented simple upload command. Jakob Friedl 2025-09-01 20:27:00 +02:00
  • ae083896b6 Implemented simple download command. Jakob Friedl 2025-09-01 19:45:39 +02:00
  • 8292a5b1ff Implemented handling of different argument types (int, wstring, short) for BOF files using specific prefixes. Jakob Friedl 2025-08-30 14:05:09 +02:00
  • 4ceb756cfd Added 'bof' module for executing object files and fixed handling of optional arguments. Jakob Friedl 2025-08-29 15:58:26 +02:00
  • 352b8fd8d1 Reworked beacon.nim with definitions from trustedSec's COFFLoader. Jakob Friedl 2025-08-29 13:40:00 +02:00
  • 957f96f1ca Implemented COFF loader. Jakob Friedl 2025-08-28 19:00:34 +02:00
  • e1ea085a0d Decided against implementing additional heap obfuscation for Ekko, due to no sensitive data being allocated in heap memory. Jakob Friedl 2025-08-28 12:47:37 +02:00
  • f81933e479 Extended ekko implementation with stack spoofing. Jakob Friedl 2025-08-27 20:11:22 +02:00
  • a18ad3c2cb Removed Ekko WinAPI implementation to clear up file. Jakob Friedl 2025-08-27 18:24:44 +02:00
  • d3e0d5e6de Implemented Ekki according to MalDev module with both Native API and WinAPI; fixing race condition for both implementations. Jakob Friedl 2025-08-27 11:37:07 +02:00
  • 00866b30cd Implemented basic sleep obfuscation via the Ekko technique using WinAPI. Improvement needed! Jakob Friedl 2025-08-27 00:27:50 +02:00
  • 8791faec3f Implemented compile-time string obfuscation via XOR for the agent. Jakob Friedl 2025-08-26 15:11:43 +02:00
  • dd7433588f Refactored random byte generation functions. Jakob Friedl 2025-08-25 20:08:23 +02:00
  • 84f889451c Update LICENSE Jakob Friedl 2025-08-22 11:05:49 +02:00
  • 2d58b76998 Update LICENSE Jakob Friedl 2025-08-22 11:04:11 +02:00
  • 4f0cde381b Update LICENSE Jakob Friedl 2025-08-22 10:55:54 +02:00
  • 5922a5b850 Created nimble package and installation instructions. Jakob Friedl 2025-08-22 10:48:00 +02:00
  • 0ccafaccdd Cleaned up utils.nim by removing unnecessary functions. Jakob Friedl 2025-08-21 17:08:46 +02:00
  • fbb08afe31 Implemented wrapper functions for logging and console output (info, error, success, ...) Jakob Friedl 2025-08-21 17:02:50 +02:00
  • c9df7aba64 Improved logging format. Jakob Friedl 2025-08-21 15:08:52 +02:00
  • f69adc53a2 Implemented initial version of logging system. Log formatting and content needs to be reworked. Jakob Friedl 2025-08-20 12:55:09 +02:00
  • 24208f3b4b Increased delay between listener restarts to deal with segvaults. Still no 100% fix Jakob Friedl 2025-08-19 21:37:29 +02:00
  • 4a38f76331 Moved some compiler flags to nim.cfg Jakob Friedl 2025-08-19 21:00:52 +02:00
  • 8fcb60f57c Implemented replacing agent configuration instead of overwriting the full file. Jakob Friedl 2025-08-19 20:58:47 +02:00
  • b023fca124 Implemented encryption for embedded profile. Jakob Friedl 2025-08-19 20:03:34 +02:00
  • 72fcb0d610 Refactor profile de/serialization, removing unnecessary overhead caused by TLV format. Jakob Friedl 2025-08-19 14:34:58 +02:00
  • 00a2eb40bf Added data/[logs/loot] directories to GitHub Jakob Friedl 2025-08-18 22:09:43 +02:00
  • 84e8730b1e Implemented profile embedding via patching a placeholder in the agent executable. Agent correctly deserializes and parses the profile and listener configuration. Jakob Friedl 2025-08-18 22:05:23 +02:00
  • 023a562be5 Implemented server output encoding for task retrieval. Jakob Friedl 2025-08-17 17:01:50 +02:00
  • 739faf781e Added more randomization. The profile now supports setting keys to an array of strings, from which a random one is chosen each time (useful for e.g. Host header, etc.) Jakob Friedl 2025-08-17 16:27:48 +02:00
  • 22c15dd82c Added randomization to profile strings by replacing '#' with random alphanumerical chars. Jakob Friedl 2025-08-15 16:18:15 +02:00
  • c7980d219d Added profile system to agent communication. Randomized URL endpoints/request methods and dynamic data transformation based on C2 profile. Profile is defined as compile-time string for now. Jakob Friedl 2025-08-15 15:42:57 +02:00
  • 5a73c0f2f4 Improved working with profiles by adding helper retrieval functions. Jakob Friedl 2025-08-14 19:33:32 +02:00
  • 714360ef24 Updated profile system, including dynamic parsing of hidden heartbeats and setting of response headers. Jakob Friedl 2025-08-14 15:53:58 +02:00
  • e403ac1c07 Refactored utility functions to make them more readable and removed separate register endpoint. Jakob Friedl 2025-08-14 12:25:06 +02:00
  • ee93445739 Refine profile structure. Jakob Friedl 2025-08-13 21:42:58 +02:00
  • 415cd7ebf8 Started implementing profile system. Jakob Friedl 2025-08-13 19:32:51 +02:00
  • b7622dd72f Updated C2 communication to hide heartbeat data in JWT token. Jakob Friedl 2025-08-13 13:38:39 +02:00
  • 0e205d34d3 Updated sequence number to uint32 Jakob Friedl 2025-08-06 14:28:54 +02:00
  • ea00e67e80 Updated ps command output. Jakob Friedl 2025-08-06 12:46:53 +02:00
  • dfcafa9c24 Implemented basic "ps" and "env" commands. Jakob Friedl 2025-08-01 13:16:12 +02:00
  • 0d54b3e64b Cleaned up parts of the serialization by removing redundant code. Jakob Friedl 2025-07-28 21:29:47 +02:00
  • 882579b3cb Implemented sequence tracking. Jakob Friedl 2025-07-26 18:20:54 +02:00
  • a6039172b2 Updated README.md Jakob Friedl 2025-07-25 16:51:18 +02:00
  • 6979c3aa8b Removed utility function. Jakob Friedl 2025-07-25 16:47:45 +02:00
  • 7bf135750c Rework module system. Now modules/commands are defined in a single file each, with both the function executed by teh agent and the definition for server-side argument parsing. Jakob Friedl 2025-07-25 16:41:29 +02:00
  • ad31b90687 Added .gitkeep to data/keys directory. Jakob Friedl 2025-07-24 22:37:30 +02:00
  • dcf6285a2a Updated key management to create a new private key file if no existing one is found. Jakob Friedl 2025-07-24 22:34:12 +02:00
  • 3e9178ec34 Reworked key exchange, now using direct C imports from monocypher instead of nimble modules/libraries. Jakob Friedl 2025-07-24 17:26:48 +02:00
  • b6c720ccca Implemented ECDH key exchange using ed25519 to share a symmetric AES key without transmitting it over the network. Jakob Friedl 2025-07-24 15:31:46 +02:00
  • cf4e4a7017 Updated database to store session key (still unencrypted) Jakob Friedl 2025-07-23 15:25:19 +02:00
  • cb16a9c571 Updated message flags. Jakob Friedl 2025-07-23 13:56:43 +02:00
  • 0f065f41a2 Implemented AES256-GCM encryption of all network packets. Requires some more refactoring to remove redundant code and make it cleaner. Jakob Friedl 2025-07-23 13:47:37 +02:00
  • 36719dd7f0 Changed variable names for clearer structure. Jakob Friedl 2025-07-22 21:31:18 +02:00
  • 725696ffa5 Implemented Heartbeat/Checkin request with agentId/listenerId in request body to simplify listener URLs Jakob Friedl 2025-07-22 21:00:39 +02:00
  • 1a3724a2fd Updated .gitignore with .gitkeep files to keep directory structure Jakob Friedl 2025-07-21 22:16:09 +02:00
  • 581af47395 Merge commit '9f15026fd1f35346300f65bb6ef04ca023b62ee2' Jakob Friedl 2025-07-21 22:13:37 +02:00
  • 9f15026fd1 Implemented agent registration to match new binary structure instead of json. Jakob Friedl 2025-07-21 22:07:25 +02:00
  • 99f55cc04f Implemented communication with custom binary structure instead of JSON requests Jakob Friedl 2025-07-19 16:49:27 +02:00
  • d22ad0bd0c Agent fetches serialized task data from prologue web server and successfully parses it. Jakob Friedl 2025-07-18 18:47:57 +02:00
  • 5825ec91a1 Started rewriting JSON task to custom binary structure. Parsed and serialized task object into seq[byte] Jakob Friedl 2025-07-18 14:24:07 +02:00
  • 310ad82cc5 Updated README Jakob Friedl 2025-07-16 14:48:21 +02:00
  • 99b017f57f Cleanup types.nim to only contain type definitions. Jakob Friedl 2025-07-16 14:45:45 +02:00
  • 292b947a4e Split task functionality into multiple files. Jakob Friedl 2025-07-16 12:32:01 +02:00
  • aae35ef59d Updated directory structure Jakob Friedl 2025-07-16 10:33:13 +02:00
  • 668a4984d1 Updated directory structure. Jakob Friedl 2025-07-15 23:26:54 +02:00