Skip to content

Latest commit

 

History

History
52 lines (41 loc) · 1.76 KB

README.md

File metadata and controls

52 lines (41 loc) · 1.76 KB

osquery command execution extension

Disclaimer: This extension has been maid with educational purposes in mind. Do NOT run this in a production environment as it allows remote command execution on your device.

Prerequisites

  • Go toolchain (1.12 or higher)
  • osquery

Installation and setup

Clone this repository and pull the dependencies before building the extension.

git clone https://github.com/hippwn/osquery-exec
cd osquery-exec
go get
go build -o exec.ext exec.go

Note: On windows, the file extension is used to define how the file is understood by the system. You may want to change the filename to exec.exe.

Usage

First, retrieve the socket path from osquery:

osqueryi --nodisable_extensions
osquery> select value from osquery_flags where name = "extensions_socket";
+-------------------+
| value             |
+-------------------+
| \\.\pipe\shell.em |
+-------------------+

Then, start the extension in another shell. You should see a log message popping in osquery's window.

.\exec.exe "\\.\pipe\shell.em"

You can now query the exec table:

osquery> .schema exec
CREATE TABLE exec(`cmd` TEXT, `stdout` TEXT, `stderr` TEXT, `code` TEXT);
osquery> SELECT * FROM exec WHERE cmd = "whoami";
+--------+--------------------+--------+------+
| cmd    | stdout             | stderr | code |
+--------+--------------------+--------+------+
| whoami | ad\johndoe         |        | 0    |
+--------+--------------------+--------+------+

For more information about osquery and its extensions, see the official documentation on how to use extensions and how to build them.