From d68c83ea4f9e8bbe467f95eea11dd01d4260ff9d Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Sun, 12 Aug 2018 16:08:02 +0200 Subject: Created a Dockerfile to use the latest version of Chrysalide. --- Docker/Dockerfile | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Docker/run.sh | 15 ++++++++ 2 files changed, 125 insertions(+) create mode 100644 Docker/Dockerfile create mode 100755 Docker/run.sh 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 " + + +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 -- cgit v0.11.2-87-g4458