MCPcopy Index your code
hub / github.com/ashirt-ops/ashirt-server

github.com/ashirt-ops/ashirt-server @2023.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2023.3 ↗ · + Follow
2,563 symbols 9,181 edges 487 files 503 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ASHIRT

Adversary Simulators High-Fidelity Intelligence and Reporting Toolkit. This repo contains only the server side and frontend code for ASHIRT. You can find the ASHIRT client here and aterm here.

Table of Contents

Background

Documenting and reporting is a key part of our jobs and generally the part we all look forward to the least. Compared to the rest of the work we do it's not the most fun and by the time we get around to it, it's not always clear exactly what happened or we don't have the evidence to prove it. Teams generally solve this with ad hoc solutions for note taking, recording and sharing screenshots, and collecting other evidence but these solutions rarely scale, are not always easily shared, and typically require manual steps to manage. Having to dig through a pile of evidence after an operation to find the one screenshot you need, if you even have it, can be cumbersome especially as evidence starts to span multiple operators and computers. ASHIRT attempts to solve this by serving as a non-intrusive, automatic when possible, way to capture, index, and provide search over a centralized synchronization point of high fidelity data from all your evidence sources during an operation. You can learn more in our 2020 presentation linked below.

2020 presentation

Install

If you just want to try ashirt out locally, check out the quickstart docs. If you're looking for a production-ready deployment reference, check out ashirt-deployments.

Detailed instructions for building and installation are available for the frontend and backend.

Configuration

All configuration options for the backend are described here. These cover the various components and configuration options necessary for deployment and outlines how the components interact.

Contribute

Please refer to the contributing.md file for information about how to get involved. We welcome issues, questions, and pull requests.

Maintainers

  • John Kennedy: john.kennedy@yahooinc.com
  • Joe Rozner: joe.rozner@yahooinc.com

License

This project is licensed under the terms of the MIT open source license. Please refer to LICENSE for the full terms.

Extension points exported contracts — how you extend this code

DeletableSessionStore (Interface)
DeletableSessionStore is an extension of sessions.Store that also supports a Delete method [9 implementers]
backend/session/wrappedsessionstore/local_session_store.go
Policy (Interface)
Policy is a simple interface into interacting with Permission structs. Check verifies, given a Permission, whether the [5 …
backend/policy/policy.go
Store (Interface)
Store provides a generic interface into interacting with the underlying storage service Upload stores the provided file [4 …
backend/contentstore/store.go
AuthScheme (Interface)
AuthScheme provides a small interface into interacting with the AShirt backend authentication. The interface consists of [4 …
backend/authschemes/auth_scheme.go
EmailServicer (Interface)
EmailServicer is a simple interface for others to send emails. Once called, the expectation is that the email will event [3 …
backend/emailservices/interface.go
ConnectionProxy (Interface)
ConnectionProxy provides an interface into the database, using either an underlying connection, or a transaction. This i [2 …
backend/database/connection_proxy.go
ServiceWorker (Interface)
(no doc) [2 implementers]
backend/enhancementservices/types.go
Media (Interface)
(no doc)
frontend/src/global_types.ts

Core symbols most depended-on inside this repo

WrapError
called by 382
backend/errors.go
Select
called by 240
backend/database/connection_proxy.go
AsString
called by 223
backend/server/dissectors/coercable.go
Do
called by 206
backend/integration/helpers.go
Required
called by 198
backend/server/dissectors/coercable.go
FromBody
called by 149
backend/server/dissectors/dissected_request.go
Error
called by 144
backend/database/transaction.go
DatabaseErr
called by 107
backend/errors.go

Shape

Function 1,616
Method 580
Struct 271
Class 63
Interface 13
TypeAlias 10
FuncType 6
Route 3
Enum 1

Languages

Go59%
TypeScript35%
Python6%

Modules by API surface

frontend/src/services/data_sources/data_source.ts97 symbols
backend/database/seeding/test_helpers.go56 symbols
backend/server/dissectors/dissected_request_test.go39 symbols
backend/server/dissectors/converters_test.go38 symbols
backend/integration/helpers.go37 symbols
backend/dtos/dtos.go35 symbols
backend/database/seeding/helpers.go33 symbols
backend/authschemes/auth_bridge.go33 symbols
backend/errors.go30 symbols
backend/policy/permissions.go28 symbols
backend/services/tag.go27 symbols
backend/services/finding.go26 symbols

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add ashirt-server \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact