SecurityRiskAdvisors / VECTR

VECTR is a tool that facilitates tracking of your red and blue team testing activities to measure detection and prevention capabilities across different attack scenarios
1.36k stars 161 forks source link

Install is not working due to bad tomcat image #95

Closed ag-michael closed 3 years ago

ag-michael commented 3 years ago

I installed vectr by following your instructions. Everything seemed to work ok, except I can't get to the webui.

I chased it down to an issue with a tomcat container:

/opt/vectr# docker logs --tail 50 --follow  project-purpleteam_tomcat_1  
RUNNING run-parts
run-parts: executing /opt/vectr/release/scripts/docker-entrypoint.d/1_configure
run-parts: executing /opt/vectr/release/scripts/docker-entrypoint.d/2_build_certs
/usr/local/tomcat/bin/catalina.sh: eval: line 422: syntax error near unexpected token `('
/usr/local/tomcat/bin/catalina.sh: eval: line 422: `exec "/usr/local/openjdk-11/bin/java" "-Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager  -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027  -Dcas.standalone.configurationSecurity.alg=PBEWithMD5AndTripleDES -Dcas.standalone.configurationSecurity.provider=SunJCE -Dcas.standalone.configurationSecurity.iterations=5000 -Dcas.standalone.configurationSecurity.psw=redacted-Dignore.endorsed.dirs="" -classpath "/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar" -Dcatalina.base="/usr/local/tomcat" -Dcatalina.home="/usr/local/tomcat" -Djava.io.tmpdir="/usr/local/tomcat/temp" org.apache.catalina.startup.Bootstrap start'
RUNNING run-parts
run-parts: executing /opt/vectr/release/scripts/docker-entrypoint.d/1_configure
run-parts: executing /opt/vectr/release/scripts/docker-entrypoint.d/2_build_certs
/usr/local/tomcat/bin/catalina.sh: eval: line 422: syntax error near unexpected token `('
/usr/local/tomcat/bin/catalina.sh: eval: line 422: `exec "/usr/local/openjdk-11/bin/java" "-Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager  -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027  -Dcas.standalone.configurationSecurity.alg=PBEWithMD5AndTripleDES -Dcas.standalone.configurationSecurity.provider=SunJCE -Dcas.standalone.configurationSecurity.iterations=5000 -Dcas.standalone.configurationSecurity.psw=redacted -Dignore.endorsed.dirs="" -classpath "/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar" -Dcatalina.base="/usr/local/tomcat" -Dcatalina.home="/usr/local/tomcat" -Djava.io.tmpdir="/usr/local/tomcat/temp" org.apache.catalina.startup.Bootstrap start'
RUNNING run-parts
.
.
.

Can you me troubleshoot and fix this?

I'm running this on Kali Linux.

thebleucheese commented 3 years ago

Hi, please check to see if you have any special characters in your .env file. The message on line 5 in the logs above looks like there may be a parenthesis somewhere that is preventing startup:

"/usr/local/tomcat/bin/catalina.sh: eval: line 422: syntax error near unexpected token `('"

It looks like the file being executed prior to the error is /opt/vectr/release/scripts/docker-entrypoint.d/2_build_certs which builds self-signed SSL certificates based on settings in your .env file. Check your .env file to verify the hostname is valid (parenthesis are not permitted) and similarly, special characters are not likely to work if you're providing a user-specified directory with existing certificates.

thebleucheese commented 3 years ago

Try changing your MONGO_INITDB_ROOT_PASSWORD and CAS_ENCRYPT_MONGO_KEY to Alphanumeric in your .env file to see if that fixes the issue.

One additional thing we can do to debug this is change your .env file to this: VECTR_CONTAINER_LOG_LEVEL=INFO

(Previously the line would have been VECTR_CONTAINER_LOG_LEVEL=WARN)

When restarting the tomcat container you should get more detailed output like the following:

tomcat_1     | NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
tomcat_1     | 16-Oct-2020 19:35:16.427 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.37
tomcat_1     | 16-Oct-2020 19:35:16.431 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Jun 30 2020 20:09:49 UTC
tomcat_1     | 16-Oct-2020 19:35:16.431 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.37.0
tomcat_1     | 16-Oct-2020 19:35:16.432 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
tomcat_1     | 16-Oct-2020 19:35:16.432 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            4.15.0-112-generic
tomcat_1     | 16-Oct-2020 19:35:16.432 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
tomcat_1     | 16-Oct-2020 19:35:16.432 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/local/openjdk-11
tomcat_1     | 16-Oct-2020 19:35:16.432 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           11.0.8+10
tomcat_1     | 16-Oct-2020 19:35:16.432 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
tomcat_1     | 16-Oct-2020 19:35:16.432 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
tomcat_1     | 16-Oct-2020 19:35:16.432 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
tomcat_1     | 16-Oct-2020 19:35:16.467 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
tomcat_1     | 16-Oct-2020 19:35:16.467 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
tomcat_1     | 16-Oct-2020 19:35:16.467 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
tomcat_1     | 16-Oct-2020 19:35:16.467 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
tomcat_1     | 16-Oct-2020 19:35:16.468 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
tomcat_1     | 16-Oct-2020 19:35:16.468 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
tomcat_1     | 16-Oct-2020 19:35:16.468 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
tomcat_1     | 16-Oct-2020 19:35:16.468 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
tomcat_1     | 16-Oct-2020 19:35:16.468 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcas.standalone.configurationSecurity.alg=PBEWithMD5AndTripleDES
tomcat_1     | 16-Oct-2020 19:35:16.468 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcas.standalone.configurationSecurity.provider=SunJCE
tomcat_1     | 16-Oct-2020 19:35:16.468 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcas.standalone.configurationSecurity.iterations=5000
tomcat_1     | 16-Oct-2020 19:35:16.468 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcas.standalone.configurationSecurity.psw=<YOUR_PASSWORD_HERE>
tomcat_1     | 16-Oct-2020 19:35:16.469 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
tomcat_1     | 16-Oct-2020 19:35:16.469 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
tomcat_1     | 16-Oct-2020 19:35:16.469 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
tomcat_1     | 16-Oct-2020 19:35:16.469 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
ag-michael commented 3 years ago

@thebleucheese Thank you, that fixed the issue.