You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copyright 2018 University of Maryland - College Park | Advanced Cybersecurity experience for Students
1
+
Copyright 2018 University of Maryland - College Park | Advanced Cybersecurity Experience for Students
2
2
3
3
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
4
5
5
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
6
7
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Provide students the ability to collect SSH related data (login attempts, keystrokes) without the need for them to build their own SSH server.
6
-
7
-
See this [wiki page](https://github.com/UMD-ACES/MITM/wiki/Data-Collection) about the information collected by the MITM SSH server.
5
+
Provide students with the ability to collect SSH related data (login attempts, keystrokes) without the need to build their own SSH server.
8
6
9
7
## Expectations
10
8
@@ -16,65 +14,50 @@ This program is not meant to facilitate the following:
16
14
* Monitoring
17
15
* Data Analysis
18
16
19
-
However, students may modify this program as they wish including faciliting the above while following the [rules](https://github.com/UMD-ACES/MITM/blob/master/README.md#rules) described at a later section.
17
+
However, students may modify this program as they wish to add or change desired functionality.
18
+
19
+
# Data Collection
20
+
This program will collect 3 main types of data:
21
+
1. Authentication attempts - including client IP, username, and password
22
+
2. Successful logins - client IP
23
+
3. Session stream - raw session stream between the client & SSH server
24
+
4. Session keystrokes - all the individual keystrokes and the parsed lines
20
25
21
-
## Resources
26
+
## Start the MITM server
22
27
23
-
Please see the rest of this README page and check out the [wiki](https://github.com/UMD-ACES/MITM/wiki) pages.
28
+
Run `node mitm.js -n <container name> -i <container internal IP> -p <MITM listening port>` to start the MITM server.
24
29
30
+
Run with the `--debug` flag for verbose debug output. This is helpful when first setting up the server.
25
31
26
32
## Configuration
27
33
28
-
| Setting | Type | Explanation |
29
-
| :--------:| :----: | :------------|
30
-
| local | Boolean | Runs the MITM SSH Server without requiring a container. Warning messages will display and there will be limitations (e.g. pty mode is disabled). |
31
-
| debug | Boolean | MITM Debug Output. Good option to have enabled when building your honeypot ecosystem. Provides detailed logs of the actions that the MITM takes in real time. |
32
-
| logToInstructor.enabled | Boolean | Logging the MITM operations into a DB (must be **enabled** unless otherwise stated by an instructor or TA) |
33
-
| logging.streamOutput | String | Folder where the attacker streams are placed (keystrokes, screen display) |
34
-
| logging.loginAttempts | String | Folder where all login attempts are being logged |
35
-
| logging.logins | String | Folder where all logins are being logged |
36
-
| server.maxAttemptsPerConnection | Integer | Number of login attempts before the server force closes on the SSH client |
37
-
| server.listenIP | String | The IP address to listen on |
38
-
| server.identifier | String | The SSH server identifier string sent to the SSH client |
39
-
| server.banner | String | A message sent to clients upon connection to the MITM |
40
-
| autoAccess.enabled | Boolean | If true, then enable automatic access to the honeypot after a certain number of login attempts (normal distribution using mean and standard deviation values). Can be manually set in the command line. |
41
-
| autoAccess.cacheSize | Integer | Number of attacker IPs to hold when autoAccess is turned "on" . This value is required to not overwhelm the host memory. |
42
-
| autoAccess.barrier.normalDist.enabled | Boolean | Enable normal distribution to calculate the login attempt threshold per attacker |
43
-
| autoAccess.barrier.normalDist.mean | Integer | Mean number of login attempts before automatic access |
44
-
| autoAccess.barrier.normalDist.standardDeviation | Integer | Standard Deviation. Automatic access follows a normal distribution. |
| autoAccess.barrier.fixed.attempts | Number | Number of login attempts |
34
+
Run with the `--help` option to see full list of configurable options and defaults.
47
35
36
+
## Automatic Access
48
37
49
-
## Start the MITM server
38
+
This feature allows an attacker to successfully authenticate after a certain number of login attempts.
50
39
51
-
View this wiki page to learn about starting the MITM SSH Server (https://github.com/UMD-ACES/MITM/wiki/Spawn-a-MITM-SSH-Server-instance#launch-a-mitm-ssh-server)
40
+
Auto-access will only be available for 1 automatic access per MITM process, meaning that once MITM is triggered once, it will be disabled.
52
41
53
-
## Running MITM in the background
42
+
Furthermore, enabling auto-access will essentially disable authentication checks against the SSH server itself until auto-access strategy triggers.
54
43
55
-
Please check this [wiki page](https://github.com/UMD-ACES/MITM/wiki/Running-in-the-Background) if you would like to run the MITM in the background
44
+
Enable auto-access by toggling the `--auto-access` option, then you must configure one of the two strategies available:
45
+
1. normal distribution
46
+
2. fixed attempt
56
47
57
-
## Automatic Access
48
+
For normal distribution strategy, the server will allow auto-access after `--auto-access-normal-distribution-mean` number of attempts with the consideration of `--auto-access-normal-distribution-std-dev` to randomize the number of attempts required.
58
49
59
-
Allows an attacker to successfully authenticate after a certain number of login attempts.
50
+
For fixed attempt strategy, the server will simply allow auto-access after --auto-access-fixed` number of attempts.
60
51
61
-
Before using automatic access, please read the following [wiki page](https://github.com/UMD-ACES/MITM/wiki/Automatic-Access)
52
+
## Running MITM in the background
62
53
63
-
## Rules
64
-
1. Do not add/edit/delete any code that are in the instructor blocks.
65
-
2. You must enable the logToInstructor functionality.
66
-
3. If you are having issues with a particular MITM instance, please make sure to communicate the session id
54
+
Please check this [wiki page](https://github.com/UMD-ACES/MITM/wiki/Running-in-the-Background) if you would like to run the MITM in the background
67
55
68
56
## Stay up to date
69
-
Run `git pull origin master` inside the /root/MITM directory.
0 commit comments