• ▌ ▄ ·. ▐ ▄ ▪ .▄▄ · ▄▄· ▪ ▄▄▄ . ▐ ▄ ▄▄▄▄▄
▪ ·██ ▐███▪•█▌▐███ ▐█ ▀. ▐█ ▌▪██ ▀▄.▀·•█▌▐█•██
▄█▀▄ ▐█ ▌▐▌▐█·▐█▐▐▌▐█·▄▀▀▀█▄██ ▄▄▐█·▐▀▀▪▄▐█▐▐▌ ▐█.▪
▐█▌.▐▌██ ██▌▐█▌██▐█▌▐█▌▐█▄▪▐█▐███▌▐█▌▐█▄▄▌██▐█▌ ▐█▌·
▀█▄▀▪▀▀ █▪▀▀▀▀▀ █▪▀▀▀ ▀▀▀▀ ·▀▀▀ ▀▀▀ ▀▀▀ ▀▀ █▪ ▀▀▀
Omniscient is a VERY minimalist Command and Control (C2) Command Line Interface (CLI). It provides a minimalistic interface for managing and controlling remote clients.
The server component acts as a TCP listener, waiting for connections from clients. It provides a range of commands to interact with and control the connected clients.
The client features:
- KeyLogger: Records the keys pressed on the client's machine.
- WindowLogger: Keeps track of the active window on the client's machine.
- Command Executor: Executes commands received from the server on the client's machine.
To ensure the application functions correctly, it's important to start the server before initiating the client. Here are the steps to do so:
-
Open a terminal.
-
Navigate to the
serverdirectory from the root of the project:cd server -
Once inside the
serverdirectory, start the server by running:dotnet run
The server should now be running and waiting for client connections.
-
Open a new terminal.
-
Navigate to the
clientdirectory from the root of the project:cd client -
Once inside the
clientdirectory, start the client by running:dotnet run
The client should now be running and attempting to connect to the server.
Here are the available commands in the Omniscient CLI:
help: Displays a list of available commands and their descriptions.list: Lists all connected clients.use <client_id>: Connects to a specific client using its ID.exec <command>: Executes a command on the connected client.close: Closes the current connection to the client.exit: Shuts down the server.get-log: Retrieves the log file from the connected client.sad: Accesses additional sub-commands (typesad helpfor more info).
help: Displays a list ofsadsub-commands and their descriptions.program: Lists all programs installed on the client's machine.vulne: Lists potentially vulnerable programs on the client's machine (requires running theprogramcommand beforehand).system: Retrieves system information from the client's machine.