Skip to content

Commit bf90dbe

Browse files
author
Dan McGowan
committed
Initial code base commit.
1 parent 96c1827 commit bf90dbe

File tree

98 files changed

+15831
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+15831
-1
lines changed

.gitignore

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Copyright 2017 Lockheed Martin Corporation
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
#
15+
16+
# Python optimizations
17+
__pycache__/
18+
*.py[cod]
19+
*$py.class
20+
21+
# Log files
22+
*.log
23+
*.log.*
24+
25+
# Persistent data storage
26+
db.sqlite3
27+
supporting_data/
28+
SUPPORTING_DATA_PACKAGE/
29+
downloads/

2016_Template.docx

20.7 KB
Binary file not shown.

CONTRIBUTING.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
All contributions must be licensed under the Apache 2.0 License terms in order to be accepted.
2+
3+
Please include the standard Apache 2.0 License header at the top of any new file.
4+
5+
A copyright notice to attribute your work to you or your organization may also be included if desired.

NOTICE

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Copyright 2015 Lockheed Martin Corporation
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.

README.md

+148-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,148 @@
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+
&copy; 2017 Lockheed Martin Corporation

base/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)