diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2b25fa3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM ubuntu:18.04 +LABEL version="Velociraptor v0.3.9" +LABEL description="Velociraptor server in a Docker container" +LABEL maintainer="Wes Lambert, @therealwlambert" +ENV VERSION="0.3.9" + +COPY ./entrypoint . +RUN chmod +x entrypoint && \ + apt-get update && \ + apt-get install -y wget && \ + mkdir -p /velociraptor && \ + mkdir -p /velociraptor/clients/linux && \ + mkdir -p /velociraptor/clients/mac && \ + mkdir -p /velociraptor/clients/windows && \ + wget -O /velociraptor/velociraptor https://github.com/Velocidex/velociraptor/releases/download/v$VERSION/velociraptor-v$VERSION-linux-amd64 && \ + chmod +x /velociraptor/velociraptor && \ + cp /velociraptor/velociraptor /velociraptor/clients/linux/velociraptor_client && \ + wget -O /velociraptor/clients/mac/velociraptor_client https://github.com/Velocidex/velociraptor/releases/download/v$VERSION/velociraptor-v$VERSION-darwin-amd64 && \ + wget -O /velociraptor/clients/windows/velociraptor_client.exe https://github.com/Velocidex/velociraptor/releases/download/v$VERSION/velociraptor-v$VERSION-windows-amd64.exe && \ + chmod -R +x /velociraptor/clients && \ + apt-get clean +WORKDIR /velociraptor +CMD ["/entrypoint"] + diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..fe83f7d --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,12 @@ +version: '2' +services: + velox: + container_name: velociraptor + image: wlambert/velociraptor + volumes: + - ./velociraptor/:/velociraptor/:rw + - ./entrypoint:/entrypoint:ro + ports: + - "8000:8000" + - "8889:8889" + restart: unless-stopped diff --git a/entrypoint b/entrypoint new file mode 100755 index 0000000..d41dfcf --- /dev/null +++ b/entrypoint @@ -0,0 +1,22 @@ +#!/bin/bash +VERSION="0.3.9" +BIND_ADDRESS="0.0.0.0" +PUBLIC_PATH="public" +LOG_DIR="." +SERVER_URL="https://velociraptor:8000/" +USER="admin" +PASSWORD="admin" +DATASTORE_LOCATION="." +FILESTORE_DIRECTORY="." + +if [ ! -f server.config.yaml ]; then + ./velociraptor config generate > server.config.yaml --merge '{"Frontend": {"public_path":"'$PUBLIC_PATH'"}, "API": { "bind_address": "'$BIND_ADDRESS'" }, "GUI": { "bind_address": "'$BIND_ADDRESS'"}, "Monitoring": {"bind_address": "'$BIND_ADDRESS'" }, "Logging": {"output_directory":"'$LOG_DIR'","separate_logs_per_component": true, "Client": { "server_urls": ["'$SERVER_URL'"]}, "Datastore": {"location": "'$DATASTORE_LOCATION'", "filestore_directory": "'$FILESTORE_DIRECTORY'"}}}' + sed -i "s#https://localhost:8000/#$SERVER_URL#" server.config.yaml + sed -i 's#/tmp/velociraptor#.#'g server.config.yaml + ./velociraptor --config server.config.yaml user add $USER $PASSWORD + ./velociraptor --config server.config.yaml config client > client.config.yaml + ./velociraptor config repack --exe clients/windows/velociraptor_client.exe client.config.yaml clients/windows/velociraptor_client_repacked.exe +fi +cd /velociraptor +#/bin/bash +./velociraptor --config server.config.yaml frontend -v