|
1 |
| -# dart |
| 1 | +# LM DART: Documentation and Reporting Tool |
| 2 | + |
| 3 | +DART is a test documentation tool created by the Lockheed Martin Red Team to |
| 4 | +document and report on penetration tests in isolated network environments. |
| 5 | + |
| 6 | +The goals of this tool are: |
| 7 | + |
| 8 | +- __Easy__ |
| 9 | + - Quick to set up without internet connectivity |
| 10 | + - No extensive configuration required |
| 11 | +- __Enabling__ |
| 12 | + - Maximize testing time; minimize reporting time |
| 13 | + - Apply NISPOM-friendly portion markings |
| 14 | + - Capture test artifacts |
| 15 | +- __Expendable__ |
| 16 | + - You won't lose sleep over leaving the tool behind to be destroyed |
| 17 | + - The report and artifacts files contain everything needed from the test |
| 18 | + |
| 19 | +## Full Disclosure Regarding Security |
| 20 | + |
| 21 | +DART is intended to be executed in isolated, uncontested environments such as an |
| 22 | +isolan, private test network, or on a standalone machine. It is _not_ |
| 23 | +intended for deployment on untrusted networks. |
| 24 | + |
| 25 | +## Getting Started |
| 26 | + |
| 27 | +### Supported Configurations |
| 28 | + |
| 29 | +DART is tested to work in the following configurations: |
| 30 | + |
| 31 | +- Windows 7 system install |
| 32 | +- (coming soon) Docker |
| 33 | + |
| 34 | +Other configurations will likely be successful, however we do not |
| 35 | +currently test DART's operation in these configurations. |
| 36 | + |
| 37 | +The installation instructions are comprised of two steps - a dependency collection |
| 38 | +step performed on an internet-connected machine and an installation step performed |
| 39 | +on the isolated network. |
| 40 | + |
| 41 | +### Installing on Windows 7 (system-wide) |
| 42 | + |
| 43 | +_On an internet-connected machine:_ |
| 44 | + |
| 45 | +- Online system must meet the following requirements for automated scripts to work: |
| 46 | + - Python 2.7 must be already installed (`python --version` to check) |
| 47 | + - **pip version must be > 9.0** (`pip --version` to check; `pip install -U pip` to update) |
| 48 | + |
| 49 | +- Clone the repo & get the dependencies |
| 50 | + |
| 51 | +``` |
| 52 | +git clone https://github.com/lmco/dart.git |
| 53 | +cd dart |
| 54 | +python install\online\prep.py |
| 55 | +``` |
| 56 | + |
| 57 | +> **Note:** Some command line options, like `--proxy` are supported for your convenience. Use `python install\online\prep.py --help` for more info. |
| 58 | +
|
| 59 | +- Copy to offline machine |
| 60 | + |
| 61 | +_On the isolated machine:_ |
| 62 | + |
| 63 | +- Offline system must meet the following requirements for automated scripts to work: |
| 64 | + - You must have administrative credentials (required for python installation) |
| 65 | + |
| 66 | +- Install the dependencies |
| 67 | + |
| 68 | +``` |
| 69 | +cd dart |
| 70 | +install\offline\install.bat |
| 71 | +``` |
| 72 | + |
| 73 | +- First Run Setup |
| 74 | + |
| 75 | +``` |
| 76 | +python install\offline\setup.py |
| 77 | +``` |
| 78 | + |
| 79 | +Basic DART installation and database creation is now complete. In addition you've |
| 80 | +loaded in common classification colors, a basic classification list, and some common |
| 81 | +business areas you may have. |
| 82 | + |
| 83 | +> **PRO TIP** If you have additional classifications or business areas in your |
| 84 | +> company, you can create a additional private entries for internal use |
| 85 | +> by adding them (following the existing format) to the files in dart/missions/fixtures. |
| 86 | +
|
| 87 | +### Starting DART |
| 88 | + |
| 89 | +``` |
| 90 | +python run.py |
| 91 | +``` |
| 92 | + |
| 93 | +### Stopping DART |
| 94 | + |
| 95 | +``` |
| 96 | +<CTRL+C> |
| 97 | +``` |
| 98 | + |
| 99 | +## Connecting to DART |
| 100 | + |
| 101 | +- Localhost: `127.0.0.1:8000` |
| 102 | +- LAN: `<server_ip_address>:8000` |
| 103 | + |
| 104 | +## Performing a version upgrade |
| 105 | + |
| 106 | +- With the exception of the following files / locations, replace all DART files (copy and pasting the whole folder should be fine) |
| 107 | + - db.sqlite |
| 108 | + - SUPPORTING\_DATA\_PACKAGE/ |
| 109 | + - supporting_data/ |
| 110 | +- Run the following commands |
| 111 | + |
| 112 | +``` |
| 113 | +cd dart |
| 114 | +python manage.py migrate |
| 115 | +``` |
| 116 | + |
| 117 | +- Start DART normally |
| 118 | + |
| 119 | +## Frequently Asked Questions |
| 120 | + |
| 121 | +### Does everyone need their own account? |
| 122 | + |
| 123 | +- Since this is a tool intended to be used by a team during an active and organic penetration test with many moving |
| 124 | +parts, we typically just use a single-mission username and password that the execution team knows. RBAC is _not_ implemented |
| 125 | +in this tool today. |
| 126 | + |
| 127 | +### What are some dangerous actions I should avoid? |
| 128 | + |
| 129 | +- Multiple people editing test case details / mission details will likely result in |
| 130 | + data loss. The last person to save a details page wins and __only__ their edits will |
| 131 | + be persisted. To help avoid this problem, see the question below. |
| 132 | + |
| 133 | +#### How can I know if someone else is editing a test case? |
| 134 | + |
| 135 | +- As soon as you begin working on a test case, change the status to "In Work" and Save. |
| 136 | + This will prompt others if they click on a test case you're currently working in |
| 137 | + so they know to check to see if the case has been saved. We usually use the POC field |
| 138 | + to know who to ask if they're still working the test case. |
| 139 | + |
| 140 | +### Are there any export compliance concerns? |
| 141 | + |
| 142 | +- Dependencies required by this tool may contain Export Controlled Information. Prior to |
| 143 | + building this tool outside the U.S. you should review the dependencies for any export |
| 144 | + compliance issues. Additionally, upon entering data into this tool the database file, |
| 145 | + supporting documentation folder, and outputs should be treated as sensitive, and |
| 146 | + handled as export controlled / classified information, as appropriate. |
| 147 | + |
| 148 | +© 2017 Lockheed Martin Corporation |
0 commit comments