-
Notifications
You must be signed in to change notification settings - Fork 70
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #81 from cmu-sei/6_0_development
Release of v6.0
- Loading branch information
Showing
93 changed files
with
3,727 additions
and
1,603 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,41 @@ | ||
![GHOSTS Logo](https://github.com/cmu-sei/GHOSTS/blob/master/assets/ghosts-logo.jpg) | ||
|
||
Copyright 2017 Carnegie Mellon University. All Rights Reserved. See LICENSE.md file for terms. | ||
|
||
# GHOSTS NPC AUTOMATION | ||
|
||
GHOSTS is a framework for highly-complex, realistic non-player character (NPC) orchestration. It essentially realistically mimics the behavior of the different types of people you might encounter on any array of different typical office or enterprise networks. The system makes it possible for cybersecurity experts to test their skills and realistically train to defend real networks with real NPC players operating on those networks doing the things we might expect them to do: Create documents, access systems, browse the web, click, run commands, and so on. | ||
|
||
As a result of the system checks required in order for NPCs to be situationally aware, GHOSTS also does health reporting for all configured clients on a given instance. | ||
|
||
## Key Links | ||
|
||
[Installation and configuration information is maintained on our wiki](https://github.com/cmu-sei/GHOSTS/wiki) | ||
|
||
[Don't hesitate to submit issues and feature requests here](https://github.com/cmu-sei/GHOSTS/issues) | ||
|
||
## Platform Components | ||
|
||
### Ghosts.Client (Windows) | ||
.NET Console app (but built as forms app so that it is hidden) - requires .NET framework v4.6.1 or higher. Client works on both Windows 7 and Windows 10. | ||
|
||
### Ghosts.Client (Linux) | ||
dotnetcore app built to run silently. Client tested on centos, alpine and kali distributions. We typically use this for red teaming and "outside" traffic generation or administration simulation. | ||
|
||
### Ghosts.Api | ||
Dotnetcore API containing both the api calls for the client (and corresponding api calls you need for integration into other systems) in one. | ||
|
||
Uses postgres on the backend because there is not much that postgres can't do. | ||
|
||
## LEGAL | ||
|
||
[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution. | ||
![GHOSTS Logo](https://github.com/cmu-sei/GHOSTS/blob/master/assets/ghosts-logo.jpg) | ||
|
||
# GHOSTS NPC AUTOMATION | ||
|
||
GHOSTS is a framework for highly-complex, realistic non-player character (NPC) orchestration. It essentially realistically mimics the behavior of the different types of people you might encounter on typical office or enterprise networks. The system makes it possible for cybersecurity experts to test their skills and realistically train to defend real networks with real NPC players operating on those networks doing the things we might expect them to do: Create documents, access systems, browse the web, click, run commands, and so on. | ||
|
||
As a result of the system checks required for NPCs to be situationally aware, GHOSTS also does health reporting for all configured clients on a given instance. | ||
|
||
## Key Links | ||
|
||
* [Quick start: Installation from distribution binaries](https://github.com/cmu-sei/GHOSTS/wiki/Installation-from-distribution-binaries) | ||
|
||
* [Detailed installation and configuration information](https://github.com/cmu-sei/GHOSTS/wiki) | ||
|
||
* [Don't hesitate to submit issues and feature requests](https://github.com/cmu-sei/GHOSTS/issues) | ||
|
||
## Platform Components | ||
|
||
### Ghosts Clients (Windows & Linux) | ||
|
||
GHOSTS clients simulate users on a machine doing "user-like" things. They [can be configured](https://github.com/cmu-sei/GHOSTS/wiki/Configuring-the-Windows-Client) to perform actions including: | ||
|
||
* Browse the web | ||
* Create and edit office documents | ||
* Send and respond to email | ||
* Run terminal commands | ||
* Etc. | ||
|
||
### Ghosts API Server | ||
|
||
The API server is a RESTful web service that provides a way for clients to interact with the GHOSTS system and its clients. It can: | ||
|
||
* Manage clients, add/remove them from groups, etc. | ||
* Get/manage information from clients with regards to their activity, current activities, etc. | ||
* Orchestrate new activities for particular clients to perform | ||
|
||
--- | ||
|
||
[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution. | ||
|
||
Copyright 2017 Carnegie Mellon University. All Rights Reserved. See LICENSE.md file for terms. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Threading; | ||
using System.Threading.Tasks; | ||
using Ghosts.Api.Services; | ||
using Ghosts.Domain.Messages.MesssagesForServer; | ||
using Microsoft.AspNetCore.Mvc; | ||
|
||
namespace ghosts.api.Controllers | ||
{ | ||
public class SurveysController : Controller | ||
{ | ||
private readonly ISurveyService _surveyService; | ||
|
||
public SurveysController(ISurveyService surveyService) | ||
{ | ||
_surveyService = surveyService; | ||
} | ||
|
||
[ProducesResponseType(typeof(Survey), 200)] | ||
[HttpGet("surveys/{machineId}")] | ||
public async Task<IActionResult> Survey([FromRoute] Guid machineId, CancellationToken ct) | ||
{ | ||
return Ok(await _surveyService.GetLatestAsync(machineId, ct)); | ||
} | ||
|
||
[ProducesResponseType(typeof(IEnumerable<Survey>), 200)] | ||
[HttpGet("surveys/{machineId}/all")] | ||
public async Task<IActionResult> SurveyAll([FromRoute] Guid machineId, CancellationToken ct) | ||
{ | ||
return Ok(await _surveyService.GetAllAsync(machineId, ct)); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
using System; | ||
using System.Threading; | ||
using System.Threading.Tasks; | ||
using Ghosts.Api.Services; | ||
using Microsoft.AspNetCore.Mvc; | ||
|
||
namespace ghosts.api.Controllers | ||
{ | ||
[Produces("application/json")] | ||
[Route("api/[controller]")] | ||
[ResponseCache(Duration = 5)] | ||
public class TrackablesController : Controller | ||
{ | ||
private readonly ITrackableService _service; | ||
|
||
public TrackablesController(ITrackableService service) | ||
{ | ||
_service = service; | ||
} | ||
|
||
/// <summary> | ||
/// Gets all trackables in the system | ||
/// </summary> | ||
/// <param name="ct">Cancellation Token</param> | ||
/// <returns>List of Trackables</returns> | ||
[HttpGet] | ||
public async Task<IActionResult> GetTrackables(CancellationToken ct) | ||
{ | ||
var list = await _service.GetAsync(ct); | ||
if (list == null) return NotFound(); | ||
return Ok(list); | ||
} | ||
|
||
[HttpGet("{id}")] | ||
public async Task<IActionResult> GetTrackableHistory([FromRoute] Guid id, CancellationToken ct) | ||
{ | ||
var list = await _service.GetActivityByTrackableId(id, ct); | ||
if (list == null) return NotFound(); | ||
return Ok(list); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.