summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-08-12 14:08:02 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-08-12 14:08:02 (GMT)
commitd68c83ea4f9e8bbe467f95eea11dd01d4260ff9d (patch)
tree3e66de7db974d285eff1935d4913f309c08570b2
Created a Dockerfile to use the latest version of Chrysalide.
-rw-r--r--Docker/Dockerfile110
-rwxr-xr-xDocker/run.sh15
2 files changed, 125 insertions, 0 deletions
diff --git a/Docker/Dockerfile b/Docker/Dockerfile
new file mode 100644
index 0000000..3ff17f3
--- /dev/null
+++ b/Docker/Dockerfile
@@ -0,0 +1,110 @@
+
+# See https://hub.docker.com/_/debian/
+FROM debian:stretch
+
+# See http://label-schema.org/rc1/#build-time-labels
+LABEL org.label-schema.name="Chrysalide Community"
+LABEL org.label-schema.url="https://www.chrysalide.re/"
+LABEL org.label-schema.vcs-url="http://git.0xdeadc0de.fr/cgi-bin/cgit.cgi/chrysalide.git/"
+LABEL org.label-schema.docker.cmd="docker run -a stderr --rm -p 5022:22 --name chrysalide chrysalide:community"
+LABEL org.label-schema.description="Showcase for Chrysalide, which provides reverse-engineering \
+facilities. Some samples and snippets are available in the chrysalide user home directory."
+LABEL maintainer="Cyrille Bagard <nocbos {at} gmail {dot} com>"
+
+
+ENV REFRESHED_AT 2018-08-12
+
+ENV ROOT_PASSWORD "rootpass"
+ENV USER_PASSWORD "chrysalide"
+
+
+# Available users
+
+RUN groupadd re
+RUN useradd -m -g re -s /bin/bash chrysalide
+
+RUN echo "root:$ROOT_PASSWORD" | chpasswd
+RUN echo "chrysalide:$USER_PASSWORD" | chpasswd
+
+
+# Basic
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update
+
+
+# SSH server
+# See https://docs.docker.com/engine/examples/running_ssh_service/#build-an-eg_sshd-image
+
+RUN apt-get install -yqq openssh-server
+RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
+RUN sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config
+RUN echo "X11UseLocalhost no" >> /etc/ssh/sshd_config
+
+# SSH login fix. Otherwise user is kicked off after login
+RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
+
+ENV NOTVISIBLE "in users profile"
+RUN echo "export VISIBLE=now" >> /etc/profile
+RUN echo "export LC_ALL=C" >> /etc/profile
+
+EXPOSE 22
+
+RUN mkdir /var/run/sshd
+
+
+# Starters
+
+RUN apt-get install -yqq git
+
+WORKDIR /home/chrysalide
+
+RUN git clone http://git.0xdeadc0de.fr/cgi-bin/cgit.cgi/samples.git/ && \
+ chown -R chrysalide:re samples
+
+RUN git clone http://git.0xdeadc0de.fr/cgi-bin/cgit.cgi/snippets.git/ && \
+ chown -R chrysalide:re snippets
+
+
+# Chrysalide
+
+RUN apt-get install -yqq autoconf automake bison flex gettext \
+ libtool git libgtk-3-dev libxml2-dev python3-dev python-gi-dev \
+ libarchive-dev libsqlite3-dev libssl-dev
+
+RUN apt-get install -yqq libcanberra-gtk3-module
+
+WORKDIR /usr/local/src
+
+RUN git clone http://git.0xdeadc0de.fr/chrysalide.git
+
+WORKDIR /usr/local/src/chrysalide
+
+RUN autopoint && \
+ ./tools/ipf/init_potfiles.sh && \
+ sed -i 's/po\/Makefile.in \(po\/Makefile.in *\)*/po\/Makefile.in /' configure.ac && \
+ sed -i 's/EXTRA_DIST.*$/EXTRA_DIST = config.rpath ChangeLog/' Makefile.am && \
+ rm po/Makevars.template && \
+ cp /usr/share/gettext/gettext.h . && \
+ echo "timestamp" > stamp-h.in && \
+ touch plugins/arm/v7/opcodes/gencode.mk && \
+ touch plugins/dalvik/v35/opcodes/gencode.mk && \
+ touch ChangeLog && \
+ libtoolize --force && \
+ aclocal -Im4 && \
+ autoheader && \
+ automake --add-missing --copy && \
+ autoconf && \
+ ./configure --prefix=/usr/local --enable-silent-rules
+
+RUN cd /usr/local/src/chrysalide && \
+ make -j5 && \
+ make install
+
+RUN ldconfig
+
+
+# Entrypoint
+
+CMD ["/usr/sbin/sshd", "-d", "-D"]
diff --git a/Docker/run.sh b/Docker/run.sh
new file mode 100755
index 0000000..829f105
--- /dev/null
+++ b/Docker/run.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+docker build . -t chrysalide:community
+
+inter=$(docker images -f "label=org.label-schema.name=Chrysalide Community" -f "dangling=true" -q)
+
+if [ ! -z "$inter" ]; then
+ docker rmi $inter
+fi
+
+docker inspect -f '{{json .Config.Labels}}' chrysalide:community | python -m json.tool
+
+docker run -a stderr --rm -p 5022:22 --name chrysalide chrysalide:community
+
+# ssh -p 5022 -X chrysalide@localhost