Giter VIP home page Giter VIP logo

kcarretto / paragon Goto Github PK

View Code? Open in Web Editor NEW
288.0 288.0 48.0 266.39 MB

Red Team engagement platform with the goal of unifying offensive tools behind a simple UI

License: GNU Affero General Public License v3.0

Dockerfile 1.13% Go 52.66% HTML 8.47% CSS 0.55% JavaScript 1.01% TypeScript 35.52% Makefile 0.12% Batchfile 0.16% Python 0.38%
api botnet command-and-control cross-platform dsl framework frontend golang graphql implants knowledge-graph malware malware-development offensive redteam scripting-language starlark threat-emulation toolkit

paragon's People

Contributors

cictrone avatar dependabot[bot] avatar kcarretto avatar koalatea avatar milkshak3s avatar nullmonk avatar scuzz3y avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

paragon's Issues

Feature: Mock Graph Provider

Add mock query results for the XGraphMockProvider component, and automatically replace XGraphProvider with XGraphMockProvider if being run in development mode (i.e. from npm).

[Roadmap] Paragon V1

P0

  • Worker

    • ssh/exec
    • ssh/sendFile
    • ssh/recvFile
    • PubSub
  • Pagination

P1

  • Notifications
  • RedLight
  • CDN

P2

  • News Feed
  • Script Editor

P3

  • Build Service
  • Flow / TypeScript
  • Scanner

Fix Performance Model

Implement buffer + sender + registry as a write through cache. Current polling model pins CPU, added temporary fix with time.Sleep to mitigate CPU issues.

Feature: Create Tag Modal

Add a modal form to create a new tag. Upon form submission, issue a graphql mutation to create the tag based on form parameters.

Feature: CDN

  • Upload / Download files via UI
  • Enable worker scripts to reference CDN files by name
  • Enable URL generation (with optional download limits & user-agent restriction)
  • Centralized store for files (i.e. work with more than one teamserver and/or worker)

Starlark HTTP Reporter

Implement an HTTPBeacon type that implements the agent.Reporter interface to submit an HTTP request to an endpoint, providing it with JSON marshaled result objects. The endpoint should return JSON that can be marshalled into starlark scripts implementing agent.Task.

Clarity: Cleanup PubSub code

  • Move topics to constant values in pkg/event
  • Leave concurrency to the caller
  • Move subscriber & publisher implementations to pkg/event
    • event.NewSubscriber() Subscriber // event implements based on build tags

Clarity: Rename cmd/pkg

The command to package assets for the dropper is poorly named, we should rename it sooner rather than later.

UI User Actions

  • Create Target (by Name & IP)
  • Update Target Fields
  • View Targets
  • View Target Details
  • Create Job
  • Queue Job
  • View Jobs
  • View Job Details
  • Tag input box

Feature: Create Target Modal

Add a modal form to create a new target. Upon form submission, issue a graphql mutation to create the target based on form parameters.

[CDN] XFileInput

Wrap standard element with prettier button. Upon file selection, render a label that is dismissable. Upon dismiss, clear the selected file. Remove dependency on semantic-ui-react-input-file

Feature: CDN Front-end

Create a front-end view of uploaded files, enable uploading new files, creating new links, and updating existing files.

Starlark Task Execution

Implement a Script type that implements the agent.Task interface that is capable of executing a starlark script and reporting the results. The starlark script may define an entrypoint method (i.e. main() ) which is expected to return information to populate the agent.Result struct. Additionally, the Script type will need to provide the starlark thread with a Print function that captures stderr/stdout and includes it on the returned Result object. It should also include some unique identifer of the script on the Result object.

Clarity: Ensure Stdlib Name Consistency

The GoDoc provides documentation for the functions in stdlib packages that we expose to the script environment. We need to ensure that the name of the function in go is the same as the exposed name, to enable more clear documentation.

Example of inconsistency is Detect() which is exposed as detectOS() to the scripting environment, therefore making documentation hard to find.

Feature: Queue Job Modal

Add a modal form to queue a new job. Upon form submission, issue a graphql mutation to queue the job based on form parameters.

[DevOps] Better Lint

Currently files are linted using golangci-lint. Although it has a wide array of available linters, we currently only enable the defaults. This may be insufficient going forward, as some of the expected defaults (such as comments on exported types&methods) are disabled. golangci-lint can be configured by adding a dotfile to the root of the repo.

Feature: CDN Links and Link Handler

Create a Link node in the graph that references a file
Create an HTTP handler which strips a prefix (i.e '/link/') and uses the linkname to resolve a Link, and serve the related file content.
Enable restriction based on Download Limit and User Agent

Clarity: Separate GraphQL Resolver files

Instead of having a single monolithic file to define GraphQL resolvers, we should split each type of resolver into it's own file. This likely involves writing a small GQLGen plugin.

Feature: Workerlib

Expose functions to a scripting environment that will be used in tasks sent to a worker.

Add some Functions to sys package

  • move
  • chattr
  • remove
  • copy
  • exec
  • read
  • lsattr
  • write
  • chmod
  • ssh
  • chown
  • list processes
  • list network connections
  • cURL
  • kill
  • list directory entries
  • regex replace string
  • spawn Process
  • timestomp

Bug: Missing renegade language definition

XScriptEditor was configured with custom renegade language definitions, however the file containing the configurations was not pushed (@Cictrone ๐Ÿ‘€ ). Our script editor syntax highlighting & autocomplete will be broken until this can be resolved.

Bug: Fix C2 error on Teamserver error

During agent checkin, if the C2 request issued to the teamserver errors, return an empty array of tasks to the agent instead of returning it the error.

Backend Graphql Support

Summary

Create a GraphQL server endpoint capable of processing graphql queries for the models defined by ent schemas and compliant with the relay spec.

Requirements

  • Ent Schemas -> Models -> GraphQLServer w/ Relay Compatibility
  • /graphql endpoint for queries
  • /graphiql for testing & debug

References

[Target] Single Target Edit View

Replicate the view described in #71 but as a form where fields may be edited. Upon form submission, a graphql mutation should be issued to reflect changes.

Clarity: Move graphql/models to graphql

Models are structs that hold request parameters, it would be significantly easier for client applications to only import the graphql package instead of needing to import both graphql and graphql/models

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.