• Stars
    star
    258
  • Rank 157,301 (Top 4 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

DART is a test documentation tool created by the Lockheed Martin Red Team to document and report on penetration tests, especially in isolated network environments.

DART: A Documentation and Reporting Tool

DART is a test documentation tool created by the Lockheed Martin Red Team to document and report on penetration tests, especially in isolated network environments.

The goals of this tool are:

  • Easy
    • Quick to set up without internet connectivity
    • No extensive configuration required
  • Enabling
    • Maximize testing time; minimize reporting time
    • Apply NISPOM-friendly portion markings
    • Capture test artifacts
  • Expendable
    • You won't lose sleep over leaving the tool behind to be destroyed
    • The report and artifacts files contain everything needed from the test

Full Disclosure Regarding Security

DART is intended to be executed in isolated, uncontested environments such as an isolan, private test network, or on a standalone machine. It is not intended for deployment on untrusted networks.

Output Examples

Multiple mission support

Multiple mission support

Test case & artifact tracking

Test case & artifact tracking

Generates a Microsoft Word report

Generates a Microsoft Word report

Getting Started

Supported Configurations

DART is tested to work in the following configurations:

  • Windows 7 system install
  • Docker (Experimental, read the warning in the Dockerfile)

Other configurations will likely be successful, however we do not currently test DART's operation in these configurations.

The installation instructions are comprised of two steps - a dependency collection step performed on an internet-connected machine and an installation step performed on the isolated network.

Installing on Windows 7 (system-wide)

On an internet-connected machine:

  • Online system must meet the following requirements for automated scripts to work:

    • Python 2.7 must be already installed (python --version to check)
    • pip version must be > 9.0 (pip --version to check; pip install -U pip to update)
  • Clone the repo & get the dependencies

git clone https://github.com/lmco/dart.git
cd dart
python install\online\prep.py

Note: Some command line options, like --proxy are supported for your convenience. Use python install\online\prep.py --help for more info.

  • Copy to offline machine

On the isolated machine:

  • Offline system must meet the following requirements for automated scripts to work:

    • You must have administrative credentials (required for python installation)
  • Install the dependencies

cd dart
install\offline\install.bat
  • First Run Setup
python install\offline\setup.py

Basic DART installation and database creation is now complete. In addition you've loaded in common classification colors, a basic classification list, and some common business areas you may have.

PRO TIP If you have additional classifications or business areas in your company, you can create a additional private entries for internal use by adding them (following the existing format) to the files in dart/missions/fixtures.

Starting DART

python run.py

Stopping DART

<CTRL+C>

Connecting to DART

  • Localhost: 127.0.0.1:8000
  • LAN: <server_ip_address>:8000

Performing a version upgrade

  • With the exception of the following files / locations, replace all DART files (copy and pasting the whole folder should be fine)
    • db.sqlite
    • SUPPORTING_DATA_PACKAGE/
    • supporting_data/
  • Run the following commands
cd dart
python manage.py migrate
  • Start DART normally

Frequently Asked Questions

Does everyone need their own account?

  • Since this is a tool intended to be used by a team during an active and organic penetration test with many moving parts, we typically just use a single-mission username and password that the execution team knows. RBAC is not implemented in this tool today.

What are some dangerous actions I should avoid?

  • Multiple people editing test case details / mission details will likely result in data loss. The last person to save a details page wins and only their edits will be persisted. To help avoid this problem, see the question below.

How can I know if someone else is editing a test case?

  • As soon as you begin working on a test case, change the status to "In Work" and Save. This will prompt others if they click on a test case you're currently working in so they know to check to see if the case has been saved. We usually use the POC field to know who to ask if they're still working the test case.

Are there any export compliance concerns?

  • Dependencies required by this tool may contain Export Controlled Information. Prior to building this tool outside the U.S. you should review the dependencies for any export compliance issues. Additionally, upon entering data into this tool the database file, supporting documentation folder, and outputs should be treated as sensitive, and handled as export controlled / classified information, as appropriate.

ยฉ 2017 Lockheed Martin Corporation

More Repositories

1

laikaboss

Laika BOSS: Object Scanning System
Python
725
star
2

streamflow

StreamFlowโ„ข is a stream processing tool designed to help build and monitor processing workflows.
Java
251
star
3

eurekastreams

A new communications experience for the enterprise
Java
169
star
4

vortex-ids

Vortex is a near real time IDS and network surveillance engine for TCP stream data.
C
97
star
5

hoppr-cop

Hoppr Cop is a cli and python library that generates high quality vulnerability information from a cyclone-dx Software Bill of Materials (SBOM) by aggregating data from multiple vulnerability databases. This project is a mirror from gitlab
Python
19
star
6

tlrb_aib_phy

TLRB AIB PHY RTL
SystemVerilog
7
star
7

python-mongor

Distributed database expansion to MongoDB designed to optimize scale-out, write intensive document storage
Python
7
star
8

ChaordicLedger

The ChaordicLedger is the implementation of a design for a combination of Distributed Ledger Technology (DLT) and a Distributed File System (DFS) to create a secure, enterprise-grade platform for storing interlinked project artifacts.
Shell
6
star
9

axi4_aib_bridge

AXI4/AIB Bridge RTL
SystemVerilog
5
star
10

rabid.mongoose

A REST interface for python-mongor
Python
5
star
11

lm-mit-momentum22

LM provided files for MIT Momentum 22 (https://ome.mit.edu/programs/momentum).
Python
3
star
12

parselab

parseLab is a tool designed to generate protocol parsers and fuzz messages, along with a framework to implement custom protocol parser generators for various parsing backends
Python
2
star
13

StreamlinedML

2
star
14

mbee-plugin-sandbox

JavaScript
1
star
15

eurekastreams-mvn-repo

1
star