diff --git a/ci-scripts/template-vars.yaml b/ci-scripts/template-vars.yaml index 06adefc..1180fd8 100644 --- a/ci-scripts/template-vars.yaml +++ b/ci-scripts/template-vars.yaml @@ -796,3 +796,19 @@ singleImages: changeFiles: - dockerfile-kasm-zsnes - src/ubuntu/install/zsnes/** + - name: forensic-osint + singleapp: false + base: core-ubuntu-jammy + dockerfile: dockerfile-kasm-forensic-osint + changeFiles: + - dockerfile-kasm-forensic-osint + - src/ubuntu/install/forensic_osint/** + - src/ubuntu/install/misc/** + - src/ubuntu/install/chrome/** + - src/ubuntu/install/vs_code/** + - src/ubuntu/install/only_office/** + - src/ubuntu/install/signal/** + - src/ubuntu/install/telegram/** + - src/ubuntu/install/thunderbird/** + - src/ubuntu/install/torbrowser/** + - src/ubuntu/install/cleanup/** diff --git a/dockerfile-kasm-forensic-osint b/dockerfile-kasm-forensic-osint new file mode 100644 index 0000000..5fc2cfa --- /dev/null +++ b/dockerfile-kasm-forensic-osint @@ -0,0 +1,50 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-ubuntu-jammy" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG + +USER root + +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV DEBIAN_FRONTEND=noninteractive \ + SKIP_CLEAN=true \ + KASM_RX_HOME=$STARTUPDIR/kasmrx \ + DONT_PROMPT_WSL_INSTALL="No_Prompt_please" \ + INST_DIR=$STARTUPDIR/install \ + INST_SCRIPTS="/ubuntu/install/misc/install_tools.sh \ + /ubuntu/install/chrome/install_chrome.sh \ + /ubuntu/install/vs_code/install_vs_code.sh \ + /ubuntu/install/only_office/install_only_office.sh \ + /ubuntu/install/signal/install_signal.sh \ + /ubuntu/install/telegram/install_telegram.sh \ + /ubuntu/install/thunderbird/install_thunderbird.sh \ + /ubuntu/install/torbrowser/install_torbrowser.sh \ + /ubuntu/install/forensic_osint/install_forensic_osint.sh \ + /ubuntu/install/forensic_osint/install_forensic_osint_background.sh \ + /ubuntu/install/forensic_osint/install_forensic_osint_custom_startup.sh \ + /ubuntu/install/cleanup/cleanup.sh" + +# Copy install scripts +COPY ./src/ $INST_DIR + +# Run installations +RUN \ + for SCRIPT in $INST_SCRIPTS; do \ + bash ${INST_DIR}${SCRIPT} || exit 1; \ + done && \ + $STARTUPDIR/set_user_permission.sh $HOME && \ + rm -f /etc/X11/xinit/Xclients && \ + chown 1000:0 $HOME && \ + mkdir -p /home/kasm-user && \ + chown -R 1000:0 /home/kasm-user && \ + rm -Rf ${INST_DIR} + +# Userspace Runtime +ENV HOME /home/kasm-user +WORKDIR $HOME +USER 1000 + +CMD ["--tail-log"] diff --git a/docs/forensic-osint/README.md b/docs/forensic-osint/README.md new file mode 100644 index 0000000..2c1dbbc --- /dev/null +++ b/docs/forensic-osint/README.md @@ -0,0 +1,10 @@ +# About This Image + +This Image contains an Ubuntu desktop with Google Chrome, and [Forensic OSINT](https://www.forensicosint.com/) Chrome Extension pre-configured. +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://5856039.fs1.hubspotusercontent-na1.net/hubfs/5856039/dockerhub/image-screenshots/forensic-osint.png "Image Screenshot" + +# Environment Variables + +* `APP_ARGS` - Additional arguments to pass to the application when launched. \ No newline at end of file diff --git a/docs/forensic-osint/description.txt b/docs/forensic-osint/description.txt new file mode 100644 index 0000000..721a9d4 --- /dev/null +++ b/docs/forensic-osint/description.txt @@ -0,0 +1 @@ +Ubuntu desktop with Google Chrome and Forensic OSINT Chrome Extension \ No newline at end of file diff --git a/src/ubuntu/install/forensic_osint/bg_forensic_osint.png b/src/ubuntu/install/forensic_osint/bg_forensic_osint.png new file mode 100644 index 0000000..2c1bf79 Binary files /dev/null and b/src/ubuntu/install/forensic_osint/bg_forensic_osint.png differ diff --git a/src/ubuntu/install/forensic_osint/custom_startup.sh b/src/ubuntu/install/forensic_osint/custom_startup.sh new file mode 100644 index 0000000..f10bc0f --- /dev/null +++ b/src/ubuntu/install/forensic_osint/custom_startup.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env bash +set -ex +START_COMMAND="google-chrome" +PGREP="chrome" +MAXIMIZE="true" +DEFAULT_ARGS="" + +if [[ $MAXIMIZE == 'true' ]] ; then + DEFAULT_ARGS+=" --start-maximized" +fi +ARGS=${APP_ARGS:-$DEFAULT_ARGS} + +options=$(getopt -o gau: -l go,assign,url: -n "$0" -- "$@") || exit +eval set -- "$options" + +while [[ $1 != -- ]]; do + case $1 in + -g|--go) GO='true'; shift 1;; + -a|--assign) ASSIGN='true'; shift 1;; + -u|--url) OPT_URL=$2; shift 2;; + *) echo "bad option: $1" >&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + fi +} + +kasm_startup() { + if [ -n "$KASM_URL" ] ; then + URL=$KASM_URL + elif [ -z "$URL" ] ; then + URL=$LAUNCH_URL + fi + + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + $START_COMMAND $ARGS $URL + set -e + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/ubuntu/install/forensic_osint/install_forensic_osint.sh b/src/ubuntu/install/forensic_osint/install_forensic_osint.sh new file mode 100644 index 0000000..3badf28 --- /dev/null +++ b/src/ubuntu/install/forensic_osint/install_forensic_osint.sh @@ -0,0 +1,17 @@ +#!/bin/bash +set -ex + +# Install the Forensic OSINT extension +cat >/etc/opt/chrome/policies/managed/forensic_osint.json <