RedEye is an open-source analytic tool developed by CISA and DOE’s Pacific Northwest National Laboratory to assist Red Teams with visualizing and reporting command and control activities. This tool allows an operator to assess and display complex data, evaluate mitigation strategies, and enable effective decision making in response to a Red Team assessment. The tool parses logs, such as those from Cobalt Strike, and presents the data in an easily digestible format. The users can then tag and add comments to activities displayed within the tool. The operators can use the RedEye’s presentation mode to present findings and workflow to stakeholders.
RedEye can assist an operator to efficiently:
Red Team | Blue Team |
---|---|
This GitHub repository is no longer under active development. We’ll review community issues and pull requests for bug fixes, but won’t consider any new feature additions.
./RedEye --redTeam --password <your_password>
./RedEye # Or simplify double-click the "RedEye" executable
MacOS Issue - When running RedEye for the first time, you may get a “not verified” error. You must go to “System Preferences” > “Security & Privacy” > “General” and click “Open Anyway.” More info on the Apple support page.
RedEye has two modes that cover two stages of the Red Teaming process. Red Team mode allows importing C2 data, editing imported data, and making comments and presentations. After curating and annotating campaign data, Red Teams can export their campaign as a standalone .redeye
file and hand it off to a Blue Team for reporting and remediation. Blue Team mode runs RedEye in a simplified read-only mode for viewing curated data exported by a Red Team.
Note: Both Red and Blue Team modes can be started from the same RedEye application binary.
The downloaded binary comes in two parts:
RedEye
application binaryparsers
folder containing parser binaries (e.g. cobalt-strike-parser
Cobalt Strike log parser binary)There are three options to run RedEye in Red Team mode:
--redTeam
and password options:
./RedEye --redTeam --password <your_password>
docker-compose.yml
.docker-compose -f docker-compose.yml up -d redeye-core
The Blue Team mode is a simplified, read-only UI for displaying data that has been curated, annotated, and exported by a Red Team. This mode runs by default to make startup more simple for the Blue Team.
The Blue Team version can be run by double-clicking the ‘RedEye’ application binary. RedEye runs at http://127.0.0.1:4000 (by default) and will automatically open your default browser.
If a campaigns
folder is located in the same directory as the RedEye
application, RedEye will attempt to import any .redeye
campaign files within. Campaign files can be exported in the Red Team mode.
To prepare a version for the Blue Team, follow these two steps:
RedEye
application binary to an empty folder.campaigns
folder in the same directory and place the .redeye
campaign files you want to send inside.Folder/
RedEye
campaigns/
Campaign-01.redeye
Campaign-02.redeye
.redeye
files can also be uploaded in Blue Team mode via the ”+ Add Campaign” dialog.
There are example datasets in this repo available for download. These are located in the ./applications/redeye-e2e/src/fixtures folder.
You may want to use a tool like download-directory.github.io to download just one folder of a github repo
Type ./Redeye -h
to view the options
-d, --developmentMode [boolean] put the database and server in development mode
-r, --redTeam [boolean] run the server in red team mode
--port [number] the port the server should be exposed at
-p, --password [string] the password for user authentication
--parsers [string...] A list of parsers to use or a flag to use all parsers in the parsers folder
-t, --childProcesses [number] max # of child processes the parser can use
-h, --help display help for command
you can also configure the server parameters in a config.json
file that sits next to the RedEye
binary
{
"password": "937038570",
"redTeam": true,
"parsers": ["cobalt-strike-parser", "brute-ratel-parser"]
}
npm install -g yarn
yarn install
// Installs all packagesyarn release:all
to build a binary for Linux, macOS, and Windowsyarn release:(mac|windows|linux)
.Install Node.js >= v16 Install yarn globally via npm
npm install -g yarn
Install package dependencies
yarn install
Runs the project in development mode
yarn start
It is recommended to run the server and client in two separate terminals
yarn start:client
…in another terminal
yarn start:server
to build a binary for Linux, macOS, and Windows
yarn release:all
to build for a specific platform, replace all
with the platform name
yarn release:(mac|windows|linux)