| @@ -3,5 +3,5 @@ locals { | |||||||
|   splunk_url       = "https://${aws_instance.logger.public_ip}:8000" |   splunk_url       = "https://${aws_instance.logger.public_ip}:8000" | ||||||
|   ata_url          = "https://${aws_instance.wef.public_ip}" |   ata_url          = "https://${aws_instance.wef.public_ip}" | ||||||
|   guacamole_url    = "http://${aws_instance.logger.public_ip}:8080/guacamole" |   guacamole_url    = "http://${aws_instance.logger.public_ip}:8080/guacamole" | ||||||
|   velociraptor_url = "http://${aws_instance.logger.public_ip}:9999" |   velociraptor_url = "https://${aws_instance.logger.public_ip}:9999" | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,7 +1,5 @@ | |||||||
| # Building DetectionLab on Azure | # Building DetectionLab on Azure | ||||||
|  |  | ||||||
| NOTE: This is an early release and it's possible that certain features may not work perfectly for everyone yet |  | ||||||
|  |  | ||||||
| ## Prereqs (~30-60 minutes) | ## Prereqs (~30-60 minutes) | ||||||
| 0. Have an active [Azure account](https://azure.microsoft.com/en-us/free/). If you don't have one yet, they give you $200 worth of credit to use within the first 30 days! | 0. Have an active [Azure account](https://azure.microsoft.com/en-us/free/). If you don't have one yet, they give you $200 worth of credit to use within the first 30 days! | ||||||
| 1. [Install Terraform](https://www.terraform.io/downloads.html) and move it to a directory included in your system's PATH. | 1. [Install Terraform](https://www.terraform.io/downloads.html) and move it to a directory included in your system's PATH. | ||||||
|   | |||||||
| @@ -34,7 +34,8 @@ NOTE: This lab has not been hardened in any way and runs with default vagrant cr | |||||||
| * osquery comes installed on each host and is pre-configured to connect to a [Fleet](https://kolide.co/fleet) server via TLS. Fleet is preconfigured with the configuration from [Palantir's osquery Configuration](https://github.com/palantir/osquery-configuration) | * osquery comes installed on each host and is pre-configured to connect to a [Fleet](https://kolide.co/fleet) server via TLS. Fleet is preconfigured with the configuration from [Palantir's osquery Configuration](https://github.com/palantir/osquery-configuration) | ||||||
| * Sysmon is installed and configured using [Olaf Hartong's open-sourced Sysmon configuration](https://github.com/olafhartong/sysmon-modular) | * Sysmon is installed and configured using [Olaf Hartong's open-sourced Sysmon configuration](https://github.com/olafhartong/sysmon-modular) | ||||||
| * All autostart items are logged to Windows Event Logs via [AutorunsToWinEventLog](https://github.com/palantir/windows-event-forwarding/tree/master/AutorunsToWinEventLog) | * All autostart items are logged to Windows Event Logs via [AutorunsToWinEventLog](https://github.com/palantir/windows-event-forwarding/tree/master/AutorunsToWinEventLog) | ||||||
| * SMBv1 Auditing is enabled | * Zeek and Suricata are pre-configured to monitor and alert on network traffic | ||||||
|  | * Apache Guacamole is installed to easily access all hosts from your local browser | ||||||
|  |  | ||||||
| ## Requirements for VMware or Virtualbox | ## Requirements for VMware or Virtualbox | ||||||
| * 55GB+ of free disk space | * 55GB+ of free disk space | ||||||
|   | |||||||
| @@ -519,7 +519,7 @@ postinstall_tasks() { | |||||||
|   echo export PATH="$PATH:/opt/splunk/bin:/opt/zeek/bin" >>~/.bashrc |   echo export PATH="$PATH:/opt/splunk/bin:/opt/zeek/bin" >>~/.bashrc | ||||||
|   echo "export SPLUNK_HOME=/opt/splunk" >>~/.bashrc |   echo "export SPLUNK_HOME=/opt/splunk" >>~/.bashrc | ||||||
|   # Ping DetectionLab server for usage statistics |   # Ping DetectionLab server for usage statistics | ||||||
|   curl -s -A "DetectionLab-logger" "https://detectionlab.network/logger" |   curl -s -A "DetectionLab-logger" "https:/ping.detectionlab.network/logger" | ||||||
| } | } | ||||||
|  |  | ||||||
| main() { | main() { | ||||||
|   | |||||||
| @@ -59,6 +59,8 @@ disabled = 0 | |||||||
| start_from = oldest | start_from = oldest | ||||||
| current_only = 0 | current_only = 0 | ||||||
| checkpointInterval = 5 | checkpointInterval = 5 | ||||||
|  | blacklist = Message="(?:Process Name:).+(?:C:\\Program Files\\osquery\\osqueryd\\osqueryd.exe)" | ||||||
|  | blacklist1 = Message="(?:Process Name:).+(?:C:\\Program Files\\SplunkUniversalForwarder\\bin\\)" | ||||||
|  |  | ||||||
| [WinEventLog://WEC-Code-Integrity] | [WinEventLog://WEC-Code-Integrity] | ||||||
| sourcetype = WinEventLog:Security | sourcetype = WinEventLog:Security | ||||||
| @@ -87,6 +89,16 @@ start_from = oldest | |||||||
| current_only = 0 | current_only = 0 | ||||||
| checkpointInterval = 5 | checkpointInterval = 5 | ||||||
|  |  | ||||||
|  | [WinEventLog://WEC2-Object-Manipulation] | ||||||
|  | sourcetype = WinEventLog:Security | ||||||
|  | source = WinEventLog:Object-Handle | ||||||
|  | index=wineventlog | ||||||
|  | disabled = 0 | ||||||
|  | start_from = oldest | ||||||
|  | current_only = 0 | ||||||
|  | checkpointInterval = 5 | ||||||
|  | blacklist = Message="(?:Process Name:).+(?:osqueryd.exe)" | ||||||
|  |  | ||||||
| [WinEventLog://WEC2-Task-Scheduler] | [WinEventLog://WEC2-Task-Scheduler] | ||||||
| sourcetype = WinEventLog:Task-Scheduler | sourcetype = WinEventLog:Task-Scheduler | ||||||
| source = WinEventLog:Task-Scheduler | source = WinEventLog:Task-Scheduler | ||||||
| @@ -140,7 +152,6 @@ disabled = 0 | |||||||
| start_from = oldest | start_from = oldest | ||||||
| current_only = 0 | current_only = 0 | ||||||
| checkpointInterval = 5 | checkpointInterval = 5 | ||||||
| blacklist1 = EventCode="4798" Message=".+Process Name:.+\\osqueryd\\osqueryd.exe" |  | ||||||
|  |  | ||||||
| [WinEventLog://WEC3-Windows-Diagnostics] | [WinEventLog://WEC3-Windows-Diagnostics] | ||||||
| sourcetype = WinEventLog:System | sourcetype = WinEventLog:System | ||||||
| @@ -412,15 +423,6 @@ start_from = oldest | |||||||
| current_only = 0 | current_only = 0 | ||||||
| checkpointInterval = 5 | checkpointInterval = 5 | ||||||
|  |  | ||||||
| [WinEventLog://WEC2-Object-Manipulation] |  | ||||||
| sourcetype = WinEventLog:Security |  | ||||||
| source = WinEventLog:Object-Handle |  | ||||||
| index=wineventlog |  | ||||||
| disabled = 0 |  | ||||||
| start_from = oldest |  | ||||||
| current_only = 0 |  | ||||||
| checkpointInterval = 5 |  | ||||||
|  |  | ||||||
| [monitor://c:\pslogs] | [monitor://c:\pslogs] | ||||||
| index = powershell | index = powershell | ||||||
| sourcetype = powershell_transcript | sourcetype = powershell_transcript | ||||||
|   | |||||||
| @@ -1,5 +1,8 @@ | |||||||
| [source::WinEventLog:*] | [source::WinEventLog:*] | ||||||
| TRANSFORMS-host = wef_computername_as_host | TRANSFORMS-host = wef_computername_as_host | ||||||
|  | TRANSFORMS-removedescription1 = removeEventDesc1 | ||||||
|  | TRANSFORMS-removedescription2 = removeEventDesc2 | ||||||
|  | TRANSFORMS-null = autoruns_wineventlog_null | ||||||
|  |  | ||||||
| [powershell_transcript] | [powershell_transcript] | ||||||
| TRANSFORMS-powershell_rename_host = powershell_rename_host | TRANSFORMS-powershell_rename_host = powershell_rename_host | ||||||
| @@ -23,5 +26,3 @@ TRUNCATE = 0 | |||||||
| [osquery:status] | [osquery:status] | ||||||
| TRANSFORMS-null = osquery_status_filter | TRANSFORMS-null = osquery_status_filter | ||||||
|  |  | ||||||
| [WinEventLog] |  | ||||||
| TRANSFORMS-null = autoruns_wineventlog_null |  | ||||||
|   | |||||||
| @@ -20,6 +20,18 @@ DEST_KEY = queue | |||||||
| FORMAT = nullQueue | FORMAT = nullQueue | ||||||
|  |  | ||||||
| [autoruns_wineventlog_null] | [autoruns_wineventlog_null] | ||||||
| REGEX = "Script\sName\s=\sC\:\\Program Files\\AutorunsToWinEventLog\\AutorunsToWinEventLog.ps1" | REGEX = "C:\\Program Files\\AutorunsToWinEventLog\\AutorunsToWinEventLog.ps1" | ||||||
| DEST_KEY = queue | DEST_KEY = queue | ||||||
| FORMAT = nullQueue | FORMAT = nullQueue | ||||||
|  |  | ||||||
|  | [removeEventDesc1] | ||||||
|  | LOOKAHEAD = 20000 | ||||||
|  | REGEX = (?msi)(.*)This event is generated | ||||||
|  | DEST_KEY = _raw | ||||||
|  | FORMAT = $1 | ||||||
|  |  | ||||||
|  | [removeEventDesc2] | ||||||
|  | LOOKAHEAD = 20000 | ||||||
|  | REGEX = (?msi)(.*)The subject fields indicate | ||||||
|  | DEST_KEY = _raw | ||||||
|  | FORMAT = $1 | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Checking if Windows evaluation is exp | |||||||
| . c:\vagrant\scripts\fix-windows-expiration.ps1 | . c:\vagrant\scripts\fix-windows-expiration.ps1 | ||||||
|  |  | ||||||
| # Ping DetectionLab server for usage statistics | # Ping DetectionLab server for usage statistics | ||||||
| curl -userAgent "DetectionLab-$box" "https://detectionlab.network/$box" -UseBasicParsing | out-null | curl -userAgent "DetectionLab-$box" "https://ping.detectionlab.network/$box" -UseBasicParsing | out-null | ||||||
|  |  | ||||||
| Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Disabling IPv6 on all network adatpers..." | Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Disabling IPv6 on all network adatpers..." | ||||||
| Get-NetAdapterBinding -ComponentID ms_tcpip6 | ForEach-Object {Disable-NetAdapterBinding -Name $_.Name -ComponentID ms_tcpip6} | Get-NetAdapterBinding -ComponentID ms_tcpip6 | ForEach-Object {Disable-NetAdapterBinding -Name $_.Name -ComponentID ms_tcpip6} | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								img/Overview.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								img/Overview.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 708 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 608 KiB | 
		Reference in New Issue
	
	Block a user
	 sukster
					sukster