Commit Graph

211 Commits

Author SHA1 Message Date
Jakob Friedl
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. 2025-07-25 16:41:29 +02:00
Jakob Friedl
ad31b90687 Added .gitkeep to data/keys directory. 2025-07-24 22:37:30 +02:00
Jakob Friedl
dcf6285a2a Updated key management to create a new private key file if no existing one is found. 2025-07-24 22:34:12 +02:00
Jakob Friedl
3e9178ec34 Reworked key exchange, now using direct C imports from monocypher instead of nimble modules/libraries. 2025-07-24 17:26:48 +02:00
Jakob Friedl
b6c720ccca Implemented ECDH key exchange using ed25519 to share a symmetric AES key without transmitting it over the network. 2025-07-24 15:31:46 +02:00
Jakob Friedl
cf4e4a7017 Updated database to store session key (still unencrypted) 2025-07-23 15:25:19 +02:00
Jakob Friedl
cb16a9c571 Updated message flags. 2025-07-23 13:56:43 +02:00
Jakob Friedl
0f065f41a2 Implemented AES256-GCM encryption of all network packets. Requires some more refactoring to remove redundant code and make it cleaner. 2025-07-23 13:47:37 +02:00
Jakob Friedl
36719dd7f0 Changed variable names for clearer structure. 2025-07-22 21:31:18 +02:00
Jakob Friedl
725696ffa5 Implemented Heartbeat/Checkin request with agentId/listenerId in request body to simplify listener URLs 2025-07-22 21:00:39 +02:00
Jakob Friedl
1a3724a2fd Updated .gitignore with .gitkeep files to keep directory structure 2025-07-21 22:16:09 +02:00
Jakob Friedl
581af47395 Merge commit '9f15026fd1f35346300f65bb6ef04ca023b62ee2' 2025-07-21 22:13:37 +02:00
Jakob Friedl
9f15026fd1 Implemented agent registration to match new binary structure instead of json. 2025-07-21 22:07:25 +02:00
Jakob Friedl
99f55cc04f Implemented communication with custom binary structure instead of JSON requests 2025-07-19 16:49:27 +02:00
Jakob Friedl
d22ad0bd0c Agent fetches serialized task data from prologue web server and successfully parses it. 2025-07-18 18:47:57 +02:00
Jakob Friedl
5825ec91a1 Started rewriting JSON task to custom binary structure. Parsed and serialized task object into seq[byte] 2025-07-18 14:24:07 +02:00
Jakob Friedl
310ad82cc5 Updated README 2025-07-16 14:48:21 +02:00
Jakob Friedl
99b017f57f Cleanup types.nim to only contain type definitions. 2025-07-16 14:45:45 +02:00
Jakob Friedl
292b947a4e Split task functionality into multiple files. 2025-07-16 12:32:01 +02:00
Jakob Friedl
aae35ef59d Updated directory structure 2025-07-16 10:33:13 +02:00
Jakob Friedl
668a4984d1 Updated directory structure. 2025-07-15 23:26:54 +02:00
Jakob Friedl
453971c0db Cleaned up agent command parsing 2025-07-15 22:38:01 +02:00
Jakob Friedl
b8b276d887 Refactored agent command handling to remove redundant boiler-plate code. Commands are parsed dynamically based on a single definition. Command-specific actions might still need distinct implementations. 2025-07-14 22:14:27 +02:00
Jakob Friedl
2d2c94ed38 Implemented move and copy command. Needs to be reworked to work without `-f' and '-t' flags but with spaces. 2025-07-09 15:13:37 +02:00
Jakob Friedl
bb56ed42f2 Updated task structure to use a JSON string instead of seq[string], making it possible to use multiple differently typed arguments 2025-07-09 14:38:30 +02:00
Jakob Friedl
71ff092975 Refactor redundant code for better extensibility with new commands. 2025-07-08 23:10:19 +02:00
Jakob Friedl
1f73cf142d Updated config.nims to nim.cfg 2025-07-08 22:04:21 +02:00
Jakob Friedl
6b095fbd05 Deleted tui.nim 2025-07-08 22:02:25 +02:00
Jakob Friedl
8230061478 Added basic test with GUI library (owlkettle). Found that i need to run the app in a VM since it doesnt work on Windows 2025-07-08 22:01:19 +02:00
Jakob Friedl
4a5f3baaa4 Implemented 'rm' and 'rmdir' commands 2025-07-08 21:09:50 +02:00
Jakob Friedl
92da6f1288 Merge ls, pwd and cd into a single 'filesystem' file 2025-07-08 20:36:43 +02:00
Jakob Friedl
061f198461 Added more TODOs 2025-07-07 21:41:47 +02:00
Jakob Friedl
ba7c8b6841 Implemented 'cd' and 'ls' commands using Windows APIs. 2025-07-07 21:30:05 +02:00
Jakob Friedl
6a92a19b9e Implemented 'pwd' command to retrieve working directory. 2025-06-20 16:44:39 +02:00
Jakob Friedl
b25d09e282 Hide hardcoded IP address from agent binary by splitting it up into integer octets 2025-06-02 21:37:58 +02:00
Jakob Friedl
ac1bc22b93 Updated task result console output 2025-06-02 21:14:13 +02:00
Jakob Friedl
3849bcd7f1 Seperated Task and TaskResult types. 2025-05-29 15:26:50 +02:00
Jakob Friedl
118e9eadd2 Prevent database locking by not updating latest checkin in database and instead storing it only in memory 2025-05-29 14:19:55 +02:00
Jakob Friedl
d35b1d0a0d Update agent in database when sleep setting is changed to display latest checkin correctly. 2025-05-28 11:14:30 +02:00
Jakob Friedl
4397f728de Implemented sleep command to update sleep delay on agent 2025-05-28 10:39:30 +02:00
Jakob Friedl
c03592c7fd Implemented agent generation from teamserver 2025-05-24 16:15:41 +02:00
Jakob Friedl
ac0bb3c915 Agent utilizes configuration file (nim.cfg) and compile-time variables for listener information. 2025-05-24 13:56:26 +02:00
Jakob Friedl
5fe13fef94 Add command ideas/roadmap 2025-05-23 19:36:51 +02:00
Jakob Friedl
a8a32668d1 Fix formatting for multi-line command output and delete tasks after completion. 2025-05-23 16:02:16 +02:00
Jakob Friedl
5ab9cd302c Implemented displaying latest checkin in agents table, as well as word-wrap. 2025-05-23 13:55:00 +02:00
Jakob Friedl
6f9e20566d Prevented client from crashing when listener is not reachable 2025-05-23 10:02:17 +02:00
Jakob Friedl
1b147aacd6 Implemented basic shell command execution and result retrieval. Next Step: Remove completed tasks from queue 2025-05-22 20:03:22 +02:00
Jakob Friedl
71336a6fa7 Implemented Windows Version fingerprinting 2025-05-21 14:06:04 +02:00
Jakob Friedl
c55a9f9443 Added monarch agent 2025-05-19 21:56:34 +02:00
Jakob Friedl
0a98d11df2 Implemented switch to agent interaction mode. 2025-05-18 12:51:26 +02:00